summaryrefslogtreecommitdiff
path: root/gnu/usr.bin
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/usr.bin')
-rw-r--r--gnu/usr.bin/texinfo/COPYING.DOC355
-rw-r--r--gnu/usr.bin/texinfo/config.rpath513
-rw-r--r--gnu/usr.bin/texinfo/configure.ac134
-rw-r--r--gnu/usr.bin/texinfo/depcomp411
-rw-r--r--gnu/usr.bin/texinfo/doc/fdl.texi403
-rw-r--r--gnu/usr.bin/texinfo/doc/pdfcolor.tex158
-rw-r--r--gnu/usr.bin/texinfo/doc/stamp-14
-rw-r--r--gnu/usr.bin/texinfo/doc/txi-fr.tex75
-rw-r--r--gnu/usr.bin/texinfo/doc/version-stnd.texi4
-rw-r--r--gnu/usr.bin/texinfo/info/infokey.c909
-rw-r--r--gnu/usr.bin/texinfo/info/infokey.h128
-rw-r--r--gnu/usr.bin/texinfo/info/key.c146
-rw-r--r--gnu/usr.bin/texinfo/info/key.h35
-rw-r--r--gnu/usr.bin/texinfo/intl/config.charset454
-rw-r--r--gnu/usr.bin/texinfo/intl/dcigettext.c1167
-rw-r--r--gnu/usr.bin/texinfo/intl/dcngettext.c60
-rw-r--r--gnu/usr.bin/texinfo/intl/dngettext.c61
-rw-r--r--gnu/usr.bin/texinfo/intl/eval-plural.h106
-rw-r--r--gnu/usr.bin/texinfo/intl/gmo.h100
-rw-r--r--gnu/usr.bin/texinfo/intl/libgnuintl.h137
-rw-r--r--gnu/usr.bin/texinfo/intl/localcharset.c345
-rw-r--r--gnu/usr.bin/texinfo/intl/locale.alias78
-rw-r--r--gnu/usr.bin/texinfo/intl/localename.c694
-rw-r--r--gnu/usr.bin/texinfo/intl/ngettext.c68
-rw-r--r--gnu/usr.bin/texinfo/intl/os2compat.c101
-rw-r--r--gnu/usr.bin/texinfo/intl/os2compat.h46
-rw-r--r--gnu/usr.bin/texinfo/intl/osdep.c24
-rw-r--r--gnu/usr.bin/texinfo/intl/plural-exp.c156
-rw-r--r--gnu/usr.bin/texinfo/intl/plural-exp.h122
-rw-r--r--gnu/usr.bin/texinfo/intl/plural.c1322
-rw-r--r--gnu/usr.bin/texinfo/intl/plural.y409
-rw-r--r--gnu/usr.bin/texinfo/intl/ref-add.sin31
-rw-r--r--gnu/usr.bin/texinfo/intl/ref-del.sin26
-rw-r--r--gnu/usr.bin/texinfo/lib/gettext.h74
-rw-r--r--gnu/usr.bin/texinfo/m4/ChangeLog14
-rw-r--r--gnu/usr.bin/texinfo/m4/Makefile.am1
-rw-r--r--gnu/usr.bin/texinfo/m4/Makefile.in220
-rw-r--r--gnu/usr.bin/texinfo/m4/codeset.m423
-rw-r--r--gnu/usr.bin/texinfo/m4/gettext.m4541
-rw-r--r--gnu/usr.bin/texinfo/m4/glibc21.m432
-rw-r--r--gnu/usr.bin/texinfo/m4/iconv.m496
-rw-r--r--gnu/usr.bin/texinfo/m4/isc-posix.m424
-rw-r--r--gnu/usr.bin/texinfo/m4/lcmessage.m432
-rw-r--r--gnu/usr.bin/texinfo/m4/lib-ld.m497
-rw-r--r--gnu/usr.bin/texinfo/m4/lib-link.m4521
-rw-r--r--gnu/usr.bin/texinfo/m4/lib-prefix.m4148
-rw-r--r--gnu/usr.bin/texinfo/m4/progtest.m459
-rw-r--r--gnu/usr.bin/texinfo/makeinfo/docbook.c492
-rw-r--r--gnu/usr.bin/texinfo/makeinfo/docbook.h81
-rw-r--r--gnu/usr.bin/texinfo/makeinfo/tests/accent33
-rw-r--r--gnu/usr.bin/texinfo/makeinfo/tests/accent-text.txi64
-rw-r--r--gnu/usr.bin/texinfo/makeinfo/tests/accent.txi10
-rw-r--r--gnu/usr.bin/texinfo/makeinfo/tests/accentenc19
-rw-r--r--gnu/usr.bin/texinfo/makeinfo/tests/accentenc.txi11
-rw-r--r--gnu/usr.bin/texinfo/makeinfo/tests/html-docdesc12
-rw-r--r--gnu/usr.bin/texinfo/makeinfo/tests/html-docdesc.txi14
-rw-r--r--gnu/usr.bin/texinfo/makeinfo/tests/macro-at7
-rw-r--r--gnu/usr.bin/texinfo/makeinfo/tests/macro-at.txi38
-rw-r--r--gnu/usr.bin/texinfo/makeinfo/texinfo.dtd337
-rw-r--r--gnu/usr.bin/texinfo/makeinfo/texinfo.xsl242
-rw-r--r--gnu/usr.bin/texinfo/makeinfo/xml.c1430
-rw-r--r--gnu/usr.bin/texinfo/makeinfo/xml.h81
-rw-r--r--gnu/usr.bin/texinfo/po/LINGUAS14
-rw-r--r--gnu/usr.bin/texinfo/po/Makevars25
-rw-r--r--gnu/usr.bin/texinfo/po/Rules-quot42
-rw-r--r--gnu/usr.bin/texinfo/po/boldquot.sed10
-rw-r--r--gnu/usr.bin/texinfo/po/da.gmobin0 -> 66819 bytes
-rw-r--r--gnu/usr.bin/texinfo/po/da.po2918
-rw-r--r--gnu/usr.bin/texinfo/po/en@boldquot.header25
-rw-r--r--gnu/usr.bin/texinfo/po/en@quot.header22
-rw-r--r--gnu/usr.bin/texinfo/po/he.gmobin0 -> 65465 bytes
-rw-r--r--gnu/usr.bin/texinfo/po/he.po2889
-rw-r--r--gnu/usr.bin/texinfo/po/hr.gmobin0 -> 29324 bytes
-rw-r--r--gnu/usr.bin/texinfo/po/hr.po2914
-rw-r--r--gnu/usr.bin/texinfo/po/insert-header.sin23
-rw-r--r--gnu/usr.bin/texinfo/po/ja.gmobin0 -> 50961 bytes
-rw-r--r--gnu/usr.bin/texinfo/po/ja.po3171
-rw-r--r--gnu/usr.bin/texinfo/po/quot.sed6
-rw-r--r--gnu/usr.bin/texinfo/po/remove-potcdate.sin19
-rw-r--r--gnu/usr.bin/texinfo/po/sv.gmobin0 -> 68034 bytes
-rw-r--r--gnu/usr.bin/texinfo/po/sv.po3144
-rw-r--r--gnu/usr.bin/texinfo/po/zh_TW.gmobin0 -> 33238 bytes
-rw-r--r--gnu/usr.bin/texinfo/po/zh_TW.po2954
-rw-r--r--gnu/usr.bin/texinfo/util/install-info-html157
84 files changed, 31868 insertions, 0 deletions
diff --git a/gnu/usr.bin/texinfo/COPYING.DOC b/gnu/usr.bin/texinfo/COPYING.DOC
new file mode 100644
index 00000000000..b42936beb35
--- /dev/null
+++ b/gnu/usr.bin/texinfo/COPYING.DOC
@@ -0,0 +1,355 @@
+ GNU Free Documentation License
+ Version 1.1, March 2000
+
+ Copyright (C) 2000 Free Software Foundation, Inc.
+ 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+
+0. PREAMBLE
+
+The purpose of this License is to make a manual, textbook, or other
+written document "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.
+
+
+1. APPLICABILITY AND DEFINITIONS
+
+This License applies to any manual or other work that contains a
+notice placed by the copyright holder saying it can be distributed
+under the terms of this License. The "Document", below, refers to any
+such manual or work. Any member of the public is a licensee, and is
+addressed as "you".
+
+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. (For example, 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.
+
+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 "Transparent" copy of the Document means a machine-readable copy,
+represented in a format whose specification is available to the
+general public, whose contents can be viewed and edited directly and
+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 has been designed to thwart or discourage
+subsequent modification by readers is not Transparent. A copy that is
+not "Transparent" is called "Opaque".
+
+Examples of suitable formats for Transparent copies include plain
+ASCII without markup, Texinfo input format, LaTeX input format, SGML
+or XML using a publicly available DTD, and standard-conforming simple
+HTML designed for human modification. Opaque formats include
+PostScript, PDF, proprietary formats that can be read and edited only
+by proprietary word processors, SGML or XML for which the DTD and/or
+processing tools are not generally available, and the
+machine-generated HTML 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.
+
+
+2. 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.
+
+
+3. COPYING IN QUANTITY
+
+If you publish printed copies 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 publicly-accessible computer-network location containing a complete
+Transparent copy of the Document, free of added material, which the
+general network-using public has access to download anonymously at no
+charge using public-standard network protocols. 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.
+
+
+4. 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:
+
+A. 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.
+B. 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 less than five).
+C. State on the Title page the name of the publisher of the
+ Modified Version, as the publisher.
+D. Preserve all the copyright notices of the Document.
+E. Add an appropriate copyright notice for your modifications
+ adjacent to the other copyright notices.
+F. 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.
+G. Preserve in that license notice the full lists of Invariant Sections
+ and required Cover Texts given in the Document's license notice.
+H. Include an unaltered copy of this License.
+I. Preserve the section entitled "History", and 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.
+J. 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.
+K. In any section entitled "Acknowledgements" or "Dedications",
+ preserve the section's title, and preserve in the section all the
+ substance and tone of each of the contributor acknowledgements
+ and/or dedications given therein.
+L. 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.
+M. Delete any section entitled "Endorsements". Such a section
+ may not be included in the Modified Version.
+N. Do not retitle any existing section as "Endorsements"
+ or to conflict in title with any Invariant Section.
+
+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.
+
+
+5. 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.
+
+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."
+
+
+6. 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.
+
+
+7. 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, does not as a whole count as a Modified Version
+of the Document, provided no compilation copyright is claimed for the
+compilation. Such a compilation is called an "aggregate", and this
+License does not apply to the other self-contained works thus compiled
+with the Document, on account of their being thus compiled, if they
+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 quarter
+of the entire aggregate, the Document's Cover Texts may be placed on
+covers that surround only the Document within the aggregate.
+Otherwise they must appear on covers around the whole aggregate.
+
+
+8. 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 provided that you also include the
+original English version of this License. In case of a disagreement
+between the translation and the original English version of this
+License, the original English version will prevail.
+
+
+9. 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.
+
+
+10. 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
+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.
+
+
+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:
+
+ Copyright (c) YEAR YOUR NAME.
+ Permission is granted to copy, distribute and/or modify this document
+ under the terms of the GNU Free Documentation License, Version 1.1
+ or any later version published by the Free Software Foundation;
+ with the Invariant Sections being LIST THEIR TITLES, with the
+ Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST.
+ A copy of the license is included in the section entitled "GNU
+ Free Documentation License".
+
+If you have no Invariant Sections, write "with no Invariant Sections"
+instead of saying which ones are invariant. If you have no
+Front-Cover Texts, write "no Front-Cover Texts" instead of
+"Front-Cover Texts being LIST"; likewise for Back-Cover Texts.
+
+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.
diff --git a/gnu/usr.bin/texinfo/config.rpath b/gnu/usr.bin/texinfo/config.rpath
new file mode 100644
index 00000000000..5ead7586a7c
--- /dev/null
+++ b/gnu/usr.bin/texinfo/config.rpath
@@ -0,0 +1,513 @@
+#! /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-2002 Free Software Foundation, Inc.
+# Taken from GNU libtool, 2001
+# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 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 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+# 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.
+#
+# 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.
+
+# All known linkers require a `.a' archive for static linking (except M$VC,
+# which needs '.lib').
+libext=a
+shlibext=
+
+host="$1"
+host_cpu=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+host_vendor=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+host_os=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+
+wl=
+if test "$GCC" = yes; then
+ wl='-Wl,'
+else
+ case "$host_os" in
+ aix3* | aix4* | aix5*)
+ wl='-Wl,'
+ ;;
+ hpux9* | hpux10* | hpux11*)
+ wl='-Wl,'
+ ;;
+ irix5* | irix6*)
+ wl='-Wl,'
+ ;;
+ linux*)
+ echo '__INTEL_COMPILER' > conftest.$ac_ext
+ if $CC -E conftest.$ac_ext >/dev/null | grep __INTEL_COMPILER >/dev/null
+ then
+ :
+ else
+ # Intel icc
+ wl='-Qoption,ld,'
+ fi
+ ;;
+ osf3* | osf4* | osf5*)
+ wl='-Wl,'
+ ;;
+ solaris*)
+ wl='-Wl,'
+ ;;
+ sunos4*)
+ wl='-Qoption ld '
+ ;;
+ sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+ if test "x$host_vendor" = xsni; then
+ wl='-LD'
+ else
+ wl='-Wl,'
+ fi
+ ;;
+ esac
+fi
+
+hardcode_libdir_flag_spec=
+hardcode_libdir_separator=
+hardcode_direct=no
+hardcode_minus_L=no
+
+case "$host_os" in
+ cygwin* | mingw* | pw32*)
+ # 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
+ ;;
+ openbsd*)
+ with_gnu_ld=no
+ ;;
+esac
+
+ld_shlibs=yes
+if test "$with_gnu_ld" = yes; then
+ case "$host_os" in
+ aix3* | aix4* | aix5*)
+ # On AIX, the GNU linker is very broken
+ ld_shlibs=no
+ ;;
+ 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 can use
+ # them.
+ ld_shlibs=no
+ ;;
+ beos*)
+ if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
+ :
+ else
+ ld_shlibs=no
+ fi
+ ;;
+ cygwin* | mingw* | pw32*)
+ # hardcode_libdir_flag_spec is actually meaningless, as there is
+ # no search path for DLLs.
+ hardcode_libdir_flag_spec='-L$libdir'
+ ;;
+ solaris* | sysv5*)
+ if $LD -v 2>&1 | egrep 'BFD 2\.8' > /dev/null; then
+ ld_shlibs=no
+ elif $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
+ :
+ else
+ ld_shlibs=no
+ fi
+ ;;
+ sunos4*)
+ hardcode_direct=yes
+ ;;
+ *)
+ if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
+ :
+ else
+ ld_shlibs=no
+ fi
+ ;;
+ esac
+ if test "$ld_shlibs" = yes; then
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ 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
+ ;;
+ aix4* | aix5*)
+ 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].*|aix5*)
+ 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
+ hardcode_direct=yes
+ else
+ # We have old collect2
+ hardcode_direct=unsupported
+ hardcode_minus_L=yes
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_libdir_separator=
+ fi
+ esac
+ fi
+ if test "$aix_use_runtimelinking" = yes; then
+ hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:/usr/lib:/lib'
+ else
+ if test "$host_cpu" = ia64; then
+ hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
+ else
+ hardcode_libdir_flag_spec='${wl}-bnolibpath ${wl}-blibpath:$libdir:/usr/lib:/lib'
+ 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
+ ;;
+ cygwin* | mingw* | pw32*)
+ # 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=yes
+ ;;
+ freebsd1*)
+ ld_shlibs=no
+ ;;
+ freebsd2.2*)
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_direct=yes
+ ;;
+ freebsd2*)
+ hardcode_direct=yes
+ hardcode_minus_L=yes
+ ;;
+ freebsd*)
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_direct=yes
+ ;;
+ hpux9* | hpux10* | hpux11*)
+ hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+ hardcode_libdir_separator=:
+ hardcode_direct=yes
+ hardcode_minus_L=yes # Not in the search PATH, but as the default
+ # location of the library.
+ ;;
+ irix5* | irix6*)
+ 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*)
+ 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
+ ;;
+ 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=:
+ ;;
+ sco3.2v5*)
+ ;;
+ solaris*)
+ hardcode_libdir_flag_spec='-R$libdir'
+ ;;
+ sunos4*)
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_direct=yes
+ hardcode_minus_L=yes
+ ;;
+ sysv4)
+ if test "x$host_vendor" = xsno; then
+ hardcode_direct=yes # is this really true???
+ else
+ hardcode_direct=no # Motorola manual says yes, but my tests say they lie
+ fi
+ ;;
+ sysv4.3*)
+ ;;
+ sysv5*)
+ hardcode_libdir_flag_spec=
+ ;;
+ uts4*)
+ hardcode_libdir_flag_spec='-L$libdir'
+ ;;
+ dgux*)
+ hardcode_libdir_flag_spec='-L$libdir'
+ ;;
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ ld_shlibs=yes
+ fi
+ ;;
+ sysv4.2uw2*)
+ hardcode_direct=yes
+ hardcode_minus_L=no
+ ;;
+ sysv5uw7* | unixware7*)
+ ;;
+ *)
+ ld_shlibs=no
+ ;;
+ esac
+fi
+
+# Check dynamic linker characteristics
+libname_spec='lib$name'
+sys_lib_dlsearch_path_spec="/lib /usr/lib"
+sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+case "$host_os" in
+ aix3*)
+ shlibext=so
+ ;;
+ aix4* | aix5*)
+ shlibext=so
+ ;;
+ amigaos*)
+ shlibext=ixlibrary
+ ;;
+ beos*)
+ shlibext=so
+ ;;
+ bsdi4*)
+ shlibext=so
+ sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
+ sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
+ ;;
+ cygwin* | mingw* | pw32*)
+ case $GCC,$host_os in
+ yes,cygwin*)
+ shlibext=dll.a
+ ;;
+ yes,mingw*)
+ shlibext=dll
+ sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | sed -e "s/^libraries://" -e "s/;/ /g"`
+ ;;
+ yes,pw32*)
+ shlibext=dll
+ ;;
+ *)
+ shlibext=dll
+ ;;
+ esac
+ ;;
+ darwin* | rhapsody*)
+ shlibext=dylib
+ ;;
+ freebsd1*)
+ ;;
+ freebsd*)
+ shlibext=so
+ ;;
+ gnu*)
+ shlibext=so
+ ;;
+ hpux9* | hpux10* | hpux11*)
+ shlibext=sl
+ ;;
+ irix5* | irix6*)
+ shlibext=so
+ case "$host_os" in
+ irix5*)
+ libsuff= shlibsuff=
+ ;;
+ *)
+ case $LD in
+ *-32|*"-32 ") libsuff= shlibsuff= ;;
+ *-n32|*"-n32 ") libsuff=32 shlibsuff=N32 ;;
+ *-64|*"-64 ") libsuff=64 shlibsuff=64 ;;
+ *) libsuff= shlibsuff= ;;
+ esac
+ ;;
+ esac
+ sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
+ sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
+ ;;
+ linux-gnuoldld* | linux-gnuaout* | linux-gnucoff*)
+ ;;
+ linux-gnu*)
+ shlibext=so
+ ;;
+ netbsd*)
+ shlibext=so
+ ;;
+ newsos6)
+ shlibext=so
+ ;;
+ openbsd*)
+ shlibext=so
+ ;;
+ os2*)
+ libname_spec='$name'
+ shlibext=dll
+ ;;
+ osf3* | osf4* | osf5*)
+ shlibext=so
+ sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
+ sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
+ ;;
+ sco3.2v5*)
+ shlibext=so
+ ;;
+ solaris*)
+ shlibext=so
+ ;;
+ sunos4*)
+ shlibext=so
+ ;;
+ sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+ shlibext=so
+ case "$host_vendor" in
+ motorola)
+ sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
+ ;;
+ esac
+ ;;
+ uts4*)
+ shlibext=so
+ ;;
+ dgux*)
+ shlibext=so
+ ;;
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ shlibext=so
+ fi
+ ;;
+esac
+
+sed_quote_subst='s/\(["`$\\]\)/\\\1/g'
+escaped_wl=`echo "X$wl" | 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"`
+escaped_sys_lib_search_path_spec=`echo "X$sys_lib_search_path_spec" | sed -e 's/^X//' -e "$sed_quote_subst"`
+escaped_sys_lib_dlsearch_path_spec=`echo "X$sys_lib_dlsearch_path_spec" | sed -e 's/^X//' -e "$sed_quote_subst"`
+
+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"
+
+# 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"
+
+# Compile-time system search path for libraries
+sys_lib_search_path_spec="$escaped_sys_lib_search_path_spec"
+
+# Run-time system search path for libraries
+sys_lib_dlsearch_path_spec="$escaped_sys_lib_dlsearch_path_spec"
+
+EOF
diff --git a/gnu/usr.bin/texinfo/configure.ac b/gnu/usr.bin/texinfo/configure.ac
new file mode 100644
index 00000000000..6debb26e106
--- /dev/null
+++ b/gnu/usr.bin/texinfo/configure.ac
@@ -0,0 +1,134 @@
+dnl Process this file with autoconf to produce a configure script.
+dnl $Id: configure.ac,v 1.1.1.1 2002/06/10 13:20:14 espie Exp $
+dnl
+AC_PREREQ(2.52)dnl Minimum Autoconf version required.
+dnl
+AC_INIT([GNU Texinfo], [4.2])
+AC_CONFIG_SRCDIR([makeinfo/makeinfo.c])
+AM_CONFIG_HEADER(config.h:config.in)dnl Keep filename to 8.3 for MS-DOS.
+AM_INIT_AUTOMAKE
+dnl
+AM_CONDITIONAL(TEXINFO_MAINT, test -n "$TEXINFO_MAINT")
+
+dnl Checks for programs.
+AC_PROG_CC
+AC_PROG_GCC_TRADITIONAL
+AC_PROG_INSTALL
+AC_PROG_RANLIB
+
+AC_ISC_POSIX
+AC_MINIX
+
+# Needed on sysV68 for sigblock, sigsetmask. But check for it in libc first.
+AC_CHECK_FUNC(sigblock, , AC_CHECK_LIB(bsd, sigblock))
+
+dnl Checks for header files.
+dnl Do not use <ncurses/termcap.h> unless we're linking with ncurses.
+if test "x$termlib" = xncurses; then
+ dnl Use AC_CHECK_HEADERS so the HAVE_*_H symbol gets defined.
+ AC_CHECK_HEADERS(ncurses/termcap.h)
+fi
+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/ptem.h sys/time.h sys/ttold.h sys/wait.h)
+AC_SYS_POSIX_TERMIOS
+AC_HEADER_TIOCGWINSZ
+
+dnl Checks for typedefs, structures, and compiler characteristics.
+AC_TYPE_OFF_T
+AC_TYPE_SIGNAL
+AC_C_CONST
+AC_STRUCT_TM
+
+dnl Checks for function declarations.
+txi_CHECK_DECLS
+
+dnl Checks for library functions.
+AC_FUNC_ALLOCA
+AC_FUNC_STRCOLL
+AC_FUNC_VPRINTF
+dnl in theory only pre-sysvr3 systems needed this and it's not likely
+dnl that anyone compiling new texinfo still has such a thing? we'll see.
+dnl AC_FUNC_SETVBUF_REVERSED
+AC_CHECK_FUNCS(setvbuf getcwd memset bzero strchr sigprocmask sigsetmask)
+dnl strerror, xmalloc, xrealloc, probably others should be added.
+AC_REPLACE_FUNCS(memcpy memmove strdup strcasecmp strerror strncasecmp)
+
+dnl We want to recognize djgpp to avoid the useless warning about no
+dnl term library.
+AC_CANONICAL_BUILD
+
+# 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
+
+dnl 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_TRY_LINK(,
+#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)dnl
+
+dnl i18n support.
+AM_GNU_GETTEXT()
+
+AC_CONFIG_FILES([Makefile \
+ doc/Makefile \
+ info/Makefile \
+ intl/Makefile \
+ lib/Makefile \
+ m4/Makefile \
+ makeinfo/Makefile \
+ makeinfo/tests/Makefile \
+ po/Makefile.in \
+ util/Makefile \
+ ])
+AC_OUTPUT
diff --git a/gnu/usr.bin/texinfo/depcomp b/gnu/usr.bin/texinfo/depcomp
new file mode 100644
index 00000000000..65899658ee7
--- /dev/null
+++ b/gnu/usr.bin/texinfo/depcomp
@@ -0,0 +1,411 @@
+#! /bin/sh
+
+# depcomp - compile a program generating dependencies as side-effects
+# Copyright 1999, 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 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+# 02111-1307, USA.
+
+# 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>.
+
+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
+# `libtool' can also be set to `yes' or `no'.
+
+depfile=${depfile-`echo "$object" | sed 's,\([^/]*\)$,.deps/\1,;s/\.\([^.]*\)$/.P\1/'`}
+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. 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.
+ stripped=`echo "$object" | sed -e 's,^.*/,,' -e 's/\(.*\)\..*$/\1/'`
+ tmpdepfile="$stripped.u"
+ outname="$stripped.o"
+ if test "$libtool" = yes; then
+ "$@" -Wc,-M
+ else
+ "$@" -M
+ fi
+
+ stat=$?
+ if test $stat -eq 0; then :
+ else
+ rm -f "$tmpdepfile"
+ exit $stat
+ fi
+
+ if test -f "$tmpdepfile"; then
+ # 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"
+ ;;
+
+tru64)
+ # The Tru64 AIX 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.
+
+ tmpdepfile1="$object.d"
+ tmpdepfile2=`echo "$object" | sed -e 's/.o$/.d/'`
+ if test "$libtool" = yes; then
+ "$@" -Wc,-MD
+ else
+ "$@" -MD
+ fi
+
+ stat=$?
+ if test $stat -eq 0; then :
+ else
+ rm -f "$tmpdepfile1" "$tmpdepfile2"
+ exit $stat
+ fi
+
+ if test -f "$tmpdepfile1"; then
+ tmpdepfile="$tmpdepfile1"
+ else
+ tmpdepfile="$tmpdepfile2"
+ fi
+ if test -f "$tmpdepfile"; then
+ sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
+ # That's a space and a tab 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 proprocessed file to stdout, regardless of -o,
+ # because we must use -o when running libtool.
+ test -z "$dashmflag" && dashmflag=-M
+ ( IFS=" "
+ case " $* " in
+ *" --mode=compile "*) # this is libtool, let us make it quiet
+ for arg
+ do # cycle over the arguments
+ case "$arg" in
+ "--mode=compile")
+ # insert --quiet before "--mode=compile"
+ set fnord "$@" --quiet
+ shift # fnord
+ ;;
+ esac
+ set fnord "$@" "$arg"
+ shift # fnord
+ shift # "$arg"
+ done
+ ;;
+ esac
+ "$@" $dashmflag | sed 's:^[^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile"
+ ) &
+ proc=$!
+ "$@"
+ stat=$?
+ wait "$proc"
+ if test "$stat" != 0; then exit $stat; fi
+ 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)
+ # 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;;
+ -*)
+ ;;
+ *)
+ set fnord "$@" "$arg"; shift;;
+ esac
+ done
+ obj_suffix="`echo $object | sed 's/^.*\././'`"
+ touch "$tmpdepfile"
+ ${MAKEDEPEND-makedepend} 2>/dev/null -o"$obj_suffix" -f"$tmpdepfile" "$@"
+ ) &
+ proc=$!
+ "$@"
+ stat=$?
+ wait "$proc"
+ if test "$stat" != 0; then exit $stat; fi
+ rm -f "$depfile"
+ cat < "$tmpdepfile" > "$depfile"
+ tail +3 "$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 proprocessed file to stdout, regardless of -o,
+ # because we must use -o when running libtool.
+ ( IFS=" "
+ case " $* " in
+ *" --mode=compile "*)
+ for arg
+ do # cycle over the arguments
+ case $arg in
+ "--mode=compile")
+ # insert --quiet before "--mode=compile"
+ set fnord "$@" --quiet
+ shift # fnord
+ ;;
+ esac
+ set fnord "$@" "$arg"
+ shift # fnord
+ shift # "$arg"
+ done
+ ;;
+ esac
+ "$@" -E |
+ sed -n '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
+ sed '$ s: \\$::' > "$tmpdepfile"
+ ) &
+ proc=$!
+ "$@"
+ stat=$?
+ wait "$proc"
+ if test "$stat" != 0; then exit $stat; fi
+ 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 proprocessed file to stdout, regardless of -o,
+ # because we must use -o when running libtool.
+ ( IFS=" "
+ case " $* " in
+ *" --mode=compile "*)
+ for arg
+ do # cycle over the arguments
+ case $arg in
+ "--mode=compile")
+ # insert --quiet before "--mode=compile"
+ set fnord "$@" --quiet
+ shift # fnord
+ ;;
+ esac
+ set fnord "$@" "$arg"
+ shift # fnord
+ shift # "$arg"
+ done
+ ;;
+ esac
+ "$@" -E |
+ sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile"
+ ) &
+ proc=$!
+ "$@"
+ stat=$?
+ wait "$proc"
+ if test "$stat" != 0; then exit $stat; fi
+ 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
diff --git a/gnu/usr.bin/texinfo/doc/fdl.texi b/gnu/usr.bin/texinfo/doc/fdl.texi
new file mode 100644
index 00000000000..361f90f7bb5
--- /dev/null
+++ b/gnu/usr.bin/texinfo/doc/fdl.texi
@@ -0,0 +1,403 @@
+
+@node GNU Free Documentation License
+@appendixsec GNU Free Documentation License
+
+@cindex FDL, GNU Free Documentation License
+@center Version 1.1, March 2000
+
+@display
+Copyright @copyright{} 2000 Free Software Foundation, Inc.
+59 Temple Place, Suite 330, Boston, MA 02111-1307, USA
+
+Everyone is permitted to copy and distribute verbatim copies
+of this license document, but changing it is not allowed.
+@end display
+
+@enumerate 0
+@item
+PREAMBLE
+
+The purpose of this License is to make a manual, textbook, or other
+written 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 that contains a
+notice placed by the copyright holder saying it can be distributed
+under the terms of this License. The ``Document'', below, refers to any
+such manual or work. Any member of the public is a licensee, and is
+addressed as ``you''.
+
+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. (For example, 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.
+
+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 ``Transparent'' copy of the Document means a machine-readable copy,
+represented in a format whose specification is available to the
+general public, whose contents can be viewed and edited directly and
+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 has been designed to thwart or discourage
+subsequent modification by readers is not Transparent. 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} designed
+for human modification. Opaque formats include PostScript,
+@acronym{PDF}, 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} 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.
+
+@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 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 publicly-accessible computer-network location containing a complete
+Transparent copy of the Document, free of added material, which the
+general network-using public has access to download anonymously at no
+charge using public-standard network protocols. 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 less than five).
+
+@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'', and 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
+In any section entitled ``Acknowledgments'' or ``Dedications'',
+preserve the section's title, and preserve in the section all the
+substance and tone of each of the contributor acknowledgments
+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 as ``Endorsements''
+or to conflict in title with any Invariant Section.
+@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.
+
+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 ``Acknowledgments'',
+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, does not as a whole count as a Modified Version
+of the Document, provided no compilation copyright is claimed for the
+compilation. Such a compilation is called an ``aggregate'', and this
+License does not apply to the other self-contained works thus compiled
+with the Document, on account of their being thus compiled, if they
+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 quarter
+of the entire aggregate, the Document's Cover Texts may be placed on
+covers that surround only the Document within the aggregate.
+Otherwise they must appear on covers around 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 provided that you also include the
+original English version of this License. In case of a disagreement
+between the translation and the original English version of this
+License, the original English version will prevail.
+
+@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
+@appendixsubsec 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.1
+ or any later version published by the Free Software Foundation;
+ 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}.
+ A copy of the license is included in the section entitled ``GNU
+ Free Documentation License''.
+@end group
+@end smallexample
+
+If you have no Invariant Sections, write ``with no Invariant Sections''
+instead of saying which ones are invariant. If you have no
+Front-Cover Texts, write ``no Front-Cover Texts'' instead of
+``Front-Cover Texts being @var{list}''; likewise for Back-Cover Texts.
+
+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 --git a/gnu/usr.bin/texinfo/doc/pdfcolor.tex b/gnu/usr.bin/texinfo/doc/pdfcolor.tex
new file mode 100644
index 00000000000..f09ecbcb750
--- /dev/null
+++ b/gnu/usr.bin/texinfo/doc/pdfcolor.tex
@@ -0,0 +1,158 @@
+% Very simple macros to show how to use colors with pdftex
+
+\def\cmykGreenYellow{0.15 0 0.69 0}
+\def\cmykYellow{0 0 1 0}
+\def\cmykGoldenrod{0 0.10 0.84 0}
+\def\cmykDandelion{0 0.29 0.84 0}
+\def\cmykApricot{0 0.32 0.52 0}
+\def\cmykPeach{0 0.50 0.70 0}
+\def\cmykMelon{0 0.46 0.50 0}
+\def\cmykYellowOrange{0 0.42 1 0}
+\def\cmykOrange{0 0.61 0.87 0}
+\def\cmykBurntOrange{0 0.51 1 0}
+\def\cmykBittersweet{0 0.75 1 0.24}
+\def\cmykRedOrange{0 0.77 0.87 0}
+\def\cmykMahogany{0 0.85 0.87 0.35}
+\def\cmykMaroon{0 0.87 0.68 0.32}
+\def\cmykBrickRed{0 0.89 0.94 0.28}
+\def\cmykRed{0 1 1 0}
+\def\cmykOrangeRed{0 1 0.50 0}
+\def\cmykRubineRed{0 1 0.13 0}
+\def\cmykWildStrawberry{0 0.96 0.39 0}
+\def\cmykSalmon{0 0.53 0.38 0}
+\def\cmykCarnationPink{0 0.63 0 0}
+\def\cmykMagenta{0 1 0 0}
+\def\cmykVioletRed{0 0.81 0 0}
+\def\cmykRhodamine{0 0.82 0 0}
+\def\cmykMulberry{0.34 0.90 0 0.02}
+\def\cmykRedViolet{0.07 0.90 0 0.34}
+\def\cmykFuchsia{0.47 0.91 0 0.08}
+\def\cmykLavender{0 0.48 0 0}
+\def\cmykThistle{0.12 0.59 0 0}
+\def\cmykOrchid{0.32 0.64 0 0}
+\def\cmykDarkOrchid{0.40 0.80 0.20 0}
+\def\cmykPurple{0.45 0.86 0 0}
+\def\cmykPlum{0.50 1 0 0}
+\def\cmykViolet{0.79 0.88 0 0}
+\def\cmykRoyalPurple{0.75 0.90 0 0}
+\def\cmykBlueViolet{0.86 0.91 0 0.04}
+\def\cmykPeriwinkle{0.57 0.55 0 0}
+\def\cmykCadetBlue{0.62 0.57 0.23 0}
+\def\cmykCornflowerBlue{0.65 0.13 0 0}
+\def\cmykMidnightBlue{0.98 0.13 0 0.43}
+\def\cmykNavyBlue{0.94 0.54 0 0}
+\def\cmykRoyalBlue{1 0.50 0 0}
+\def\cmykBlue{1 1 0 0}
+\def\cmykCerulean{0.94 0.11 0 0}
+\def\cmykCyan{1 0 0 0}
+\def\cmykProcessBlue{0.96 0 0 0}
+\def\cmykSkyBlue{0.62 0 0.12 0}
+\def\cmykTurquoise{0.85 0 0.20 0}
+\def\cmykTealBlue{0.86 0 0.34 0.02}
+\def\cmykAquamarine{0.82 0 0.30 0}
+\def\cmykBlueGreen{0.85 0 0.33 0}
+\def\cmykEmerald{1 0 0.50 0}
+\def\cmykJungleGreen{0.99 0 0.52 0}
+\def\cmykSeaGreen{0.69 0 0.50 0}
+\def\cmykGreen{1 0 1 0}
+\def\cmykForestGreen{0.91 0 0.88 0.12}
+\def\cmykPineGreen{0.92 0 0.59 0.25}
+\def\cmykLimeGreen{0.50 0 1 0}
+\def\cmykYellowGreen{0.44 0 0.74 0}
+\def\cmykSpringGreen{0.26 0 0.76 0}
+\def\cmykOliveGreen{0.64 0 0.95 0.40}
+\def\cmykRawSienna{0 0.72 1 0.45}
+\def\cmykSepia{0 0.83 1 0.70}
+\def\cmykBrown{0 0.81 1 0.60}
+\def\cmykTan{0.14 0.42 0.56 0}
+\def\cmykGray{0 0 0 0.50}
+\def\cmykBlack{0 0 0 1}
+\def\cmykWhite{0 0 0 0}
+
+\def\GreenYellow{\pdfsetcolor{\cmykGreenYellow}}
+\def\Yellow{\pdfsetcolor{\cmykYellow}}
+\def\Goldenrod{\pdfsetcolor{\cmykGoldenrod}}
+\def\Dandelion{\pdfsetcolor{\cmykDandelion}}
+\def\Apricot{\pdfsetcolor{\cmykApricot}}
+\def\Peach{\pdfsetcolor{\cmykPeach}}
+\def\Melon{\pdfsetcolor{\cmykMelon}}
+\def\YellowOrange{\pdfsetcolor{\cmykYellowOrange}}
+\def\Orange{\pdfsetcolor{\cmykOrange}}
+\def\BurntOrange{\pdfsetcolor{\cmykBurntOrange}}
+\def\Bittersweet{\pdfsetcolor{\cmykBittersweet}}
+\def\RedOrange{\pdfsetcolor{\cmykRedOrange}}
+\def\Mahogany{\pdfsetcolor{\cmykMahogany}}
+\def\Maroon{\pdfsetcolor{\cmykMaroon}}
+\def\BrickRed{\pdfsetcolor{\cmykBrickRed}}
+\def\Red{\pdfsetcolor{\cmykRed}}
+\def\OrangeRed{\pdfsetcolor{\cmykOrangeRed}}
+\def\RubineRed{\pdfsetcolor{\cmykRubineRed}}
+\def\WildStrawberry{\pdfsetcolor{\cmykWildStrawberry}}
+\def\Salmon{\pdfsetcolor{\cmykSalmon}}
+\def\CarnationPink{\pdfsetcolor{\cmykCarnationPink}}
+\def\Magenta{\pdfsetcolor{\cmykMagenta}}
+\def\VioletRed{\pdfsetcolor{\cmykVioletRed}}
+\def\Rhodamine{\pdfsetcolor{\cmykRhodamine}}
+\def\Mulberry{\pdfsetcolor{\cmykMulberry}}
+\def\RedViolet{\pdfsetcolor{\cmykRedViolet}}
+\def\Fuchsia{\pdfsetcolor{\cmykFuchsia}}
+\def\Lavender{\pdfsetcolor{\cmykLavender}}
+\def\Thistle{\pdfsetcolor{\cmykThistle}}
+\def\Orchid{\pdfsetcolor{\cmykOrchid}}
+\def\DarkOrchid{\pdfsetcolor{\cmykDarkOrchid}}
+\def\Purple{\pdfsetcolor{\cmykPurple}}
+\def\Plum{\pdfsetcolor{\cmykPlum}}
+\def\Violet{\pdfsetcolor{\cmykViolet}}
+\def\RoyalPurple{\pdfsetcolor{\cmykRoyalPurple}}
+\def\BlueViolet{\pdfsetcolor{\cmykBlueViolet}}
+\def\Periwinkle{\pdfsetcolor{\cmykPeriwinkle}}
+\def\CadetBlue{\pdfsetcolor{\cmykCadetBlue}}
+\def\CornflowerBlue{\pdfsetcolor{\cmykCornflowerBlue}}
+\def\MidnightBlue{\pdfsetcolor{\cmykMidnightBlue}}
+\def\NavyBlue{\pdfsetcolor{\cmykNavyBlue}}
+\def\RoyalBlue{\pdfsetcolor{\cmykRoyalBlue}}
+\def\Blue{\pdfsetcolor{\cmykBlue}}
+\def\Cerulean{\pdfsetcolor{\cmykCerulean}}
+\def\Cyan{\pdfsetcolor{\cmykCyan}}
+\def\ProcessBlue{\pdfsetcolor{\cmykProcessBlue}}
+\def\SkyBlue{\pdfsetcolor{\cmykSkyBlue}}
+\def\Turquoise{\pdfsetcolor{\cmykTurquoise}}
+\def\TealBlue{\pdfsetcolor{\cmykTealBlue}}
+\def\Aquamarine{\pdfsetcolor{\cmykAquamarine}}
+\def\BlueGreen{\pdfsetcolor{\cmykBlueGreen}}
+\def\Emerald{\pdfsetcolor{\cmykEmerald}}
+\def\JungleGreen{\pdfsetcolor{\cmykJungleGreen}}
+\def\SeaGreen{\pdfsetcolor{\cmykSeaGreen}}
+\def\Green{\pdfsetcolor{\cmykGreen}}
+\def\ForestGreen{\pdfsetcolor{\cmykForestGreen}}
+\def\PineGreen{\pdfsetcolor{\cmykPineGreen}}
+\def\LimeGreen{\pdfsetcolor{\cmykLimeGreen}}
+\def\YellowGreen{\pdfsetcolor{\cmykYellowGreen}}
+\def\SpringGreen{\pdfsetcolor{\cmykSpringGreen}}
+\def\OliveGreen{\pdfsetcolor{\cmykOliveGreen}}
+\def\RawSienna{\pdfsetcolor{\cmykRawSienna}}
+\def\Sepia{\pdfsetcolor{\cmykSepia}}
+\def\Brown{\pdfsetcolor{\cmykBrown}}
+\def\Tan{\pdfsetcolor{\cmykTan}}
+\def\Gray{\pdfsetcolor{\cmykGray}}
+\def\Black{\pdfsetcolor{\cmykBlack}}
+\def\White{\pdfsetcolor{\cmykWhite}}
+
+\def\pdfsetcolor#1{\pdfliteral{#1 k}}
+\def\setcolor#1{\mark{#1}\pdfsetcolor{#1}}
+
+\pdfoutput=1
+\def\maincolor{\cmykBlack}
+\pdfsetcolor{\maincolor}
+
+\def\makefootline{
+ \baselineskip24pt
+ \line{\pdfsetcolor{\maincolor}\the\footline}}
+
+\def\makeheadline{%
+ \edef\M{\topmark}
+ \ifx\M\empty\let\M=\maincolor\fi
+ \vbox to 0pt{\vskip-22.5pt
+ \line{\vbox to8.5pt{}%
+ \pdfsetcolor{\maincolor}\the\headline\pdfsetcolor{\M}}\vss}%
+ \nointerlineskip}
diff --git a/gnu/usr.bin/texinfo/doc/stamp-1 b/gnu/usr.bin/texinfo/doc/stamp-1
new file mode 100644
index 00000000000..cbc67f41b53
--- /dev/null
+++ b/gnu/usr.bin/texinfo/doc/stamp-1
@@ -0,0 +1,4 @@
+@set UPDATED 23 March 2002
+@set UPDATED-MONTH March 2002
+@set EDITION 4.2
+@set VERSION 4.2
diff --git a/gnu/usr.bin/texinfo/doc/txi-fr.tex b/gnu/usr.bin/texinfo/doc/txi-fr.tex
new file mode 100644
index 00000000000..2210ac9ce51
--- /dev/null
+++ b/gnu/usr.bin/texinfo/doc/txi-fr.tex
@@ -0,0 +1,75 @@
+% txi-fr.tex -- TeX macros to handle French language for texinfo.tex documents.
+% $Id: txi-fr.tex,v 1.1.1.1 2002/06/10 13:21:49 espie Exp $
+%
+% Copyright (C) 1999 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 2 of the License, or
+% (at your option) any later version.
+%
+% This program is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with this program; if not, write to the Free Software
+% Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+% Set up fixed words for French.
+% Translated by Laurent Bourbeau <bourbeau@progiciels-bpi.ca>
+% Translation date: le 10 d嶰embre 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\putwordDeftypevar{Variable}
+\gdef\putwordDeffunc{Fonction}
+\gdef\putwordDeftypefun{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 --git a/gnu/usr.bin/texinfo/doc/version-stnd.texi b/gnu/usr.bin/texinfo/doc/version-stnd.texi
new file mode 100644
index 00000000000..cbc67f41b53
--- /dev/null
+++ b/gnu/usr.bin/texinfo/doc/version-stnd.texi
@@ -0,0 +1,4 @@
+@set UPDATED 23 March 2002
+@set UPDATED-MONTH March 2002
+@set EDITION 4.2
+@set VERSION 4.2
diff --git a/gnu/usr.bin/texinfo/info/infokey.c b/gnu/usr.bin/texinfo/info/infokey.c
new file mode 100644
index 00000000000..43e656050a5
--- /dev/null
+++ b/gnu/usr.bin/texinfo/info/infokey.c
@@ -0,0 +1,909 @@
+/* infokey.c -- compile ~/.infokey to ~/.info.
+ $Id: infokey.c,v 1.1.1.1 2002/06/10 13:21:13 espie Exp $
+
+ Copyright (C) 1999, 2001, 02 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+ Written by Andrew Bettison <andrewb@zip.com.au>. */
+
+#include "info.h"
+#include "infomap.h"
+#include "infokey.h"
+#include "key.h"
+#include "getopt.h"
+
+static 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 = (char *) 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 = (char *) 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 ();
+static int compile (), write_infokey_file ();
+static void syntax_error (), error_message (), suggest_help (), short_help ();
+
+
+/* **************************************************************** */
+/* */
+/* Main Entry Point to the Infokey Program */
+/* */
+/* **************************************************************** */
+
+int
+main (argc, argv)
+ 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
+
+ /* Set the text message domain. */
+ bindtextdomain (PACKAGE, LOCALEDIR);
+ textdomain (PACKAGE);
+
+ 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\
+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"),
+ "1999");
+ 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"));
+ 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);
+ 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);
+ 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);
+ write_error = 1;
+ }
+ if (fclose (outf) == EOF)
+ {
+ error_message (errno, _("error closing output file `%s'"), output_filename);
+ write_error = 1;
+ }
+ if (write_error)
+ {
+ unlink (output_filename);
+ xexit (1);
+ }
+ }
+
+ /* Close the input file. */
+ fclose (inf);
+ }
+
+ xexit (0);
+}
+
+static char *
+mkpath (dir, file)
+ 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 (), lookup_action ();
+
+/* Compile the input file into its various sections. Return true if no
+ error was encountered.
+ */
+static int
+compile (fp, filename, sections)
+ FILE *fp;
+ const char *filename;
+ struct sect sections[];
+{
+ int error = 0;
+ char rescan = 0;
+ unsigned int lnum = 0;
+ int c;
+
+ /* 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; /* 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;
+ char comment[10];
+ unsigned int clen;
+ char seq[20];
+ unsigned int slen;
+ char act[80];
+ unsigned int alen;
+ char varn[80];
+ unsigned int varlen;
+ char val[80];
+ unsigned int vallen;
+
+#define To_seq(c) \
+ do { \
+ if (slen < sizeof seq) \
+ seq[slen++] = meta ? Meta(c) : (c); \
+ else \
+ { \
+ syntax_error(filename, lnum, _("key sequence too long")); \
+ 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"));
+ 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"));
+ 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"), c);
+ 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"), c);
+ 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"));
+ error = 1;
+ }
+ }
+ else
+ {
+ syntax_error (filename, lnum, _("unknown action `%s'"), act);
+ error = 1;
+ }
+ }
+ }
+ else if (alen < sizeof act - 1)
+ act[alen++] = c;
+ else
+ {
+ syntax_error (filename, lnum, _("action name too long"));
+ 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);
+ error = 1;
+ }
+ break;
+
+ case get_varname:
+ if (c == '=')
+ {
+ if (varlen == 0)
+ {
+ syntax_error (filename, lnum, _("missing variable name"));
+ error = 1;
+ }
+ state = get_value;
+ vallen = 0;
+ }
+ else if (c == '\n' || isspace (c))
+ {
+ syntax_error (filename, lnum, _("missing `=' immediately after variable name"));
+ error = 1;
+ }
+ else if (varlen < sizeof varn)
+ varn[varlen++] = c;
+ else
+ {
+ syntax_error (filename, lnum, _("variable name too long"));
+ 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"));
+ error = 1;
+ }
+ }
+ else if (vallen < sizeof val)
+ val[vallen++] = c;
+ else
+ {
+ syntax_error (filename, lnum, _("value too long"));
+ error = 1;
+ }
+ 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 (s, str, len)
+ struct sect *s;
+ const char *str;
+ unsigned int len;
+{
+ if (s->cur + len > sizeof s->data)
+ return 0;
+ strncpy (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 (actname)
+ 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 (i, fp)
+ 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 (s, code, fp)
+ 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 (fp, sections)
+ 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 (error_code, fmt, a1, a2, a3, a4)
+ int error_code;
+ const char *fmt;
+ const void *a1, *a2, *a3, *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 (filename, linenum, fmt, a1, a2, a3, a4)
+ const char *filename;
+ unsigned int linenum;
+ const char *fmt;
+ const void *a1, *a2, *a3, *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 ()
+{
+ fprintf (stderr, _("Try --help for more information.\n"));
+}
+
+/* Produce a scaled down description of the available options to Info. */
+static void
+short_help ()
+{
+ 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 --git a/gnu/usr.bin/texinfo/info/infokey.h b/gnu/usr.bin/texinfo/info/infokey.h
new file mode 100644
index 00000000000..da9759851cd
--- /dev/null
+++ b/gnu/usr.bin/texinfo/info/infokey.h
@@ -0,0 +1,128 @@
+/* infokey.h -- Custom keystroke definition support.
+ $Id: infokey.h,v 1.1.1.1 2002/06/10 13:21:13 espie Exp $
+
+ Copyright (C) 1999, 2002 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+ 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 --git a/gnu/usr.bin/texinfo/info/key.c b/gnu/usr.bin/texinfo/info/key.c
new file mode 100644
index 00000000000..06be6fa30f6
--- /dev/null
+++ b/gnu/usr.bin/texinfo/info/key.c
@@ -0,0 +1,146 @@
+/* key.c -- Generated array containing function names.
+
+ This file was automatically made from various source files with the
+ command "./makedoc". DO NOT EDIT THIS FILE, only "./makedoc.c".
+
+ Source files groveled to make this file include:
+
+ ./session.c
+ ./echo-area.c
+ ./infodoc.c
+ ./m-x.c
+ ./indices.c
+ ./nodemenu.c
+ ./footnotes.c
+ ./variables.c
+
+ 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[] = {
+
+/* Commands found in "./session.c". */
+ { "next-line", A_info_next_line },
+ { "prev-line", A_info_prev_line },
+ { "end-of-line", A_info_end_of_line },
+ { "beginning-of-line", A_info_beginning_of_line },
+ { "forward-char", A_info_forward_char },
+ { "backward-char", A_info_backward_char },
+ { "forward-word", A_info_forward_word },
+ { "backward-word", A_info_backward_word },
+ { "global-next-node", A_info_global_next_node },
+ { "global-prev-node", A_info_global_prev_node },
+ { "scroll-forward", A_info_scroll_forward },
+ { "scroll-forward-set-window", A_info_scroll_forward_set_window },
+ { "scroll-forward-page-only", A_info_scroll_forward_page_only },
+ { "scroll-forward-page-only-set-window", A_info_scroll_forward_page_only_set_window },
+ { "scroll-backward", A_info_scroll_backward },
+ { "scroll-backward-set-window", A_info_scroll_backward_set_window },
+ { "scroll-backward-page-only", A_info_scroll_backward_page_only },
+ { "scroll-backward-page-only-set-window", A_info_scroll_backward_page_only_set_window },
+ { "beginning-of-node", A_info_beginning_of_node },
+ { "end-of-node", A_info_end_of_node },
+ { "down-line", A_info_down_line },
+ { "up-line", A_info_up_line },
+ { "scroll-half-screen-down", A_info_scroll_half_screen_down },
+ { "scroll-half-screen-up", A_info_scroll_half_screen_up },
+ { "next-window", A_info_next_window },
+ { "prev-window", A_info_prev_window },
+ { "split-window", A_info_split_window },
+ { "delete-window", A_info_delete_window },
+ { "keep-one-window", A_info_keep_one_window },
+ { "scroll-other-window", A_info_scroll_other_window },
+ { "scroll-other-window-backward", A_info_scroll_other_window_backward },
+ { "grow-window", A_info_grow_window },
+ { "tile-windows", A_info_tile_windows },
+ { "toggle-wrap", A_info_toggle_wrap },
+ { "next-node", A_info_next_node },
+ { "prev-node", A_info_prev_node },
+ { "up-node", A_info_up_node },
+ { "last-node", A_info_last_node },
+ { "first-node", A_info_first_node },
+ { "last-menu-item", A_info_last_menu_item },
+ { "menu-digit", A_info_menu_digit },
+ { "menu-item", A_info_menu_item },
+ { "xref-item", A_info_xref_item },
+ { "find-menu", A_info_find_menu },
+ { "visit-menu", A_info_visit_menu },
+ { "goto-node", A_info_goto_node },
+ { "menu-sequence", A_info_menu_sequence },
+ { "goto-invocation-node", A_info_goto_invocation_node },
+ { "man", A_info_man },
+ { "top-node", A_info_top_node },
+ { "dir-node", A_info_dir_node },
+ { "history-node", A_info_history_node },
+ { "kill-node", A_info_kill_node },
+ { "view-file", A_info_view_file },
+ { "print-node", A_info_print_node },
+ { "search-case-sensitively", A_info_search_case_sensitively },
+ { "search", A_info_search },
+ { "search-backward", A_info_search_backward },
+ { "search-next", A_info_search_next },
+ { "search-previous", A_info_search_previous },
+ { "isearch-forward", A_isearch_forward },
+ { "isearch-backward", A_isearch_backward },
+ { "move-to-prev-xref", A_info_move_to_prev_xref },
+ { "move-to-next-xref", A_info_move_to_next_xref },
+ { "select-reference-this-line", A_info_select_reference_this_line },
+ { "abort-key", A_info_abort_key },
+ { "move-to-window-line", A_info_move_to_window_line },
+ { "redraw-display", A_info_redraw_display },
+ { "quit", A_info_quit },
+ { "do-lowercase-version", A_info_do_lowercase_version },
+ { "add-digit-to-numeric-arg", A_info_add_digit_to_numeric_arg },
+ { "universal-argument", A_info_universal_argument },
+ { "numeric-arg-digit-loop", A_info_numeric_arg_digit_loop },
+/* Commands found in "./echo-area.c". */
+ { "echo-area-forward", A_ea_forward },
+ { "echo-area-backward", A_ea_backward },
+ { "echo-area-beg-of-line", A_ea_beg_of_line },
+ { "echo-area-end-of-line", A_ea_end_of_line },
+ { "echo-area-forward-word", A_ea_forward_word },
+ { "echo-area-backward-word", A_ea_backward_word },
+ { "echo-area-delete", A_ea_delete },
+ { "echo-area-rubout", A_ea_rubout },
+ { "echo-area-abort", A_ea_abort },
+ { "echo-area-newline", A_ea_newline },
+ { "echo-area-quoted-insert", A_ea_quoted_insert },
+ { "echo-area-insert", A_ea_insert },
+ { "echo-area-tab-insert", A_ea_tab_insert },
+ { "echo-area-transpose-chars", A_ea_transpose_chars },
+ { "echo-area-yank", A_ea_yank },
+ { "echo-area-yank-pop", A_ea_yank_pop },
+ { "echo-area-kill-line", A_ea_kill_line },
+ { "echo-area-backward-kill-line", A_ea_backward_kill_line },
+ { "echo-area-kill-word", A_ea_kill_word },
+ { "echo-area-backward-kill-word", A_ea_backward_kill_word },
+ { "echo-area-possible-completions", A_ea_possible_completions },
+ { "echo-area-complete", A_ea_complete },
+ { "echo-area-scroll-completions-window", A_ea_scroll_completions_window },
+/* Commands found in "./infodoc.c". */
+ { "get-help-window", A_info_get_help_window },
+ { "get-info-help-node", A_info_get_info_help_node },
+ { "describe-key", A_describe_key },
+ { "where-is", A_info_where_is },
+/* Commands found in "./m-x.c". */
+ { "describe-command", A_describe_command },
+ { "execute-command", A_info_execute_command },
+ { "set-screen-height", A_set_screen_height },
+/* Commands found in "./indices.c". */
+ { "index-search", A_info_index_search },
+ { "next-index-match", A_info_next_index_match },
+ { "index-apropos", A_info_index_apropos },
+/* Commands found in "./nodemenu.c". */
+ { "list-visited-nodes", A_list_visited_nodes },
+ { "select-visited-node", A_select_visited_node },
+/* Commands found in "./footnotes.c". */
+ { "show-footnotes", A_info_show_footnotes },
+/* Commands found in "./variables.c". */
+ { "describe-variable", A_describe_variable },
+ { "set-variable", A_set_variable },
+ (char *)0
+};
diff --git a/gnu/usr.bin/texinfo/info/key.h b/gnu/usr.bin/texinfo/info/key.h
new file mode 100644
index 00000000000..35d2762211f
--- /dev/null
+++ b/gnu/usr.bin/texinfo/info/key.h
@@ -0,0 +1,35 @@
+/* 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 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+ 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 --git a/gnu/usr.bin/texinfo/intl/config.charset b/gnu/usr.bin/texinfo/intl/config.charset
new file mode 100644
index 00000000000..0a1a68db135
--- /dev/null
+++ b/gnu/usr.bin/texinfo/intl/config.charset
@@ -0,0 +1,454 @@
+#! /bin/sh
+# Output a system dependent table of character encoding aliases.
+#
+# Copyright (C) 2000-2002 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library 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
+# Library General Public License for more details.
+#
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+#
+# 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 used by which systems a MIME name?
+# ASCII, ANSI_X3.4-1968 glibc solaris freebsd
+# ISO-8859-1 glibc aix hpux irix osf solaris freebsd yes
+# ISO-8859-2 glibc aix hpux irix osf solaris freebsd yes
+# ISO-8859-3 glibc yes
+# ISO-8859-4 osf solaris freebsd yes
+# ISO-8859-5 glibc aix hpux irix osf solaris freebsd yes
+# ISO-8859-6 glibc aix hpux solaris yes
+# ISO-8859-7 glibc aix hpux irix osf solaris yes
+# ISO-8859-8 glibc aix hpux osf solaris yes
+# ISO-8859-9 glibc aix hpux irix osf solaris yes
+# ISO-8859-13 glibc
+# ISO-8859-15 glibc aix osf solaris freebsd
+# KOI8-R glibc solaris freebsd yes
+# KOI8-U glibc freebsd yes
+# 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 dos
+# CP869 dos
+# CP874 win32 dos
+# CP922 aix
+# CP932 aix win32 dos
+# CP943 aix
+# CP949 osf win32 dos
+# CP950 win32 dos
+# CP1046 aix
+# CP1124 aix
+# CP1129 aix
+# CP1250 win32
+# CP1251 glibc win32
+# CP1252 aix win32
+# CP1253 win32
+# CP1254 win32
+# CP1255 win32
+# CP1256 win32
+# CP1257 win32
+# GB2312 glibc aix hpux irix solaris freebsd yes
+# EUC-JP glibc aix hpux irix osf solaris freebsd yes
+# EUC-KR glibc aix hpux irix osf solaris freebsd yes
+# EUC-TW glibc aix hpux irix osf solaris
+# BIG5 glibc aix hpux osf solaris freebsd yes
+# BIG5-HKSCS glibc
+# GBK aix osf win32 dos
+# GB18030 glibc
+# SHIFT_JIS hpux osf solaris freebsd yes
+# JOHAB glibc win32
+# TIS-620 glibc aix hpux osf solaris
+# VISCII glibc yes
+# 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 glibc aix hpux osf solaris yes
+#
+# 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* | *-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-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 "BIG5 BIG5"
+ echo "gb2312 GB2312"
+ echo "cns11643 EUC-TW"
+ echo "5601 EUC-KR"
+ 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-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"
+ ;;
+ 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 <st001906@hrz1.hrz.tu-darmstadt.de>"
+ echo "# and Bruno Haible <haible@clisp.cons.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_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"
+ # 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 --git a/gnu/usr.bin/texinfo/intl/dcigettext.c b/gnu/usr.bin/texinfo/intl/dcigettext.c
new file mode 100644
index 00000000000..2e724e19e74
--- /dev/null
+++ b/gnu/usr.bin/texinfo/intl/dcigettext.c
@@ -0,0 +1,1167 @@
+/* Implementation of the internal dcigettext function.
+ Copyright (C) 1995-1999, 2000-2002 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+ USA. */
+
+/* Tell glibc's <string.h> to provide a prototype for mempcpy().
+ This must come before <config.h> because <config.h> may include
+ <features.h>, and once <features.h> has been included, it's too late. */
+#ifndef _GNU_SOURCE
+# define _GNU_SOURCE 1
+#endif
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <sys/types.h>
+
+#ifdef __GNUC__
+# define alloca __builtin_alloca
+# define HAVE_ALLOCA 1
+#else
+# if defined HAVE_ALLOCA_H || defined _LIBC
+# include <alloca.h>
+# else
+# ifdef _AIX
+ #pragma alloca
+# else
+# ifndef alloca
+char *alloca ();
+# endif
+# endif
+# endif
+#endif
+
+#include <errno.h>
+#ifndef errno
+extern int errno;
+#endif
+#ifndef __set_errno
+# define __set_errno(val) errno = (val)
+#endif
+
+#include <stddef.h>
+#include <stdlib.h>
+#include <string.h>
+
+#if defined HAVE_UNISTD_H || defined _LIBC
+# include <unistd.h>
+#endif
+
+#include <locale.h>
+
+#if defined HAVE_SYS_PARAM_H || defined _LIBC
+# include <sys/param.h>
+#endif
+
+#include "gettextP.h"
+#include "plural-exp.h"
+#ifdef _LIBC
+# include <libintl.h>
+#else
+# include "libgnuintl.h"
+#endif
+#include "hash-string.h"
+
+/* Thread safetyness. */
+#ifdef _LIBC
+# include <bits/libc-lock.h>
+#else
+/* Provide dummy implementation if this is outside glibc. */
+# define __libc_lock_define_initialized(CLASS, NAME)
+# define __libc_lock_lock(NAME)
+# define __libc_lock_unlock(NAME)
+# define __libc_rwlock_define_initialized(CLASS, NAME)
+# define __libc_rwlock_rdlock(NAME)
+# define __libc_rwlock_unlock(NAME)
+#endif
+
+/* Alignment of types. */
+#if defined __GNUC__ && __GNUC__ >= 2
+# define alignof(TYPE) __alignof__ (TYPE)
+#else
+# define alignof(TYPE) \
+ ((int) &((struct { char dummy1; TYPE dummy2; } *) 0)->dummy2)
+#endif
+
+/* The internal variables in the standalone libintl.a must have different
+ names than the internal variables in GNU libc, otherwise programs
+ using libintl.a cannot be linked statically. */
+#if !defined _LIBC
+# define _nl_default_default_domain _nl_default_default_domain__
+# define _nl_current_default_domain _nl_current_default_domain__
+# define _nl_default_dirname _nl_default_dirname__
+# define _nl_domain_bindings _nl_domain_bindings__
+#endif
+
+/* Some compilers, like SunOS4 cc, don't have offsetof in <stddef.h>. */
+#ifndef offsetof
+# define offsetof(type,ident) ((size_t)&(((type*)0)->ident))
+#endif
+
+/* @@ end of prolog @@ */
+
+#ifdef _LIBC
+/* Rename the non ANSI C functions. This is required by the standard
+ because some ANSI C functions will require linking with this object
+ file and the name space must not be polluted. */
+# define getcwd __getcwd
+# ifndef stpcpy
+# define stpcpy __stpcpy
+# endif
+# define tfind __tfind
+#else
+# if !defined HAVE_GETCWD
+char *getwd ();
+# define getcwd(buf, max) getwd (buf)
+# else
+char *getcwd ();
+# endif
+# ifndef HAVE_STPCPY
+static char *stpcpy PARAMS ((char *dest, const char *src));
+# endif
+# ifndef HAVE_MEMPCPY
+static void *mempcpy PARAMS ((void *dest, const void *src, size_t n));
+# endif
+#endif
+
+/* Amount to increase buffer size by in each try. */
+#define PATH_INCR 32
+
+/* The following is from pathmax.h. */
+/* Non-POSIX BSD systems might have gcc's limits.h, which doesn't define
+ PATH_MAX but might cause redefinition warnings when sys/param.h is
+ later included (as on MORE/BSD 4.3). */
+#if defined _POSIX_VERSION || (defined HAVE_LIMITS_H && !defined __GNUC__)
+# include <limits.h>
+#endif
+
+#ifndef _POSIX_PATH_MAX
+# define _POSIX_PATH_MAX 255
+#endif
+
+#if !defined PATH_MAX && defined _PC_PATH_MAX
+# define PATH_MAX (pathconf ("/", _PC_PATH_MAX) < 1 ? 1024 : pathconf ("/", _PC_PATH_MAX))
+#endif
+
+/* Don't include sys/param.h if it already has been. */
+#if defined HAVE_SYS_PARAM_H && !defined PATH_MAX && !defined MAXPATHLEN
+# include <sys/param.h>
+#endif
+
+#if !defined PATH_MAX && defined MAXPATHLEN
+# define PATH_MAX MAXPATHLEN
+#endif
+
+#ifndef PATH_MAX
+# define PATH_MAX _POSIX_PATH_MAX
+#endif
+
+/* Pathname support.
+ ISSLASH(C) tests whether C is a directory separator character.
+ IS_ABSOLUTE_PATH(P) tests whether P is an absolute path. If it is not,
+ it may be concatenated to a directory pathname.
+ IS_PATH_WITH_DIR(P) tests whether P contains a directory specification.
+ */
+#if defined _WIN32 || defined __WIN32__ || defined __EMX__ || defined __DJGPP__
+ /* Win32, OS/2, DOS */
+# define ISSLASH(C) ((C) == '/' || (C) == '\\')
+# define HAS_DEVICE(P) \
+ ((((P)[0] >= 'A' && (P)[0] <= 'Z') || ((P)[0] >= 'a' && (P)[0] <= 'z')) \
+ && (P)[1] == ':')
+# define IS_ABSOLUTE_PATH(P) (ISSLASH ((P)[0]) || HAS_DEVICE (P))
+# define IS_PATH_WITH_DIR(P) \
+ (strchr (P, '/') != NULL || strchr (P, '\\') != NULL || HAS_DEVICE (P))
+#else
+ /* Unix */
+# define ISSLASH(C) ((C) == '/')
+# define IS_ABSOLUTE_PATH(P) ISSLASH ((P)[0])
+# define IS_PATH_WITH_DIR(P) (strchr (P, '/') != NULL)
+#endif
+
+/* This is the type used for the search tree where known translations
+ are stored. */
+struct known_translation_t
+{
+ /* Domain in which to search. */
+ char *domainname;
+
+ /* The category. */
+ int category;
+
+ /* State of the catalog counter at the point the string was found. */
+ int counter;
+
+ /* Catalog where the string was found. */
+ struct loaded_l10nfile *domain;
+
+ /* And finally the translation. */
+ const char *translation;
+ size_t translation_length;
+
+ /* Pointer to the string in question. */
+ char msgid[ZERO];
+};
+
+/* Root of the search tree with known translations. We can use this
+ only if the system provides the `tsearch' function family. */
+#if defined HAVE_TSEARCH || defined _LIBC
+# include <search.h>
+
+static void *root;
+
+# ifdef _LIBC
+# define tsearch __tsearch
+# endif
+
+/* Function to compare two entries in the table of known translations. */
+static int transcmp PARAMS ((const void *p1, const void *p2));
+static int
+transcmp (p1, p2)
+ const void *p1;
+ const void *p2;
+{
+ const struct known_translation_t *s1;
+ const struct known_translation_t *s2;
+ int result;
+
+ s1 = (const struct known_translation_t *) p1;
+ s2 = (const struct known_translation_t *) p2;
+
+ result = strcmp (s1->msgid, s2->msgid);
+ if (result == 0)
+ {
+ result = strcmp (s1->domainname, s2->domainname);
+ if (result == 0)
+ /* We compare the category last (though this is the cheapest
+ operation) since it is hopefully always the same (namely
+ LC_MESSAGES). */
+ result = s1->category - s2->category;
+ }
+
+ return result;
+}
+#endif
+
+/* Name of the default domain used for gettext(3) prior any call to
+ textdomain(3). The default value for this is "messages". */
+const char _nl_default_default_domain[] = "messages";
+
+/* Value used as the default domain for gettext(3). */
+const char *_nl_current_default_domain = _nl_default_default_domain;
+
+/* Contains the default location of the message catalogs. */
+#if defined __EMX__
+extern const char _nl_default_dirname[];
+#else
+const char _nl_default_dirname[] = LOCALEDIR;
+#endif
+
+/* List with bindings of specific domains created by bindtextdomain()
+ calls. */
+struct binding *_nl_domain_bindings;
+
+/* Prototypes for local functions. */
+static char *plural_lookup PARAMS ((struct loaded_l10nfile *domain,
+ unsigned long int n,
+ const char *translation,
+ size_t translation_len))
+ internal_function;
+static const char *category_to_name PARAMS ((int category)) internal_function;
+static const char *guess_category_value PARAMS ((int category,
+ const char *categoryname))
+ internal_function;
+
+
+/* For those loosing systems which don't have `alloca' we have to add
+ some additional code emulating it. */
+#ifdef HAVE_ALLOCA
+/* Nothing has to be done. */
+# define ADD_BLOCK(list, address) /* nothing */
+# define FREE_BLOCKS(list) /* nothing */
+#else
+struct block_list
+{
+ void *address;
+ struct block_list *next;
+};
+# define ADD_BLOCK(list, addr) \
+ do { \
+ struct block_list *newp = (struct block_list *) malloc (sizeof (*newp)); \
+ /* If we cannot get a free block we cannot add the new element to \
+ the list. */ \
+ if (newp != NULL) { \
+ newp->address = (addr); \
+ newp->next = (list); \
+ (list) = newp; \
+ } \
+ } while (0)
+# define FREE_BLOCKS(list) \
+ do { \
+ while (list != NULL) { \
+ struct block_list *old = list; \
+ list = list->next; \
+ free (old); \
+ } \
+ } while (0)
+# undef alloca
+# define alloca(size) (malloc (size))
+#endif /* have alloca */
+
+
+#ifdef _LIBC
+/* List of blocks allocated for translations. */
+typedef struct transmem_list
+{
+ struct transmem_list *next;
+ char data[ZERO];
+} transmem_block_t;
+static struct transmem_list *transmem_list;
+#else
+typedef unsigned char transmem_block_t;
+#endif
+
+
+/* Names for the libintl functions are a problem. They must not clash
+ with existing names and they should follow ANSI C. But this source
+ code is also used in GNU C Library where the names have a __
+ prefix. So we have to make a difference here. */
+#ifdef _LIBC
+# define DCIGETTEXT __dcigettext
+#else
+# define DCIGETTEXT dcigettext__
+#endif
+
+/* Lock variable to protect the global data in the gettext implementation. */
+#ifdef _LIBC
+__libc_rwlock_define_initialized (, _nl_state_lock)
+#endif
+
+/* Checking whether the binaries runs SUID must be done and glibc provides
+ easier methods therefore we make a difference here. */
+#ifdef _LIBC
+# define ENABLE_SECURE __libc_enable_secure
+# define DETERMINE_SECURE
+#else
+# ifndef HAVE_GETUID
+# define getuid() 0
+# endif
+# ifndef HAVE_GETGID
+# define getgid() 0
+# endif
+# ifndef HAVE_GETEUID
+# define geteuid() getuid()
+# endif
+# ifndef HAVE_GETEGID
+# define getegid() getgid()
+# endif
+static int enable_secure;
+# define ENABLE_SECURE (enable_secure == 1)
+# define DETERMINE_SECURE \
+ if (enable_secure == 0) \
+ { \
+ if (getuid () != geteuid () || getgid () != getegid ()) \
+ enable_secure = 1; \
+ else \
+ enable_secure = -1; \
+ }
+#endif
+
+/* Get the function to evaluate the plural expression. */
+#include "eval-plural.h"
+
+/* Look up MSGID in the DOMAINNAME message catalog for the current
+ CATEGORY locale and, if PLURAL is nonzero, search over string
+ depending on the plural form determined by N. */
+char *
+DCIGETTEXT (domainname, msgid1, msgid2, plural, n, category)
+ const char *domainname;
+ const char *msgid1;
+ const char *msgid2;
+ int plural;
+ unsigned long int n;
+ int category;
+{
+#ifndef HAVE_ALLOCA
+ struct block_list *block_list = NULL;
+#endif
+ struct loaded_l10nfile *domain;
+ struct binding *binding;
+ const char *categoryname;
+ const char *categoryvalue;
+ char *dirname, *xdomainname;
+ char *single_locale;
+ char *retval;
+ size_t retlen;
+ int saved_errno;
+#if defined HAVE_TSEARCH || defined _LIBC
+ struct known_translation_t *search;
+ struct known_translation_t **foundp = NULL;
+ size_t msgid_len;
+#endif
+ size_t domainname_len;
+
+ /* If no real MSGID is given return NULL. */
+ if (msgid1 == NULL)
+ return NULL;
+
+ __libc_rwlock_rdlock (_nl_state_lock);
+
+ /* If DOMAINNAME is NULL, we are interested in the default domain. If
+ CATEGORY is not LC_MESSAGES this might not make much sense but the
+ definition left this undefined. */
+ if (domainname == NULL)
+ domainname = _nl_current_default_domain;
+
+ /* OS/2 specific: backward compatibility with older libintl versions */
+#ifdef LC_MESSAGES_COMPAT
+ if (category == LC_MESSAGES_COMPAT)
+ category = LC_MESSAGES;
+#endif
+
+#if defined HAVE_TSEARCH || defined _LIBC
+ msgid_len = strlen (msgid1) + 1;
+
+ /* Try to find the translation among those which we found at
+ some time. */
+ search = (struct known_translation_t *)
+ alloca (offsetof (struct known_translation_t, msgid) + msgid_len);
+ memcpy (search->msgid, msgid1, msgid_len);
+ search->domainname = (char *) domainname;
+ search->category = category;
+
+ foundp = (struct known_translation_t **) tfind (search, &root, transcmp);
+ if (foundp != NULL && (*foundp)->counter == _nl_msg_cat_cntr)
+ {
+ /* Now deal with plural. */
+ if (plural)
+ retval = plural_lookup ((*foundp)->domain, n, (*foundp)->translation,
+ (*foundp)->translation_length);
+ else
+ retval = (char *) (*foundp)->translation;
+
+ __libc_rwlock_unlock (_nl_state_lock);
+ return retval;
+ }
+#endif
+
+ /* Preserve the `errno' value. */
+ saved_errno = errno;
+
+ /* See whether this is a SUID binary or not. */
+ DETERMINE_SECURE;
+
+ /* First find matching binding. */
+ for (binding = _nl_domain_bindings; binding != NULL; binding = binding->next)
+ {
+ int compare = strcmp (domainname, binding->domainname);
+ if (compare == 0)
+ /* We found it! */
+ break;
+ if (compare < 0)
+ {
+ /* It is not in the list. */
+ binding = NULL;
+ break;
+ }
+ }
+
+ if (binding == NULL)
+ dirname = (char *) _nl_default_dirname;
+ else if (IS_ABSOLUTE_PATH (binding->dirname))
+ dirname = binding->dirname;
+ else
+ {
+ /* We have a relative path. Make it absolute now. */
+ size_t dirname_len = strlen (binding->dirname) + 1;
+ size_t path_max;
+ char *ret;
+
+ path_max = (unsigned int) PATH_MAX;
+ path_max += 2; /* The getcwd docs say to do this. */
+
+ for (;;)
+ {
+ dirname = (char *) alloca (path_max + dirname_len);
+ ADD_BLOCK (block_list, dirname);
+
+ __set_errno (0);
+ ret = getcwd (dirname, path_max);
+ if (ret != NULL || errno != ERANGE)
+ break;
+
+ path_max += path_max / 2;
+ path_max += PATH_INCR;
+ }
+
+ if (ret == NULL)
+ {
+ /* We cannot get the current working directory. Don't signal an
+ error but simply return the default string. */
+ FREE_BLOCKS (block_list);
+ __libc_rwlock_unlock (_nl_state_lock);
+ __set_errno (saved_errno);
+ return (plural == 0
+ ? (char *) msgid1
+ /* Use the Germanic plural rule. */
+ : n == 1 ? (char *) msgid1 : (char *) msgid2);
+ }
+
+ stpcpy (stpcpy (strchr (dirname, '\0'), "/"), binding->dirname);
+ }
+
+ /* Now determine the symbolic name of CATEGORY and its value. */
+ categoryname = category_to_name (category);
+ categoryvalue = guess_category_value (category, categoryname);
+
+ domainname_len = strlen (domainname);
+ xdomainname = (char *) alloca (strlen (categoryname)
+ + domainname_len + 5);
+ ADD_BLOCK (block_list, xdomainname);
+
+ stpcpy (mempcpy (stpcpy (stpcpy (xdomainname, categoryname), "/"),
+ domainname, domainname_len),
+ ".mo");
+
+ /* Creating working area. */
+ single_locale = (char *) alloca (strlen (categoryvalue) + 1);
+ ADD_BLOCK (block_list, single_locale);
+
+
+ /* Search for the given string. This is a loop because we perhaps
+ got an ordered list of languages to consider for the translation. */
+ while (1)
+ {
+ /* Make CATEGORYVALUE point to the next element of the list. */
+ while (categoryvalue[0] != '\0' && categoryvalue[0] == ':')
+ ++categoryvalue;
+ if (categoryvalue[0] == '\0')
+ {
+ /* The whole contents of CATEGORYVALUE has been searched but
+ no valid entry has been found. We solve this situation
+ by implicitly appending a "C" entry, i.e. no translation
+ will take place. */
+ single_locale[0] = 'C';
+ single_locale[1] = '\0';
+ }
+ else
+ {
+ char *cp = single_locale;
+ while (categoryvalue[0] != '\0' && categoryvalue[0] != ':')
+ *cp++ = *categoryvalue++;
+ *cp = '\0';
+
+ /* When this is a SUID binary we must not allow accessing files
+ outside the dedicated directories. */
+ if (ENABLE_SECURE && IS_PATH_WITH_DIR (single_locale))
+ /* Ingore this entry. */
+ continue;
+ }
+
+ /* If the current locale value is C (or POSIX) we don't load a
+ domain. Return the MSGID. */
+ if (strcmp (single_locale, "C") == 0
+ || strcmp (single_locale, "POSIX") == 0)
+ {
+ FREE_BLOCKS (block_list);
+ __libc_rwlock_unlock (_nl_state_lock);
+ __set_errno (saved_errno);
+ return (plural == 0
+ ? (char *) msgid1
+ /* Use the Germanic plural rule. */
+ : n == 1 ? (char *) msgid1 : (char *) msgid2);
+ }
+
+
+ /* Find structure describing the message catalog matching the
+ DOMAINNAME and CATEGORY. */
+ domain = _nl_find_domain (dirname, single_locale, xdomainname, binding);
+
+ if (domain != NULL)
+ {
+ retval = _nl_find_msg (domain, binding, msgid1, &retlen);
+
+ if (retval == NULL)
+ {
+ int cnt;
+
+ for (cnt = 0; domain->successor[cnt] != NULL; ++cnt)
+ {
+ retval = _nl_find_msg (domain->successor[cnt], binding,
+ msgid1, &retlen);
+
+ if (retval != NULL)
+ {
+ domain = domain->successor[cnt];
+ break;
+ }
+ }
+ }
+
+ if (retval != NULL)
+ {
+ /* Found the translation of MSGID1 in domain DOMAIN:
+ starting at RETVAL, RETLEN bytes. */
+ FREE_BLOCKS (block_list);
+ __set_errno (saved_errno);
+#if defined HAVE_TSEARCH || defined _LIBC
+ if (foundp == NULL)
+ {
+ /* Create a new entry and add it to the search tree. */
+ struct known_translation_t *newp;
+
+ newp = (struct known_translation_t *)
+ malloc (offsetof (struct known_translation_t, msgid)
+ + msgid_len + domainname_len + 1);
+ if (newp != NULL)
+ {
+ newp->domainname =
+ mempcpy (newp->msgid, msgid1, msgid_len);
+ memcpy (newp->domainname, domainname, domainname_len + 1);
+ newp->category = category;
+ newp->counter = _nl_msg_cat_cntr;
+ newp->domain = domain;
+ newp->translation = retval;
+ newp->translation_length = retlen;
+
+ /* Insert the entry in the search tree. */
+ foundp = (struct known_translation_t **)
+ tsearch (newp, &root, transcmp);
+ if (foundp == NULL
+ || __builtin_expect (*foundp != newp, 0))
+ /* The insert failed. */
+ free (newp);
+ }
+ }
+ else
+ {
+ /* We can update the existing entry. */
+ (*foundp)->counter = _nl_msg_cat_cntr;
+ (*foundp)->domain = domain;
+ (*foundp)->translation = retval;
+ (*foundp)->translation_length = retlen;
+ }
+#endif
+ /* Now deal with plural. */
+ if (plural)
+ retval = plural_lookup (domain, n, retval, retlen);
+
+ __libc_rwlock_unlock (_nl_state_lock);
+ return retval;
+ }
+ }
+ }
+ /* NOTREACHED */
+}
+
+
+char *
+internal_function
+_nl_find_msg (domain_file, domainbinding, msgid, lengthp)
+ struct loaded_l10nfile *domain_file;
+ struct binding *domainbinding;
+ const char *msgid;
+ size_t *lengthp;
+{
+ struct loaded_domain *domain;
+ size_t act;
+ char *result;
+ size_t resultlen;
+
+ if (domain_file->decided == 0)
+ _nl_load_domain (domain_file, domainbinding);
+
+ if (domain_file->data == NULL)
+ return NULL;
+
+ domain = (struct loaded_domain *) domain_file->data;
+
+ /* Locate the MSGID and its translation. */
+ if (domain->hash_size > 2 && domain->hash_tab != NULL)
+ {
+ /* Use the hashing table. */
+ nls_uint32 len = strlen (msgid);
+ nls_uint32 hash_val = hash_string (msgid);
+ nls_uint32 idx = hash_val % domain->hash_size;
+ nls_uint32 incr = 1 + (hash_val % (domain->hash_size - 2));
+
+ while (1)
+ {
+ nls_uint32 nstr = W (domain->must_swap, domain->hash_tab[idx]);
+
+ if (nstr == 0)
+ /* Hash table entry is empty. */
+ return NULL;
+
+ /* Compare msgid with the original string at index nstr-1.
+ We compare the lengths with >=, not ==, because plural entries
+ are represented by strings with an embedded NUL. */
+ if (W (domain->must_swap, domain->orig_tab[nstr - 1].length) >= len
+ && (strcmp (msgid,
+ domain->data + W (domain->must_swap,
+ domain->orig_tab[nstr - 1].offset))
+ == 0))
+ {
+ act = nstr - 1;
+ goto found;
+ }
+
+ if (idx >= domain->hash_size - incr)
+ idx -= domain->hash_size - incr;
+ else
+ idx += incr;
+ }
+ /* NOTREACHED */
+ }
+ else
+ {
+ /* Try the default method: binary search in the sorted array of
+ messages. */
+ size_t top, bottom;
+
+ bottom = 0;
+ top = domain->nstrings;
+ while (bottom < top)
+ {
+ int cmp_val;
+
+ act = (bottom + top) / 2;
+ cmp_val = strcmp (msgid, (domain->data
+ + W (domain->must_swap,
+ domain->orig_tab[act].offset)));
+ if (cmp_val < 0)
+ top = act;
+ else if (cmp_val > 0)
+ bottom = act + 1;
+ else
+ goto found;
+ }
+ /* No translation was found. */
+ return NULL;
+ }
+
+ found:
+ /* The translation was found at index ACT. If we have to convert the
+ string to use a different character set, this is the time. */
+ result = ((char *) domain->data
+ + W (domain->must_swap, domain->trans_tab[act].offset));
+ resultlen = W (domain->must_swap, domain->trans_tab[act].length) + 1;
+
+#if defined _LIBC || HAVE_ICONV
+ if (domain->codeset_cntr
+ != (domainbinding != NULL ? domainbinding->codeset_cntr : 0))
+ {
+ /* The domain's codeset has changed through bind_textdomain_codeset()
+ since the message catalog was initialized or last accessed. We
+ have to reinitialize the converter. */
+ _nl_free_domain_conv (domain);
+ _nl_init_domain_conv (domain_file, domain, domainbinding);
+ }
+
+ if (
+# ifdef _LIBC
+ domain->conv != (__gconv_t) -1
+# else
+# if HAVE_ICONV
+ domain->conv != (iconv_t) -1
+# endif
+# endif
+ )
+ {
+ /* We are supposed to do a conversion. First allocate an
+ appropriate table with the same structure as the table
+ of translations in the file, where we can put the pointers
+ to the converted strings in.
+ There is a slight complication with plural entries. They
+ are represented by consecutive NUL terminated strings. We
+ handle this case by converting RESULTLEN bytes, including
+ NULs. */
+
+ if (domain->conv_tab == NULL
+ && ((domain->conv_tab = (char **) calloc (domain->nstrings,
+ sizeof (char *)))
+ == NULL))
+ /* Mark that we didn't succeed allocating a table. */
+ domain->conv_tab = (char **) -1;
+
+ if (__builtin_expect (domain->conv_tab == (char **) -1, 0))
+ /* Nothing we can do, no more memory. */
+ goto converted;
+
+ if (domain->conv_tab[act] == NULL)
+ {
+ /* We haven't used this string so far, so it is not
+ translated yet. Do this now. */
+ /* We use a bit more efficient memory handling.
+ We allocate always larger blocks which get used over
+ time. This is faster than many small allocations. */
+ __libc_lock_define_initialized (static, lock)
+# define INITIAL_BLOCK_SIZE 4080
+ static unsigned char *freemem;
+ static size_t freemem_size;
+
+ const unsigned char *inbuf;
+ unsigned char *outbuf;
+ int malloc_count;
+# ifndef _LIBC
+ transmem_block_t *transmem_list = NULL;
+# endif
+
+ __libc_lock_lock (lock);
+
+ inbuf = (const unsigned char *) result;
+ outbuf = freemem + sizeof (size_t);
+
+ malloc_count = 0;
+ while (1)
+ {
+ transmem_block_t *newmem;
+# ifdef _LIBC
+ size_t non_reversible;
+ int res;
+
+ if (freemem_size < sizeof (size_t))
+ goto resize_freemem;
+
+ res = __gconv (domain->conv,
+ &inbuf, inbuf + resultlen,
+ &outbuf,
+ outbuf + freemem_size - sizeof (size_t),
+ &non_reversible);
+
+ if (res == __GCONV_OK || res == __GCONV_EMPTY_INPUT)
+ break;
+
+ if (res != __GCONV_FULL_OUTPUT)
+ {
+ __libc_lock_unlock (lock);
+ goto converted;
+ }
+
+ inbuf = result;
+# else
+# if HAVE_ICONV
+ const char *inptr = (const char *) inbuf;
+ size_t inleft = resultlen;
+ char *outptr = (char *) outbuf;
+ size_t outleft;
+
+ if (freemem_size < sizeof (size_t))
+ goto resize_freemem;
+
+ outleft = freemem_size - sizeof (size_t);
+ if (iconv (domain->conv,
+ (ICONV_CONST char **) &inptr, &inleft,
+ &outptr, &outleft)
+ != (size_t) (-1))
+ {
+ outbuf = (unsigned char *) outptr;
+ break;
+ }
+ if (errno != E2BIG)
+ {
+ __libc_lock_unlock (lock);
+ goto converted;
+ }
+# endif
+# endif
+
+ resize_freemem:
+ /* We must allocate a new buffer or resize the old one. */
+ if (malloc_count > 0)
+ {
+ ++malloc_count;
+ freemem_size = malloc_count * INITIAL_BLOCK_SIZE;
+ newmem = (transmem_block_t *) realloc (transmem_list,
+ freemem_size);
+# ifdef _LIBC
+ if (newmem != NULL)
+ transmem_list = transmem_list->next;
+ else
+ {
+ struct transmem_list *old = transmem_list;
+
+ transmem_list = transmem_list->next;
+ free (old);
+ }
+# endif
+ }
+ else
+ {
+ malloc_count = 1;
+ freemem_size = INITIAL_BLOCK_SIZE;
+ newmem = (transmem_block_t *) malloc (freemem_size);
+ }
+ if (__builtin_expect (newmem == NULL, 0))
+ {
+ freemem = NULL;
+ freemem_size = 0;
+ __libc_lock_unlock (lock);
+ goto converted;
+ }
+
+# ifdef _LIBC
+ /* Add the block to the list of blocks we have to free
+ at some point. */
+ newmem->next = transmem_list;
+ transmem_list = newmem;
+
+ freemem = newmem->data;
+ freemem_size -= offsetof (struct transmem_list, data);
+# else
+ transmem_list = newmem;
+ freemem = newmem;
+# endif
+
+ outbuf = freemem + sizeof (size_t);
+ }
+
+ /* We have now in our buffer a converted string. Put this
+ into the table of conversions. */
+ *(size_t *) freemem = outbuf - freemem - sizeof (size_t);
+ domain->conv_tab[act] = (char *) freemem;
+ /* Shrink freemem, but keep it aligned. */
+ freemem_size -= outbuf - freemem;
+ freemem = outbuf;
+ freemem += freemem_size & (alignof (size_t) - 1);
+ freemem_size = freemem_size & ~ (alignof (size_t) - 1);
+
+ __libc_lock_unlock (lock);
+ }
+
+ /* Now domain->conv_tab[act] contains the translation of all
+ the plural variants. */
+ result = domain->conv_tab[act] + sizeof (size_t);
+ resultlen = *(size_t *) domain->conv_tab[act];
+ }
+
+ converted:
+ /* The result string is converted. */
+
+#endif /* _LIBC || HAVE_ICONV */
+
+ *lengthp = resultlen;
+ return result;
+}
+
+
+/* Look up a plural variant. */
+static char *
+internal_function
+plural_lookup (domain, n, translation, translation_len)
+ struct loaded_l10nfile *domain;
+ unsigned long int n;
+ const char *translation;
+ size_t translation_len;
+{
+ struct loaded_domain *domaindata = (struct loaded_domain *) domain->data;
+ unsigned long int index;
+ const char *p;
+
+ index = plural_eval (domaindata->plural, n);
+ if (index >= domaindata->nplurals)
+ /* This should never happen. It means the plural expression and the
+ given maximum value do not match. */
+ index = 0;
+
+ /* Skip INDEX strings at TRANSLATION. */
+ p = translation;
+ while (index-- > 0)
+ {
+#ifdef _LIBC
+ p = __rawmemchr (p, '\0');
+#else
+ p = strchr (p, '\0');
+#endif
+ /* And skip over the NUL byte. */
+ p++;
+
+ if (p >= translation + translation_len)
+ /* This should never happen. It means the plural expression
+ evaluated to a value larger than the number of variants
+ available for MSGID1. */
+ return (char *) translation;
+ }
+ return (char *) p;
+}
+
+
+/* Return string representation of locale CATEGORY. */
+static const char *
+internal_function
+category_to_name (category)
+ int category;
+{
+ const char *retval;
+
+ switch (category)
+ {
+#ifdef LC_COLLATE
+ case LC_COLLATE:
+ retval = "LC_COLLATE";
+ break;
+#endif
+#ifdef LC_CTYPE
+ case LC_CTYPE:
+ retval = "LC_CTYPE";
+ break;
+#endif
+#ifdef LC_MONETARY
+ case LC_MONETARY:
+ retval = "LC_MONETARY";
+ break;
+#endif
+#ifdef LC_NUMERIC
+ case LC_NUMERIC:
+ retval = "LC_NUMERIC";
+ break;
+#endif
+#ifdef LC_TIME
+ case LC_TIME:
+ retval = "LC_TIME";
+ break;
+#endif
+#ifdef LC_MESSAGES
+ case LC_MESSAGES:
+ retval = "LC_MESSAGES";
+ break;
+#endif
+#ifdef LC_RESPONSE
+ case LC_RESPONSE:
+ retval = "LC_RESPONSE";
+ break;
+#endif
+#ifdef LC_ALL
+ case LC_ALL:
+ /* This might not make sense but is perhaps better than any other
+ value. */
+ retval = "LC_ALL";
+ break;
+#endif
+ default:
+ /* If you have a better idea for a default value let me know. */
+ retval = "LC_XXX";
+ }
+
+ return retval;
+}
+
+/* Guess value of current locale from value of the environment variables. */
+static const char *
+internal_function
+guess_category_value (category, categoryname)
+ int category;
+ const char *categoryname;
+{
+ const char *language;
+ const char *retval;
+
+ /* The highest priority value is the `LANGUAGE' environment
+ variable. But we don't use the value if the currently selected
+ locale is the C locale. This is a GNU extension. */
+ language = getenv ("LANGUAGE");
+ if (language != NULL && language[0] == '\0')
+ language = NULL;
+
+ /* We have to proceed with the POSIX methods of looking to `LC_ALL',
+ `LC_xxx', and `LANG'. On some systems this can be done by the
+ `setlocale' function itself. */
+#ifdef _LIBC
+ retval = setlocale (category, NULL);
+#else
+ retval = _nl_locale_name (category, categoryname);
+#endif
+
+ /* Ignore LANGUAGE if the locale is set to "C" because
+ 1. "C" locale usually uses the ASCII encoding, and most international
+ messages use non-ASCII characters. These characters get displayed
+ as question marks (if using glibc's iconv()) or as invalid 8-bit
+ characters (because other iconv()s refuse to convert most non-ASCII
+ characters to ASCII). In any case, the output is ugly.
+ 2. The precise output of some programs in the "C" locale is specified
+ by POSIX and should not depend on environment variables like
+ "LANGUAGE". We allow such programs to use gettext(). */
+ return language != NULL && strcmp (retval, "C") != 0 ? language : retval;
+}
+
+/* @@ begin of epilog @@ */
+
+/* We don't want libintl.a to depend on any other library. So we
+ avoid the non-standard function stpcpy. In GNU C Library this
+ function is available, though. Also allow the symbol HAVE_STPCPY
+ to be defined. */
+#if !_LIBC && !HAVE_STPCPY
+static char *
+stpcpy (dest, src)
+ char *dest;
+ const char *src;
+{
+ while ((*dest++ = *src++) != '\0')
+ /* Do nothing. */ ;
+ return dest - 1;
+}
+#endif
+
+#if !_LIBC && !HAVE_MEMPCPY
+static void *
+mempcpy (dest, src, n)
+ void *dest;
+ const void *src;
+ size_t n;
+{
+ return (void *) ((char *) memcpy (dest, src, n) + n);
+}
+#endif
+
+
+#ifdef _LIBC
+/* If we want to free all resources we have to do some work at
+ program's end. */
+static void __attribute__ ((unused))
+free_mem (void)
+{
+ void *old;
+
+ while (_nl_domain_bindings != NULL)
+ {
+ struct binding *oldp = _nl_domain_bindings;
+ _nl_domain_bindings = _nl_domain_bindings->next;
+ if (oldp->dirname != _nl_default_dirname)
+ /* Yes, this is a pointer comparison. */
+ free (oldp->dirname);
+ free (oldp->codeset);
+ free (oldp);
+ }
+
+ if (_nl_current_default_domain != _nl_default_default_domain)
+ /* Yes, again a pointer comparison. */
+ free ((char *) _nl_current_default_domain);
+
+ /* Remove the search tree with the known translations. */
+ __tdestroy (root, free);
+ root = NULL;
+
+ while (transmem_list != NULL)
+ {
+ old = transmem_list;
+ transmem_list = transmem_list->next;
+ free (old);
+ }
+}
+
+text_set_element (__libc_subfreeres, free_mem);
+#endif
diff --git a/gnu/usr.bin/texinfo/intl/dcngettext.c b/gnu/usr.bin/texinfo/intl/dcngettext.c
new file mode 100644
index 00000000000..c16af21269c
--- /dev/null
+++ b/gnu/usr.bin/texinfo/intl/dcngettext.c
@@ -0,0 +1,60 @@
+/* Implementation of the dcngettext(3) function.
+ Copyright (C) 1995-1999, 2000, 2001 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+ USA. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "gettextP.h"
+#ifdef _LIBC
+# include <libintl.h>
+#else
+# include "libgnuintl.h"
+#endif
+
+/* @@ end of prolog @@ */
+
+/* Names for the libintl functions are a problem. They must not clash
+ with existing names and they should follow ANSI C. But this source
+ code is also used in GNU C Library where the names have a __
+ prefix. So we have to make a difference here. */
+#ifdef _LIBC
+# define DCNGETTEXT __dcngettext
+# define DCIGETTEXT __dcigettext
+#else
+# define DCNGETTEXT dcngettext__
+# define DCIGETTEXT dcigettext__
+#endif
+
+/* Look up MSGID in the DOMAINNAME message catalog for the current CATEGORY
+ locale. */
+char *
+DCNGETTEXT (domainname, msgid1, msgid2, n, category)
+ const char *domainname;
+ const char *msgid1;
+ const char *msgid2;
+ unsigned long int n;
+ int category;
+{
+ return DCIGETTEXT (domainname, msgid1, msgid2, 1, n, category);
+}
+
+#ifdef _LIBC
+/* Alias for function name in GNU C Library. */
+weak_alias (__dcngettext, dcngettext);
+#endif
diff --git a/gnu/usr.bin/texinfo/intl/dngettext.c b/gnu/usr.bin/texinfo/intl/dngettext.c
new file mode 100644
index 00000000000..f214e95b471
--- /dev/null
+++ b/gnu/usr.bin/texinfo/intl/dngettext.c
@@ -0,0 +1,61 @@
+/* Implementation of the dngettext(3) function.
+ Copyright (C) 1995-1997, 2000, 2001 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+ USA. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <locale.h>
+
+#include "gettextP.h"
+#ifdef _LIBC
+# include <libintl.h>
+#else
+# include "libgnuintl.h"
+#endif
+
+/* @@ end of prolog @@ */
+
+/* Names for the libintl functions are a problem. They must not clash
+ with existing names and they should follow ANSI C. But this source
+ code is also used in GNU C Library where the names have a __
+ prefix. So we have to make a difference here. */
+#ifdef _LIBC
+# define DNGETTEXT __dngettext
+# define DCNGETTEXT __dcngettext
+#else
+# define DNGETTEXT dngettext__
+# define DCNGETTEXT dcngettext__
+#endif
+
+/* Look up MSGID in the DOMAINNAME message catalog of the current
+ LC_MESSAGES locale and skip message according to the plural form. */
+char *
+DNGETTEXT (domainname, msgid1, msgid2, n)
+ const char *domainname;
+ const char *msgid1;
+ const char *msgid2;
+ unsigned long int n;
+{
+ return DCNGETTEXT (domainname, msgid1, msgid2, n, LC_MESSAGES);
+}
+
+#ifdef _LIBC
+/* Alias for function name in GNU C Library. */
+weak_alias (__dngettext, dngettext);
+#endif
diff --git a/gnu/usr.bin/texinfo/intl/eval-plural.h b/gnu/usr.bin/texinfo/intl/eval-plural.h
new file mode 100644
index 00000000000..44f493425e9
--- /dev/null
+++ b/gnu/usr.bin/texinfo/intl/eval-plural.h
@@ -0,0 +1,106 @@
+/* Plural expression evaluation.
+ Copyright (C) 2000-2002 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+ USA. */
+
+#ifndef STATIC
+#define STATIC static
+#endif
+
+/* Evaluate the plural expression and return an index value. */
+STATIC unsigned long int plural_eval PARAMS ((struct expression *pexp,
+ unsigned long int n))
+ internal_function;
+
+STATIC
+unsigned long int
+internal_function
+plural_eval (pexp, n)
+ struct expression *pexp;
+ unsigned long int n;
+{
+ switch (pexp->nargs)
+ {
+ case 0:
+ switch (pexp->operation)
+ {
+ case var:
+ return n;
+ case num:
+ return pexp->val.num;
+ default:
+ break;
+ }
+ /* NOTREACHED */
+ break;
+ case 1:
+ {
+ /* pexp->operation must be lnot. */
+ unsigned long int arg = plural_eval (pexp->val.args[0], n);
+ return ! arg;
+ }
+ case 2:
+ {
+ unsigned long int leftarg = plural_eval (pexp->val.args[0], n);
+ if (pexp->operation == lor)
+ return leftarg || plural_eval (pexp->val.args[1], n);
+ else if (pexp->operation == land)
+ return leftarg && plural_eval (pexp->val.args[1], n);
+ else
+ {
+ unsigned long int rightarg = plural_eval (pexp->val.args[1], n);
+
+ switch (pexp->operation)
+ {
+ case mult:
+ return leftarg * rightarg;
+ case divide:
+ return leftarg / rightarg;
+ case module:
+ return leftarg % rightarg;
+ case plus:
+ return leftarg + rightarg;
+ case minus:
+ return leftarg - rightarg;
+ case less_than:
+ return leftarg < rightarg;
+ case greater_than:
+ return leftarg > rightarg;
+ case less_or_equal:
+ return leftarg <= rightarg;
+ case greater_or_equal:
+ return leftarg >= rightarg;
+ case equal:
+ return leftarg == rightarg;
+ case not_equal:
+ return leftarg != rightarg;
+ default:
+ break;
+ }
+ }
+ /* NOTREACHED */
+ break;
+ }
+ case 3:
+ {
+ /* pexp->operation must be qmop. */
+ unsigned long int boolarg = plural_eval (pexp->val.args[0], n);
+ return plural_eval (pexp->val.args[boolarg ? 1 : 2], n);
+ }
+ }
+ /* NOTREACHED */
+ return 0;
+}
diff --git a/gnu/usr.bin/texinfo/intl/gmo.h b/gnu/usr.bin/texinfo/intl/gmo.h
new file mode 100644
index 00000000000..f05ae470c72
--- /dev/null
+++ b/gnu/usr.bin/texinfo/intl/gmo.h
@@ -0,0 +1,100 @@
+/* Description of GNU message catalog format: general file layout.
+ Copyright (C) 1995, 1997, 2000, 2001 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+ USA. */
+
+#ifndef _GETTEXT_H
+#define _GETTEXT_H 1
+
+#include <limits.h>
+
+/* @@ end of prolog @@ */
+
+/* The magic number of the GNU message catalog format. */
+#define _MAGIC 0x950412de
+#define _MAGIC_SWAPPED 0xde120495
+
+/* Revision number of the currently used .mo (binary) file format. */
+#define MO_REVISION_NUMBER 0
+
+/* The following contortions are an attempt to use the C preprocessor
+ to determine an unsigned integral type that is 32 bits wide. An
+ alternative approach is to use autoconf's AC_CHECK_SIZEOF macro, but
+ as of version autoconf-2.13, the AC_CHECK_SIZEOF macro doesn't work
+ when cross-compiling. */
+
+#if __STDC__
+# define UINT_MAX_32_BITS 4294967295U
+#else
+# define UINT_MAX_32_BITS 0xFFFFFFFF
+#endif
+
+/* If UINT_MAX isn't defined, assume it's a 32-bit type.
+ This should be valid for all systems GNU cares about because
+ that doesn't include 16-bit systems, and only modern systems
+ (that certainly have <limits.h>) have 64+-bit integral types. */
+
+#ifndef UINT_MAX
+# define UINT_MAX UINT_MAX_32_BITS
+#endif
+
+#if UINT_MAX == UINT_MAX_32_BITS
+typedef unsigned nls_uint32;
+#else
+# if USHRT_MAX == UINT_MAX_32_BITS
+typedef unsigned short nls_uint32;
+# else
+# if ULONG_MAX == UINT_MAX_32_BITS
+typedef unsigned long nls_uint32;
+# else
+ /* The following line is intended to throw an error. Using #error is
+ not portable enough. */
+ "Cannot determine unsigned 32-bit data type."
+# endif
+# endif
+#endif
+
+
+/* Header for binary .mo file format. */
+struct mo_file_header
+{
+ /* The magic number. */
+ nls_uint32 magic;
+ /* The revision number of the file format. */
+ nls_uint32 revision;
+ /* The number of strings pairs. */
+ nls_uint32 nstrings;
+ /* Offset of table with start offsets of original strings. */
+ nls_uint32 orig_tab_offset;
+ /* Offset of table with start offsets of translation strings. */
+ nls_uint32 trans_tab_offset;
+ /* Size of hashing table. */
+ nls_uint32 hash_tab_size;
+ /* Offset of first hashing entry. */
+ nls_uint32 hash_tab_offset;
+};
+
+struct string_desc
+{
+ /* Length of addressed string. */
+ nls_uint32 length;
+ /* Offset of string in file. */
+ nls_uint32 offset;
+};
+
+/* @@ begin of epilog @@ */
+
+#endif /* gettext.h */
diff --git a/gnu/usr.bin/texinfo/intl/libgnuintl.h b/gnu/usr.bin/texinfo/intl/libgnuintl.h
new file mode 100644
index 00000000000..7fd547ef048
--- /dev/null
+++ b/gnu/usr.bin/texinfo/intl/libgnuintl.h
@@ -0,0 +1,137 @@
+/* Message catalogs for internationalization.
+ Copyright (C) 1995-1997, 2000, 2001 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+ USA. */
+
+#ifndef _LIBINTL_H
+#define _LIBINTL_H 1
+
+#include <locale.h>
+
+/* The LC_MESSAGES locale category is the category used by the functions
+ gettext() and dgettext(). It is specified in POSIX, but not in ANSI C.
+ On systems that don't define it, use an arbitrary value instead.
+ On Solaris, <locale.h> defines __LOCALE_H then includes <libintl.h> (i.e.
+ this file!) and then only defines LC_MESSAGES. To avoid a redefinition
+ warning, don't define LC_MESSAGES in this case. */
+#if !defined LC_MESSAGES && !defined __LOCALE_H
+# define LC_MESSAGES 1729
+#endif
+
+/* We define an additional symbol to signal that we use the GNU
+ implementation of gettext. */
+#define __USE_GNU_GETTEXT 1
+
+/* Resolve a platform specific conflict on DJGPP. GNU gettext takes
+ precedence over _conio_gettext. */
+#ifdef __DJGPP__
+# undef gettext
+# define gettext gettext
+#endif
+
+/* Use _INTL_PARAMS, not PARAMS, in order to avoid clashes with identifiers
+ used by programs. Similarly, test __PROTOTYPES, not PROTOTYPES. */
+#ifndef _INTL_PARAMS
+# if __STDC__ || defined __GNUC__ || defined __SUNPRO_C || defined __cplusplus || __PROTOTYPES
+# define _INTL_PARAMS(args) args
+# else
+# define _INTL_PARAMS(args) ()
+# endif
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Look up MSGID in the current default message catalog for the current
+ LC_MESSAGES locale. If not found, returns MSGID itself (the default
+ text). */
+extern char *gettext _INTL_PARAMS ((const char *__msgid));
+
+/* Look up MSGID in the DOMAINNAME message catalog for the current
+ LC_MESSAGES locale. */
+extern char *dgettext _INTL_PARAMS ((const char *__domainname,
+ const char *__msgid));
+
+/* Look up MSGID in the DOMAINNAME message catalog for the current CATEGORY
+ locale. */
+extern char *dcgettext _INTL_PARAMS ((const char *__domainname,
+ const char *__msgid,
+ int __category));
+
+
+/* Similar to `gettext' but select the plural form corresponding to the
+ number N. */
+extern char *ngettext _INTL_PARAMS ((const char *__msgid1,
+ const char *__msgid2,
+ unsigned long int __n));
+
+/* Similar to `dgettext' but select the plural form corresponding to the
+ number N. */
+extern char *dngettext _INTL_PARAMS ((const char *__domainname,
+ const char *__msgid1,
+ const char *__msgid2,
+ unsigned long int __n));
+
+/* Similar to `dcgettext' but select the plural form corresponding to the
+ number N. */
+extern char *dcngettext _INTL_PARAMS ((const char *__domainname,
+ const char *__msgid1,
+ const char *__msgid2,
+ unsigned long int __n,
+ int __category));
+
+
+/* Set the current default message catalog to DOMAINNAME.
+ If DOMAINNAME is null, return the current default.
+ If DOMAINNAME is "", reset to the default of "messages". */
+extern char *textdomain _INTL_PARAMS ((const char *__domainname));
+
+/* Specify that the DOMAINNAME message catalog will be found
+ in DIRNAME rather than in the system locale data base. */
+extern char *bindtextdomain _INTL_PARAMS ((const char *__domainname,
+ const char *__dirname));
+
+/* Specify the character encoding in which the messages from the
+ DOMAINNAME message catalog will be returned. */
+extern char *bind_textdomain_codeset _INTL_PARAMS ((const char *__domainname,
+ const char *__codeset));
+
+
+/* Optimized version of the functions above. */
+#if defined __OPTIMIZED
+/* These are macros, but could also be inline functions. */
+
+# define gettext(msgid) \
+ dgettext (NULL, msgid)
+
+# define dgettext(domainname, msgid) \
+ dcgettext (domainname, msgid, LC_MESSAGES)
+
+# define ngettext(msgid1, msgid2, n) \
+ dngettext (NULL, msgid1, msgid2, n)
+
+# define dngettext(domainname, msgid1, msgid2, n) \
+ dcngettext (domainname, msgid1, msgid2, n, LC_MESSAGES)
+
+#endif /* Optimizing. */
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* libintl.h */
diff --git a/gnu/usr.bin/texinfo/intl/localcharset.c b/gnu/usr.bin/texinfo/intl/localcharset.c
new file mode 100644
index 00000000000..bc5587bf601
--- /dev/null
+++ b/gnu/usr.bin/texinfo/intl/localcharset.c
@@ -0,0 +1,345 @@
+/* Determine a canonical name for the current locale's character encoding.
+
+ Copyright (C) 2000-2002 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+ USA. */
+
+/* Written by Bruno Haible <haible@clisp.cons.org>. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#if HAVE_STDDEF_H
+# include <stddef.h>
+#endif
+
+#include <stdio.h>
+#if HAVE_STRING_H
+# include <string.h>
+#else
+# include <strings.h>
+#endif
+#if HAVE_STDLIB_H
+# include <stdlib.h>
+#endif
+
+#if defined _WIN32 || defined __WIN32__
+# undef WIN32 /* avoid warning on mingw32 */
+# define WIN32
+#endif
+
+#if defined __EMX__
+/* Assume EMX program runs on OS/2, even if compiled under DOS. */
+# define OS2
+#endif
+
+#if !defined WIN32
+# if HAVE_LANGINFO_CODESET
+# include <langinfo.h>
+# else
+# if HAVE_SETLOCALE
+# include <locale.h>
+# endif
+# endif
+#elif defined WIN32
+# define WIN32_LEAN_AND_MEAN
+# include <windows.h>
+#endif
+#if defined OS2
+# define INCL_DOS
+# include <os2.h>
+#endif
+
+#if defined _WIN32 || defined __WIN32__ || defined __EMX__ || defined __DJGPP__
+ /* Win32, 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
+
+#ifdef HAVE_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 ()
+{
+ const char *cp;
+
+ cp = charset_aliases;
+ if (cp == NULL)
+ {
+#if !defined WIN32
+ FILE *fp;
+ const char *dir = LIBDIR;
+ const char *base = "charset.alias";
+ char *file_name;
+
+ /* 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. */
+ int c;
+ char buf1[50+1];
+ char buf2[50+1];
+ char *res_ptr = NULL;
+ size_t res_size = 0;
+ size_t l1, l2;
+
+ for (;;)
+ {
+ 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);
+ 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;
+ 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
+
+ /* 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. */
+
+# if defined WIN32
+ cp = "CP936" "\0" "GBK" "\0"
+ "CP1361" "\0" "JOHAB" "\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 ()
+{
+ const char *codeset;
+ const char *aliases;
+
+#if !(defined WIN32 || defined OS2)
+
+# if HAVE_LANGINFO_CODESET
+
+ /* Most systems support nl_langinfo (CODESET) nowadays. */
+ codeset = nl_langinfo (CODESET);
+
+# 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 HAVE_SETLOCALE && 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
+
+ static char buf[2 + 10 + 1];
+
+ /* Win32 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;
+ }
+
+ return codeset;
+}
diff --git a/gnu/usr.bin/texinfo/intl/locale.alias b/gnu/usr.bin/texinfo/intl/locale.alias
new file mode 100644
index 00000000000..bd7b9b31eb3
--- /dev/null
+++ b/gnu/usr.bin/texinfo/intl/locale.alias
@@ -0,0 +1,78 @@
+# Locale name alias data base.
+# Copyright (C) 1996,1997,1998,1999,2000,2001 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library 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
+# Library General Public License for more details.
+#
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+# The format of this file is the same as for the corresponding file of
+# the X Window System, which normally can be found in
+# /usr/lib/X11/locale/locale.alias
+# A single line contains two fields: an alias and a substitution value.
+# All entries are case independent.
+
+# Note: This file is far from being complete. If you have a value for
+# your own site which you think might be useful for others too, share
+# it with the rest of us. Send it using the `glibcbug' script to
+# bugs@gnu.org.
+
+# Packages using this file:
+
+bokmal no_NO.ISO-8859-1
+bokm嶚 no_NO.ISO-8859-1
+catalan ca_ES.ISO-8859-1
+croatian hr_HR.ISO-8859-2
+czech cs_CZ.ISO-8859-2
+danish da_DK.ISO-8859-1
+dansk da_DK.ISO-8859-1
+deutsch de_DE.ISO-8859-1
+dutch nl_NL.ISO-8859-1
+eesti et_EE.ISO-8859-1
+estonian et_EE.ISO-8859-1
+finnish fi_FI.ISO-8859-1
+fran蓷is fr_FR.ISO-8859-1
+french fr_FR.ISO-8859-1
+galego gl_ES.ISO-8859-1
+galician gl_ES.ISO-8859-1
+german de_DE.ISO-8859-1
+greek el_GR.ISO-8859-7
+hebrew he_IL.ISO-8859-8
+hrvatski hr_HR.ISO-8859-2
+hungarian hu_HU.ISO-8859-2
+icelandic is_IS.ISO-8859-1
+italian it_IT.ISO-8859-1
+japanese ja_JP.eucJP
+japanese.euc ja_JP.eucJP
+ja_JP ja_JP.eucJP
+ja_JP.ujis ja_JP.eucJP
+japanese.sjis ja_JP.SJIS
+korean ko_KR.eucKR
+korean.euc ko_KR.eucKR
+ko_KR ko_KR.eucKR
+lithuanian lt_LT.ISO-8859-13
+nb_NO no_NO.ISO-8859-1
+nb_NO.ISO-8859-1 no_NO.ISO-8859-1
+norwegian no_NO.ISO-8859-1
+nynorsk nn_NO.ISO-8859-1
+polish pl_PL.ISO-8859-2
+portuguese pt_PT.ISO-8859-1
+romanian ro_RO.ISO-8859-2
+russian ru_RU.ISO-8859-5
+slovak sk_SK.ISO-8859-2
+slovene sl_SI.ISO-8859-2
+slovenian sl_SI.ISO-8859-2
+spanish es_ES.ISO-8859-1
+swedish sv_SE.ISO-8859-1
+thai th_TH.TIS-620
+turkish tr_TR.ISO-8859-9
diff --git a/gnu/usr.bin/texinfo/intl/localename.c b/gnu/usr.bin/texinfo/intl/localename.c
new file mode 100644
index 00000000000..a7241981418
--- /dev/null
+++ b/gnu/usr.bin/texinfo/intl/localename.c
@@ -0,0 +1,694 @@
+/* Determine the current selected locale.
+ Copyright (C) 1995-1999, 2000-2002 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+ USA. */
+
+/* Written by Ulrich Drepper <drepper@gnu.org>, 1995. */
+/* Win32 code written by Tor Lillqvist <tml@iki.fi>. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <stdlib.h>
+#include <locale.h>
+
+#if defined _WIN32 || defined __WIN32__
+# undef WIN32 /* avoid warning on mingw32 */
+# define WIN32
+#endif
+
+#ifdef WIN32
+# define WIN32_LEAN_AND_MEAN
+# include <windows.h>
+/* Mingw headers don't have latest language and sublanguage codes. */
+# ifndef LANG_AFRIKAANS
+# define LANG_AFRIKAANS 0x36
+# endif
+# ifndef LANG_ALBANIAN
+# define LANG_ALBANIAN 0x1c
+# endif
+# ifndef LANG_ARABIC
+# define LANG_ARABIC 0x01
+# endif
+# ifndef LANG_ARMENIAN
+# define LANG_ARMENIAN 0x2b
+# endif
+# ifndef LANG_ASSAMESE
+# define LANG_ASSAMESE 0x4d
+# endif
+# ifndef LANG_AZERI
+# define LANG_AZERI 0x2c
+# endif
+# ifndef LANG_BASQUE
+# define LANG_BASQUE 0x2d
+# endif
+# ifndef LANG_BELARUSIAN
+# define LANG_BELARUSIAN 0x23
+# endif
+# ifndef LANG_BENGALI
+# define LANG_BENGALI 0x45
+# endif
+# ifndef LANG_CATALAN
+# define LANG_CATALAN 0x03
+# endif
+# ifndef LANG_ESTONIAN
+# define LANG_ESTONIAN 0x25
+# endif
+# ifndef LANG_FAEROESE
+# define LANG_FAEROESE 0x38
+# endif
+# ifndef LANG_FARSI
+# define LANG_FARSI 0x29
+# endif
+# ifndef LANG_GEORGIAN
+# define LANG_GEORGIAN 0x37
+# endif
+# ifndef LANG_GUJARATI
+# define LANG_GUJARATI 0x47
+# endif
+# ifndef LANG_HEBREW
+# define LANG_HEBREW 0x0d
+# endif
+# ifndef LANG_HINDI
+# define LANG_HINDI 0x39
+# endif
+# ifndef LANG_INDONESIAN
+# define LANG_INDONESIAN 0x21
+# endif
+# ifndef LANG_KANNADA
+# define LANG_KANNADA 0x4b
+# endif
+# ifndef LANG_KASHMIRI
+# define LANG_KASHMIRI 0x60
+# endif
+# ifndef LANG_KAZAK
+# define LANG_KAZAK 0x3f
+# endif
+# ifndef LANG_KONKANI
+# define LANG_KONKANI 0x57
+# endif
+# ifndef LANG_LATVIAN
+# define LANG_LATVIAN 0x26
+# endif
+# ifndef LANG_LITHUANIAN
+# define LANG_LITHUANIAN 0x27
+# endif
+# ifndef LANG_MACEDONIAN
+# define LANG_MACEDONIAN 0x2f
+# endif
+# ifndef LANG_MALAY
+# define LANG_MALAY 0x3e
+# endif
+# ifndef LANG_MALAYALAM
+# define LANG_MALAYALAM 0x4c
+# endif
+# ifndef LANG_MANIPURI
+# define LANG_MANIPURI 0x58
+# endif
+# ifndef LANG_MARATHI
+# define LANG_MARATHI 0x4e
+# endif
+# ifndef LANG_NEPALI
+# define LANG_NEPALI 0x61
+# endif
+# ifndef LANG_ORIYA
+# define LANG_ORIYA 0x48
+# endif
+# ifndef LANG_PUNJABI
+# define LANG_PUNJABI 0x46
+# endif
+# ifndef LANG_SANSKRIT
+# define LANG_SANSKRIT 0x4f
+# endif
+# ifndef LANG_SERBIAN
+# define LANG_SERBIAN 0x1a
+# endif
+# ifndef LANG_SINDHI
+# define LANG_SINDHI 0x59
+# endif
+# ifndef LANG_SLOVAK
+# define LANG_SLOVAK 0x1b
+# endif
+# ifndef LANG_SWAHILI
+# define LANG_SWAHILI 0x41
+# endif
+# ifndef LANG_TAMIL
+# define LANG_TAMIL 0x49
+# endif
+# ifndef LANG_TATAR
+# define LANG_TATAR 0x44
+# endif
+# ifndef LANG_TELUGU
+# define LANG_TELUGU 0x4a
+# endif
+# ifndef LANG_THAI
+# define LANG_THAI 0x1e
+# endif
+# ifndef LANG_UKRAINIAN
+# define LANG_UKRAINIAN 0x22
+# endif
+# ifndef LANG_URDU
+# define LANG_URDU 0x20
+# endif
+# ifndef LANG_UZBEK
+# define LANG_UZBEK 0x43
+# endif
+# ifndef LANG_VIETNAMESE
+# define LANG_VIETNAMESE 0x2a
+# endif
+# ifndef SUBLANG_ARABIC_SAUDI_ARABIA
+# define SUBLANG_ARABIC_SAUDI_ARABIA 0x01
+# endif
+# ifndef SUBLANG_ARABIC_IRAQ
+# define SUBLANG_ARABIC_IRAQ 0x02
+# endif
+# ifndef SUBLANG_ARABIC_EGYPT
+# define SUBLANG_ARABIC_EGYPT 0x03
+# endif
+# ifndef SUBLANG_ARABIC_LIBYA
+# define SUBLANG_ARABIC_LIBYA 0x04
+# endif
+# ifndef SUBLANG_ARABIC_ALGERIA
+# define SUBLANG_ARABIC_ALGERIA 0x05
+# endif
+# ifndef SUBLANG_ARABIC_MOROCCO
+# define SUBLANG_ARABIC_MOROCCO 0x06
+# endif
+# ifndef SUBLANG_ARABIC_TUNISIA
+# define SUBLANG_ARABIC_TUNISIA 0x07
+# endif
+# ifndef SUBLANG_ARABIC_OMAN
+# define SUBLANG_ARABIC_OMAN 0x08
+# endif
+# ifndef SUBLANG_ARABIC_YEMEN
+# define SUBLANG_ARABIC_YEMEN 0x09
+# endif
+# ifndef SUBLANG_ARABIC_SYRIA
+# define SUBLANG_ARABIC_SYRIA 0x0a
+# endif
+# ifndef SUBLANG_ARABIC_JORDAN
+# define SUBLANG_ARABIC_JORDAN 0x0b
+# endif
+# ifndef SUBLANG_ARABIC_LEBANON
+# define SUBLANG_ARABIC_LEBANON 0x0c
+# endif
+# ifndef SUBLANG_ARABIC_KUWAIT
+# define SUBLANG_ARABIC_KUWAIT 0x0d
+# endif
+# ifndef SUBLANG_ARABIC_UAE
+# define SUBLANG_ARABIC_UAE 0x0e
+# endif
+# ifndef SUBLANG_ARABIC_BAHRAIN
+# define SUBLANG_ARABIC_BAHRAIN 0x0f
+# endif
+# ifndef SUBLANG_ARABIC_QATAR
+# define SUBLANG_ARABIC_QATAR 0x10
+# endif
+# ifndef SUBLANG_AZERI_LATIN
+# define SUBLANG_AZERI_LATIN 0x01
+# endif
+# ifndef SUBLANG_AZERI_CYRILLIC
+# define SUBLANG_AZERI_CYRILLIC 0x02
+# endif
+# ifndef SUBLANG_CHINESE_MACAU
+# define SUBLANG_CHINESE_MACAU 0x05
+# endif
+# ifndef SUBLANG_ENGLISH_SOUTH_AFRICA
+# define SUBLANG_ENGLISH_SOUTH_AFRICA 0x07
+# endif
+# ifndef SUBLANG_ENGLISH_JAMAICA
+# define SUBLANG_ENGLISH_JAMAICA 0x08
+# endif
+# ifndef SUBLANG_ENGLISH_CARIBBEAN
+# define SUBLANG_ENGLISH_CARIBBEAN 0x09
+# endif
+# ifndef SUBLANG_ENGLISH_BELIZE
+# define SUBLANG_ENGLISH_BELIZE 0x0a
+# endif
+# ifndef SUBLANG_ENGLISH_TRINIDAD
+# define SUBLANG_ENGLISH_TRINIDAD 0x0b
+# endif
+# ifndef SUBLANG_ENGLISH_ZIMBABWE
+# define SUBLANG_ENGLISH_ZIMBABWE 0x0c
+# endif
+# ifndef SUBLANG_ENGLISH_PHILIPPINES
+# define SUBLANG_ENGLISH_PHILIPPINES 0x0d
+# endif
+# ifndef SUBLANG_FRENCH_LUXEMBOURG
+# define SUBLANG_FRENCH_LUXEMBOURG 0x05
+# endif
+# ifndef SUBLANG_FRENCH_MONACO
+# define SUBLANG_FRENCH_MONACO 0x06
+# endif
+# ifndef SUBLANG_GERMAN_LUXEMBOURG
+# define SUBLANG_GERMAN_LUXEMBOURG 0x04
+# endif
+# ifndef SUBLANG_GERMAN_LIECHTENSTEIN
+# define SUBLANG_GERMAN_LIECHTENSTEIN 0x05
+# endif
+# ifndef SUBLANG_KASHMIRI_INDIA
+# define SUBLANG_KASHMIRI_INDIA 0x02
+# endif
+# ifndef SUBLANG_MALAY_MALAYSIA
+# define SUBLANG_MALAY_MALAYSIA 0x01
+# endif
+# ifndef SUBLANG_MALAY_BRUNEI_DARUSSALAM
+# define SUBLANG_MALAY_BRUNEI_DARUSSALAM 0x02
+# endif
+# ifndef SUBLANG_NEPALI_INDIA
+# define SUBLANG_NEPALI_INDIA 0x02
+# endif
+# ifndef SUBLANG_SERBIAN_LATIN
+# define SUBLANG_SERBIAN_LATIN 0x02
+# endif
+# ifndef SUBLANG_SERBIAN_CYRILLIC
+# define SUBLANG_SERBIAN_CYRILLIC 0x03
+# endif
+# ifndef SUBLANG_SPANISH_GUATEMALA
+# define SUBLANG_SPANISH_GUATEMALA 0x04
+# endif
+# ifndef SUBLANG_SPANISH_COSTA_RICA
+# define SUBLANG_SPANISH_COSTA_RICA 0x05
+# endif
+# ifndef SUBLANG_SPANISH_PANAMA
+# define SUBLANG_SPANISH_PANAMA 0x06
+# endif
+# ifndef SUBLANG_SPANISH_DOMINICAN_REPUBLIC
+# define SUBLANG_SPANISH_DOMINICAN_REPUBLIC 0x07
+# endif
+# ifndef SUBLANG_SPANISH_VENEZUELA
+# define SUBLANG_SPANISH_VENEZUELA 0x08
+# endif
+# ifndef SUBLANG_SPANISH_COLOMBIA
+# define SUBLANG_SPANISH_COLOMBIA 0x09
+# endif
+# ifndef SUBLANG_SPANISH_PERU
+# define SUBLANG_SPANISH_PERU 0x0a
+# endif
+# ifndef SUBLANG_SPANISH_ARGENTINA
+# define SUBLANG_SPANISH_ARGENTINA 0x0b
+# endif
+# ifndef SUBLANG_SPANISH_ECUADOR
+# define SUBLANG_SPANISH_ECUADOR 0x0c
+# endif
+# ifndef SUBLANG_SPANISH_CHILE
+# define SUBLANG_SPANISH_CHILE 0x0d
+# endif
+# ifndef SUBLANG_SPANISH_URUGUAY
+# define SUBLANG_SPANISH_URUGUAY 0x0e
+# endif
+# ifndef SUBLANG_SPANISH_PARAGUAY
+# define SUBLANG_SPANISH_PARAGUAY 0x0f
+# endif
+# ifndef SUBLANG_SPANISH_BOLIVIA
+# define SUBLANG_SPANISH_BOLIVIA 0x10
+# endif
+# ifndef SUBLANG_SPANISH_EL_SALVADOR
+# define SUBLANG_SPANISH_EL_SALVADOR 0x11
+# endif
+# ifndef SUBLANG_SPANISH_HONDURAS
+# define SUBLANG_SPANISH_HONDURAS 0x12
+# endif
+# ifndef SUBLANG_SPANISH_NICARAGUA
+# define SUBLANG_SPANISH_NICARAGUA 0x13
+# endif
+# ifndef SUBLANG_SPANISH_PUERTO_RICO
+# define SUBLANG_SPANISH_PUERTO_RICO 0x14
+# endif
+# ifndef SUBLANG_SWEDISH_FINLAND
+# define SUBLANG_SWEDISH_FINLAND 0x02
+# endif
+# ifndef SUBLANG_URDU_PAKISTAN
+# define SUBLANG_URDU_PAKISTAN 0x01
+# endif
+# ifndef SUBLANG_URDU_INDIA
+# define SUBLANG_URDU_INDIA 0x02
+# endif
+# ifndef SUBLANG_UZBEK_LATIN
+# define SUBLANG_UZBEK_LATIN 0x01
+# endif
+# ifndef SUBLANG_UZBEK_CYRILLIC
+# define SUBLANG_UZBEK_CYRILLIC 0x02
+# endif
+#endif
+
+/* XPG3 defines the result of 'setlocale (category, NULL)' as:
+ "Directs 'setlocale()' to query 'category' and return the current
+ setting of 'local'."
+ However it does not specify the exact format. Neither do SUSV2 and
+ ISO C 99. So we can use this feature only on selected systems (e.g.
+ those using GNU C Library). */
+#if defined _LIBC || (defined __GNU_LIBRARY__ && __GNU_LIBRARY__ >= 2)
+# define HAVE_LOCALE_NULL
+#endif
+
+/* Determine the current locale's name, and canonicalize it into XPG syntax
+ language[_territory[.codeset]][@modifier]
+ The codeset part in the result is not reliable; the locale_charset()
+ should be used for codeset information instead.
+ The result must not be freed; it is statically allocated. */
+
+const char *
+_nl_locale_name (category, categoryname)
+ int category;
+ const char *categoryname;
+{
+ const char *retval;
+
+#ifndef WIN32
+
+ /* Use the POSIX methods of looking to 'LC_ALL', 'LC_xxx', and 'LANG'.
+ On some systems this can be done by the 'setlocale' function itself. */
+# if defined HAVE_SETLOCALE && defined HAVE_LC_MESSAGES && defined HAVE_LOCALE_NULL
+ retval = setlocale (category, NULL);
+# else
+ /* Setting of LC_ALL overwrites all other. */
+ retval = getenv ("LC_ALL");
+ if (retval == NULL || retval[0] == '\0')
+ {
+ /* Next comes the name of the desired category. */
+ retval = getenv (categoryname);
+ if (retval == NULL || retval[0] == '\0')
+ {
+ /* Last possibility is the LANG environment variable. */
+ retval = getenv ("LANG");
+ if (retval == NULL || retval[0] == '\0')
+ /* We use C as the default domain. POSIX says this is
+ implementation defined. */
+ retval = "C";
+ }
+ }
+# endif
+
+ return retval;
+
+#else /* WIN32 */
+
+ /* Return an XPG style locale name language[_territory][@modifier].
+ Don't even bother determining the codeset; it's not useful in this
+ context, because message catalogs are not specific to a single
+ codeset. */
+
+ LCID lcid;
+ LANGID langid;
+ int primary, sub;
+
+ /* Let the user override the system settings through environment
+ variables, as on POSIX systems. */
+ retval = getenv ("LC_ALL");
+ if (retval != NULL && retval[0] != '\0')
+ return retval;
+ retval = getenv (categoryname);
+ if (retval != NULL && retval[0] != '\0')
+ return retval;
+ retval = getenv ("LANG");
+ if (retval != NULL && retval[0] != '\0')
+ return retval;
+
+ /* Use native Win32 API locale ID. */
+ lcid = GetThreadLocale ();
+
+ /* Strip off the sorting rules, keep only the language part. */
+ langid = LANGIDFROMLCID (lcid);
+
+ /* Split into language and territory part. */
+ primary = PRIMARYLANGID (langid);
+ sub = SUBLANGID (langid);
+ switch (primary)
+ {
+ case LANG_AFRIKAANS: return "af_ZA";
+ case LANG_ALBANIAN: return "sq_AL";
+ case LANG_ARABIC:
+ switch (sub)
+ {
+ case SUBLANG_ARABIC_SAUDI_ARABIA: return "ar_SA";
+ case SUBLANG_ARABIC_IRAQ: return "ar_IQ";
+ case SUBLANG_ARABIC_EGYPT: return "ar_EG";
+ case SUBLANG_ARABIC_LIBYA: return "ar_LY";
+ case SUBLANG_ARABIC_ALGERIA: return "ar_DZ";
+ case SUBLANG_ARABIC_MOROCCO: return "ar_MA";
+ case SUBLANG_ARABIC_TUNISIA: return "ar_TN";
+ case SUBLANG_ARABIC_OMAN: return "ar_OM";
+ case SUBLANG_ARABIC_YEMEN: return "ar_YE";
+ case SUBLANG_ARABIC_SYRIA: return "ar_SY";
+ case SUBLANG_ARABIC_JORDAN: return "ar_JO";
+ case SUBLANG_ARABIC_LEBANON: return "ar_LB";
+ case SUBLANG_ARABIC_KUWAIT: return "ar_KW";
+ case SUBLANG_ARABIC_UAE: return "ar_AE";
+ case SUBLANG_ARABIC_BAHRAIN: return "ar_BH";
+ case SUBLANG_ARABIC_QATAR: return "ar_QA";
+ }
+ return "ar";
+ case LANG_ARMENIAN: return "hy_AM";
+ case LANG_ASSAMESE: return "as_IN";
+ case LANG_AZERI:
+ switch (sub)
+ {
+ /* FIXME: Adjust this when Azerbaijani locales appear on Unix. */
+ case SUBLANG_AZERI_LATIN: return "az_AZ@latin";
+ case SUBLANG_AZERI_CYRILLIC: return "az_AZ@cyrillic";
+ }
+ return "az";
+ case LANG_BASQUE:
+ return "eu"; /* Ambiguous: could be "eu_ES" or "eu_FR". */
+ case LANG_BELARUSIAN: return "be_BY";
+ case LANG_BENGALI: return "bn_IN";
+ case LANG_BULGARIAN: return "bg_BG";
+ case LANG_CATALAN: return "ca_ES";
+ case LANG_CHINESE:
+ switch (sub)
+ {
+ case SUBLANG_CHINESE_TRADITIONAL: return "zh_TW";
+ case SUBLANG_CHINESE_SIMPLIFIED: return "zh_CN";
+ case SUBLANG_CHINESE_HONGKONG: return "zh_HK";
+ case SUBLANG_CHINESE_SINGAPORE: return "zh_SG";
+ case SUBLANG_CHINESE_MACAU: return "zh_MO";
+ }
+ return "zh";
+ case LANG_CROATIAN: /* LANG_CROATIAN == LANG_SERBIAN
+ * What used to be called Serbo-Croatian
+ * should really now be two separate
+ * languages because of political reasons.
+ * (Says tml, who knows nothing about Serbian
+ * or Croatian.)
+ * (I can feel those flames coming already.)
+ */
+ switch (sub)
+ {
+ /* FIXME: How to distinguish Croatian and Latin Serbian locales? */
+ case SUBLANG_SERBIAN_LATIN: return "sr_YU";
+ case SUBLANG_SERBIAN_CYRILLIC: return "sr_YU@cyrillic";
+ default: return "hr_HR";
+ }
+ case LANG_CZECH: return "cs_CZ";
+ case LANG_DANISH: return "da_DK";
+ case LANG_DUTCH:
+ switch (sub)
+ {
+ case SUBLANG_DUTCH: return "nl_NL";
+ case SUBLANG_DUTCH_BELGIAN: return "nl_BE";
+ }
+ return "nl";
+ case LANG_ENGLISH:
+ switch (sub)
+ {
+ /* SUBLANG_ENGLISH_US == SUBLANG_DEFAULT. Heh. I thought
+ * English was the language spoken in England.
+ * Oh well.
+ */
+ case SUBLANG_ENGLISH_US: return "en_US";
+ case SUBLANG_ENGLISH_UK: return "en_GB";
+ case SUBLANG_ENGLISH_AUS: return "en_AU";
+ case SUBLANG_ENGLISH_CAN: return "en_CA";
+ case SUBLANG_ENGLISH_NZ: return "en_NZ";
+ case SUBLANG_ENGLISH_EIRE: return "en_IE";
+ case SUBLANG_ENGLISH_SOUTH_AFRICA: return "en_ZA";
+ case SUBLANG_ENGLISH_JAMAICA: return "en_JM";
+ case SUBLANG_ENGLISH_CARIBBEAN: return "en_GD"; /* Grenada? */
+ case SUBLANG_ENGLISH_BELIZE: return "en_BZ";
+ case SUBLANG_ENGLISH_TRINIDAD: return "en_TT";
+ case SUBLANG_ENGLISH_ZIMBABWE: return "en_ZW";
+ case SUBLANG_ENGLISH_PHILIPPINES: return "en_PH";
+ }
+ return "en";
+ case LANG_ESTONIAN: return "et_EE";
+ case LANG_FAEROESE: return "fo_FO";
+ case LANG_FARSI: return "fa_IR";
+ case LANG_FINNISH: return "fi_FI";
+ case LANG_FRENCH:
+ switch (sub)
+ {
+ case SUBLANG_FRENCH: return "fr_FR";
+ case SUBLANG_FRENCH_BELGIAN: return "fr_BE";
+ case SUBLANG_FRENCH_CANADIAN: return "fr_CA";
+ case SUBLANG_FRENCH_SWISS: return "fr_CH";
+ case SUBLANG_FRENCH_LUXEMBOURG: return "fr_LU";
+ case SUBLANG_FRENCH_MONACO: return "fr_MC";
+ }
+ return "fr";
+ case LANG_GEORGIAN: return "ka_GE";
+ case LANG_GERMAN:
+ switch (sub)
+ {
+ case SUBLANG_GERMAN: return "de_DE";
+ case SUBLANG_GERMAN_SWISS: return "de_CH";
+ case SUBLANG_GERMAN_AUSTRIAN: return "de_AT";
+ case SUBLANG_GERMAN_LUXEMBOURG: return "de_LU";
+ case SUBLANG_GERMAN_LIECHTENSTEIN: return "de_LI";
+ }
+ return "de";
+ case LANG_GREEK: return "el_GR";
+ case LANG_GUJARATI: return "gu_IN";
+ case LANG_HEBREW: return "he_IL";
+ case LANG_HINDI: return "hi_IN";
+ case LANG_HUNGARIAN: return "hu_HU";
+ case LANG_ICELANDIC: return "is_IS";
+ case LANG_INDONESIAN: return "id_ID";
+ case LANG_ITALIAN:
+ switch (sub)
+ {
+ case SUBLANG_ITALIAN: return "it_IT";
+ case SUBLANG_ITALIAN_SWISS: return "it_CH";
+ }
+ return "it";
+ case LANG_JAPANESE: return "ja_JP";
+ case LANG_KANNADA: return "kn_IN";
+ case LANG_KASHMIRI:
+ switch (sub)
+ {
+ case SUBLANG_DEFAULT: return "ks_PK";
+ case SUBLANG_KASHMIRI_INDIA: return "ks_IN";
+ }
+ return "ks";
+ case LANG_KAZAK: return "kk_KZ";
+ case LANG_KONKANI:
+ /* FIXME: Adjust this when such locales appear on Unix. */
+ return "kok_IN";
+ case LANG_KOREAN: return "ko_KR";
+ case LANG_LATVIAN: return "lv_LV";
+ case LANG_LITHUANIAN: return "lt_LT";
+ case LANG_MACEDONIAN: return "mk_MK";
+ case LANG_MALAY:
+ switch (sub)
+ {
+ case SUBLANG_MALAY_MALAYSIA: return "ms_MY";
+ case SUBLANG_MALAY_BRUNEI_DARUSSALAM: return "ms_BN";
+ }
+ return "ms";
+ case LANG_MALAYALAM: return "ml_IN";
+ case LANG_MANIPURI:
+ /* FIXME: Adjust this when such locales appear on Unix. */
+ return "mni_IN";
+ case LANG_MARATHI: return "mr_IN";
+ case LANG_NEPALI:
+ switch (sub)
+ {
+ case SUBLANG_DEFAULT: return "ne_NP";
+ case SUBLANG_NEPALI_INDIA: return "ne_IN";
+ }
+ return "ne";
+ case LANG_NORWEGIAN:
+ switch (sub)
+ {
+ case SUBLANG_NORWEGIAN_BOKMAL: return "no_NO";
+ case SUBLANG_NORWEGIAN_NYNORSK: return "nn_NO";
+ }
+ return "no";
+ case LANG_ORIYA: return "or_IN";
+ case LANG_POLISH: return "pl_PL";
+ case LANG_PORTUGUESE:
+ switch (sub)
+ {
+ case SUBLANG_PORTUGUESE: return "pt_PT";
+ /* Hmm. SUBLANG_PORTUGUESE_BRAZILIAN == SUBLANG_DEFAULT.
+ Same phenomenon as SUBLANG_ENGLISH_US == SUBLANG_DEFAULT. */
+ case SUBLANG_PORTUGUESE_BRAZILIAN: return "pt_BR";
+ }
+ return "pt";
+ case LANG_PUNJABI: return "pa_IN";
+ case LANG_ROMANIAN: return "ro_RO";
+ case LANG_RUSSIAN:
+ return "ru"; /* Ambiguous: could be "ru_RU" or "ru_UA". */
+ case LANG_SANSKRIT: return "sa_IN";
+ case LANG_SINDHI: return "sd";
+ case LANG_SLOVAK: return "sk_SK";
+ case LANG_SLOVENIAN: return "sl_SI";
+ case LANG_SORBIAN:
+ /* FIXME: Adjust this when such locales appear on Unix. */
+ return "wen_DE";
+ case LANG_SPANISH:
+ switch (sub)
+ {
+ case SUBLANG_SPANISH: return "es_ES";
+ case SUBLANG_SPANISH_MEXICAN: return "es_MX";
+ case SUBLANG_SPANISH_MODERN:
+ return "es_ES@modern"; /* not seen on Unix */
+ case SUBLANG_SPANISH_GUATEMALA: return "es_GT";
+ case SUBLANG_SPANISH_COSTA_RICA: return "es_CR";
+ case SUBLANG_SPANISH_PANAMA: return "es_PA";
+ case SUBLANG_SPANISH_DOMINICAN_REPUBLIC: return "es_DO";
+ case SUBLANG_SPANISH_VENEZUELA: return "es_VE";
+ case SUBLANG_SPANISH_COLOMBIA: return "es_CO";
+ case SUBLANG_SPANISH_PERU: return "es_PE";
+ case SUBLANG_SPANISH_ARGENTINA: return "es_AR";
+ case SUBLANG_SPANISH_ECUADOR: return "es_EC";
+ case SUBLANG_SPANISH_CHILE: return "es_CL";
+ case SUBLANG_SPANISH_URUGUAY: return "es_UY";
+ case SUBLANG_SPANISH_PARAGUAY: return "es_PY";
+ case SUBLANG_SPANISH_BOLIVIA: return "es_BO";
+ case SUBLANG_SPANISH_EL_SALVADOR: return "es_SV";
+ case SUBLANG_SPANISH_HONDURAS: return "es_HN";
+ case SUBLANG_SPANISH_NICARAGUA: return "es_NI";
+ case SUBLANG_SPANISH_PUERTO_RICO: return "es_PR";
+ }
+ return "es";
+ case LANG_SWAHILI: return "sw";
+ case LANG_SWEDISH:
+ switch (sub)
+ {
+ case SUBLANG_DEFAULT: return "sv_SE";
+ case SUBLANG_SWEDISH_FINLAND: return "sv_FI";
+ }
+ return "sv";
+ case LANG_TAMIL:
+ return "ta"; /* Ambiguous: could be "ta_IN" or "ta_LK" or "ta_SG". */
+ case LANG_TATAR: return "tt";
+ case LANG_TELUGU: return "te_IN";
+ case LANG_THAI: return "th_TH";
+ case LANG_TURKISH: return "tr_TR";
+ case LANG_UKRAINIAN: return "uk_UA";
+ case LANG_URDU:
+ switch (sub)
+ {
+ case SUBLANG_URDU_PAKISTAN: return "ur_PK";
+ case SUBLANG_URDU_INDIA: return "ur_IN";
+ }
+ return "ur";
+ case LANG_UZBEK:
+ switch (sub)
+ {
+ /* FIXME: Adjust this when Uzbek locales appear on Unix. */
+ case SUBLANG_UZBEK_LATIN: return "uz_UZ@latin";
+ case SUBLANG_UZBEK_CYRILLIC: return "uz_UZ@cyrillic";
+ }
+ return "uz";
+ case LANG_VIETNAMESE: return "vi_VN";
+ default: return "C";
+ }
+
+#endif
+}
diff --git a/gnu/usr.bin/texinfo/intl/ngettext.c b/gnu/usr.bin/texinfo/intl/ngettext.c
new file mode 100644
index 00000000000..fb3ec5a91ea
--- /dev/null
+++ b/gnu/usr.bin/texinfo/intl/ngettext.c
@@ -0,0 +1,68 @@
+/* Implementation of ngettext(3) function.
+ Copyright (C) 1995, 1997, 2000, 2001 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+ USA. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#ifdef _LIBC
+# define __need_NULL
+# include <stddef.h>
+#else
+# include <stdlib.h> /* Just for NULL. */
+#endif
+
+#include "gettextP.h"
+#ifdef _LIBC
+# include <libintl.h>
+#else
+# include "libgnuintl.h"
+#endif
+
+#include <locale.h>
+
+/* @@ end of prolog @@ */
+
+/* Names for the libintl functions are a problem. They must not clash
+ with existing names and they should follow ANSI C. But this source
+ code is also used in GNU C Library where the names have a __
+ prefix. So we have to make a difference here. */
+#ifdef _LIBC
+# define NGETTEXT __ngettext
+# define DCNGETTEXT __dcngettext
+#else
+# define NGETTEXT ngettext__
+# define DCNGETTEXT dcngettext__
+#endif
+
+/* Look up MSGID in the current default message catalog for the current
+ LC_MESSAGES locale. If not found, returns MSGID itself (the default
+ text). */
+char *
+NGETTEXT (msgid1, msgid2, n)
+ const char *msgid1;
+ const char *msgid2;
+ unsigned long int n;
+{
+ return DCNGETTEXT (NULL, msgid1, msgid2, n, LC_MESSAGES);
+}
+
+#ifdef _LIBC
+/* Alias for function name in GNU C Library. */
+weak_alias (__ngettext, ngettext);
+#endif
diff --git a/gnu/usr.bin/texinfo/intl/os2compat.c b/gnu/usr.bin/texinfo/intl/os2compat.c
new file mode 100644
index 00000000000..681e98aea7d
--- /dev/null
+++ b/gnu/usr.bin/texinfo/intl/os2compat.c
@@ -0,0 +1,101 @@
+/* OS/2 compatibility functions.
+ Copyright (C) 2001-2002 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+ USA. */
+
+#define OS2_AWARE
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <stdlib.h>
+#include <string.h>
+
+/* A version of getenv() that works from DLLs */
+extern unsigned long DosScanEnv (const unsigned char *pszName, unsigned char **ppszValue);
+
+char *
+_nl_getenv (const char *name)
+{
+ unsigned char *value;
+ if (DosScanEnv (name, &value))
+ return NULL;
+ else
+ return value;
+}
+
+/* A fixed size buffer. */
+#define LOCALEDIR_MAX 260
+char _nl_default_dirname__[LOCALEDIR_MAX+1];
+
+char *_os2_libdir = NULL;
+char *_os2_localealiaspath = NULL;
+char *_os2_localedir = NULL;
+
+static __attribute__((constructor)) void
+os2_initialize ()
+{
+ char *root = getenv ("UNIXROOT");
+ char *gnulocaledir = getenv ("GNULOCALEDIR");
+
+ _os2_libdir = gnulocaledir;
+ if (!_os2_libdir)
+ {
+ if (root)
+ {
+ size_t sl = strlen (root);
+ _os2_libdir = (char *) malloc (sl + strlen (LIBDIR) + 1);
+ memcpy (_os2_libdir, root, sl);
+ memcpy (_os2_libdir + sl, LIBDIR, strlen (LIBDIR) + 1);
+ }
+ else
+ _os2_libdir = LIBDIR;
+ }
+
+ _os2_localealiaspath = gnulocaledir;
+ if (!_os2_localealiaspath)
+ {
+ if (root)
+ {
+ size_t sl = strlen (root);
+ _os2_localealiaspath = (char *) malloc (sl + strlen (LOCALE_ALIAS_PATH) + 1);
+ memcpy (_os2_localealiaspath, root, sl);
+ memcpy (_os2_localealiaspath + sl, LOCALE_ALIAS_PATH, strlen (LOCALE_ALIAS_PATH) + 1);
+ }
+ else
+ _os2_localealiaspath = LOCALE_ALIAS_PATH;
+ }
+
+ _os2_localedir = gnulocaledir;
+ if (!_os2_localedir)
+ {
+ if (root)
+ {
+ size_t sl = strlen (root);
+ _os2_localedir = (char *) malloc (sl + strlen (LOCALEDIR) + 1);
+ memcpy (_os2_localedir, root, sl);
+ memcpy (_os2_localedir + sl, LOCALEDIR, strlen (LOCALEDIR) + 1);
+ }
+ else
+ _os2_localedir = LOCALEDIR;
+ }
+
+ {
+ extern const char _nl_default_dirname__[];
+ if (strlen (_os2_localedir) <= LOCALEDIR_MAX)
+ strcpy (_nl_default_dirname__, _os2_localedir);
+ }
+}
diff --git a/gnu/usr.bin/texinfo/intl/os2compat.h b/gnu/usr.bin/texinfo/intl/os2compat.h
new file mode 100644
index 00000000000..3605e7a3661
--- /dev/null
+++ b/gnu/usr.bin/texinfo/intl/os2compat.h
@@ -0,0 +1,46 @@
+/* OS/2 compatibility defines.
+ This file is intended to be included from config.h
+ Copyright (C) 2001-2002 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+ USA. */
+
+/* When included from os2compat.h we need all the original definitions */
+#ifndef OS2_AWARE
+
+#undef LIBDIR
+#define LIBDIR _os2_libdir
+extern char *_os2_libdir;
+
+#undef LOCALEDIR
+#define LOCALEDIR _os2_localedir
+extern char *_os2_localedir;
+
+#undef LOCALE_ALIAS_PATH
+#define LOCALE_ALIAS_PATH _os2_localealiaspath
+extern char *_os2_localealiaspath;
+
+#endif
+
+#undef HAVE_STRCASECMP
+#define HAVE_STRCASECMP 1
+#define strcasecmp stricmp
+#define strncasecmp strnicmp
+
+/* We have our own getenv() which works even if library is compiled as DLL */
+#define getenv _nl_getenv
+
+/* Older versions of gettext used -1 as the value of LC_MESSAGES */
+#define LC_MESSAGES_COMPAT (-1)
diff --git a/gnu/usr.bin/texinfo/intl/osdep.c b/gnu/usr.bin/texinfo/intl/osdep.c
new file mode 100644
index 00000000000..b3725983818
--- /dev/null
+++ b/gnu/usr.bin/texinfo/intl/osdep.c
@@ -0,0 +1,24 @@
+/* OS dependent parts of libintl.
+ Copyright (C) 2001-2002 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+ USA. */
+
+#if defined __EMX__
+# include "os2compat.c"
+#else
+/* Avoid AIX compiler warning. */
+typedef int dummy;
+#endif
diff --git a/gnu/usr.bin/texinfo/intl/plural-exp.c b/gnu/usr.bin/texinfo/intl/plural-exp.c
new file mode 100644
index 00000000000..c937c011ac5
--- /dev/null
+++ b/gnu/usr.bin/texinfo/intl/plural-exp.c
@@ -0,0 +1,156 @@
+/* Expression parsing for plural form selection.
+ Copyright (C) 2000, 2001 Free Software Foundation, Inc.
+ Written by Ulrich Drepper <drepper@cygnus.com>, 2000.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+ USA. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <ctype.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "plural-exp.h"
+
+#if (defined __GNUC__ && !defined __APPLE_CC__) \
+ || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L)
+
+/* These structs are the constant expression for the germanic plural
+ form determination. It represents the expression "n != 1". */
+static const struct expression plvar =
+{
+ .nargs = 0,
+ .operation = var,
+};
+static const struct expression plone =
+{
+ .nargs = 0,
+ .operation = num,
+ .val =
+ {
+ .num = 1
+ }
+};
+struct expression GERMANIC_PLURAL =
+{
+ .nargs = 2,
+ .operation = not_equal,
+ .val =
+ {
+ .args =
+ {
+ [0] = (struct expression *) &plvar,
+ [1] = (struct expression *) &plone
+ }
+ }
+};
+
+# define INIT_GERMANIC_PLURAL()
+
+#else
+
+/* For compilers without support for ISO C 99 struct/union initializers:
+ Initialization at run-time. */
+
+static struct expression plvar;
+static struct expression plone;
+struct expression GERMANIC_PLURAL;
+
+static void
+init_germanic_plural ()
+{
+ if (plone.val.num == 0)
+ {
+ plvar.nargs = 0;
+ plvar.operation = var;
+
+ plone.nargs = 0;
+ plone.operation = num;
+ plone.val.num = 1;
+
+ GERMANIC_PLURAL.nargs = 2;
+ GERMANIC_PLURAL.operation = not_equal;
+ GERMANIC_PLURAL.val.args[0] = &plvar;
+ GERMANIC_PLURAL.val.args[1] = &plone;
+ }
+}
+
+# define INIT_GERMANIC_PLURAL() init_germanic_plural ()
+
+#endif
+
+void
+internal_function
+EXTRACT_PLURAL_EXPRESSION (nullentry, pluralp, npluralsp)
+ const char *nullentry;
+ struct expression **pluralp;
+ unsigned long int *npluralsp;
+{
+ if (nullentry != NULL)
+ {
+ const char *plural;
+ const char *nplurals;
+
+ plural = strstr (nullentry, "plural=");
+ nplurals = strstr (nullentry, "nplurals=");
+ if (plural == NULL || nplurals == NULL)
+ goto no_plural;
+ else
+ {
+ char *endp;
+ unsigned long int n;
+ struct parse_args args;
+
+ /* First get the number. */
+ nplurals += 9;
+ while (*nplurals != '\0' && isspace ((unsigned char) *nplurals))
+ ++nplurals;
+ if (!(*nplurals >= '0' && *nplurals <= '9'))
+ goto no_plural;
+#if defined HAVE_STRTOUL || defined _LIBC
+ n = strtoul (nplurals, &endp, 10);
+#else
+ for (endp = nplurals, n = 0; *endp >= '0' && *endp <= '9'; endp++)
+ n = n * 10 + (*endp - '0');
+#endif
+ if (nplurals == endp)
+ goto no_plural;
+ *npluralsp = n;
+
+ /* Due to the restrictions bison imposes onto the interface of the
+ scanner function we have to put the input string and the result
+ passed up from the parser into the same structure which address
+ is passed down to the parser. */
+ plural += 7;
+ args.cp = plural;
+ if (PLURAL_PARSE (&args) != 0)
+ goto no_plural;
+ *pluralp = args.res;
+ }
+ }
+ else
+ {
+ /* By default we are using the Germanic form: singular form only
+ for `one', the plural form otherwise. Yes, this is also what
+ English is using since English is a Germanic language. */
+ no_plural:
+ INIT_GERMANIC_PLURAL ();
+ *pluralp = &GERMANIC_PLURAL;
+ *npluralsp = 2;
+ }
+}
diff --git a/gnu/usr.bin/texinfo/intl/plural-exp.h b/gnu/usr.bin/texinfo/intl/plural-exp.h
new file mode 100644
index 00000000000..6a4bba01931
--- /dev/null
+++ b/gnu/usr.bin/texinfo/intl/plural-exp.h
@@ -0,0 +1,122 @@
+/* Expression parsing and evaluation for plural form selection.
+ Copyright (C) 2000, 2001 Free Software Foundation, Inc.
+ Written by Ulrich Drepper <drepper@cygnus.com>, 2000.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+ USA. */
+
+#ifndef _PLURAL_EXP_H
+#define _PLURAL_EXP_H
+
+#ifndef PARAMS
+# if __STDC__ || defined __GNUC__ || defined __SUNPRO_C || defined __cplusplus || __PROTOTYPES
+# define PARAMS(args) args
+# else
+# define PARAMS(args) ()
+# endif
+#endif
+
+#ifndef internal_function
+# define internal_function
+#endif
+
+
+/* This is the representation of the expressions to determine the
+ plural form. */
+struct expression
+{
+ int nargs; /* Number of arguments. */
+ enum operator
+ {
+ /* Without arguments: */
+ var, /* The variable "n". */
+ num, /* Decimal number. */
+ /* Unary operators: */
+ lnot, /* Logical NOT. */
+ /* Binary operators: */
+ mult, /* Multiplication. */
+ divide, /* Division. */
+ module, /* Modulo operation. */
+ plus, /* Addition. */
+ minus, /* Subtraction. */
+ less_than, /* Comparison. */
+ greater_than, /* Comparison. */
+ less_or_equal, /* Comparison. */
+ greater_or_equal, /* Comparison. */
+ equal, /* Comparison for equality. */
+ not_equal, /* Comparison for inequality. */
+ land, /* Logical AND. */
+ lor, /* Logical OR. */
+ /* Ternary operators: */
+ qmop /* Question mark operator. */
+ } operation;
+ union
+ {
+ unsigned long int num; /* Number value for `num'. */
+ struct expression *args[3]; /* Up to three arguments. */
+ } val;
+};
+
+/* This is the data structure to pass information to the parser and get
+ the result in a thread-safe way. */
+struct parse_args
+{
+ const char *cp;
+ struct expression *res;
+};
+
+
+/* Names for the libintl functions are a problem. This source code is used
+ 1. in the GNU C Library library,
+ 2. in the GNU libintl library,
+ 3. in the GNU gettext tools.
+ The function names in each situation must be different, to allow for
+ binary incompatible changes in 'struct expression'. Furthermore,
+ 1. in the GNU C Library library, the names have a __ prefix,
+ 2.+3. in the GNU libintl library and in the GNU gettext tools, the names
+ must follow ANSI C and not start with __.
+ So we have to distinguish the three cases. */
+#ifdef _LIBC
+# define FREE_EXPRESSION __gettext_free_exp
+# define PLURAL_PARSE __gettextparse
+# define GERMANIC_PLURAL __gettext_germanic_plural
+# define EXTRACT_PLURAL_EXPRESSION __gettext_extract_plural
+#elif defined (IN_LIBINTL)
+# define FREE_EXPRESSION gettext_free_exp__
+# define PLURAL_PARSE gettextparse__
+# define GERMANIC_PLURAL gettext_germanic_plural__
+# define EXTRACT_PLURAL_EXPRESSION gettext_extract_plural__
+#else
+# define FREE_EXPRESSION free_plural_expression
+# define PLURAL_PARSE parse_plural_expression
+# define GERMANIC_PLURAL germanic_plural
+# define EXTRACT_PLURAL_EXPRESSION extract_plural_expression
+#endif
+
+extern void FREE_EXPRESSION PARAMS ((struct expression *exp))
+ internal_function;
+extern int PLURAL_PARSE PARAMS ((void *arg));
+extern struct expression GERMANIC_PLURAL;
+extern void EXTRACT_PLURAL_EXPRESSION PARAMS ((const char *nullentry,
+ struct expression **pluralp,
+ unsigned long int *npluralsp))
+ internal_function;
+
+#if !defined (_LIBC) && !defined (IN_LIBINTL)
+extern unsigned long int plural_eval PARAMS ((struct expression *pexp,
+ unsigned long int n));
+#endif
+
+#endif /* _PLURAL_EXP_H */
diff --git a/gnu/usr.bin/texinfo/intl/plural.c b/gnu/usr.bin/texinfo/intl/plural.c
new file mode 100644
index 00000000000..c9ff63fbdb8
--- /dev/null
+++ b/gnu/usr.bin/texinfo/intl/plural.c
@@ -0,0 +1,1322 @@
+
+/* A Bison parser, made from plural.y
+ by GNU Bison version 1.28 */
+
+#define YYBISON 1 /* Identify Bison output. */
+
+#define yyparse __gettextparse
+#define yylex __gettextlex
+#define yyerror __gettexterror
+#define yylval __gettextlval
+#define yychar __gettextchar
+#define yydebug __gettextdebug
+#define yynerrs __gettextnerrs
+#define EQUOP2 257
+#define CMPOP2 258
+#define ADDOP2 259
+#define MULOP2 260
+#define NUMBER 261
+
+#line 1 "plural.y"
+
+/* Expression parsing for plural form selection.
+ Copyright (C) 2000, 2001 Free Software Foundation, Inc.
+ Written by Ulrich Drepper <drepper@cygnus.com>, 2000.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+ USA. */
+
+/* The bison generated parser uses alloca. AIX 3 forces us to put this
+ declaration at the beginning of the file. The declaration in bison's
+ skeleton file comes too late. This must come before <config.h>
+ because <config.h> may include arbitrary system headers. */
+#if defined _AIX && !defined __GNUC__
+ #pragma alloca
+#endif
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <stddef.h>
+#include <stdlib.h>
+#include "plural-exp.h"
+
+/* The main function generated by the parser is called __gettextparse,
+ but we want it to be called PLURAL_PARSE. */
+#ifndef _LIBC
+# define __gettextparse PLURAL_PARSE
+#endif
+
+#define YYLEX_PARAM &((struct parse_args *) arg)->cp
+#define YYPARSE_PARAM arg
+
+#line 49 "plural.y"
+typedef union {
+ unsigned long int num;
+ enum operator op;
+ struct expression *exp;
+} YYSTYPE;
+#line 55 "plural.y"
+
+/* Prototypes for local functions. */
+static struct expression *new_exp PARAMS ((int nargs, enum operator op,
+ struct expression * const *args));
+static inline struct expression *new_exp_0 PARAMS ((enum operator op));
+static inline struct expression *new_exp_1 PARAMS ((enum operator op,
+ struct expression *right));
+static struct expression *new_exp_2 PARAMS ((enum operator op,
+ struct expression *left,
+ struct expression *right));
+static inline struct expression *new_exp_3 PARAMS ((enum operator op,
+ struct expression *bexp,
+ struct expression *tbranch,
+ struct expression *fbranch));
+static int yylex PARAMS ((YYSTYPE *lval, const char **pexp));
+static void yyerror PARAMS ((const char *str));
+
+/* Allocation of expressions. */
+
+static struct expression *
+new_exp (nargs, op, args)
+ int nargs;
+ enum operator op;
+ struct expression * const *args;
+{
+ int i;
+ struct expression *newp;
+
+ /* If any of the argument could not be malloc'ed, just return NULL. */
+ for (i = nargs - 1; i >= 0; i--)
+ if (args[i] == NULL)
+ goto fail;
+
+ /* Allocate a new expression. */
+ newp = (struct expression *) malloc (sizeof (*newp));
+ if (newp != NULL)
+ {
+ newp->nargs = nargs;
+ newp->operation = op;
+ for (i = nargs - 1; i >= 0; i--)
+ newp->val.args[i] = args[i];
+ return newp;
+ }
+
+ fail:
+ for (i = nargs - 1; i >= 0; i--)
+ FREE_EXPRESSION (args[i]);
+
+ return NULL;
+}
+
+static inline struct expression *
+new_exp_0 (op)
+ enum operator op;
+{
+ return new_exp (0, op, NULL);
+}
+
+static inline struct expression *
+new_exp_1 (op, right)
+ enum operator op;
+ struct expression *right;
+{
+ struct expression *args[1];
+
+ args[0] = right;
+ return new_exp (1, op, args);
+}
+
+static struct expression *
+new_exp_2 (op, left, right)
+ enum operator op;
+ struct expression *left;
+ struct expression *right;
+{
+ struct expression *args[2];
+
+ args[0] = left;
+ args[1] = right;
+ return new_exp (2, op, args);
+}
+
+static inline struct expression *
+new_exp_3 (op, bexp, tbranch, fbranch)
+ enum operator op;
+ struct expression *bexp;
+ struct expression *tbranch;
+ struct expression *fbranch;
+{
+ struct expression *args[3];
+
+ args[0] = bexp;
+ args[1] = tbranch;
+ args[2] = fbranch;
+ return new_exp (3, op, args);
+}
+
+#include <stdio.h>
+
+#ifndef __cplusplus
+#ifndef __STDC__
+#define const
+#endif
+#endif
+
+
+
+#define YYFINAL 27
+#define YYFLAG -32768
+#define YYNTBASE 16
+
+#define YYTRANSLATE(x) ((unsigned)(x) <= 261 ? yytranslate[x] : 18)
+
+static const char yytranslate[] = { 0,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 10, 2, 2, 2, 2, 5, 2, 14,
+ 15, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 12, 2, 2,
+ 2, 2, 3, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 13,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 4, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 1, 6, 7, 8, 9,
+ 11
+};
+
+#if YYDEBUG != 0
+static const short yyprhs[] = { 0,
+ 0, 2, 8, 12, 16, 20, 24, 28, 32, 35,
+ 37, 39
+};
+
+static const short yyrhs[] = { 17,
+ 0, 17, 3, 17, 12, 17, 0, 17, 4, 17,
+ 0, 17, 5, 17, 0, 17, 6, 17, 0, 17,
+ 7, 17, 0, 17, 8, 17, 0, 17, 9, 17,
+ 0, 10, 17, 0, 13, 0, 11, 0, 14, 17,
+ 15, 0
+};
+
+#endif
+
+#if YYDEBUG != 0
+static const short yyrline[] = { 0,
+ 174, 182, 186, 190, 194, 198, 202, 206, 210, 214,
+ 218, 223
+};
+#endif
+
+
+#if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
+
+static const char * const yytname[] = { "$","error","$undefined.","'?'","'|'",
+"'&'","EQUOP2","CMPOP2","ADDOP2","MULOP2","'!'","NUMBER","':'","'n'","'('","')'",
+"start","exp", NULL
+};
+#endif
+
+static const short yyr1[] = { 0,
+ 16, 17, 17, 17, 17, 17, 17, 17, 17, 17,
+ 17, 17
+};
+
+static const short yyr2[] = { 0,
+ 1, 5, 3, 3, 3, 3, 3, 3, 2, 1,
+ 1, 3
+};
+
+static const short yydefact[] = { 0,
+ 0, 11, 10, 0, 1, 9, 0, 0, 0, 0,
+ 0, 0, 0, 0, 12, 0, 3, 4, 5, 6,
+ 7, 8, 0, 2, 0, 0, 0
+};
+
+static const short yydefgoto[] = { 25,
+ 5
+};
+
+static const short yypact[] = { -9,
+ -9,-32768,-32768, -9, 34,-32768, 11, -9, -9, -9,
+ -9, -9, -9, -9,-32768, 24, 39, 43, 16, 26,
+ -3,-32768, -9, 34, 21, 53,-32768
+};
+
+static const short yypgoto[] = {-32768,
+ -1
+};
+
+
+#define YYLAST 53
+
+
+static const short yytable[] = { 6,
+ 1, 2, 7, 3, 4, 14, 16, 17, 18, 19,
+ 20, 21, 22, 8, 9, 10, 11, 12, 13, 14,
+ 26, 24, 12, 13, 14, 15, 8, 9, 10, 11,
+ 12, 13, 14, 13, 14, 23, 8, 9, 10, 11,
+ 12, 13, 14, 10, 11, 12, 13, 14, 11, 12,
+ 13, 14, 27
+};
+
+static const short yycheck[] = { 1,
+ 10, 11, 4, 13, 14, 9, 8, 9, 10, 11,
+ 12, 13, 14, 3, 4, 5, 6, 7, 8, 9,
+ 0, 23, 7, 8, 9, 15, 3, 4, 5, 6,
+ 7, 8, 9, 8, 9, 12, 3, 4, 5, 6,
+ 7, 8, 9, 5, 6, 7, 8, 9, 6, 7,
+ 8, 9, 0
+};
+#define YYPURE 1
+
+/* -*-C-*- Note some compilers choke on comments on `#line' lines. */
+#line 3 "/usr/local/share/bison.simple"
+/* This file comes from bison-1.28. */
+
+/* Skeleton output parser for bison,
+ Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+/* As a special exception, when this file is copied by Bison into a
+ Bison output file, you may use that output file without restriction.
+ This special exception was added by the Free Software Foundation
+ in version 1.24 of Bison. */
+
+/* This is the parser code that is written into each bison parser
+ when the %semantic_parser declaration is not specified in the grammar.
+ It was written by Richard Stallman by simplifying the hairy parser
+ used when %semantic_parser is specified. */
+
+#ifndef YYSTACK_USE_ALLOCA
+#ifdef alloca
+#define YYSTACK_USE_ALLOCA
+#else /* alloca not defined */
+#ifdef __GNUC__
+#define YYSTACK_USE_ALLOCA
+#define alloca __builtin_alloca
+#else /* not GNU C. */
+#if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) || (defined (__sun) && defined (__i386))
+#define YYSTACK_USE_ALLOCA
+#include <alloca.h>
+#else /* not sparc */
+/* We think this test detects Watcom and Microsoft C. */
+/* This used to test MSDOS, but that is a bad idea
+ since that symbol is in the user namespace. */
+#if (defined (_MSDOS) || defined (_MSDOS_)) && !defined (__TURBOC__)
+#if 0 /* No need for malloc.h, which pollutes the namespace;
+ instead, just don't use alloca. */
+#include <malloc.h>
+#endif
+#else /* not MSDOS, or __TURBOC__ */
+#if defined(_AIX)
+/* I don't know what this was needed for, but it pollutes the namespace.
+ So I turned it off. rms, 2 May 1997. */
+/* #include <malloc.h> */
+ #pragma alloca
+#define YYSTACK_USE_ALLOCA
+#else /* not MSDOS, or __TURBOC__, or _AIX */
+#if 0
+#ifdef __hpux /* haible@ilog.fr says this works for HPUX 9.05 and up,
+ and on HPUX 10. Eventually we can turn this on. */
+#define YYSTACK_USE_ALLOCA
+#define alloca __builtin_alloca
+#endif /* __hpux */
+#endif
+#endif /* not _AIX */
+#endif /* not MSDOS, or __TURBOC__ */
+#endif /* not sparc */
+#endif /* not GNU C */
+#endif /* alloca not defined */
+#endif /* YYSTACK_USE_ALLOCA not defined */
+
+#ifdef YYSTACK_USE_ALLOCA
+#define YYSTACK_ALLOC alloca
+#else
+#define YYSTACK_ALLOC malloc
+#endif
+
+/* Note: there must be only one dollar sign in this file.
+ It is replaced by the list of actions, each action
+ as one case of the switch. */
+
+#define yyerrok (yyerrstatus = 0)
+#define yyclearin (yychar = YYEMPTY)
+#define YYEMPTY -2
+#define YYEOF 0
+#define YYACCEPT goto yyacceptlab
+#define YYABORT goto yyabortlab
+#define YYERROR goto yyerrlab1
+/* Like YYERROR except do call yyerror.
+ This remains here temporarily to ease the
+ transition to the new meaning of YYERROR, for GCC.
+ Once GCC version 2 has supplanted version 1, this can go. */
+#define YYFAIL goto yyerrlab
+#define YYRECOVERING() (!!yyerrstatus)
+#define YYBACKUP(token, value) \
+do \
+ if (yychar == YYEMPTY && yylen == 1) \
+ { yychar = (token), yylval = (value); \
+ yychar1 = YYTRANSLATE (yychar); \
+ YYPOPSTACK; \
+ goto yybackup; \
+ } \
+ else \
+ { yyerror ("syntax error: cannot back up"); YYERROR; } \
+while (0)
+
+#define YYTERROR 1
+#define YYERRCODE 256
+
+#ifndef YYPURE
+#define YYLEX yylex()
+#endif
+
+#ifdef YYPURE
+#ifdef YYLSP_NEEDED
+#ifdef YYLEX_PARAM
+#define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM)
+#else
+#define YYLEX yylex(&yylval, &yylloc)
+#endif
+#else /* not YYLSP_NEEDED */
+#ifdef YYLEX_PARAM
+#define YYLEX yylex(&yylval, YYLEX_PARAM)
+#else
+#define YYLEX yylex(&yylval)
+#endif
+#endif /* not YYLSP_NEEDED */
+#endif
+
+/* If nonreentrant, generate the variables here */
+
+#ifndef YYPURE
+
+int yychar; /* the lookahead symbol */
+YYSTYPE yylval; /* the semantic value of the */
+ /* lookahead symbol */
+
+#ifdef YYLSP_NEEDED
+YYLTYPE yylloc; /* location data for the lookahead */
+ /* symbol */
+#endif
+
+int yynerrs; /* number of parse errors so far */
+#endif /* not YYPURE */
+
+#if YYDEBUG != 0
+int yydebug; /* nonzero means print parse trace */
+/* Since this is uninitialized, it does not stop multiple parsers
+ from coexisting. */
+#endif
+
+/* YYINITDEPTH indicates the initial size of the parser's stacks */
+
+#ifndef YYINITDEPTH
+#define YYINITDEPTH 200
+#endif
+
+/* YYMAXDEPTH is the maximum size the stacks can grow to
+ (effective only if the built-in stack extension method is used). */
+
+#if YYMAXDEPTH == 0
+#undef YYMAXDEPTH
+#endif
+
+#ifndef YYMAXDEPTH
+#define YYMAXDEPTH 10000
+#endif
+
+/* Define __yy_memcpy. Note that the size argument
+ should be passed with type unsigned int, because that is what the non-GCC
+ definitions require. With GCC, __builtin_memcpy takes an arg
+ of type size_t, but it can handle unsigned int. */
+
+#if __GNUC__ > 1 /* GNU C and GNU C++ define this. */
+#define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT)
+#else /* not GNU C or C++ */
+#ifndef __cplusplus
+
+/* This is the most reliable way to avoid incompatibilities
+ in available built-in functions on various systems. */
+static void
+__yy_memcpy (to, from, count)
+ char *to;
+ char *from;
+ unsigned int count;
+{
+ register char *f = from;
+ register char *t = to;
+ register int i = count;
+
+ while (i-- > 0)
+ *t++ = *f++;
+}
+
+#else /* __cplusplus */
+
+/* This is the most reliable way to avoid incompatibilities
+ in available built-in functions on various systems. */
+static void
+__yy_memcpy (char *to, char *from, unsigned int count)
+{
+ register char *t = to;
+ register char *f = from;
+ register int i = count;
+
+ while (i-- > 0)
+ *t++ = *f++;
+}
+
+#endif
+#endif
+
+#line 217 "/usr/local/share/bison.simple"
+
+/* The user can define YYPARSE_PARAM as the name of an argument to be passed
+ into yyparse. The argument should have type void *.
+ It should actually point to an object.
+ Grammar actions can access the variable by casting it
+ to the proper pointer type. */
+
+#ifdef YYPARSE_PARAM
+#ifdef __cplusplus
+#define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
+#define YYPARSE_PARAM_DECL
+#else /* not __cplusplus */
+#define YYPARSE_PARAM_ARG YYPARSE_PARAM
+#define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
+#endif /* not __cplusplus */
+#else /* not YYPARSE_PARAM */
+#define YYPARSE_PARAM_ARG
+#define YYPARSE_PARAM_DECL
+#endif /* not YYPARSE_PARAM */
+
+/* Prevent warning if -Wstrict-prototypes. */
+#ifdef __GNUC__
+#ifdef YYPARSE_PARAM
+int yyparse (void *);
+#else
+int yyparse (void);
+#endif
+#endif
+
+int
+yyparse(YYPARSE_PARAM_ARG)
+ YYPARSE_PARAM_DECL
+{
+ register int yystate;
+ register int yyn;
+ register short *yyssp;
+ register YYSTYPE *yyvsp;
+ int yyerrstatus; /* number of tokens to shift before error messages enabled */
+ int yychar1 = 0; /* lookahead token as an internal (translated) token number */
+
+ short yyssa[YYINITDEPTH]; /* the state stack */
+ YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */
+
+ short *yyss = yyssa; /* refer to the stacks thru separate pointers */
+ YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */
+
+#ifdef YYLSP_NEEDED
+ YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */
+ YYLTYPE *yyls = yylsa;
+ YYLTYPE *yylsp;
+
+#define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
+#else
+#define YYPOPSTACK (yyvsp--, yyssp--)
+#endif
+
+ int yystacksize = YYINITDEPTH;
+ int yyfree_stacks = 0;
+
+#ifdef YYPURE
+ int yychar;
+ YYSTYPE yylval;
+ int yynerrs;
+#ifdef YYLSP_NEEDED
+ YYLTYPE yylloc;
+#endif
+#endif
+
+ YYSTYPE yyval; /* the variable used to return */
+ /* semantic values from the action */
+ /* routines */
+
+ int yylen;
+
+#if YYDEBUG != 0
+ if (yydebug)
+ fprintf(stderr, "Starting parse\n");
+#endif
+
+ yystate = 0;
+ yyerrstatus = 0;
+ yynerrs = 0;
+ yychar = YYEMPTY; /* Cause a token to be read. */
+
+ /* Initialize stack pointers.
+ Waste one element of value and location stack
+ so that they stay on the same level as the state stack.
+ The wasted elements are never initialized. */
+
+ yyssp = yyss - 1;
+ yyvsp = yyvs;
+#ifdef YYLSP_NEEDED
+ yylsp = yyls;
+#endif
+
+/* Push a new state, which is found in yystate . */
+/* In all cases, when you get here, the value and location stacks
+ have just been pushed. so pushing a state here evens the stacks. */
+yynewstate:
+
+ *++yyssp = yystate;
+
+ if (yyssp >= yyss + yystacksize - 1)
+ {
+ /* Give user a chance to reallocate the stack */
+ /* Use copies of these so that the &'s don't force the real ones into memory. */
+ YYSTYPE *yyvs1 = yyvs;
+ short *yyss1 = yyss;
+#ifdef YYLSP_NEEDED
+ YYLTYPE *yyls1 = yyls;
+#endif
+
+ /* Get the current used size of the three stacks, in elements. */
+ int size = yyssp - yyss + 1;
+
+#ifdef yyoverflow
+ /* Each stack pointer address is followed by the size of
+ the data in use in that stack, in bytes. */
+#ifdef YYLSP_NEEDED
+ /* This used to be a conditional around just the two extra args,
+ but that might be undefined if yyoverflow is a macro. */
+ yyoverflow("parser stack overflow",
+ &yyss1, size * sizeof (*yyssp),
+ &yyvs1, size * sizeof (*yyvsp),
+ &yyls1, size * sizeof (*yylsp),
+ &yystacksize);
+#else
+ yyoverflow("parser stack overflow",
+ &yyss1, size * sizeof (*yyssp),
+ &yyvs1, size * sizeof (*yyvsp),
+ &yystacksize);
+#endif
+
+ yyss = yyss1; yyvs = yyvs1;
+#ifdef YYLSP_NEEDED
+ yyls = yyls1;
+#endif
+#else /* no yyoverflow */
+ /* Extend the stack our own way. */
+ if (yystacksize >= YYMAXDEPTH)
+ {
+ yyerror("parser stack overflow");
+ if (yyfree_stacks)
+ {
+ free (yyss);
+ free (yyvs);
+#ifdef YYLSP_NEEDED
+ free (yyls);
+#endif
+ }
+ return 2;
+ }
+ yystacksize *= 2;
+ if (yystacksize > YYMAXDEPTH)
+ yystacksize = YYMAXDEPTH;
+#ifndef YYSTACK_USE_ALLOCA
+ yyfree_stacks = 1;
+#endif
+ yyss = (short *) YYSTACK_ALLOC (yystacksize * sizeof (*yyssp));
+ __yy_memcpy ((char *)yyss, (char *)yyss1,
+ size * (unsigned int) sizeof (*yyssp));
+ yyvs = (YYSTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yyvsp));
+ __yy_memcpy ((char *)yyvs, (char *)yyvs1,
+ size * (unsigned int) sizeof (*yyvsp));
+#ifdef YYLSP_NEEDED
+ yyls = (YYLTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yylsp));
+ __yy_memcpy ((char *)yyls, (char *)yyls1,
+ size * (unsigned int) sizeof (*yylsp));
+#endif
+#endif /* no yyoverflow */
+
+ yyssp = yyss + size - 1;
+ yyvsp = yyvs + size - 1;
+#ifdef YYLSP_NEEDED
+ yylsp = yyls + size - 1;
+#endif
+
+#if YYDEBUG != 0
+ if (yydebug)
+ fprintf(stderr, "Stack size increased to %d\n", yystacksize);
+#endif
+
+ if (yyssp >= yyss + yystacksize - 1)
+ YYABORT;
+ }
+
+#if YYDEBUG != 0
+ if (yydebug)
+ fprintf(stderr, "Entering state %d\n", yystate);
+#endif
+
+ goto yybackup;
+ yybackup:
+
+/* Do appropriate processing given the current state. */
+/* Read a lookahead token if we need one and don't already have one. */
+/* yyresume: */
+
+ /* First try to decide what to do without reference to lookahead token. */
+
+ yyn = yypact[yystate];
+ if (yyn == YYFLAG)
+ goto yydefault;
+
+ /* Not known => get a lookahead token if don't already have one. */
+
+ /* yychar is either YYEMPTY or YYEOF
+ or a valid token in external form. */
+
+ if (yychar == YYEMPTY)
+ {
+#if YYDEBUG != 0
+ if (yydebug)
+ fprintf(stderr, "Reading a token: ");
+#endif
+ yychar = YYLEX;
+ }
+
+ /* Convert token to internal form (in yychar1) for indexing tables with */
+
+ if (yychar <= 0) /* This means end of input. */
+ {
+ yychar1 = 0;
+ yychar = YYEOF; /* Don't call YYLEX any more */
+
+#if YYDEBUG != 0
+ if (yydebug)
+ fprintf(stderr, "Now at end of input.\n");
+#endif
+ }
+ else
+ {
+ yychar1 = YYTRANSLATE(yychar);
+
+#if YYDEBUG != 0
+ if (yydebug)
+ {
+ fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
+ /* Give the individual parser a way to print the precise meaning
+ of a token, for further debugging info. */
+#ifdef YYPRINT
+ YYPRINT (stderr, yychar, yylval);
+#endif
+ fprintf (stderr, ")\n");
+ }
+#endif
+ }
+
+ yyn += yychar1;
+ if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
+ goto yydefault;
+
+ yyn = yytable[yyn];
+
+ /* yyn is what to do for this token type in this state.
+ Negative => reduce, -yyn is rule number.
+ Positive => shift, yyn is new state.
+ New state is final state => don't bother to shift,
+ just return success.
+ 0, or most negative number => error. */
+
+ if (yyn < 0)
+ {
+ if (yyn == YYFLAG)
+ goto yyerrlab;
+ yyn = -yyn;
+ goto yyreduce;
+ }
+ else if (yyn == 0)
+ goto yyerrlab;
+
+ if (yyn == YYFINAL)
+ YYACCEPT;
+
+ /* Shift the lookahead token. */
+
+#if YYDEBUG != 0
+ if (yydebug)
+ fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
+#endif
+
+ /* Discard the token being shifted unless it is eof. */
+ if (yychar != YYEOF)
+ yychar = YYEMPTY;
+
+ *++yyvsp = yylval;
+#ifdef YYLSP_NEEDED
+ *++yylsp = yylloc;
+#endif
+
+ /* count tokens shifted since error; after three, turn off error status. */
+ if (yyerrstatus) yyerrstatus--;
+
+ yystate = yyn;
+ goto yynewstate;
+
+/* Do the default action for the current state. */
+yydefault:
+
+ yyn = yydefact[yystate];
+ if (yyn == 0)
+ goto yyerrlab;
+
+/* Do a reduction. yyn is the number of a rule to reduce with. */
+yyreduce:
+ yylen = yyr2[yyn];
+ if (yylen > 0)
+ yyval = yyvsp[1-yylen]; /* implement default value of the action */
+
+#if YYDEBUG != 0
+ if (yydebug)
+ {
+ int i;
+
+ fprintf (stderr, "Reducing via rule %d (line %d), ",
+ yyn, yyrline[yyn]);
+
+ /* Print the symbols being reduced, and their result. */
+ for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
+ fprintf (stderr, "%s ", yytname[yyrhs[i]]);
+ fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
+ }
+#endif
+
+
+ switch (yyn) {
+
+case 1:
+#line 175 "plural.y"
+{
+ if (yyvsp[0].exp == NULL)
+ YYABORT;
+ ((struct parse_args *) arg)->res = yyvsp[0].exp;
+ ;
+ break;}
+case 2:
+#line 183 "plural.y"
+{
+ yyval.exp = new_exp_3 (qmop, yyvsp[-4].exp, yyvsp[-2].exp, yyvsp[0].exp);
+ ;
+ break;}
+case 3:
+#line 187 "plural.y"
+{
+ yyval.exp = new_exp_2 (lor, yyvsp[-2].exp, yyvsp[0].exp);
+ ;
+ break;}
+case 4:
+#line 191 "plural.y"
+{
+ yyval.exp = new_exp_2 (land, yyvsp[-2].exp, yyvsp[0].exp);
+ ;
+ break;}
+case 5:
+#line 195 "plural.y"
+{
+ yyval.exp = new_exp_2 (yyvsp[-1].op, yyvsp[-2].exp, yyvsp[0].exp);
+ ;
+ break;}
+case 6:
+#line 199 "plural.y"
+{
+ yyval.exp = new_exp_2 (yyvsp[-1].op, yyvsp[-2].exp, yyvsp[0].exp);
+ ;
+ break;}
+case 7:
+#line 203 "plural.y"
+{
+ yyval.exp = new_exp_2 (yyvsp[-1].op, yyvsp[-2].exp, yyvsp[0].exp);
+ ;
+ break;}
+case 8:
+#line 207 "plural.y"
+{
+ yyval.exp = new_exp_2 (yyvsp[-1].op, yyvsp[-2].exp, yyvsp[0].exp);
+ ;
+ break;}
+case 9:
+#line 211 "plural.y"
+{
+ yyval.exp = new_exp_1 (lnot, yyvsp[0].exp);
+ ;
+ break;}
+case 10:
+#line 215 "plural.y"
+{
+ yyval.exp = new_exp_0 (var);
+ ;
+ break;}
+case 11:
+#line 219 "plural.y"
+{
+ if ((yyval.exp = new_exp_0 (num)) != NULL)
+ yyval.exp->val.num = yyvsp[0].num;
+ ;
+ break;}
+case 12:
+#line 224 "plural.y"
+{
+ yyval.exp = yyvsp[-1].exp;
+ ;
+ break;}
+}
+ /* the action file gets copied in in place of this dollarsign */
+#line 543 "/usr/local/share/bison.simple"
+
+ yyvsp -= yylen;
+ yyssp -= yylen;
+#ifdef YYLSP_NEEDED
+ yylsp -= yylen;
+#endif
+
+#if YYDEBUG != 0
+ if (yydebug)
+ {
+ short *ssp1 = yyss - 1;
+ fprintf (stderr, "state stack now");
+ while (ssp1 != yyssp)
+ fprintf (stderr, " %d", *++ssp1);
+ fprintf (stderr, "\n");
+ }
+#endif
+
+ *++yyvsp = yyval;
+
+#ifdef YYLSP_NEEDED
+ yylsp++;
+ if (yylen == 0)
+ {
+ yylsp->first_line = yylloc.first_line;
+ yylsp->first_column = yylloc.first_column;
+ yylsp->last_line = (yylsp-1)->last_line;
+ yylsp->last_column = (yylsp-1)->last_column;
+ yylsp->text = 0;
+ }
+ else
+ {
+ yylsp->last_line = (yylsp+yylen-1)->last_line;
+ yylsp->last_column = (yylsp+yylen-1)->last_column;
+ }
+#endif
+
+ /* Now "shift" the result of the reduction.
+ Determine what state that goes to,
+ based on the state we popped back to
+ and the rule number reduced by. */
+
+ yyn = yyr1[yyn];
+
+ yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
+ if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
+ yystate = yytable[yystate];
+ else
+ yystate = yydefgoto[yyn - YYNTBASE];
+
+ goto yynewstate;
+
+yyerrlab: /* here on detecting error */
+
+ if (! yyerrstatus)
+ /* If not already recovering from an error, report this error. */
+ {
+ ++yynerrs;
+
+#ifdef YYERROR_VERBOSE
+ yyn = yypact[yystate];
+
+ if (yyn > YYFLAG && yyn < YYLAST)
+ {
+ int size = 0;
+ char *msg;
+ int x, count;
+
+ count = 0;
+ /* Start X at -yyn if nec to avoid negative indexes in yycheck. */
+ for (x = (yyn < 0 ? -yyn : 0);
+ x < (sizeof(yytname) / sizeof(char *)); x++)
+ if (yycheck[x + yyn] == x)
+ size += strlen(yytname[x]) + 15, count++;
+ msg = (char *) malloc(size + 15);
+ if (msg != 0)
+ {
+ strcpy(msg, "parse error");
+
+ if (count < 5)
+ {
+ count = 0;
+ for (x = (yyn < 0 ? -yyn : 0);
+ x < (sizeof(yytname) / sizeof(char *)); x++)
+ if (yycheck[x + yyn] == x)
+ {
+ strcat(msg, count == 0 ? ", expecting `" : " or `");
+ strcat(msg, yytname[x]);
+ strcat(msg, "'");
+ count++;
+ }
+ }
+ yyerror(msg);
+ free(msg);
+ }
+ else
+ yyerror ("parse error; also virtual memory exceeded");
+ }
+ else
+#endif /* YYERROR_VERBOSE */
+ yyerror("parse error");
+ }
+
+ goto yyerrlab1;
+yyerrlab1: /* here on error raised explicitly by an action */
+
+ if (yyerrstatus == 3)
+ {
+ /* if just tried and failed to reuse lookahead token after an error, discard it. */
+
+ /* return failure if at end of input */
+ if (yychar == YYEOF)
+ YYABORT;
+
+#if YYDEBUG != 0
+ if (yydebug)
+ fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
+#endif
+
+ yychar = YYEMPTY;
+ }
+
+ /* Else will try to reuse lookahead token
+ after shifting the error token. */
+
+ yyerrstatus = 3; /* Each real token shifted decrements this */
+
+ goto yyerrhandle;
+
+yyerrdefault: /* current state does not do anything special for the error token. */
+
+#if 0
+ /* This is wrong; only states that explicitly want error tokens
+ should shift them. */
+ yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/
+ if (yyn) goto yydefault;
+#endif
+
+yyerrpop: /* pop the current state because it cannot handle the error token */
+
+ if (yyssp == yyss) YYABORT;
+ yyvsp--;
+ yystate = *--yyssp;
+#ifdef YYLSP_NEEDED
+ yylsp--;
+#endif
+
+#if YYDEBUG != 0
+ if (yydebug)
+ {
+ short *ssp1 = yyss - 1;
+ fprintf (stderr, "Error: state stack now");
+ while (ssp1 != yyssp)
+ fprintf (stderr, " %d", *++ssp1);
+ fprintf (stderr, "\n");
+ }
+#endif
+
+yyerrhandle:
+
+ yyn = yypact[yystate];
+ if (yyn == YYFLAG)
+ goto yyerrdefault;
+
+ yyn += YYTERROR;
+ if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
+ goto yyerrdefault;
+
+ yyn = yytable[yyn];
+ if (yyn < 0)
+ {
+ if (yyn == YYFLAG)
+ goto yyerrpop;
+ yyn = -yyn;
+ goto yyreduce;
+ }
+ else if (yyn == 0)
+ goto yyerrpop;
+
+ if (yyn == YYFINAL)
+ YYACCEPT;
+
+#if YYDEBUG != 0
+ if (yydebug)
+ fprintf(stderr, "Shifting error token, ");
+#endif
+
+ *++yyvsp = yylval;
+#ifdef YYLSP_NEEDED
+ *++yylsp = yylloc;
+#endif
+
+ yystate = yyn;
+ goto yynewstate;
+
+ yyacceptlab:
+ /* YYACCEPT comes here. */
+ if (yyfree_stacks)
+ {
+ free (yyss);
+ free (yyvs);
+#ifdef YYLSP_NEEDED
+ free (yyls);
+#endif
+ }
+ return 0;
+
+ yyabortlab:
+ /* YYABORT comes here. */
+ if (yyfree_stacks)
+ {
+ free (yyss);
+ free (yyvs);
+#ifdef YYLSP_NEEDED
+ free (yyls);
+#endif
+ }
+ return 1;
+}
+#line 229 "plural.y"
+
+
+void
+internal_function
+FREE_EXPRESSION (exp)
+ struct expression *exp;
+{
+ if (exp == NULL)
+ return;
+
+ /* Handle the recursive case. */
+ switch (exp->nargs)
+ {
+ case 3:
+ FREE_EXPRESSION (exp->val.args[2]);
+ /* FALLTHROUGH */
+ case 2:
+ FREE_EXPRESSION (exp->val.args[1]);
+ /* FALLTHROUGH */
+ case 1:
+ FREE_EXPRESSION (exp->val.args[0]);
+ /* FALLTHROUGH */
+ default:
+ break;
+ }
+
+ free (exp);
+}
+
+
+static int
+yylex (lval, pexp)
+ YYSTYPE *lval;
+ const char **pexp;
+{
+ const char *exp = *pexp;
+ int result;
+
+ while (1)
+ {
+ if (exp[0] == '\0')
+ {
+ *pexp = exp;
+ return YYEOF;
+ }
+
+ if (exp[0] != ' ' && exp[0] != '\t')
+ break;
+
+ ++exp;
+ }
+
+ result = *exp++;
+ switch (result)
+ {
+ case '0': case '1': case '2': case '3': case '4':
+ case '5': case '6': case '7': case '8': case '9':
+ {
+ unsigned long int n = result - '0';
+ while (exp[0] >= '0' && exp[0] <= '9')
+ {
+ n *= 10;
+ n += exp[0] - '0';
+ ++exp;
+ }
+ lval->num = n;
+ result = NUMBER;
+ }
+ break;
+
+ case '=':
+ if (exp[0] == '=')
+ {
+ ++exp;
+ lval->op = equal;
+ result = EQUOP2;
+ }
+ else
+ result = YYERRCODE;
+ break;
+
+ case '!':
+ if (exp[0] == '=')
+ {
+ ++exp;
+ lval->op = not_equal;
+ result = EQUOP2;
+ }
+ break;
+
+ case '&':
+ case '|':
+ if (exp[0] == result)
+ ++exp;
+ else
+ result = YYERRCODE;
+ break;
+
+ case '<':
+ if (exp[0] == '=')
+ {
+ ++exp;
+ lval->op = less_or_equal;
+ }
+ else
+ lval->op = less_than;
+ result = CMPOP2;
+ break;
+
+ case '>':
+ if (exp[0] == '=')
+ {
+ ++exp;
+ lval->op = greater_or_equal;
+ }
+ else
+ lval->op = greater_than;
+ result = CMPOP2;
+ break;
+
+ case '*':
+ lval->op = mult;
+ result = MULOP2;
+ break;
+
+ case '/':
+ lval->op = divide;
+ result = MULOP2;
+ break;
+
+ case '%':
+ lval->op = module;
+ result = MULOP2;
+ break;
+
+ case '+':
+ lval->op = plus;
+ result = ADDOP2;
+ break;
+
+ case '-':
+ lval->op = minus;
+ result = ADDOP2;
+ break;
+
+ case 'n':
+ case '?':
+ case ':':
+ case '(':
+ case ')':
+ /* Nothing, just return the character. */
+ break;
+
+ case ';':
+ case '\n':
+ case '\0':
+ /* Be safe and let the user call this function again. */
+ --exp;
+ result = YYEOF;
+ break;
+
+ default:
+ result = YYERRCODE;
+#if YYDEBUG != 0
+ --exp;
+#endif
+ break;
+ }
+
+ *pexp = exp;
+
+ return result;
+}
+
+
+static void
+yyerror (str)
+ const char *str;
+{
+ /* Do nothing. We don't print error messages here. */
+}
diff --git a/gnu/usr.bin/texinfo/intl/plural.y b/gnu/usr.bin/texinfo/intl/plural.y
new file mode 100644
index 00000000000..616b7c11a21
--- /dev/null
+++ b/gnu/usr.bin/texinfo/intl/plural.y
@@ -0,0 +1,409 @@
+%{
+/* Expression parsing for plural form selection.
+ Copyright (C) 2000, 2001 Free Software Foundation, Inc.
+ Written by Ulrich Drepper <drepper@cygnus.com>, 2000.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+ USA. */
+
+/* The bison generated parser uses alloca. AIX 3 forces us to put this
+ declaration at the beginning of the file. The declaration in bison's
+ skeleton file comes too late. This must come before <config.h>
+ because <config.h> may include arbitrary system headers. */
+#if defined _AIX && !defined __GNUC__
+ #pragma alloca
+#endif
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <stddef.h>
+#include <stdlib.h>
+#include "plural-exp.h"
+
+/* The main function generated by the parser is called __gettextparse,
+ but we want it to be called PLURAL_PARSE. */
+#ifndef _LIBC
+# define __gettextparse PLURAL_PARSE
+#endif
+
+#define YYLEX_PARAM &((struct parse_args *) arg)->cp
+#define YYPARSE_PARAM arg
+%}
+%pure_parser
+%expect 7
+
+%union {
+ unsigned long int num;
+ enum operator op;
+ struct expression *exp;
+}
+
+%{
+/* Prototypes for local functions. */
+static struct expression *new_exp PARAMS ((int nargs, enum operator op,
+ struct expression * const *args));
+static inline struct expression *new_exp_0 PARAMS ((enum operator op));
+static inline struct expression *new_exp_1 PARAMS ((enum operator op,
+ struct expression *right));
+static struct expression *new_exp_2 PARAMS ((enum operator op,
+ struct expression *left,
+ struct expression *right));
+static inline struct expression *new_exp_3 PARAMS ((enum operator op,
+ struct expression *bexp,
+ struct expression *tbranch,
+ struct expression *fbranch));
+static int yylex PARAMS ((YYSTYPE *lval, const char **pexp));
+static void yyerror PARAMS ((const char *str));
+
+/* Allocation of expressions. */
+
+static struct expression *
+new_exp (nargs, op, args)
+ int nargs;
+ enum operator op;
+ struct expression * const *args;
+{
+ int i;
+ struct expression *newp;
+
+ /* If any of the argument could not be malloc'ed, just return NULL. */
+ for (i = nargs - 1; i >= 0; i--)
+ if (args[i] == NULL)
+ goto fail;
+
+ /* Allocate a new expression. */
+ newp = (struct expression *) malloc (sizeof (*newp));
+ if (newp != NULL)
+ {
+ newp->nargs = nargs;
+ newp->operation = op;
+ for (i = nargs - 1; i >= 0; i--)
+ newp->val.args[i] = args[i];
+ return newp;
+ }
+
+ fail:
+ for (i = nargs - 1; i >= 0; i--)
+ FREE_EXPRESSION (args[i]);
+
+ return NULL;
+}
+
+static inline struct expression *
+new_exp_0 (op)
+ enum operator op;
+{
+ return new_exp (0, op, NULL);
+}
+
+static inline struct expression *
+new_exp_1 (op, right)
+ enum operator op;
+ struct expression *right;
+{
+ struct expression *args[1];
+
+ args[0] = right;
+ return new_exp (1, op, args);
+}
+
+static struct expression *
+new_exp_2 (op, left, right)
+ enum operator op;
+ struct expression *left;
+ struct expression *right;
+{
+ struct expression *args[2];
+
+ args[0] = left;
+ args[1] = right;
+ return new_exp (2, op, args);
+}
+
+static inline struct expression *
+new_exp_3 (op, bexp, tbranch, fbranch)
+ enum operator op;
+ struct expression *bexp;
+ struct expression *tbranch;
+ struct expression *fbranch;
+{
+ struct expression *args[3];
+
+ args[0] = bexp;
+ args[1] = tbranch;
+ args[2] = fbranch;
+ return new_exp (3, op, args);
+}
+
+%}
+
+/* This declares that all operators have the same associativity and the
+ precedence order as in C. See [Harbison, Steele: C, A Reference Manual].
+ There is no unary minus and no bitwise operators.
+ Operators with the same syntactic behaviour have been merged into a single
+ token, to save space in the array generated by bison. */
+%right '?' /* ? */
+%left '|' /* || */
+%left '&' /* && */
+%left EQUOP2 /* == != */
+%left CMPOP2 /* < > <= >= */
+%left ADDOP2 /* + - */
+%left MULOP2 /* * / % */
+%right '!' /* ! */
+
+%token <op> EQUOP2 CMPOP2 ADDOP2 MULOP2
+%token <num> NUMBER
+%type <exp> exp
+
+%%
+
+start: exp
+ {
+ if ($1 == NULL)
+ YYABORT;
+ ((struct parse_args *) arg)->res = $1;
+ }
+ ;
+
+exp: exp '?' exp ':' exp
+ {
+ $$ = new_exp_3 (qmop, $1, $3, $5);
+ }
+ | exp '|' exp
+ {
+ $$ = new_exp_2 (lor, $1, $3);
+ }
+ | exp '&' exp
+ {
+ $$ = new_exp_2 (land, $1, $3);
+ }
+ | exp EQUOP2 exp
+ {
+ $$ = new_exp_2 ($2, $1, $3);
+ }
+ | exp CMPOP2 exp
+ {
+ $$ = new_exp_2 ($2, $1, $3);
+ }
+ | exp ADDOP2 exp
+ {
+ $$ = new_exp_2 ($2, $1, $3);
+ }
+ | exp MULOP2 exp
+ {
+ $$ = new_exp_2 ($2, $1, $3);
+ }
+ | '!' exp
+ {
+ $$ = new_exp_1 (lnot, $2);
+ }
+ | 'n'
+ {
+ $$ = new_exp_0 (var);
+ }
+ | NUMBER
+ {
+ if (($$ = new_exp_0 (num)) != NULL)
+ $$->val.num = $1;
+ }
+ | '(' exp ')'
+ {
+ $$ = $2;
+ }
+ ;
+
+%%
+
+void
+internal_function
+FREE_EXPRESSION (exp)
+ struct expression *exp;
+{
+ if (exp == NULL)
+ return;
+
+ /* Handle the recursive case. */
+ switch (exp->nargs)
+ {
+ case 3:
+ FREE_EXPRESSION (exp->val.args[2]);
+ /* FALLTHROUGH */
+ case 2:
+ FREE_EXPRESSION (exp->val.args[1]);
+ /* FALLTHROUGH */
+ case 1:
+ FREE_EXPRESSION (exp->val.args[0]);
+ /* FALLTHROUGH */
+ default:
+ break;
+ }
+
+ free (exp);
+}
+
+
+static int
+yylex (lval, pexp)
+ YYSTYPE *lval;
+ const char **pexp;
+{
+ const char *exp = *pexp;
+ int result;
+
+ while (1)
+ {
+ if (exp[0] == '\0')
+ {
+ *pexp = exp;
+ return YYEOF;
+ }
+
+ if (exp[0] != ' ' && exp[0] != '\t')
+ break;
+
+ ++exp;
+ }
+
+ result = *exp++;
+ switch (result)
+ {
+ case '0': case '1': case '2': case '3': case '4':
+ case '5': case '6': case '7': case '8': case '9':
+ {
+ unsigned long int n = result - '0';
+ while (exp[0] >= '0' && exp[0] <= '9')
+ {
+ n *= 10;
+ n += exp[0] - '0';
+ ++exp;
+ }
+ lval->num = n;
+ result = NUMBER;
+ }
+ break;
+
+ case '=':
+ if (exp[0] == '=')
+ {
+ ++exp;
+ lval->op = equal;
+ result = EQUOP2;
+ }
+ else
+ result = YYERRCODE;
+ break;
+
+ case '!':
+ if (exp[0] == '=')
+ {
+ ++exp;
+ lval->op = not_equal;
+ result = EQUOP2;
+ }
+ break;
+
+ case '&':
+ case '|':
+ if (exp[0] == result)
+ ++exp;
+ else
+ result = YYERRCODE;
+ break;
+
+ case '<':
+ if (exp[0] == '=')
+ {
+ ++exp;
+ lval->op = less_or_equal;
+ }
+ else
+ lval->op = less_than;
+ result = CMPOP2;
+ break;
+
+ case '>':
+ if (exp[0] == '=')
+ {
+ ++exp;
+ lval->op = greater_or_equal;
+ }
+ else
+ lval->op = greater_than;
+ result = CMPOP2;
+ break;
+
+ case '*':
+ lval->op = mult;
+ result = MULOP2;
+ break;
+
+ case '/':
+ lval->op = divide;
+ result = MULOP2;
+ break;
+
+ case '%':
+ lval->op = module;
+ result = MULOP2;
+ break;
+
+ case '+':
+ lval->op = plus;
+ result = ADDOP2;
+ break;
+
+ case '-':
+ lval->op = minus;
+ result = ADDOP2;
+ break;
+
+ case 'n':
+ case '?':
+ case ':':
+ case '(':
+ case ')':
+ /* Nothing, just return the character. */
+ break;
+
+ case ';':
+ case '\n':
+ case '\0':
+ /* Be safe and let the user call this function again. */
+ --exp;
+ result = YYEOF;
+ break;
+
+ default:
+ result = YYERRCODE;
+#if YYDEBUG != 0
+ --exp;
+#endif
+ break;
+ }
+
+ *pexp = exp;
+
+ return result;
+}
+
+
+static void
+yyerror (str)
+ const char *str;
+{
+ /* Do nothing. We don't print error messages here. */
+}
diff --git a/gnu/usr.bin/texinfo/intl/ref-add.sin b/gnu/usr.bin/texinfo/intl/ref-add.sin
new file mode 100644
index 00000000000..167374e3c5e
--- /dev/null
+++ b/gnu/usr.bin/texinfo/intl/ref-add.sin
@@ -0,0 +1,31 @@
+# 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 Library 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
+# Library General Public License for more details.
+#
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+#
+# 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 --git a/gnu/usr.bin/texinfo/intl/ref-del.sin b/gnu/usr.bin/texinfo/intl/ref-del.sin
new file mode 100644
index 00000000000..613cf37f3ba
--- /dev/null
+++ b/gnu/usr.bin/texinfo/intl/ref-del.sin
@@ -0,0 +1,26 @@
+# 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 Library 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
+# Library General Public License for more details.
+#
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+#
+# 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 --git a/gnu/usr.bin/texinfo/lib/gettext.h b/gnu/usr.bin/texinfo/lib/gettext.h
new file mode 100644
index 00000000000..4ab74d92c29
--- /dev/null
+++ b/gnu/usr.bin/texinfo/lib/gettext.h
@@ -0,0 +1,74 @@
+/* Convenience header for conditional use of GNU <libintl.h>.
+ Copyright (C) 1995-1998, 2000-2002 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+ USA. */
+
+#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>
+
+#else
+
+/* 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". */
+#if 0
+/* no thanks, not ready to go const --karl, 26feb02 */
+# define gettext(Msgid) ((const char *) (Msgid))
+# define dgettext(Domainname, Msgid) ((const char *) (Msgid))
+# define dcgettext(Domainname, Msgid, Category) ((const char *) (Msgid))
+# define ngettext(Msgid1, Msgid2, N) \
+ ((N) == 1 ? (const char *) (Msgid1) : (const char *) (Msgid2))
+# define dngettext(Domainname, Msgid1, Msgid2, N) \
+ ((N) == 1 ? (const char *) (Msgid1) : (const char *) (Msgid2))
+# define dcngettext(Domainname, Msgid1, Msgid2, N, Category) \
+ ((N) == 1 ? (const char *) (Msgid1) : (const char *) (Msgid2))
+# define textdomain(Domainname) ((const char *) (Domainname))
+# define bindtextdomain(Domainname, Dirname) ((const char *) (Dirname))
+# define bind_textdomain_codeset(Domainname, Codeset) ((const char *) (Codeset))
+#else /* not 0 */
+# define gettext(Msgid) ((Msgid))
+# define dgettext(Domainname, Msgid) (Msgid)
+# define dcgettext(Domainname, Msgid, Category) (Msgid)
+# define ngettext(Msgid1, Msgid2, N) \
+ ((N) == 1 ? (Msgid1) : (Msgid2))
+# define dngettext(Domainname, Msgid1, Msgid2, N) \
+ ((N) == 1 ? (Msgid1) : (Msgid2))
+# define dcngettext(Domainname, Msgid1, Msgid2, N, Category) \
+ ((N) == 1 ? (Msgid1) : (Msgid2))
+# define textdomain(Domainname) (Domainname)
+# define bindtextdomain(Domainname, Dirname) (Dirname)
+# define bind_textdomain_codeset(Domainname, Codeset) (Codeset)
+#endif /* 0 */
+#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
+
+#endif /* _LIBGETTEXT_H */
diff --git a/gnu/usr.bin/texinfo/m4/ChangeLog b/gnu/usr.bin/texinfo/m4/ChangeLog
new file mode 100644
index 00000000000..405f1327546
--- /dev/null
+++ b/gnu/usr.bin/texinfo/m4/ChangeLog
@@ -0,0 +1,14 @@
+2002-02-25 gettextize <bug-gnu-gettext@gnu.org>
+
+ * codeset.m4: New file, from gettext-0.11.
+ * gettext.m4: New file, from gettext-0.11.
+ * glibc21.m4: New file, from gettext-0.11.
+ * iconv.m4: New file, from gettext-0.11.
+ * isc-posix.m4: New file, from gettext-0.11.
+ * lcmessage.m4: New file, from gettext-0.11.
+ * lib-ld.m4: New file, from gettext-0.11.
+ * lib-link.m4: New file, from gettext-0.11.
+ * lib-prefix.m4: New file, from gettext-0.11.
+ * progtest.m4: New file, from gettext-0.11.
+ * Makefile.am: New file.
+
diff --git a/gnu/usr.bin/texinfo/m4/Makefile.am b/gnu/usr.bin/texinfo/m4/Makefile.am
new file mode 100644
index 00000000000..60cca4c3c58
--- /dev/null
+++ b/gnu/usr.bin/texinfo/m4/Makefile.am
@@ -0,0 +1 @@
+EXTRA_DIST = codeset.m4 gettext.m4 glibc21.m4 iconv.m4 isc-posix.m4 lcmessage.m4 lib-ld.m4 lib-link.m4 lib-prefix.m4 progtest.m4
diff --git a/gnu/usr.bin/texinfo/m4/Makefile.in b/gnu/usr.bin/texinfo/m4/Makefile.in
new file mode 100644
index 00000000000..5f7f08d5bdd
--- /dev/null
+++ b/gnu/usr.bin/texinfo/m4/Makefile.in
@@ -0,0 +1,220 @@
+# Makefile.in generated by automake 1.6 from Makefile.am.
+# @configure_input@
+
+# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
+# 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@
+SHELL = @SHELL@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+
+bindir = @bindir@
+sbindir = @sbindir@
+libexecdir = @libexecdir@
+datadir = @datadir@
+sysconfdir = @sysconfdir@
+sharedstatedir = @sharedstatedir@
+localstatedir = @localstatedir@
+libdir = @libdir@
+infodir = @infodir@
+mandir = @mandir@
+includedir = @includedir@
+oldincludedir = /usr/include
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ..
+
+ACLOCAL = @ACLOCAL@
+AUTOCONF = @AUTOCONF@
+AUTOMAKE = @AUTOMAKE@
+AUTOHEADER = @AUTOHEADER@
+
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_DATA = @INSTALL_DATA@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = @program_transform_name@
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+host_alias = @host_alias@
+host_triplet = @host@
+
+EXEEXT = @EXEEXT@
+OBJEXT = @OBJEXT@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+AMTAR = @AMTAR@
+AWK = @AWK@
+BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+DATADIRNAME = @DATADIRNAME@
+DEPDIR = @DEPDIR@
+GENCAT = @GENCAT@
+GLIBC21 = @GLIBC21@
+GMSGFMT = @GMSGFMT@
+HAVE_LIB = @HAVE_LIB@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLBISON = @INTLBISON@
+INTLLIBS = @INTLLIBS@
+INTLOBJS = @INTLOBJS@
+INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@
+LIB = @LIB@
+LIBICONV = @LIBICONV@
+LIBINTL = @LIBINTL@
+LTLIB = @LTLIB@
+LTLIBICONV = @LTLIBICONV@
+LTLIBINTL = @LTLIBINTL@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+PACKAGE = @PACKAGE@
+POSUB = @POSUB@
+RANLIB = @RANLIB@
+STRIP = @STRIP@
+TERMLIBS = @TERMLIBS@
+USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+am__include = @am__include@
+am__quote = @am__quote@
+install_sh = @install_sh@
+EXTRA_DIST = codeset.m4 gettext.m4 glibc21.m4 iconv.m4 isc-posix.m4 lcmessage.m4 lib-ld.m4 lib-link.m4 lib-prefix.m4 progtest.m4
+subdir = m4
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+DIST_SOURCES =
+DIST_COMMON = ChangeLog Makefile.am Makefile.in
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.ac $(ACLOCAL_M4)
+ cd $(top_srcdir) && \
+ $(AUTOMAKE) --gnu m4/Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
+install-info-am:
+uninstall-info-am:
+tags: TAGS
+TAGS:
+
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+
+top_distdir = ..
+distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
+
+distdir: $(DISTFILES)
+ @for file in $(DISTFILES); do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+ dir="/$$dir"; \
+ $(mkinstalldirs) "$(distdir)$$dir"; \
+ else \
+ dir=''; \
+ fi; \
+ if test -d $$d/$$file; then \
+ 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
+
+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_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -rm -f Makefile $(CONFIG_CLEAN_FILES) stamp-h stamp-h[0-9]*
+
+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
+
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-exec-am:
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic
+
+uninstall-am: uninstall-info-am
+
+.PHONY: all all-am check check-am clean clean-generic distclean \
+ distclean-generic distdir dvi dvi-am info info-am install \
+ install-am install-data install-data-am install-exec \
+ install-exec-am install-info-am install-man install-strip \
+ installcheck installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-generic \
+ uninstall uninstall-am uninstall-info-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 --git a/gnu/usr.bin/texinfo/m4/codeset.m4 b/gnu/usr.bin/texinfo/m4/codeset.m4
new file mode 100644
index 00000000000..59535ebcff5
--- /dev/null
+++ b/gnu/usr.bin/texinfo/m4/codeset.m4
@@ -0,0 +1,23 @@
+# codeset.m4 serial AM1 (gettext-0.10.40)
+dnl Copyright (C) 2000-2002 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 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);],
+ 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 --git a/gnu/usr.bin/texinfo/m4/gettext.m4 b/gnu/usr.bin/texinfo/m4/gettext.m4
new file mode 100644
index 00000000000..520f973d8de
--- /dev/null
+++ b/gnu/usr.bin/texinfo/m4/gettext.m4
@@ -0,0 +1,541 @@
+# gettext.m4 serial 13 (gettext-0.11.1)
+dnl Copyright (C) 1995-2002 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
+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-2002.
+
+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.
+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], ,
+ [errprint([ERROR: invalid second argument to AM_GNU_GETTEXT
+])])])
+ define(gt_included_intl, ifelse([$1], [external], [no], [yes]))
+ define(gt_libtool_suffix_prefix, ifelse([$1], [use-libtool], [l], []))
+
+ 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])
+
+ 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)
+
+ ifelse(gt_included_intl, yes, [
+ BUILD_INCLUDED_LIBINTL=no
+ USE_INCLUDED_LIBINTL=no
+ ])
+ LIBINTL=
+ LTLIBINTL=
+ POSUB=
+
+ 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.
+
+ dnl Add a version number to the cache macros.
+ define([gt_api_version], ifelse([$2], [need-ngettext], 2, 1))
+ define([gt_cv_func_gnugettext_libc], [gt_cv_func_gnugettext]gt_api_version[_libc])
+ define([gt_cv_func_gnugettext_libintl], [gt_cv_func_gnugettext]gt_api_version[_libintl])
+
+ AC_CACHE_CHECK([for GNU gettext in libc], gt_cv_func_gnugettext_libc,
+ [AC_TRY_LINK([#include <libintl.h>
+extern int _nl_msg_cat_cntr;
+extern int *_nl_domain_bindings;],
+ [bindtextdomain ("", "");
+return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_domain_bindings],
+ gt_cv_func_gnugettext_libc=yes,
+ gt_cv_func_gnugettext_libc=no)])
+
+ if test "$gt_cv_func_gnugettext_libc" != "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_cv_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>
+extern int _nl_msg_cat_cntr;
+extern int *_nl_domain_bindings;
+extern
+#ifdef __cplusplus
+"C"
+#endif
+const char *_nl_expand_alias ();],
+ [bindtextdomain ("", "");
+return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_domain_bindings + *_nl_expand_alias (0)],
+ gt_cv_func_gnugettext_libintl=yes,
+ gt_cv_func_gnugettext_libintl=no)
+ dnl Now see whether libintl exists and depends on libiconv.
+ if test "$gt_cv_func_gnugettext_libintl" != yes && test -n "$LIBICONV"; then
+ LIBS="$LIBS $LIBICONV"
+ AC_TRY_LINK([#include <libintl.h>
+extern int _nl_msg_cat_cntr;
+extern int *_nl_domain_bindings;
+extern
+#ifdef __cplusplus
+"C"
+#endif
+const char *_nl_expand_alias ();],
+ [bindtextdomain ("", "");
+return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_domain_bindings + *_nl_expand_alias (0)],
+ [LIBINTL="$LIBINTL $LIBICONV"
+ LTLIBINTL="$LTLIBINTL $LTLIBICONV"
+ gt_cv_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 test "$gt_cv_func_gnugettext_libc" = "yes" \
+ || { test "$gt_cv_func_gnugettext_libintl" = "yes" \
+ && test "$PACKAGE" != gettext; }; 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.
+ INTLOBJS="\$(GETTOBJS)"
+ BUILD_INCLUDED_LIBINTL=yes
+ USE_INCLUDED_LIBINTL=yes
+ LIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LIBICONV"
+ LTLIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LTLIBICONV"
+ LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'`
+ fi
+
+ 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 "$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
+
+ if test "$USE_NLS" = "yes"; then
+
+ if test "$gt_use_preinstalled_gnugettext" = "yes"; then
+ if test "$gt_cv_func_gnugettext_libintl" = "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; 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)
+ AC_SUBST(INTLOBJS)
+
+ 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 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 Checks for all prerequisites of the po subdirectory,
+dnl except for USE_NLS.
+AC_DEFUN([AM_PO_SUBDIRS],
+[
+ AC_REQUIRE([AC_PROG_MAKE_SET])dnl
+ AC_REQUIRE([AC_PROG_INSTALL])dnl
+ AC_REQUIRE([AM_MKINSTALLDIRS])dnl
+
+ 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 >/dev/null 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 Search for GNU xgettext 0.11 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= /dev/null >/dev/null 2>&1 &&
+ (if $ac_dir/$ac_word --omit-header --copyright-holder= /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 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 >/dev/null 2>&1], :)
+
+ dnl This could go away some day; the PATH_PROG_WITH_TEST already does it.
+ dnl Test whether we really found GNU msgfmt.
+ if test "$GMSGFMT" != ":"; then
+ dnl If it is no GNU msgfmt we define it as : so that the
+ dnl Makefiles still can work.
+ if $GMSGFMT --statistics /dev/null >/dev/null 2>&1 &&
+ (if $GMSGFMT --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then
+ : ;
+ else
+ GMSGFMT=`echo "$GMSGFMT" | sed -e 's,^.*/,,'`
+ AC_MSG_RESULT(
+ [found $GMSGFMT program is not GNU msgfmt; ignore it])
+ GMSGFMT=":"
+ fi
+ fi
+
+ dnl This could go away some day; the PATH_PROG_WITH_TEST already does it.
+ dnl Test whether we really found GNU xgettext.
+ if test "$XGETTEXT" != ":"; then
+ dnl If it is no GNU xgettext we define it as : so that the
+ dnl Makefiles still can work.
+ if $XGETTEXT --omit-header --copyright-holder= /dev/null >/dev/null 2>&1 &&
+ (if $XGETTEXT --omit-header --copyright-holder= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then
+ : ;
+ else
+ AC_MSG_RESULT(
+ [found xgettext program is not GNU xgettext; ignore it])
+ XGETTEXT=":"
+ fi
+ dnl Remove leftover from FreeBSD xgettext call.
+ rm -f messages.po
+ fi
+
+ AC_OUTPUT_COMMANDS([
+ 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
+ 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"
+ # ALL_LINGUAS, POFILES, GMOFILES, UPDATEPOFILES, DUMMYPOFILES 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 "$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" "$ac_given_srcdir/$ac_dir/LINGUAS"`
+ # Hide the ALL_LINGUAS assigment from automake.
+ eval 'ALL_LINGUAS''=$ALL_LINGUAS_'
+ fi
+ case "$ac_given_srcdir" in
+ .) srcdirpre= ;;
+ *) srcdirpre='$(srcdir)/' ;;
+ esac
+ POFILES=
+ GMOFILES=
+ UPDATEPOFILES=
+ DUMMYPOFILES=
+ for lang in $ALL_LINGUAS; do
+ POFILES="$POFILES $srcdirpre$lang.po"
+ GMOFILES="$GMOFILES $srcdirpre$lang.gmo"
+ UPDATEPOFILES="$UPDATEPOFILES $lang.po-update"
+ DUMMYPOFILES="$DUMMYPOFILES $lang.nop"
+ 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|@GMOFILES@|$GMOFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@CATALOGS@|$CATALOGS|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, GMOFILES, UPDATEPOFILES, DUMMYPOFILES, CATALOGS. But hide it
+ # from automake.
+ eval 'ALL_LINGUAS''="$ALL_LINGUAS"'
+ # Capture the value of LINGUAS because we need it to compute CATALOGS.
+ LINGUAS="${LINGUAS-%UNSET%}"
+ ])
+])
+
+
+dnl Checks for all prerequisites of the intl subdirectory,
+dnl except for INTL_LIBTOOL_SUFFIX_PREFIX (and possibly LIBTOOL), INTLOBJS,
+dnl USE_INCLUDED_LIBINTL, BUILD_INCLUDED_LIBINTL.
+AC_DEFUN([AM_INTL_SUBDIR],
+[
+ AC_REQUIRE([AC_PROG_INSTALL])dnl
+ AC_REQUIRE([AM_MKINSTALLDIRS])dnl
+ AC_REQUIRE([AC_PROG_CC])dnl
+ AC_REQUIRE([AC_CANONICAL_HOST])dnl
+ AC_REQUIRE([AC_PROG_RANLIB])dnl
+ AC_REQUIRE([AC_ISC_POSIX])dnl
+ AC_REQUIRE([AC_HEADER_STDC])dnl
+ AC_REQUIRE([AC_C_CONST])dnl
+ AC_REQUIRE([AC_C_INLINE])dnl
+ AC_REQUIRE([AC_TYPE_OFF_T])dnl
+ AC_REQUIRE([AC_TYPE_SIZE_T])dnl
+ AC_REQUIRE([AC_FUNC_ALLOCA])dnl
+ AC_REQUIRE([AC_FUNC_MMAP])dnl
+ AC_REQUIRE([jm_GLIBC21])dnl
+
+ AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h stddef.h \
+stdlib.h string.h unistd.h sys/param.h])
+ AC_CHECK_FUNCS([feof_unlocked fgets_unlocked getc_unlocked getcwd getegid \
+geteuid getgid getuid mempcpy munmap putenv setenv setlocale stpcpy \
+strcasecmp strdup strtoul tsearch __argz_count __argz_stringify __argz_next])
+
+ AM_ICONV
+ AM_LANGINFO_CODESET
+ AM_LC_MESSAGES
+
+ dnl intl/plural.c is generated from intl/plural.y. It requires bison,
+ dnl because plural.y uses bison specific features. It requires at least
+ dnl bison-1.26 because earlier versions generate a plural.c that doesn't
+ dnl compile.
+ dnl bison is only needed for the maintainer (who touches plural.y). But in
+ dnl order to avoid separate Makefiles or --enable-maintainer-mode, we put
+ dnl the rule in general Makefile. Now, some people carelessly touch the
+ dnl files or have a broken "make" program, hence the plural.c rule will
+ dnl sometimes fire. To avoid an error, defines BISON to ":" if it is not
+ dnl present or too old.
+ AC_CHECK_PROGS([INTLBISON], [bison])
+ if test -z "$INTLBISON"; then
+ ac_verc_fail=yes
+ else
+ dnl Found it, now check the version.
+ AC_MSG_CHECKING([version of bison])
+changequote(<<,>>)dnl
+ ac_prog_version=`$INTLBISON --version 2>&1 | sed -n 's/^.*GNU Bison.* \([0-9]*\.[0-9.]*\).*$/\1/p'`
+ case $ac_prog_version in
+ '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
+ 1.2[6-9]* | 1.[3-9][0-9]* | [2-9].*)
+changequote([,])dnl
+ ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
+ *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
+ esac
+ AC_MSG_RESULT([$ac_prog_version])
+ fi
+ if test $ac_verc_fail = yes; then
+ INTLBISON=:
+ fi
+])
+
+
+AC_DEFUN([AM_MKINSTALLDIRS],
+[
+ dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly
+ dnl find the mkinstalldirs script in another subdir but $(top_srcdir).
+ dnl Try to locate is.
+ MKINSTALLDIRS=
+ if test -n "$ac_aux_dir"; then
+ MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs"
+ fi
+ if test -z "$MKINSTALLDIRS"; then
+ MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs"
+ fi
+ AC_SUBST(MKINSTALLDIRS)
+])
diff --git a/gnu/usr.bin/texinfo/m4/glibc21.m4 b/gnu/usr.bin/texinfo/m4/glibc21.m4
new file mode 100644
index 00000000000..9c9f3db3036
--- /dev/null
+++ b/gnu/usr.bin/texinfo/m4/glibc21.m4
@@ -0,0 +1,32 @@
+# glibc21.m4 serial 2 (fileutils-4.1.3, gettext-0.10.40)
+dnl Copyright (C) 2000-2002 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.
+
+# Test for the GNU C Library, version 2.1 or newer.
+# From Bruno Haible.
+
+AC_DEFUN([jm_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 --git a/gnu/usr.bin/texinfo/m4/iconv.m4 b/gnu/usr.bin/texinfo/m4/iconv.m4
new file mode 100644
index 00000000000..f81e8b995f6
--- /dev/null
+++ b/gnu/usr.bin/texinfo/m4/iconv.m4
@@ -0,0 +1,96 @@
+# iconv.m4 serial AM3 (gettext-0.11)
+dnl Copyright (C) 2000-2002 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 From Bruno Haible.
+
+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).
+
+ 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])
+
+ 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_DEFINE(HAVE_ICONV, 1, [Define if you have the iconv() function.])
+ 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],
+[
+ AC_REQUIRE([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 --git a/gnu/usr.bin/texinfo/m4/isc-posix.m4 b/gnu/usr.bin/texinfo/m4/isc-posix.m4
new file mode 100644
index 00000000000..dcaf3608f98
--- /dev/null
+++ b/gnu/usr.bin/texinfo/m4/isc-posix.m4
@@ -0,0 +1,24 @@
+# isc-posix.m4 serial 1 (gettext-0.10.40)
+dnl Copyright (C) 1995-2002 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.
+
+# This test replaces the one in autoconf.
+# Currently this macro should have the same name as the autoconf macro
+# because gettext's gettext.m4 (distributed in the automake package)
+# still uses it. Otherwise, the use in gettext.m4 makes autoheader
+# give these diagnostics:
+# configure.in:556: AC_TRY_COMPILE was called before AC_ISC_POSIX
+# configure.in:556: AC_TRY_RUN was called before AC_ISC_POSIX
+
+undefine([AC_ISC_POSIX])
+
+AC_DEFUN([AC_ISC_POSIX],
+ [
+ dnl This test replaces the obsolescent AC_ISC_POSIX kludge.
+ AC_CHECK_LIB(cposix, strerror, [LIBS="$LIBS -lcposix"])
+ ]
+)
diff --git a/gnu/usr.bin/texinfo/m4/lcmessage.m4 b/gnu/usr.bin/texinfo/m4/lcmessage.m4
new file mode 100644
index 00000000000..ffbf915f1a9
--- /dev/null
+++ b/gnu/usr.bin/texinfo/m4/lcmessage.m4
@@ -0,0 +1,32 @@
+# lcmessage.m4 serial 2 (gettext-0.10.40)
+dnl Copyright (C) 1995-2002 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
+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.
+
+# Check whether LC_MESSAGES is available in <locale.h>.
+
+AC_DEFUN([AM_LC_MESSAGES],
+ [if test $ac_cv_header_locale_h = yes; then
+ AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES,
+ [AC_TRY_LINK([#include <locale.h>], [return LC_MESSAGES],
+ am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)])
+ if test $am_cv_val_LC_MESSAGES = yes; then
+ AC_DEFINE(HAVE_LC_MESSAGES, 1,
+ [Define if your <locale.h> file defines LC_MESSAGES.])
+ fi
+ fi])
diff --git a/gnu/usr.bin/texinfo/m4/lib-ld.m4 b/gnu/usr.bin/texinfo/m4/lib-ld.m4
new file mode 100644
index 00000000000..ddb573234cb
--- /dev/null
+++ b/gnu/usr.bin/texinfo/m4/lib-ld.m4
@@ -0,0 +1,97 @@
+# lib-ld.m4 serial 1 (gettext-0.11)
+dnl Copyright (C) 1996-2002 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 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.
+if $LD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then
+ acl_cv_prog_gnu_ld=yes
+else
+ acl_cv_prog_gnu_ld=no
+fi])
+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
+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.
+ if "$acl_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then
+ test "$with_gnu_ld" != no && break
+ else
+ test "$with_gnu_ld" != yes && break
+ fi
+ 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 --git a/gnu/usr.bin/texinfo/m4/lib-link.m4 b/gnu/usr.bin/texinfo/m4/lib-link.m4
new file mode 100644
index 00000000000..a16aa446054
--- /dev/null
+++ b/gnu/usr.bin/texinfo/m4/lib-link.m4
@@ -0,0 +1,521 @@
+# lib-link.m4 serial 1 (gettext-0.11)
+dnl Copyright (C) 2001-2002 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 From Bruno Haible.
+
+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.
+AC_DEFUN([AC_LIB_LINKFLAGS],
+[
+ AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
+ AC_REQUIRE([AC_LIB_RPATH])
+ define([Name],[translit([$1],[./-], [___])])
+ define([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"
+ ])
+ LIB[]NAME="$ac_cv_lib[]Name[]_libs"
+ LTLIB[]NAME="$ac_cv_lib[]Name[]_ltlibs"
+ INC[]NAME="$ac_cv_lib[]Name[]_cppflags"
+ AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME)
+ AC_SUBST([LIB]NAME)
+ AC_SUBST([LTLIB]NAME)
+ 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
+ undefine([Name])
+ undefine([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.
+AC_DEFUN([AC_LIB_HAVE_LINKFLAGS],
+[
+ AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
+ AC_REQUIRE([AC_LIB_RPATH])
+ define([Name],[translit([$1],[./-], [___])])
+ define([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=
+ fi
+ AC_SUBST([HAVE_LIB]NAME)
+ AC_SUBST([LIB]NAME)
+ AC_SUBST([LTLIB]NAME)
+ undefine([Name])
+ undefine([NAME])
+])
+
+dnl Determine the platform dependent parameters needed to use rpath:
+dnl libext, shlibext, hardcode_libdir_flag_spec, hardcode_libdir_separator,
+dnl hardcode_direct, hardcode_minus_L,
+dnl sys_lib_search_path_spec, sys_lib_dlsearch_path_spec.
+AC_DEFUN([AC_LIB_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"
+ libext="$acl_cv_libext"
+ shlibext="$acl_cv_shlibext"
+ hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec"
+ hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator"
+ hardcode_direct="$acl_cv_hardcode_direct"
+ hardcode_minus_L="$acl_cv_hardcode_minus_L"
+ sys_lib_search_path_spec="$acl_cv_sys_lib_search_path_spec"
+ sys_lib_dlsearch_path_spec="$acl_cv_sys_lib_dlsearch_path_spec"
+])
+
+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.
+AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
+[
+ define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
+ 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([lib$1-prefix],
+[ --with-lib$1-prefix[=DIR] search for lib$1 in DIR/include and DIR/lib
+ --without-lib$1-prefix don't search for lib$1 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/lib"
+ 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=
+ 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=
+ if test $use_additional = yes; then
+ if test -n "$shlibext" && test -f "$additional_libdir/lib$name.$shlibext"; then
+ found_dir="$additional_libdir"
+ found_so="$additional_libdir/lib$name.$shlibext"
+ if test -f "$additional_libdir/lib$name.la"; then
+ found_la="$additional_libdir/lib$name.la"
+ fi
+ else
+ if test -f "$additional_libdir/lib$name.$libext"; then
+ found_dir="$additional_libdir"
+ found_a="$additional_libdir/lib$name.$libext"
+ if test -f "$additional_libdir/lib$name.la"; then
+ found_la="$additional_libdir/lib$name.la"
+ fi
+ 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//'`
+ if test -n "$shlibext" && test -f "$dir/lib$name.$shlibext"; then
+ found_dir="$dir"
+ found_so="$dir/lib$name.$shlibext"
+ if test -f "$dir/lib$name.la"; then
+ found_la="$dir/lib$name.la"
+ fi
+ else
+ if test -f "$dir/lib$name.$libext"; then
+ found_dir="$dir"
+ found_a="$dir/lib$name.$libext"
+ if test -f "$dir/lib$name.la"; then
+ found_la="$dir/lib$name.la"
+ fi
+ 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 "X$found_dir" = "X/usr/lib"; 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 "$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 "$hardcode_libdir_flag_spec" && test "$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 "$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 $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
+ */lib | */lib/)
+ basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e 's,/lib/*$,,'`
+ 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*) 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/lib"; then
+ haveit=
+ if test "X$additional_libdir" = "X/usr/local/lib"; then
+ if test -n "$GCC"; then
+ case $host_os in
+ linux*) 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
+ ;;
+ -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 "$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:+$hardcode_libdir_separator}$found_dir"
+ done
+ dnl Note: hardcode_libdir_flag_spec uses $libdir and $wl.
+ acl_save_libdir="$libdir"
+ libdir="$alldirs"
+ eval flag=\"$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=\"$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
+])
+
+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
+])
diff --git a/gnu/usr.bin/texinfo/m4/lib-prefix.m4 b/gnu/usr.bin/texinfo/m4/lib-prefix.m4
new file mode 100644
index 00000000000..b8b79ab9ad5
--- /dev/null
+++ b/gnu/usr.bin/texinfo/m4/lib-prefix.m4
@@ -0,0 +1,148 @@
+# lib-prefix.m4 serial 1 (gettext-0.11)
+dnl Copyright (C) 2001-2002 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 From Bruno Haible.
+
+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_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_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/lib"
+ 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*) 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/lib"; 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/lib"; 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"
+])
diff --git a/gnu/usr.bin/texinfo/m4/progtest.m4 b/gnu/usr.bin/texinfo/m4/progtest.m4
new file mode 100644
index 00000000000..443c8e30630
--- /dev/null
+++ b/gnu/usr.bin/texinfo/m4/progtest.m4
@@ -0,0 +1,59 @@
+# progtest.m4 serial 2 (gettext-0.10.40)
+dnl Copyright (C) 1996-2002 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
+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.
+
+# 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],
+[# 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.
+ ;;
+ *)
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+ for ac_dir in ifelse([$5], , $PATH, [$5]); do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ if [$3]; then
+ ac_cv_path_$1="$ac_dir/$ac_word"
+ break
+ fi
+ fi
+ 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 --git a/gnu/usr.bin/texinfo/makeinfo/docbook.c b/gnu/usr.bin/texinfo/makeinfo/docbook.c
new file mode 100644
index 00000000000..7301341e2f5
--- /dev/null
+++ b/gnu/usr.bin/texinfo/makeinfo/docbook.c
@@ -0,0 +1,492 @@
+/* docbook.c -- docbook output.
+ $Id: docbook.c,v 1.1 2002/06/10 13:21:15 espie Exp $
+
+ Copyright (C) 2001 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+
+#include "system.h"
+#include "cmds.h"
+#include "docbook.h"
+#include "insertion.h"
+#include "lang.h"
+#include "makeinfo.h"
+#include "macro.h"
+#include "sectioning.h"
+
+int docbook_version_inserted = 0;
+int docbook_first_chapter_found = 0;
+int docbook_must_insert_node_anchor = 0;
+int docbook_begin_book_p = 0;
+int docbook_no_new_paragraph = 0;
+
+static int section_level = -1;
+static int in_docbook_paragraph = 0;
+static int in_list = 0;
+
+static int in_table = 0;
+static int in_term = 0;
+static int in_entry = 0;
+static int in_varlistitem = 0;
+
+static int in_example = 0;
+
+void
+docbook_begin_section (level, cmd)
+ int level;
+ char *cmd;
+{
+ int i, old_no_indent;
+ char *temp, *tem;
+ static char *last_chap = NULL;
+
+ close_paragraph ();
+ docbook_first_chapter_found = 1;
+ filling_enabled = indented_fill = 0;
+ old_no_indent = no_indent;
+ no_indent = 1;
+
+ if (!docbook_begin_book_p)
+ docbook_begin_book ();
+
+ if (macro_expansion_output_stream && !executing_string)
+ append_to_expansion_output (input_text_offset + 1);
+
+ get_rest_of_line (0, &temp);
+
+ if (in_docbook_paragraph)
+ {
+ insert_string ("\n</para>\n\n");
+ adjust_braces_following (0, 10);
+ }
+ in_docbook_paragraph = 0;
+ docbook_no_new_paragraph++;
+
+ if (level > section_level + 1)
+ level = section_level + 1;
+
+ for (i = section_level; i >= level ; i--)
+ {
+ if (i == 0)
+ {
+ if (last_chap && strcmp(last_chap, "appendix") == 0)
+ add_word ("</appendix>\n\n");
+ else
+ add_word ("</chapter>\n\n");
+ }
+ else
+ add_word_args ("</sect%d>\n\n", i);
+ }
+
+ section_level = level;
+
+ if (level == 0)
+ {
+ if (strcmp(cmd, "appendix") == 0)
+ add_word ("<appendix");
+ else
+ add_word ("<chapter");
+ last_chap = cmd;
+ }
+ else
+ add_word_args ("<sect%d", level);
+
+ if (docbook_must_insert_node_anchor)
+ {
+ add_word (" id=\"");
+ tem = expansion (current_node, 0);
+ add_escaped_anchor_name (tem, 0);
+ free (tem);
+ add_word ("\"");
+ docbook_must_insert_node_anchor = 0;
+ }
+ add_word (">\n");
+ add_word ("<title>");
+
+ if (macro_expansion_output_stream && !executing_string)
+ {
+ char *temp1 = xmalloc (2 + strlen (temp));
+ sprintf (temp1, "%s", temp);
+ remember_itext (input_text, input_text_offset);
+ me_execute_string (temp1);
+ free (temp1);
+ }
+ else
+ execute_string ("%s", temp);
+
+ free (temp);
+
+ add_word ("</title>\n");
+
+ close_paragraph ();
+ filling_enabled = 1;
+ no_indent = old_no_indent;
+ docbook_no_new_paragraph--;
+ insert_string("\n<para>");
+ in_docbook_paragraph = 1;
+}
+
+void
+docbook_begin_paragraph ()
+{
+ if (!docbook_first_chapter_found)
+ return;
+
+ if (in_example)
+ return;
+
+ if (in_table && !in_term)
+ {
+ if (!in_varlistitem)
+ insert_string ("\n<listitem><para>\n");
+ else
+ insert_string ("\n</para>\n\n<para>\n");
+ in_varlistitem = 1;
+
+ return;
+ }
+ if (in_list)
+ return;
+ if (in_docbook_paragraph)
+ {
+ insert_string ("\n</para>\n\n");
+ adjust_braces_following (0, 10);
+ }
+
+#if 0
+ if (docbook_must_insert_node_anchor)
+ {
+ char *tem;
+ insert_string ("<para id=\"");
+ adjust_braces_following (0, 10);
+ tem = expansion (current_node, 0);
+ add_escaped_anchor_name (tem, 0);
+ free (tem);
+ add_word ("\">\n");
+ docbook_must_insert_node_anchor = 0;
+ }
+ else
+#endif
+ {
+ insert_string ("<para>\n");
+ adjust_braces_following (0, 7);
+ }
+ in_docbook_paragraph = 1;
+}
+
+void
+docbook_begin_book ()
+{
+ if (!docbook_begin_book_p)
+ docbook_begin_book_p = 1;
+ else
+ return;
+
+ ++docbook_no_new_paragraph;
+ add_word_args ("<!DOCTYPE book PUBLIC \"-//Davenport//DTD DocBook V3.0//EN\">\n\
+<book>\n<title>%s</title>\n", title);
+ --docbook_no_new_paragraph;
+}
+
+void
+docbook_end_book ()
+{
+ int i;
+ if (in_docbook_paragraph)
+ {
+ insert_string ("\n</para>\n\n");
+ }
+
+ for (i = section_level; i >= 0 ; i--)
+ {
+ if (i == 0)
+ add_word ("</chapter>\n");
+ else
+ add_word_args ("</sect%d>\n", i);
+ }
+
+ add_word ("</book>\n");
+}
+
+void
+docbook_insert_tag (start_or_end, tag)
+ int start_or_end;
+ char *tag;
+{
+ if (!paragraph_is_open && start_or_end == START)
+ docbook_begin_paragraph ();
+
+ add_char ('<');
+ if (start_or_end == START)
+ add_word (tag);
+ else
+ {
+ add_char ('/');
+ for (; *tag && *tag != ' '; tag++)
+ add_char(*tag);
+ }
+ add_meta_char ('>');
+}
+
+void
+docbook_xref1 (node_name)
+ char *node_name;
+{
+ char *tem;
+ add_word ("<xref linkend=\"");
+ tem = expansion (node_name, 0);
+ add_escaped_anchor_name (tem, 1);
+ free (tem);
+ add_word ("\"/>");
+}
+
+void
+docbook_xref2 (node_name, ref_name)
+ char *node_name;
+ char *ref_name;
+{
+ char *tem;
+ add_word ("<xref linkend=\"");
+ tem = expansion (node_name, 0);
+ add_escaped_anchor_name (tem, 1);
+ free (tem);
+ add_word ("\"/>");
+}
+
+int
+docbook_quote (character)
+ int character;
+{
+ switch (language_code)
+ {
+ case fr:
+ if (character == '`')
+ {
+ add_word ("&nbsp");
+ return ';';
+ }
+ else
+ {
+ add_word ("&nbsp;");
+ return '';
+ }
+ break;
+
+ default:
+ if (character == '`')
+ {
+ add_word ("&ldquo");
+ return ';';
+ }
+ else
+ {
+ add_word ("&rdquo");
+ return ';';
+ }
+ break;
+ }
+}
+
+#define IS_BLANK(c) (c == ' ' || c == '\t' || c == '\n')
+
+int
+docbook_is_punctuation (character, next)
+ int character;
+ int next;
+{
+ return ( (character == ';'
+ || character == ':'
+ || character == '?'
+ || character == '!')
+ && IS_BLANK (next));
+}
+
+void
+docbook_punctuation (character)
+ int character;
+{
+ switch (language_code)
+ {
+ case fr:
+ while (output_paragraph[output_paragraph_offset-1] == ' ')
+ output_paragraph_offset--;
+ add_word ("&nbsp;");
+ break;
+ }
+}
+
+static int in_item = 0;
+
+void
+docbook_begin_itemize ()
+{
+ if (in_docbook_paragraph)
+ insert_string ("\n</para>\n");
+
+ in_docbook_paragraph = 0;
+ insert_string ("\n<itemizedlist>\n");
+ in_item = 0;
+ in_list = 1;
+}
+
+void
+docbook_end_itemize ()
+{
+ if (in_item)
+ {
+ insert_string ("\n</para></listitem>\n");
+ in_item = 0;
+ }
+ insert_string ("\n</itemizedlist>\n\n<para>\n");
+ in_docbook_paragraph = 1;
+ in_list = 0;
+}
+
+void
+docbook_begin_enumerate ()
+{
+ if (in_docbook_paragraph)
+ insert_string ("\n</para>\n");
+ in_docbook_paragraph = 0;
+ insert_string ("\n<orderedlist>\n");
+ in_item = 0;
+ in_list = 1;
+}
+
+void
+docbook_end_enumerate ()
+{
+ if (in_item)
+ {
+ insert_string ("\n</para></listitem>\n");
+ in_item = 0;
+ }
+ insert_string ("\n</orderedlist>\n\n<para>\n");
+ in_docbook_paragraph = 1;
+ in_list = 0;
+}
+
+void
+docbook_begin_table ()
+{
+#if 0
+ if (in_docbook_paragraph)
+ insert_string ("\n</para>\n\n");
+ in_docbook_paragraph = 0;
+#endif
+
+ add_word ("\n<variablelist>\n");
+ in_table ++;
+ in_varlistitem = 0;
+ in_entry = 0;
+}
+
+void
+docbook_end_table ()
+{
+ if (!in_varlistitem)
+ docbook_begin_paragraph ();
+ insert_string ("\n</para></listitem>\n</varlistentry>\n\n</variablelist>\n");
+#if 0
+ if (in_table == 1)
+ {
+ insert_string ("\n</para>\n\n");
+ in_docbook_paragraph = 0;
+ }
+ else
+ {
+ insert_string ("\n<para>\n\n");
+ in_docbook_paragraph = 1;
+ }
+#endif
+ in_table --;
+ in_list = 0;
+}
+
+void
+docbook_add_item ()
+{
+ if (in_item)
+ insert_string ("\n</para></listitem>\n");
+ insert_string ("\n<listitem><para>\n");
+ in_docbook_paragraph = 1;
+ in_item = 1;
+}
+
+void
+docbook_add_table_item ()
+{
+ if (in_varlistitem)
+ {
+ insert_string ("\n</para></listitem>\n</varlistentry>\n\n");
+ in_entry = 0;
+ in_varlistitem = 0;
+ }
+ if (!in_entry)
+ {
+ insert_string ("<varlistentry>\n");
+ in_entry = 1;
+ }
+ insert_string ("<term>");
+ in_list = 1;
+ in_term = 1;
+}
+
+void
+docbook_close_table_item ()
+{
+ insert_string ("</term>");
+ in_list = 1;
+ in_term = 0;
+}
+
+void
+docbook_add_anchor (anchor)
+ char *anchor;
+{
+ add_word ("<anchor id=\"");
+ add_anchor_name (anchor, 0);
+ add_word ("\">");
+}
+
+void
+docbook_footnote (note)
+ char *note;
+{
+ /* add_word_args ("<footnote><para>\n%s\n</para></footnote>\n", note); */
+ add_word ("<footnote><para>\n");
+ execute_string("%s", note);
+ add_word("\n</para></footnote>\n");
+}
+
+void
+docbook_begin_index ()
+{
+ add_word ("<variablelist>\n");
+}
+
+void
+docbook_begin_example ()
+{
+ add_word ("\n\n<screen>\n");
+ in_example = 1;
+}
+
+void
+docbook_end_example ()
+{
+ in_example = 0;
+ add_word ("</screen>\n\n");
+}
diff --git a/gnu/usr.bin/texinfo/makeinfo/docbook.h b/gnu/usr.bin/texinfo/makeinfo/docbook.h
new file mode 100644
index 00000000000..e3aa2b05112
--- /dev/null
+++ b/gnu/usr.bin/texinfo/makeinfo/docbook.h
@@ -0,0 +1,81 @@
+/* docbook.h -- docbook declarations.
+ $Id: docbook.h,v 1.1 2002/06/10 13:21:15 espie Exp $
+
+ Copyright (C) 2001 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+
+#ifndef DOCBOOK_H
+#define DOCBOOK_H
+
+#define DB_B "emphasis role=\"bold\""
+#define DB_CITE "citetitle"
+#define DB_CODE "literal"
+#define DB_COMMAND "command"
+#define DB_DFN "firstterm"
+#define DB_EMPH "emphasis"
+#define DB_ENV "envar"
+#define DB_FILE "filename"
+#define DB_FUNCTION "function"
+#define DB_I "emphasis"
+#define DB_KBD "userinput"
+#define DB_KEY "keycap"
+#define DB_OPTION "option"
+#define DB_STRONG "emphasis role=\"bold\""
+#define DB_TT "literal"
+#define DB_URL "systemitem role=\"sitename\""
+#define DB_VAR "replaceable"
+
+extern int docbook_version_inserted;
+extern int docbook_begin_book_p;
+extern int docbook_first_chapter_found;
+extern int docbook_must_insert_node_anchor;
+extern int docbook_no_new_paragraph;
+
+void docbook_begin_section ();
+void docbook_begin_paragraph ();
+void docbook_begin_book ();
+void docbook_end_book ();
+
+void docbook_insert_tag ();
+
+void docbook_xref1 ();
+void docbook_xref2 ();
+
+int docbook_quote ();
+
+int docbook_is_punctuation ();
+void docbook_punctuation ();
+
+void docbook_begin_itemize ();
+void docbook_end_itemize ();
+void docbook_begin_enumerate ();
+void docbook_end_enumerate ();
+
+void docbook_begin_table ();
+void docbook_end_table ();
+void docbook_add_item ();
+void docbook_add_table_item ();
+void docbook_close_table_item ();
+void docbook_add_anchor ();
+
+void docbook_footnote ();
+
+void docbook_begin_index ();
+
+void docbook_begin_example ();
+void docbook_end_example ();
+
+#endif /* DOCBOOK_H */
diff --git a/gnu/usr.bin/texinfo/makeinfo/tests/accent b/gnu/usr.bin/texinfo/makeinfo/tests/accent
new file mode 100644
index 00000000000..dc008683200
--- /dev/null
+++ b/gnu/usr.bin/texinfo/makeinfo/tests/accent
@@ -0,0 +1,33 @@
+#!/bin/sh
+# Test accent 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;i' $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 --git a/gnu/usr.bin/texinfo/makeinfo/tests/accent-text.txi b/gnu/usr.bin/texinfo/makeinfo/tests/accent-text.txi
new file mode 100644
index 00000000000..e1bd2dacbdf
--- /dev/null
+++ b/gnu/usr.bin/texinfo/makeinfo/tests/accent-text.txi
@@ -0,0 +1,64 @@
+@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
+should be dotless i`: @`{@dotless{i}}
+
+should be dotless i': @'{@dotless{i}}
+
+should be dotless i^: @^{@dotless{i}}
+
+should be dotless i": @"{@dotless{i}}
diff --git a/gnu/usr.bin/texinfo/makeinfo/tests/accent.txi b/gnu/usr.bin/texinfo/makeinfo/tests/accent.txi
new file mode 100644
index 00000000000..3c52a90bde4
--- /dev/null
+++ b/gnu/usr.bin/texinfo/makeinfo/tests/accent.txi
@@ -0,0 +1,10 @@
+\input texinfo
+@setfilename accent.info
+@settitle Accent test
+
+@node Top
+@top Accent test top
+
+@include accent-text.txi
+
+@bye
diff --git a/gnu/usr.bin/texinfo/makeinfo/tests/accentenc b/gnu/usr.bin/texinfo/makeinfo/tests/accentenc
new file mode 100644
index 00000000000..baf26b60186
--- /dev/null
+++ b/gnu/usr.bin/texinfo/makeinfo/tests/accentenc
@@ -0,0 +1,19 @@
+#!/bin/sh
+# Test encoded accent info output.
+
+: ${srcdir=.}
+input=`basename $0`.txi
+output=`basename $0`.info
+
+../makeinfo --enable-encoding --no-split -I$srcdir $srcdir/$input
+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 --git a/gnu/usr.bin/texinfo/makeinfo/tests/accentenc.txi b/gnu/usr.bin/texinfo/makeinfo/tests/accentenc.txi
new file mode 100644
index 00000000000..b6e209c64fa
--- /dev/null
+++ b/gnu/usr.bin/texinfo/makeinfo/tests/accentenc.txi
@@ -0,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 --git a/gnu/usr.bin/texinfo/makeinfo/tests/html-docdesc b/gnu/usr.bin/texinfo/makeinfo/tests/html-docdesc
new file mode 100644
index 00000000000..59df74e411b
--- /dev/null
+++ b/gnu/usr.bin/texinfo/makeinfo/tests/html-docdesc
@@ -0,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 --git a/gnu/usr.bin/texinfo/makeinfo/tests/html-docdesc.txi b/gnu/usr.bin/texinfo/makeinfo/tests/html-docdesc.txi
new file mode 100644
index 00000000000..0b328dacd2a
--- /dev/null
+++ b/gnu/usr.bin/texinfo/makeinfo/tests/html-docdesc.txi
@@ -0,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 --git a/gnu/usr.bin/texinfo/makeinfo/tests/macro-at b/gnu/usr.bin/texinfo/makeinfo/tests/macro-at
new file mode 100644
index 00000000000..90841e89f11
--- /dev/null
+++ b/gnu/usr.bin/texinfo/makeinfo/tests/macro-at
@@ -0,0 +1,7 @@
+#!/bin/sh
+# Test @@ in macro expansions, etc. --eliz, 14nov99.
+
+: ${srcdir=.}
+../makeinfo $srcdir/macro-at.txi || exit 1
+
+rm -f macro-at.info
diff --git a/gnu/usr.bin/texinfo/makeinfo/tests/macro-at.txi b/gnu/usr.bin/texinfo/makeinfo/tests/macro-at.txi
new file mode 100644
index 00000000000..24b91013456
--- /dev/null
+++ b/gnu/usr.bin/texinfo/makeinfo/tests/macro-at.txi
@@ -0,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 --git a/gnu/usr.bin/texinfo/makeinfo/texinfo.dtd b/gnu/usr.bin/texinfo/makeinfo/texinfo.dtd
new file mode 100644
index 00000000000..da4352e634d
--- /dev/null
+++ b/gnu/usr.bin/texinfo/makeinfo/texinfo.dtd
@@ -0,0 +1,337 @@
+<!-- $Id: texinfo.dtd,v 1.1 2002/06/10 13:21:23 espie Exp $
+ Document Type Definition for Texinfo.
+
+ Author: Philippe Martin (feloy@free.fr)
+ Contributors:
+ Karl Eichwalder (keichwa@gmx.net)
+
+ Copyright (C) 2001, 02 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+-->
+
+<!-- ENTITIES -->
+
+<!-- Meta-information -->
+<!ENTITY % metainformation "setfilename | settitle | titlefont | dircategory">
+
+<!-- block -->
+<!-- ***** -->
+<!ENTITY % block "menu | para | quotation | example | smallexample | lisp
+ | smalllisp | cartouche | copying
+ | format | smallformat | display
+ | smalldisplay | itemize | enumerate | sp | center | group
+ | table | multitable">
+
+<!-- Sectioning -->
+<!-- ********** -->
+<!ENTITY % section.level1 "top | chapter | unnumbered | appendix
+ | majorheading | chapheading">
+
+<!ENTITY % section.level2 "section | unnumberedsec | appendixsec | heading">
+
+<!ENTITY % section.level3 "subsection | unnumberedsubsec | appendixsubsec
+ | subheading">
+
+<!ENTITY % section.level4 "subsubsection | unnumberedsubsubsec
+ | appendixsubsubsec | subsubheading">
+
+<!ENTITY % section.all "%section.level1; | %section.level2; | %section.level3;
+ | %section.level4;">
+
+
+<!ENTITY % section.level1.content "(%block;
+ | %section.level2;
+ | %section.level3;
+ | %section.level4;
+ | printindex)*">
+
+<!ENTITY % section.level2.content "(%block;
+ | %section.level3;
+ | %section.level4;)*">
+
+<!ENTITY % section.level3.content "(%block;
+ | %section.level4;)*">
+
+<!ENTITY % section.level4.content "(%block;)*">
+
+
+<!-- Inline -->
+<!-- ****** -->
+<!ENTITY % Inline.emphasize "strong | emph">
+<!ENTITY % Inline.smallcaps "sc">
+<!ENTITY % Inline.fonts "i | b | tt | r">
+<!ENTITY % Inline.markup "code | dfn | cite | key | kbd | var | acronym | url">
+<!ENTITY % Inline.reference "xref | inforef | indexterm | email | uref">
+
+<!ENTITY % Inline.phrase
+ "%Inline.emphasize; | %Inline.smallcaps; | %Inline.fonts;
+ | %Inline.markup; | %Inline.reference; ">
+
+
+<!-- ************ -->
+<!-- * ELEMENTS * -->
+<!-- ************ -->
+
+<!-- TOP Level Element -->
+<!-- ***************** -->
+<!ELEMENT texinfo ((%metainformation; | node | %block;)* )>
+
+<!-- meta-information -->
+<!ELEMENT setfilename (#PCDATA)>
+<!ELEMENT settitle (#PCDATA)>
+<!ELEMENT titlefont (#PCDATA)>
+<!ELEMENT dircategory (#PCDATA)>
+
+<!-- NODES -->
+<!-- ***** -->
+<!ELEMENT node (nodename, nodenext?, nodeprev?, nodeup?,
+ (para | menu | %section.all;)*) >
+
+<!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;)>
+
+<!ELEMENT majorheading (title?, %section.level1.content;)>
+<!ELEMENT chapheading (title?, %section.level1.content;)>
+<!ELEMENT heading (title?, %section.level2.content;)>
+<!ELEMENT subheading (title?, %section.level3.content;)>
+<!ELEMENT subsubheading (title?, %section.level4.content;)>
+
+<!ELEMENT title (#PCDATA | %Inline.phrase; | footnote)*>
+
+<!-- BLOCK Elements -->
+<!-- ************** -->
+
+<!ELEMENT quotation (#PCDATA | %block; | %Inline.phrase;)*>
+<!ELEMENT example (#PCDATA | %block; | %Inline.phrase;)*>
+<!ELEMENT smallexample (#PCDATA | %block; | %Inline.phrase;)*>
+<!ELEMENT lisp (#PCDATA | %block; | %Inline.phrase;)*>
+<!ELEMENT smalllisp (#PCDATA | %block; | %Inline.phrase;)*>
+<!ELEMENT cartouche (#PCDATA | %block; | %Inline.phrase;)*>
+<!ELEMENT copying (#PCDATA | %block; | %Inline.phrase;)*>
+<!ELEMENT format (#PCDATA | %block; | %Inline.phrase;)*>
+<!ELEMENT smallformat (#PCDATA | %block; | %Inline.phrase;)*>
+<!ELEMENT display (#PCDATA | %block; | %Inline.phrase;)*>
+<!ELEMENT smalldisplay (#PCDATA | %block; | %Inline.phrase;)*>
+<!ELEMENT center (#PCDATA | %block; | %Inline.phrase;)*>
+<!ELEMENT group (#PCDATA | %block; | %Inline.phrase;)*>
+<!ELEMENT image (#PCDATA)>
+
+<!ELEMENT para (#PCDATA | %Inline.phrase; | footnote)*>
+
+<!ELEMENT menu ((menuentry | para)*)>
+<!ELEMENT menuentry (menunode?, menutitle?, menucomment?)>
+<!ELEMENT menunode (#PCDATA)>
+<!ELEMENT menutitle (#PCDATA)>
+<!ELEMENT menucomment (#PCDATA | para)*>
+
+<!-- Lists -->
+<!ELEMENT itemize (itemfunction, (item | itemize | enumerate | indexterm)*)>
+<!ELEMENT enumerate (enumarg?, (item | itemize | enumerate)*)>
+<!ATTLIST enumerate
+ first CDATA #IMPLIED>
+
+<!ELEMENT item (%block;)*>
+<!ELEMENT enumarg (#PCDATA)>
+
+<!ELEMENT itemfunction (#PCDATA | %Inline.phrase;)*>
+
+<!-- Tables -->
+<!ELEMENT table (tableitem | indexterm)+>
+<!ELEMENT tableitem (tableterm+, item)>
+<!ELEMENT tableterm (#PCDATA | %Inline.phrase;)*>
+
+<!ELEMENT multitable (columnfraction*, row*)>
+<!ELEMENT columnfraction (#PCDATA)>
+<!ELEMENT row (entry*)>
+<!ELEMENT entry (#PCDATA | %Inline.phrase;)*>
+
+<!-- INLINE Elements -->
+<!-- *************** -->
+
+<!-- Emphasize -->
+<!ELEMENT strong (#PCDATA | %Inline.phrase;)*>
+<!ELEMENT emph (#PCDATA | %Inline.phrase;)*>
+
+<!-- small caps -->
+<!ELEMENT sc (#PCDATA | %Inline.phrase;)*>
+
+<!-- fonts -->
+<!ELEMENT i (#PCDATA | %Inline.phrase;)*>
+<!ELEMENT b (#PCDATA | %Inline.phrase;)*>
+<!ELEMENT tt (#PCDATA | %Inline.phrase;)*>
+<!ELEMENT r (#PCDATA | %Inline.phrase;)*>
+<!ELEMENT notfixedwidth (#PCDATA | %Inline.phrase;)*>
+
+<!-- markup -->
+<!ELEMENT code (#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 acronym (#PCDATA | %Inline.phrase;)*>
+<!ELEMENT url (#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 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)>
+
+
+
+<!ENTITY tex "TeX">
+<!ENTITY ellipsis "">
+<!ENTITY lt "">
+<!ENTITY gt "">
+<!ENTITY bullet "">
+<!ENTITY copyright "">
+<!ENTITY minus "">
+<!ENTITY linebreak "">
+<!ENTITY space "">
+<!ENTITY dots "">
+<!ENTITY enddots "">
+<!ENTITY amp "">
+
+<!ENTITY auml "">
+<!ENTITY ouml "">
+<!ENTITY uuml "">
+<!ENTITY Auml "">
+<!ENTITY Ouml "">
+<!ENTITY Uuml "">
+<!ENTITY Euml "">
+<!ENTITY euml "">
+<!ENTITY Iuml "">
+<!ENTITY iuml "">
+<!ENTITY yuml "">
+<!ENTITY uml "">
+
+<!ENTITY Aacute "">
+<!ENTITY Eacute "">
+<!ENTITY Iacute "">
+<!ENTITY Oacute "">
+<!ENTITY Uacute "">
+<!ENTITY Yacute "">
+<!ENTITY aacute "">
+<!ENTITY eacute "">
+<!ENTITY iacute "">
+<!ENTITY oacute "">
+<!ENTITY uacute "">
+<!ENTITY yacute "">
+
+<!ENTITY ccedil "">
+<!ENTITY Ccedil "">
+
+<!ENTITY Acirc "">
+<!ENTITY Ecirc "">
+<!ENTITY Icirc "">
+<!ENTITY Ocirc "">
+<!ENTITY Ucirc "">
+<!ENTITY acirc "">
+<!ENTITY ecirc "">
+<!ENTITY icirc "">
+<!ENTITY ocirc "">
+<!ENTITY ucirc "">
+
+<!ENTITY Agrave "">
+<!ENTITY Egrave "">
+<!ENTITY Igrave "">
+<!ENTITY Ograve "">
+<!ENTITY Ugrave "">
+<!ENTITY agrave "">
+<!ENTITY egrave "">
+<!ENTITY igrave "">
+<!ENTITY ograve "">
+<!ENTITY ugrave "">
+
+<!ENTITY Atilde "">
+<!ENTITY Ntilde "">
+<!ENTITY Otilde "">
+<!ENTITY atilde "">
+<!ENTITY ntilde "">
+<!ENTITY otilde "">
+
+<!ENTITY oslash "">
+<!ENTITY Oslash "">
+
+<!ENTITY iexcl "">
+<!ENTITY pound "">
+<!ENTITY iquest "">
+<!ENTITY AElig "">
+<!ENTITY aelig "">
+<!ENTITY Aring "">
+<!ENTITY aring "">
+<!ENTITY szlig "">
+
+<!ENTITY macr "">
+
+
+<!-- fixxme: not yet classified -->
+
+<!ELEMENT sp (#PCDATA)>
+<!ATTLIST sp
+ lines CDATA #IMPLIED>
+<!ELEMENT printindex (#PCDATA)>
+
diff --git a/gnu/usr.bin/texinfo/makeinfo/texinfo.xsl b/gnu/usr.bin/texinfo/makeinfo/texinfo.xsl
new file mode 100644
index 00000000000..afe90c9f1c4
--- /dev/null
+++ b/gnu/usr.bin/texinfo/makeinfo/texinfo.xsl
@@ -0,0 +1,242 @@
+<?xml version='1.0'?>
+<!-- $Id: texinfo.xsl,v 1.1 2002/06/10 13:21:23 espie 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 --git a/gnu/usr.bin/texinfo/makeinfo/xml.c b/gnu/usr.bin/texinfo/makeinfo/xml.c
new file mode 100644
index 00000000000..70cb4f10486
--- /dev/null
+++ b/gnu/usr.bin/texinfo/makeinfo/xml.c
@@ -0,0 +1,1430 @@
+/* xml.c -- xml output.
+ $Id: xml.c,v 1.1 2002/06/10 13:21:23 espie Exp $
+
+ Copyright (C) 2001, 02 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+ Written by Philippe Martin <feloy@free.fr>. */
+
+#include "system.h"
+#include "makeinfo.h"
+#include "insertion.h"
+#include "macro.h"
+#include "cmds.h"
+#include "lang.h"
+
+#include "xml.h"
+
+/* Options */
+int xml_index_divisions = 1;
+
+
+void xml_close_sections (/* int level */);
+
+typedef struct _element
+{
+ char name[32];
+ int contains_para;
+ int contained_in_para;
+} element;
+
+element texinfoml_element_list [] = {
+ { "texinfo", 1, 0 },
+ { "setfilename", 0, 0 },
+ { "titlefont", 0, 0 },
+ { "settitle", 0, 0 },
+
+ { "node", 1, 0 },
+ { "nodenext", 0, 0 },
+ { "nodeprev", 0, 0 },
+ { "nodeup", 0, 0 },
+
+ { "chapter", 1, 0 },
+ { "section", 1, 0 },
+ { "subsection", 1, 0 },
+ { "subsubsection", 1, 0 },
+
+ { "top", 1, 0 },
+ { "unnumbered", 1, 0 },
+ { "unnumberedsec", 1, 0 },
+ { "unnumberedsubsec", 1, 0 },
+ { "unnumberedsubsubsec", 1, 0 },
+
+ { "appendix", 1, 0 },
+ { "appendixsec", 1, 0 },
+ { "appendixsubsec", 1, 0 },
+ { "appendixsubsubsec", 1, 0 },
+
+ { "majorheading", 1, 0 },
+ { "chapheading", 1, 0 },
+ { "heading", 1, 0 },
+ { "subheading", 1, 0 },
+ { "subsubheading", 1, 0 },
+
+ { "menu", 1, 0 },
+ { "menuentry", 1, 0 },
+ { "menutitle", 0, 0 },
+ { "menucomment", 1, 0 },
+ { "menunode", 0, 0 },
+ { "nodename", 0, 0 },
+
+ { "acronym", 0, 1 },
+ { "tt", 0, 1 },
+ { "code", 0, 1 },
+ { "kbd", 0, 1 },
+ { "url", 0, 1 },
+ { "key", 0, 1 },
+ { "var", 0, 1 },
+ { "sc", 0, 1 },
+ { "dfn", 0, 1 },
+ { "emph", 0, 1 },
+ { "strong", 0, 1 },
+ { "cite", 0, 1 },
+ { "notfixedwidth", 0, 1 },
+ { "i", 0, 1 },
+ { "b", 0, 1 },
+ { "r", 0, 1 },
+
+ { "title", 0, 0 },
+ { "ifinfo", 1, 0 },
+ { "sp", 0, 0 },
+ { "center", 1, 0 },
+ { "dircategory", 0, 0 },
+ { "quotation", 1, 0 },
+ { "example", 1, 0 },
+ { "smallexample", 1, 0 },
+ { "lisp", 1, 0 },
+ { "smalllisp", 1, 0 },
+ { "cartouche", 1, 0 },
+ { "copying", 1, 0 },
+ { "format", 1, 0 },
+ { "smallformat", 1, 0 },
+ { "display", 1, 0 },
+ { "smalldisplay", 1, 0 },
+ { "footnote", 0, 1 },
+
+ { "itemize", 0, 0 },
+ { "itemfunction", 0, 0 },
+ { "item", 1, 0 },
+ { "enumerate", 0, 0 },
+ { "table", 0, 0 },
+ { "tableitem", 0, 0 }, /* not used */ /* TABLEITEM */
+ { "tableterm", 0, 0 }, /* not used */ /* TABLETERM */
+
+ { "indexterm", 0, 1 },
+
+ { "xref", 0, 1 },
+ { "xrefnodename", 0, 1 },
+ { "xrefinfoname", 0, 1 },
+ { "xrefprinteddesc", 0, 1 },
+ { "xrefinfofile", 0, 1 },
+ { "xrefprintedname", 0, 1 },
+
+ { "inforef", 0, 1 },
+ { "inforefnodename", 0, 1 },
+ { "inforefrefname", 0, 1 },
+ { "inforefinfoname", 0, 1 },
+
+ { "uref", 0, 1 },
+ { "urefurl", 0, 1 },
+ { "urefdesc", 0, 1 },
+ { "urefreplacement", 0, 1 },
+
+ { "email", 0, 1 },
+ { "emailaddress", 0, 1 },
+ { "emailname", 0, 1 },
+
+ { "group", 0, 0 },
+
+ { "printindex", 0, 0 },
+ { "anchor", 0, 1 },
+ { "image", 0, 1 },
+ { "", 0, 1 }, /* PRIMARY (docbook) */
+ { "", 0, 1 }, /* SECONDARY (docbook) */
+ { "", 0, 0 }, /* INFORMALFIGURE (docbook) */
+ { "", 0, 0 }, /* MEDIAOBJECT (docbook) */
+ { "", 0, 0 }, /* IMAGEOBJECT (docbook) */
+ { "", 0, 0 }, /* IMAGEDATA (docbook) */
+ { "", 0, 0 }, /* TEXTOBJECT (docbook) */
+ { "", 0, 0 }, /* INDEXENTRY (docbook) */
+ { "", 0, 0 }, /* PRIMARYIE (docbook) */
+ { "", 0, 0 }, /* SECONDARYIE (docbook) */
+ { "", 0, 0 }, /* INDEXDIV (docbook) */
+ { "multitable", 0, 0 },
+ { "", 0, 0 }, /* TGROUP (docbook) */
+ { "columnfraction", 0, 0 },
+ { "", 0, 0 }, /* TBODY (docbook) */
+ { "entry", 0, 0 }, /* ENTRY (docbook) */
+ { "row", 0, 0 }, /* ROW (docbook) */
+ { "", 0, 0 }, /* BOOKINFO (docbook) */
+ { "", 0, 0 }, /* ABSTRACT (docbook) */
+ { "", 0, 0 }, /* REPLACEABLE (docbook) */
+ { "para", 0, 0 } /* Must be last */
+ /* name / contains para / contained in para */
+};
+
+element docbook_element_list [] = {
+ { "book", 0, 0 }, /* TEXINFO */
+ { "", 0, 0 }, /* SETFILENAME */
+ { "", 0, 0 }, /* TITLEINFO */
+ { "title", 0, 0 }, /* SETTITLE */
+
+ { "", 1, 0 }, /* NODE */
+ { "", 0, 0 }, /* NODENEXT */
+ { "", 0, 0 }, /* NODEPREV */
+ { "", 0, 0 }, /* NODEUP */
+
+ { "chapter", 1, 0 },
+ { "sect1", 1, 0 }, /* SECTION */
+ { "sect2", 1, 0 }, /* SUBSECTION */
+ { "sect3", 1, 0 }, /* SUBSUBSECTION */
+
+ { "chapter", 1, 0 }, /* TOP */
+ { "chapter", 1, 0 }, /* UNNUMBERED */
+ { "sect1", 1, 0 }, /* UNNUMBEREDSEC */
+ { "sect2", 1, 0 }, /* UNNUMBEREDSUBSEC */
+ { "sect3", 1, 0 }, /* UNNUMBEREDSUBSUBSEC */
+
+ { "appendix", 1, 0 },
+ { "sect1", 1, 0 }, /* APPENDIXSEC */
+ { "sect2", 1, 0 }, /* APPENDIXSUBSEC */
+ { "sect3", 1, 0 }, /* APPENDIXSUBSUBSEC */
+
+ { "chapter", 1, 0 }, /* MAJORHEADING */
+ { "chapter", 1, 0 }, /* CHAPHEADING */
+ { "sect1", 1, 0 }, /* HEADING */
+ { "sect2", 1, 0 }, /* SUBHEADING */
+ { "sect3", 1, 0 }, /* SUBSUBHEADING */
+
+ { "", 1, 0 }, /* MENU */
+ { "", 1, 0 }, /* MENUENTRY */
+ { "", 0, 0 }, /* MENUTITLE */
+ { "", 1, 0 }, /* MENUCOMMENT */
+ { "", 0, 0 }, /* MENUNODE */
+ { "anchor", 0, 0 }, /* NODENAME */
+
+ { "acronym", 0, 1 },
+ { "wordasword", 0, 1 }, /* TT */
+ { "command", 0, 1 }, /* CODE */
+ { "userinput", 0, 1 }, /* KBD */
+ { "wordasword", 0, 1 }, /* URL */
+ { "keycap", 0, 1 }, /* KEY */
+ { "varname", 0, 1 }, /* VAR */
+ { "", 0, 1 }, /* SC */
+ { "firstterm", 0, 1 }, /* DFN */
+ { "emphasis", 0, 1 }, /* EMPH */
+ { "emphasis", 0, 1 }, /* STRONG */
+ { "citation", 0, 1 }, /* CITE */
+ { "", 0, 1 }, /* NOTFIXEDWIDTH */
+ { "wordasword", 0, 1 }, /* I */
+ { "wordasword", 0, 1 }, /* B */
+ { "", 0, 1 }, /* R */
+
+ { "title", 0, 0 },
+ { "", 1, 0 }, /* IFINFO */
+ { "", 0, 0 }, /* SP */
+ { "", 1, 0 }, /* CENTER */
+ { "", 0, 0 }, /* DIRCATEGORY */
+ { "blockquote", 1, 0 }, /* QUOTATION */
+ { "screen", 0, 1 },
+ { "screen", 0, 1 }, /* SMALLEXAMPLE */
+ { "screen", 0, 1 }, /* LISP */
+ { "screen", 0, 1 }, /* SMALLLISP */
+ { "", 1, 0 }, /* CARTOUCHE */
+ { "", 1, 0 }, /* COPYING */
+ { "screen", 0, 1 }, /* FORMAT */
+ { "screen", 0, 1 }, /* SMALLFORMAT */
+ { "screen", 0, 1 }, /* DISPLAY */
+ { "screen", 0, 1 }, /* SMALLDISPLAY */
+ { "footnote", 0, 1 },
+
+ { "itemizedlist", 0, 0 }, /* ITEMIZE */
+ { "", 0, 0 }, /* ITEMFUNCTION */
+ { "listitem", 1, 0 },
+ { "orderedlist", 0, 0 }, /* ENUMERATE */
+ { "variablelist", 0, 0 }, /* TABLE */
+ { "varlistentry", 0, 0 }, /* TABLEITEM */
+ { "term", 0, 0 }, /* TABLETERM */
+
+ { "indexterm", 0, 1 },
+
+ { "xref", 0, 1 }, /* XREF */
+ { "link", 0, 1 }, /* XREFNODENAME */
+ { "", 0, 1 }, /* XREFINFONAME */
+ { "", 0, 1 }, /* XREFPRINTEDDESC */
+ { "", 0, 1 }, /* XREFINFOFILE */
+ { "", 0, 1 }, /* XREFPRINTEDNAME */
+
+ { "", 0, 1 }, /* INFOREF */
+ { "", 0, 1 }, /* INFOREFNODENAME */
+ { "", 0, 1 }, /* INFOREFREFNAME */
+ { "", 0, 1 }, /* INFOREFINFONAME */
+
+ { "", 0, 1 }, /* UREF */
+ { "", 0, 1 }, /* UREFURL */
+ { "", 0, 1 }, /* UREFDESC */
+ { "", 0, 1 }, /* UREFREPLACEMENT */
+
+ { "ulink", 0, 1 }, /* EMAIL */
+ { "", 0, 1 }, /* EMAILADDRESS */
+ { "", 0, 1 }, /* EMAILNAME */
+
+ { "", 0, 0 }, /* GROUP */
+
+ { "index", 0, 0 }, /* PRINTINDEX */
+ { "", 0, 1 }, /* ANCHOR */
+ { "", 0, 1 }, /* IMAGE */
+ { "primary", 0, 1 }, /* PRIMARY */
+ { "secondary", 0, 1 },
+ { "informalfigure", 0, 0 },
+ { "mediaobject", 0, 0 },
+ { "imageobject", 0, 0 },
+ { "imagedata", 0, 0 },
+ { "textobject", 0, 0 },
+ { "indexentry", 0, 0 },
+ { "primaryie", 0, 0 },
+ { "secondaryie", 0, 0 },
+ { "indexdiv", 0, 0 },
+ { "informaltable", 0, 0 },
+ { "tgroup", 0, 0 },
+ { "colspec", 0, 0 },
+ { "tbody", 0, 0 },
+ { "entry", 0, 0 },
+ { "row", 0, 0 },
+ { "bookinfo", 0, 0 },
+ { "abstract", 1, 0 },
+ { "replaceable", 0, 0 },
+
+ { "para", 0, 0 } /* Must be last */
+ /* name / contains para / contained in para */
+};
+
+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 },
+ /* 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_no_para = 0;
+char *xml_node_id = NULL;
+int xml_sort_index = 0;
+
+static int xml_after_table_term = 0;
+static int book_started = 0;
+static int first_section_opened = 0;
+static int in_abstract = 0;
+
+static int xml_current_element ();
+
+void
+#if defined (VA_FPRINTF) && __STDC__
+xml_insert_element_with_attribute (int elt, int arg, char *format, ...);
+#else
+xml_insert_element_with_attribute ();
+#endif
+
+char *
+xml_id (id)
+ char *id;
+{
+ char *tem = xmalloc (strlen (id) + 1);
+ char *p = tem;
+ strcpy (tem, id);
+ while (*p++)
+ {
+ if (*p == ' ' || *p == '&' || *p == '/' || *p == '+')
+ *p = '-';
+ }
+ p = tem;
+ while (*p == '-')
+ *p = 'i';
+ return tem;
+}
+
+int
+xml_element (name)
+ char *name;
+{
+ int i;
+ for (i=0; i<=PARA; i++)
+ {
+ if (strcasecmp (name, texinfoml_element_list[i].name) == 0)
+ return i;
+ }
+ printf ("Error xml_element\n");
+ return -1;
+}
+
+void
+xml_begin_document (output_filename)
+ char *output_filename;
+{
+ if (book_started)
+ return;
+
+ book_started = 1;
+ if (docbook)
+ {
+ insert_string ("<!DOCTYPE Book PUBLIC \"-//OASIS//DTD DocBook V3.1//EN\">");
+ xml_element_list = docbook_element_list;
+ }
+ else
+ {
+ insert_string ("<!DOCTYPE texinfo SYSTEM \"texinfo.dtd\">");
+ xml_element_list = texinfoml_element_list;
+ }
+ if (docbook)
+ {
+ if (language_code != last_language_code)
+ xml_insert_element_with_attribute (TEXINFO, START, "lang=\"%s\"", language_table[language_code].abbrev);
+ }
+ else
+ xml_insert_element (TEXINFO, START);
+ if (!docbook)
+ {
+ xml_insert_element (SETFILENAME, START);
+ insert_string (output_filename);
+ xml_insert_element (SETFILENAME, END);
+ }
+}
+
+/* */
+static int element_stack[256];
+static int element_stack_index = 0;
+
+static void
+xml_push_current_element (elt)
+ int elt;
+{
+ element_stack[element_stack_index++] = elt;
+ if (element_stack_index > 200)
+ printf ("*** stack overflow (%d - %s) ***\n",
+ element_stack_index,
+ xml_element_list[elt].name);
+}
+
+void
+xml_pop_current_element ()
+{
+ element_stack_index--;
+ if (element_stack_index < 0)
+ printf ("*** stack underflow (%d - %d) ***\n",
+ element_stack_index,
+ xml_current_element());
+}
+
+static int
+xml_current_element ()
+{
+ return element_stack[element_stack_index-1];
+}
+
+static void
+xml_indent ()
+{
+ int i;
+ insert ('\n');
+ for (i = 0; i < element_stack_index; i++)
+ insert (' ');
+}
+
+static void
+xml_indent_end_para ()
+{
+ int i;
+ for (i = 0; i < element_stack_index; i++)
+ insert (' ');
+}
+
+void
+xml_end_document ()
+{
+ if (xml_node_open)
+ {
+ if (xml_node_level != -1)
+ {
+ xml_close_sections (xml_node_level);
+ xml_node_level = -1;
+ }
+ xml_insert_element (NODE, END);
+ }
+ xml_insert_element (TEXINFO, END);
+ insert_string ("\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)
+ {
+ 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_after_table_term && elt != TABLETERM)
+ {
+ xml_after_table_term = 0;
+ xml_insert_element (ITEM, START);
+ }
+
+ if (docbook && !only_macro_expansion && (in_menu || in_detailmenu))
+ 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_element_list[xml_current_element()].contains_para )
+ {
+ xml_indent ();
+ insert_string ("<para>");
+ xml_in_para = 1;
+ }
+
+
+ if (arg == START && xml_in_para && !xml_element_list[elt].contained_in_para)
+ {
+ xml_indent_end_para ();
+ insert_string ("</para>");
+ xml_in_para = 0;
+ }
+
+ if (arg == END && xml_in_para && !xml_element_list[elt].contained_in_para)
+ {
+ xml_indent_end_para ();
+ insert_string ("</para>");
+ xml_in_para = 0;
+ }
+
+ if (arg == START && !xml_in_para && !xml_element_list[elt].contained_in_para)
+ xml_indent ();
+
+ if (arg == START)
+ xml_push_current_element (elt);
+ else
+ xml_pop_current_element ();
+
+ 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_string ("\"");
+ free (xml_node_id);
+ xml_node_id = NULL;
+ }
+
+ insert ('>');
+
+ 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 (!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)
+ {
+ insert_string ("<para>");
+ xml_in_para = 1;
+ }
+ escape_html = 0;
+ insert ('&');
+ escape_html = saved_escape_html;
+ insert_string (entity_name);
+ insert (';');
+}
+
+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 ()
+{
+ 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 (level)
+ int level;
+{
+ if (!first_section_opened && in_abstract)
+ {
+ xml_insert_element (ABSTRACT, END);
+ xml_insert_element (BOOKINFO, END);
+ 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 (level, name)
+ 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 (tem)
+ 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 */
+ xml_insert_element (MENUCOMMENT, START);
+ xml_in_menu_entry_comment ++;
+}
+
+void
+xml_end_menu ()
+{
+ 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 (character)
+ int character;
+{
+ if (!book_started)
+ return;
+ if (docbook && !only_macro_expansion && (in_menu || in_detailmenu))
+ return;
+
+ if (!first_section_opened && !in_abstract && xml_current_element () == TEXINFO
+ && !xml_no_para && character != '\r' && character != '\n' && character != ' ')
+ {
+ xml_insert_element (BOOKINFO, START);
+ xml_insert_element (ABSTRACT, START);
+ in_abstract = 1;
+ }
+
+ if (xml_after_table_term && !xml_sort_index)
+ {
+ xml_after_table_term = 0;
+ xml_insert_element (ITEM, START);
+ }
+
+ 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 (xml_element_list[xml_current_element()].contains_para
+ && !xml_in_para && !only_macro_expansion && !xml_no_para)
+ {
+ xml_indent ();
+ insert_string ("<para>\n");
+ xml_in_para = 1;
+ }
+
+ if (xml_in_para)
+ {
+ if (character == '\n')
+ {
+ if (xml_last_character == '\n' && !only_macro_expansion && !xml_no_para
+ && xml_element_list[xml_current_element()].contains_para )
+ {
+ xml_indent_end_para ();
+ insert_string ("</para>");
+ xml_in_para = 0;
+ xml_just_after_element = 1;
+ 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 (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
+ insert (character);
+
+ return;
+}
+
+void
+xml_insert_footnote (note)
+ char *note;
+{
+ xml_insert_element (FOOTNOTE, START);
+ insert_string ("<para>");
+ execute_string ("%s", note);
+ insert_string ("</para>");
+ xml_insert_element (FOOTNOTE, END);
+}
+
+
+/*
+ * Lists and Tables
+ */
+static int xml_in_item[256];
+static int xml_table_level = 0;
+
+void
+xml_begin_table (type, item_function)
+ enum insertion_type 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_item[xml_table_level] = 0;
+ }
+ break;
+ case itemize:
+ if (!docbook)
+ {
+ xml_insert_element (ITEMIZE, START);
+ xml_table_level ++;
+ xml_in_item[xml_table_level] = 0;
+ 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);
+ }
+ 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;
+ }
+ break;
+ }
+}
+
+void
+xml_end_table (type)
+ enum insertion_type type;
+{
+ switch (type)
+ {
+ case ftable:
+ case vtable:
+ case table:
+ /* if (docbook)*/ /* 05-08 */
+ {
+ if (xml_in_item[xml_table_level])
+ {
+ xml_insert_element (ITEM, END);
+ xml_insert_element (TABLEITEM, END);
+ xml_in_item[xml_table_level] = 0;
+ }
+ xml_insert_element (TABLE, END);
+ 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;
+ }
+ xml_insert_element (ITEMIZE, END);
+ xml_table_level --;
+ break;
+ }
+}
+
+void
+xml_begin_item ()
+{
+ 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 ()
+{
+ if (!xml_after_table_term)
+ {
+ if (xml_in_item[xml_table_level])
+ {
+ xml_insert_element (ITEM, END);
+ xml_insert_element (TABLEITEM, END);
+ }
+ xml_insert_element (TABLEITEM, START);
+ }
+ xml_insert_element (TABLETERM, START);
+ xml_in_item[xml_table_level] = 1;
+ xml_after_table_term = 0;
+}
+
+void
+xml_continue_table_item ()
+{
+ xml_insert_element (TABLETERM, END);
+ xml_after_table_term = 1;
+}
+
+void
+xml_begin_enumerate (enum_arg)
+ char *enum_arg;
+{
+ if (!docbook)
+ xml_insert_element_with_attribute (ENUMERATE, START, "first=\"%s\"", enum_arg);
+ else
+ {
+ if (isdigit (*enum_arg))
+ {
+ if (enum_arg[0] == '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 ()
+{
+ 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 (name_arg)
+ 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);
+}
+
+void
+xml_insert_docbook_image (name_arg)
+ char *name_arg;
+{
+ xml_insert_element (INFORMALFIGURE, START);
+ xml_insert_element (MEDIAOBJECT, START);
+
+ xml_insert_element (IMAGEOBJECT, START);
+ xml_insert_element_with_attribute (IMAGEDATA, START, "fileref=\"%s.eps\" format=\"eps\"", name_arg);
+ xml_pop_current_element ();
+ xml_insert_element (IMAGEOBJECT, END);
+
+ xml_insert_element (IMAGEOBJECT, START);
+ xml_insert_element_with_attribute (IMAGEDATA, START, "fileref=\"%s.jpg\" format=\"jpg\"", name_arg);
+ xml_pop_current_element ();
+ xml_insert_element (IMAGEOBJECT, END);
+
+ xml_insert_text_file (name_arg);
+
+ xml_insert_element (MEDIAOBJECT, END);
+ xml_insert_element (INFORMALFIGURE, END);
+}
+
+void
+xml_asterisk ()
+{
+}
+
+
+/*
+ * INDEX
+ */
+/* Used to separate primary and secondary entries in an index */
+#define INDEX_SEP ", "
+
+xml_insert_indexterm (indexterm, index)
+ char *indexterm;
+ char *index;
+{
+ if (!docbook)
+ {
+ xml_insert_element_with_attribute (INDEXTERM, START, "index=\"%s\"", index);
+ execute_string ("%s", indexterm);
+ xml_insert_element (INDEXTERM, END);
+ }
+ else
+ {
+ char *expanded;
+ char *primary = NULL, *secondary;
+ xml_sort_index = 1;
+ xml_no_para = 1;
+ expanded = expansion (indexterm);
+ xml_sort_index = 0;
+ xml_no_para = 0;
+ if (strstr (expanded+1, INDEX_SEP))
+ {
+ primary = xmalloc (strlen (expanded) + 1);
+ strcpy (primary, expanded);
+ secondary = strstr (primary+1, INDEX_SEP);
+ *secondary = '\0';
+ secondary += strlen (INDEX_SEP);
+ }
+ xml_insert_element_with_attribute (INDEXTERM, START, "role=\"%s\"", index);
+ xml_insert_element (PRIMARY, START);
+ if (primary)
+ insert_string (primary);
+ else
+ insert_string (expanded);
+ xml_insert_element (PRIMARY, END);
+ if (primary)
+ {
+ xml_insert_element (SECONDARY, START);
+ insert_string (secondary);
+ xml_insert_element (SECONDARY, END);
+ }
+ xml_insert_element (INDEXTERM, END);
+ free (expanded);
+ }
+}
+
+
+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 int in_indexentry = 0;
+static int in_secondary = 0;
+static void
+xml_close_indexentry ()
+{
+ 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 ()
+{
+ /*
+ We assume that we just opened a section, and so that the last output is
+ <SECTION ID="node-name"><TITLE>Title</TITLE>
+ where SECTION can be CHAPTER, ...
+ */
+
+ xml_section *temp = last_section;
+
+ int l = output_paragraph_offset-xml_last_section_output_position;
+ char *tmp = xmalloc (l+1);
+ char *p = tmp;
+ strncpy (tmp, output_paragraph, l);
+
+ /* We remove <SECTION */
+ tmp[l] = '\0';
+ while (*p != '<')
+ p++;
+ while (*p != ' ')
+ p++;
+
+ output_paragraph_offset = xml_last_section_output_position;
+ xml_last_section_output_position = 0;
+
+ xml_pop_current_element (); /* remove section element from elements stack */
+
+ last_section = last_section->prev; /* remove section from sections stack */
+ free (temp->name);
+ free (temp);
+
+ /* We put <INDEX> */
+ xml_insert_element (PRINTINDEX, START);
+ /* Remove the final > */
+ output_paragraph_offset--;
+
+ /* and put ID="node-name"><TITLE>Title</TITLE> */
+ insert_string (p);
+
+ if (xml_index_divisions)
+ {
+ xml_insert_element (INDEXDIV, START);
+ indexdivempty = 1;
+ }
+}
+
+void
+xml_end_index ()
+{
+ xml_close_indexentry ();
+ if (xml_index_divisions)
+ xml_insert_element (INDEXDIV, END);
+ xml_insert_element (PRINTINDEX, END);
+}
+
+void
+xml_index_divide (entry)
+ 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_insert_indexentry (entry, node)
+ char *entry;
+ char *node;
+{
+ char *primary = NULL, *secondary;
+ if (xml_index_divisions)
+ xml_index_divide (entry);
+
+ indexdivempty = 0;
+ if (strstr (entry+1, INDEX_SEP))
+ {
+ primary = xmalloc (strlen (entry) + 1);
+ strcpy (primary, entry);
+ secondary = strstr (primary+1, INDEX_SEP);
+ *secondary = '\0';
+ secondary += strlen (INDEX_SEP);
+
+ if (in_secondary && strcmp (primary, index_primary) == 0)
+ {
+ xml_insert_element (SECONDARYIE, END);
+ xml_insert_element (SECONDARYIE, START);
+ insert_string (secondary);
+ }
+ else
+ {
+ xml_close_indexentry ();
+ xml_insert_element (INDEXENTRY, START);
+ in_indexentry = 1;
+ xml_insert_element (PRIMARYIE, START);
+ insert_string (primary);
+ xml_insert_element (PRIMARYIE, END);
+ xml_insert_element (SECONDARYIE, START);
+ insert_string (secondary);
+ in_secondary = 1;
+ }
+ }
+ else
+ {
+ xml_close_indexentry ();
+ xml_insert_element (INDEXENTRY, START);
+ in_indexentry = 1;
+ xml_insert_element (PRIMARYIE, START);
+ insert_string (entry);
+ }
+ add_word_args (", %s", _("see "));
+ xml_insert_element_with_attribute (XREF, START, "linkend=\"%s\"", xml_id (node));
+ xml_pop_current_element ();
+
+ if (primary)
+ {
+ strcpy (index_primary, primary);
+ /* xml_insert_element (SECONDARYIE, END);*/
+ /* *(secondary-1) = ',';*/ /* necessary ? */
+ free (primary);
+ }
+ else
+ xml_insert_element (PRIMARYIE, END);
+
+ /* xml_insert_element (INDEXENTRY, END); */
+}
+
+/*
+ * MULTITABLE
+ */
+void
+xml_begin_multitable (ncolumns, column_widths)
+ int ncolumns;
+ int *column_widths;
+{
+ int i;
+ if (docbook)
+ {
+ xml_insert_element (MULTITABLE, START);
+ xml_insert_element_with_attribute (TGROUP, START, "cols=\"%d\"", ncolumns);
+ for (i=0; i<ncolumns; i++)
+ {
+ xml_insert_element_with_attribute (COLSPEC, START, "colwidth=\"%d*\"", column_widths[i]);
+ xml_pop_current_element ();
+ }
+ xml_insert_element (TBODY, START);
+ 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;
+ }
+}
+
+void
+xml_end_multitable_row (first_row)
+ int first_row;
+{
+ if (!first_row)
+ {
+ xml_insert_element (ENTRY, END);
+ xml_insert_element (ROW, END);
+ }
+ xml_insert_element (ROW, START);
+ xml_insert_element (ENTRY, START);
+}
+
+void
+xml_end_multitable_column ()
+{
+ xml_insert_element (ENTRY, END);
+ xml_insert_element (ENTRY, START);
+}
+
+void
+xml_end_multitable ()
+{
+ if (docbook)
+ {
+ xml_insert_element (ENTRY, END);
+ xml_insert_element (ROW, END);
+ xml_insert_element (TBODY, END);
+ xml_insert_element (TGROUP, END);
+ xml_insert_element (MULTITABLE, END);
+ xml_no_para = 0;
+ }
+ else
+ {
+ xml_insert_element (ENTRY, END);
+ xml_insert_element (ROW, END);
+ xml_insert_element (MULTITABLE, END);
+ xml_no_para = 0;
+ }
+}
diff --git a/gnu/usr.bin/texinfo/makeinfo/xml.h b/gnu/usr.bin/texinfo/makeinfo/xml.h
new file mode 100644
index 00000000000..e5849d37476
--- /dev/null
+++ b/gnu/usr.bin/texinfo/makeinfo/xml.h
@@ -0,0 +1,81 @@
+/* xml.h -- xml output declarations.
+ $Id: xml.h,v 1.1.1.1 2002/06/10 13:21:23 espie Exp $
+
+ Copyright (C) 2001, 02 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+ Written by Philippe Martin <feloy@free.fr>. */
+
+#ifndef XML_H
+#define XML_H
+
+/* Options. */
+
+/* Separate index entries into divisions for each letters. */
+extern int xml_index_divisions;
+extern int xml_sort_index;
+
+extern int xml_node_open;
+extern int xml_no_para;
+extern char *xml_node_id;
+extern int xml_last_section_output_position;
+
+enum xml_element
+{
+ TEXINFO=0, SETFILENAME, TITLEFONT, SETTITLE,
+ /* Node */
+ NODE /* 4 */, NODENEXT, NODEPREV, NODEUP,
+ /* Structuring */
+ CHAPTER /* 8 */, SECTION, SUBSECTION, SUBSUBSECTION,
+ TOP /* 12 */, UNNUMBERED, UNNUMBEREDSEC, UNNUMBEREDSUBSEC,
+ UNNUMBEREDSUBSUBSEC,
+ APPENDIX /* 17 */, APPENDIXSEC, APPENDIXSUBSEC, APPENDIXSUBSUBSEC,
+ MAJORHEADING /* 21 */, CHAPHEADING, HEADING, SUBHEADING, SUBSUBHEADING,
+ /* Menu */
+ MENU /* 26 */, MENUENTRY, MENUTITLE, MENUCOMMENT, MENUNODE, NODENAME,
+ /* -- */
+ ACRONYM/* 32 */, TT, CODE, KBD, URL, KEY, VAR, SC, DFN, EMPH, STRONG,
+ CITE, NOTFIXEDWIDTH, I, B, R,
+ TITLE,
+ IFINFO,
+ SP, CENTER,
+ DIRCATEGORY,
+ QUOTATION, EXAMPLE, SMALLEXAMPLE, LISP, SMALLLISP, CARTOUCHE,
+ COPYING, FORMAT, SMALLFORMAT, DISPLAY, SMALLDISPLAY,
+ FOOTNOTE,
+ ITEMIZE, ITEMFUNCTION, ITEM, ENUMERATE, TABLE, TABLEITEM, TABLETERM,
+ INDEXTERM,
+ XREF, XREFNODENAME, XREFINFONAME, XREFPRINTEDDESC, XREFINFOFILE,
+ XREFPRINTEDNAME,
+ INFOREF, INFOREFNODENAME, INFOREFREFNAME, INFOREFINFONAME,
+ UREF, UREFURL, UREFDESC, UREFREPLACEMENT,
+ EMAIL, EMAILADDRESS, EMAILNAME,
+ GROUP,
+ PRINTINDEX,
+ ANCHOR,
+ IMAGE,
+ PRIMARY, SECONDARY, INFORMALFIGURE, MEDIAOBJECT, IMAGEOBJECT,
+ IMAGEDATA, TEXTOBJECT,
+ INDEXENTRY, PRIMARYIE, SECONDARYIE, INDEXDIV,
+ MULTITABLE, TGROUP, COLSPEC, TBODY, ENTRY, ROW,
+ BOOKINFO, ABSTRACT, REPLACEABLE,
+ PARA
+};
+
+extern void xml_insert_element (/* int name, int arg */);
+extern char *xml_id (/* char *id */);
+
+#endif /* XML_H */
diff --git a/gnu/usr.bin/texinfo/po/LINGUAS b/gnu/usr.bin/texinfo/po/LINGUAS
new file mode 100644
index 00000000000..d5a32048a4e
--- /dev/null
+++ b/gnu/usr.bin/texinfo/po/LINGUAS
@@ -0,0 +1,14 @@
+cs
+da
+de
+de_AT
+eo
+fr
+he
+hr
+ja
+nl
+no
+ru
+sv
+zh_TW
diff --git a/gnu/usr.bin/texinfo/po/Makevars b/gnu/usr.bin/texinfo/po/Makevars
new file mode 100644
index 00000000000..8b09f53b0f5
--- /dev/null
+++ b/gnu/usr.bin/texinfo/po/Makevars
@@ -0,0 +1,25 @@
+# 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_
+
+# 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 list of locale categories, beyond LC_MESSAGES, for which the
+# message catalogs shall be used. It is usually empty.
+EXTRA_LOCALE_CATEGORIES =
diff --git a/gnu/usr.bin/texinfo/po/Rules-quot b/gnu/usr.bin/texinfo/po/Rules-quot
new file mode 100644
index 00000000000..5f46d237d25
--- /dev/null
+++ b/gnu/usr.bin/texinfo/po/Rules-quot
@@ -0,0 +1,42 @@
+# 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-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 --git a/gnu/usr.bin/texinfo/po/boldquot.sed b/gnu/usr.bin/texinfo/po/boldquot.sed
new file mode 100644
index 00000000000..4b937aa517b
--- /dev/null
+++ b/gnu/usr.bin/texinfo/po/boldquot.sed
@@ -0,0 +1,10 @@
+s/"\([^"]*\)"/\1/g
+s/`\([^`']*\)'/\1/g
+s/ '\([^`']*\)' / \1 /g
+s/ '\([^`']*\)'$/ \1/g
+s/^'\([^`']*\)' /\1 /g
+s//""/g
+s///g
+s///g
+s///g
+s///g
diff --git a/gnu/usr.bin/texinfo/po/da.gmo b/gnu/usr.bin/texinfo/po/da.gmo
new file mode 100644
index 00000000000..850f0216189
--- /dev/null
+++ b/gnu/usr.bin/texinfo/po/da.gmo
Binary files differ
diff --git a/gnu/usr.bin/texinfo/po/da.po b/gnu/usr.bin/texinfo/po/da.po
new file mode 100644
index 00000000000..929fa97118b
--- /dev/null
+++ b/gnu/usr.bin/texinfo/po/da.po
@@ -0,0 +1,2918 @@
+# 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.1c\n"
+"POT-Creation-Date: 2002-04-01 06:10-0800\n"
+"PO-Revision-Date: 2002-03-25 11:57GMT\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.5\n"
+
+#: info/echo-area.c:283 info/session.c:712
+msgid "Move forward a character"
+msgstr "G et tegn frem"
+
+#: info/echo-area.c:295 info/session.c:728
+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:746
+msgid "Move forward a word"
+msgstr "Ryk et ord frem"
+
+#: info/echo-area.c:360 info/session.c:795
+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鷨en"
+
+#: info/echo-area.c:430
+msgid "Delete the character behind the cursor"
+msgstr "Slet tegnet efter mark鷨en"
+
+#: 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廨 (eller gennemtving afslutning af) linjen"
+
+#: info/echo-area.c:471
+msgid "Insert next character verbatim"
+msgstr "Inds犚 n犘te tegn r廞"
+
+#: info/echo-area.c:479
+msgid "Insert this character"
+msgstr "Inds犚 dette tegn"
+
+#: info/echo-area.c:497
+msgid "Insert a TAB character"
+msgstr "Inds犚 et tabulatortegn"
+
+#: info/echo-area.c:504
+msgid "Transpose characters at point"
+msgstr "Transpon廨 tegn ved mark鷨"
+
+#: info/echo-area.c:555
+msgid "Yank back the contents of the last kill"
+msgstr "Gendan indholdet fra sidste sletning"
+
+#: info/echo-area.c:562
+msgid "Kill ring is empty"
+msgstr "Skraldespand er tom"
+
+#: info/echo-area.c:575
+msgid "Yank back a previous kill"
+msgstr "Gendan en tidligere sletning"
+
+#: info/echo-area.c:608
+msgid "Kill to the end of the line"
+msgstr "Slet resten af linjen"
+
+#: info/echo-area.c:621
+msgid "Kill to the beginning of the line"
+msgstr "Slet bagud til linjestart"
+
+#: info/echo-area.c:633
+msgid "Kill the word following the cursor"
+msgstr "Slet resten af ordet"
+
+#: info/echo-area.c:652
+msgid "Kill the word preceding the cursor"
+msgstr "Slet ordet f鷨 mark鷨en"
+
+#: info/echo-area.c:872 info/echo-area.c:932
+msgid "No completions"
+msgstr "Ingen afslutninger"
+
+#: info/echo-area.c:874
+msgid "Not complete"
+msgstr "Ikke afsluttet"
+
+#: info/echo-area.c:919
+msgid "List possible completions"
+msgstr "Vis mulige afslutninger"
+
+#: info/echo-area.c:936
+msgid "Sole completion"
+msgstr "Eneste afslutning"
+
+#: info/echo-area.c:945
+msgid "One completion:\n"
+msgstr "圢 afslutning:\n"
+
+#: info/echo-area.c:946
+#, c-format
+msgid "%d completions:\n"
+msgstr "%d afslutninger:\n"
+
+#: info/echo-area.c:1092
+msgid "Insert completion"
+msgstr "Inds犚 afslutning"
+
+#: info/echo-area.c:1225
+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鷨er til dette emne i et andet vindue"
+
+#: info/footnotes.h:26
+msgid "---------- Footnotes ----------"
+msgstr "---------- Fodnoter -----------"
+
+#: info/indices.c:175
+msgid "Look up a string in the index for this file"
+msgstr "Sl en tekst op i denne fils indeks."
+
+#: info/indices.c:205
+msgid "Finding index entries..."
+msgstr "Finder indeksindgange..."
+
+#: info/indices.c:212
+msgid "No indices found."
+msgstr "Fandt intet indeks."
+
+#: info/indices.c:222
+msgid "Index entry: "
+msgstr "Indeksindgang:"
+
+#: info/indices.c:332
+msgid ""
+"Go to the next matching index item from the last `\\[index-search]' command"
+msgstr "G til n犘te fundne indekspunkt fra sidste '\\[index-search]'-kommando"
+
+#: info/indices.c:342
+msgid "No previous index search string."
+msgstr "Ingen tidligere indeks s鷤etekst"
+
+#: info/indices.c:349
+msgid "No index entries."
+msgstr "Ingen indeksindgange."
+
+#: info/indices.c:382
+#, c-format
+msgid "No %sindex entries containing \"%s\"."
+msgstr "Ingen %sindeksindgange indeholder \"%s\"."
+
+#: info/indices.c:383
+msgid "more "
+msgstr "mere "
+
+#: info/indices.c:393
+msgid "CAN'T SEE THIS"
+msgstr "KAN IKKE SE DETTE"
+
+#: info/indices.c:429
+#, c-format
+msgid "Found \"%s\" in %s. (`\\[next-index-match]' tries to find next.)"
+msgstr "Fandt \"%s\" i %s. ('\\[next-index-match]' s鷤er efter den n犘te.)"
+
+#: info/indices.c:549
+#, c-format
+msgid "Scanning indices of \"%s\"..."
+msgstr "Skimmer \"%s\"'s indekser..."
+
+#: info/indices.c:603
+#, c-format
+msgid "No available info files have \"%s\" in their indices."
+msgstr "Ingen tilg熡gelige info-filer har \"%s\" i sit index."
+
+#: info/indices.c:632
+msgid "Grovel all known info file's indices for a string and build a menu"
+msgstr ""
+"Gennemtr獒l alle kendte Info-filers indekser for en tekst og opbyg en menu"
+
+#: info/indices.c:636
+msgid "Index apropos: "
+msgstr "Indeks apropos:"
+
+#: info/indices.c:666
+#, c-format
+msgid ""
+"\n"
+"* Menu: Nodes whoses indices contain \"%s\":\n"
+msgstr ""
+"\n"
+"* Menu: Emner, hvis indeks indeholder \"%s\":\n"
+
+#: info/info.c:260 info/infokey.c:884
+msgid "Try --help for more information.\n"
+msgstr "Pr黲 --help for mere information.\n"
+
+#: info/info.c:279 info/infokey.c:139 makeinfo/makeinfo.c:689
+#: util/install-info.c:1224 util/texindex.c:338
+#, c-format
+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"
+"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"
+
+#: info/info.c:462
+#, c-format
+msgid "no index entries found for `%s'\n"
+msgstr "ingen indeksindgange blev fundet for '%s'\n"
+
+#: info/info.c:555
+msgid " -b, --speech-friendly be friendly to speech synthesizers.\n"
+msgstr " -b, --speech-friendly v熳 talesyntese-venlig.\n"
+
+#: info/info.c:562
+#, c-format
+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 ""
+"Brug: %s [TILVALG]... [MENUPUNKT...]\n"
+"\n"
+"L犘 dokumentationen i Info format.\n"
+"\n"
+"Tilvalg:\n"
+" --apropos=STRENG sl STRENG op i alle indekser og manualer.\n"
+" -d, --directory=KATALOG tilf鷮 KATALOG til INFOPATH.\n"
+" --dribble=FILNAVN gem brugerens tastetryk i FILNAVN.\n"
+" -f, --file=FILNAVN angiv Info fil, der skal bes鷤es.\n"
+" -h, --help vis denne hj熞p og afslut.\n"
+" --index-search=TEKST g til det punkt, indeks-indgang TEKST "
+"angiver.\n"
+" -n, --node=EMNENAVN angiv emner i f鷨st bes鷤te Info-fil.\n"
+" -o, --output=FILNAVN udl犘 de valgte emner til FILNAVN.\n"
+" -R, --raw-escapes fjern ikke ANSI-escapekoder fra manualsider\n"
+" --restore=FILNAVN indl犘 de f鷨ste tastetryk fra FILNAVN.\n"
+" -O, --show-options, --usage g til emnet kommandolinje-tilvalg.\n"
+"%s --subnodes udl犘 menupunkter rekursivt.\n"
+" --vi-keys benyt 'vi'- og 'less'-agtige tastebindinger.\n"
+" --version vis versionsinformation og afslut.\n"
+"\n"
+"Det f鷨ste ikke-tilvalgs-parameter er menuindgangen der startes fra;\n"
+"den s鷤es i alle 'katalog'-filer angivet i milj黲ariablen 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鷤e i katalog\n"
+
+#: info/info.c:598 info/infokey.c:903 makeinfo/makeinfo.c:474
+#: util/install-info.c:421 util/texindex.c:286
+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廨 fejl i programmet p engelsk til bug-texinfo@gnu.org,\n"
+"generelle sp鷨gsm嶚 og diskussion til help-texinfo@gnu.org,\n"
+"overs犚telsesfejl til claus_h@image.dk\n"
+"Texinfos hjemmeside: http://www.gnu.org/software/texinfo/"
+
+#: info/info.c:632
+#, c-format
+msgid "Cannot find node `%s'."
+msgstr "Kan ikke finde emnet '%s'."
+
+#: info/info.c:633
+#, c-format
+msgid "Cannot find node `(%s)%s'."
+msgstr "Kan ikke finde emnet '(%s)%s'."
+
+#: info/info.c:634
+msgid "Cannot find a window!"
+msgstr "Kan ikke finde et vindue!"
+
+#: info/info.c:635
+msgid "Point doesn't appear within this window's node!"
+msgstr "Punktet optr熛er ikke i dette vindues emne!"
+
+#: info/info.c:636
+msgid "Cannot delete the last window."
+msgstr "Kan ikke slette det sidste vindue."
+
+#: info/info.c:637
+msgid "No menu in this node."
+msgstr "Ingen menu i dette emne."
+
+#: info/info.c:638
+msgid "No footnotes in this node."
+msgstr "Ingen fodnoter i dette emne."
+
+#: info/info.c:639
+msgid "No cross references in this node."
+msgstr "Ingen krydsreferencer i dette emne."
+
+#: info/info.c:640
+#, c-format
+msgid "No `%s' pointer for this node."
+msgstr "Ingen '%s'-peger mod dette emne."
+
+#: info/info.c:641
+#, c-format
+msgid "Unknown Info command `%c'; try `?' for help."
+msgstr "Ukendt Info kommando '%c'; pr黲 '?' for hj熞p."
+
+#: info/info.c:642
+#, c-format
+msgid "Terminal type `%s' is not smart enough to run Info."
+msgstr "Info kan ikke k鷨e p terminal type '%s'."
+
+#: info/info.c:643
+msgid "You are already at the last page of this node."
+msgstr "Du er i forvejen ved emnets sidste side."
+
+#: info/info.c:644
+msgid "You are already at the first page of this node."
+msgstr "Du er i forvejen ved emnets f鷨ste side."
+
+#: info/info.c:645
+msgid "Only one window."
+msgstr "Kun 彋 vindue."
+
+#: info/info.c:646
+msgid "Resulting window would be too small."
+msgstr "Det resulterende vindue ville v熳e for lille."
+
+#: info/info.c:647
+msgid "Not enough room for a help window, please delete a window."
+msgstr "Ikke nok plads til et hj熞pevindue. Fjern venligst et vindue."
+
+#: info/infodoc.c:45 info/infodoc.c:94
+msgid ""
+"Basic Commands in Info Windows\n"
+"******************************\n"
+msgstr ""
+"Grundl熚gende kommandoer i Info-vinduer\n"
+"***************************************\n"
+
+#: info/infodoc.c:48
+msgid "\\%-10[quit-help] Quit this help.\n"
+msgstr "\\%-10[quit-help] Afslut denne hj熞p.\n"
+
+#: info/infodoc.c:49
+msgid "\\%-10[quit] Quit Info altogether.\n"
+msgstr "\\%-10[quit] Afslut hele Info-programmet.\n"
+
+#: info/infodoc.c:50
+msgid "\\%-10[get-info-help-node] Invoke the Info tutorial.\n"
+msgstr "\\%-10[get-info-help-node] K鷨 info introduktionen.\n"
+
+#: info/infodoc.c:52 info/infodoc.c:101
+msgid ""
+"Selecting other nodes:\n"
+"----------------------\n"
+msgstr ""
+"Valg af ander emnder:\n"
+"---------------------\n"
+
+#: info/infodoc.c:54
+msgid "\\%-10[next-node] Move to the \"next\" node of this node.\n"
+msgstr "\\%-10[next-node] Flyt til emnet 'n犘te' i dette emne.\n"
+
+#: info/infodoc.c:55
+msgid "\\%-10[prev-node] Move to the \"previous\" node of this node.\n"
+msgstr "\\%-10[prev-node] Flyt til emnet 'Forrige' i dette emne.\n"
+
+#: info/infodoc.c:56
+msgid "\\%-10[up-node] Move \"up\" from this node.\n"
+msgstr "\\%-10[up-node] Flyt til emnet 'Op' i dette emne.\n"
+
+#: info/infodoc.c:57
+msgid ""
+"\\%-10[menu-item] Pick menu item specified by name.\n"
+" Picking a menu item causes another node to be selected.\n"
+msgstr ""
+"\\%-10[menu-item] V熞g menupunkt angivet ved navn.\n"
+" Valg af menupunkt v熞ger et andet emne.\n"
+
+#: info/infodoc.c:59
+msgid ""
+"\\%-10[xref-item] Follow a cross reference. Reads name of reference.\n"
+msgstr ""
+"\\%-10[xref-item] F鷲g en krydshenvisning. Indl犘er referencens navn.\n"
+
+#: info/infodoc.c:60
+msgid "\\%-10[history-node] Move to the last node seen in this window.\n"
+msgstr "\\%-10[history-node] Flyt til vinduets sidste synlige emne-felt.\n"
+
+#: info/infodoc.c:61
+msgid ""
+"\\%-10[move-to-next-xref] Skip to next hypertext link within this node.\n"
+msgstr ""
+"\\%-10[move-to-next-xref] Hop til n犘te hypertekst-henvisning i dette "
+"emne.\n"
+
+#: info/infodoc.c:62
+msgid ""
+"\\%-10[move-to-prev-xref] Skip to previous hypertext link within this "
+"node.\n"
+msgstr ""
+"\\%-10[move-to-prev-xref] Hop til n犘te hypertekst-henvisning i dette "
+"emne.\n"
+
+#: info/infodoc.c:63
+msgid ""
+"\\%-10[select-reference-this-line] Follow the hypertext link under cursor.\n"
+msgstr ""
+"\\%-10[select-reference-this-line] F鷲g hypertekst-henvisningen under "
+"mark鷨en.\n"
+
+#: info/infodoc.c:64
+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"
+
+#: info/infodoc.c:65
+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"
+
+#: info/infodoc.c:67 info/infodoc.c:115
+msgid ""
+"Moving within a node:\n"
+"---------------------\n"
+msgstr ""
+"Bev熚elser indenfor et emne:\n"
+"----------------------------\n"
+
+#: info/infodoc.c:69
+msgid "\\%-10[scroll-forward] Scroll forward a page.\n"
+msgstr "\\%-10[scroll-forward] Rul en side frem.\n"
+
+#: info/infodoc.c:70
+msgid "\\%-10[scroll-backward] Scroll backward a page.\n"
+msgstr "\\%-10[scroll-backward] Rul en side tilbage.\n"
+
+#: info/infodoc.c:71
+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:72
+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:73
+msgid "\\%-10[scroll-forward] Scroll forward 1 line.\n"
+msgstr "\\%-10[scroll-forward] Rul 1 linje frem.\n"
+
+#: info/infodoc.c:74
+msgid "\\%-10[scroll-backward] Scroll backward 1 line.\n"
+msgstr "\\%-10[scroll-backward] Rul en linje tilbage.\n"
+
+#: info/infodoc.c:76 info/infodoc.c:124
+msgid ""
+"Other commands:\n"
+"---------------\n"
+msgstr ""
+"Andre kommandoer:\n"
+"-----------------\n"
+
+#: info/infodoc.c:78
+msgid "\\%-10[menu-digit] Pick first ... ninth item in node's menu.\n"
+msgstr "\\%-10[menu-digit] V熞g f鷨ste til niende punkt i emnets menu.\n"
+
+#: info/infodoc.c:79
+msgid "\\%-10[last-menu-item] Pick last item in node's menu.\n"
+msgstr "\\%-10[last-menu-item] V熞g sidste punkt i emnets menu.\n"
+
+#: info/infodoc.c:80
+msgid ""
+"\\%-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"
+msgstr ""
+"\\%-10[index-search] S鷤 efter den angivne streng i denne Infos "
+"indeksindgange\n"
+" og v熞g det emne, der refereres til af den f鷨st fundne "
+"indgang.\n"
+
+#: info/infodoc.c:82
+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"
+
+#: info/infodoc.c:84
+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鷤 fremad efter en given streng\n"
+" og v熞g emnet med den n犘te forekomst.\n"
+
+#: info/infodoc.c:86
+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熚 bagl熡s efter en given streng\n"
+" og v熞g emnet med den forrige forekomst.\n"
+
+#: info/infodoc.c:97
+#, c-format
+msgid " %-10s Quit this help.\n"
+msgstr " %-10s Afslut hj熞p.\n"
+
+#: info/infodoc.c:98
+#, c-format
+msgid " %-10s Quit Info altogether.\n"
+msgstr " %-10s Afslut hele Info-programmet.\n"
+
+#: info/infodoc.c:99
+#, c-format
+msgid " %-10s Invoke the Info tutorial.\n"
+msgstr " %-10s K鷨 info introduktionen.\n"
+
+#: info/infodoc.c:103
+#, c-format
+msgid " %-10s Move to the `next' node of this node.\n"
+msgstr " %-10s Flyt til emnet 'n犘te' i dette emne.\n"
+
+#: info/infodoc.c:104
+#, 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:105
+#, c-format
+msgid " %-10s Move `up' from this node.\n"
+msgstr " %-10s G et niveau op.\n"
+
+#: info/infodoc.c:106
+#, c-format
+msgid " %-10s Pick menu item specified by name.\n"
+msgstr " %-10s V熞g menupunkt angivet ved navn.\n"
+
+#: info/infodoc.c:107
+msgid " Picking a menu item causes another node to be selected.\n"
+msgstr " Valg af menupunkt v熞ger et andet emne.\n"
+
+#: info/infodoc.c:108
+#, c-format
+msgid " %-10s Follow a cross reference. Reads name of reference.\n"
+msgstr " %-10s F鷲g en krydshenvisning. Indl犘er referencens navn.\n"
+
+#: info/infodoc.c:109
+#, 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:110
+#, c-format
+msgid " %-10s Skip to next hypertext link within this node.\n"
+msgstr " %-10s Hop til n犘te hypertekst-l熡ke i dette emne.\n"
+
+#: info/infodoc.c:111
+#, c-format
+msgid " %-10s Follow the hypertext link under cursor.\n"
+msgstr " %-10s F鷲g hypertekst-l熡ken under mark鷨en.\n"
+
+#: info/infodoc.c:112
+#, 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:113
+#, 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:117
+#, c-format
+msgid " %-10s Scroll forward a page.\n"
+msgstr " %-10s Rul en side frem.\n"
+
+#: info/infodoc.c:118
+#, c-format
+msgid " %-10s Scroll backward a page.\n"
+msgstr " %-10s Rul en side tilbage.\n"
+
+#: info/infodoc.c:119
+#, c-format
+msgid " %-10s Go to the beginning of this node.\n"
+msgstr " %-10s G til starten af emnet.\n"
+
+#: info/infodoc.c:120
+#, c-format
+msgid " %-10s Go to the end of this node.\n"
+msgstr " %-10s G til enden af emnet.\n"
+
+#: info/infodoc.c:121
+#, c-format
+msgid " %-10s Scroll forward 1 line.\n"
+msgstr " %-10s Rul 1 linje frem.\n"
+
+#: info/infodoc.c:122
+#, c-format
+msgid " %-10s Scroll backward 1 line.\n"
+msgstr " %-10s Rul en linje tilbage.\n"
+
+#: info/infodoc.c:126
+#, c-format
+msgid " %-10s Pick first ... ninth item in node's menu.\n"
+msgstr " %-10s V熞g f鷨ste ... niende punkt i emnets menu.\n"
+
+#: info/infodoc.c:127
+#, c-format
+msgid " %-10s Pick last item in node's menu.\n"
+msgstr " %-10s V熞g sidste punkt i emnets menu.\n"
+
+#: info/infodoc.c:128
+#, c-format
+msgid ""
+" %-10s Search for a specified string in the index entries of this Info\n"
+msgstr ""
+" %-10s S鷤 efter en angivet tekst i denne Info-fils indeksindgange,\n"
+
+#: info/infodoc.c:129
+msgid ""
+" file, and select the node referenced by the first entry "
+"found.\n"
+msgstr ""
+" og v熞g det emne, der refereres til af den f鷨st fundne "
+"indgang.\n"
+
+#: info/infodoc.c:130
+#, c-format
+msgid " %-10s Move to node specified by name.\n"
+msgstr " %-10s G til emne angivet ved navn.\n"
+
+#: info/infodoc.c:131
+msgid ""
+" You may include a filename as well, as in (FILENAME)NODENAME.\n"
+msgstr " Du kan ogs medtage filnavn, som (FILNAVN)EMNENAVN.\n"
+
+#: info/infodoc.c:132
+#, c-format
+msgid " %-10s Search forward for a specified string,\n"
+msgstr " %-10s S鷤 fremad efter en given streng,\n"
+
+#: info/infodoc.c:133 info/infodoc.c:135
+msgid ""
+" and select the node in which the next occurrence is found.\n"
+msgstr " og v熞g emne med den n犘te forekomst.\n"
+
+#: info/infodoc.c:134
+#, c-format
+msgid " %-10s Search backward for a specified string\n"
+msgstr " %-10s S鷤 bagl熡s efter en given streng\n"
+
+#: info/infodoc.c:313
+msgid "The current search path is:\n"
+msgstr "Den nuv熳ende s鷤esti er:\n"
+
+#: info/infodoc.c:316
+msgid ""
+"Commands available in Info windows:\n"
+"\n"
+msgstr ""
+"Tilg熡gelige kommandoer i infovinduer:\n"
+"\n"
+
+#: info/infodoc.c:319
+msgid ""
+"Commands available in the echo area:\n"
+"\n"
+msgstr ""
+"Tilg熡gelige kommandoer i ekko-omr嶟e:\n"
+"\n"
+
+#: info/infodoc.c:340
+#, c-format
+msgid ""
+"The following commands can only be invoked via %s:\n"
+"\n"
+msgstr ""
+"F鷲gende kommandoer kan kun k鷨es via %s:\n"
+"\n"
+
+#: info/infodoc.c:343
+msgid ""
+"The following commands cannot be invoked at all:\n"
+"\n"
+msgstr ""
+"F鷲gende kommandoer kan slet ikke k鷨es:\n"
+"\n"
+
+#: info/infodoc.c:367
+msgid "--- Use `\\[history-node]' or `\\[kill-node]' to exit ---\n"
+msgstr ""
+"--- Benyt '\\[history-node]' eller '\\[kill-node]' for at afslutte ---\n"
+
+#: info/infodoc.c:477
+msgid "Display help message"
+msgstr "Vis hj熞p"
+
+#: info/infodoc.c:495
+msgid "Visit Info node `(info)Help'"
+msgstr "Bes鷤 infoemnet '(info)Help'"
+
+#: info/infodoc.c:638
+msgid "Print documentation for KEY"
+msgstr "Vis dokumentation for TAST"
+
+#: info/infodoc.c:650
+#, c-format
+msgid "Describe key: %s"
+msgstr "Beskriv tast: %s"
+
+#: info/infodoc.c:660
+#, c-format
+msgid "ESC %s is undefined."
+msgstr "ESC %s er ikke defineret."
+
+#: info/infodoc.c:676 info/infodoc.c:703
+#, c-format
+msgid "%s is undefined."
+msgstr "%s er ikke defineret."
+
+#: info/infodoc.c:724
+#, c-format
+msgid "%s is defined to %s."
+msgstr "%s er defineret til %s."
+
+#: info/infodoc.c:1151
+msgid "Show what to type to execute a given command"
+msgstr "Vis hvad der skal tastes, for at udf鷨e en given kommando"
+
+#: info/infodoc.c:1155
+msgid "Where is command: "
+msgstr "Hvor er kommando: "
+
+#: info/infodoc.c:1177
+#, c-format
+msgid "`%s' is not on any keys"
+msgstr "'%s' er ikke p nogen taster"
+
+#: info/infodoc.c:1183
+#, c-format
+msgid "%s can only be invoked via %s."
+msgstr "%s kan kun udf鷨es via %s."
+
+#: info/infodoc.c:1186
+#, c-format
+msgid "%s can be invoked via %s."
+msgstr "%s kan udf鷨es via %s."
+
+#: info/infodoc.c:1190
+#, c-format
+msgid "There is no function named `%s'"
+msgstr "Der er ingen funktion kaldet '%s'"
+
+#: info/infokey.c:164
+msgid "incorrect number of arguments"
+msgstr "ugyldigt antal parametre"
+
+#: info/infokey.c:194
+#, c-format
+msgid "cannot open input file `%s'"
+msgstr "can ikke 嶙ne inddata-filen '%s'."
+
+#: info/infokey.c:207
+#, c-format
+msgid "cannot create output file `%s'"
+msgstr "kan ikke oprette uddatafil '%s'"
+
+#: info/infokey.c:217
+#, c-format
+msgid "error writing to `%s'"
+msgstr "fejl under skrivning til '%s'"
+
+#: info/infokey.c:222
+#, c-format
+msgid "error closing output file `%s'"
+msgstr "fejl under lukning af uddatafilen '%s'"
+
+#: info/infokey.c:443
+msgid "key sequence too long"
+msgstr "n鷤lesekvens for lang"
+
+#: info/infokey.c:521
+msgid "missing key sequence"
+msgstr "manglende n鷤lesekvens"
+
+#: info/infokey.c:600
+msgid "NUL character (\\000) not permitted"
+msgstr "NUL-tegn (\\000) ikke tilladt"
+
+#: info/infokey.c:629
+#, c-format
+msgid "NUL character (^%c) not permitted"
+msgstr "NUL-tegn (^%c) ikke tilladt"
+
+#: info/infokey.c:652
+msgid "missing action name"
+msgstr "mangler handlingsnavn"
+
+#: info/infokey.c:667 info/infokey.c:733
+msgid "section too long"
+msgstr "for langt afsnit"
+
+#: info/infokey.c:673
+#, c-format
+msgid "unknown action `%s'"
+msgstr "ukendt handling '%s'"
+
+#: info/infokey.c:682
+msgid "action name too long"
+msgstr "for langt handlingsnavn"
+
+#: info/infokey.c:694
+#, c-format
+msgid "extra characters following action `%s'"
+msgstr "ekstra tegn f鷲ger handlingen '%s'"
+
+#: info/infokey.c:704
+msgid "missing variable name"
+msgstr "manglende variabelnavn"
+
+#: info/infokey.c:712
+msgid "missing `=' immediately after variable name"
+msgstr "mangler '=' umiddelbart efter variabelnavn"
+
+#: info/infokey.c:719
+msgid "variable name too long"
+msgstr "for langt variabelnavn"
+
+#: info/infokey.c:741
+msgid "value too long"
+msgstr "for lang v熳di"
+
+#: info/infokey.c:875
+#, c-format
+msgid "\"%s\", line %u: "
+msgstr "\"%s\", linje %u: "
+
+#: info/infokey.c:891
+#, 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犚 en infokey-kildefil til en infokey-fil. L犘er 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熞p og afslut.\n"
+" --version vis versionsoplysninger og afslut.\n"
+"\n"
+"Overs犚 infokey-kildefil til infokey-fil. L犘er INDDATA-FIL (standard\n"
+"$HOME/.infokey) og skriver oversat key-fil til $HOME/.info.\n"
+
+#: info/infomap.c:1397
+#, c-format
+msgid "Ignoring invalid infokey file `%s' - too small"
+msgstr "Ignorerer ugyldig infokey-fil '%s' - for lille"
+
+#: info/infomap.c:1400
+#, c-format
+msgid "Ignoring invalid infokey file `%s' - too big"
+msgstr "Ignorerer ugyldig infokey-fil '%s' - for stor"
+
+#: info/infomap.c:1413
+#, c-format
+msgid "Error reading infokey file `%s' - short read"
+msgstr "Fejl under l犘ning af infokey-fil '%s' - \"short read\""
+
+#: info/infomap.c:1431
+#, c-format
+msgid ""
+"Invalid infokey file `%s' (bad magic numbers) -- run infokey to update it"
+msgstr ""
+"Ugyldig infokey-fil '%s' (ugyldige magiske tal) -- k鷨 infokey for at "
+"opdatere den"
+
+#: info/infomap.c:1437
+#, 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鷨 infokey for at opdatere den"
+
+#: info/infomap.c:1450
+#, c-format
+msgid ""
+"Invalid infokey file `%s' (bad section length) -- run infokey to update it"
+msgstr ""
+"Ugyldig infokey-fil '%s' (ugyldig afsnitsl熡gde) -- k鷨 infokey for at "
+"opdatere den"
+
+#: info/infomap.c:1470
+#, c-format
+msgid ""
+"Invalid infokey file `%s' (bad section code) -- run infokey to update it"
+msgstr ""
+"Ugyldig infokey-fil '%s' (ugyldig afsnitskode) -- k鷨 infokey for at "
+"opdatere den"
+
+#: info/infomap.c:1608
+msgid "Bad data in infokey file -- some key bindings ignored"
+msgstr "Ugyldige data i infokey-fil -- visse tastebindinger blev ignoreret"
+
+#: info/infomap.c:1659
+msgid "Bad data in infokey file -- some var settings ignored"
+msgstr ""
+"Ugyldige data i infokey-fil -- visse variabelindstillinger blev ignoreret"
+
+#: info/m-x.c:70
+msgid "Read the name of an Info command and describe it"
+msgstr "Indl犘 navnet p en info-kommando og beskriv den"
+
+#: info/m-x.c:74
+msgid "Describe command: "
+msgstr "Beskriv kommando: "
+
+#: info/m-x.c:97
+msgid "Read a command name in the echo area and execute it"
+msgstr "Indl犘 et kommandonavn i ekko-omr嶟et og udf鷨 den"
+
+#: info/m-x.c:141
+msgid "Cannot execute an `echo-area' command here."
+msgstr "Kan ikke udf鷨e en 'ekko-omr嶟e'-kommando her."
+
+#: info/m-x.c:157
+msgid "Set the height of the displayed window"
+msgstr "S犚 h鷮den p det viste vindue"
+
+#: info/m-x.c:170
+#, c-format
+msgid "Set screen height to (%d): "
+msgstr "S犚 sk熳mh鷮den til (%d): "
+
+#: info/makedoc.c:161 info/makedoc.c:169
+msgid ""
+" Source files groveled to make this file include:\n"
+"\n"
+msgstr ""
+" Kildetekster gennemtr獒let for at inkludere filen;\n"
+"\n"
+
+#: info/makedoc.c:553
+#, c-format
+msgid "Couldn't manipulate the file %s.\n"
+msgstr "Kunne ikke bearbejde filen %s.\n"
+
+#: info/nodemenu.c:28
+msgid ""
+"\n"
+"* Menu:\n"
+" (File)Node Lines Size Containing File\n"
+" ---------- ----- ---- ---------------"
+msgstr ""
+"\n"
+"* Menu:\n"
+" (Fil)Emne linjer St鷨r. Indeholder fil\n"
+" ---------- ----- ---- ---------------"
+
+#: info/nodemenu.c:199
+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鷤t for nylig.\n"
+"V熞g et fra denne menu eller brug '\\[history-node]' i et andet vindue,\n"
+
+#: info/nodemenu.c:219
+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鷤te emner"
+
+#: info/nodemenu.c:299
+msgid "Select a node which has been previously visited in a visible window"
+msgstr "V熞g et emne, som tidligere har v熳et bes鷤t i et synligt vindue"
+
+#: info/nodemenu.c:311
+msgid "Select visited node: "
+msgstr "V熞g bes鷤t emne: "
+
+#: info/nodemenu.c:331 info/session.c:2235
+#, c-format
+msgid "The reference disappeared! (%s)."
+msgstr "Referencen forsvandt! (%s)."
+
+#: info/session.c:170
+#, 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熞p. \\[menu-"
+"item] for menupunkt."
+
+#: info/session.c:643
+msgid "Move down to the next line"
+msgstr "G ned til n犘te linje"
+
+#: info/session.c:658
+msgid "Move up to the previous line"
+msgstr "G op til forrige linje"
+
+#: info/session.c:673
+msgid "Move to the end of the line"
+msgstr "G til linjeslutning"
+
+#: info/session.c:693
+msgid "Move to the start of the line"
+msgstr "G til linjestart"
+
+#: info/session.c:885 makeinfo/node.c:1357
+msgid "Next"
+msgstr "N犘te"
+
+#: info/session.c:888
+msgid "Following Next node..."
+msgstr "F鷲ger emnet N犘te..."
+
+#: info/session.c:905
+msgid "Selecting first menu item..."
+msgstr "V熞ger f鷨ste menupunkt..."
+
+#: info/session.c:916
+msgid "Selecting Next node..."
+msgstr "V熞ger emnet 'N犘te'..."
+
+#: info/session.c:986
+#, c-format
+msgid "Moving Up %d time(s), then Next."
+msgstr "G緳 'Op' %d gang(e), derefter 'N犘te'."
+
+#: info/session.c:1010
+msgid "No more nodes within this document."
+msgstr "Ikke flere emner i dette dokument."
+
+#: info/session.c:1034
+msgid "No `Prev' for this node."
+msgstr "Ingen 'Forrige' i dette emne."
+
+#: info/session.c:1037 info/session.c:1092
+msgid "Moving Prev in this window."
+msgstr "G緳 til 'Forrige' i dette vindue."
+
+#: info/session.c:1051
+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:1054
+msgid "Moving Up in this window."
+msgstr "G緳 'Op' i dette vindue."
+
+#: info/session.c:1102
+msgid "Moving to `Prev's last menu item."
+msgstr "G緳 til 'Forrige's sidste menupunkt."
+
+#: info/session.c:1113
+msgid "Move forwards or down through node structure"
+msgstr "G frem eller ned gennem emne-strukturen"
+
+#: info/session.c:1129
+msgid "Move backwards or up through node structure"
+msgstr "G tilbage eller op gennem emne-strukturen"
+
+#: info/session.c:1229
+msgid "Scroll forward in this window"
+msgstr "Rul tilbage i vinduet"
+
+#: info/session.c:1237
+msgid "Scroll forward in this window and set default window size"
+msgstr "Rul frem i vinduet og s犚 standard vinduesst鷨relse"
+
+#: info/session.c:1245
+msgid "Scroll forward in this window staying within node"
+msgstr "Rul frem i vinduet i samme emne"
+
+#: info/session.c:1253
+msgid ""
+"Scroll forward in this window staying within node and set default window size"
+msgstr "Rul frem i vinduet i samme emne og s犚 standard vinduesst鷨relse"
+
+#: info/session.c:1261
+msgid "Scroll backward in this window"
+msgstr "Rul tilbage i vinduet"
+
+#: info/session.c:1269
+msgid "Scroll backward in this window and set default window size"
+msgstr "Rul tilbage i vinduet og s犚 standard vinduesst鷨relse"
+
+#: info/session.c:1278
+msgid "Scroll backward in this window staying within node"
+msgstr "Rul tilbage i vinduet indenfor samme emne"
+
+#: info/session.c:1286
+msgid ""
+"Scroll backward in this window staying within node and set default window "
+"size"
+msgstr ""
+"Rul tilbage i vinduet indenfor samme emne og s犚 standard vinduesst鷨relse"
+
+#: info/session.c:1294
+msgid "Move to the start of this node"
+msgstr "G til starten af dette emne"
+
+#: info/session.c:1301
+msgid "Move to the end of this node"
+msgstr "G til slutningen af dette emne"
+
+#: info/session.c:1308
+msgid "Scroll down by lines"
+msgstr "Rul N linjer ned"
+
+#: info/session.c:1325
+msgid "Scroll up by lines"
+msgstr "Rul N linjer op"
+
+#: info/session.c:1343
+msgid "Scroll down by half screen size"
+msgstr "Rul en halv sk熳mst鷨relse ned"
+
+#: info/session.c:1369
+msgid "Scroll up by half screen size"
+msgstr "Rul en halv sk熳mst鷨relse op"
+
+#: info/session.c:1398
+msgid "Select the next window"
+msgstr "V熞g det n犘te vindue"
+
+#: info/session.c:1437
+msgid "Select the previous window"
+msgstr "V熞g det forrige vindue"
+
+#: info/session.c:1488
+msgid "Split the current window"
+msgstr "Opdel nuv熳ende vindue"
+
+#: info/session.c:1569
+msgid "Delete the current window"
+msgstr "Slet nuv熳ende vindue"
+
+#: info/session.c:1577
+msgid "Cannot delete a permanent window"
+msgstr "Kan ikke slette et permanent vindue"
+
+#: info/session.c:1610
+msgid "Delete all other windows"
+msgstr "Slet alle andre vinduer"
+
+#: info/session.c:1656
+msgid "Scroll the other window"
+msgstr "Rul det andet vindue"
+
+#: info/session.c:1677
+msgid "Scroll the other window backward"
+msgstr "Rul det andet vindue bagl熡s"
+
+#: info/session.c:1683
+msgid "Grow (or shrink) this window"
+msgstr "Forst鷨 (eller formindsk) dette vindue"
+
+#: info/session.c:1694
+msgid "Divide the available screen space among the visible windows"
+msgstr "Fordel det tilg熡gelige sk熳momr嶟e mellem de synlige vinduer"
+
+#: info/session.c:1701
+msgid "Toggle the state of line wrapping in the current window"
+msgstr "V熞g/frav熞g linjeombrydning i nuv熳ende vindue"
+
+#: info/session.c:1880
+msgid "Select the Next node"
+msgstr "V熞g emnet N犘te"
+
+#: info/session.c:1888
+msgid "Select the Prev node"
+msgstr "V熞g emnet Forrige"
+
+#: info/session.c:1896
+msgid "Select the Up node"
+msgstr "V熞g emnet 'Op'"
+
+#: info/session.c:1903
+msgid "Select the last node in this file"
+msgstr "V熞g det sidste emne i filen"
+
+#: info/session.c:1930 info/session.c:1963
+msgid "This window has no additional nodes"
+msgstr "Dette vindue har ingen yderligere emner"
+
+#: info/session.c:1936
+msgid "Select the first node in this file"
+msgstr "V熞g det f鷨ste emne i filen"
+
+#: info/session.c:1970
+msgid "Select the last item in this node's menu"
+msgstr "V熞g det sidste punkt i emnets menu"
+
+#: info/session.c:1976
+msgid "Select this menu item"
+msgstr "V熞g dette menupunkt"
+
+#: info/session.c:2005
+#, c-format
+msgid "There aren't %d items in this menu."
+msgstr "Der er ikke %d punkter i denne menu."
+
+#: info/session.c:2148
+#, c-format
+msgid "Menu item (%s): "
+msgstr "Menupunkt (%s): "
+
+#: info/session.c:2150
+msgid "Menu item: "
+msgstr "Menupunkt: "
+
+#: info/session.c:2155
+#, c-format
+msgid "Follow xref (%s): "
+msgstr "F鷲g krydsreference (%s): "
+
+#: info/session.c:2157
+msgid "Follow xref: "
+msgstr "F鷲g krydsreference: "
+
+#: info/session.c:2280
+msgid "Read a menu item and select its node"
+msgstr "Indl犘 et menupunkt og v熞g dets emne"
+
+#: info/session.c:2288
+msgid "Read a footnote or cross reference and select its node"
+msgstr "Indl犘 en fodnote eller krydsreference og v熞g dets emne"
+
+#: info/session.c:2294
+msgid "Move to the start of this node's menu"
+msgstr "Flyt til starten af dette emnes menu"
+
+#: info/session.c:2318
+msgid "Visit as many menu items at once as possible"
+msgstr "Bes鷤 s mange menupunkter p en gang, som det er muligt"
+
+#: info/session.c:2346
+msgid "Read a node name and select it"
+msgstr "Indl犘 et emnenavn og v熞g det"
+
+#: info/session.c:2401 info/session.c:2405
+msgid "Goto node: "
+msgstr "G til emne: "
+
+#: info/session.c:2471
+#, c-format
+msgid "No menu in node `%s'."
+msgstr "Ingen menu i emne '%s'."
+
+#: info/session.c:2516
+#, c-format
+msgid "No menu item `%s' in node `%s'."
+msgstr "Intet menupunkt '%s' i emne '%s'."
+
+#: info/session.c:2546
+#, 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:2597
+msgid "Read a list of menus starting from dir and follow them"
+msgstr "Indl犘 en liste med menuer, der starter i katalog, og f鷲g dem"
+
+#: info/session.c:2599
+msgid "Follow menus: "
+msgstr "F鷲g menuer: "
+
+#: info/session.c:2797
+msgid "Find the node describing program invocation"
+msgstr "Find emnet, der beskriver hvordan programmet startes"
+
+#: info/session.c:2799
+#, c-format
+msgid "Find Invocation node of [%s]: "
+msgstr "Find programstart emne for [%s]: "
+
+#: info/session.c:2837
+msgid "Read a manpage reference and select it"
+msgstr "Indl犘 en man-side reference og v熞g den"
+
+#: info/session.c:2841
+msgid "Get Manpage: "
+msgstr "Hent man-side: "
+
+#: info/session.c:2871
+msgid "Select the node `Top' in this file"
+msgstr "V熞g emnet 'Top' i filen"
+
+#: info/session.c:2877
+msgid "Select the node `(dir)'"
+msgstr "V熞g emnet '(katalog)'"
+
+#: info/session.c:2897
+#, c-format
+msgid "Kill node (%s): "
+msgstr "Fjern emne (%s): "
+
+#: info/session.c:2951
+#, c-format
+msgid "Cannot kill node `%s'"
+msgstr "Kan ikke fjerne emnet '%s'"
+
+#: info/session.c:2961
+msgid "Cannot kill the last node"
+msgstr "Kan ikke fjerne det sidste emne"
+
+#: info/session.c:3047
+msgid "Select the most recently selected node"
+msgstr "V熞g det sidst valgt emne"
+
+#: info/session.c:3053
+msgid "Kill this node"
+msgstr "Fjern dette emne"
+
+#: info/session.c:3061
+msgid "Read the name of a file and select it"
+msgstr "Indl犘 et filnavn og v熞g det"
+
+#: info/session.c:3065
+msgid "Find file: "
+msgstr "Find fil: "
+
+#: info/session.c:3082
+#, c-format
+msgid "Cannot find `%s'."
+msgstr "Kan ikke finde '%s'."
+
+#: info/session.c:3127 info/session.c:3248
+#, c-format
+msgid "Could not create output file `%s'."
+msgstr "Kunne ikke oprette uddatafil '%s'."
+
+#: info/session.c:3140 info/session.c:3265 info/session.c:3326
+msgid "Done."
+msgstr "F熳dig."
+
+#: info/session.c:3196
+#, c-format
+msgid "Writing node %s..."
+msgstr "Skriver emnet %s..."
+
+#: info/session.c:3274
+msgid "Pipe the contents of this node through INFO_PRINT_COMMAND"
+msgstr ""
+"Udskriv indholdet af dette emne (ved videref鷨sel gennem INFO_PRINT_COMMAND)"
+
+#: info/session.c:3310
+#, c-format
+msgid "Cannot open pipe to `%s'."
+msgstr "Kan ikke 嶙ne videref鷨sel til '%s'."
+
+#: info/session.c:3316
+#, c-format
+msgid "Printing node %s..."
+msgstr "Udskriver emnet %s..."
+
+#: info/session.c:3558
+#, c-format
+msgid "Searching subfile %s ..."
+msgstr "Leder efter underfilen %s ..."
+
+#: info/session.c:3610
+msgid "Read a string and search for it case-sensitively"
+msgstr "Indl犘 en tekst og s鷤 efter den uden versalf鷲somhed"
+
+#: info/session.c:3617
+msgid "Read a string and search for it"
+msgstr "Indl犘 en tekst og s鷤 for den"
+
+#: info/session.c:3625
+msgid "Read a string and search backward for it"
+msgstr "Indl犘 en tekst og s鷤 bagl熡s efter den"
+
+#: info/session.c:3667
+#, c-format
+msgid "%s%sfor string [%s]: "
+msgstr "%s%sefter tekst [%s]: "
+
+#: info/session.c:3668
+msgid "Search backward"
+msgstr "S鷤 bagl熡s"
+
+#: info/session.c:3668
+msgid "Search"
+msgstr "S鷤"
+
+#: info/session.c:3669
+msgid " case-sensitively "
+msgstr " versalf鷲somt"
+
+#: info/session.c:3669
+msgid " "
+msgstr " "
+
+#: info/session.c:3709
+msgid "Search failed."
+msgstr "S鷤ning mislykkedes."
+
+#: info/session.c:3727
+msgid "Repeat last search in the same direction"
+msgstr "Gentag sidste s鷤ning i samme retning"
+
+#: info/session.c:3730 info/session.c:3740
+msgid "No previous search string"
+msgstr "Ingen tidligere s鷤etekst"
+
+#: info/session.c:3737
+msgid "Repeat last search in the reverse direction"
+msgstr "Gentag sidste s鷤ning i modsat retning"
+
+#: info/session.c:3755 info/session.c:3761
+msgid "Search interactively for a string as you type it"
+msgstr "S鷤 interaktivt efter en tekst, mens du skriver den"
+
+#: info/session.c:3855
+msgid "I-search backward: "
+msgstr "I-s鷤ning bagl熡s: "
+
+#: info/session.c:3857
+msgid "I-search: "
+msgstr "I-s鷤ning: "
+
+#: info/session.c:3882
+msgid "Failing "
+msgstr "Fejler "
+
+#: info/session.c:4340
+msgid "Move to the previous cross reference"
+msgstr "G til foreg嶒nde krydsreference"
+
+#: info/session.c:4349
+msgid "Move to the next cross reference"
+msgstr "G til n犘te krydsreference"
+
+#: info/session.c:4359
+msgid "Select reference or menu item appearing on this line"
+msgstr "V熞g reference eller menupunkt, der optr熛er p denne linje"
+
+#: info/session.c:4381
+msgid "Cancel current operation"
+msgstr "Afbryd nuv熳ende aktivitet"
+
+#: info/session.c:4388
+msgid "Quit"
+msgstr "Afslut"
+
+#: info/session.c:4397
+msgid "Move the cursor to a specific line of the window"
+msgstr "Flyt mark鷨 til bestemt linje i vinduet"
+
+#: info/session.c:4429
+msgid "Redraw the display"
+msgstr "Gentegn sk熳men"
+
+#: info/session.c:4466
+msgid "Quit using Info"
+msgstr "Afslut info"
+
+#: info/session.c:4479
+msgid "Run command bound to this key's lowercase variant"
+msgstr "K鷨 kommandoen, der er bundet til denne tasts sm嶙ogstavs-variant"
+
+#: info/session.c:4491
+#, c-format
+msgid "Unknown command (%s)."
+msgstr "Ukendt kommando (%s)."
+
+#: info/session.c:4494
+msgid "\"\" is invalid"
+msgstr "\"\" er ugyldig"
+
+#: info/session.c:4495
+#, c-format
+msgid "\"%s\" is invalid"
+msgstr "\"%s\" er ugyldig"
+
+#: info/session.c:4713
+msgid "Add this digit to the current numeric argument"
+msgstr "Tilf鷮 dette tegn til det nuv熳ende numeriske parameter"
+
+#: info/session.c:4722
+msgid "Start (or multiply by 4) the current numeric argument"
+msgstr "Start (eller gang med 4) det nuv熳ende numeriske parameter"
+
+#: info/session.c:4737
+msgid "Internally used by \\[universal-argument]"
+msgstr "Bruges internt af \\[universal-argument]"
+
+#: info/tilde.c:344
+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緳 \"On\", vises og skjules fodnoter automatisk"
+
+#: info/variables.c:41
+msgid "When \"On\", creating or deleting a window resizes other windows"
+msgstr ""
+"N緳 \"On\", 熡dres st鷨relsen p andre vinduer, n緳 det vindues oprettes "
+"eller fjernes"
+
+#: info/variables.c:45
+msgid "When \"On\", flash the screen instead of ringing the bell"
+msgstr "N緳 \"On\", blinker sk熳men i stedet for at ringe med systemklokken"
+
+#: info/variables.c:49
+msgid "When \"On\", errors cause the bell to ring"
+msgstr "N緳 \"On\", vil fejl aktivere systemklokken"
+
+#: info/variables.c:53
+msgid "When \"On\", Info garbage collects files which had to be uncompressed"
+msgstr ""
+"N緳 \"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緳 \"On\", vil trufne s鷤estrenge 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緳 rulning fors鷤es ved slutning af et emne"
+
+#: info/variables.c:64
+msgid "The number lines to scroll when the cursor moves out of the window"
+msgstr "Antallet af linjer, der rulles, n緳 mark鷨en flytter ud af vinduet"
+
+#: info/variables.c:68
+msgid "When \"On\", Info accepts and displays ISO Latin characters"
+msgstr "N緳 \"On\", vil Info benytte og vise ISO Latin tegn"
+
+#: info/variables.c:74
+msgid "Explain the use of a variable"
+msgstr "Forklar brugen af en variabel"
+
+#: info/variables.c:80
+msgid "Describe variable: "
+msgstr "Beskriv variabel: "
+
+#: info/variables.c:99
+msgid "Set the value of an Info variable"
+msgstr "S犚 v熳dien af en Info-variabel"
+
+#: info/variables.c:105
+msgid "Set variable: "
+msgstr "S犚 variabel: "
+
+#: info/variables.c:123
+#, c-format
+msgid "Set %s to value (%d): "
+msgstr "S犚 %s til v熳dien (%d): "
+
+#: info/variables.c:164
+#, c-format
+msgid "Set %s to value (%s): "
+msgstr "S犚 %s til v熳dien (%s): "
+
+#: info/window.c:1164
+msgid "--*** Tags out of Date ***"
+msgstr "--*** M熳ker (tags) er for熞dede ***"
+
+#: info/window.c:1175
+msgid "-----Info: (), lines ----, "
+msgstr "-----Info: (), linjer ---, "
+
+#: info/window.c:1182
+#, c-format
+msgid "-%s---Info: %s, %d lines --%s--"
+msgstr "-%s---Info: %s, %d linjer -%s--"
+
+#: info/window.c:1186
+#, c-format
+msgid "-%s%s-Info: (%s)%s, %d lines --%s--"
+msgstr "-%s%s-Info: (%s)%s, %d linjer -%s--"
+
+#: info/window.c:1193
+#, c-format
+msgid " Subfile: %s"
+msgstr " Underfil: %s"
+
+#: lib/getopt.c:675
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: tilvalg '%s' er flertydig\n"
+
+#: lib/getopt.c:700
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s: tilvalg '--%s' tillader ikke en parameter\n"
+
+#: lib/getopt.c:705
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr "%s: tilvalg '%c%s' tillader ikke en parameter\n"
+
+#: lib/getopt.c:723 lib/getopt.c:896
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr "%s: tilvalg '%s' kr獒er en parameter\n"
+
+#: lib/getopt.c:752
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: ukendt tilvalg '--%s'\n"
+
+#: lib/getopt.c:756
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: ukendt tilvalg '%c%s'\n"
+
+#: lib/getopt.c:782
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: ugyldigt tilvalg -- %c\n"
+
+#: lib/getopt.c:785
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr "%s: ugyldigt tilvalg -- %c\n"
+
+#: lib/getopt.c:815 lib/getopt.c:945
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr "%s: tilvalg kr獒er en parameter -- %c\n"
+
+#: lib/getopt.c:862
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr "%s: tilvalg '-W %s' er flertydigt\n"
+
+#: lib/getopt.c:880
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr "%s: tilvalg '-W %s' tillader ikke en parameter\n"
+
+#: makeinfo/cmds.c:515
+msgid "January"
+msgstr "januar"
+
+#: makeinfo/cmds.c:515
+msgid "February"
+msgstr "februar"
+
+#: makeinfo/cmds.c:515
+msgid "March"
+msgstr "marts"
+
+#: makeinfo/cmds.c:515
+msgid "April"
+msgstr "april"
+
+#: makeinfo/cmds.c:515
+msgid "May"
+msgstr "maj"
+
+#: makeinfo/cmds.c:516
+msgid "June"
+msgstr "juni"
+
+#: makeinfo/cmds.c:516
+msgid "July"
+msgstr "juli"
+
+#: makeinfo/cmds.c:516
+msgid "August"
+msgstr "august"
+
+#: makeinfo/cmds.c:516
+msgid "September"
+msgstr "september"
+
+#: makeinfo/cmds.c:516
+msgid "October"
+msgstr "oktober"
+
+#: makeinfo/cmds.c:517
+msgid "November"
+msgstr "november"
+
+#: makeinfo/cmds.c:517
+msgid "December"
+msgstr "december"
+
+#: makeinfo/cmds.c:658
+#, c-format
+msgid "unlikely character %c in @var"
+msgstr "usandsynligt tegn %c i @var"
+
+#: makeinfo/cmds.c:701
+msgid "@sc argument all uppercase, thus no effect"
+msgstr "@sc parameter er kun versaler, derfor ingen virkning"
+
+#: makeinfo/cmds.c:759
+#, c-format
+msgid "`{' expected, but saw `%c'"
+msgstr "'{' forventedes, men fandt '%c'"
+
+#: makeinfo/cmds.c:789
+msgid "end of file inside verb block"
+msgstr "filslutning inden i en verb-blok"
+
+#: makeinfo/cmds.c:797
+#, c-format
+msgid "`}' expected, but saw `%c'"
+msgstr "'}' forventedes, men fandt '%c'"
+
+#: makeinfo/cmds.c:942
+#, c-format
+msgid "%c%s is obsolete"
+msgstr "%c%s er for熞det"
+
+#: makeinfo/cmds.c:1014
+#, c-format
+msgid "@sp requires a positive numeric argument, not `%s'"
+msgstr "@sp kr獒er et positivt tal, ikke '%s'"
+
+#: makeinfo/cmds.c:1348 makeinfo/cmds.c:1374 makeinfo/footnote.c:81
+#, c-format
+msgid "Bad argument to %c%s"
+msgstr "Ugyldigt argument til %c%s"
+
+#: makeinfo/cmds.c:1358 makeinfo/makeinfo.c:4140
+msgid "asis"
+msgstr "asis"
+
+#: makeinfo/cmds.c:1360 makeinfo/makeinfo.c:4142
+msgid "none"
+msgstr "none"
+
+#: makeinfo/defun.c:85
+msgid "Missing `}' in @def arg"
+msgstr "Manglende '}' i @def parameter"
+
+#: makeinfo/defun.c:363
+msgid "Function"
+msgstr "Funktion"
+
+#: makeinfo/defun.c:366
+msgid "Macro"
+msgstr "Makro"
+
+#: makeinfo/defun.c:369
+msgid "Special Form"
+msgstr "Specialform"
+
+#: makeinfo/defun.c:373
+msgid "Variable"
+msgstr "Variabel"
+
+#: makeinfo/defun.c:376
+msgid "User Option"
+msgstr "Brugerfunktion"
+
+#: makeinfo/defun.c:380
+msgid "Instance Variable"
+msgstr "Instansvariabel"
+
+#: makeinfo/defun.c:384
+msgid "Method"
+msgstr "Metode"
+
+#: makeinfo/defun.c:466 makeinfo/defun.c:470 makeinfo/defun.c:615
+#: makeinfo/defun.c:631 makeinfo/defun.c:671
+msgid "of"
+msgstr "for"
+
+#: makeinfo/defun.c:474 makeinfo/defun.c:478 makeinfo/defun.c:482
+#: makeinfo/defun.c:624 makeinfo/defun.c:676
+msgid "on"
+msgstr "p"
+
+#: makeinfo/defun.c:717
+#, c-format
+msgid "Must be in `%s' insertion to use `%sx'"
+msgstr "Skal v熳e i '%s' inds犚ning for at bruge '%sx'"
+
+#: makeinfo/files.c:448
+#, c-format
+msgid "%s: getwd: %s, %s\n"
+msgstr "%s: getwd: %s, %s\n"
+
+#: makeinfo/footnote.c:150
+#, c-format
+msgid "`%c%s' needs an argument `{...}', not just `%s'"
+msgstr "'%c%s' kr獒er en parameter i '{...}', ikke blot '%s'"
+
+#: makeinfo/footnote.c:165
+#, c-format
+msgid "No closing brace for footnote `%s'"
+msgstr "Ingen slutparentes for fodnote '%s'"
+
+#: makeinfo/footnote.c:198
+msgid "Footnote defined without parent node"
+msgstr "Fodnote defineret uden for熞dre-emne"
+
+#: makeinfo/footnote.c:210
+msgid "Footnotes inside footnotes are not allowed"
+msgstr "Fodnoter indeni fodnoter er ikke tilladt"
+
+#: makeinfo/footnote.c:298
+msgid "Footnotes"
+msgstr "Fodnoter"
+
+#: makeinfo/html.c:42
+msgid "Untitled"
+msgstr "Uden titel"
+
+#: makeinfo/html.c:298
+#, c-format
+msgid "Invalid node name: `%s'"
+msgstr "Ugyldigt emnenavn: '%s'"
+
+#: makeinfo/index.c:213
+#, c-format
+msgid "Unknown index `%s'"
+msgstr "Ukendt indeks '%s'"
+
+#: makeinfo/index.c:238
+#, c-format
+msgid "Info cannot handle `:' in index entry `%s'"
+msgstr "Info kan ikke h幩dtere ':' i indeksindgangen '%s'"
+
+#: makeinfo/index.c:396
+#, c-format
+msgid "Index `%s' already exists"
+msgstr "Indeks '%s' eksisterer allerede"
+
+#: makeinfo/index.c:439
+#, c-format
+msgid "Unknown index `%s' and/or `%s' in @synindex"
+msgstr "Ukendt indeks '%s' og/eller '%s' i @synindex"
+
+#: makeinfo/index.c:666
+#, c-format
+msgid "Unknown index `%s' in @printindex"
+msgstr "Ukendt indeks '%s' i @printindex"
+
+#: makeinfo/index.c:709
+#, c-format
+msgid "Entry for index `%s' outside of any node"
+msgstr "Indgang til indeks '%s' udenfor et emne"
+
+#: makeinfo/index.c:712 makeinfo/index.c:751
+msgid "(outside of any node)"
+msgstr "(udenfor et emne)"
+
+#: makeinfo/insertion.c:198
+msgid "Broken-Type in insertion_type_pname"
+msgstr "Broken-Type i insertion_type_pname"
+
+#: makeinfo/insertion.c:271
+msgid "Enumeration stack overflow"
+msgstr "Overl鷷 i opt熞lingsstak (enumeration stack)"
+
+#: makeinfo/insertion.c:303
+#, c-format
+msgid "lettering overflow, restarting at %c"
+msgstr "bogstavsoverl鷷, genstarter ved %c"
+
+#: makeinfo/insertion.c:538
+#, c-format
+msgid "%s requires an argument: the formatter for %citem"
+msgstr "%s kr獒er en parameter: formatteringen for %citem"
+
+#: makeinfo/insertion.c:693
+#, c-format
+msgid "`@end' expected `%s', but saw `%s'"
+msgstr "'@end' forventede '%s', men fandt '%s'"
+
+#: makeinfo/insertion.c:931
+#, c-format
+msgid "No matching `%cend %s'"
+msgstr "Mangler en tilsvarende '%cend %s'"
+
+#: makeinfo/insertion.c:1084
+#, c-format
+msgid "%s requires letter or digit"
+msgstr "%s kr獒er et bogstav eller ciffer"
+
+#: makeinfo/insertion.c:1158
+msgid "end of file inside verbatim block"
+msgstr "filslutning indeni en verbatim-blok"
+
+#: makeinfo/insertion.c:1318
+msgid "@menu seen before first @node, creating `Top' node"
+msgstr "@menu fundet f鷨 f鷨ste @node, opretter 'Top' emne"
+
+#: makeinfo/insertion.c:1319
+msgid ""
+"perhaps your @top node should be wrapped in @ifnottex rather than @ifinfo?"
+msgstr "m廛ke skulle dit @top emne inds犚tes i @ifnottex i stedet for @ifinfo?"
+
+#: makeinfo/insertion.c:1331
+msgid "@detailmenu seen before first node, creating `Top' node"
+msgstr "@detailmenu fundet f鷨 f鷨ste emne, opretter emnet 'Top'"
+
+#: makeinfo/insertion.c:1346
+#, c-format
+msgid "Unmatched `%c%s'"
+msgstr "Uparret '%c%s'"
+
+#: makeinfo/insertion.c:1353
+#, c-format
+msgid "`%c%s' needs something after it"
+msgstr "'%c%s' kr獒er noget efterf鷲gende"
+
+#: makeinfo/insertion.c:1359
+#, c-format
+msgid "Bad argument to `%s', `%s', using `%s'"
+msgstr "Ugyldigt parameter '%s', '%s', benytter '%s'"
+
+#: makeinfo/insertion.c:1453
+#, c-format
+msgid "@%s not meaningful inside `@%s' block"
+msgstr "@%s giver ingen mening i en '@%s'-blok"
+
+#: makeinfo/insertion.c:1462
+#, c-format
+msgid "@itemx not meaningful inside `%s' block"
+msgstr "@itemx giver ingen mening i en '%s'-blok"
+
+#: makeinfo/insertion.c:1646
+#, c-format
+msgid "%c%s found outside of an insertion block"
+msgstr "%c%s fundet udenfor en inds犚ningsblok"
+
+#: makeinfo/lang.c:331
+#, c-format
+msgid "%s is not a valid ISO 639 language code"
+msgstr "%s er ikke en gyldig ISO 639 sprogkode"
+
+#: makeinfo/lang.c:384
+#, c-format
+msgid "unrecogized encoding name `%s'"
+msgstr "ukendt indkodningsnavn '%s'"
+
+#: makeinfo/lang.c:387
+#, c-format
+msgid "sorry, encoding `%s' not supported"
+msgstr "beklager, indkodningen '%s' underst黂tes ikke"
+
+#: makeinfo/lang.c:414
+#, c-format
+msgid "invalid encoded character `%s'"
+msgstr "ugyldig indkodet tegn '%s'"
+
+#: makeinfo/lang.c:502
+#, c-format
+msgid "%s is an invalid ISO code, using %c"
+msgstr "%s er en ugyldig ISO-kode, bruger %c"
+
+#: makeinfo/lang.c:687
+#, c-format
+msgid "%c%s expects `i' or `j' as argument, not `%c'"
+msgstr "%c%s kr獒er 'i' eller 'j' som parameter, ikke '%c'"
+
+#: makeinfo/lang.c:691
+#, c-format
+msgid "%c%s expects a single character `i' or `j' as argument"
+msgstr "%c%s kr獒er et enkelt tegn 'i' eller 'j' som parameter"
+
+#: makeinfo/macro.c:134
+#, c-format
+msgid "macro `%s' previously defined"
+msgstr "makro '%s' er allerede defineret"
+
+#: makeinfo/macro.c:138
+#, c-format
+msgid "here is the previous definition of `%s'"
+msgstr "her er den forrige definition af '%s'"
+
+#: makeinfo/macro.c:355
+#, c-format
+msgid "\\ in macro expansion followed by `%s' instead of \\ or parameter name"
+msgstr "\\ i makroudfoldelse fulgt af '%s' i stedet for \\ eller parameternavn"
+
+#: makeinfo/macro.c:403
+#, 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:594
+#, c-format
+msgid "%cend macro not found"
+msgstr "%cend makro ikke fundet"
+
+#: makeinfo/macro.c:632
+msgid "@quote-arg only useful for single-argument macros"
+msgstr "@quote-arg kan kun bruges til makroer med et enkelt parameter"
+
+#: makeinfo/macro.c:668
+#, c-format
+msgid "mismatched @end %s with @%s"
+msgstr "uparret @end %s med @%s"
+
+#: makeinfo/makeinfo.c:316
+#, c-format
+msgid "%s:%d: warning: "
+msgstr "%s:%d: advarsel: "
+
+#: makeinfo/makeinfo.c:339
+msgid "Too many errors! Gave up.\n"
+msgstr "For mange fejl! Gav op.\n"
+
+#: makeinfo/makeinfo.c:350 makeinfo/makeinfo.c:2026
+#, c-format
+msgid "Misplaced %c"
+msgstr "Fejlplaceret %c"
+
+#: makeinfo/makeinfo.c:370
+#, c-format
+msgid "Try `%s --help' for more information.\n"
+msgstr "Pr黲 '%s --help' for mere information.\n"
+
+#: makeinfo/makeinfo.c:373
+#, c-format
+msgid "Usage: %s [OPTION]... TEXINFO-FILE...\n"
+msgstr "Brug: %s [TILVALG]... TEXINFO-FIL...\n"
+
+#: makeinfo/makeinfo.c:376
+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犚 Texinfo kildedokumentation til flere andre formater, som standard "
+"til\n"
+"Info-filer, der er lavet til at blive l犘t p sk熳men med Emacs eller GNU "
+"Info.\n"
+
+#: makeinfo/makeinfo.c:380
+#, c-format
+msgid ""
+"General options:\n"
+" --error-limit=NUM quit after NUM errors (default %d).\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"
+" --reference-limit=NUM warn about at most NUM references (default %"
+"d).\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緳 fejl.\n"
+" --help vis denne hj熞p og afslut.\n"
+" --no-validate undertryk validering af emne-krydsreferencer.\n"
+" --no-warn undertryk advarsler (men ikke fejl).\n"
+" --reference-limit=ANTAL advar h鷮st om ANTAL referencer (standard %"
+"d).\n"
+" -v, --verbose forklar, hvad der sker.\n"
+" --version vis versionsoplysninger og afslut.\n"
+
+#: makeinfo/makeinfo.c:394
+#, no-wrap
+msgid ""
+"Output format selection (default is to produce Info):\n"
+" --docbook output DocBook rather than Info.\n"
+" --html output HTML rather than Info.\n"
+" --xml output XML (TexinfoML) rather than Info.\n"
+msgstr ""
+"Valg af format p uddata (ellers laves Info):\n"
+" --docbook lav DocBook i stedet for Info.\n"
+" --html lav HTML i stedet for Info.\n"
+" --xml lav XML (TexinfoML) i stedet for Info.\n"
+
+#: makeinfo/makeinfo.c:401
+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 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 (directory if split HTML),\n"
+msgstr ""
+"Generelle uddatatilvalg:\n"
+" -E, --macro-expand FIL send makroekspanderet kildetekst til FIL.\n"
+" ignor廨 eventuelle @setfilename.\n"
+" --no-headers undertryk emneadskillere, Node:衍injer 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 幯 uddatafil.\n"
+" --number-sections lav afsnits- og sektionsnumre.\n"
+" -o, --output=FILE send til FIL (katalog i tilf熞det opdelt HTML),\n"
+
+#: makeinfo/makeinfo.c:415
+#, c-format
+msgid ""
+"Options for Info and plain text:\n"
+" --enable-encoding output accented and special characters in\n"
+" Info output based on @documentencoding.\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\n"
+" in which they are defined (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廨 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鷨relsen ANTAL "
+"(standard %d).\n"
+
+#: makeinfo/makeinfo.c:433
+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廨 variablen VAR som med @set.\n"
+" -I KATALOG tilf鷮 KATALOG til @include-s鷤estien.\n"
+" -P KATALOG inds犚 KATALOG forrest i @include-"
+"s鷤estien.\n"
+" -U VAR afdefin廨 variablen VAR som med @clear.\n"
+
+#: makeinfo/makeinfo.c:442
+#, fuzzy
+msgid ""
+"Conditional processing in input:\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"
+" --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"
+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"
+" --iftex behandl @iftex og @tex-tekster; underforst緳 --no-split.\n"
+" --no-ifhtml behandl ikke @ifhtml og @html-tekst.\n"
+" --no-ifinfo behandl ikke @ifinfo-tekst.\n"
+" --no-iftex behandl ikke @iftex og @tex-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"
+msgstr ""
+" Standarden for @if... betingelser afh熡ger af uddataformatet:\n"
+" hvis der laves HTML, er --ifhtml aktiveret, mens de andre er "
+"deaktiverede;\n"
+" hvis der laves Info eller ren tekst, er --ifinfo aktiveret og de andre er "
+"deaktiverede.\n"
+
+#: makeinfo/makeinfo.c:461
+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 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 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 幯 Info-fil, uanset st鷨relsen\n"
+
+#: makeinfo/makeinfo.c:570 makeinfo/makeinfo.c:593 makeinfo/makeinfo.c:655
+#: makeinfo/makeinfo.c:676
+#, c-format
+msgid "%s: %s arg must be numeric, not `%s'.\n"
+msgstr "%s: %s parameter skal v熳e et tal, ikke '%s'.\n"
+
+#: makeinfo/makeinfo.c:583
+#, c-format
+msgid "Couldn't open macro expansion output `%s'"
+msgstr "Kunne ikke 嶙ne makroudfoldelses-uddata '%s'"
+
+#: makeinfo/makeinfo.c:586
+msgid "Cannot specify more than one macro expansion output"
+msgstr "Kan ikke angive mere end 幯 makroudfoldelses-uddata"
+
+#: makeinfo/makeinfo.c:624
+#, c-format
+msgid "%s: --paragraph-indent arg must be numeric/`none'/`asis', not `%s'.\n"
+msgstr ""
+"%s: --paragraph-indent parameter skal v熳e tal/'none'/'asis', ikke '%s'.\n"
+
+#: makeinfo/makeinfo.c:665
+#, c-format
+msgid "%s: --footnote-style arg must be `separate' or `end', not `%s'.\n"
+msgstr ""
+"%s: --footnote-style parameter skal v熳e 'separate' eller 'end', ikke '%s'.\n"
+
+#: makeinfo/makeinfo.c:723
+#, c-format
+msgid "%s: missing file argument.\n"
+msgstr "%s: mangler filparameter.\n"
+
+#: makeinfo/makeinfo.c:898
+#, c-format
+msgid "Expected `%s'"
+msgstr "Forventede '%s'"
+
+#: makeinfo/makeinfo.c:1365
+msgid "File exists, but is not a directory"
+msgstr "Filen eksisterer, men er ikke et katalog"
+
+#: makeinfo/makeinfo.c:1366
+#, c-format
+msgid "Can't create directory `%s': %s"
+msgstr "Kan ikke oprette kataloget '%s': %s"
+
+#: makeinfo/makeinfo.c:1414
+#, c-format
+msgid "No `%s' found in `%s'"
+msgstr "Ingen '%s' fundet i '%s'"
+
+#: makeinfo/makeinfo.c:1496
+#, 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:1526
+#, c-format
+msgid "Making %s file `%s' from `%s'.\n"
+msgstr "Producerer %s file '%s' ud fra '%s'.\n"
+
+#: makeinfo/makeinfo.c:1561
+#, c-format
+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"
+
+#: makeinfo/makeinfo.c:1583
+#, 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:1627
+#, 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:1853
+#, c-format
+msgid "Unknown command `%s'"
+msgstr "Ukendt kommando '%s'"
+
+#: makeinfo/makeinfo.c:1875
+#, 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:2068
+#, c-format
+msgid "%c%s expected `{...}'"
+msgstr "%c%s forventede '{...}'"
+
+#: makeinfo/makeinfo.c:2098
+msgid "Unmatched }"
+msgstr "Uparret }"
+
+#: makeinfo/makeinfo.c:2148
+msgid "NO_NAME!"
+msgstr "INTET_NAVN!"
+
+#: makeinfo/makeinfo.c:2169
+#, c-format
+msgid "%c%s missing close brace"
+msgstr "%c%s mangler h鷮re parentes"
+
+#: makeinfo/makeinfo.c:2958
+msgid "First argument to cross-reference may not be empty"
+msgstr "F鷨ste parameter i krydsreferencen m ikke v熳e tom"
+
+#: makeinfo/makeinfo.c:3018 makeinfo/makeinfo.c:3236 makeinfo/xml.c:1340
+msgid "see "
+msgstr "se "
+
+#: makeinfo/makeinfo.c:3018
+msgid "See "
+msgstr "Se "
+
+#: makeinfo/makeinfo.c:3164
+#, c-format
+msgid "`.' or `,' must follow cross reference, not %c"
+msgstr "en krydsreference m efterf鷲ges af '.' eller ',', ikke %c"
+
+#: makeinfo/makeinfo.c:3212
+msgid "First argument to @inforef may not be empty"
+msgstr "F鷨ste parameter i @inforef m ikke v熳e tom"
+
+#: makeinfo/makeinfo.c:3427
+#, c-format
+msgid "@image file `%s' (for HTML) not readable: %s"
+msgstr "@image-fil '%s' (for HTML) er ul犘elig: %s"
+
+#: makeinfo/makeinfo.c:3440
+#, c-format
+msgid "No `%s.png' or `.jpg', and no extension supplied"
+msgstr "Ingen `%s.png' eller `.jpg', og ingen filendelse angivet"
+
+#: makeinfo/makeinfo.c:3490
+#, c-format
+msgid "@image file `%s' (for text) unreadable: %s"
+msgstr "@image-fil '%s' (for tekst) er ul犘elig: %s"
+
+#: makeinfo/makeinfo.c:3497
+msgid "@image missing filename argument"
+msgstr "@image mangler filnavnsparameter"
+
+#: makeinfo/makeinfo.c:3690
+#, c-format
+msgid "{No value for `%s'}"
+msgstr "{Ingen v熳di for '%s'}"
+
+#: makeinfo/makeinfo.c:3744
+#, c-format
+msgid "%c%s requires a name"
+msgstr "%c%s kr獒er et navn"
+
+#: makeinfo/makeinfo.c:3850
+#, c-format
+msgid "Reached eof before matching @end %s"
+msgstr "N嶒de filslutning f鷨 samh鷨ende @end %s"
+
+#: makeinfo/makeinfo.c:4081
+#, c-format
+msgid "`%.40s...' is too long for expansion; not expanded"
+msgstr "`%.40s...' er for langt til ekspansion; blev ikke ekspanderet"
+
+#: makeinfo/multi.c:226
+msgid "Missing } in @multitable template"
+msgstr "Manglende } i @multitable skabelon"
+
+#: makeinfo/multi.c:302
+#, c-format
+msgid "ignoring stray text `%s' after @multitable"
+msgstr "ignorerer vildfaren tekst '%s' efter @multitable"
+
+#: makeinfo/multi.c:375
+#, c-format
+msgid "Too many columns in multitable item (max %d)"
+msgstr "For mange s鷮ler i 'multitable' element (maks %d)"
+
+#: makeinfo/multi.c:426
+#, c-format
+msgid "Cannot select column #%d in multitable"
+msgstr "Kan ikke v熞ge kolonne %d i 'multitable'"
+
+#: makeinfo/multi.c:529
+msgid "ignoring @tab outside of multitable"
+msgstr "ignorerer @tab udenfor 'multitable'"
+
+#: makeinfo/multi.c:565
+msgid "** Multicolumn output from last row:\n"
+msgstr "** Flerkolonne uddata fra sidste r熥ke:\n"
+
+#: makeinfo/multi.c:568
+#, c-format
+msgid "* column #%d: output = %s\n"
+msgstr "* kolonne %d: uddata = %s\n"
+
+#: makeinfo/node.c:276
+#, c-format
+msgid "Node `%s' previously defined at line %d"
+msgstr "Emne '%s' er tidligere defineret p linje %d"
+
+#: makeinfo/node.c:594
+#, c-format
+msgid "Formatting node %s...\n"
+msgstr "Formatterer emne %s...\n"
+
+#: makeinfo/node.c:655
+#, c-format
+msgid "Node `%s' requires a sectioning command (e.g. %c%s)"
+msgstr "Emne '%s' kr獒er en sektionsopdelende kommando (f.eks. %c%s)"
+
+#: makeinfo/node.c:815
+#, c-format
+msgid "No node name specified for `%c%s' command"
+msgstr "Intet emnenavn angivet for '%c%s'-kommandoen"
+
+#: makeinfo/node.c:856 makeinfo/node.c:1075
+#, c-format
+msgid "Anchor `%s' and node `%s' map to the same file name"
+msgstr "M嶚 '%s' og emne '%s' ender med at have samme filnavn"
+
+#: makeinfo/node.c:859
+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:861 makeinfo/node.c:1078
+msgid "Rename this anchor or use the `--no-split' option"
+msgstr "Omd鷷 dette m嶚 eller brug tilvalget '--no-split'"
+
+#: makeinfo/node.c:891
+#, 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:920
+msgid "Node:"
+msgstr "Emne:"
+
+#: makeinfo/node.c:930
+msgid "Next:"
+msgstr "N犘te:"
+
+#: makeinfo/node.c:940
+msgid "Previous:"
+msgstr "Forrige:"
+
+#: makeinfo/node.c:950
+msgid "Up:"
+msgstr "Op:"
+
+#: makeinfo/node.c:1072
+#, c-format
+msgid "Anchors `%s' and `%s' map to the same file name"
+msgstr "M嶚ene '%s' og '%s' ender med at have samme filnavn"
+
+#: makeinfo/node.c:1077
+msgid "@anchor command ignored; references to it will not work"
+msgstr "@anchor-kommandoen ignoreres. Referencer til den vil ikke fungere"
+
+#: makeinfo/node.c:1277
+#, c-format
+msgid "%s reference to nonexistent node `%s'"
+msgstr "%s reference til ikke-eksisterende emne '%s'"
+
+#: makeinfo/node.c:1294
+msgid "Menu"
+msgstr "Menu"
+
+#: makeinfo/node.c:1296
+msgid "Cross"
+msgstr "Kryds"
+
+#: makeinfo/node.c:1380
+#, c-format
+msgid "Next field of node `%s' not pointed to"
+msgstr "'N犘te'-felt i emne '%s' blive ikke peget p"
+
+#: makeinfo/node.c:1383
+#, c-format
+msgid "This node (%s) has the bad Prev"
+msgstr "Dette emne (%s) har den ugyldige 'Forrige'"
+
+#: makeinfo/node.c:1395
+msgid "Prev"
+msgstr "Forrige"
+
+#: makeinfo/node.c:1438
+#, c-format
+msgid "Prev field of node `%s' not pointed to"
+msgstr "Feltet 'Forrige' i emne '%s' bliver ikke peget p"
+
+#: makeinfo/node.c:1442
+#, c-format
+msgid "This node (%s) has the bad Next"
+msgstr "Dette emne (%s) har den ugyldige 'N犘te'-felt"
+
+#: makeinfo/node.c:1454
+#, c-format
+msgid "`%s' has no Up field"
+msgstr "'%s' har intet 'Op'-felt"
+
+#: makeinfo/node.c:1457
+msgid "Up"
+msgstr "Op"
+
+#: makeinfo/node.c:1523
+#, 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嶚"
+
+#: makeinfo/node.c:1552
+#, c-format
+msgid "node `%s' has been referenced %d times"
+msgstr "emne '%s' blev refereret %d gange"
+
+#: makeinfo/node.c:1566
+#, c-format
+msgid "unreferenced node `%s'"
+msgstr "ikke-refereret emne '%s'"
+
+#: makeinfo/sectioning.c:117
+#, c-format
+msgid "Appendix %c "
+msgstr "Appendiks %c "
+
+#: makeinfo/sectioning.c:356 makeinfo/sectioning.c:444
+#, c-format
+msgid "Internal error (search_sectioning) \"%s\"!"
+msgstr "Intern fejl (search_sectioning) \"%s\"!"
+
+#: makeinfo/sectioning.c:502
+#, c-format
+msgid "%c%s is obsolete; use %c%s instead"
+msgstr "%c%s er for熞det; benyt i stedet %c%s"
+
+#: makeinfo/sectioning.c:518
+#, c-format
+msgid "Node with %ctop as a section already exists"
+msgstr "Emne med %ctop som sektion eksisterer allerede"
+
+#: makeinfo/sectioning.c:526
+#, c-format
+msgid "Here is the %ctop node"
+msgstr "Her er %ctop-emnet"
+
+#: makeinfo/sectioning.c:543
+#, c-format
+msgid "%ctop used before %cnode, defaulting to %s"
+msgstr "%ctop benyttet f鷨 %cnode, benytter forvalget %s"
+
+#: makeinfo/toc.c:221 makeinfo/toc.c:298 makeinfo/toc.c:299
+msgid "Table of Contents"
+msgstr "Indhold"
+
+#: makeinfo/toc.c:330 makeinfo/toc.c:366 makeinfo/toc.c:367
+msgid "Short Contents"
+msgstr "Kort indhold"
+
+#: makeinfo/toc.c:406
+#, c-format
+msgid "%s: TOC should be here, but it was not found"
+msgstr "%s: 'Indhold' burde v熳e her, men blev ikke fundet"
+
+#: makeinfo/xml.c:1108
+#, c-format
+msgid "@image file `%s' unreadable: %s"
+msgstr "@image-fil '%s' er ul犘elig: %s"
+
+#: util/install-info.c:151
+#, c-format
+msgid "%s: warning: "
+msgstr "%s: advarsel: "
+
+#: util/install-info.c:176 util/install-info.c:189
+msgid "virtual memory exhausted"
+msgstr "virtuel hukommelse opbrugt"
+
+#: util/install-info.c:232
+#, c-format
+msgid " for %s"
+msgstr " for %s"
+
+#: util/install-info.c:381
+#, c-format
+msgid "\tTry `%s --help' for a complete list of options.\n"
+msgstr "\tPr黲 '%s --help' for en komplet tilvalgsliste.\n"
+
+#: util/install-info.c:389
+#, c-format
+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 ""
+"Brug: %s [TILVALG]... [INFOFIL [KATALOGFIL]]\n"
+"\n"
+"Install廨 eller slet katalogindgange fra INFOFIL i Info katalogfilen\n"
+"KATALOGFIL.\n"
+"\n"
+"Tilvalg:\n"
+" --delete slet eksisterende indgange til INFOFIL fra KATALOGFIL;\n"
+" tilf鷮 ikke nye indgange.\n"
+" --dir-file=NAVN angiv navn p Info katalogfil.\n"
+" Dette svarer til at bruge KATALOGFIL parameteren.\n"
+" --entry=TEKST tilf鷮 TEKST som en Info katalogindgang.\n"
+" TEKST skal v熳e 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鷮es de alle.\n"
+" Hvis du ingen indgange angiver, bestemmes de ud fra\n"
+" informationerne i selve Info-filen.\n"
+" --help vis denne hj熞p og afslut.\n"
+" --info-file=FIL angiv Info-fil, der skal inds犚tes 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鷮es 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"
+
+#: util/install-info.c:444
+#, 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"
+"* Menu:\n"
+msgstr ""
+"Dette er filen .../info/dir, som indeholde det 黲erste\n"
+"emne i Info-hierakiet, kaldet (katalog)Top.\n"
+"F鷨ste gang, du k鷨er Info, vil du indledningsvist se dette emne.\n"
+"\n"
+"%s\tDette er toppen af INFO-tr熰t\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鷤er Emacs-manualen, osv.\n"
+"\n"
+" I Emacs kan du klikke med museknap 2 p et menupunkt eller krydsreference\n"
+" for at v熞ge den.\n"
+"\n"
+"* Menu:\n"
+
+#: util/install-info.c:467
+#, c-format
+msgid "%s: could not read (%s) and could not create (%s)\n"
+msgstr "%s: kunne ikke l犘e (%s) og kunne ikke oprette (%s)\n"
+
+#: util/install-info.c:551
+#, c-format
+msgid "%s: empty file"
+msgstr "%s: tom fil"
+
+#: util/install-info.c:866 util/install-info.c:906
+msgid "START-INFO-DIR-ENTRY without matching END-INFO-DIR-ENTRY"
+msgstr "START-INFO-DIR-ENTRY uden tilh鷨ende END-INFO-DIR-ENTRY"
+
+#: util/install-info.c:901
+msgid "END-INFO-DIR-ENTRY without matching START-INFO-DIR-ENTRY"
+msgstr "END-INFO-DIR-ENTRY uden tilh鷨ende START-INFO-DIR-ENTRY"
+
+#: util/install-info.c:1150 util/install-info.c:1160
+#, c-format
+msgid "%s: Specify the Info directory only once.\n"
+msgstr "%s: Angiv kun Info-kataloget 幯 gang.\n"
+
+#: util/install-info.c:1195
+#, c-format
+msgid "%s: Specify the Info file only once.\n"
+msgstr "%s: Angiv kun Info-filen 幯 gang.\n"
+
+#: util/install-info.c:1244
+#, c-format
+msgid "excess command line argument `%s'"
+msgstr "overskydende kommandolinjeparameter '%s'"
+
+#: util/install-info.c:1248
+msgid "No input file specified; try --help for more information."
+msgstr "Ingen inddatafil angivet; pr黲 --help for mere information."
+
+#: util/install-info.c:1251
+msgid "No dir file specified; try --help for more information."
+msgstr "Intet katalog angivet; pr黲 --help for mere information."
+
+#: util/install-info.c:1273
+#, c-format
+msgid "no info dir entry in `%s'"
+msgstr "ingen infokatalog-indgang i '%s'"
+
+#: util/install-info.c:1388
+#, c-format
+msgid "menu item `%s' already exists, for file `%s'"
+msgstr "menupunkt '%s' eksisterer allerede i filen '%s'"
+
+#: util/install-info.c:1411
+#, c-format
+msgid "no entries found for `%s'; nothing deleted"
+msgstr "ingen indgange fundet for '%s'; intet slettet"
+
+#: util/texindex.c:245
+msgid "display this help and exit"
+msgstr "viser denne hj熞p og afslutter"
+
+#: util/texindex.c:247
+msgid "keep temporary files around after processing"
+msgstr "efterlad midlertidige filer"
+
+#: util/texindex.c:249
+msgid "do not keep temporary files around after processing (default)"
+msgstr "efterlad ikke midlertidige filer (standard)"
+
+#: util/texindex.c:251
+msgid "send output to FILE"
+msgstr "send uddata til FIL"
+
+#: util/texindex.c:253
+msgid "display version information and exit"
+msgstr "vis versions-information og afslut"
+
+#: util/texindex.c:264
+#, c-format
+msgid "Usage: %s [OPTION]... FILE...\n"
+msgstr "Brug: %s [TILVALG]... FIL...\n"
+
+#: util/texindex.c:265
+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:268
+#, 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:270
+msgid ""
+"\n"
+"Options:\n"
+msgstr ""
+"\n"
+"Tilvalg:\n"
+
+#: util/texindex.c:887 util/texindex.c:921 util/texindex.c:997
+#: util/texindex.c:1025
+#, c-format
+msgid "%s: not a texinfo index file"
+msgstr "%s: ikke en texinfo indeksfil"
+
+#: util/texindex.c:982
+#, c-format
+msgid "failure reopening %s"
+msgstr "kunne ikke 嶙ne %s"
+
+#: util/texindex.c:1224
+#, c-format
+msgid "No page number in %s"
+msgstr "Intet sidenummer i %s"
+
+#: util/texindex.c:1295
+#, c-format
+msgid "entry %s follows an entry with a secondary name"
+msgstr "indgang %s f鷲ger en indgang med et sekund熳t navn"
+
+#: util/texindex.c:1633
+#, c-format
+msgid "%s; for file `%s'.\n"
+msgstr "%s; for filen '%s'.\n"
diff --git a/gnu/usr.bin/texinfo/po/en@boldquot.header b/gnu/usr.bin/texinfo/po/en@boldquot.header
new file mode 100644
index 00000000000..fedb6a06d12
--- /dev/null
+++ b/gnu/usr.bin/texinfo/po/en@boldquot.header
@@ -0,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 --git a/gnu/usr.bin/texinfo/po/en@quot.header b/gnu/usr.bin/texinfo/po/en@quot.header
new file mode 100644
index 00000000000..a9647fc35c3
--- /dev/null
+++ b/gnu/usr.bin/texinfo/po/en@quot.header
@@ -0,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.
+#
diff --git a/gnu/usr.bin/texinfo/po/he.gmo b/gnu/usr.bin/texinfo/po/he.gmo
new file mode 100644
index 00000000000..0e5b97b15d1
--- /dev/null
+++ b/gnu/usr.bin/texinfo/po/he.gmo
Binary files differ
diff --git a/gnu/usr.bin/texinfo/po/he.po b/gnu/usr.bin/texinfo/po/he.po
new file mode 100644
index 00000000000..fc96b2a7b5b
--- /dev/null
+++ b/gnu/usr.bin/texinfo/po/he.po
@@ -0,0 +1,2889 @@
+# 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.1c\n"
+"POT-Creation-Date: 2002-04-01 06:10-0800\n"
+"PO-Revision-Date: 2002-03-24 18:31+0200\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"
+
+#: info/echo-area.c:283 info/session.c:712
+msgid "Move forward a character"
+msgstr "儋殫 蜭 漦 瀁 緧"
+
+#: info/echo-area.c:295 info/session.c:728
+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:746
+msgid "Move forward a word"
+msgstr "儋殫 諘 僶濎 瀁 緧"
+
+#: info/echo-area.c:360 info/session.c:795
+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:497
+msgid "Insert a TAB character"
+msgstr "TAB 鵨槼"
+
+#: info/echo-area.c:504
+msgid "Transpose characters at point"
+msgstr "瀁鼥 蜒檛 臄漦 潞 檛 鸁 僽"
+
+#: info/echo-area.c:555
+msgid "Yank back the contents of the last kill"
+msgstr "僽氂諘 噂氃 檛 瀇漦 鷽諙"
+
+#: info/echo-area.c:562
+msgid "Kill ring is empty"
+msgstr "噂澮 毿氃鍱 鼞瘔 蠌"
+
+#: info/echo-area.c:575
+msgid "Yank back a previous kill"
+msgstr "鍏毿 噂氃 瀇漦 鷽諙"
+
+#: info/echo-area.c:608
+msgid "Kill to the end of the line"
+msgstr "噌潁 鵴 蜚 玂"
+
+#: info/echo-area.c:621
+msgid "Kill to the beginning of the line"
+msgstr "噌潁 擩踖 蜚 玂"
+
+#: info/echo-area.c:633
+msgid "Kill the word following the cursor"
+msgstr "瀁鼥 澮諘 僶濎 玂"
+
+#: info/echo-area.c:652
+msgid "Kill the word preceding the cursor"
+msgstr "瀁鼥 潞鐔 僶濎 玂"
+
+#: info/echo-area.c:872 info/echo-area.c:932
+msgid "No completions"
+msgstr "儋檛 鶆 毉"
+
+#: info/echo-area.c:874
+msgid "Not complete"
+msgstr "臅 鳭"
+
+#: info/echo-area.c:919
+msgid "List possible completions"
+msgstr "樥矙邍 槴檛 碢"
+
+#: info/echo-area.c:936
+msgid "Sole completion"
+msgstr "鳲氃 儋檛"
+
+#: info/echo-area.c:945
+msgid "One completion:\n"
+msgstr " :諘 儋檛踊n"
+
+#: info/echo-area.c:946
+#, c-format
+msgid "%d completions:\n"
+msgstr " :槴檛 %d\n"
+
+#: info/echo-area.c:1092
+msgid "Insert completion"
+msgstr "儋檛 鵨槼"
+
+#: info/echo-area.c:1225
+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:175
+msgid "Look up a string in the index for this file"
+msgstr "僿 礭毿 檛 壝蜸歖 緪鸄 鐋"
+
+#: info/indices.c:205
+msgid "Finding index entries..."
+msgstr "...臄壝蜸歖 擫 蠲殥"
+
+#: info/indices.c:212
+msgid "No indices found."
+msgstr ".壝蜸歖 鶆 僪闉 鳭"
+
+#: info/indices.c:222
+msgid "Index entry: "
+msgstr "Index entry: "
+
+#: info/indices.c:332
+msgid ""
+"Go to the next matching index item from the last `\\[index-search]' command"
+msgstr "僽氂諘 `\\[index-search]' 蜲蘱 緪鸄 縺漦 鵨歑 壝蜸歖 鴇欚 鐋"
+
+#: info/indices.c:342
+msgid "No previous index search string."
+msgstr ".壝蜸歖 殦氃 鍏毿 緪鸄 毉"
+
+#: info/indices.c:349
+msgid "No index entries."
+msgstr ".壝蜸歖 氆澮 樈犩 鳭"
+
+#: info/indices.c:382
+#, c-format
+msgid "No %sindex entries containing \"%s\"."
+msgstr ".\"%s\" 緪鸄 臄擩鋋 壝蜸歖 氆澮%s 毉"
+
+#: info/indices.c:383
+msgid "more "
+msgstr " 礹樥"
+
+#: info/indices.c:393
+msgid "CAN'T SEE THIS"
+msgstr "!樈鼞僶 膦爦 歑歖 黓玁"
+
+#: info/indices.c:429
+#, c-format
+msgid "Found \"%s\" in %s. (`\\[next-index-match]' tries to find next.)"
+msgstr "(.蜲 馲犩 儊謮 `\\[next-index-match]') .\"%s\" 鴇欚 %s- 澬僪"
+
+#: info/indices.c:549
+#, c-format
+msgid "Scanning indices of \"%s\"..."
+msgstr "...\"%s\" 檛 臄壝蜸歖 擫 蠲殥"
+
+#: info/indices.c:603
+#, c-format
+msgid "No available info files have \"%s\" in their indices."
+msgstr ".樦 壝蜸歖 \"%s\" 擩鋋 櫡 臄蹜槴儋 Info 礭毿 鶆"
+
+#: info/indices.c:632
+msgid "Grovel all known info file's indices for a string and build a menu"
+msgstr ""
+"僪霘 儋 鴇欚 僽摎 緪鸄 罽 鐋 ,臄蠈蜒 Info 瀄暠 檛 臄壝蜸歖 擫 鳷"
+
+#: info/indices.c:636
+msgid "Index apropos: "
+msgstr "Index apropos: "
+
+#: info/indices.c:666
+#, c-format
+msgid ""
+"\n"
+"* Menu: Nodes whoses indices contain \"%s\":\n"
+msgstr ""
+"\n"
+"* Menu: (槴歖鍱 樈虀醵 \"%s\" 臄擩鋋 壝蜸歖 氆澮)\n"
+
+#: info/info.c:260 info/infokey.c:884
+msgid "Try --help for more information.\n"
+msgstr ".礹樥 暟 蠆濎 碢僶 --help 儊礒n"
+
+#: info/info.c:279 info/infokey.c:139 makeinfo/makeinfo.c:689
+#: util/install-info.c:1224 util/texindex.c:338
+#, c-format
+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"
+"樉 僽錼 纈醵 臊槶 .樥鸄 朄錆 麧樦 僽歖 樉 潞錼\n"
+" .GNU General Public License 櫇澺鸉 歖蹗 縺魟\n"
+" .COPYING 礭毿 歑澭 ,樦 臄謮貗 鳺鼞 礹濇\n"
+
+#: info/info.c:462
+#, c-format
+msgid "no index entries found for `%s'\n"
+msgstr "`%s' 緪鸄 臄擩鋋 壝蜸歖 氆澮 毉赨n"
+
+#: info/info.c:555
+msgid " -b, --speech-friendly be friendly to speech synthesizers.\n"
+msgstr ""
+" .鷿摋 翨貘鍎 槴歖僶 殫 膲鍎 魟澬 濻樈 僽 -b, --speech-friendly\n"
+
+#: info/info.c:562
+#, c-format
+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"
+" .霝鍎 膦鸁 擫 檛 臄壝蜸歖 擫 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"
+
+#: info/info.c:598 info/infokey.c:903 makeinfo/makeinfo.c:474
+#: util/install-info.c:421 util/texindex.c:286
+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:632
+#, c-format
+msgid "Cannot find node `%s'."
+msgstr ".魡犩 鳭 `%s' 噂齌"
+
+#: info/info.c:633
+#, c-format
+msgid "Cannot find node `(%s)%s'."
+msgstr ".魡犩 鳭 `%s' 礭毿 `%s' 噂齌"
+
+#: info/info.c:634
+msgid "Cannot find a window!"
+msgstr "!櫇懞 鶆 僪闉 鳭"
+
+#: info/info.c:635
+msgid "Point doesn't appear within this window's node!"
+msgstr "!僿 櫇懞 碢槴 噂齌酃 僪闉 歑歖 瀁鼥"
+
+#: info/info.c:636
+msgid "Cannot delete the last window."
+msgstr ".蜒賟 櫇懞 灚賧 燿潞 鳭"
+
+#: info/info.c:637
+msgid "No menu in this node."
+msgstr ".臄鴇欚 毉 樉 噂齌酃"
+
+#: info/info.c:638
+msgid "No footnotes in this node."
+msgstr ".臄濇潁 氂蟼 毉 樉 噂齌酃"
+
+#: info/info.c:639
+msgid "No cross references in this node."
+msgstr ".臄鷿澥 毉 樉 噂齌酃"
+
+#: info/info.c:640
+#, c-format
+msgid "No `%s' pointer for this node."
+msgstr ".%s 僸潞醵 毉 樉 噂齌酃"
+
+#: info/info.c:641
+#, c-format
+msgid "Unknown Info command `%c'; try `?' for help."
+msgstr ".噌羬 憼籧 `?' 儊 ;Info- 齴槴 僽歖 `%c' 鳲毿"
+
+#: info/info.c:642
+#, c-format
+msgid "Terminal type `%s' is not smart enough to run Info."
+msgstr ".Info 纈鸉 殫 樥 擤錼 歑歖 `%s' 瞂勷 碢"
+
+#: info/info.c:643
+msgid "You are already at the last page of this node."
+msgstr ".樉 噂齌 檛 櫇鸄馯 蜲闅 鸅 /"
+
+#: info/info.c:644
+msgid "You are already at the first page of this node."
+msgstr ".樉 噂齌 檛 櫇僤 蜲闅 鸅 /"
+
+#: info/info.c:645
+msgid "Only one window."
+msgstr ".蜭 櫇懞 蠲 臄澥"
+
+#: info/info.c:646
+msgid "Resulting window would be too small."
+msgstr ".殫 礹樥 歞 僸 櫇懞"
+
+#: info/info.c:647
+msgid "Not enough room for a help window, please delete a window."
+msgstr ".槼擫 櫇懞 灚賧 僦 ;噌羬 櫇懞 睾欋 翴纕 玃鐙 毉"
+
+#: info/infodoc.c:45 info/infodoc.c:94
+msgid ""
+"Basic Commands in Info Windows\n"
+"******************************\n"
+msgstr ""
+" Info 歑樦諃 樥齌鼁 樍毿瀵n"
+" ***************************\n"
+
+#: info/infodoc.c:48
+msgid "\\%-10[quit-help] Quit this help.\n"
+msgstr "\\%-10[quit-help] 僿 噌羬 櫇懞 鷿碫\n"
+
+#: info/infodoc.c:49
+msgid "\\%-10[quit] Quit Info altogether.\n"
+msgstr "\\%-10[quit] Info 潞錹 澮鍒 僪\n"
+
+#: info/infodoc.c:50
+msgid "\\%-10[get-info-help-node] Invoke the Info tutorial.\n"
+msgstr "\\%-10[get-info-help-node] Info 霝鍎 膦鸁 碢踊n"
+
+#: info/infodoc.c:52 info/infodoc.c:101
+msgid ""
+"Selecting other nodes:\n"
+"----------------------\n"
+msgstr ""
+" :氂諘 樈虀濊 噌氃塿n"
+" ---------------------\n"
+
+#: info/infodoc.c:54
+msgid "\\%-10[next-node] Move to the \"next\" node of this node.\n"
+msgstr "\\%-10[next-node] 氃錼 噂齌 澮諘 魡撦 噂齌鐔 鷿摥\n"
+
+#: info/infodoc.c:55
+msgid "\\%-10[prev-node] Move to the \"previous\" node of this node.\n"
+msgstr "\\%-10[prev-node] 氃錼 噂齌 潞鐔 噂齌鐔 鷿摥\n"
+
+#: info/infodoc.c:56
+msgid "\\%-10[up-node] Move \"up\" from this node.\n"
+msgstr "\\%-10[up-node] 氃錼 噂齌 檛 摳-虀濊 鷿摥\n"
+
+#: info/infodoc.c:57
+msgid ""
+"\\%-10[menu-item] 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:59
+msgid ""
+"\\%-10[xref-item] Follow a cross reference. Reads name of reference.\n"
+msgstr "\\%-10[xref-item] 鷿澥 薋 僤毿 ;鷿澥 鸄 摎蘹\n"
+
+#: info/infodoc.c:60
+msgid "\\%-10[history-node] Move to the last node seen in this window.\n"
+msgstr "\\%-10[history-node] 僿 櫇懞 鳱欈嘵 僽氂諘 噂齌鐔 鷿緗\n"
+
+#: info/infodoc.c:61
+msgid ""
+"\\%-10[move-to-next-xref] Skip to next hypertext link within this node.\n"
+msgstr "\\%-10[move-to-next-xref] 氃錼 噂齌酃 颬 鷿澥 瀁 緧踊n"
+
+#: info/infodoc.c:62
+msgid ""
+"\\%-10[move-to-prev-xref] Skip to previous hypertext link within this "
+"node.\n"
+msgstr "\\%-10[move-to-prev-xref] 氃錼 噂齌酃 罾毿 鷿澥 瀁 緧踊n"
+
+#: info/infodoc.c:63
+msgid ""
+"\\%-10[select-reference-this-line] Follow the hypertext link under cursor.\n"
+msgstr "\\%-10[select-reference-this-line] 樥曒 僪闉 瀁鼥 鷿澥 澮諘 摎蘹\n"
+
+#: info/infodoc.c:64
+msgid ""
+"\\%-10[dir-node] Move to the `directory' node. Equivalent to `\\[goto-"
+"node] (DIR)'.\n"
+msgstr "\\%-10[dir-node] `\\[goto-node] (DIR)'- 蕖-麧潁 ;DIR 噂齌鐔 鷿摥\n"
+
+#: info/infodoc.c:65
+msgid ""
+"\\%-10[top-node] Move to the Top node. Equivalent to `\\[goto-node] Top'.\n"
+msgstr "\\%-10[top-node] `\\[goto-node] Top'- 蕖-麧潁 ;Top 噂齌鐔 鷿摥\n"
+
+#: info/infodoc.c:67 info/infodoc.c:115
+msgid ""
+"Moving within a node:\n"
+"---------------------\n"
+msgstr ""
+" :噂齌 耪 瀁 蠈蹗\n"
+" ---------------------\n"
+
+#: info/infodoc.c:69
+msgid "\\%-10[scroll-forward] Scroll forward a page.\n"
+msgstr "\\%-10[scroll-forward] 儋殫 蜭 鵽 懤懧\n"
+
+#: info/infodoc.c:70
+msgid "\\%-10[scroll-backward] Scroll backward a page.\n"
+msgstr "\\%-10[scroll-backward] 噌樄 蜭 鵽 懤懧\n"
+
+#: info/infodoc.c:71
+msgid "\\%-10[beginning-of-node] Go to the beginning of this node.\n"
+msgstr "\\%-10[beginning-of-node] 氃錼 噂齌 擩踖 瀁 緧踊n"
+
+#: info/infodoc.c:72
+msgid "\\%-10[end-of-node] Go to the end of this node.\n"
+msgstr "\\%-10[end-of-node] 氃錼 噂齌 鵴儵 瀁 緧踊n"
+
+#: info/infodoc.c:73
+msgid "\\%-10[scroll-forward] Scroll forward 1 line.\n"
+msgstr "\\%-10[scroll-forward] 儋殫 諘 噌潁 瀁 緧踊n"
+
+#: info/infodoc.c:74
+msgid "\\%-10[scroll-backward] Scroll backward 1 line.\n"
+msgstr "\\%-10[scroll-backward] 噌樄 蜭 鵽 懤懧\n"
+
+#: info/infodoc.c:76 info/infodoc.c:124
+msgid ""
+"Other commands:\n"
+"---------------\n"
+msgstr ""
+" :氂諘 樍毿瀵n"
+" -------------\n"
+
+#: info/infodoc.c:78
+msgid "\\%-10[menu-digit] Pick first ... ninth item in node's menu.\n"
+msgstr "\\%-10[menu-digit] 氃錼謱 噂齌醵 鴇欚 澽澺 蜚 櫇僤 鶅襙 鸄塿n"
+
+#: info/infodoc.c:79
+msgid "\\%-10[last-menu-item] Pick last item in node's menu.\n"
+msgstr "\\%-10[last-menu-item] 氃錼謱 噂齌醵 鴇欚 櫇鸄 鶅襙 鸄塿n"
+
+#: info/infodoc.c:80
+msgid ""
+"\\%-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"
+msgstr ""
+"\\%-10[index-search] 鷿摥 僿 Info 礭毿 檛 臄壝蜸歖 緪鸄 鐋\n"
+" 縺漦 僪闉 櫇僤 壝蜸歖 鴇欚 劋殧犩 僸憵 噂齌鐔\n"
+
+#: info/infodoc.c:82
+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"
+
+#: info/infodoc.c:84
+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"
+
+#: info/infodoc.c:86
+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"
+
+#: info/infodoc.c:97
+#, c-format
+msgid " %-10s Quit this help.\n"
+msgstr " %-10s 僿 噌羬 櫇懞 鷿碫\n"
+
+#: info/infodoc.c:98
+#, c-format
+msgid " %-10s Quit Info altogether.\n"
+msgstr " %-10s Info 潞錹 澮鍒 僪\n"
+
+#: info/infodoc.c:99
+#, c-format
+msgid " %-10s Invoke the Info tutorial.\n"
+msgstr " %-10s Info 霝鍎 膦鸁 碢踊n"
+
+#: info/infodoc.c:103
+#, c-format
+msgid " %-10s Move to the `next' node of this node.\n"
+msgstr " %-10s 氃錼 噂齌 澮諘 魡撦 噂齌鐔 鷿摥\n"
+
+#: info/infodoc.c:104
+#, c-format
+msgid " %-10s Move to the `previous' node of this node.\n"
+msgstr " %-10s 氃錼 噂齌 潞鐔 噂齌鐔 鷿摥\n"
+
+#: info/infodoc.c:105
+#, c-format
+msgid " %-10s Move `up' from this node.\n"
+msgstr " %-10s 氃錼 噂齌 檛 摳-虀濊 鷿摥\n"
+
+#: info/infodoc.c:106
+#, c-format
+msgid " %-10s Pick menu item specified by name.\n"
+msgstr " %-10s 槴 嬞"鐍 鴇欚 鶅襙 鸄塿n"
+
+#: info/infodoc.c:107
+msgid " Picking a menu item causes another node to be selected.\n"
+msgstr " .鸄 噂齌鐔 鸅襜 霟槻 鴇欚 噌氃塿n"
+
+#: info/infodoc.c:108
+#, c-format
+msgid " %-10s Follow a cross reference. Reads name of reference.\n"
+msgstr " %-10s 鷿澥 薋 僤毿 ;鷿澥 鸄 摎蘹\n"
+
+#: info/infodoc.c:109
+#, c-format
+msgid " %-10s Move to the last node seen in this window.\n"
+msgstr " %-10s 僿 櫇懞 鳱欈嘵 僽氂諘 噂齌鐔 鷿緗\n"
+
+#: info/infodoc.c:110
+#, c-format
+msgid " %-10s Skip to next hypertext link within this node.\n"
+msgstr " %-10s 氃錼 噂齌酃 颬 鷿澥 瀁 緧踊n"
+
+#: info/infodoc.c:111
+#, c-format
+msgid " %-10s Follow the hypertext link under cursor.\n"
+msgstr " %-10s 樥曒 僪闉 瀁鼥 鷿澥 澮諘 摎蘹\n"
+
+#: info/infodoc.c:112
+#, c-format
+msgid " %-10s Move to the `directory' node. Equivalent to `g (DIR)'.\n"
+msgstr " %-10s `g (DIR)'- 蕖-麧潁 ;DIR 噂齌鐔 鷿摥\n"
+
+#: info/infodoc.c:113
+#, c-format
+msgid " %-10s Move to the Top node. Equivalent to `g Top'.\n"
+msgstr " %-10s `g Top'- 蕖-麧潁 ;Top 噂齌鐔 鷿摥\n"
+
+#: info/infodoc.c:117
+#, c-format
+msgid " %-10s Scroll forward a page.\n"
+msgstr " %-10s 儋殫 蜭 鵽 懤懧\n"
+
+#: info/infodoc.c:118
+#, c-format
+msgid " %-10s Scroll backward a page.\n"
+msgstr " %-10s 噌樄 蜭 鵽 懤懧\n"
+
+#: info/infodoc.c:119
+#, c-format
+msgid " %-10s Go to the beginning of this node.\n"
+msgstr " %-10s 氃錼 噂齌 擩踖 瀁 緧踊n"
+
+#: info/infodoc.c:120
+#, c-format
+msgid " %-10s Go to the end of this node.\n"
+msgstr " %-10s 氃錼 噂齌 鵴儵 瀁 緧踊n"
+
+#: info/infodoc.c:121
+#, c-format
+msgid " %-10s Scroll forward 1 line.\n"
+msgstr " %-10s 儋殫 諘 噌潁 瀁 緧踊n"
+
+#: info/infodoc.c:122
+#, c-format
+msgid " %-10s Scroll backward 1 line.\n"
+msgstr " %-10s 噌樄 諘 噌潁 瀁 緧踊n"
+
+#: info/infodoc.c:126
+#, c-format
+msgid " %-10s Pick first ... ninth item in node's menu.\n"
+msgstr " %-10s 氃錼謱 噂齌醵 鴇欚 澽澺 蜚 櫇僤 鶅襙 鸄塿n"
+
+#: info/infodoc.c:127
+#, c-format
+msgid " %-10s Pick last item in node's menu.\n"
+msgstr " %-10s 氃錼謱 噂齌醵 鴇欚 櫇鸄 鶅襙 鸄塿n"
+
+#: info/infodoc.c:128
+#, c-format
+msgid ""
+" %-10s Search for a specified string in the index entries of this Info\n"
+msgstr " %-10s 鷿摥 僿 Info 礭毿 檛 臄壝蜸歖 緪鸄 鐋\n"
+
+#: info/infodoc.c:129
+msgid ""
+" file, and select the node referenced by the first entry "
+"found.\n"
+msgstr " 縺漦 僪闉 櫇僤 壝蜸歖 鴇欚 劋殧犩 僸憵 噂齌鐔\n"
+
+#: info/infodoc.c:130
+#, c-format
+msgid " %-10s Move to node specified by name.\n"
+msgstr " %-10s 儋 嬞"鐍 噂齌鐔 鷿摥\n"
+
+#: info/infodoc.c:131
+msgid ""
+" You may include a filename as well, as in (FILENAME)NODENAME.\n"
+msgstr ""
+" .(FILENAME)NODENAME- 槴 噂齌醵 薋 籧賨 礭毿 薋 毉瀄 燿潞\n"
+
+#: info/infodoc.c:132
+#, c-format
+msgid " %-10s Search forward for a specified string,\n"
+msgstr " %-10s 僿 Info 礭毿 膵歖 櫡鋋 緪鸄 鐋\n"
+
+#: info/infodoc.c:133 info/infodoc.c:135
+msgid ""
+" and select the node in which the next occurrence is found.\n"
+msgstr " .緪鸄鍱 魡犩 魟 噂齌鐔 鷿摥嫹n"
+
+#: info/infodoc.c:134
+#, c-format
+msgid " %-10s Search backward for a specified string\n"
+msgstr " %-10s 僿 Info 礭毿 噌樄馲 櫡鋋 緪鸄 鐋\n"
+
+#: info/infodoc.c:313
+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:319
+msgid ""
+"Commands available in the echo area:\n"
+"\n"
+msgstr ""
+" :樍毿醵 鷿 樥矙邍 樍毿瀵n"
+"\n"
+
+#: info/infodoc.c:340
+#, c-format
+msgid ""
+"The following commands can only be invoked via %s:\n"
+"\n"
+msgstr ""
+" :蝁憼 %s 殣犩颬 擩覶僶 燿潞 樈撦 樍毿醵 赨n"
+"\n"
+
+#: info/infodoc.c:343
+msgid ""
+"The following commands cannot be invoked at all:\n"
+"\n"
+msgstr ""
+" :擤 僶覶僶 歑潞 瀔歖 樈撦 樍毿醵\n"
+"\n"
+
+#: info/infodoc.c:367
+msgid "--- Use `\\[history-node]' or `\\[kill-node]' to exit ---\n"
+msgstr "--- `\\[kill-node]' 樈 `\\[history-node]' 灛 魡瀄濇 ---\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:638
+msgid "Print documentation for KEY"
+msgstr "臄殥 纕 鷿摥 蜲襢 碢"
+
+#: info/infodoc.c:650
+#, c-format
+msgid "Describe key: %s"
+msgstr "Describe key: %s"
+
+#: info/infodoc.c:660
+#, c-format
+msgid "ESC %s is undefined."
+msgstr ".鸁瞂 歑歖 \"ESC %s\""
+
+#: info/infodoc.c:676 info/infodoc.c:703
+#, c-format
+msgid "%s is undefined."
+msgstr ".鸁瞂 歑歖 \"%s\""
+
+#: info/infodoc.c:724
+#, c-format
+msgid "%s is defined to %s."
+msgstr "%s is defined to %s."
+
+#: info/infodoc.c:1151
+msgid "Show what to type to execute a given command"
+msgstr "鍣殥 鳲毿 曒醵 蜒檉僶 儋 碢"
+
+#: info/infodoc.c:1155
+msgid "Where is command: "
+msgstr "Where is command: "
+
+#: info/infodoc.c:1177
+#, c-format
+msgid "`%s' is not on any keys"
+msgstr "槼擫 纕 噌潁 僽歖 `%s' 鳲毿醵"
+
+#: info/infodoc.c:1183
+#, c-format
+msgid "%s can only be invoked via %s."
+msgstr ".`%s' 曒醵 鳲氃毈 蕖蜠 馲 `%s'"
+
+#: info/infodoc.c:1186
+#, c-format
+msgid "%s can be invoked via %s."
+msgstr ".%s 鳲毿醵 擩覶 %s"
+
+#: info/infodoc.c:1190
+#, c-format
+msgid "There is no function named `%s'"
+msgstr ".鍣澥 僽歖 `%s' 薋 僸禴謥"
+
+#: info/infokey.c:164
+msgid "incorrect number of arguments"
+msgstr "毇禊 鳲毿鐔 臄麃鍷禘馯 欚勷"
+
+#: info/infokey.c:194
+#, c-format
+msgid "cannot open input file `%s'"
+msgstr "`%s' 鳻 礭毿 賟酃 僶蠳"
+
+#: info/infokey.c:207
+#, c-format
+msgid "cannot create output file `%s'"
+msgstr "`%s' 鳻 礭毿 鼞灖 僶蠳"
+
+#: info/infokey.c:217
+#, c-format
+msgid "error writing to `%s'"
+msgstr "`%s'- 魟澬錆 僶蠳"
+
+#: info/infokey.c:222
+#, c-format
+msgid "error closing output file `%s'"
+msgstr "`%s' 鳻 礭毿 鼞碫 僶蠳"
+
+#: info/infokey.c:443
+msgid "key sequence too long"
+msgstr "殫 儇氂 臄纕 鸁"
+
+#: info/infokey.c:521
+msgid "missing key sequence"
+msgstr "噌鼩 臄纕 鸁"
+
+#: info/infokey.c:600
+msgid "NUL character (\\000) not permitted"
+msgstr "鷿黟 (\\000) 玃 漦 槴澺"
+
+#: info/infokey.c:629
+#, c-format
+msgid "NUL character (^%c) not permitted"
+msgstr "鷿黟 (^%c) 玃 漦 槴澺"
+
+#: info/infokey.c:652
+msgid "missing action name"
+msgstr "鳲毿 薋 欘"
+
+#: info/infokey.c:667 info/infokey.c:733
+msgid "section too long"
+msgstr "殫 耪鸆 籧"
+
+#: info/infokey.c:673
+#, c-format
+msgid "unknown action `%s'"
+msgstr "劋樍 僽謮 `%s' 鳲毿"
+
+#: info/infokey.c:682
+msgid "action name too long"
+msgstr "殫 耪鸆 鳲毿 薋"
+
+#: info/infokey.c:694
+#, c-format
+msgid "extra characters following action `%s'"
+msgstr "`%s' 鳲毿鐔 蕅鍱 臄礹樥 臄漦"
+
+#: info/infokey.c:704
+msgid "missing variable name"
+msgstr "僽鍱 薋 欘"
+
+#: info/infokey.c:712
+msgid "missing `=' immediately after variable name"
+msgstr "僽鍱 薋 澮諘 蜒 `=' 欘"
+
+#: info/infokey.c:719
+msgid "variable name too long"
+msgstr "殫 耪鸆 僽鍱 薋"
+
+#: info/infokey.c:741
+msgid "value too long"
+msgstr "殫 耪鸆 蕖"
+
+#: info/infokey.c:875
+#, c-format
+msgid "\"%s\", line %u: "
+msgstr "\"%s\" 礭毿 %u 噌潁 "
+
+#: info/infokey.c:891
+#, 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:1397
+#, c-format
+msgid "Ignoring invalid infokey file `%s' - too small"
+msgstr "毉蠳 infokey 礭毿 樥僶 殫錆 殫 歞 -- `%s' 礭毿 臅譓"
+
+#: info/infomap.c:1400
+#, c-format
+msgid "Ignoring invalid infokey file `%s' - too big"
+msgstr "毉蠳 infokey 礭毿 樥僶 殫錆 殫 懤蜾 -- `%s' 礭毿 臅譓"
+
+#: info/infomap.c:1413
+#, c-format
+msgid "Error reading infokey file `%s' - short read"
+msgstr "僤蘺 礭毿 擫 鳭 - `%s' infokey 礭毿 骫犪 僶蠳"
+
+#: info/infomap.c:1431
+#, c-format
+msgid ""
+"Invalid infokey file `%s' (bad magic numbers) -- run infokey to update it"
+msgstr ""
+"歑槶蜚 蕖氀 infokey 蘧 -- (毇禊 艚 欚勷) 毉蠳 歑歖 `%s' infokey 礭毿"
+
+#: info/infomap.c:1437
+#, c-format
+msgid "Your infokey file `%s' is out of date -- run infokey to update it"
+msgstr "歑槶蜚 蕖氀 infokey 蘧 -- 瀇蜲襜 歑歖 `%s' infokey 礭毿"
+
+#: info/infomap.c:1450
+#, c-format
+msgid ""
+"Invalid infokey file `%s' (bad section length) -- run infokey to update it"
+msgstr ""
+"歑槶蜚 蕖氀 infokey 蘧 -- (毇禊 籧 蕖樈) 毉蠳 歑歖 `%s' infokey 礭毿"
+
+#: info/infomap.c:1470
+#, c-format
+msgid ""
+"Invalid infokey file `%s' (bad section code) -- run infokey to update it"
+msgstr "歑槶蜚 蕖氀 infokey 蘧 -- (毇禊 籧 蜲) 毉蠳 歑歖 `%s' infokey 礭毿"
+
+#: info/infomap.c:1608
+msgid "Bad data in infokey file -- some key bindings ignored"
+msgstr "僽曒鏺 鳭 樍諘 臄纕 氂蜾 -- infokey 礭毿 臄毇禊 臄謥"
+
+#: info/infomap.c:1659
+msgid "Bad data in infokey file -- some var settings ignored"
+msgstr "齀漦 鳭 樍諘 臄蹗 氂蜾 -- infokey 礭毿 臄毇禊 臄謥"
+
+#: info/m-x.c:70
+msgid "Read the name of an Info command and describe it"
+msgstr "噁樈 鸆 Info 蜲蘱 檛 薋 僤"
+
+#: info/m-x.c:74
+msgid "Describe command: "
+msgstr "Describe command: "
+
+#: info/m-x.c:97
+msgid "Read a command name in the echo area and execute it"
+msgstr "噁樈 譐摎 樍毿醵 鷿 鳲毿 檛 薋 僤"
+
+#: info/m-x.c:141
+msgid "Cannot execute an `echo-area' command here."
+msgstr ".僿 暡鍕 `echo-area' 蜲蘱 譐摐 燿潞 鳭"
+
+#: info/m-x.c:157
+msgid "Set the height of the displayed window"
+msgstr "碢槴 櫇懞 魟槻 僽"
+
+#: info/m-x.c:170
+#, c-format
+msgid "Set screen height to (%d): "
+msgstr "Set screen height to (%d): "
+
+#: info/makedoc.c:161 info/makedoc.c:169
+msgid ""
+" Source files groveled to make this file include:\n"
+"\n"
+msgstr ""
+" :臄擤槶 僿 礭毿 樍摎譀 鷿纕 瀄暠\n"
+"\n"
+
+#: info/makedoc.c:553
+#, c-format
+msgid "Couldn't manipulate the file %s.\n"
+msgstr ".%s 礭毿 蝁襗 燿潞 鳭\n"
+
+#: info/nodemenu.c:28
+msgid ""
+"\n"
+"* Menu:\n"
+" (File)Node Lines Size Containing File\n"
+" ---------- ----- ---- ---------------"
+msgstr ""
+"\n"
+"* Menu:\n"
+" (礭毿)噂齌 氂潁 '勷 懠槻 摳-礭毿\n"
+" ----------- --------- ---- -------"
+
+#: info/nodemenu.c:199
+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:219
+msgid "Make a window containing a menu of all of the currently visited nodes"
+msgstr "僽氂諘 犪殧 檷 樈虀濊 擫 檛 鴇欚 艜 櫇懞 碢"
+
+#: info/nodemenu.c:299
+msgid "Select a node which has been previously visited in a visible window"
+msgstr "歑樦諙 蜭颬 罾毿 碢 噁樈 噂齌 鸄"
+
+#: info/nodemenu.c:311
+msgid "Select visited node: "
+msgstr "Select visited node: "
+
+#: info/nodemenu.c:331 info/session.c:2235
+#, c-format
+msgid "The reference disappeared! (%s)."
+msgstr "!臅襝 (%s) 鷿澥 檛 蜚毈"
+
+#: info/session.c:170
+#, 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:643
+msgid "Move down to the next line"
+msgstr "魡撦 噌潁 瀁 緧"
+
+#: info/session.c:658
+msgid "Move up to the previous line"
+msgstr "鍏毿 噌潁 瀁 緧"
+
+#: info/session.c:673
+msgid "Move to the end of the line"
+msgstr "噌潁 鵴儵 瀁 緧"
+
+#: info/session.c:693
+msgid "Move to the start of the line"
+msgstr "僿 勷 檡賟檡 嘵氂"
+
+#: info/session.c:885 makeinfo/node.c:1357
+msgid "Next"
+msgstr "Next 鳲"
+
+#: info/session.c:888
+msgid "Following Next node..."
+msgstr "...魡撦 噂齌鐔 鸅殣"
+
+#: info/session.c:905
+msgid "Selecting first menu item..."
+msgstr "...鴇欚儋 櫇僤 鶅襙 鸄槦"
+
+#: info/session.c:916
+msgid "Selecting Next node..."
+msgstr "...魡撦 噂齌酃 鸄槦"
+
+#: info/session.c:986
+#, c-format
+msgid "Moving Up %d time(s), then Next."
+msgstr ".魡撦 噂齌醵 鸄槦 糈 ,樈虀濊 蘪 /儋 %d 僶殣"
+
+#: info/session.c:1010
+msgid "No more nodes within this document."
+msgstr ".僿 膰勷 樈虀濊 礹樥 毉"
+
+#: info/session.c:1034
+msgid "No `Prev' for this node."
+msgstr ".樉 噂齌酃 `Prev' 鷿澥 毉"
+
+#: info/session.c:1037 info/session.c:1092
+msgid "Moving Prev in this window."
+msgstr ".僿 櫇懞 鍏毿 噂齌鐔 鸅殣"
+
+#: info/session.c:1051
+msgid "No `Prev' or `Up' for this node within this document."
+msgstr ".樉 噂齌 鷿摥 `Up'- `Prev' 擤槶 歑歖 僿 膰勷"
+
+#: info/session.c:1054
+msgid "Moving Up in this window."
+msgstr ".僿 櫇懞 縺 虀鐔 鸅殣"
+
+#: info/session.c:1102
+msgid "Moving to `Prev's last menu item."
+msgstr ".鍏毿 噂齌 檛 鴇欚 櫇鸄 鶅襙 鸅殣"
+
+#: info/session.c:1113
+msgid "Move forwards or down through node structure"
+msgstr ".樈虀濊 僽搿 礹樥 灚闅 樈 儋殫 蠈"
+
+#: info/session.c:1129
+msgid "Move backwards or up through node structure"
+msgstr ".樈虀濊 僽搿 僶襜 濊擫 樈 噌樄 蠈"
+
+#: info/session.c:1229
+msgid "Scroll forward in this window"
+msgstr ".僿 櫇懞 儋殫 懤懧"
+
+#: info/session.c:1237
+msgid "Scroll forward in this window and set default window size"
+msgstr "櫇懞 懠槻 檛 蔌"霟 蕖 僽 僿 櫇懞 儋殫 懤懧"
+
+#: info/session.c:1245
+msgid "Scroll forward in this window staying within node"
+msgstr "氃錼謱 噂齌醵 僪 濇搿 僿 櫇懞 儋殫 懤懧"
+
+#: info/session.c:1253
+msgid ""
+"Scroll forward in this window staying within node and set default window size"
+msgstr ""
+"櫇懞 懠槻 檛 蔌"霟 蕖 僽 氃錼謱 噂齌醵 僪 濇搿 僿 櫇懞 儋殫 懤懧"
+
+#: info/session.c:1261
+msgid "Scroll backward in this window"
+msgstr "僿 櫇懞 噌樄 懤懧"
+
+#: info/session.c:1269
+msgid "Scroll backward in this window and set default window size"
+msgstr "櫇懞 懠槻 檛 蔌"霟 蕖 僽 僿 櫇懞 噌樄 懤懧"
+
+#: info/session.c:1278
+msgid "Scroll backward in this window staying within node"
+msgstr "氃錼謱 噂齌醵 僪 濇搿 僿 櫇懞 噌樄 懤懧"
+
+#: info/session.c:1286
+msgid ""
+"Scroll backward in this window staying within node and set default window "
+"size"
+msgstr ""
+"櫇懞 懠槻 檛 蔌"霟 蕖 僽 氃錼謱 噂齌醵 僪 濇搿 僿 櫇懞 噌樄 懤懧"
+
+#: info/session.c:1294
+msgid "Move to the start of this node"
+msgstr "樉 噂齌 擩踖 瀁 緧"
+
+#: info/session.c:1301
+msgid "Move to the end of this node"
+msgstr "樉 噂齌 鵴儵 瀁 緧"
+
+#: info/session.c:1308
+msgid "Scroll down by lines"
+msgstr "儰 濊擫 氂潁 N 懤懧"
+
+#: info/session.c:1325
+msgid "Scroll up by lines"
+msgstr "僶襜 濊擫 氂潁 N 懤懧"
+
+#: info/session.c:1343
+msgid "Scroll down by half screen size"
+msgstr "儰 濊擫 鳱氀 瀄 懤懧"
+
+#: info/session.c:1369
+msgid "Scroll up by half screen size"
+msgstr "僶襜 濊擫 鳱氀 瀄 懤懧"
+
+#: info/session.c:1398
+msgid "Select the next window"
+msgstr "颬 櫇懞 鸄"
+
+#: info/session.c:1437
+msgid "Select the previous window"
+msgstr "罾毿 櫇懞 鸄"
+
+#: info/session.c:1488
+msgid "Split the current window"
+msgstr "臄潞 氃錼謱 櫇懞 籧"
+
+#: info/session.c:1569
+msgid "Delete the current window"
+msgstr "氃錼謱 櫇懞 欘"
+
+#: info/session.c:1577
+msgid "Cannot delete a permanent window"
+msgstr "蠈暠 櫇懞 鼞鼥 燿潞 鳭"
+
+#: info/session.c:1610
+msgid "Delete all other windows"
+msgstr "氃錼謱 蝁斁 歑樦諙 擫 欘"
+
+#: info/session.c:1656
+msgid "Scroll the other window"
+msgstr "颬 櫇懞 懤懧"
+
+#: info/session.c:1677
+msgid "Scroll the other window backward"
+msgstr "颬 櫇懞 噌樄 懤懧"
+
+#: info/session.c:1683
+msgid "Grow (or shrink) this window"
+msgstr "僿 櫇懞 (歞灛 樈) 懠瞅"
+
+#: info/session.c:1694
+msgid "Divide the available screen space among the visible windows"
+msgstr "臄碢槴 歑樦諙 擫 毉 鳱氀 賥 籧"
+
+#: info/session.c:1701
+msgid "Toggle the state of line wrapping in the current window"
+msgstr "氃錼謱 櫇懞 潁懧 氂潁 碢 暡 僽"
+
+#: info/session.c:1880
+msgid "Select the Next node"
+msgstr "魡撦 噂齌酃 鷿摥"
+
+#: info/session.c:1888
+msgid "Select the Prev node"
+msgstr "鍏毿 噂齌鐔 鷿摥"
+
+#: info/session.c:1896
+msgid "Select the Up node"
+msgstr "曒霘 噂齌鐔 鷿摥"
+
+#: info/session.c:1903
+msgid "Select the last node in this file"
+msgstr "僿 膰勷 僽氂諘 噂齌鐔 鷿摥"
+
+#: info/session.c:1930 info/session.c:1963
+msgid "This window has no additional nodes"
+msgstr "僿 櫇懞 樈虀濊 礹樥 毉"
+
+#: info/session.c:1936
+msgid "Select the first node in this file"
+msgstr "僿 膰勷 僽潁僤 噂齌鐔 鷿摥"
+
+#: info/session.c:1970
+msgid "Select the last item in this node's menu"
+msgstr "樉 噂齌醵 鴇欚 櫇鸄馯 鶅襙 鸄"
+
+#: info/session.c:1976
+msgid "Select this menu item"
+msgstr "鴇欚儋 僿 鶅襙 鸄"
+
+#: info/session.c:2005
+#, c-format
+msgid "There aren't %d items in this menu."
+msgstr ".臄鏻襙 %d 毉 僿 鴇欚"
+
+#: info/session.c:2148
+#, c-format
+msgid "Menu item (%s): "
+msgstr "Menu item (%s): "
+
+#: info/session.c:2150
+msgid "Menu item: "
+msgstr "Menu item: "
+
+#: info/session.c:2155
+#, c-format
+msgid "Follow xref (%s): "
+msgstr "Follow xref (%s): "
+
+#: info/session.c:2157
+msgid "Follow xref: "
+msgstr "Follow xref: "
+
+#: info/session.c:2280
+msgid "Read a menu item and select its node"
+msgstr "儋歖鍱 噂齌鐔 鷿摥 鴇欚 鶅襙 薋 僤"
+
+#: info/session.c:2288
+msgid "Read a footnote or cross reference and select its node"
+msgstr "儋歖鍱 噂齌鐔 鷿摥 鷿澥 樈 噌蟼 檛 薋 僤"
+
+#: info/session.c:2294
+msgid "Move to the start of this node's menu"
+msgstr "樉 噂齌酃 鴇欚 擩踖 瀁 緧"
+
+#: info/session.c:2318
+msgid "Visit as many menu items at once as possible"
+msgstr "僿 鴇欚 臄鏻襙 檛 矙邍 擫 暟 欚勷 碢"
+
+#: info/session.c:2346
+msgid "Read a node name and select it"
+msgstr "僸憵 鷿摥 噂齌 檛 薋 僤"
+
+#: info/session.c:2401 info/session.c:2405
+msgid "Goto node: "
+msgstr "Goto node: "
+
+#: info/session.c:2471
+#, c-format
+msgid "No menu in node `%s'."
+msgstr ".臄鴇欚 `%s' 毉 噂齌酃"
+
+#: info/session.c:2516
+#, c-format
+msgid "No menu item `%s' in node `%s'."
+msgstr ".`%s' 鶅襙 毉 `%s' 噂齌 檛 鴇欚"
+
+#: info/session.c:2546
+#, c-format
+msgid "Unable to find node referenced by `%s' in `%s'."
+msgstr ".`%s' 鶅襙 僸憵 矙纕 `%s'- 鴇欚 矙 噂齌 澬僪 鳭"
+
+#: info/session.c:2597
+msgid "Read a list of menus starting from dir and follow them"
+msgstr "罽澮諘 摎蘹 dir- 僶氃鍱 鴇欚 濊澽 鸁濄 僤"
+
+#: info/session.c:2599
+msgid "Follow menus: "
+msgstr "Follow menus: "
+
+#: info/session.c:2797
+msgid "Find the node describing program invocation"
+msgstr "潞錹 纈鸉 裧澣 鸆鍱 噂齌醵 僪"
+
+#: info/session.c:2799
+#, c-format
+msgid "Find Invocation node of [%s]: "
+msgstr "Find Invocation node of [%s]: "
+
+#: info/session.c:2837
+msgid "Read a manpage reference and select it"
+msgstr "漦樈 碢麧 manpage- 僸潞醵 僤"
+
+#: info/session.c:2841
+msgid "Get Manpage: "
+msgstr "Get Manpage: "
+
+#: info/session.c:2871
+msgid "Select the node `Top' in this file"
+msgstr "僿 膰勷 (`Top') 澺僤 噂齌鐔 鷿摥"
+
+#: info/session.c:2877
+msgid "Select the node `(dir)'"
+msgstr "`(dir)' 噂齌鐔 鷿摥"
+
+#: info/session.c:2897
+#, c-format
+msgid "Kill node (%s): "
+msgstr "Kill node (%s): "
+
+#: info/session.c:2951
+#, c-format
+msgid "Cannot kill node `%s'"
+msgstr "`%s' 噂齌 籧儵 氂邍 毉"
+
+#: info/session.c:2961
+msgid "Cannot kill the last node"
+msgstr "鳲氃 噂齌 籧儵 氂邍 毉"
+
+#: info/session.c:3047
+msgid "Select the most recently selected node"
+msgstr "鳱欈嘵 僽氂諘 噂齌鐔 鷿緗"
+
+#: info/session.c:3053
+msgid "Kill this node"
+msgstr "樉 噂齌 籧"
+
+#: info/session.c:3061
+msgid "Read the name of a file and select it"
+msgstr "漦樈 碢麧 礭毿 檛 薋 僤"
+
+#: info/session.c:3065
+msgid "Find file: "
+msgstr "Find file: "
+
+#: info/session.c:3082
+#, c-format
+msgid "Cannot find `%s'."
+msgstr ".僪闉 鳭 `%s' 礭毿"
+
+#: info/session.c:3127 info/session.c:3248
+#, 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:3140 info/session.c:3265 info/session.c:3326
+msgid "Done."
+msgstr " 儃檥"
+
+# No ellipsis because that would look awkward when the translation of
+# "Done." is appended.
+#: info/session.c:3196
+#, c-format
+msgid "Writing node %s..."
+msgstr "`%s' 噂齌 鳻"
+
+#: info/session.c:3274
+msgid "Pipe the contents of this node through INFO_PRINT_COMMAND"
+msgstr "INFO_PRINT_COMMAND 蕖 樉 噂齌 瀇漦 嚪蜠"
+
+#: info/session.c:3310
+#, 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:3316
+#, c-format
+msgid "Printing node %s..."
+msgstr "%s 噂齌 嚪蜠"
+
+#: info/session.c:3558
+#, c-format
+msgid "Searching subfile %s ..."
+msgstr "... %s 礭毿- 蠲殥"
+
+#: info/session.c:3610
+msgid "Read a string and search for it case-sensitively"
+msgstr "樥澮 槦踖 耪 噁樈 鐋 緪鸄 僤"
+
+#: info/session.c:3617
+msgid "Read a string and search for it"
+msgstr "噁樈 鐋 緪鸄 僤"
+
+#: info/session.c:3625
+msgid "Read a string and search backward for it"
+msgstr "噌樄 噁樈 鐋 緪鸄 僤"
+
+#: info/session.c:3667
+#, c-format
+msgid "%s%sfor string [%s]: "
+msgstr "%s%sfor string [%s]: "
+
+# 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:3668
+msgid "Search backward"
+msgstr "Search backward"
+
+#: info/session.c:3668
+msgid "Search"
+msgstr "Search"
+
+#: info/session.c:3669
+msgid " case-sensitively "
+msgstr " case-sensitively "
+
+#: info/session.c:3669
+msgid " "
+msgstr " "
+
+#: info/session.c:3709
+msgid "Search failed."
+msgstr ".魡犩 鳭 緪鸄鍱"
+
+#: info/session.c:3727
+msgid "Repeat last search in the same direction"
+msgstr "櫇樥 漦樈 櫇鸄 殦氃 曒 鷿緗"
+
+#: info/session.c:3730 info/session.c:3740
+msgid "No previous search string"
+msgstr "櫇鸄 殦氃 緪鸄 毉"
+
+#: info/session.c:3737
+msgid "Repeat last search in the reverse direction"
+msgstr "耪醵 櫇樥錆 櫇鸄 殦氃 曒 鷿緗"
+
+#: info/session.c:3755 info/session.c:3761
+msgid "Search interactively for a string as you type it"
+msgstr "噁樈 /蜒檉 /僓 殫 耪 緪鸄 鐋"
+
+#: info/session.c:3855
+msgid "I-search backward: "
+msgstr "I-search backward: "
+
+#: info/session.c:3857
+msgid "I-search: "
+msgstr "I-search: "
+
+# Untranslated because is used with the I-search: prompt.
+#: info/session.c:3882
+msgid "Failing "
+msgstr "Failing "
+
+#: info/session.c:4340
+msgid "Move to the previous cross reference"
+msgstr "罾毿 鷿澥 瀁 緧"
+
+#: info/session.c:4349
+msgid "Move to the next cross reference"
+msgstr "颬 鷿澥 瀁 緧"
+
+#: info/session.c:4359
+msgid "Select reference or menu item appearing on this line"
+msgstr "氃錼謱 噌潁 襢醲鍱 鴇欚 鶅襙 樈 鷿澥 鸄 摎蘹"
+
+#: info/session.c:4381
+msgid "Cancel current operation"
+msgstr "氃錼 僶殣 擯"
+
+#: info/session.c:4388
+msgid "Quit"
+msgstr "擯槦"
+
+#: info/session.c:4397
+msgid "Move the cursor to a specific line of the window"
+msgstr "僿 櫇懞 鍣殥 噌潁 瀁 緧"
+
+#: info/session.c:4429
+msgid "Redraw the display"
+msgstr "鳱氀 蜭"
+
+#: info/session.c:4466
+msgid "Quit using Info"
+msgstr "Info 潞錼 僪"
+
+#: info/session.c:4479
+msgid "Run command bound to this key's lowercase variant"
+msgstr "僿 纕 檛 歑儚 樥樈 壛殪 噌潁灛 鳲毿 曒醵"
+
+#: info/session.c:4491
+#, c-format
+msgid "Unknown command (%s)."
+msgstr ".(%s) 齴槴-澬憼 鳲毿"
+
+#: info/session.c:4494
+msgid "\"\" is invalid"
+msgstr "\"\" 僸槻 鳲毿"
+
+#: info/session.c:4495
+#, c-format
+msgid "\"%s\" is invalid"
+msgstr "\"%s\" 僸槻 鳲毿"
+
+#: info/session.c:4713
+msgid "Add this digit to the current numeric argument"
+msgstr "氃錼 澮鍷 麃鍷禘鳭 樉 噌鐙 鵨槼"
+
+#: info/session.c:4722
+msgid "Start (or multiply by 4) the current numeric argument"
+msgstr "4- 臄澥 蕖 懤鐏 樈 ,澮鍷 麃鍷禘 檛 鳲檉 懞"
+
+#: info/session.c:4737
+msgid "Internally used by \\[universal-argument]"
+msgstr "樉 鳲毿酃 霝 \\[universal-argument]"
+
+#: info/tilde.c:344
+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:64
+msgid "The number lines to scroll when the cursor moves out of the window"
+msgstr "櫇懞 樦槦碭 僪樥 瀁鼥 鳱氀 懤懧 氂潁 欚勷"
+
+#: info/variables.c:68
+msgid "When \"On\", Info accepts and displays ISO Latin characters"
+msgstr "樥摋 8 濇蠌 ISO 毇 睾犩 鳻毿 Info ,\"On\" 暡鍕 縺"
+
+#: info/variables.c:74
+msgid "Explain the use of a variable"
+msgstr "臄蹗 檛 蜒蘱 鸆"
+
+#: info/variables.c:80
+msgid "Describe variable: "
+msgstr "Describe variable: "
+
+#: info/variables.c:99
+msgid "Set the value of an Info variable"
+msgstr "Info 僽 檛 蕖 僽"
+
+#: info/variables.c:105
+msgid "Set variable: "
+msgstr "Set variable: "
+
+#: info/variables.c:123
+#, c-format
+msgid "Set %s to value (%d): "
+msgstr "Set %s to value (%d): "
+
+#: info/variables.c:164
+#, c-format
+msgid "Set %s to value (%s): "
+msgstr "Set %s to value (%s): "
+
+#: info/window.c:1164
+msgid "--*** Tags out of Date ***"
+msgstr "--*** 謻蜲襜 僽歖 Tags 憼 ***-- "
+
+#: info/window.c:1175
+msgid "-----Info: (), lines ----, "
+msgstr "-----Info: (), lines ----, "
+
+#: info/window.c:1182
+#, c-format
+msgid "-%s---Info: %s, %d lines --%s--"
+msgstr "-%s---Info: %s, %d lines --%s--"
+
+#: info/window.c:1186
+#, c-format
+msgid "-%s%s-Info: (%s)%s, %d lines --%s--"
+msgstr "-%s%s-Info: (%s)%s, %d lines --%s--"
+
+#: info/window.c:1193
+#, c-format
+msgid " Subfile: %s"
+msgstr " Subfile: %s"
+
+#: lib/getopt.c:675
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s 潞錹 鷿摥 澽霘-蜭 歑歖 `%s' 毉濊麀\n"
+
+#: lib/getopt.c:700
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s 潞錹 鷿摥 麃鍷禘 憼纕 歑歖 `--%s' 毉濊麀\n"
+
+#: lib/getopt.c:705
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr "%s 潞錹 鷿摥 麃鍷禘 憼纕 歑歖 `%c%s' 毉濊麀\n"
+
+#: lib/getopt.c:723 lib/getopt.c:896
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr "%s 潞錹 鷿摥 麃鍷禘 摋氃 `%s' 毉濊麀\n"
+
+#: lib/getopt.c:752
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s 潞錹 鷿摥 `--%s' 鳵樉-澬憼 毉濊麀\n"
+
+#: lib/getopt.c:756
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s 潞錹 鷿摥 `%c%s' 鳵樉-澬憼 毉濊麀\n"
+
+#: lib/getopt.c:782
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: 澥樄-澬憼 毉濊麀 -- %c\n"
+
+#: lib/getopt.c:785
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr "%s 潞錹 鷿摥 毇禊 毉濊麀 -- %c\n"
+
+#: lib/getopt.c:815 lib/getopt.c:945
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr "%s: 麃鍷禘 摋氃 毉濊麀 -- %c\n"
+
+#: lib/getopt.c:862
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr "%s 潞錹 鷿摥 澽霘-蜭 歑歖 `-W %s' 毉濊麀\n"
+
+#: lib/getopt.c:880
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr "%s 潞錹 鷿摥 麃鍷禘 憼纕 歑歖 `-W %s' 毉濊麀\n"
+
+#: makeinfo/cmds.c:515
+msgid "January"
+msgstr "鸆歑"
+
+#: makeinfo/cmds.c:515
+msgid "February"
+msgstr "鸆氂敳"
+
+#: makeinfo/cmds.c:515
+msgid "March"
+msgstr "蘧"
+
+#: makeinfo/cmds.c:515
+msgid "April"
+msgstr "擩欚"
+
+#: makeinfo/cmds.c:515
+msgid "May"
+msgstr "歖"
+
+#: makeinfo/cmds.c:516
+msgid "June"
+msgstr "潞樥"
+
+#: makeinfo/cmds.c:516
+msgid "July"
+msgstr "濇樥"
+
+#: makeinfo/cmds.c:516
+msgid "August"
+msgstr "黓槻樈"
+
+#: makeinfo/cmds.c:516
+msgid "September"
+msgstr "鸅鍞鐙"
+
+#: makeinfo/cmds.c:516
+msgid "October"
+msgstr "鸅樘灚"
+
+#: makeinfo/cmds.c:517
+msgid "November"
+msgstr "鸅鍕歑"
+
+#: makeinfo/cmds.c:517
+msgid "December"
+msgstr "鸅隬"
+
+#: makeinfo/cmds.c:658
+#, c-format
+msgid "unlikely character %c in @var"
+msgstr "@var 耪 %c 鼞摙-澬憼 漦"
+
+#: makeinfo/cmds.c:701
+msgid "@sc argument all uppercase, thus no effect"
+msgstr "儚邍 擫 @sc- 毉 瀇 ,樦樍 樥樈 樦槶 @sc 檛 麃鍷禘"
+
+#: makeinfo/cmds.c:759
+#, c-format
+msgid "`{' expected, but saw `%c'"
+msgstr "%c 僪闉 罻 ,`{' 餤""
+
+#: makeinfo/cmds.c:789
+msgid "end of file inside verb block"
+msgstr "verb 耪 礭毿 鵴"
+
+#: makeinfo/cmds.c:797
+#, c-format
+msgid "`}' expected, but saw `%c'"
+msgstr "%c 僪闉 罻 ,`}' 餤""
+
+#: makeinfo/cmds.c:942
+#, c-format
+msgid "%c%s is obsolete"
+msgstr "爁樥 歑毈 %c%s"
+
+#: makeinfo/cmds.c:1014
+#, c-format
+msgid "@sp requires a positive numeric argument, not `%s'"
+msgstr "`%s' 鳭 ,殧樥 欚勷 馲嘵 麃鍷禘 鷿 @sp"
+
+#: makeinfo/cmds.c:1348 makeinfo/cmds.c:1374 makeinfo/footnote.c:81
+#, c-format
+msgid "Bad argument to %c%s"
+msgstr "%c%s- 毇禊 麃鍷禘"
+
+#: makeinfo/cmds.c:1358 makeinfo/makeinfo.c:4140
+msgid "asis"
+msgstr "馲嘵 槴"
+
+#: makeinfo/cmds.c:1360 makeinfo/makeinfo.c:4142
+msgid "none"
+msgstr "毉"
+
+#: makeinfo/defun.c:85
+msgid "Missing `}' in @def arg"
+msgstr "@def 檛 麃鍷禘颬 `}' 欘"
+
+# It would be hilarious to translate those...
+#: makeinfo/defun.c:363
+msgid "Function"
+msgstr "Function"
+
+#: makeinfo/defun.c:366
+msgid "Macro"
+msgstr "Macro"
+
+#: makeinfo/defun.c:369
+msgid "Special Form"
+msgstr "Special Form"
+
+#: makeinfo/defun.c:373
+msgid "Variable"
+msgstr "Variable"
+
+#: makeinfo/defun.c:376
+msgid "User Option"
+msgstr "User Option"
+
+#: makeinfo/defun.c:380
+msgid "Instance Variable"
+msgstr "Instance Variable"
+
+#: makeinfo/defun.c:384
+msgid "Method"
+msgstr "Method"
+
+#: makeinfo/defun.c:466 makeinfo/defun.c:470 makeinfo/defun.c:615
+#: makeinfo/defun.c:631 makeinfo/defun.c:671
+msgid "of"
+msgstr "of"
+
+#: makeinfo/defun.c:474 makeinfo/defun.c:478 makeinfo/defun.c:482
+#: makeinfo/defun.c:624 makeinfo/defun.c:676
+msgid "on"
+msgstr "on"
+
+#: makeinfo/defun.c:717
+#, c-format
+msgid "Must be in `%s' insertion to use `%sx'"
+msgstr "`%s' 耪 蠲 罻 槴澺 礹槴 `%sx'"
+
+#: makeinfo/files.c:448
+#, c-format
+msgid "%s: getwd: %s, %s\n"
+msgstr "%s 潞錹 %s- %s 鷿摥 魡殪 曒 谾樥 getwd/getcwd\n"
+
+#: makeinfo/footnote.c:150
+#, c-format
+msgid "`%c%s' needs an argument `{...}', not just `%s'"
+msgstr "`{...}' 耪 樥僶 摋氃 ,%c%s 檛 麃鍷禘 樥僶 臄僬 歑歖 `%s'"
+
+#: makeinfo/footnote.c:165
+#, c-format
+msgid "No closing brace for footnote `%s'"
+msgstr "`}'- 鍣澬勷 僽歖 `%s' 臄濇潁 欙"
+
+#: makeinfo/footnote.c:198
+msgid "Footnote defined without parent node"
+msgstr "噂齌鐔 籓賧 臄濇潁 欙"
+
+#: makeinfo/footnote.c:210
+msgid "Footnotes inside footnotes are not allowed"
+msgstr "臄濇潁 氂蟼 耪 臄濇潁 氂蟼 儇濎 毉"
+
+#: makeinfo/footnote.c:298
+msgid "Footnotes"
+msgstr "臄濇潁 氂蟼"
+
+#: makeinfo/html.c:42
+msgid "Untitled"
+msgstr "礹槶 鳭"
+
+#: makeinfo/html.c:298
+#, c-format
+msgid "Invalid node name: `%s'"
+msgstr "`%s' :毇禊 (node) 噂齌 薋"
+
+#: makeinfo/index.c:213
+#, c-format
+msgid "Unknown index `%s'"
+msgstr "`%s' 齴槴-澬憼 壝蜸歖"
+
+#: makeinfo/index.c:238
+#, c-format
+msgid "Info cannot handle `:' in index entry `%s'"
+msgstr "`%s' 壝蜸歖 鴇欚 `:' 擤皸 檛錁 Info"
+
+#: makeinfo/index.c:396
+#, c-format
+msgid "Index `%s' already exists"
+msgstr "鸁瞂 鸅 `%s' 壝蜸歖"
+
+#: makeinfo/index.c:439
+#, c-format
+msgid "Unknown index `%s' and/or `%s' in @synindex"
+msgstr "齴槴-澬憼 壝蜸歖 歑毈 @synindex- `%s' 樈 `%s'"
+
+#: makeinfo/index.c:666
+#, c-format
+msgid "Unknown index `%s' in @printindex"
+msgstr "@printindex- `%s' 齴槴-澬憼 壝蜸歖"
+
+#: makeinfo/index.c:709
+#, c-format
+msgid "Entry for index `%s' outside of any node"
+msgstr "噂齌 擫 籓賧 鸁瞂 `%s' 壝蜸歖 鴇欚"
+
+#: makeinfo/index.c:712 makeinfo/index.c:751
+msgid "(outside of any node)"
+msgstr "(噂齌 擫 籓賧)"
+
+#: makeinfo/insertion.c:198
+msgid "Broken-Type in insertion_type_pname"
+msgstr "insertion_type_pname- 毇禊 type"
+
+#: makeinfo/insertion.c:271
+msgid "Enumeration stack overflow"
+msgstr "@enumerate- 潞鼩 濇"
+
+#: makeinfo/insertion.c:303
+#, c-format
+msgid "lettering overflow, restarting at %c"
+msgstr "%c- 蜭 擩踖 ,樦欈 樥樈 擫"
+
+#: makeinfo/insertion.c:538
+#, c-format
+msgid "%s requires an argument: the formatter for %citem"
+msgstr "%s 僤槼 %citem 鷿摥 摎灖 鴇 :麃鍷禘 鸁"
+
+#: makeinfo/insertion.c:693
+#, c-format
+msgid "`@end' expected `%s', but saw `%s'"
+msgstr "`%s' 僪闉 臅樈 ,`%s' 餤" `@end' 澮諘"
+
+#: makeinfo/insertion.c:931
+#, c-format
+msgid "No matching `%cend %s'"
+msgstr "縺漦 `%cend %s' 欘"
+
+#: makeinfo/insertion.c:1084
+#, c-format
+msgid "%s requires letter or digit"
+msgstr "噌鐙 樈 樈 鷿 %s"
+
+#: makeinfo/insertion.c:1158
+msgid "end of file inside verbatim block"
+msgstr "verbatim 耪 礭毿 鵴"
+
+#: makeinfo/insertion.c:1318
+msgid "@menu seen before first @node, creating `Top' node"
+msgstr "`Top' 虀濊 爦樥 ,僽潁僤 噂齌醵 潞鐔 僪闉 @menu"
+
+#: makeinfo/insertion.c:1319
+msgid ""
+"perhaps your @top node should be wrapped in @ifnottex rather than @ifinfo?"
+msgstr "?@ifinfo 翴纕 @ifnottex- 鐎槴 樥僶 噁毈 儇澮 @top 虀濊 澣 瀇澭"
+
+#: makeinfo/insertion.c:1331
+msgid "@detailmenu seen before first node, creating `Top' node"
+msgstr "`Top' 虀濊 爦樥 ,僽潁僤 噂齌醵 潞鐔 僪闉 @detailmenu"
+
+#: makeinfo/insertion.c:1346
+#, c-format
+msgid "Unmatched `%c%s'"
+msgstr "瞂-櫆 樦 毉僓 `%c%s'"
+
+#: makeinfo/insertion.c:1353
+#, c-format
+msgid "`%c%s' needs something after it"
+msgstr "樥鸄 馲摋 槼 膦爦 `%c%s'"
+
+#: makeinfo/insertion.c:1359
+#, c-format
+msgid "Bad argument to `%s', `%s', using `%s'"
+msgstr "`%s'- 麃鍷禘鳪 臄僬 歑歖 `%s'- 翴 `%s'- 澬霝"
+
+#: makeinfo/insertion.c:1453
+#, c-format
+msgid "@%s not meaningful inside `@%s' block"
+msgstr "`@%s' 耪 @%s- 殣霘 毉"
+
+#: makeinfo/insertion.c:1462
+#, c-format
+msgid "@itemx not meaningful inside `%s' block"
+msgstr "`%s' 耪 @itemx- 殣霘 毉"
+
+#: makeinfo/insertion.c:1646
+#, c-format
+msgid "%c%s found outside of an insertion block"
+msgstr "儊謻 灚憼 擫 籓賧 %c%s 僪闉"
+
+#: makeinfo/lang.c:331
+#, c-format
+msgid "%s is not a valid ISO 639 language code"
+msgstr "ISO 639 嬞" 臄齴槴 櫇懥 潞鍣勷 蜭 歑歖 %s"
+
+#: makeinfo/lang.c:384
+#, c-format
+msgid "unrecogized encoding name `%s'"
+msgstr "`%s' 齴槴-澬憼 蜲蜒 薋"
+
+#: makeinfo/lang.c:387
+#, c-format
+msgid "sorry, encoding `%s' not supported"
+msgstr "膰 歑歖 `%s' 蜲蜒 ,臄欙儗"
+
+#: makeinfo/lang.c:414
+#, c-format
+msgid "invalid encoded character `%s'"
+msgstr "`%s' 毇禊 蝆毿 漦"
+
+#: makeinfo/lang.c:502
+#, c-format
+msgid "%s is an invalid ISO code, using %c"
+msgstr "毇禊 ISO 蜲 歑毈 %s 澣 %c- 霝"
+
+#: makeinfo/lang.c:687
+#, c-format
+msgid "%c%s expects `i' or `j' as argument, not `%c'"
+msgstr "`j' 樈 `i' 樥僶 摋氃 矙 ,%c%s 檛 麃鍷禘 樥僶 臄僬 歑歖 `%c'"
+
+#: makeinfo/lang.c:691
+#, c-format
+msgid "%c%s expects a single character `i' or `j' as argument"
+msgstr "麃鍷禘鳪 `j' 樈 `i' 蜒賟 漦 憼纕 %c%s"
+
+#: makeinfo/macro.c:134
+#, c-format
+msgid "macro `%s' previously defined"
+msgstr "罾濷 鸁瞂 鸅 `%s' 氂欑"
+
+#: makeinfo/macro.c:138
+#, c-format
+msgid "here is the previous definition of `%s'"
+msgstr "僽潁僤 鸁瞂 `%s' 櫡"
+
+#: makeinfo/macro.c:355
+#, c-format
+msgid "\\ in macro expansion followed by `%s' instead of \\ or parameter name"
+msgstr "麠霟 薋 樈 \\ 翴纕 ,氂欑 摞鸉 \\ 槦蘹 `%s'"
+
+#: makeinfo/macro.c:403
+#, c-format
+msgid "Macro `%s' called on line %d with too many args"
+msgstr "殫 臄暟 臄麃鍷禘 擤槶 `%s' 氂欑鍎 %d 噌潁 噁擩踖 魡澮"
+
+#: makeinfo/macro.c:594
+#, c-format
+msgid "%cend macro not found"
+msgstr "僪闉 鳭 %cend macro"
+
+#: makeinfo/macro.c:632
+msgid "@quote-arg only useful for single-argument macros"
+msgstr "蜒賟 麃鍷禘 曒 氂欑 耪 蠲 澺槴澺 @quote-arg"
+
+#: makeinfo/macro.c:668
+#, c-format
+msgid "mismatched @end %s with @%s"
+msgstr "@end %s 縺漦 歑歖 @%s"
+
+# Not translated because Emacs recognizes warningsby this template.
+#: makeinfo/makeinfo.c:316
+#, c-format
+msgid "%s:%d: warning: "
+msgstr "%s:%d: warning: "
+
+#: makeinfo/makeinfo.c:339
+msgid "Too many errors! Gave up.\n"
+msgstr ".臄殫 澬霟 !骫禊 殫 礹樥\n"
+
+#: makeinfo/makeinfo.c:350 makeinfo/makeinfo.c:2026
+#, c-format
+msgid "Misplaced %c"
+msgstr "槴毿鍕 歑歖 %c"
+
+#: makeinfo/makeinfo.c:370
+#, c-format
+msgid "Try `%s --help' for more information.\n"
+msgstr ".`%s --help' 儊 礹 鳺欚餤n"
+
+#: makeinfo/makeinfo.c:373
+#, c-format
+msgid "Usage: %s [OPTION]... TEXINFO-FILE...\n"
+msgstr "%s [臄謮濊麀]... TEXINFO-礭毿... :槴澺 濻樈\n"
+
+#: makeinfo/makeinfo.c:376
+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:380
+#, c-format
+msgid ""
+"General options:\n"
+" --error-limit=NUM quit after NUM errors (default %d).\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"
+" --reference-limit=NUM warn about at most NUM references (default %"
+"d).\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:394
+#, no-wrap
+msgid ""
+"Output format selection (default is to produce Info):\n"
+" --docbook output DocBook rather than Info.\n"
+" --html output HTML rather than Info.\n"
+" --xml output XML (TexinfoML) rather than Info.\n"
+msgstr ""
+" :鳻醵 鴅鷿 鼞諃\n"
+" .Info 翴纕 DocBook 鴅鷿酃 鳻 瀇 --docbook\n"
+" .Info 翴纕 HTML 鴅鷿酃 鳻 瀇 --html\n"
+" .Info 翴纕 XML 鴅鷿酃 鳻 瀇 --xml\n"
+
+#: makeinfo/makeinfo.c:401
+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 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 (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:415
+#, c-format
+msgid ""
+"Options for Info and plain text:\n"
+" --enable-encoding output accented and special characters in\n"
+" Info output based on @documentencoding.\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\n"
+" in which they are defined (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:433
+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:442
+#, fuzzy
+msgid ""
+"Conditional processing in input:\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"
+" --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"
+msgstr ""
+" :鳻欒 僽槴 蜲摋瀙n"
+" .HTML 歑歖 鳻醵 縺 樦濊 @html- @ifhtml 蝁 --ifhtml\n"
+" .HTML 馲 鳻醵 縺 樦濊 @ifinfo- 黓錒 蝁 --ifinfo\n"
+" .--no-split 襜鍕;@tex- @iftex- 黓錒 蝁 --iftex\n"
+" .@html- @ifhtml- 黓錒 蝁譓 憵 --no-ifhtml\n"
+" .@ifinfo- 黓錒 蝁譓 憵 --no-ifinfo\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"
+msgstr ""
+" :鳻醵 鴅鷿酃 僸樦 @if... 樥蹗 鷿摥 懠賧 鼞鸅\n"
+" ;臄曒醲 艛歖 礹毈 擫 曒醲 --ifhtml ,HTML 馲 鳻醵 縺\n"
+" .臄曒醲 艛歖 礹毈 擫 曒醲 --ifinfo ,黓錒 樈 Info 馲 鳻醵 縺\n"
+
+#: makeinfo/makeinfo.c:461
+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 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:570 makeinfo/makeinfo.c:593 makeinfo/makeinfo.c:655
+#: makeinfo/makeinfo.c:676
+#, c-format
+msgid "%s: %s arg must be numeric, not `%s'.\n"
+msgstr ".%s 毉濊麀 鷿摥 %s 嬞" 鸁謻 ,澮鍷 麃鍷禘 歑歖 `%s'\n"
+
+#: makeinfo/makeinfo.c:583
+#, c-format
+msgid "Couldn't open macro expansion output `%s'"
+msgstr "`%s' 氂欑 槦踕 鳻 賟酃 僶蠳"
+
+#: makeinfo/makeinfo.c:586
+msgid "Cannot specify more than one macro expansion output"
+msgstr "氂欑鍱 槦踕 鳻鐔 蜭 礭毿 蠲 毉瀄 燿潞"
+
+#: makeinfo/makeinfo.c:624
+#, 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:665
+#, 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:723
+#, c-format
+msgid "%s: missing file argument.\n"
+msgstr ".礭毿 薋 欘 %s 潞錹餤n"
+
+#: makeinfo/makeinfo.c:898
+#, c-format
+msgid "Expected `%s'"
+msgstr "`%s' 毇鐇 僸 櫡"
+
+#: makeinfo/makeinfo.c:1365
+msgid "File exists, but is not a directory"
+msgstr "噈氃 歑謮僓 臄澥 礭毿 僪闉"
+
+#: makeinfo/makeinfo.c:1366
+#, c-format
+msgid "Can't create directory `%s': %s"
+msgstr "`%s' 僸玃 鼞灖 (%s) 僶蠳"
+
+#: makeinfo/makeinfo.c:1414
+#, c-format
+msgid "No `%s' found in `%s'"
+msgstr "`%s' 僪闉 鳭 `%s' 礭毿"
+
+#: makeinfo/makeinfo.c:1496
+#, c-format
+msgid "%s: Skipping macro expansion to stdout as Info output is going there.\n"
+msgstr "%s: .薋 櫇槶 鳻鐒 翴 樘霘樥 潞蠳 鳻 籓欙 氂欑 槦踕踊n"
+
+#: makeinfo/makeinfo.c:1526
+#, c-format
+msgid "Making %s file `%s' from `%s'.\n"
+msgstr ".%s 鴅鷿酃 `%s'- `%s' 礭毿 蝁襜\n"
+
+#: makeinfo/makeinfo.c:1561
+#, c-format
+msgid "This is %s, produced by makeinfo version %s from %s.\n"
+msgstr "This is %s, produced by makeinfo version %s from %s.\n"
+
+#: makeinfo/makeinfo.c:1583
+#, 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:1627
+#, c-format
+msgid "%s: Removing output file `%s' due to errors; use --force to preserve.\n"
+msgstr "%s: .氂霘 --force- 霝 ;樦蠳 暠 玂鍣 `%s' 鳻 礭毿\n"
+
+#: makeinfo/makeinfo.c:1853
+#, c-format
+msgid "Unknown command `%s'"
+msgstr "`%s' 齴槴-澬憼 魡鷿"
+
+#: makeinfo/makeinfo.c:1875
+#, c-format
+msgid "Use braces to give a command as an argument to @%s"
+msgstr "臄旚懤勷 臄澮瞂鼁 蕖氀 ,@%s- 麃鍷禘 僸噁 魡鷿嘵 殫"
+
+#: makeinfo/makeinfo.c:2068
+#, c-format
+msgid "%c%s expected `{...}'"
+msgstr "`{...}'- 勱瀄 %c%s"
+
+#: makeinfo/makeinfo.c:2098
+msgid "Unmatched }"
+msgstr "瞂-櫆 樦 毉僓 }"
+
+#: makeinfo/makeinfo.c:2148
+msgid "NO_NAME!"
+msgstr "NO_NAME!"
+
+#: makeinfo/makeinfo.c:2169
+#, c-format
+msgid "%c%s missing close brace"
+msgstr "%c%s- 欘 潞鍣 鸀殥"
+
+#: makeinfo/makeinfo.c:2958
+msgid "First argument to cross-reference may not be empty"
+msgstr "玃 樥僶 懤錁 歑歖 鷿澥 檛 櫇僤 麃鍷禘"
+
+#: makeinfo/makeinfo.c:3018 makeinfo/makeinfo.c:3236 makeinfo/xml.c:1340
+msgid "see "
+msgstr "see "
+
+#: makeinfo/makeinfo.c:3018
+msgid "See "
+msgstr "See "
+
+#: makeinfo/makeinfo.c:3164
+#, c-format
+msgid "`.' or `,' must follow cross reference, not %c"
+msgstr "%c 鳭 `,' 樈 `.' 馲摐 膦爦 鷿澥 澮諘"
+
+#: makeinfo/makeinfo.c:3212
+msgid "First argument to @inforef may not be empty"
+msgstr "玃 樥僶 懤錁 歑歖 @inforef 檛 櫇僤 麃鍷禘"
+
+#: makeinfo/makeinfo.c:3427
+#, c-format
+msgid "@image file `%s' (for HTML) not readable: %s"
+msgstr "(HTML 鷿摥 鸁) @image 鷿摥 `%s' 礭毿 骫犪 (%s) 僶蠳"
+
+#: makeinfo/makeinfo.c:3440
+#, c-format
+msgid "No `%s.png' or `.jpg', and no extension supplied"
+msgstr "鸄 鍷濄 僽毇 鳭 樈犩 鳭 .jpg- `%s.png'"
+
+#: makeinfo/makeinfo.c:3490
+#, c-format
+msgid "@image file `%s' (for text) unreadable: %s"
+msgstr "(黓錒 鷿摥 鸁) @image 鷿摥 `%s' 礭毿 骫犪 (%s) 僶蠳"
+
+#: makeinfo/makeinfo.c:3497
+msgid "@image missing filename argument"
+msgstr "@image 僤槼 欘 礭毿 薋"
+
+#: makeinfo/makeinfo.c:3690
+#, c-format
+msgid "{No value for `%s'}"
+msgstr "{No value for `%s'}"
+
+#: makeinfo/makeinfo.c:3744
+#, c-format
+msgid "%c%s requires a name"
+msgstr "薋 鷿 %c%s"
+
+#: makeinfo/makeinfo.c:3850
+#, c-format
+msgid "Reached eof before matching @end %s"
+msgstr "縺漦 @end %s 潞鐔 囔硾 鳻 礭毿"
+
+#: makeinfo/makeinfo.c:4081
+#, c-format
+msgid "`%.40s...' is too long for expansion; not expanded"
+msgstr "摞鷿 鳭 ;槦氃鸉 殫鋋 耪鸆 `%.40s...'"
+
+#: makeinfo/multi.c:226
+msgid "Missing } in @multitable template"
+msgstr "} 欘 @multitable 檛 潞朄"
+
+#: makeinfo/multi.c:302
+#, c-format
+msgid "ignoring stray text `%s' after @multitable"
+msgstr "@multiline 澮諘 `%s' 礹樥 黓錒 澬鍎譓"
+
+#: makeinfo/multi.c:375
+#, c-format
+msgid "Too many columns in multitable item (max %d)"
+msgstr "(%d 蜚 礹槴) multitable 檛 @item- 樍槴 殫 礹樥"
+
+#: makeinfo/multi.c:426
+#, c-format
+msgid "Cannot select column #%d in multitable"
+msgstr "multitable- %d '勷 鳲槴 鼞諃 僶蠳"
+
+#: makeinfo/multi.c:529
+msgid "ignoring @tab outside of multitable"
+msgstr "multitable- 籓賧 @tab- 澬鍎譓"
+
+# The following two look like debugging output, and aren't compiled.
+#: makeinfo/multi.c:565
+msgid "** Multicolumn output from last row:\n"
+msgstr "** Multicolumn output from last row:\n"
+
+#: makeinfo/multi.c:568
+#, c-format
+msgid "* column #%d: output = %s\n"
+msgstr "* column #%d: output = %s\n"
+
+#: makeinfo/node.c:276
+#, c-format
+msgid "Node `%s' previously defined at line %d"
+msgstr "`%s' 噂齌 鸁瞅 鸅 %d 噌潁"
+
+#: makeinfo/node.c:594
+#, c-format
+msgid "Formatting node %s...\n"
+msgstr "...%s 噂齌 蝁襜 襛\n"
+
+#: makeinfo/node.c:655
+#, c-format
+msgid "Node `%s' requires a sectioning command (e.g. %c%s)"
+msgstr "`%s' 噂齌酃 (%c%s 櫇碲) 灚齌 僤槼 蕖氀 "
+
+#: makeinfo/node.c:815
+#, c-format
+msgid "No node name specified for `%c%s' command"
+msgstr "噂齌 薋 鳭 `%c%s' 魡鷿"
+
+#: makeinfo/node.c:856 makeinfo/node.c:1075
+#, c-format
+msgid "Anchor `%s' and node `%s' map to the same file name"
+msgstr "礭毿 薋 漦樈 槴禘漦 `%s' 鷿澥 毇 `%s' 噂齌"
+
+#: makeinfo/node.c:859
+msgid "This @anchor command ignored; references to it will not work"
+msgstr "樦覶 鳭 樉 毇 憵 臄鷿澥 ;譐槦 鳭 樉 @anchor 僤槼"
+
+#: makeinfo/node.c:861 makeinfo/node.c:1078
+msgid "Rename this anchor or use the `--no-split' option"
+msgstr "`--no-split' 毉濊麀 霝 樈 毇 薋 僽"
+
+#: makeinfo/node.c:891
+#, c-format
+msgid "Unexpected string at end of split-HTML file `%s'"
+msgstr "`%s' 籧樄 HTML 礭毿 翴濄 僸殦-澬憼 緪鸄"
+
+#: makeinfo/node.c:920
+msgid "Node:"
+msgstr "Node:"
+
+#: makeinfo/node.c:930
+msgid "Next:"
+msgstr "Next:"
+
+#: makeinfo/node.c:940
+msgid "Previous:"
+msgstr "Previous:"
+
+#: makeinfo/node.c:950
+msgid "Up:"
+msgstr "Up:"
+
+#: makeinfo/node.c:1072
+#, c-format
+msgid "Anchors `%s' and `%s' map to the same file name"
+msgstr "礭毿 薋 漦樈 槴禘漦 `%s- `%s' 鷿澥 樥漦"
+
+#: makeinfo/node.c:1077
+msgid "@anchor command ignored; references to it will not work"
+msgstr "樦覶 鳭 樉 毇 憵 臄鷿澥 ;譐槦 鳭 @anchor 僤槼"
+
+#: makeinfo/node.c:1277
+#, c-format
+msgid "%s reference to nonexistent node `%s'"
+msgstr "%s `%s' 鍣澥 僽謮僓 噂齌鐔 僸潞醵"
+
+#: makeinfo/node.c:1294
+msgid "Menu"
+msgstr "鴇欚"
+
+#: makeinfo/node.c:1296
+msgid "Cross"
+msgstr "鷿澥"
+
+#: makeinfo/node.c:1380
+#, c-format
+msgid "Next field of node `%s' not pointed to"
+msgstr "噌緗 劋殧犩 僽歖 `%s' 噂齌 檛 Next 鳲 噂齌醵"
+
+#: makeinfo/node.c:1383
+#, c-format
+msgid "This node (%s) has the bad Prev"
+msgstr "毇禊 Prev 鳲 曒 骫 (%s) 樉 噂齌"
+
+#: makeinfo/node.c:1395
+msgid "Prev"
+msgstr "Prev 鳲"
+
+#: makeinfo/node.c:1438
+#, c-format
+msgid "Prev field of node `%s' not pointed to"
+msgstr "噌緗 劋殧犩 僽歖 `%s' 噂齌 檛 Prev 鳲 噂齌醵"
+
+#: makeinfo/node.c:1442
+#, c-format
+msgid "This node (%s) has the bad Next"
+msgstr "毇禊 Next 鳲 曒 骫 (%s) 樉 噂齌"
+
+#: makeinfo/node.c:1454
+#, c-format
+msgid "`%s' has no Up field"
+msgstr "Up 鳲 毉 `%s'-"
+
+#: makeinfo/node.c:1457
+msgid "Up"
+msgstr "Up 鳲"
+
+#: makeinfo/node.c:1523
+#, c-format
+msgid "Node `%s' lacks menu item for `%s' despite being its Up target"
+msgstr "噌緗 襢暡霘 鴇欚 鶅襙 毉 憼 ,`%s' 曒 襢暡 `%s' 噂齌 檛 Up 鳲"
+
+#: makeinfo/node.c:1552
+#, c-format
+msgid "node `%s' has been referenced %d times"
+msgstr "`%s' 噂齌鐔 臄鷿澥 %d 澬欚"
+
+#: makeinfo/node.c:1566
+#, c-format
+msgid "unreferenced node `%s'"
+msgstr "鷿澥 鶆 毉 `%s' 噂齌鐔"
+
+#: makeinfo/sectioning.c:117
+#, c-format
+msgid "Appendix %c "
+msgstr "Appendix %c "
+
+#: makeinfo/sectioning.c:356 makeinfo/sectioning.c:444
+#, c-format
+msgid "Internal error (search_sectioning) \"%s\"!"
+msgstr "!\"%s\" (search_sectioning) 濎潞 僽錼 檉"
+
+#: makeinfo/sectioning.c:502
+#, c-format
+msgid "%c%s is obsolete; use %c%s instead"
+msgstr "%c%s- 霝僶 鶅蜚 ;蹠樥 僽毈 %c%s 魡鷿"
+
+#: makeinfo/sectioning.c:518
+#, c-format
+msgid "Node with %ctop as a section already exists"
+msgstr "罾毿 噌蜾槼 鸅 %ctop 艜 噂齌"
+
+#: makeinfo/sectioning.c:526
+#, c-format
+msgid "Here is the %ctop node"
+msgstr "%ctop 虀濊 檛 翴纕 槼"
+
+#: makeinfo/sectioning.c:543
+#, c-format
+msgid "%ctop used before %cnode, defaulting to %s"
+msgstr "濎瓙 @node 澬鐙槼 ,%cnode 潞鐔 %ctop- 嘵霝 %s 噂齌"
+
+#: makeinfo/toc.c:221 makeinfo/toc.c:298 makeinfo/toc.c:299
+msgid "Table of Contents"
+msgstr "Table of Contents"
+
+#: makeinfo/toc.c:330 makeinfo/toc.c:366 makeinfo/toc.c:367
+msgid "Short Contents"
+msgstr "Short Contents"
+
+#: makeinfo/toc.c:406
+#, c-format
+msgid "%s: TOC should be here, but it was not found"
+msgstr "僪闉 鳭 罻 ,%s 礭毿 樥僶 僸 鷿鍗 臄謮潞 瀇漦"
+
+#: makeinfo/xml.c:1108
+#, c-format
+msgid "@image file `%s' unreadable: %s"
+msgstr "@image 鷿摥 `%s' 礭毿 骫犪 (%s) 僶蠳"
+
+#: util/install-info.c:151
+#, c-format
+msgid "%s: warning: "
+msgstr "%s: warning: "
+
+#: util/install-info.c:176 util/install-info.c:189
+msgid "virtual memory exhausted"
+msgstr "濇骭鼞槼 櫇齴緛 囔硾"
+
+#: util/install-info.c:232
+#, c-format
+msgid " for %s"
+msgstr " for %s"
+
+#: util/install-info.c:381
+#, c-format
+msgid "\tTry `%s --help' for a complete list of options.\n"
+msgstr ".臄謮濊麀 檛 魡斁 儋澺 憼籧 `%s --help' 儊礒n"
+
+#: util/install-info.c:389
+#, c-format
+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 [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"
+
+#: util/install-info.c:444
+#, 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"
+"* Menu:\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"
+
+#: util/install-info.c:467
+#, c-format
+msgid "%s: could not read (%s) and could not create (%s)\n"
+msgstr "%s 礭毿 檛 (%s) 魡澮欒 檷 (%s) 噌瀄殧 檷 僶蠳\n"
+
+#: util/install-info.c:551
+#, c-format
+msgid "%s: empty file"
+msgstr "玃 歑毈 %s 礭毿"
+
+#: util/install-info.c:866 util/install-info.c:906
+msgid "START-INFO-DIR-ENTRY without matching END-INFO-DIR-ENTRY"
+msgstr "縺漦 END-INFO-DIR-ENTRY 鳭 START-INFO-DIR-ENTRY"
+
+#: util/install-info.c:901
+msgid "END-INFO-DIR-ENTRY without matching START-INFO-DIR-ENTRY"
+msgstr "縺漦 START-INFO-DIR-ENTRY 鳭 END-INFO-DIR-ENTRY"
+
+#: util/install-info.c:1150 util/install-info.c:1160
+#, c-format
+msgid "%s: Specify the Info directory only once.\n"
+msgstr ".蝁憼 諘 艜 %s- Info 澭玃 毉瀄 燿潞\n"
+
+#: util/install-info.c:1195
+#, c-format
+msgid "%s: Specify the Info file only once.\n"
+msgstr ".蝁憼 諘 艜 %s- Info 礭毿 毉瀄 燿潞\n"
+
+#: util/install-info.c:1244
+#, c-format
+msgid "excess command line argument `%s'"
+msgstr "`%s' 礹樥 麃鍷禘"
+
+#: util/install-info.c:1248
+msgid "No input file specified; try --help for more information."
+msgstr ".噌羬 憼籧 --help 儊 ;鳻 礭毿 櫇瀄 毉"
+
+#: util/install-info.c:1251
+msgid "No dir file specified; try --help for more information."
+msgstr ".噌羬 憼籧 --help 儊 ;dir 礭毿 櫇瀄 毉"
+
+#: util/install-info.c:1273
+#, c-format
+msgid "no info dir entry in `%s'"
+msgstr "`%s'- 澺僤 鴇欚 濊澽 毉"
+
+#: util/install-info.c:1388
+#, c-format
+msgid "menu item `%s' already exists, for file `%s'"
+msgstr "`%s' 鶅襙 澺僤 鴇欚 臄澥 鸅 `%s' 礭毿"
+
+#: util/install-info.c:1411
+#, c-format
+msgid "no entries found for `%s'; nothing deleted"
+msgstr "玂闉 鳭 翴擫 ;`%s' 鷿摥 鴇欚 濊澽 樈犩 鳭"
+
+#: util/texindex.c:245
+msgid "display this help and exit"
+msgstr "潞錹儋 僪 僿 噌羬 膲 碢"
+
+#: util/texindex.c:247
+msgid "keep temporary files around after processing"
+msgstr "蜲摋蟼 膵儋 臄爦歑 臄潞鍻 臄攠 玂霝 憵"
+
+#: util/texindex.c:249
+msgid "do not keep temporary files around after processing (default)"
+msgstr "(蔌"霟) 蜲摋蟼 膵儋 臄爦歑 臄潞鍻 臄攠 玂"
+
+#: util/texindex.c:251
+msgid "send output to FILE"
+msgstr "FILE 礭毿 鳻 僽醵"
+
+#: util/texindex.c:253
+msgid "display version information and exit"
+msgstr "僪 潞錹 壛殪 曒 蠆濎 碢"
+
+#: util/texindex.c:264
+#, c-format
+msgid "Usage: %s [OPTION]... FILE...\n"
+msgstr "%s [OPTION]... FILE... :槴澺 濻樈\n"
+
+#: util/texindex.c:265
+msgid "Generate a sorted index for each TeX output FILE.\n"
+msgstr ".TeX 嬞" 朄鋺 FILE 礭毿 擫 毉毇闇 壝蜸歖 瀇踊n"
+
+#: util/texindex.c:268
+#, 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:270
+msgid ""
+"\n"
+"Options:\n"
+msgstr ""
+"\n"
+" :臄謮濊麀\n"
+
+#: util/texindex.c:887 util/texindex.c:921 util/texindex.c:997
+#: util/texindex.c:1025
+#, c-format
+msgid "%s: not a texinfo index file"
+msgstr "texinfo 檛 壝蜸歖 礭毿 歑歖 `%s'"
+
+#: util/texindex.c:982
+#, c-format
+msgid "failure reopening %s"
+msgstr "%s 檛 蜲賧 儃澬酃 僶蠳"
+
+#: util/texindex.c:1224
+#, c-format
+msgid "No page number in %s"
+msgstr "蜲闅 欚勷 毉 %s-"
+
+#: util/texindex.c:1295
+#, c-format
+msgid "entry %s follows an entry with a secondary name"
+msgstr "潞 薋 曒 鴇欚 槦蘹 颬 %s 鴇欚"
+
+#: util/texindex.c:1633
+#, c-format
+msgid "%s; for file `%s'.\n"
+msgstr ".%s 僶蠳 噁犪 `%s' 礭毿塿n"
diff --git a/gnu/usr.bin/texinfo/po/hr.gmo b/gnu/usr.bin/texinfo/po/hr.gmo
new file mode 100644
index 00000000000..ff3c2c64448
--- /dev/null
+++ b/gnu/usr.bin/texinfo/po/hr.gmo
Binary files differ
diff --git a/gnu/usr.bin/texinfo/po/hr.po b/gnu/usr.bin/texinfo/po/hr.po
new file mode 100644
index 00000000000..3d64d1528bb
--- /dev/null
+++ b/gnu/usr.bin/texinfo/po/hr.po
@@ -0,0 +1,2914 @@
+# Texinfo project .po file for hr_HR localization
+# Copyright (C) 2002 Free Software Foundation, Inc.
+# Mirsad Todorovac <mtodorov_69@yahoo.com>, 2002.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: texinfo 4.0f\n"
+"POT-Creation-Date: 2002-04-01 06:10-0800\n"
+"PO-Revision-Date: 2002-01-24 00:14-MET\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"
+
+#: info/echo-area.c:283 info/session.c:712
+msgid "Move forward a character"
+msgstr "Pomakni se znak unaprijed"
+
+#: info/echo-area.c:295 info/session.c:728
+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鋀tak teku熰 linije"
+
+#: info/echo-area.c:312
+msgid "Move to the end of this line"
+msgstr "Pomakni se na kraj teku熰 linije"
+
+#: info/echo-area.c:320 info/session.c:746
+msgid "Move forward a word"
+msgstr "Pomakni se rije unaprijed"
+
+#: info/echo-area.c:360 info/session.c:795
+msgid "Move backward a word"
+msgstr "Pomakni se rije unazad"
+
+#: info/echo-area.c:400
+msgid "Delete the character under the cursor"
+msgstr "Obri隘 znak ispod kursora"
+
+#: info/echo-area.c:430
+msgid "Delete the character behind the cursor"
+msgstr "Obri隘 znak iza kursora"
+
+#: info/echo-area.c:451
+msgid "Cancel or quit operation"
+msgstr "Poni靖i ili prekini operaciju"
+
+#: info/echo-area.c:466
+msgid "Accept (or force completion of) this line"
+msgstr "Prihva潻nje (ili tra頡nje kompletiranja) linije"
+
+#: info/echo-area.c:471
+msgid "Insert next character verbatim"
+msgstr "Umetni slijede熵 znak doslovno"
+
+#: info/echo-area.c:479
+msgid "Insert this character"
+msgstr "Umetni teku熵 znak"
+
+#: info/echo-area.c:497
+msgid "Insert a TAB character"
+msgstr "Umetni znak TAB"
+
+#: info/echo-area.c:504
+msgid "Transpose characters at point"
+msgstr "Zamijeni mjesta znakovima kod kurzora"
+
+#: info/echo-area.c:555
+msgid "Yank back the contents of the last kill"
+msgstr "Povrati zadnji obrisani sadr靠j"
+
+#: info/echo-area.c:562
+msgid "Kill ring is empty"
+msgstr "Spremnik za obrisani sadr靠j je prazan"
+
+#: info/echo-area.c:575
+msgid "Yank back a previous kill"
+msgstr "Povrati prije obrisani sadr靠j"
+
+#: info/echo-area.c:608
+msgid "Kill to the end of the line"
+msgstr "Obri隘 tekst do kraja retka"
+
+#: info/echo-area.c:621
+msgid "Kill to the beginning of the line"
+msgstr "Obri隘 tekst do po鋀tka retka"
+
+#: info/echo-area.c:633
+msgid "Kill the word following the cursor"
+msgstr "Obri隘 rije iza kurzora"
+
+#: info/echo-area.c:652
+msgid "Kill the word preceding the cursor"
+msgstr "Obri隘 rije ispred kurzora"
+
+#: info/echo-area.c:872 info/echo-area.c:932
+msgid "No completions"
+msgstr "Ne mogu kompletirati"
+
+#: info/echo-area.c:874
+msgid "Not complete"
+msgstr "Nije dovr鈹no"
+
+#: info/echo-area.c:919
+msgid "List possible completions"
+msgstr "Izlistaj mogu熰 varijante kompletiranja"
+
+#: info/echo-area.c:936
+msgid "Sole completion"
+msgstr "Jedino mogu熰 kompletiranje"
+
+#: info/echo-area.c:945
+msgid "One completion:\n"
+msgstr "Jedno kompletiranje:\n"
+
+#: info/echo-area.c:946
+#, c-format
+msgid "%d completions:\n"
+msgstr "%d kompletiranja:\n"
+
+#: info/echo-area.c:1092
+msgid "Insert completion"
+msgstr "Umetni kompletiranje"
+
+#: info/echo-area.c:1225
+msgid "Building completions..."
+msgstr "Izgra繠jem 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養 fusnote povezane s ovim 鋦orom u drugom prozoru"
+
+#: info/footnotes.h:26
+msgid "---------- Footnotes ----------"
+msgstr "---------- Fusnote ----------"
+
+#: info/indices.c:175
+msgid "Look up a string in the index for this file"
+msgstr "Potra養 niz u indeksu ove datoteke"
+
+#: info/indices.c:205
+msgid "Finding index entries..."
+msgstr "Tra養m stavke indeksa..."
+
+#: info/indices.c:212
+msgid "No indices found."
+msgstr "Nije prona簟n indeks."
+
+#: info/indices.c:222
+msgid "Index entry: "
+msgstr "Stavka indeksa: "
+
+#: info/indices.c:332
+msgid ""
+"Go to the next matching index item from the last `\\[index-search]' command"
+msgstr ""
+"Idi na slijede獘 podudaraju獘 stavki indeksa zadnje `\\[index-search]' "
+"naredbe"
+
+#: info/indices.c:342
+msgid "No previous index search string."
+msgstr "Nema prethodnog zadanog niza za pretra養vanje indeksa."
+
+#: info/indices.c:349
+msgid "No index entries."
+msgstr "Nema stavaka indeksa."
+
+#: info/indices.c:382
+#, c-format
+msgid "No %sindex entries containing \"%s\"."
+msgstr "Nema stavaka %sindeksa koje sadr頡 \"%s\"."
+
+#: info/indices.c:383
+msgid "more "
+msgstr "jo "
+
+#: info/indices.c:393
+msgid "CAN'T SEE THIS"
+msgstr "NE MOGU VIDJETI OVO"
+
+#: info/indices.c:429
+#, c-format
+msgid "Found \"%s\" in %s. (`\\[next-index-match]' tries to find next.)"
+msgstr ""
+"Prona鈴o \"%s\" u %s. (`\\[next-index-match]' poku鈴va na熵 slijede熵.)"
+
+#: info/indices.c:549
+#, c-format
+msgid "Scanning indices of \"%s\"..."
+msgstr "Skeniram indekse od \"%s\"..."
+
+#: info/indices.c:603
+#, c-format
+msgid "No available info files have \"%s\" in their indices."
+msgstr "Niti jedna raspolo養va info datoteka ne sadr養 \"%s\" u svom indeksu."
+
+#: info/indices.c:632
+msgid "Grovel all known info file's indices for a string and build a menu"
+msgstr "Propu養 kroz sve poznate indekse u potrazi za nizom i slo養 meni"
+
+#: info/indices.c:636
+msgid "Index apropos: "
+msgstr "Indeks apropos: "
+
+#: info/indices.c:666
+#, c-format
+msgid ""
+"\n"
+"* Menu: Nodes whoses indices contain \"%s\":\n"
+msgstr ""
+"\n"
+"* Meni: vorovi 鋱ji indeksi sadr頡 \"%s\":\n"
+
+#: info/info.c:260 info/infokey.c:884
+msgid "Try --help for more information.\n"
+msgstr "Poku鈴jte --help za vi鈹 informacija.\n"
+
+#: info/info.c:279 info/infokey.c:139 makeinfo/makeinfo.c:689
+#: util/install-info.c:1224 util/texindex.c:338
+#, c-format
+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 ""
+
+#: info/info.c:462
+#, c-format
+msgid "no index entries found for `%s'\n"
+msgstr "nijedna stavka indeksa nije na簟na za `%s'\n"
+
+#: info/info.c:555
+#, fuzzy
+msgid " -b, --speech-friendly be friendly to speech synthesizers.\n"
+msgstr ""
+" --speech-friendly vi鈹 prijateljski prema sintetizatorima govora.\n"
+
+#: info/info.c:562
+#, fuzzy, c-format
+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 ""
+"Kori靖enje: %s [OPCIJA]... [STAVKA-MENIJA...]\n"
+"\n"
+"itanje dokumentacije u Info formatu.\n"
+"\n"
+"Options:\n"
+" --apropos=SUBJEKT potra養 SUBJEKT u svim indeksima svih priru鋝ika.\n"
+" --directory=DIR didaj DIR u INFOPATH.\n"
+" --dribble=IMEDAT zapamti korisnikovo tipkanje u IMEDAT.\n"
+" --file=IMEDATOTEKE zadaje ime Info datoteke koju se posje獘je.\n"
+" --help ispi隘 ovu pomo i zavr隘 s radom.\n"
+" --index-search=NIZ idi na 鋦or na koji pokazuje stavka indeksa NIZ.\n"
+" --node=IMEVORA zadaje 鋦orove u prvoj posje熰noj info datoteci.\n"
+" --output=IMEDATOTEKE ispi隘 izabrane 鋦orove u IMEDATOTEKE.\n"
+" --restore=IMEDATOTEKE 鋱taj inicijalne tipke iz IMEDATOTEKE.\n"
+" --show-options, --usage idi na 鋦or sa opcijama komandne linije.\n"
+"%s --subnodes rekurzivno ispi隘 stavke menija.\n"
+" --vi-keys koristi tipke kao 靖o su u vi-u i less-u.\n"
+" --version ispi隘 informaciju o verziji i zavr隘 s radom.\n"
+"\n"
+"Prvi argument koji nije opcija, ako je prisutan, je stavka menija od koje\n"
+"se po鋱nje; nju se tra養 u svim `dir' daotekama kroz INFOPATH.\n"
+"Ako nije prisutan, info spaja (merge) sve `dir' datoteke i prikazuje\n"
+"resultat. Eventualni preostali argumenti se tretiraju kao imena stavki\n"
+"menija relativno od inicijalno posje熰nog 鋦ora.\n"
+"\n"
+"Primjeri:\n"
+" info prika養 vr雉i dir meni\n"
+" info emacs zapo鋝i od emacs 鋦ora iz vr雉og dir-a\n"
+" info emacs buffers zapo鋝i u buffers 鋦oru unutar emacs "
+"priru鋝ika\n"
+" info --show-options emacs zapo鋝i u 鋦oru s emacsovim komandnim opcijama\n"
+" info -f ./foo.info prika養 datoteku ./foo.info, zaobilaze熵 dir\n"
+"\n"
+"Izvje靖aje o bugovima molimo slati emailom na bug-texinfo@gnu.org,\n"
+"generalna pitanja i diskusije na help-texinfo@gnu.org.\n"
+"Pitanja i kritike glede translacije slati na lokalizacija@linux.hr.\n"
+
+#: info/info.c:598 info/infokey.c:903 makeinfo/makeinfo.c:474
+#: util/install-info.c:421 util/texindex.c:286
+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:632
+#, c-format
+msgid "Cannot find node `%s'."
+msgstr "Ne mogu na熵 鋦or `%s'."
+
+#: info/info.c:633
+#, c-format
+msgid "Cannot find node `(%s)%s'."
+msgstr "Ne mogu na熵 鋦or `(%s)%s'."
+
+#: info/info.c:634
+msgid "Cannot find a window!"
+msgstr "Ne mogu na熵 prozor!"
+
+#: info/info.c:635
+msgid "Point doesn't appear within this window's node!"
+msgstr "To鋘a se ne nalazi unutar 鋦ora ovog prozora!"
+
+#: info/info.c:636
+msgid "Cannot delete the last window."
+msgstr "Ne mogu dokinuti zadnji prozor."
+
+#: info/info.c:637
+msgid "No menu in this node."
+msgstr "Nema menija u ovom 鋦oru."
+
+#: info/info.c:638
+msgid "No footnotes in this node."
+msgstr "Nema fusnota u ovom 鋦oru."
+
+#: info/info.c:639
+msgid "No cross references in this node."
+msgstr "Nema unakrsnih referenci u ovom 鋦oru."
+
+#: info/info.c:640
+#, c-format
+msgid "No `%s' pointer for this node."
+msgstr "Nema `%s' pokaziva醀 za ovaj 鋦or."
+
+#: info/info.c:641
+#, c-format
+msgid "Unknown Info command `%c'; try `?' for help."
+msgstr "Nepoznata Info naredba `%c'; poku鈴jte `?' za pomo."
+
+#: info/info.c:642
+#, 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:643
+msgid "You are already at the last page of this node."
+msgstr "Ve se nalazite na zadnjoj stranici ovog 鋦ora."
+
+#: info/info.c:644
+msgid "You are already at the first page of this node."
+msgstr "Ve se nalazite na prvoj stranici ovog 鋦ora."
+
+#: info/info.c:645
+msgid "Only one window."
+msgstr "Samo jedan prozor."
+
+#: info/info.c:646
+msgid "Resulting window would be too small."
+msgstr "Nastali prozor bi bio premalen."
+
+#: info/info.c:647
+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 info/infodoc.c:94
+#, fuzzy
+msgid ""
+"Basic Commands in Info Windows\n"
+"******************************\n"
+msgstr "Osnovne naredbe u Info Prozorima\n"
+
+#: info/infodoc.c:48
+#, fuzzy
+msgid "\\%-10[quit-help] Quit this help.\n"
+msgstr " %-10s Napusti ovu pomo.\n"
+
+#: info/infodoc.c:49
+#, fuzzy
+msgid "\\%-10[quit] Quit Info altogether.\n"
+msgstr " %-10s Potpuno zavr隘 s radom (Quit).\n"
+
+#: info/infodoc.c:50
+#, fuzzy
+msgid "\\%-10[get-info-help-node] Invoke the Info tutorial.\n"
+msgstr " %-10s Pozovi Info priru鋝ik.\n"
+
+#: info/infodoc.c:52 info/infodoc.c:101
+#, fuzzy
+msgid ""
+"Selecting other nodes:\n"
+"----------------------\n"
+msgstr "Selektiranje drugih 鋦orova:\n"
+
+#: info/infodoc.c:54
+#, fuzzy
+msgid "\\%-10[next-node] Move to the \"next\" node of this node.\n"
+msgstr " %-10s Idi na slijede熵 (`next') 鋦or u odnosu na ovaj.\n"
+
+#: info/infodoc.c:55
+#, fuzzy
+msgid "\\%-10[prev-node] Move to the \"previous\" node of this node.\n"
+msgstr " %-10s Idi na prethodni (`previous') 鋦or u odnosu na ovaj.\n"
+
+#: info/infodoc.c:56
+#, fuzzy
+msgid "\\%-10[up-node] Move \"up\" from this node.\n"
+msgstr " %-10s Idi navi鈹 (`up') od ovog 鋦ora.\n"
+
+#: info/infodoc.c:57
+#, fuzzy
+msgid ""
+"\\%-10[menu-item] Pick menu item specified by name.\n"
+" Picking a menu item causes another node to be selected.\n"
+msgstr " Odabiranje stavke menija selektira drugi 鋦or.\n"
+
+#: info/infodoc.c:59
+#, fuzzy
+msgid ""
+"\\%-10[xref-item] Follow a cross reference. Reads name of reference.\n"
+msgstr " %-10s Slijedi unakrsnu referencu. ita ime reference.\n"
+
+#: info/infodoc.c:60
+#, fuzzy
+msgid "\\%-10[history-node] Move to the last node seen in this window.\n"
+msgstr " %-10s Pomakni se do posljednjeg vidljivog 鋦ora u ovom prozoru.\n"
+
+#: info/infodoc.c:61
+#, fuzzy
+msgid ""
+"\\%-10[move-to-next-xref] Skip to next hypertext link within this node.\n"
+msgstr " %-10s Presko鋱 do slijede熰g hipertekst linka unutar ovog 鋦ora.\n"
+
+#: info/infodoc.c:62
+#, fuzzy
+msgid ""
+"\\%-10[move-to-prev-xref] Skip to previous hypertext link within this "
+"node.\n"
+msgstr " %-10s Presko鋱 do slijede熰g hipertekst linka unutar ovog 鋦ora.\n"
+
+#: info/infodoc.c:63
+#, fuzzy
+msgid ""
+"\\%-10[select-reference-this-line] Follow the hypertext link under cursor.\n"
+msgstr " %-10s SLijedi hipertekst link ispod kursora.\n"
+
+#: info/infodoc.c:64
+#, fuzzy
+msgid ""
+"\\%-10[dir-node] Move to the `directory' node. Equivalent to `\\[goto-"
+"node] (DIR)'.\n"
+msgstr " %-10s Pomakni se na `directory' 鋦or. Ekvivalentno `g (DIR)'.\n"
+
+#: info/infodoc.c:65
+#, fuzzy
+msgid ""
+"\\%-10[top-node] Move to the Top node. Equivalent to `\\[goto-node] Top'.\n"
+msgstr " %-10s Idi na Top (vr雉i) 鋦or. Ekvivalentno `g Top'.\n"
+
+#: info/infodoc.c:67 info/infodoc.c:115
+#, fuzzy
+msgid ""
+"Moving within a node:\n"
+"---------------------\n"
+msgstr "Pomicanje unutar 鋦ora:\n"
+
+#: info/infodoc.c:69
+#, fuzzy
+msgid "\\%-10[scroll-forward] Scroll forward a page.\n"
+msgstr " %-10s 'Skrolaj stranicu naprijed.\n"
+
+#: info/infodoc.c:70
+#, fuzzy
+msgid "\\%-10[scroll-backward] Scroll backward a page.\n"
+msgstr " %-10s 'Skrolaj' stranicu unazad.\n"
+
+#: info/infodoc.c:71
+#, fuzzy
+msgid "\\%-10[beginning-of-node] Go to the beginning of this node.\n"
+msgstr " %-10s Idi na po鋀tak ovog 鋦ora.\n"
+
+#: info/infodoc.c:72
+#, fuzzy
+msgid "\\%-10[end-of-node] Go to the end of this node.\n"
+msgstr " %-10s Idi na kraj ovog 鋦ora.\n"
+
+#: info/infodoc.c:73
+#, fuzzy
+msgid "\\%-10[scroll-forward] Scroll forward 1 line.\n"
+msgstr " %-10s 'Skrolaj' naprijed 1 redak.\n"
+
+#: info/infodoc.c:74
+#, fuzzy
+msgid "\\%-10[scroll-backward] Scroll backward 1 line.\n"
+msgstr " %-10s 'Skrolaj' unazad 1 redak.\n"
+
+#: info/infodoc.c:76 info/infodoc.c:124
+#, fuzzy
+msgid ""
+"Other commands:\n"
+"---------------\n"
+msgstr "Druge naredbe:\n"
+
+#: info/infodoc.c:78
+#, fuzzy
+msgid "\\%-10[menu-digit] Pick first ... ninth item in node's menu.\n"
+msgstr " %-10s Odaberi prvu ... devetu stavku u 鋦orovom meniju.\n"
+
+#: info/infodoc.c:79
+#, fuzzy
+msgid "\\%-10[last-menu-item] Pick last item in node's menu.\n"
+msgstr " %-10s Odaberi zadnju stavku u 鋦orovom meniju.\n"
+
+#: info/infodoc.c:80
+#, fuzzy
+msgid ""
+"\\%-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"
+msgstr "datoteke, i selektiraj 鋦or referenciran prvom na簟nom stavkom.\n"
+
+#: info/infodoc.c:82
+#, 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 ""
+" Mo頡te tako簟r uklju鋱ti ime datoteke, kao u (DATOTEKA)"
+"IME_VORA.\n"
+
+#: info/infodoc.c:84
+#, fuzzy
+msgid ""
+"\\%-10[search] Search forward for a specified string\n"
+" and select the node in which the next occurrence is found.\n"
+msgstr ""
+" i selektiraj 鋦or u kojem je slijede潻 pojava niza na簟na.\n"
+
+#: info/infodoc.c:86
+#, 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 ""
+" i selektiraj 鋦or u kojem je slijede潻 pojava niza na簟na.\n"
+
+#: info/infodoc.c:97
+#, c-format
+msgid " %-10s Quit this help.\n"
+msgstr " %-10s Napusti ovu pomo.\n"
+
+#: info/infodoc.c:98
+#, c-format
+msgid " %-10s Quit Info altogether.\n"
+msgstr " %-10s Potpuno zavr隘 s radom (Quit).\n"
+
+#: info/infodoc.c:99
+#, c-format
+msgid " %-10s Invoke the Info tutorial.\n"
+msgstr " %-10s Pozovi Info priru鋝ik.\n"
+
+#: info/infodoc.c:103
+#, c-format
+msgid " %-10s Move to the `next' node of this node.\n"
+msgstr " %-10s Idi na slijede熵 (`next') 鋦or u odnosu na ovaj.\n"
+
+#: info/infodoc.c:104
+#, c-format
+msgid " %-10s Move to the `previous' node of this node.\n"
+msgstr " %-10s Idi na prethodni (`previous') 鋦or u odnosu na ovaj.\n"
+
+#: info/infodoc.c:105
+#, c-format
+msgid " %-10s Move `up' from this node.\n"
+msgstr " %-10s Idi navi鈹 (`up') od ovog 鋦ora.\n"
+
+#: info/infodoc.c:106
+#, c-format
+msgid " %-10s Pick menu item specified by name.\n"
+msgstr " %-10s Odaberi stavku menija specificirane imenom.\n"
+
+#: info/infodoc.c:107
+msgid " Picking a menu item causes another node to be selected.\n"
+msgstr " Odabiranje stavke menija selektira drugi 鋦or.\n"
+
+#: info/infodoc.c:108
+#, 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:109
+#, c-format
+msgid " %-10s Move to the last node seen in this window.\n"
+msgstr " %-10s Pomakni se do posljednjeg vidljivog 鋦ora u ovom prozoru.\n"
+
+#: info/infodoc.c:110
+#, c-format
+msgid " %-10s Skip to next hypertext link within this node.\n"
+msgstr " %-10s Presko鋱 do slijede熰g hipertekst linka unutar ovog 鋦ora.\n"
+
+#: info/infodoc.c:111
+#, c-format
+msgid " %-10s Follow the hypertext link under cursor.\n"
+msgstr " %-10s SLijedi hipertekst link ispod kursora.\n"
+
+#: info/infodoc.c:112
+#, c-format
+msgid " %-10s Move to the `directory' node. Equivalent to `g (DIR)'.\n"
+msgstr " %-10s Pomakni se na `directory' 鋦or. Ekvivalentno `g (DIR)'.\n"
+
+#: info/infodoc.c:113
+#, c-format
+msgid " %-10s Move to the Top node. Equivalent to `g Top'.\n"
+msgstr " %-10s Idi na Top (vr雉i) 鋦or. Ekvivalentno `g Top'.\n"
+
+#: info/infodoc.c:117
+#, c-format
+msgid " %-10s Scroll forward a page.\n"
+msgstr " %-10s 'Skrolaj stranicu naprijed.\n"
+
+#: info/infodoc.c:118
+#, c-format
+msgid " %-10s Scroll backward a page.\n"
+msgstr " %-10s 'Skrolaj' stranicu unazad.\n"
+
+#: info/infodoc.c:119
+#, c-format
+msgid " %-10s Go to the beginning of this node.\n"
+msgstr " %-10s Idi na po鋀tak ovog 鋦ora.\n"
+
+#: info/infodoc.c:120
+#, c-format
+msgid " %-10s Go to the end of this node.\n"
+msgstr " %-10s Idi na kraj ovog 鋦ora.\n"
+
+#: info/infodoc.c:121
+#, c-format
+msgid " %-10s Scroll forward 1 line.\n"
+msgstr " %-10s 'Skrolaj' naprijed 1 redak.\n"
+
+#: info/infodoc.c:122
+#, c-format
+msgid " %-10s Scroll backward 1 line.\n"
+msgstr " %-10s 'Skrolaj' unazad 1 redak.\n"
+
+#: info/infodoc.c:126
+#, c-format
+msgid " %-10s Pick first ... ninth item in node's menu.\n"
+msgstr " %-10s Odaberi prvu ... devetu stavku u 鋦orovom meniju.\n"
+
+#: info/infodoc.c:127
+#, c-format
+msgid " %-10s Pick last item in node's menu.\n"
+msgstr " %-10s Odaberi zadnju stavku u 鋦orovom meniju.\n"
+
+#: info/infodoc.c:128
+#, c-format
+msgid ""
+" %-10s Search for a specified string in the index entries of this Info\n"
+msgstr " %-10s Tra養 zadani niz u indeks stavkama ove Info\n"
+
+#: info/infodoc.c:129
+msgid ""
+" file, and select the node referenced by the first entry "
+"found.\n"
+msgstr "datoteke, i selektiraj 鋦or referenciran prvom na簟nom stavkom.\n"
+
+#: info/infodoc.c:130
+#, c-format
+msgid " %-10s Move to node specified by name.\n"
+msgstr " %-10s Idi na 鋦or zadan imenom.\n"
+
+#: info/infodoc.c:131
+msgid ""
+" You may include a filename as well, as in (FILENAME)NODENAME.\n"
+msgstr ""
+" Mo頡te tako簟r uklju鋱ti ime datoteke, kao u (DATOTEKA)"
+"IME_VORA.\n"
+
+#: info/infodoc.c:132
+#, fuzzy, c-format
+msgid " %-10s Search forward for a specified string,\n"
+msgstr " %-10s Tra養 zadani niz prema naprijed kroz ovu Info datoteku,\n"
+
+#: info/infodoc.c:133 info/infodoc.c:135
+msgid ""
+" and select the node in which the next occurrence is found.\n"
+msgstr ""
+" i selektiraj 鋦or u kojem je slijede潻 pojava niza na簟na.\n"
+
+#: info/infodoc.c:134
+#, fuzzy, c-format
+msgid " %-10s Search backward for a specified string\n"
+msgstr " %-10s Tra養 zadani niz prema natrag u ovoj Info datoteci,\n"
+
+#: info/infodoc.c:313
+msgid "The current search path is:\n"
+msgstr "Trenutni put pretra養vanja je:\n"
+
+#: info/infodoc.c:316
+msgid ""
+"Commands available in Info windows:\n"
+"\n"
+msgstr ""
+"Naredbe raspolo養ve u Info prozorima:\n"
+"\n"
+
+#: info/infodoc.c:319
+msgid ""
+"Commands available in the echo area:\n"
+"\n"
+msgstr ""
+"Naredbe raspolo養ve u echo podru鋟u:\n"
+"\n"
+
+#: info/infodoc.c:340
+#, c-format
+msgid ""
+"The following commands can only be invoked via %s:\n"
+"\n"
+msgstr ""
+"Slijede熰 naredbe mogu biti pozvane pomo獘 %s:\n"
+"\n"
+
+#: info/infodoc.c:343
+msgid ""
+"The following commands cannot be invoked at all:\n"
+"\n"
+msgstr ""
+"Slijede熰 naredbe ne mogu uop熰 biti pozvane:\n"
+"\n"
+
+#: info/infodoc.c:367
+msgid "--- Use `\\[history-node]' or `\\[kill-node]' to exit ---\n"
+msgstr "--- Upotrijebi `\\[history-node]' ili `\\[kill-node]' za izlaz ---\n"
+
+#: info/infodoc.c:477
+msgid "Display help message"
+msgstr "Ispi隘 poruku za pomo"
+
+#: info/infodoc.c:495
+msgid "Visit Info node `(info)Help'"
+msgstr "Posjeti Info 鋦or `(info)Help'"
+
+#: info/infodoc.c:638
+msgid "Print documentation for KEY"
+msgstr "Ispi隘 dokumentaciju za TIPKU"
+
+#: info/infodoc.c:650
+#, c-format
+msgid "Describe key: %s"
+msgstr "Opi隘 tipku: %s"
+
+#: info/infodoc.c:660
+#, c-format
+msgid "ESC %s is undefined."
+msgstr "ESC %s nije definiran."
+
+#: info/infodoc.c:676 info/infodoc.c:703
+#, c-format
+msgid "%s is undefined."
+msgstr "%s nije definiran."
+
+#: info/infodoc.c:724
+#, c-format
+msgid "%s is defined to %s."
+msgstr "%s je definiran kao %s."
+
+#: info/infodoc.c:1151
+msgid "Show what to type to execute a given command"
+msgstr "Poka養 靖o otipkati da se izvr隘 data naredba"
+
+#: info/infodoc.c:1155
+msgid "Where is command: "
+msgstr "Gdje je naredba: "
+
+#: info/infodoc.c:1177
+#, c-format
+msgid "`%s' is not on any keys"
+msgstr "`%s' nije niti na jednoj tipki"
+
+#: info/infodoc.c:1183
+#, c-format
+msgid "%s can only be invoked via %s."
+msgstr "%s mo頡 biti pozvan samo putem %s."
+
+#: info/infodoc.c:1186
+#, c-format
+msgid "%s can be invoked via %s."
+msgstr "%s mo頡 biti pozvan putem %s."
+
+#: info/infodoc.c:1190
+#, c-format
+msgid "There is no function named `%s'"
+msgstr "Ne postoji funkcija `%s'"
+
+#: info/infokey.c:164
+msgid "incorrect number of arguments"
+msgstr "pogre鈴n broj argumenata"
+
+#: info/infokey.c:194
+#, c-format
+msgid "cannot open input file `%s'"
+msgstr "ne mogu otvoriti ulaznu datoteku `%s'"
+
+#: info/infokey.c:207
+#, c-format
+msgid "cannot create output file `%s'"
+msgstr "ne mogu kreirati izlaznu datoteku `%s'"
+
+#: info/infokey.c:217
+#, c-format
+msgid "error writing to `%s'"
+msgstr "gre隕a pri pisanju u `%s'"
+
+#: info/infokey.c:222
+#, c-format
+msgid "error closing output file `%s'"
+msgstr "gre隕a pri zatvaranju izlazne datoteke `%s'"
+
+#: info/infokey.c:443
+msgid "key sequence too long"
+msgstr "niz tipaka preduga醀k"
+
+#: info/infokey.c:521
+msgid "missing key sequence"
+msgstr "nedostaje niz tipaka"
+
+#: info/infokey.c:600
+msgid "NUL character (\\000) not permitted"
+msgstr "NUL znak (\\000) nije dozvoljen"
+
+#: info/infokey.c:629
+#, c-format
+msgid "NUL character (^%c) not permitted"
+msgstr "NUL znak (^%c) nije dozvoljen"
+
+#: info/infokey.c:652
+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:667 info/infokey.c:733
+msgid "section too long"
+msgstr "preduga鋘i odlomak"
+
+#: info/infokey.c:673
+#, c-format
+msgid "unknown action `%s'"
+msgstr "nepoznata akcija `%s'"
+
+#: info/infokey.c:682
+msgid "action name too long"
+msgstr "preduga鋘o ime akcije"
+
+#: info/infokey.c:694
+#, c-format
+msgid "extra characters following action `%s'"
+msgstr "suvi雉i znaci slijede akciju `%s'"
+
+#: info/infokey.c:704
+msgid "missing variable name"
+msgstr "nedostaje ime varijable"
+
+#: info/infokey.c:712
+msgid "missing `=' immediately after variable name"
+msgstr "inedostaje `=' odmah iza imena varijable"
+
+#: info/infokey.c:719
+msgid "variable name too long"
+msgstr "ime varijable preduga鋘o"
+
+#: info/infokey.c:741
+msgid "value too long"
+msgstr "preduga鋘a vrijednost"
+
+#: info/infokey.c:875
+#, c-format
+msgid "\"%s\", line %u: "
+msgstr "\"%s\", redak %u: "
+
+#: info/infokey.c:891
+#, 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 ""
+"Kori靖enje: %s [OPCIJA]... [ULAZNA-DATOTEKA]\n"
+"\n"
+"Opcije:\n"
+" --output DATOTEKA izlaz u DATOTEKA umjesto u $HOME/.info\n"
+" --help ispi隘 ovu pomo i zavr隘.\n"
+" --version ispi隘 informaciju o verziji i zavr隘.\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"
+"奄ljite izvje頊aje u bugovima na email bug-texinfo@gnu.org,\n"
+"op潻 pitanja i diskusije na help-texinfo@gnu.org.\n"
+
+#: info/infomap.c:1397
+#, c-format
+msgid "Ignoring invalid infokey file `%s' - too small"
+msgstr "Ignoriram neispravnu infokey datoteku `%s' - premalena"
+
+#: info/infomap.c:1400
+#, c-format
+msgid "Ignoring invalid infokey file `%s' - too big"
+msgstr "Ignoriram neispravnu infokey datoteku `%s' - prevelika"
+
+#: info/infomap.c:1413
+#, c-format
+msgid "Error reading infokey file `%s' - short read"
+msgstr "Pogre隕a pri 鋱tanju infokey datoteke `%s' - prekratki read"
+
+#: info/infomap.c:1431
+#, c-format
+msgid ""
+"Invalid infokey file `%s' (bad magic numbers) -- run infokey to update it"
+msgstr ""
+"Neispravna infokey datoteka `%s' (pogre雉i magic number) -- pokreni infokey "
+"da se obnovi"
+
+#: info/infomap.c:1437
+#, c-format
+msgid "Your infokey file `%s' is out of date -- run infokey to update it"
+msgstr ""
+"Va鈴 infokey datoteka `%s' je istekla -- pokrenite infokey da se obnovi"
+
+#: info/infomap.c:1450
+#, 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:1470
+#, 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:1608
+msgid "Bad data in infokey file -- some key bindings ignored"
+msgstr ""
+"Pogre雉i podatci u infokey datoteci -- neka povezivanja tipki zanemarena"
+
+#: info/infomap.c:1659
+msgid "Bad data in infokey file -- some var settings ignored"
+msgstr "Pogre雉i podatci u infokey datoteci -- neke var postavke ignorirane"
+
+#: info/m-x.c:70
+msgid "Read the name of an Info command and describe it"
+msgstr "Pro鋱taj ime Info naredbe i opi隘 je"
+
+#: info/m-x.c:74
+msgid "Describe command: "
+msgstr "Opi隘 naredbu: "
+
+#: info/m-x.c:97
+msgid "Read a command name in the echo area and execute it"
+msgstr "Pro鋱taj ime naredbe u echo podru鋟u i izvr隘 je"
+
+#: info/m-x.c:141
+msgid "Cannot execute an `echo-area' command here."
+msgstr "Ne mogu izvr隘ti komandu za echo podru鋟e ovdje."
+
+#: info/m-x.c:157
+msgid "Set the height of the displayed window"
+msgstr "Postavi visinu prikazanog prozora"
+
+#: info/m-x.c:170
+#, c-format
+msgid "Set screen height to (%d): "
+msgstr "Postavi veli鋱nu screena na (%d): "
+
+#: info/makedoc.c:161 info/makedoc.c:169
+msgid ""
+" Source files groveled to make this file include:\n"
+"\n"
+msgstr ""
+" Izvorne datoteke prepzane da se uklju鋱 ova datoteka:\n"
+"\n"
+
+#: info/makedoc.c:553
+#, c-format
+msgid "Couldn't manipulate the file %s.\n"
+msgstr "Neuspjelo rukovanje datotekom %s.\n"
+
+#: info/nodemenu.c:28
+msgid ""
+"\n"
+"* Menu:\n"
+" (File)Node Lines Size Containing File\n"
+" ---------- ----- ---- ---------------"
+msgstr ""
+"\n"
+"* Meni:\n"
+" (Datoteka)vor Redaka Vel. Sadr養 datoteku\n"
+" -------------- ------ ---- ---------------"
+
+#: info/nodemenu.c:199
+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 鋦orova koje ste nedavno posjetili.\n"
+"Odaberite jedan s menija, ili koristite `\\[history-node]' u drugom prozoru\n"
+
+#: info/nodemenu.c:219
+msgid "Make a window containing a menu of all of the currently visited nodes"
+msgstr "Na鋱ni prozor sadr靠vaju熵 meni svih dosad posje熰nih 鋦orova"
+
+#: info/nodemenu.c:299
+msgid "Select a node which has been previously visited in a visible window"
+msgstr "Izaberi 鋦or koji je prethodno bio posje熰n u vidljivi prozor"
+
+#: info/nodemenu.c:311
+msgid "Select visited node: "
+msgstr "Izaberi posje熰ni 鋦or: "
+
+#: info/nodemenu.c:331 info/session.c:2235
+#, c-format
+msgid "The reference disappeared! (%s)."
+msgstr "Referenca je nestala! (%s)."
+
+#: info/session.c:170
+#, c-format
+msgid ""
+"Welcome to Info version %s. Type \\[get-help-window] for help, \\[menu-item] "
+"for menu item."
+msgstr ""
+"Dobrodo雍i u Info verzija %s. Otipkajte \\[get-help-window] za pomo, "
+"\\[menu-item] za stavku menija."
+
+#: info/session.c:643
+msgid "Move down to the next line"
+msgstr "Pomakni se dolje to slijede熰g retka"
+
+#: info/session.c:658
+msgid "Move up to the previous line"
+msgstr "Pomakni se gore do prethodnog retka"
+
+#: info/session.c:673
+msgid "Move to the end of the line"
+msgstr "Pomakni se do kraja retka"
+
+#: info/session.c:693
+msgid "Move to the start of the line"
+msgstr "Pomekni se na po鋀tak retka"
+
+#: info/session.c:885 makeinfo/node.c:1357
+msgid "Next"
+msgstr "Next"
+
+#: info/session.c:888
+msgid "Following Next node..."
+msgstr "Slijedim Next (slijede熵) 鋦or..."
+
+#: info/session.c:905
+msgid "Selecting first menu item..."
+msgstr "Izabirem prvu stavku menija..."
+
+#: info/session.c:916
+msgid "Selecting Next node..."
+msgstr "Selektiram Next (slijede熵) 鋦or..."
+
+#: info/session.c:986
+#, c-format
+msgid "Moving Up %d time(s), then Next."
+msgstr "Pomi鋀m se gore (Up) %d put(a), onda Next."
+
+#: info/session.c:1010
+msgid "No more nodes within this document."
+msgstr "Nema vi鈹 鋦orova u ovom dokumentu."
+
+#: info/session.c:1034
+msgid "No `Prev' for this node."
+msgstr "Nema `Prev' (prethodni) za ovaj 鋦or."
+
+#: info/session.c:1037 info/session.c:1092
+msgid "Moving Prev in this window."
+msgstr "Idemo na Prev (prethodni) u ovom prozoru."
+
+#: info/session.c:1051
+msgid "No `Prev' or `Up' for this node within this document."
+msgstr "Nema `Prev' ni `Up' za ovaj 鋦or unutar dokumenta."
+
+#: info/session.c:1054
+msgid "Moving Up in this window."
+msgstr "Idem gore (Up) u ovom prozoru."
+
+#: info/session.c:1102
+msgid "Moving to `Prev's last menu item."
+msgstr "Idem na zadnju stavku `Prev'-ovog menija."
+
+#: info/session.c:1113
+msgid "Move forwards or down through node structure"
+msgstr "Idi naprijed ili nani頡 kruz strukturu 鋦orova"
+
+#: info/session.c:1129
+msgid "Move backwards or up through node structure"
+msgstr "Idi unatrag ili gore kroz strukturu 鋦orova"
+
+#: info/session.c:1229
+msgid "Scroll forward in this window"
+msgstr "'Skrolaj' prema gore u ovom prozoru"
+
+#: info/session.c:1237
+msgid "Scroll forward in this window and set default window size"
+msgstr ""
+"'Skrolaj' prema dolje u ovom prozoru i postavi inicijalnu veli鋱nu prozora"
+
+#: info/session.c:1245
+msgid "Scroll forward in this window staying within node"
+msgstr "'Skrolaj' prema dolje u ovom prozoru ostaju熵 unutar 鋦ora"
+
+#: info/session.c:1253
+msgid ""
+"Scroll forward in this window staying within node and set default window size"
+msgstr ""
+"'Skrolaj' prema dolje u ovom prozoru ostaju熵 unutar 鋦ora i postavi "
+"inicijalnu veli鋱nu prozora"
+
+#: info/session.c:1261
+msgid "Scroll backward in this window"
+msgstr "'Skrolaj' prema gore u ovom prozoru"
+
+#: info/session.c:1269
+msgid "Scroll backward in this window and set default window size"
+msgstr ""
+"'Skrolaj' prema gore u ovom prozoru i postavi inicijalnu veli鋱nu prozora"
+
+#: info/session.c:1278
+msgid "Scroll backward in this window staying within node"
+msgstr "'Skrolaj' prema gore u ovom prozoru ostaju熵 unutar 鋦ora"
+
+#: info/session.c:1286
+msgid ""
+"Scroll backward in this window staying within node and set default window "
+"size"
+msgstr ""
+"'Skrolaj' prema gore u ovom prozoru ostaju熵 unutar 鋦ora i postavi "
+"inicijalnu veli鋱nu prozora"
+
+#: info/session.c:1294
+msgid "Move to the start of this node"
+msgstr "Pomakni se na po鋀tak trenutnog 鋦ora"
+
+#: info/session.c:1301
+msgid "Move to the end of this node"
+msgstr "Pomakni se na kraj trenutnog 鋦ora"
+
+#: info/session.c:1308
+msgid "Scroll down by lines"
+msgstr "'Skrolaj' dolje za redaka"
+
+#: info/session.c:1325
+msgid "Scroll up by lines"
+msgstr "'Skrolaj' gore za redaka"
+
+#: info/session.c:1343
+msgid "Scroll down by half screen size"
+msgstr "'Skrolaj' dolje za polovinu veli鋱ne ekrana"
+
+#: info/session.c:1369
+msgid "Scroll up by half screen size"
+msgstr "'Skrolaj' gore za polovinu veli鋱ne ekrana"
+
+#: info/session.c:1398
+msgid "Select the next window"
+msgstr "Selektiraj slijede熵 prozor"
+
+#: info/session.c:1437
+msgid "Select the previous window"
+msgstr "Selektiraj prethodni prozor"
+
+#: info/session.c:1488
+msgid "Split the current window"
+msgstr "Raspolovi trenutni prozor"
+
+#: info/session.c:1569
+msgid "Delete the current window"
+msgstr "Obri隘 trenutni prozor"
+
+#: info/session.c:1577
+msgid "Cannot delete a permanent window"
+msgstr "Ne mogu obrisati permanentni prozor"
+
+#: info/session.c:1610
+msgid "Delete all other windows"
+msgstr "Obri隘 sve ostale prozore"
+
+#: info/session.c:1656
+msgid "Scroll the other window"
+msgstr "'Skrolaj' drugi prozor"
+
+#: info/session.c:1677
+msgid "Scroll the other window backward"
+msgstr "'Skrolaj' drugi prozor unazad"
+
+#: info/session.c:1683
+msgid "Grow (or shrink) this window"
+msgstr "Pove潻j (ili smanji) ovaj prozor"
+
+#: info/session.c:1694
+msgid "Divide the available screen space among the visible windows"
+msgstr "Podijeli vidljivu povr隘nu ekrana izme繠 vidljivih prozora"
+
+#: info/session.c:1701
+msgid "Toggle the state of line wrapping in the current window"
+msgstr "Promijeni stanje prelamanja linija u trenutnom prozoru"
+
+#: info/session.c:1880
+msgid "Select the Next node"
+msgstr "Prika養 Next (slijede熵) 鋦or"
+
+#: info/session.c:1888
+msgid "Select the Prev node"
+msgstr "Prika養 Prev (prethodni) 鋦or"
+
+#: info/session.c:1896
+msgid "Select the Up node"
+msgstr "Prika養 Up (gornji) 鋦or"
+
+#: info/session.c:1903
+msgid "Select the last node in this file"
+msgstr "Prika養 posljednji 鋦or u ovoj datoteci"
+
+#: info/session.c:1930 info/session.c:1963
+msgid "This window has no additional nodes"
+msgstr "Ovaj prozor nema dodatnih 鋦orova"
+
+#: info/session.c:1936
+msgid "Select the first node in this file"
+msgstr "Prika養 prvi 鋦or u ovoj datoteci"
+
+#: info/session.c:1970
+msgid "Select the last item in this node's menu"
+msgstr "Prika養 zadnji 鋦or u ovoj datoteci"
+
+#: info/session.c:1976
+msgid "Select this menu item"
+msgstr "Selektiraj ovu stavku menija"
+
+#: info/session.c:2005
+#, c-format
+msgid "There aren't %d items in this menu."
+msgstr "Nema %d stavaka u ovom meniju."
+
+#: info/session.c:2148
+#, c-format
+msgid "Menu item (%s): "
+msgstr "Stavka menija (%s): "
+
+#: info/session.c:2150
+msgid "Menu item: "
+msgstr "Stavka menija: "
+
+#: info/session.c:2155
+#, c-format
+msgid "Follow xref (%s): "
+msgstr "Slijedi xref (%s): "
+
+#: info/session.c:2157
+msgid "Follow xref: "
+msgstr "Slijedi xref: "
+
+#: info/session.c:2280
+msgid "Read a menu item and select its node"
+msgstr "itaj stavku menija i selektiraj njen 鋦or"
+
+#: info/session.c:2288
+msgid "Read a footnote or cross reference and select its node"
+msgstr "itaj fusnotu ili referencu i selektiraj njezin 鋦or"
+
+#: info/session.c:2294
+msgid "Move to the start of this node's menu"
+msgstr "Idi na po鋀tak menija ovog 鋦ora"
+
+#: info/session.c:2318
+msgid "Visit as many menu items at once as possible"
+msgstr "Posjeti 靖o je vi鈹 mogu熰 stavki odjednom"
+
+#: info/session.c:2346
+msgid "Read a node name and select it"
+msgstr "itaj ime 鋦ora i selektiraj ga"
+
+#: info/session.c:2401 info/session.c:2405
+msgid "Goto node: "
+msgstr "Idi na 鋦or: "
+
+#: info/session.c:2471
+#, c-format
+msgid "No menu in node `%s'."
+msgstr "Nema menija u 鋦oru `%s'."
+
+#: info/session.c:2516
+#, c-format
+msgid "No menu item `%s' in node `%s'."
+msgstr "Nema stavke menija `%s' u 鋦oru `%s'."
+
+#: info/session.c:2546
+#, c-format
+msgid "Unable to find node referenced by `%s' in `%s'."
+msgstr "Ne mogu na熵 鋦or referenciran od `%s' u `%s'."
+
+#: info/session.c:2597
+msgid "Read a list of menus starting from dir and follow them"
+msgstr "itaj listu menija po鋀v隘 od dir i slijedi ih"
+
+#: info/session.c:2599
+msgid "Follow menus: "
+msgstr "Slijedi menije: "
+
+#: info/session.c:2797
+msgid "Find the node describing program invocation"
+msgstr "Prona簨 鋦or koji opisuje pozivanje programa"
+
+#: info/session.c:2799
+#, c-format
+msgid "Find Invocation node of [%s]: "
+msgstr "Na簨 pozivanje (Invocation) 鋦or od [%s]: "
+
+#: info/session.c:2837
+msgid "Read a manpage reference and select it"
+msgstr "Pro鋱taj referentnu man stranicu i selektiraj je"
+
+#: info/session.c:2841
+msgid "Get Manpage: "
+msgstr "Dobavi man stranicu: "
+
+#: info/session.c:2871
+msgid "Select the node `Top' in this file"
+msgstr "Selektiraj 鋦or `Top' u ovoj datoteci"
+
+#: info/session.c:2877
+msgid "Select the node `(dir)'"
+msgstr "Selektiraj 鋦or `(dir)'"
+
+#: info/session.c:2897
+#, c-format
+msgid "Kill node (%s): "
+msgstr "Poni靖i 鋦or (%s): "
+
+#: info/session.c:2951
+#, c-format
+msgid "Cannot kill node `%s'"
+msgstr "Ne mogu poni靖iti 鋦or `%s'"
+
+#: info/session.c:2961
+msgid "Cannot kill the last node"
+msgstr "Ne mogu poni靖iti zadnji 鋦or"
+
+#: info/session.c:3047
+msgid "Select the most recently selected node"
+msgstr "Selektiraj najzadnji odabrani 鋦or"
+
+#: info/session.c:3053
+msgid "Kill this node"
+msgstr "Poni靖i ovaj 鋦or"
+
+#: info/session.c:3061
+msgid "Read the name of a file and select it"
+msgstr "Pro鋱taj ime datoteke i selektiraj ga"
+
+#: info/session.c:3065
+msgid "Find file: "
+msgstr "Na簨 datoteku: "
+
+#: info/session.c:3082
+#, c-format
+msgid "Cannot find `%s'."
+msgstr "Ne mogu na熵 `%s'."
+
+#: info/session.c:3127 info/session.c:3248
+#, c-format
+msgid "Could not create output file `%s'."
+msgstr "Ne mogu kreirati izlaznu datoteku `%s'."
+
+#: info/session.c:3140 info/session.c:3265 info/session.c:3326
+msgid "Done."
+msgstr "Gotovo."
+
+#: info/session.c:3196
+#, c-format
+msgid "Writing node %s..."
+msgstr "Ispisujem 鋦or %s..."
+
+#: info/session.c:3274
+msgid "Pipe the contents of this node through INFO_PRINT_COMMAND"
+msgstr ""
+"Propusti sadr靠j ovog 鋦ora kroz cjevovod (pipe) prema INFO_PRINT_COMMAND"
+
+#: info/session.c:3310
+#, c-format
+msgid "Cannot open pipe to `%s'."
+msgstr "Ne mogu otvoriti cjevovod (pipe) prema `%s'."
+
+#: info/session.c:3316
+#, c-format
+msgid "Printing node %s..."
+msgstr "Ispisujem 鋦or %s..."
+
+#: info/session.c:3558
+#, c-format
+msgid "Searching subfile %s ..."
+msgstr "Tra養m poddatoteku %s ..."
+
+#: info/session.c:3610
+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:3617
+msgid "Read a string and search for it"
+msgstr "itaj niz znakova i potra養 ga"
+
+#: info/session.c:3625
+msgid "Read a string and search backward for it"
+msgstr "itaj niz znakova i potra養 ga unatrag"
+
+#: info/session.c:3667
+#, c-format
+msgid "%s%sfor string [%s]: "
+msgstr "%s%sza niz znakova [%s]: "
+
+#: info/session.c:3668
+msgid "Search backward"
+msgstr "Tra養 unazad"
+
+#: info/session.c:3668
+msgid "Search"
+msgstr "Tra養"
+
+#: info/session.c:3669
+msgid " case-sensitively "
+msgstr " (case-sensitive) "
+
+#: info/session.c:3669
+msgid " "
+msgstr " "
+
+#: info/session.c:3709
+msgid "Search failed."
+msgstr "Pretra養vanje neuspjelo."
+
+#: info/session.c:3727
+msgid "Repeat last search in the same direction"
+msgstr "Ponovi zadnje pretra養vanje u istom pravcu"
+
+#: info/session.c:3730 info/session.c:3740
+msgid "No previous search string"
+msgstr "Nema prethodnog trazenog niza"
+
+#: info/session.c:3737
+msgid "Repeat last search in the reverse direction"
+msgstr "Ponovi zadnje pretra養vanje u suprotnom pravcu"
+
+#: info/session.c:3755 info/session.c:3761
+msgid "Search interactively for a string as you type it"
+msgstr "Tra養 niz interaktivno kako ga tipkate"
+
+#: info/session.c:3855
+msgid "I-search backward: "
+msgstr "I-pretraga unazad"
+
+#: info/session.c:3857
+msgid "I-search: "
+msgstr "I-pretraga: "
+
+#: info/session.c:3882
+msgid "Failing "
+msgstr "Neuspjela "
+
+#: info/session.c:4340
+msgid "Move to the previous cross reference"
+msgstr "Idi na prethodnu referencu"
+
+#: info/session.c:4349
+msgid "Move to the next cross reference"
+msgstr "Idi na slijede獘 referencu"
+
+#: info/session.c:4359
+msgid "Select reference or menu item appearing on this line"
+msgstr "Selektiraj referencu ili stavku menija koja se pojavljuje u retku"
+
+#: info/session.c:4381
+msgid "Cancel current operation"
+msgstr "Poni靖i trenutnu operaciju"
+
+#: info/session.c:4388
+msgid "Quit"
+msgstr "Zavr隘 (Quit)"
+
+#: info/session.c:4397
+msgid "Move the cursor to a specific line of the window"
+msgstr "Pomakni kurzor na specificirani redak prozora"
+
+#: info/session.c:4429
+msgid "Redraw the display"
+msgstr "Osvje養 prikaz"
+
+#: info/session.c:4466
+msgid "Quit using Info"
+msgstr "Zavr隘 kori靖enje Info-a"
+
+#: info/session.c:4479
+msgid "Run command bound to this key's lowercase variant"
+msgstr ""
+
+#: info/session.c:4491
+#, c-format
+msgid "Unknown command (%s)."
+msgstr "Nepoznata naredba (%s)."
+
+#: info/session.c:4494
+msgid "\"\" is invalid"
+msgstr "\"\" je neispravno"
+
+#: info/session.c:4495
+#, c-format
+msgid "\"%s\" is invalid"
+msgstr "\"%s\" je neispravno"
+
+#: info/session.c:4713
+msgid "Add this digit to the current numeric argument"
+msgstr "Dodaj ovu znamenku trenutnom numeri鋘om argumentu"
+
+#: info/session.c:4722
+msgid "Start (or multiply by 4) the current numeric argument"
+msgstr "Zapo鋝i (ili pomno養 s 4) trenutni numeri鋘i argument"
+
+#: info/session.c:4737
+msgid "Internally used by \\[universal-argument]"
+msgstr "Interno kori靖en od \\[universal-argument]"
+
+#: info/tilde.c:344
+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鋱nu 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隕e pruzro鋎ju 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 靖o se doga簜 kad se skrolanje tra養 na kraju 鋦ora"
+
+#: info/variables.c:64
+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:68
+msgid "When \"On\", Info accepts and displays ISO Latin characters"
+msgstr "Kada je \"On\", Info prihva潻 i prikazuje ISO Latin znakove"
+
+#: info/variables.c:74
+msgid "Explain the use of a variable"
+msgstr "Obja雉java kori靖enje varijable"
+
+#: info/variables.c:80
+msgid "Describe variable: "
+msgstr "Opi隘 varijablu: "
+
+#: info/variables.c:99
+msgid "Set the value of an Info variable"
+msgstr "Postavi vrijednost info varijable"
+
+#: info/variables.c:105
+msgid "Set variable: "
+msgstr "Postavi varijablu: "
+
+#: info/variables.c:123
+#, c-format
+msgid "Set %s to value (%d): "
+msgstr "Postavi %s na vrijednost (%d): "
+
+#: info/variables.c:164
+#, c-format
+msgid "Set %s to value (%s): "
+msgstr "Postavi %s na vrijednost (%s):"
+
+#: info/window.c:1164
+msgid "--*** Tags out of Date ***"
+msgstr "--*** Tagovima istekao rok trajanja ***"
+
+#: info/window.c:1175
+msgid "-----Info: (), lines ----, "
+msgstr "-----Info: (), redaka ----,"
+
+#: info/window.c:1182
+#, c-format
+msgid "-%s---Info: %s, %d lines --%s--"
+msgstr "-%s---Info: %s, %d redaka --%s--"
+
+#: info/window.c:1186
+#, c-format
+msgid "-%s%s-Info: (%s)%s, %d lines --%s--"
+msgstr "-%s%s-Info: (%s)%s, %d redaka --%s--"
+
+#: info/window.c:1193
+#, c-format
+msgid " Subfile: %s"
+msgstr " Poddatoteka: %s"
+
+#: lib/getopt.c:675
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: opcija `%s' nije jednozna鋝a\n"
+
+#: lib/getopt.c:700
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s: opcija `--%s' ne dopu靖a argument\n"
+
+#: lib/getopt.c:705
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr "%s: opcija `%c%s' ne dopu靖a argument\n"
+
+#: lib/getopt.c:723 lib/getopt.c:896
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr "%s: opcija `%s' tra養 neophodan argument\n"
+
+#: lib/getopt.c:752
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: nepoznata opcija `--%s'\n"
+
+#: lib/getopt.c:756
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: nepoznata opcija `%c%s'\n"
+
+#: lib/getopt.c:782
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: nedozvoljena opcija -- %c\n"
+
+#: lib/getopt.c:785
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr "%s: pogre雉a opcija -- %c\n"
+
+#: lib/getopt.c:815 lib/getopt.c:945
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr "%s: opcija zahtijeva argument -- %c\n"
+
+#: lib/getopt.c:862
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr "%s: opcija `-W %s' nije jednozna鋝a\n"
+
+#: lib/getopt.c:880
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr "%s: opcija `-W %s' ne dopu靖a argument\n"
+
+#: makeinfo/cmds.c:515
+msgid "January"
+msgstr ""
+
+#: makeinfo/cmds.c:515
+msgid "February"
+msgstr ""
+
+#: makeinfo/cmds.c:515
+msgid "March"
+msgstr ""
+
+#: makeinfo/cmds.c:515
+msgid "April"
+msgstr ""
+
+#: makeinfo/cmds.c:515
+msgid "May"
+msgstr ""
+
+#: makeinfo/cmds.c:516
+msgid "June"
+msgstr ""
+
+#: makeinfo/cmds.c:516
+msgid "July"
+msgstr ""
+
+#: makeinfo/cmds.c:516
+msgid "August"
+msgstr ""
+
+#: makeinfo/cmds.c:516
+msgid "September"
+msgstr ""
+
+#: makeinfo/cmds.c:516
+msgid "October"
+msgstr ""
+
+#: makeinfo/cmds.c:517
+msgid "November"
+msgstr ""
+
+#: makeinfo/cmds.c:517
+msgid "December"
+msgstr ""
+
+#: makeinfo/cmds.c:658
+#, c-format
+msgid "unlikely character %c in @var"
+msgstr ""
+
+#: makeinfo/cmds.c:701
+msgid "@sc argument all uppercase, thus no effect"
+msgstr ""
+
+#: makeinfo/cmds.c:759
+#, c-format
+msgid "`{' expected, but saw `%c'"
+msgstr ""
+
+#: makeinfo/cmds.c:789
+msgid "end of file inside verb block"
+msgstr ""
+
+#: makeinfo/cmds.c:797
+#, c-format
+msgid "`}' expected, but saw `%c'"
+msgstr ""
+
+#: makeinfo/cmds.c:942
+#, c-format
+msgid "%c%s is obsolete"
+msgstr ""
+
+#: makeinfo/cmds.c:1014
+#, c-format
+msgid "@sp requires a positive numeric argument, not `%s'"
+msgstr ""
+
+#: makeinfo/cmds.c:1348 makeinfo/cmds.c:1374 makeinfo/footnote.c:81
+#, c-format
+msgid "Bad argument to %c%s"
+msgstr ""
+
+#: makeinfo/cmds.c:1358 makeinfo/makeinfo.c:4140
+msgid "asis"
+msgstr ""
+
+#: makeinfo/cmds.c:1360 makeinfo/makeinfo.c:4142
+msgid "none"
+msgstr ""
+
+#: makeinfo/defun.c:85
+msgid "Missing `}' in @def arg"
+msgstr ""
+
+#: makeinfo/defun.c:363
+msgid "Function"
+msgstr ""
+
+#: makeinfo/defun.c:366
+msgid "Macro"
+msgstr ""
+
+#: makeinfo/defun.c:369
+msgid "Special Form"
+msgstr ""
+
+#: makeinfo/defun.c:373
+msgid "Variable"
+msgstr ""
+
+#: makeinfo/defun.c:376
+msgid "User Option"
+msgstr ""
+
+#: makeinfo/defun.c:380
+msgid "Instance Variable"
+msgstr ""
+
+#: makeinfo/defun.c:384
+msgid "Method"
+msgstr ""
+
+#: makeinfo/defun.c:466 makeinfo/defun.c:470 makeinfo/defun.c:615
+#: makeinfo/defun.c:631 makeinfo/defun.c:671
+msgid "of"
+msgstr ""
+
+#: makeinfo/defun.c:474 makeinfo/defun.c:478 makeinfo/defun.c:482
+#: makeinfo/defun.c:624 makeinfo/defun.c:676
+msgid "on"
+msgstr ""
+
+#: makeinfo/defun.c:717
+#, c-format
+msgid "Must be in `%s' insertion to use `%sx'"
+msgstr ""
+
+#: makeinfo/files.c:448
+#, c-format
+msgid "%s: getwd: %s, %s\n"
+msgstr ""
+
+#: makeinfo/footnote.c:150
+#, c-format
+msgid "`%c%s' needs an argument `{...}', not just `%s'"
+msgstr ""
+
+#: makeinfo/footnote.c:165
+#, c-format
+msgid "No closing brace for footnote `%s'"
+msgstr ""
+
+#: makeinfo/footnote.c:198
+msgid "Footnote defined without parent node"
+msgstr ""
+
+#: makeinfo/footnote.c:210
+msgid "Footnotes inside footnotes are not allowed"
+msgstr ""
+
+#: makeinfo/footnote.c:298
+msgid "Footnotes"
+msgstr ""
+
+#: makeinfo/html.c:42
+msgid "Untitled"
+msgstr ""
+
+#: makeinfo/html.c:298
+#, c-format
+msgid "Invalid node name: `%s'"
+msgstr ""
+
+#: makeinfo/index.c:213
+#, c-format
+msgid "Unknown index `%s'"
+msgstr ""
+
+#: makeinfo/index.c:238
+#, c-format
+msgid "Info cannot handle `:' in index entry `%s'"
+msgstr ""
+
+#: makeinfo/index.c:396
+#, c-format
+msgid "Index `%s' already exists"
+msgstr ""
+
+#: makeinfo/index.c:439
+#, c-format
+msgid "Unknown index `%s' and/or `%s' in @synindex"
+msgstr ""
+
+#: makeinfo/index.c:666
+#, c-format
+msgid "Unknown index `%s' in @printindex"
+msgstr ""
+
+#: makeinfo/index.c:709
+#, c-format
+msgid "Entry for index `%s' outside of any node"
+msgstr ""
+
+#: makeinfo/index.c:712 makeinfo/index.c:751
+msgid "(outside of any node)"
+msgstr ""
+
+#: makeinfo/insertion.c:198
+msgid "Broken-Type in insertion_type_pname"
+msgstr ""
+
+#: makeinfo/insertion.c:271
+msgid "Enumeration stack overflow"
+msgstr ""
+
+#: makeinfo/insertion.c:303
+#, c-format
+msgid "lettering overflow, restarting at %c"
+msgstr ""
+
+#: makeinfo/insertion.c:538
+#, c-format
+msgid "%s requires an argument: the formatter for %citem"
+msgstr ""
+
+#: makeinfo/insertion.c:693
+#, c-format
+msgid "`@end' expected `%s', but saw `%s'"
+msgstr ""
+
+#: makeinfo/insertion.c:931
+#, c-format
+msgid "No matching `%cend %s'"
+msgstr ""
+
+#: makeinfo/insertion.c:1084
+#, c-format
+msgid "%s requires letter or digit"
+msgstr ""
+
+#: makeinfo/insertion.c:1158
+msgid "end of file inside verbatim block"
+msgstr ""
+
+#: makeinfo/insertion.c:1318
+msgid "@menu seen before first @node, creating `Top' node"
+msgstr ""
+
+#: makeinfo/insertion.c:1319
+msgid ""
+"perhaps your @top node should be wrapped in @ifnottex rather than @ifinfo?"
+msgstr ""
+
+#: makeinfo/insertion.c:1331
+msgid "@detailmenu seen before first node, creating `Top' node"
+msgstr ""
+
+#: makeinfo/insertion.c:1346
+#, c-format
+msgid "Unmatched `%c%s'"
+msgstr ""
+
+#: makeinfo/insertion.c:1353
+#, c-format
+msgid "`%c%s' needs something after it"
+msgstr ""
+
+#: makeinfo/insertion.c:1359
+#, c-format
+msgid "Bad argument to `%s', `%s', using `%s'"
+msgstr ""
+
+#: makeinfo/insertion.c:1453
+#, c-format
+msgid "@%s not meaningful inside `@%s' block"
+msgstr ""
+
+#: makeinfo/insertion.c:1462
+#, c-format
+msgid "@itemx not meaningful inside `%s' block"
+msgstr ""
+
+#: makeinfo/insertion.c:1646
+#, c-format
+msgid "%c%s found outside of an insertion block"
+msgstr ""
+
+#: makeinfo/lang.c:331
+#, c-format
+msgid "%s is not a valid ISO 639 language code"
+msgstr ""
+
+#: makeinfo/lang.c:384
+#, c-format
+msgid "unrecogized encoding name `%s'"
+msgstr ""
+
+#: makeinfo/lang.c:387
+#, c-format
+msgid "sorry, encoding `%s' not supported"
+msgstr ""
+
+#: makeinfo/lang.c:414
+#, c-format
+msgid "invalid encoded character `%s'"
+msgstr ""
+
+#: makeinfo/lang.c:502
+#, c-format
+msgid "%s is an invalid ISO code, using %c"
+msgstr ""
+
+#: makeinfo/lang.c:687
+#, c-format
+msgid "%c%s expects `i' or `j' as argument, not `%c'"
+msgstr ""
+
+#: makeinfo/lang.c:691
+#, c-format
+msgid "%c%s expects a single character `i' or `j' as argument"
+msgstr ""
+
+#: makeinfo/macro.c:134
+#, c-format
+msgid "macro `%s' previously defined"
+msgstr ""
+
+#: makeinfo/macro.c:138
+#, c-format
+msgid "here is the previous definition of `%s'"
+msgstr ""
+
+#: makeinfo/macro.c:355
+#, c-format
+msgid "\\ in macro expansion followed by `%s' instead of \\ or parameter name"
+msgstr ""
+
+#: makeinfo/macro.c:403
+#, c-format
+msgid "Macro `%s' called on line %d with too many args"
+msgstr ""
+
+#: makeinfo/macro.c:594
+#, c-format
+msgid "%cend macro not found"
+msgstr ""
+
+#: makeinfo/macro.c:632
+msgid "@quote-arg only useful for single-argument macros"
+msgstr ""
+
+#: makeinfo/macro.c:668
+#, c-format
+msgid "mismatched @end %s with @%s"
+msgstr ""
+
+#: makeinfo/makeinfo.c:316
+#, c-format
+msgid "%s:%d: warning: "
+msgstr ""
+
+#: makeinfo/makeinfo.c:339
+msgid "Too many errors! Gave up.\n"
+msgstr ""
+
+#: makeinfo/makeinfo.c:350 makeinfo/makeinfo.c:2026
+#, c-format
+msgid "Misplaced %c"
+msgstr ""
+
+#: makeinfo/makeinfo.c:370
+#, c-format
+msgid "Try `%s --help' for more information.\n"
+msgstr ""
+
+#: makeinfo/makeinfo.c:373
+#, c-format
+msgid "Usage: %s [OPTION]... TEXINFO-FILE...\n"
+msgstr ""
+
+#: makeinfo/makeinfo.c:376
+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:380
+#, c-format
+msgid ""
+"General options:\n"
+" --error-limit=NUM quit after NUM errors (default %d).\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"
+" --reference-limit=NUM warn about at most NUM references (default %"
+"d).\n"
+" -v, --verbose explain what is being done.\n"
+" --version display version information and exit.\n"
+msgstr ""
+
+#: makeinfo/makeinfo.c:394
+#, no-wrap
+msgid ""
+"Output format selection (default is to produce Info):\n"
+" --docbook output DocBook rather than Info.\n"
+" --html output HTML rather than Info.\n"
+" --xml output XML (TexinfoML) rather than Info.\n"
+msgstr ""
+
+#: makeinfo/makeinfo.c:401
+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 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 (directory if split HTML),\n"
+msgstr ""
+
+#: makeinfo/makeinfo.c:415
+#, c-format
+msgid ""
+"Options for Info and plain text:\n"
+" --enable-encoding output accented and special characters in\n"
+" Info output based on @documentencoding.\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\n"
+" in which they are defined (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:433
+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:442
+msgid ""
+"Conditional processing in input:\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"
+" --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"
+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"
+msgstr ""
+
+#: makeinfo/makeinfo.c:461
+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 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:570 makeinfo/makeinfo.c:593 makeinfo/makeinfo.c:655
+#: makeinfo/makeinfo.c:676
+#, c-format
+msgid "%s: %s arg must be numeric, not `%s'.\n"
+msgstr ""
+
+#: makeinfo/makeinfo.c:583
+#, c-format
+msgid "Couldn't open macro expansion output `%s'"
+msgstr ""
+
+#: makeinfo/makeinfo.c:586
+msgid "Cannot specify more than one macro expansion output"
+msgstr ""
+
+#: makeinfo/makeinfo.c:624
+#, c-format
+msgid "%s: --paragraph-indent arg must be numeric/`none'/`asis', not `%s'.\n"
+msgstr ""
+
+#: makeinfo/makeinfo.c:665
+#, c-format
+msgid "%s: --footnote-style arg must be `separate' or `end', not `%s'.\n"
+msgstr ""
+
+#: makeinfo/makeinfo.c:723
+#, c-format
+msgid "%s: missing file argument.\n"
+msgstr ""
+
+#: makeinfo/makeinfo.c:898
+#, c-format
+msgid "Expected `%s'"
+msgstr ""
+
+#: makeinfo/makeinfo.c:1365
+msgid "File exists, but is not a directory"
+msgstr ""
+
+#: makeinfo/makeinfo.c:1366
+#, c-format
+msgid "Can't create directory `%s': %s"
+msgstr ""
+
+#: makeinfo/makeinfo.c:1414
+#, c-format
+msgid "No `%s' found in `%s'"
+msgstr ""
+
+#: makeinfo/makeinfo.c:1496
+#, c-format
+msgid "%s: Skipping macro expansion to stdout as Info output is going there.\n"
+msgstr ""
+
+#: makeinfo/makeinfo.c:1526
+#, c-format
+msgid "Making %s file `%s' from `%s'.\n"
+msgstr ""
+
+#: makeinfo/makeinfo.c:1561
+#, c-format
+msgid "This is %s, produced by makeinfo version %s from %s.\n"
+msgstr ""
+
+#: makeinfo/makeinfo.c:1583
+#, c-format
+msgid ""
+"%s: Removing macro output file `%s' due to errors; use --force to preserve.\n"
+msgstr ""
+
+#: makeinfo/makeinfo.c:1627
+#, c-format
+msgid "%s: Removing output file `%s' due to errors; use --force to preserve.\n"
+msgstr ""
+
+#: makeinfo/makeinfo.c:1853
+#, c-format
+msgid "Unknown command `%s'"
+msgstr ""
+
+#: makeinfo/makeinfo.c:1875
+#, c-format
+msgid "Use braces to give a command as an argument to @%s"
+msgstr ""
+
+#: makeinfo/makeinfo.c:2068
+#, c-format
+msgid "%c%s expected `{...}'"
+msgstr ""
+
+#: makeinfo/makeinfo.c:2098
+msgid "Unmatched }"
+msgstr ""
+
+#: makeinfo/makeinfo.c:2148
+msgid "NO_NAME!"
+msgstr ""
+
+#: makeinfo/makeinfo.c:2169
+#, c-format
+msgid "%c%s missing close brace"
+msgstr ""
+
+#: makeinfo/makeinfo.c:2958
+msgid "First argument to cross-reference may not be empty"
+msgstr ""
+
+#: makeinfo/makeinfo.c:3018 makeinfo/makeinfo.c:3236 makeinfo/xml.c:1340
+msgid "see "
+msgstr ""
+
+#: makeinfo/makeinfo.c:3018
+msgid "See "
+msgstr ""
+
+#: makeinfo/makeinfo.c:3164
+#, c-format
+msgid "`.' or `,' must follow cross reference, not %c"
+msgstr ""
+
+#: makeinfo/makeinfo.c:3212
+msgid "First argument to @inforef may not be empty"
+msgstr ""
+
+#: makeinfo/makeinfo.c:3427
+#, c-format
+msgid "@image file `%s' (for HTML) not readable: %s"
+msgstr ""
+
+#: makeinfo/makeinfo.c:3440
+#, c-format
+msgid "No `%s.png' or `.jpg', and no extension supplied"
+msgstr ""
+
+#: makeinfo/makeinfo.c:3490
+#, c-format
+msgid "@image file `%s' (for text) unreadable: %s"
+msgstr ""
+
+#: makeinfo/makeinfo.c:3497
+msgid "@image missing filename argument"
+msgstr ""
+
+#: makeinfo/makeinfo.c:3690
+#, c-format
+msgid "{No value for `%s'}"
+msgstr ""
+
+#: makeinfo/makeinfo.c:3744
+#, c-format
+msgid "%c%s requires a name"
+msgstr ""
+
+#: makeinfo/makeinfo.c:3850
+#, c-format
+msgid "Reached eof before matching @end %s"
+msgstr ""
+
+#: makeinfo/makeinfo.c:4081
+#, c-format
+msgid "`%.40s...' is too long for expansion; not expanded"
+msgstr ""
+
+#: makeinfo/multi.c:226
+msgid "Missing } in @multitable template"
+msgstr ""
+
+#: makeinfo/multi.c:302
+#, c-format
+msgid "ignoring stray text `%s' after @multitable"
+msgstr ""
+
+#: makeinfo/multi.c:375
+#, c-format
+msgid "Too many columns in multitable item (max %d)"
+msgstr ""
+
+#: makeinfo/multi.c:426
+#, c-format
+msgid "Cannot select column #%d in multitable"
+msgstr ""
+
+#: makeinfo/multi.c:529
+msgid "ignoring @tab outside of multitable"
+msgstr ""
+
+#: makeinfo/multi.c:565
+msgid "** Multicolumn output from last row:\n"
+msgstr ""
+
+#: makeinfo/multi.c:568
+#, c-format
+msgid "* column #%d: output = %s\n"
+msgstr ""
+
+#: makeinfo/node.c:276
+#, c-format
+msgid "Node `%s' previously defined at line %d"
+msgstr ""
+
+#: makeinfo/node.c:594
+#, c-format
+msgid "Formatting node %s...\n"
+msgstr ""
+
+#: makeinfo/node.c:655
+#, c-format
+msgid "Node `%s' requires a sectioning command (e.g. %c%s)"
+msgstr ""
+
+#: makeinfo/node.c:815
+#, c-format
+msgid "No node name specified for `%c%s' command"
+msgstr ""
+
+#: makeinfo/node.c:856 makeinfo/node.c:1075
+#, c-format
+msgid "Anchor `%s' and node `%s' map to the same file name"
+msgstr ""
+
+#: makeinfo/node.c:859
+msgid "This @anchor command ignored; references to it will not work"
+msgstr ""
+
+#: makeinfo/node.c:861 makeinfo/node.c:1078
+msgid "Rename this anchor or use the `--no-split' option"
+msgstr ""
+
+#: makeinfo/node.c:891
+#, c-format
+msgid "Unexpected string at end of split-HTML file `%s'"
+msgstr ""
+
+#: makeinfo/node.c:920
+msgid "Node:"
+msgstr ""
+
+#: makeinfo/node.c:930
+msgid "Next:"
+msgstr ""
+
+#: makeinfo/node.c:940
+msgid "Previous:"
+msgstr ""
+
+#: makeinfo/node.c:950
+msgid "Up:"
+msgstr ""
+
+#: makeinfo/node.c:1072
+#, c-format
+msgid "Anchors `%s' and `%s' map to the same file name"
+msgstr ""
+
+#: makeinfo/node.c:1077
+msgid "@anchor command ignored; references to it will not work"
+msgstr ""
+
+#: makeinfo/node.c:1277
+#, c-format
+msgid "%s reference to nonexistent node `%s'"
+msgstr ""
+
+#: makeinfo/node.c:1294
+msgid "Menu"
+msgstr ""
+
+#: makeinfo/node.c:1296
+msgid "Cross"
+msgstr ""
+
+#: makeinfo/node.c:1380
+#, c-format
+msgid "Next field of node `%s' not pointed to"
+msgstr ""
+
+#: makeinfo/node.c:1383
+#, c-format
+msgid "This node (%s) has the bad Prev"
+msgstr ""
+
+#: makeinfo/node.c:1395
+msgid "Prev"
+msgstr ""
+
+#: makeinfo/node.c:1438
+#, c-format
+msgid "Prev field of node `%s' not pointed to"
+msgstr ""
+
+#: makeinfo/node.c:1442
+#, c-format
+msgid "This node (%s) has the bad Next"
+msgstr ""
+
+#: makeinfo/node.c:1454
+#, c-format
+msgid "`%s' has no Up field"
+msgstr ""
+
+#: makeinfo/node.c:1457
+msgid "Up"
+msgstr ""
+
+#: makeinfo/node.c:1523
+#, c-format
+msgid "Node `%s' lacks menu item for `%s' despite being its Up target"
+msgstr ""
+
+#: makeinfo/node.c:1552
+#, c-format
+msgid "node `%s' has been referenced %d times"
+msgstr ""
+
+#: makeinfo/node.c:1566
+#, c-format
+msgid "unreferenced node `%s'"
+msgstr ""
+
+#: makeinfo/sectioning.c:117
+#, c-format
+msgid "Appendix %c "
+msgstr ""
+
+#: makeinfo/sectioning.c:356 makeinfo/sectioning.c:444
+#, c-format
+msgid "Internal error (search_sectioning) \"%s\"!"
+msgstr ""
+
+#: makeinfo/sectioning.c:502
+#, c-format
+msgid "%c%s is obsolete; use %c%s instead"
+msgstr ""
+
+#: makeinfo/sectioning.c:518
+#, c-format
+msgid "Node with %ctop as a section already exists"
+msgstr ""
+
+#: makeinfo/sectioning.c:526
+#, c-format
+msgid "Here is the %ctop node"
+msgstr ""
+
+#: makeinfo/sectioning.c:543
+#, c-format
+msgid "%ctop used before %cnode, defaulting to %s"
+msgstr ""
+
+#: makeinfo/toc.c:221 makeinfo/toc.c:298 makeinfo/toc.c:299
+msgid "Table of Contents"
+msgstr ""
+
+#: makeinfo/toc.c:330 makeinfo/toc.c:366 makeinfo/toc.c:367
+msgid "Short Contents"
+msgstr ""
+
+#: makeinfo/toc.c:406
+#, c-format
+msgid "%s: TOC should be here, but it was not found"
+msgstr ""
+
+#: makeinfo/xml.c:1108
+#, c-format
+msgid "@image file `%s' unreadable: %s"
+msgstr ""
+
+#: util/install-info.c:151
+#, c-format
+msgid "%s: warning: "
+msgstr ""
+
+#: util/install-info.c:176 util/install-info.c:189
+msgid "virtual memory exhausted"
+msgstr ""
+
+#: util/install-info.c:232
+#, c-format
+msgid " for %s"
+msgstr ""
+
+#: util/install-info.c:381
+#, c-format
+msgid "\tTry `%s --help' for a complete list of options.\n"
+msgstr ""
+
+#: util/install-info.c:389
+#, c-format
+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 ""
+
+#: util/install-info.c:444
+#, 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"
+"* Menu:\n"
+msgstr ""
+
+#: util/install-info.c:467
+#, c-format
+msgid "%s: could not read (%s) and could not create (%s)\n"
+msgstr ""
+
+#: util/install-info.c:551
+#, c-format
+msgid "%s: empty file"
+msgstr ""
+
+#: util/install-info.c:866 util/install-info.c:906
+msgid "START-INFO-DIR-ENTRY without matching END-INFO-DIR-ENTRY"
+msgstr ""
+
+#: util/install-info.c:901
+msgid "END-INFO-DIR-ENTRY without matching START-INFO-DIR-ENTRY"
+msgstr ""
+
+#: util/install-info.c:1150 util/install-info.c:1160
+#, c-format
+msgid "%s: Specify the Info directory only once.\n"
+msgstr ""
+
+#: util/install-info.c:1195
+#, c-format
+msgid "%s: Specify the Info file only once.\n"
+msgstr ""
+
+#: util/install-info.c:1244
+#, c-format
+msgid "excess command line argument `%s'"
+msgstr ""
+
+#: util/install-info.c:1248
+msgid "No input file specified; try --help for more information."
+msgstr ""
+
+#: util/install-info.c:1251
+msgid "No dir file specified; try --help for more information."
+msgstr ""
+
+#: util/install-info.c:1273
+#, c-format
+msgid "no info dir entry in `%s'"
+msgstr ""
+
+#: util/install-info.c:1388
+#, c-format
+msgid "menu item `%s' already exists, for file `%s'"
+msgstr ""
+
+#: util/install-info.c:1411
+#, c-format
+msgid "no entries found for `%s'; nothing deleted"
+msgstr ""
+
+#: util/texindex.c:245
+msgid "display this help and exit"
+msgstr ""
+
+#: util/texindex.c:247
+msgid "keep temporary files around after processing"
+msgstr ""
+
+#: util/texindex.c:249
+msgid "do not keep temporary files around after processing (default)"
+msgstr ""
+
+#: util/texindex.c:251
+msgid "send output to FILE"
+msgstr ""
+
+#: util/texindex.c:253
+msgid "display version information and exit"
+msgstr ""
+
+#: util/texindex.c:264
+#, c-format
+msgid "Usage: %s [OPTION]... FILE...\n"
+msgstr ""
+
+#: util/texindex.c:265
+msgid "Generate a sorted index for each TeX output FILE.\n"
+msgstr ""
+
+#: util/texindex.c:268
+#, c-format
+msgid "Usually FILE... is specified as `foo.%c%c' for a document `foo.texi'.\n"
+msgstr ""
+
+#: util/texindex.c:270
+msgid ""
+"\n"
+"Options:\n"
+msgstr ""
+
+#: util/texindex.c:887 util/texindex.c:921 util/texindex.c:997
+#: util/texindex.c:1025
+#, c-format
+msgid "%s: not a texinfo index file"
+msgstr ""
+
+#: util/texindex.c:982
+#, c-format
+msgid "failure reopening %s"
+msgstr ""
+
+#: util/texindex.c:1224
+#, c-format
+msgid "No page number in %s"
+msgstr ""
+
+#: util/texindex.c:1295
+#, c-format
+msgid "entry %s follows an entry with a secondary name"
+msgstr ""
+
+#: util/texindex.c:1633
+#, c-format
+msgid "%s; for file `%s'.\n"
+msgstr ""
+
+#~ 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隘 ovu pomo.\n"
+#~ " \\%-10[quit] Izi簨 iz Info programa.\n"
+#~ " \\%-10[get-info-help-node] Pozovi Info priru鋝ik.\n"
+#~ "\n"
+#~ "Selektiranje drugih 鋦orova:\n"
+#~ "----------------------------\n"
+#~ " \\%-10[next-node] Idi na slijede熵 (\"next\") 鋦or od ovog 鋦ora.\n"
+#~ " \\%-10[prev-node] Idi na prethodni (\"previous\") 鋦or od ovog 鋦ora.\n"
+#~ " \\%-10[up-node] Idi gore (\"up\") od ovog 鋦ora.\n"
+#~ " \\%-10[menu-item] Izaberi stavku menija zadanu imenom.\n"
+#~ " Odabiranjeim stavke menija se selektira drugi 鋦or.\n"
+#~ " \\%-10[xref-item] Slijedi unakrsnu referencu. ita ime reference.\n"
+#~ " \\%-10[history-node] Idi na zadnji vidljiv 鋦or u ovom prozoru.\n"
+#~ " \\%-10[move-to-next-xref] Idi na slijede熵 hipertekst link u ovom "
+#~ "鋦oru.\n"
+#~ " \\%-10[move-to-prev-xref] Idi na prethodni hipertekst link u ovom "
+#~ "鋦oru.\n"
+#~ " \\%-10[select-reference-this-line] Slijedi hipertekst link pod "
+#~ "kursorom.\n"
+#~ " \\%-10[dir-node] Idi na 鋦or `directory'. Ekvivalentno `\\[goto-node] "
+#~ "(DIR)'.\n"
+#~ " \\%-10[top-node] Idi na vr雉i (Top) 鋦or. Ekvivaletno `\\[goto-node] "
+#~ "Top'.\n"
+#~ "\n"
+#~ "Pomicanje unutar 鋦ora:\n"
+#~ "-----------------------\n"
+#~ " \\%-10[scroll-forward] Skrolaj stranicu naprijed.\n"
+#~ " \\%-10[scroll-backward] Skrolaj stranicu unazad.\n"
+#~ " \\%-10[beginning-of-node] Idi na po鋀tak ovog 鋦ora.\n"
+#~ " \\%-10[end-of-node] Idi na kraj ovog 鋦ora.\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 鋦orovom meniju.\n"
+#~ " \\%-10[last-menu-item] Odaberi zadnju stavku u 鋦orovom meniju.\n"
+#~ " \\%-10[index-search] Tra養 zadani niz u indeks stavkama ove Info\n"
+#~ " datoteke, i selektiraj 鋦or referenciran prvom na簟nom "
+#~ "stavkom.\n"
+#~ " \\%-10[goto-node] Idi na 鋦or zadan imenom.\n"
+#~ " Mo頡te tako簟r uklju鋱ti ime datoteke, kao u (DATOTEKA)"
+#~ "IME_VORA.\n"
+#~ " \\%-10[search] Tra養 zadani niz prema naprijed kroz ovu Info "
+#~ "datoteku,\n"
+#~ " i selektiraj 鋦or u kojem je slijede潻 pojava niza na簟na.\n"
+#~ " \\%-10[search-backward] Tra養 zadani niz prema nazad kroz ovu Info "
+#~ "datoteku,\n"
+#~ " i selektiraj 鋦or u kojem je slijede潻 pojava niza na簟na.\n"
+
+#~ msgid "******************************\n"
+#~ msgstr "********************************\n"
+
+#~ msgid "---------------------\n"
+#~ msgstr "-----------------------\n"
+
+#~ msgid "----------------------\n"
+#~ msgstr "----------------------------\n"
+
+#~ msgid "---------------\n"
+#~ msgstr "--------------\n"
diff --git a/gnu/usr.bin/texinfo/po/insert-header.sin b/gnu/usr.bin/texinfo/po/insert-header.sin
new file mode 100644
index 00000000000..b26de01f6c8
--- /dev/null
+++ b/gnu/usr.bin/texinfo/po/insert-header.sin
@@ -0,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
+}
diff --git a/gnu/usr.bin/texinfo/po/ja.gmo b/gnu/usr.bin/texinfo/po/ja.gmo
new file mode 100644
index 00000000000..110b524f554
--- /dev/null
+++ b/gnu/usr.bin/texinfo/po/ja.gmo
Binary files differ
diff --git a/gnu/usr.bin/texinfo/po/ja.po b/gnu/usr.bin/texinfo/po/ja.po
new file mode 100644
index 00000000000..38321b07fec
--- /dev/null
+++ b/gnu/usr.bin/texinfo/po/ja.po
@@ -0,0 +1,3171 @@
+# 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"
+"POT-Creation-Date: 2002-04-01 06:10-0800\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"
+
+#: info/echo-area.c:283 info/session.c:712
+msgid "Move forward a character"
+msgstr "域妐儂坌褡戶月"
+
+#: info/echo-area.c:295 info/session.c:728
+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:746
+msgid "Move forward a word"
+msgstr "簽賄域勾坌褡戶月"
+
+#: info/echo-area.c:360 info/session.c:795
+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:497
+msgid "Insert a TAB character"
+msgstr "正皮妐儂毛醣ェ允月"
+
+#: info/echo-area.c:504
+msgid "Transpose characters at point"
+msgstr "妐儂及跟晶"
+
+#: info/echo-area.c:555
+msgid "Yank back the contents of the last kill"
+msgstr "平伙伉件弘及ま芢毛鬚曰勾仃月"
+
+#: info/echo-area.c:562
+msgid "Kill ring is empty"
+msgstr "平伙伉件弘互塢匹允"
+
+#: info/echo-area.c:575
+msgid "Yank back a previous kill"
+msgstr "動蟆及平伙伉件弘ま芢毛醣ェ允月"
+
+#: info/echo-area.c:608
+msgid "Kill to the end of the line"
+msgstr "墊坱引匹毛濠曰潸月"
+
+#: info/echo-area.c:621
+msgid "Kill to the beginning of the line"
+msgstr "墊え引匹毛濠曰潸月"
+
+#: info/echo-area.c:633
+msgid "Kill the word following the cursor"
+msgstr "簽賄及市□末伙方曰手詨毛濠曰潸月"
+
+#: info/echo-area.c:652
+msgid "Kill the word preceding the cursor"
+msgstr "簽賄及市□末伙方曰蟆毛濠曰潸月"
+
+#: info/echo-area.c:872 info/echo-area.c:932
+msgid "No completions"
+msgstr "怀敦跳怀互丐曰引六氏"
+
+#: info/echo-area.c:874
+msgid "Not complete"
+msgstr "怀敦匹五引六氏"
+
+#: info/echo-area.c:919
+msgid "List possible completions"
+msgstr "怀敦伉旦玄"
+
+#: info/echo-area.c:936
+msgid "Sole completion"
+msgstr "怀敦毛嘟曰慇心引仄凶"
+
+#: info/echo-area.c:945
+msgid "One completion:\n"
+msgstr "1 勾及怀敦:\n"
+
+#: info/echo-area.c:946
+#, c-format
+msgid "%d completions:\n"
+msgstr "%d 蜊及怀敦\n"
+
+#: info/echo-area.c:1092
+msgid "Insert completion"
+msgstr "怀敦毛醣ェ"
+
+#: info/echo-area.c:1225
+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:175
+msgid "Look up a string in the index for this file"
+msgstr "仇及白央奶伙及葦請仄井日妐儂昫毛腹綢允月"
+
+#: info/indices.c:205
+msgid "Finding index entries..."
+msgstr "葦請仄嫩杴毛葦勾仃化中引允"
+
+#: info/indices.c:212
+msgid "No indices found."
+msgstr "嫩杴互葦勾井曰引六氏"
+
+#: info/indices.c:222
+msgid "Index entry: "
+msgstr "葦請仄嫩杴: "
+
+#: info/indices.c:332
+msgid ""
+"Go to the next matching index item from the last `\\[index-search]' command"
+msgstr "躂蟆及 `\\[index-search]' 戊穴件玉午域譙仄凶葦請仄失奶氾丞毛矇月"
+
+#: info/indices.c:342
+msgid "No previous index search string."
+msgstr "蟆及葦請仄腹綢妐儂昫互丐曰引六氏"
+
+#: info/indices.c:349
+msgid "No index entries."
+msgstr "葦請仄嫩杴互丐曰引六氏"
+
+#: info/indices.c:382
+#, c-format
+msgid "No %sindex entries containing \"%s\"."
+msgstr "\"%2$s\" 毛殖戈%1$s葦請仄嫩杴互丐曰引六氏﹝"
+
+#: info/indices.c:383
+msgid "more "
+msgstr "仇木動曉及"
+
+#: info/indices.c:393
+msgid "CAN'T SEE THIS"
+msgstr "*仇木毛葦日木引六氏*"
+
+#: info/indices.c:429
+#, 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
+#, c-format
+msgid "Scanning indices of \"%s\"..."
+msgstr "\"%s\" 及葦請仄毛譬屯化中引允..."
+
+#: info/indices.c:603
+#, c-format
+msgid "No available info files have \"%s\" in their indices."
+msgstr "奶件犯永弁旦卞 \"%s\" 毛儅勻化中月 info 白央奶伙互迕啦今木化中引六氏﹝"
+
+#: info/indices.c:632
+msgid "Grovel all known info file's indices for a string and build a menu"
+msgstr "蟈化及 info 白央奶伙妐儂昫井日葦請仄毛雖犖仄﹜丟瓦亙□毛綜嶽"
+
+#: info/indices.c:636
+msgid "Index apropos: "
+msgstr "賄嗥毛殖戈嫩杴毛腹綢: "
+
+#: info/indices.c:666
+#, c-format
+msgid ""
+"\n"
+"* Menu: Nodes whoses indices contain \"%s\":\n"
+msgstr ""
+"\n"
+"* 丟瓦亙□: \"%s\" 毛殖戈葦請仄嫩杴\n"
+
+#: info/info.c:260 info/infokey.c:884
+msgid "Try --help for more information.\n"
+msgstr "擇仄仁反 --help 左皿扑亦件毛魂仄化心化仁分今中﹝\n"
+
+#: info/info.c:279 info/infokey.c:139 makeinfo/makeinfo.c:689
+#: util/install-info.c:1224 util/texindex.c:338
+#, c-format
+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"
+"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"
+"沭鏜: 騞鴾佌攪蚺巠蜀洃峇縣寣9催舅羃臚楔々中牏飽αn"
+" -- 輔嗶沭\n"
+"域濠及忡據反丐曰引六氏﹝丐卅凶反﹜GNU General Public Licence 及妐蛻及票匹﹜\n"
+"仇及末白玄它尼失毛瘋т幵匹五引允﹝仇木日卞勾中化及方曰擇仄中濩抸反﹜COPYING\n"
+"午中丹白央奶伙毛葦化仁分今中﹝\n"
+
+#: info/info.c:462
+#, c-format
+msgid "no index entries found for `%s'\n"
+msgstr "`%s' 卞覆允月嫩杴互葦勾井曰引六氏\n"
+
+#: info/info.c:555
+#, fuzzy
+msgid " -b, --speech-friendly be friendly to speech synthesizers.\n"
+msgstr " --speech-friendly 祥擘寧嶽湛卞覆允月褪狟嶺毛嫖戶月\n"
+
+#: info/info.c:562
+#, fuzzy, c-format
+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=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"
+
+#: info/info.c:598 info/infokey.c:903 makeinfo/makeinfo.c:474
+#: util/install-info.c:421 util/texindex.c:286
+#, 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:632
+#, c-format
+msgid "Cannot find node `%s'."
+msgstr "`%s' 用□玉互葦勾井曰引六氏﹝"
+
+#: info/info.c:633
+#, c-format
+msgid "Cannot find node `(%s)%s'."
+msgstr "`(%s)%s' 用□玉互葦勾井曰引六氏"
+
+#: info/info.c:634
+msgid "Cannot find a window!"
+msgstr "它奴件玉它互葦勾井曰引六氏"
+
+#: info/info.c:635
+msgid "Point doesn't appear within this window's node!"
+msgstr "仇及它奴件玉它用□玉ま卞禾奶件玄互蜇木引六氏〞"
+
+#: info/info.c:636
+msgid "Cannot delete the last window."
+msgstr "瘉詨及它奴件玉它反綽輪匹五引六氏"
+
+#: info/info.c:637
+msgid "No menu in this node."
+msgstr "仇及用□玉卞丟瓦亙□反丐曰引六氏﹝"
+
+#: info/info.c:638
+msgid "No footnotes in this node."
+msgstr "仇及用□玉卞萍鏜反丐曰引六氏﹝"
+
+#: info/info.c:639
+msgid "No cross references in this node."
+msgstr "仇及用□玉卞鍬詢輔寰反丐曰引六氏﹝"
+
+#: info/info.c:640
+#, c-format
+msgid "No `%s' pointer for this node."
+msgstr "仇及用□玉及 `%s' 禾奶件正互丐曰引六氏﹝"
+
+#: info/info.c:641
+#, c-format
+msgid "Unknown Info command `%c'; try `?' for help."
+msgstr "怳襞及 Info 戊穴件玉 `%c' -- `?' 匹目伙皿毛葦化仁分今中﹝"
+
+#: info/info.c:642
+#, c-format
+msgid "Terminal type `%s' is not smart enough to run Info."
+msgstr "羹坱正奶皿 `%s' 反 Info 毛が井六月幻升厙軾匹反丐曰引六氏"
+
+#: info/info.c:643
+msgid "You are already at the last page of this node."
+msgstr "仇仇反手丹﹜仇及用□玉及瘉蔽矢□斥匹允﹝"
+
+#: info/info.c:644
+msgid "You are already at the first page of this node."
+msgstr "仇仇反手丹﹜仇及用□玉及瘉賡及矢□斥匹允﹝"
+
+#: info/info.c:645
+msgid "Only one window."
+msgstr "礿域及它奴件玉它﹝"
+
+#: info/info.c:646
+msgid "Resulting window would be too small."
+msgstr "瑛絆它奴件玉它互凝今允亢月迋匹允"
+
+#: info/info.c:647
+msgid "Not enough room for a help window, please delete a window."
+msgstr ""
+"目伙皿它奴件玉它迕及樺赭互簫曰引六氏﹜它奴件玉它毛域勾綽輪仄化仁分今中﹝"
+
+#: info/infodoc.c:45 info/infodoc.c:94
+#, fuzzy
+msgid ""
+"Basic Commands in Info Windows\n"
+"******************************\n"
+msgstr "Info 它奴件玉它ま及湘呿戊穴件玉\n"
+
+#: info/infodoc.c:48
+#, fuzzy
+msgid "\\%-10[quit-help] Quit this help.\n"
+msgstr " %-10s 仇及目伙皿毛蔽弇允月﹝\n"
+
+#: info/infodoc.c:49
+#, fuzzy
+msgid "\\%-10[quit] Quit Info altogether.\n"
+msgstr " %-10s Info 手域踝卞蔽弇允月﹝\n"
+
+#: info/infodoc.c:50
+#, fuzzy
+msgid "\\%-10[get-info-help-node] Invoke the Info tutorial.\n"
+msgstr " %-10s Info 民亙□玄伉失伙毛粟が允月﹝\n"
+
+#: info/infodoc.c:52 info/infodoc.c:101
+#, fuzzy
+msgid ""
+"Selecting other nodes:\n"
+"----------------------\n"
+msgstr "職及用□玉毛薊鎗允月:\n"
+
+#: info/infodoc.c:54
+#, fuzzy
+msgid "\\%-10[next-node] Move to the \"next\" node of this node.\n"
+msgstr " %-10s 仇及用□玉及 `慼' 及用□玉尺啖が允月﹝\n"
+
+#: info/infodoc.c:55
+#, fuzzy
+msgid "\\%-10[prev-node] Move to the \"previous\" node of this node.\n"
+msgstr " %-10s 仇及用□玉及 `蟆' 及用□玉尺啖が允月﹝\n"
+
+#: info/infodoc.c:56
+#, fuzzy
+msgid "\\%-10[up-node] Move \"up\" from this node.\n"
+msgstr " %-10s 仇及用□玉井日 `曉' 尺啖が允月﹝\n"
+
+#: info/infodoc.c:57
+#, fuzzy
+msgid ""
+"\\%-10[menu-item] Pick menu item specified by name.\n"
+" Picking a menu item causes another node to be selected.\n"
+msgstr ""
+" 丟瓦亙□失奶氾丞及薊鎗匹﹜職及用□玉互薊鎗今木月儀卞卅月﹝\n"
+
+#: info/infodoc.c:59
+#, fuzzy
+msgid ""
+"\\%-10[xref-item] Follow a cross reference. Reads name of reference.\n"
+msgstr " %-10s 鍬詢輔寰毛矇月﹝輔寰抩毛づ心潸月﹝\n"
+
+#: info/infodoc.c:60
+#, fuzzy
+msgid "\\%-10[history-node] Move to the last node seen in this window.\n"
+msgstr " %-10s 仇及它奴件玉它匹瘉詨卞葦凶用□玉尺啖が允月﹝\n"
+
+#: info/infodoc.c:61
+#, fuzzy
+msgid ""
+"\\%-10[move-to-next-xref] Skip to next hypertext link within this node.\n"
+msgstr " %-10s 仇及用□玉ま及慼及甩奶由□伉件弁尺旦平永皿允月﹝\n"
+
+#: info/infodoc.c:62
+#, fuzzy
+msgid ""
+"\\%-10[move-to-prev-xref] Skip to previous hypertext link within this "
+"node.\n"
+msgstr " %-10s 仇及用□玉ま及慼及甩奶由□伉件弁尺旦平永皿允月﹝\n"
+
+#: info/infodoc.c:63
+#, fuzzy
+msgid ""
+"\\%-10[select-reference-this-line] Follow the hypertext link under cursor.\n"
+msgstr " %-10s 市□末伙匏譆及甩奶由□伉件弁毛矇月﹝\n"
+
+#: info/infodoc.c:64
+#, fuzzy
+msgid ""
+"\\%-10[dir-node] Move to the `directory' node. Equivalent to `\\[goto-"
+"node] (DIR)'.\n"
+msgstr " %-10s `犯奴伊弁玄伉' 用□玉尺啖が﹝`g (DIR)' 午き元﹝\n"
+
+#: info/infodoc.c:65
+#, fuzzy
+msgid ""
+"\\%-10[top-node] Move to the Top node. Equivalent to `\\[goto-node] Top'.\n"
+msgstr " %-10s Top 用□玉尺啖が﹝`g Top' 午き元﹝\n"
+
+#: info/infodoc.c:67 info/infodoc.c:115
+#, fuzzy
+msgid ""
+"Moving within a node:\n"
+"---------------------\n"
+msgstr "用□玉ま匹及啖が:\n"
+
+#: info/infodoc.c:69
+#, fuzzy
+msgid "\\%-10[scroll-forward] Scroll forward a page.\n"
+msgstr " %-10s 1 矢□斥坌蟆杅尺褡戶月﹝\n"
+
+#: info/infodoc.c:70
+#, fuzzy
+msgid "\\%-10[scroll-backward] Scroll backward a page.\n"
+msgstr " %-10s 1 矢□斥坌詨杅尺枑允﹝\n"
+
+#: info/infodoc.c:71
+#, fuzzy
+msgid "\\%-10[beginning-of-node] Go to the beginning of this node.\n"
+msgstr " %-10s 蜇箕及用□玉及燮え尺啖が允月﹝\n"
+
+#: info/infodoc.c:72
+#, fuzzy
+msgid "\\%-10[end-of-node] Go to the end of this node.\n"
+msgstr " %-10s 蜇箕及用□玉及燮え尺啖が允月﹝\n"
+
+#: info/infodoc.c:73
+#, fuzzy
+msgid "\\%-10[scroll-forward] Scroll forward 1 line.\n"
+msgstr " %-10s 1 墊坌蟆杅尺允允戶月﹝\n"
+
+#: info/infodoc.c:74
+#, fuzzy
+msgid "\\%-10[scroll-backward] Scroll backward 1 line.\n"
+msgstr " %-10s 1 墊坌詨杅尺枑允﹝\n"
+
+#: info/infodoc.c:76 info/infodoc.c:124
+#, fuzzy
+msgid ""
+"Other commands:\n"
+"---------------\n"
+msgstr "公及職及戊穴件玉:\n"
+
+#: info/infodoc.c:78
+#, fuzzy
+msgid "\\%-10[menu-digit] Pick first ... ninth item in node's menu.\n"
+msgstr " %-10s 用□玉丟瓦亙□及瘉賡井日 9 筇嗛齯峊╞丰ぁ鄐臗祁礞馱諢αn"
+
+#: info/infodoc.c:79
+#, fuzzy
+msgid "\\%-10[last-menu-item] Pick last item in node's menu.\n"
+msgstr " %-10s 用□玉丟瓦亙□及瘉詨及失奶氾丞毛薊鎗允月﹝\n"
+
+#: info/infodoc.c:80
+#, fuzzy
+msgid ""
+"\\%-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"
+msgstr " 瘉賡卞葦勾井勻凶嫩杴互輔寰仄化中月用□玉毛薊鎗允月﹝\n"
+
+#: info/infodoc.c:82
+#, 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"
+
+#: info/infodoc.c:84
+#, 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"
+
+#: info/infodoc.c:86
+#, 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"
+
+#: info/infodoc.c:97
+#, c-format
+msgid " %-10s Quit this help.\n"
+msgstr " %-10s 仇及目伙皿毛蔽弇允月﹝\n"
+
+#: info/infodoc.c:98
+#, c-format
+msgid " %-10s Quit Info altogether.\n"
+msgstr " %-10s Info 手域踝卞蔽弇允月﹝\n"
+
+#: info/infodoc.c:99
+#, c-format
+msgid " %-10s Invoke the Info tutorial.\n"
+msgstr " %-10s Info 民亙□玄伉失伙毛粟が允月﹝\n"
+
+#: info/infodoc.c:103
+#, c-format
+msgid " %-10s Move to the `next' node of this node.\n"
+msgstr " %-10s 仇及用□玉及 `慼' 及用□玉尺啖が允月﹝\n"
+
+#: info/infodoc.c:104
+#, c-format
+msgid " %-10s Move to the `previous' node of this node.\n"
+msgstr " %-10s 仇及用□玉及 `蟆' 及用□玉尺啖が允月﹝\n"
+
+#: info/infodoc.c:105
+#, c-format
+msgid " %-10s Move `up' from this node.\n"
+msgstr " %-10s 仇及用□玉井日 `曉' 尺啖が允月﹝\n"
+
+#: info/infodoc.c:106
+#, c-format
+msgid " %-10s Pick menu item specified by name.\n"
+msgstr " %-10s 抩蟆匹隙爛仄凶丟瓦亙□失奶氾丞毛薊鎗允月﹝\n"
+
+#: info/infodoc.c:107
+msgid " Picking a menu item causes another node to be selected.\n"
+msgstr ""
+" 丟瓦亙□失奶氾丞及薊鎗匹﹜職及用□玉互薊鎗今木月儀卞卅月﹝\n"
+
+#: info/infodoc.c:108
+#, c-format
+msgid " %-10s Follow a cross reference. Reads name of reference.\n"
+msgstr " %-10s 鍬詢輔寰毛矇月﹝輔寰抩毛づ心潸月﹝\n"
+
+#: info/infodoc.c:109
+#, c-format
+msgid " %-10s Move to the last node seen in this window.\n"
+msgstr " %-10s 仇及它奴件玉它匹瘉詨卞葦凶用□玉尺啖が允月﹝\n"
+
+#: info/infodoc.c:110
+#, c-format
+msgid " %-10s Skip to next hypertext link within this node.\n"
+msgstr " %-10s 仇及用□玉ま及慼及甩奶由□伉件弁尺旦平永皿允月﹝\n"
+
+#: info/infodoc.c:111
+#, c-format
+msgid " %-10s Follow the hypertext link under cursor.\n"
+msgstr " %-10s 市□末伙匏譆及甩奶由□伉件弁毛矇月﹝\n"
+
+#: info/infodoc.c:112
+#, c-format
+msgid " %-10s Move to the `directory' node. Equivalent to `g (DIR)'.\n"
+msgstr " %-10s `犯奴伊弁玄伉' 用□玉尺啖が﹝`g (DIR)' 午き元﹝\n"
+
+#: info/infodoc.c:113
+#, c-format
+msgid " %-10s Move to the Top node. Equivalent to `g Top'.\n"
+msgstr " %-10s Top 用□玉尺啖が﹝`g Top' 午き元﹝\n"
+
+#: info/infodoc.c:117
+#, c-format
+msgid " %-10s Scroll forward a page.\n"
+msgstr " %-10s 1 矢□斥坌蟆杅尺褡戶月﹝\n"
+
+#: info/infodoc.c:118
+#, c-format
+msgid " %-10s Scroll backward a page.\n"
+msgstr " %-10s 1 矢□斥坌詨杅尺枑允﹝\n"
+
+#: info/infodoc.c:119
+#, c-format
+msgid " %-10s Go to the beginning of this node.\n"
+msgstr " %-10s 蜇箕及用□玉及燮え尺啖が允月﹝\n"
+
+#: info/infodoc.c:120
+#, c-format
+msgid " %-10s Go to the end of this node.\n"
+msgstr " %-10s 蜇箕及用□玉及燮え尺啖が允月﹝\n"
+
+#: info/infodoc.c:121
+#, c-format
+msgid " %-10s Scroll forward 1 line.\n"
+msgstr " %-10s 1 墊坌蟆杅尺允允戶月﹝\n"
+
+#: info/infodoc.c:122
+#, c-format
+msgid " %-10s Scroll backward 1 line.\n"
+msgstr " %-10s 1 墊坌詨杅尺枑允﹝\n"
+
+#: info/infodoc.c:126
+#, c-format
+msgid " %-10s Pick first ... ninth item in node's menu.\n"
+msgstr " %-10s 用□玉丟瓦亙□及瘉賡井日 9 筇嗛齯峊╞丰ぁ鄐臗祁礞馱諢αn"
+
+#: info/infodoc.c:127
+#, c-format
+msgid " %-10s Pick last item in node's menu.\n"
+msgstr " %-10s 用□玉丟瓦亙□及瘉詨及失奶氾丞毛薊鎗允月﹝\n"
+
+#: info/infodoc.c:128
+#, c-format
+msgid ""
+" %-10s Search for a specified string in the index entries of this Info\n"
+msgstr ""
+" %-10s 蜇箕及 Info 白央奶伙及奶件犯永弁旦嫩杴匹﹜妐儂昫毛隙爛仄化腹綢仄﹜\n"
+
+#: info/infodoc.c:129
+msgid ""
+" file, and select the node referenced by the first entry "
+"found.\n"
+msgstr " 瘉賡卞葦勾井勻凶嫩杴互輔寰仄化中月用□玉毛薊鎗允月﹝\n"
+
+#: info/infodoc.c:130
+#, c-format
+msgid " %-10s Move to node specified by name.\n"
+msgstr " %-10s 抩蟆匹隙爛今木凶用□玉卞啖が允月﹝\n"
+
+#: info/infodoc.c:131
+msgid ""
+" You may include a filename as well, as in (FILENAME)NODENAME.\n"
+msgstr ""
+" (白央奶伙抩)用□玉抩 及迋卞﹜白央奶伙抩毛殖戶月仇午互匹五引"
+"允﹝\n"
+
+#: info/infodoc.c:132
+#, fuzzy, c-format
+msgid " %-10s Search forward for a specified string,\n"
+msgstr " %-10s 蜇箕及 Info 白央奶伙蟈蟲毛﹜隙爛今木凶妐儂昫匹蟆杅腹綢仄﹜\n"
+
+#: info/infodoc.c:133 info/infodoc.c:135
+msgid ""
+" and select the node in which the next occurrence is found.\n"
+msgstr " 葦勾井勻凶手及互殖引木化中月用□玉毛薊鎗允月﹝\n"
+
+#: info/infodoc.c:134
+#, fuzzy, c-format
+msgid " %-10s Search backward for a specified string\n"
+msgstr "\\\\ %-10s 蜇箕及 Info 白央奶伙毛﹜隙爛今木凶妐儂昫匹詨杅腹綢仄﹜\n"
+
+#: info/infodoc.c:313
+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:319
+msgid ""
+"Commands available in the echo area:\n"
+"\n"
+msgstr "巨戊□恄啗匹厙迕第Х卅戊穴件玉:\n"
+
+#: info/infodoc.c:340
+#, c-format
+msgid ""
+"The following commands can only be invoked via %s:\n"
+"\n"
+msgstr ""
+"動票及戊穴件玉反﹜%s 毛騷元化及心粟が匹五引允:\n"
+"\n"
+
+#: info/infodoc.c:343
+msgid ""
+"The following commands cannot be invoked at all:\n"
+"\n"
+msgstr ""
+"動票及戊穴件玉反﹜蟈仁粟が允月儀互匹五引六氏:\n"
+"\n"
+
+#: info/infodoc.c:367
+msgid "--- Use `\\[history-node]' or `\\[kill-node]' to exit ---\n"
+msgstr ""
+"--- 蔽弇允月卞反 `\\[history-node]' 井 `\\[kill-node]' 毛銀勻化仁分今中 ---\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:638
+msgid "Print documentation for KEY"
+msgstr "平□醜綜毛刓憎允月"
+
+#: info/infodoc.c:650
+#, c-format
+msgid "Describe key: %s"
+msgstr "平□及濩抸: %s"
+
+#: info/infodoc.c:660
+#, c-format
+msgid "ESC %s is undefined."
+msgstr "ESC %s 反爛聒今木化中引六氏﹝"
+
+#: info/infodoc.c:676 info/infodoc.c:703
+#, c-format
+msgid "%s is undefined."
+msgstr "%s 反爛聒今木化中引六氏"
+
+#: info/infodoc.c:724
+#, c-format
+msgid "%s is defined to %s."
+msgstr "%s 反 %s 卞爛聒今木化中引允﹝"
+
+#: info/infodoc.c:1151
+msgid "Show what to type to execute a given command"
+msgstr "芨尹日木凶戊穴件玉毛撢墊允月及卞﹜窒毛正奶皿允月井毛刓憎允月"
+
+#: info/infodoc.c:1155
+msgid "Where is command: "
+msgstr "升及戊穴件玉: "
+
+#: info/infodoc.c:1177
+#, c-format
+msgid "`%s' is not on any keys"
+msgstr "`%s' 反平□喃曰癲化今木化中引六氏"
+
+#: info/infodoc.c:1183
+#, c-format
+msgid "%s can only be invoked via %s."
+msgstr "%s 反 %s 毛騷元化及心裟太請六引允﹝"
+
+#: info/infodoc.c:1186
+#, c-format
+msgid "%s can be invoked via %s."
+msgstr "%s 反 %s 毛騷元化裟太請六引允"
+
+#: info/infodoc.c:1190
+#, c-format
+msgid "There is no function named `%s'"
+msgstr "`%s' 午中丹窗Х反丐曰引六氏"
+
+#: info/infokey.c:164
+msgid "incorrect number of arguments"
+msgstr "婁醒及醒儂互棉啜勻化中引允"
+
+#: info/infokey.c:194
+#, c-format
+msgid "cannot open input file `%s'"
+msgstr "ェ恘白央奶伙 `%s' 毛釩仃引六氏"
+
+#: info/infokey.c:207
+#, c-format
+msgid "cannot create output file `%s'"
+msgstr "請恘白央奶伙 `%s' 毛綜嶽匹五引六氏"
+
+#: info/infokey.c:217
+#, c-format
+msgid "error writing to `%s'"
+msgstr "`%s' 尺及踏五慇心醱及巨仿□"
+
+#: info/infokey.c:222
+#, c-format
+msgid "error closing output file `%s'"
+msgstr "請恘白央奶伙 `%s' 毛岉元月端及巨仿□"
+
+#: info/infokey.c:443
+msgid "key sequence too long"
+msgstr "平□ェ恘昫互贏允亢引允"
+
+#: info/infokey.c:521
+msgid "missing key sequence"
+msgstr "平□ェ恘昫毛瑞中化中引允"
+
+#: info/infokey.c:600
+msgid "NUL character (\\000) not permitted"
+msgstr "NUL 妐儂 (\\000) 反銀尹引六氏"
+
+#: info/infokey.c:629
+#, c-format
+msgid "NUL character (^%c) not permitted"
+msgstr "NUL 妐儂 (^%c) 反銀尹引六氏"
+
+#: info/infokey.c:652
+msgid "missing action name"
+msgstr "失弁扑亦件抩毛瑞中化中引允"
+
+#: info/infokey.c:667 info/infokey.c:733
+msgid "section too long"
+msgstr "本弁扑亦件互贏允亢引允"
+
+#: info/infokey.c:673
+#, c-format
+msgid "unknown action `%s'"
+msgstr "尕抸卅失弁扑亦件 `%s'"
+
+#: info/infokey.c:682
+msgid "action name too long"
+msgstr "失弁扑亦件抩互贏允亢引允"
+
+#: info/infokey.c:694
+#, c-format
+msgid "extra characters following action `%s'"
+msgstr "失弁扑亦件 `%s' 卞芴坌卅妐儂互糧中化中引允"
+
+#: info/infokey.c:704
+msgid "missing variable name"
+msgstr "庍醒抩毛瑞中化中引允"
+
+#: info/infokey.c:712
+msgid "missing `=' immediately after variable name"
+msgstr "庍醒抩及躂詨及 `=' 毛瑞中化中引允"
+
+#: info/infokey.c:719
+msgid "variable name too long"
+msgstr "庍醒抩互贏允亢引允"
+
+#: info/infokey.c:741
+msgid "value too long"
+msgstr "襖互贏允亢引允"
+
+#: info/infokey.c:875
+#, c-format
+msgid "\"%s\", line %u: "
+msgstr "\"%s\", %u 墊杴: "
+
+#: info/infokey.c:891
+#, 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:1397
+#, c-format
+msgid "Ignoring invalid infokey file `%s' - too small"
+msgstr "尕贗濠卅 infokey 白央奶伙 `%s' 毛拑骰仄引允 - 凝今允亢引允"
+
+#: info/infomap.c:1400
+#, c-format
+msgid "Ignoring invalid infokey file `%s' - too big"
+msgstr "尕贗濠卅 infokey 白央奶伙 `%s' 毛拑骰仄引允 - 釐五允亢引允"
+
+#: info/infomap.c:1413
+#, c-format
+msgid "Error reading infokey file `%s' - short read"
+msgstr "infokey 白央奶伙 `%s' づ慇心醱及巨仿□ -- 蟈化づ慇戶引六氏匹仄凶"
+
+#: info/infomap.c:1431
+#, c-format
+msgid ""
+"Invalid infokey file `%s' (bad magic numbers) -- run infokey to update it"
+msgstr ""
+"infokey 白央奶伙 `%s' 互尕贗濠 (穴斥永弁砦璊為膉) 匹允 -- infokey 毛撢墊仄"
+"化凳蕙仄引仄斤丹"
+
+#: info/infomap.c:1437
+#, c-format
+msgid "Your infokey file `%s' is out of date -- run infokey to update it"
+msgstr ""
+"丐卅凶及 infokey 白央奶伙 `%s' 反衙中匹允 -- infokey 毛撢墊仄化凳蕙仄引仄斤丹"
+
+#: info/infomap.c:1450
+#, c-format
+msgid ""
+"Invalid infokey file `%s' (bad section length) -- run infokey to update it"
+msgstr ""
+"infokey 白央奶伙 `%s' 互尕贗濠匹允 (本弁扑亦件贏互尕懇匹允) -- infokey 毛撢墊"
+"仄化凳蕙仄引仄斤丹"
+
+#: info/infomap.c:1470
+#, c-format
+msgid ""
+"Invalid infokey file `%s' (bad section code) -- run infokey to update it"
+msgstr ""
+"infokey 白央奶伙 `%s' 互尕贗濠匹允 (本弁扑亦件戊□玉互尕懇匹允) -- infokey 毛"
+"撢墊仄化凳蕙仄引仄斤丹"
+
+#: info/infomap.c:1608
+msgid "Bad data in infokey file -- some key bindings ignored"
+msgstr ""
+"infokey 白央奶伙卞尕懇卅犯□正互丐曰引允 -- 湯勾井及平□田奶件玉互拑骰今木引"
+"仄凶"
+
+#: info/infomap.c:1659
+msgid "Bad data in infokey file -- some var settings ignored"
+msgstr ""
+"infokey 白央奶伙卞尕懇卅犯□正互丐曰引允 -- 湯勾井及庍醒澀爛互拑骰今木引仄凶"
+
+#: info/m-x.c:70
+msgid "Read the name of an Info command and describe it"
+msgstr "Info 戊穴件玉抩午公及濩抸毛づ戈"
+
+#: info/m-x.c:74
+msgid "Describe command: "
+msgstr "濩抸允月戊穴件玉: "
+
+#: info/m-x.c:97
+msgid "Read a command name in the echo area and execute it"
+msgstr "巨戊□恄啗匹戊穴件玉抩毛づ心﹜撢墊允月"
+
+#: info/m-x.c:141
+msgid "Cannot execute an `echo-area' command here."
+msgstr "仇仇匹反 `echo-area' 戊穴件玉毛撢墊匹五引六氏﹝"
+
+#: info/m-x.c:157
+msgid "Set the height of the displayed window"
+msgstr "刓憎今木月它奴件玉它及嫖今毛澀爛"
+
+#: info/m-x.c:170
+#, c-format
+msgid "Set screen height to (%d): "
+msgstr "旦弁伉□件及嫖今毛本永玄 (%d): "
+
+#: info/makedoc.c:161 info/makedoc.c:169
+msgid ""
+" Source files groveled to make this file include:\n"
+"\n"
+msgstr ""
+" 仇及白央奶伙毛綜月葭卞卅勻凶白央奶伙:\n"
+"\n"
+
+#: info/makedoc.c:553
+#, c-format
+msgid "Couldn't manipulate the file %s.\n"
+msgstr "白央奶伙 %s 毛曉澎仁質咥匹五引六氏﹝\n"
+
+#: info/nodemenu.c:28
+msgid ""
+"\n"
+"* Menu:\n"
+" (File)Node Lines Size Containing File\n"
+" ---------- ----- ---- ---------------"
+msgstr ""
+"\n"
+"* 丟瓦亙□:\n"
+" (白央奶伙)用□玉 墊醒 扔奶朮 殖引木月白央奶伙\n"
+" ---------------- ----- ---- ----------------"
+
+#: info/nodemenu.c:199
+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:219
+msgid "Make a window containing a menu of all of the currently visited nodes"
+msgstr "瘉嗤邠木凶用□玉蟈化及丟瓦亙□毛殖氏匹中月它奴件玉它毛綜嶽"
+
+#: info/nodemenu.c:299
+msgid "Select a node which has been previously visited in a visible window"
+msgstr "刓憎今木化中月它奴件玉它ま及﹜動蟆邠木凶儀及丐月用□玉毛薊鎗"
+
+#: info/nodemenu.c:311
+msgid "Select visited node: "
+msgstr "邠木凶用□玉毛薊鎗: "
+
+#: info/nodemenu.c:331 info/session.c:2235
+#, c-format
+msgid "The reference disappeared! (%s)."
+msgstr "公及輔寰反壅尹引仄凶! (%s)﹝"
+
+#: info/session.c:170
+#, 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:643
+msgid "Move down to the next line"
+msgstr "慼及墊卞啖が"
+
+#: info/session.c:658
+msgid "Move up to the previous line"
+msgstr "蟆及墊卞啖が"
+
+#: info/session.c:673
+msgid "Move to the end of the line"
+msgstr "墊坱卞啖が"
+
+#: info/session.c:693
+msgid "Move to the start of the line"
+msgstr "墊え卞啖が"
+
+#: info/session.c:885 makeinfo/node.c:1357
+msgid "Next"
+msgstr "慼"
+
+#: info/session.c:888
+msgid "Following Next node..."
+msgstr "慼 及用□玉毛矇勻化中引允..."
+
+#: info/session.c:905
+msgid "Selecting first menu item..."
+msgstr "瘉賡及丟瓦亙□嫩杴毛薊鎗..."
+
+#: info/session.c:916
+msgid "Selecting Next node..."
+msgstr "慼 及用□玉毛薊鎗..."
+
+#: info/session.c:986
+#, c-format
+msgid "Moving Up %d time(s), then Next."
+msgstr "%d 莢 曉 卞啖が仄﹜公仇匹 慼 尺﹝"
+
+#: info/session.c:1010
+msgid "No more nodes within this document."
+msgstr "仇及玉平亙丟件玄卞反﹜仇木動曉及用□玉反丐曰引六氏﹝"
+
+#: info/session.c:1034
+msgid "No `Prev' for this node."
+msgstr "仇及用□玉及 `蟆' 反丐曰引六氏﹝"
+
+#: info/session.c:1037 info/session.c:1092
+msgid "Moving Prev in this window."
+msgstr "仇及它奴件玉它及 蟆 卞啖が仄引允﹝"
+
+#: info/session.c:1051
+msgid "No `Prev' or `Up' for this node within this document."
+msgstr "仇及玉平亙丟件玄匹反﹜仇及用□玉及 `蟆' 支 `曉' 反丐曰引六氏﹝"
+
+#: info/session.c:1054
+msgid "Moving Up in this window."
+msgstr "仇及它奴件玉它及 曉 卞啖が仄引允﹝"
+
+#: info/session.c:1102
+msgid "Moving to `Prev's last menu item."
+msgstr "`蟆' 及瘉詨及丟瓦亙□嫩杴卞啖が仄引允﹝"
+
+#: info/session.c:1113
+msgid "Move forwards or down through node structure"
+msgstr "用□玉厭瞻毛騷元化褡戶凶曰票互勻凶曰允月"
+
+#: info/session.c:1129
+msgid "Move backwards or up through node structure"
+msgstr "用□玉厭瞻毛騷元化枑勻凶曰曉互勻凶曰允月"
+
+#: info/session.c:1229
+msgid "Scroll forward in this window"
+msgstr "仇及它奴件玉它毛旦弁伕□伙母它件"
+
+#: info/session.c:1237
+msgid "Scroll forward in this window and set default window size"
+msgstr "仇及它奴件玉它毛旦弁伕□伙仄﹜犯白巧伙玄它奴件玉它扔奶朮毛澀爛"
+
+#: info/session.c:1245
+msgid "Scroll forward in this window staying within node"
+msgstr "仇及它奴件玉它毛用□玉炾玅滮Щ動旦弁伕□伙"
+
+#: info/session.c:1253
+msgid ""
+"Scroll forward in this window staying within node and set default window size"
+msgstr ""
+"仇及它奴件玉它毛用□玉炾玅滮Щ動旦弁伕□伙仄﹜犯白巧伙玄它奴件玉它扔奶朮毛"
+"澀爛"
+
+#: info/session.c:1261
+msgid "Scroll backward in this window"
+msgstr "仇及它奴件玉它毛菅旦弁伕□伙"
+
+#: info/session.c:1269
+msgid "Scroll backward in this window and set default window size"
+msgstr "仇及它奴件玉它毛菅旦弁伕□伙仄﹜犯白巧伙玄它奴件玉它扔奶朮毛澀爛"
+
+#: info/session.c:1278
+msgid "Scroll backward in this window staying within node"
+msgstr "仇及它奴件玉它毛用□玉炾玅滮К樀旦弁伕□伙"
+
+#: info/session.c:1286
+msgid ""
+"Scroll backward in this window staying within node and set default window "
+"size"
+msgstr ""
+"仇及它奴件玉它毛用□玉炾玅滮К樀旦弁伕□伙仄﹜犯白巧伙玄它奴件玉它扔奶朮毛"
+"澀爛"
+
+#: info/session.c:1294
+msgid "Move to the start of this node"
+msgstr "仇及用□玉及瘉賡卞啖が"
+
+#: info/session.c:1301
+msgid "Move to the end of this node"
+msgstr "仇及用□玉及瘉詨卞啖が"
+
+#: info/session.c:1308
+msgid "Scroll down by lines"
+msgstr "墊醒卞方月旦弁伕□伙"
+
+#: info/session.c:1325
+msgid "Scroll up by lines"
+msgstr "墊醒卞方月菅旦弁伕□伙"
+
+#: info/session.c:1343
+msgid "Scroll down by half screen size"
+msgstr "脰昍扔奶朮及彊洛馴砲瞴憧"
+
+#: info/session.c:1369
+msgid "Scroll up by half screen size"
+msgstr "脰昍扔奶朮及彊炸掍馴砲瞴憧"
+
+#: info/session.c:1398
+msgid "Select the next window"
+msgstr "慼及它奴件玉它毛薊鎗"
+
+#: info/session.c:1437
+msgid "Select the previous window"
+msgstr "蟆及它奴件玉它毛薊鎗"
+
+#: info/session.c:1488
+msgid "Split the current window"
+msgstr "蜇箕及它奴件玉它毛坌喃"
+
+#: info/session.c:1569
+msgid "Delete the current window"
+msgstr "蜇箕及它奴件玉它毛綽輪"
+
+#: info/session.c:1577
+msgid "Cannot delete a permanent window"
+msgstr "捩菁它奴件玉它反綽輪匹五引六氏"
+
+#: info/session.c:1610
+msgid "Delete all other windows"
+msgstr "職及它奴件玉它毛綽輪"
+
+#: info/session.c:1656
+msgid "Scroll the other window"
+msgstr "職及它奴件玉它毛旦弁伕□伙"
+
+#: info/session.c:1677
+msgid "Scroll the other window backward"
+msgstr "職及它奴件玉它毛菅旦弁伕□伙"
+
+#: info/session.c:1683
+msgid "Grow (or shrink) this window"
+msgstr "仇及它奴件玉它毛釐五仁允月(引凶反凝今仁允月)"
+
+#: info/session.c:1694
+msgid "Divide the available screen space among the visible windows"
+msgstr "第骰它奴件玉它及厙迕第Х旦弁伉□件塢棉毛坌喃允月"
+
+#: info/session.c:1701
+msgid "Toggle the state of line wrapping in the current window"
+msgstr "蜇箕及它奴件玉它卞嗟禮質咥毛雒允"
+
+#: info/session.c:1880
+msgid "Select the Next node"
+msgstr "慼 用□玉毛薊鎗"
+
+#: info/session.c:1888
+msgid "Select the Prev node"
+msgstr "蟆 用□玉毛薊鎗"
+
+#: info/session.c:1896
+msgid "Select the Up node"
+msgstr "曉 用□玉毛薊鎗"
+
+#: info/session.c:1903
+msgid "Select the last node in this file"
+msgstr "仇及白央奶伙及瘉詨及用□玉毛薊鎗"
+
+#: info/session.c:1930 info/session.c:1963
+msgid "This window has no additional nodes"
+msgstr "仇及它奴件玉它卞反用□玉互尥中化中引六氏"
+
+#: info/session.c:1936
+msgid "Select the first node in this file"
+msgstr "仇及白央奶伙及瘉賡及用□玉毛薊鎗"
+
+#: info/session.c:1970
+msgid "Select the last item in this node's menu"
+msgstr "仇及用□玉及丟瓦亙□ま匹及瘉詨及嫩杴毛薊鎗"
+
+#: info/session.c:1976
+msgid "Select this menu item"
+msgstr "仇及丟瓦亙□嫩杴毛薊鎗"
+
+#: info/session.c:2005
+#, c-format
+msgid "There aren't %d items in this menu."
+msgstr "仇及丟瓦亙□卞 %d 蜊及嫩杴互丐曰引六氏﹝"
+
+#: info/session.c:2148
+#, c-format
+msgid "Menu item (%s): "
+msgstr "丟瓦亙□嫩杴 (%s): "
+
+#: info/session.c:2150
+msgid "Menu item: "
+msgstr "丟瓦亙□嫩杴: "
+
+#: info/session.c:2155
+#, c-format
+msgid "Follow xref (%s): "
+msgstr "輔寰燮 (%s): "
+
+#: info/session.c:2157
+msgid "Follow xref: "
+msgstr "輔寰燮: "
+
+#: info/session.c:2280
+msgid "Read a menu item and select its node"
+msgstr "丟瓦亙□毛づ氏匹﹜公及用□玉毛薊鎗允月"
+
+#: info/session.c:2288
+msgid "Read a footnote or cross reference and select its node"
+msgstr "萍鏜支鍬詢輔寰毛づ氏匹﹜公及用□玉毛薊鎗允月"
+
+#: info/session.c:2294
+msgid "Move to the start of this node's menu"
+msgstr "仇及用□玉丟瓦亙□及燮え卞啖が允月"
+
+#: info/session.c:2318
+msgid "Visit as many menu items at once as possible"
+msgstr "第Х卅蜃曰聶仁及丟瓦亙□嫩杴尺域蘸卞邠木月"
+
+#: info/session.c:2346
+msgid "Read a node name and select it"
+msgstr "用□玉抩毛づ氏匹﹜薊鎗允月"
+
+#: info/session.c:2401 info/session.c:2405
+msgid "Goto node: "
+msgstr "用□玉尺啖が: "
+
+#: info/session.c:2471
+#, c-format
+msgid "No menu in node `%s'."
+msgstr "用□玉 `%s' 卞丟瓦亙□互丐曰引六氏﹝"
+
+#: info/session.c:2516
+#, c-format
+msgid "No menu item `%s' in node `%s'."
+msgstr "丟瓦亙□失奶氾丞 `%s' 反用□玉 `%s' 醱卞反丐曰引六氏"
+
+#: info/session.c:2546
+#, c-format
+msgid "Unable to find node referenced by `%s' in `%s'."
+msgstr "`%s' 井日輔寰今木化中月用□玉毛葦勾仃日木引六氏(`%s' 醱)"
+
+#: info/session.c:2597
+msgid "Read a list of menus starting from dir and follow them"
+msgstr "dir 井日丟瓦亙□釩銨伉旦玄毛づ心﹜公木毛矇月"
+
+#: info/session.c:2599
+msgid "Follow menus: "
+msgstr "丟瓦亙□卞糧仁: "
+
+#: info/session.c:2797
+msgid "Find the node describing program invocation"
+msgstr "皿伕弘仿丞粟が卞楮允月濩抸及用□玉毛葦勾仃月"
+
+#: info/session.c:2799
+#, c-format
+msgid "Find Invocation node of [%s]: "
+msgstr "[%s] 及粟が用□玉毛葦勾仃月: "
+
+#: info/session.c:2837
+msgid "Read a manpage reference and select it"
+msgstr "man 矢□斥尺及輔寰毛づ氏匹﹜薊鎗允月"
+
+#: info/session.c:2841
+msgid "Get Manpage: "
+msgstr "Man 矢□斥毛刓憎: "
+
+#: info/session.c:2871
+msgid "Select the node `Top' in this file"
+msgstr "仇及白央奶伙及 `燮え' 用□玉毛薊鎗"
+
+#: info/session.c:2877
+msgid "Select the node `(dir)'"
+msgstr "`(dir)'用□玉毛薊鎗允月"
+
+#: info/session.c:2897
+#, c-format
+msgid "Kill node (%s): "
+msgstr "用□玉及濠曰潸曰 (%s): "
+
+#: info/session.c:2951
+#, c-format
+msgid "Cannot kill node `%s'"
+msgstr "`%s' 用□玉毛濠曰潸木引六氏"
+
+#: info/session.c:2961
+msgid "Cannot kill the last node"
+msgstr "瘉詨及用□玉反濠曰潸木引六氏"
+
+#: info/session.c:3047
+msgid "Select the most recently selected node"
+msgstr "瘉詨卞薊鎗今木凶用□玉毛薊鎗允月"
+
+#: info/session.c:3053
+msgid "Kill this node"
+msgstr "仇及用□玉毛濠曰潸月"
+
+#: info/session.c:3061
+msgid "Read the name of a file and select it"
+msgstr "白央奶伙抩毛づ氏匹薊鎗允月"
+
+#: info/session.c:3065
+msgid "Find file: "
+msgstr "白央奶伙毛葦勾仃月: "
+
+#: info/session.c:3082
+#, c-format
+msgid "Cannot find `%s'."
+msgstr "`%s' 毛葦勾仃日木引六氏﹝"
+
+#: info/session.c:3127 info/session.c:3248
+#, c-format
+msgid "Could not create output file `%s'."
+msgstr "請恘白央奶伙 `%s' 毛綜嶽匹五引六氏﹝"
+
+#: info/session.c:3140 info/session.c:3265 info/session.c:3326
+msgid "Done."
+msgstr "敦弇﹝"
+
+#: info/session.c:3196
+#, c-format
+msgid "Writing node %s..."
+msgstr "用□玉 %s 及踏五慇心..."
+
+#: info/session.c:3274
+msgid "Pipe the contents of this node through INFO_PRINT_COMMAND"
+msgstr "INFO_PRINT_COMMAND 卞方勻化仇及用□玉及ま芢毛由奶皿允月"
+
+#: info/session.c:3310
+#, c-format
+msgid "Cannot open pipe to `%s'."
+msgstr "`%s' 尺及由奶皿毛釩仃引六氏﹝"
+
+#: info/session.c:3316
+#, c-format
+msgid "Printing node %s..."
+msgstr "用□玉 `%s' 毛執綬..."
+
+#: info/session.c:3558
+#, c-format
+msgid "Searching subfile %s ..."
+msgstr "汏白央奶伙 %s 毛繭仄化中引允 ..."
+
+#: info/session.c:3610
+msgid "Read a string and search for it case-sensitively"
+msgstr "妐儂昫毛づ心﹜釐妐儂凝妐儂及嗉帎毛勾仃化腹綢允月"
+
+#: info/session.c:3617
+msgid "Read a string and search for it"
+msgstr "妐儂昫毛づ氏匹腹綢允月"
+
+#: info/session.c:3625
+msgid "Read a string and search backward for it"
+msgstr "妐儂昫毛づ氏匹詨杅腹綢允月"
+
+#: info/session.c:3667
+#, c-format
+msgid "%s%sfor string [%s]: "
+msgstr "妐儂昫尺及%s%s [%s]: "
+
+#: info/session.c:3668
+msgid "Search backward"
+msgstr "詨杅腹綢"
+
+#: info/session.c:3668
+msgid "Search"
+msgstr "腹綢"
+
+#: info/session.c:3669
+msgid " case-sensitively "
+msgstr "(釐妐儂凝妐儂及嗉帎毛勾仃化) "
+
+#: info/session.c:3669
+msgid " "
+msgstr " "
+
+#: info/session.c:3709
+msgid "Search failed."
+msgstr "腹綢卞撩л﹝"
+
+#: info/session.c:3727
+msgid "Repeat last search in the same direction"
+msgstr "き域杅輊匹瘉詨及腹綢毛楞曰忒允"
+
+#: info/session.c:3730 info/session.c:3740
+msgid "No previous search string"
+msgstr "蟆及腹綢妐儂昫互丐曰引六氏"
+
+#: info/session.c:3737
+msgid "Repeat last search in the reverse direction"
+msgstr "菅杅輊匹瘉詨及腹綢毛楞曰忒允"
+
+#: info/session.c:3755 info/session.c:3761
+msgid "Search interactively for a string as you type it"
+msgstr "ェ恘仄凶妐儂昫及覆狪讀卅腹綢"
+
+#: info/session.c:3855
+msgid "I-search backward: "
+msgstr "蹴慼詨杅腹綢: "
+
+#: info/session.c:3857
+msgid "I-search: "
+msgstr "蹴慼腹綢: "
+
+#: info/session.c:3882
+msgid "Failing "
+msgstr "撩л "
+
+#: info/session.c:4340
+msgid "Move to the previous cross reference"
+msgstr "蟆及鍬詢輔寰卞啖が"
+
+#: info/session.c:4349
+msgid "Move to the next cross reference"
+msgstr "慼及鍬詢輔寰卞啖が"
+
+#: info/session.c:4359
+msgid "Select reference or menu item appearing on this line"
+msgstr "輔寰引凶反﹜仇及墊卞蜇木凶丟瓦亙□嫩杴毛薊鎗"
+
+#: info/session.c:4381
+msgid "Cancel current operation"
+msgstr "蜇箕及醜綜毛醱鞅"
+
+#: info/session.c:4388
+msgid "Quit"
+msgstr "鞅戶引仄凶"
+
+#: info/session.c:4397
+msgid "Move the cursor to a specific line of the window"
+msgstr "它奴件玉它及隙爛墊卞市□末伙毛啖が"
+
+#: info/session.c:4429
+msgid "Redraw the display"
+msgstr "脰昍及瘋匢脰"
+
+#: info/session.c:4466
+msgid "Quit using Info"
+msgstr "Info 及銀迕毛蔽弇"
+
+#: info/session.c:4479
+msgid "Run command bound to this key's lowercase variant"
+msgstr "仇及平□及凝妐儂卞田奶件玉今木凶戊穴件玉毛撢墊"
+
+#: info/session.c:4491
+#, c-format
+msgid "Unknown command (%s)."
+msgstr "尕抸卅戊穴件玉 (%s) 匹允﹝"
+
+#: info/session.c:4494
+msgid "\"\" is invalid"
+msgstr "\"\" 反拑躲匹允"
+
+#: info/session.c:4495
+#, c-format
+msgid "\"%s\" is invalid"
+msgstr "\"%s\" 反拑躲匹允"
+
+#: info/session.c:4713
+msgid "Add this digit to the current numeric argument"
+msgstr "蜇箕及醒襖婁醒卞仇及醒襖毛笛尹月"
+
+#: info/session.c:4722
+msgid "Start (or multiply by 4) the current numeric argument"
+msgstr "蜇箕及醒襖婁醒毛釩銨(坭反 4 у允月)"
+
+#: info/session.c:4737
+msgid "Internally used by \\[universal-argument]"
+msgstr "ま朿讀卞 \\[universal-argument] 卞方勻化厙迕今木引允"
+
+#: info/tilde.c:344
+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:64
+msgid "The number lines to scroll when the cursor moves out of the window"
+msgstr "市□末伙毛它奴件玉它及陸卞が井公丹午仄凶凜及旦弁伕□伙墊醒"
+
+#: info/variables.c:68
+msgid "When \"On\", Info accepts and displays ISO Latin characters"
+msgstr "\"On\" 及凜﹜Info 反 ISO Latin 妐儂及刓憎互第Х卞卅月"
+
+#: info/variables.c:74
+msgid "Explain the use of a variable"
+msgstr "庍醒及銀中杅毛荸濩允月"
+
+#: info/variables.c:80
+msgid "Describe variable: "
+msgstr "庍醒及濩抸: "
+
+#: info/variables.c:99
+msgid "Set the value of an Info variable"
+msgstr "Info 庍醒及襖毛澀爛"
+
+#: info/variables.c:105
+msgid "Set variable: "
+msgstr "庍醒毛澀爛: "
+
+#: info/variables.c:123
+#, c-format
+msgid "Set %s to value (%d): "
+msgstr "%s 卞襖毛澀爛 (%d): "
+
+#: info/variables.c:164
+#, c-format
+msgid "Set %s to value (%s): "
+msgstr "%s 卞襖毛澀爛 (%s): "
+
+#: info/window.c:1164
+msgid "--*** Tags out of Date ***"
+msgstr "--*** 蛙摯及正弘 ***"
+
+#: info/window.c:1175
+msgid "-----Info: (), lines ----, "
+msgstr "-----Info: (), 墊醒 ----, "
+
+#: info/window.c:1182
+#, c-format
+msgid "-%s---Info: %s, %d lines --%s--"
+msgstr "-%s---Info: %s, %d 墊 --%s--"
+
+#: info/window.c:1186
+#, c-format
+msgid "-%s%s-Info: (%s)%s, %d lines --%s--"
+msgstr "-%s%s-Info: (%s)%s, %d 墊 --%s--"
+
+#: info/window.c:1193
+#, c-format
+msgid " Subfile: %s"
+msgstr " 汏白央奶伙: %s"
+
+#: lib/getopt.c:675
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: 左皿扑亦件 `%s' 反菇呴匹允\n"
+
+#: lib/getopt.c:700
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s: 左皿扑亦件 `--%s' 反婁醒互尕邰匹允\n"
+
+#: lib/getopt.c:705
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr "%s: 左皿扑亦件 `%c%s' 反婁醒互尕邰匹允\n"
+
+#: lib/getopt.c:723 lib/getopt.c:896
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr "%s: 左皿扑亦件 `%s' 卞反﹜婁醒互优邰匹允\n"
+
+#: lib/getopt.c:752
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: `--%s' 反ロ摹匹五卅中左皿扑亦件匹允\n"
+
+#: lib/getopt.c:756
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: `%c%s' 反ロ摹匹五卅中左皿扑亦件匹允\n"
+
+#: lib/getopt.c:782
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: 尕懇卅左皿扑亦件 -- %c\n"
+
+#: lib/getopt.c:785
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr "%s: 拑躲卅左皿扑亦件 -- %c\n"
+
+#: lib/getopt.c:815 lib/getopt.c:945
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr "%s: 左皿扑亦件反婁醒毛邰菲仄引允 -- %c\n"
+
+#: lib/getopt.c:862
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr "%s: `-W %s' 左皿扑亦件互菇呴匹允\n"
+
+#: lib/getopt.c:880
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr "%s: `-W %s' 左皿扑亦件卞反婁醒互尕邰匹允\n"
+
+#: makeinfo/cmds.c:515
+msgid "January"
+msgstr "域畸"
+
+#: makeinfo/cmds.c:515
+msgid "February"
+msgstr "わ畸"
+
+#: makeinfo/cmds.c:515
+msgid "March"
+msgstr "趕畸"
+
+#: makeinfo/cmds.c:515
+msgid "April"
+msgstr "銓畸"
+
+#: makeinfo/cmds.c:515
+msgid "May"
+msgstr "詭畸"
+
+#: makeinfo/cmds.c:516
+msgid "June"
+msgstr "牰畸"
+
+#: makeinfo/cmds.c:516
+msgid "July"
+msgstr "撥畸"
+
+#: makeinfo/cmds.c:516
+msgid "August"
+msgstr "炤"
+
+#: makeinfo/cmds.c:516
+msgid "September"
+msgstr "嗅畸"
+
+#: makeinfo/cmds.c:516
+msgid "October"
+msgstr "蝸畸"
+
+#: makeinfo/cmds.c:517
+msgid "November"
+msgstr "蝸域畸"
+
+#: makeinfo/cmds.c:517
+msgid "December"
+msgstr "蝸わ畸"
+
+#: makeinfo/cmds.c:658
+#, c-format
+msgid "unlikely character %c in @var"
+msgstr "@var 匹銀尹公丹卞卅中妐儂 %c"
+
+#: makeinfo/cmds.c:701
+msgid "@sc argument all uppercase, thus no effect"
+msgstr "蟈化釐妐儂及 @sc 婁醒﹜蝨勻化躲絆互丐曰引六氏"
+
+#: makeinfo/cmds.c:759
+#, c-format
+msgid "`{' expected, but saw `%c'"
+msgstr "`{' 互丐月反內匹允互﹜`%c' 匹仄凶"
+
+#: makeinfo/cmds.c:789
+msgid "end of file inside verb block"
+msgstr "verb 皮伕永弁ま匹白央奶伙坱齯卅曰引仄凶"
+
+#: makeinfo/cmds.c:797
+#, c-format
+msgid "`}' expected, but saw `%c'"
+msgstr "`}' 互丐月反內匹允互﹜`%c' 匹仄凶"
+
+#: makeinfo/cmds.c:942
+#, c-format
+msgid "%c%s is obsolete"
+msgstr "%c%s 反и木凶抰挓匹允"
+
+#: makeinfo/cmds.c:1014
+#, c-format
+msgid "@sp requires a positive numeric argument, not `%s'"
+msgstr "@sp 卞反 `%s' 匹反卅仁﹜懇及醒襖毛芨尹卅仃木壬卅曰引六氏"
+
+#: makeinfo/cmds.c:1348 makeinfo/cmds.c:1374 makeinfo/footnote.c:81
+#, c-format
+msgid "Bad argument to %c%s"
+msgstr "%c%s 卞覆允月尕懇卅婁醒"
+
+#: makeinfo/cmds.c:1358 makeinfo/makeinfo.c:4140
+msgid "asis"
+msgstr "公及引引"
+
+#: makeinfo/cmds.c:1360 makeinfo/makeinfo.c:4142
+msgid "none"
+msgstr "卅仄"
+
+#: makeinfo/defun.c:85
+msgid "Missing `}' in @def arg"
+msgstr "@def 婁醒卞 `}' 毛侉木化中引允"
+
+#: makeinfo/defun.c:363
+msgid "Function"
+msgstr "窗Х"
+
+#: makeinfo/defun.c:366
+msgid "Macro"
+msgstr "穴弁伕"
+
+#: makeinfo/defun.c:369
+msgid "Special Form"
+msgstr "た潰滇"
+
+#: makeinfo/defun.c:373
+msgid "Variable"
+msgstr "庍醒"
+
+#: makeinfo/defun.c:376
+msgid "User Option"
+msgstr "交□扒左皿扑亦件"
+
+#: makeinfo/defun.c:380
+msgid "Instance Variable"
+msgstr "奶件旦正件旦庍醒"
+
+#: makeinfo/defun.c:384
+msgid "Method"
+msgstr "丟末永玉"
+
+#: makeinfo/defun.c:466 makeinfo/defun.c:470 makeinfo/defun.c:615
+#: makeinfo/defun.c:631 makeinfo/defun.c:671
+msgid "of"
+msgstr "of"
+
+#: makeinfo/defun.c:474 makeinfo/defun.c:478 makeinfo/defun.c:482
+#: makeinfo/defun.c:624 makeinfo/defun.c:676
+msgid "on"
+msgstr "on"
+
+#: makeinfo/defun.c:717
+#, c-format
+msgid "Must be in `%s' insertion to use `%sx'"
+msgstr "`%2$sx' 毛銀丹凶戶卞反 `%1$s' 醣ェ匹卅仃木壬卅曰引六氏"
+
+#: makeinfo/files.c:448
+#, c-format
+msgid "%s: getwd: %s, %s\n"
+msgstr "%s: getwd: %s, %s\n"
+
+#: makeinfo/footnote.c:150
+#, c-format
+msgid "`%c%s' needs an argument `{...}', not just `%s'"
+msgstr "`%c%s' 卞反 `%s' 分仃匹卅仁﹜`{...}' 溥摯及婁醒互优邰匹允"
+
+#: makeinfo/footnote.c:165
+#, c-format
+msgid "No closing brace for footnote `%s'"
+msgstr "萍鏜 `%s' 及岉元皮伊□旦互丐曰引六氏"
+
+#: makeinfo/footnote.c:198
+msgid "Footnote defined without parent node"
+msgstr "萍鏜卞褪用□玉及爛聒互丐曰引六氏"
+
+#: makeinfo/footnote.c:210
+#, fuzzy
+msgid "Footnotes inside footnotes are not allowed"
+msgstr "萍鏜卞褪用□玉及爛聒互丐曰引六氏"
+
+#: makeinfo/footnote.c:298
+msgid "Footnotes"
+msgstr "萍鏜"
+
+#: makeinfo/html.c:42
+msgid "Untitled"
+msgstr "拑鎖"
+
+#: makeinfo/html.c:298
+#, c-format
+msgid "Invalid node name: `%s'"
+msgstr "尕贗濠卅用□玉抩匹允: `%s'"
+
+#: makeinfo/index.c:213
+#, c-format
+msgid "Unknown index `%s'"
+msgstr "尕抸卅奶件犯永弁旦 `%s'"
+
+#: makeinfo/index.c:238
+#, c-format
+msgid "Info cannot handle `:' in index entry `%s'"
+msgstr ""
+
+#: makeinfo/index.c:396
+#, c-format
+msgid "Index `%s' already exists"
+msgstr "葦請仄 `%s' 反湃卞繡箕仄引允"
+
+#: makeinfo/index.c:439
+#, c-format
+msgid "Unknown index `%s' and/or `%s' in @synindex"
+msgstr "@synindex 卞﹜襞日卅中葦請仄 `%s' 支 `%s' 互丐曰引允"
+
+#: makeinfo/index.c:666
+#, c-format
+msgid "Unknown index `%s' in @printindex"
+msgstr "@printindex 卞﹜襞日卅中葦請仄 `%s' 互丐曰引允"
+
+#: makeinfo/index.c:709
+#, c-format
+msgid "Entry for index `%s' outside of any node"
+msgstr "葦請仄 `%s' 及巨件玄伉反丐日斗月用□玉及陸礎匹允"
+
+#: makeinfo/index.c:712 makeinfo/index.c:751
+msgid "(outside of any node)"
+msgstr "(丐日斗月用□玉及陸礎)"
+
+#: makeinfo/insertion.c:198
+msgid "Broken-Type in insertion_type_pname"
+msgstr "insertion_type_pname 醱卞莽木凶滇互丐曰引允"
+
+#: makeinfo/insertion.c:271
+msgid "Enumeration stack overflow"
+msgstr "昫街迕旦正永弁互左□田白伕□仄引仄凶"
+
+#: makeinfo/insertion.c:303
+#, c-format
+msgid "lettering overflow, restarting at %c"
+msgstr "仿矛伙妐儂互左□田□白伕□﹜%c 卞枑仄引允"
+
+#: makeinfo/insertion.c:538
+#, c-format
+msgid "%s requires an argument: the formatter for %citem"
+msgstr "%s 卞反婁醒互优邰匹允: %citem 毛幫溥允月凶戶"
+
+#: makeinfo/insertion.c:693
+#, c-format
+msgid "`@end' expected `%s', but saw `%s'"
+msgstr "`@end' 卞反 `%s' 互优邰匹允互﹜`%s' 互葦勾井曰引仄凶"
+
+#: makeinfo/insertion.c:931
+#, c-format
+msgid "No matching `%cend %s'"
+msgstr "`%cend %s' 午及覆殺互葦勾井曰引六氏"
+
+#: makeinfo/insertion.c:1084
+#, c-format
+msgid "%s requires letter or digit"
+msgstr "%s 卞反敗醒妐儂互优邰匹允"
+
+#: makeinfo/insertion.c:1158
+msgid "end of file inside verbatim block"
+msgstr "verbatim 皮伕永弁醱匹白央奶伙及坱齯卅曰引仄凶"
+
+#: makeinfo/insertion.c:1318
+msgid "@menu seen before first @node, creating `Top' node"
+msgstr "@menu 互瘉賡及 @node 動蟆卞蜇木引仄凶﹝`Top' 用□玉毛勾仁曰引允"
+
+#: makeinfo/insertion.c:1319
+msgid ""
+"perhaps your @top node should be wrapped in @ifnottex rather than @ifinfo?"
+msgstr "聶坌 @top 用□玉反 @ifinfo 方曰反 @ifnottex 卞吨歹木月屯五匹反〝"
+
+#: makeinfo/insertion.c:1331
+msgid "@detailmenu seen before first node, creating `Top' node"
+msgstr "@detailmenu 互瘉賡及用□玉動蟆卞蜇木引仄凶﹝`贍鰾' 用□玉毛綜曰引允"
+
+#: makeinfo/insertion.c:1346
+#, c-format
+msgid "Unmatched `%c%s'"
+msgstr "`%c%s' 午及覆殺互葦勾井曰引六氏"
+
+#: makeinfo/insertion.c:1353
+#, c-format
+msgid "`%c%s' needs something after it"
+msgstr "`%c%s' 及詨欠卞反窒井互优邰匹允"
+
+#: makeinfo/insertion.c:1359
+#, c-format
+msgid "Bad argument to `%s', `%s', using `%s'"
+msgstr "`%s' 卞覆允月尕懇卅婁醒 `%s'﹝`%s' 毛銀中引允"
+
+#: makeinfo/insertion.c:1453
+#, c-format
+msgid "@%s not meaningful inside `@%s' block"
+msgstr "`@%2$s' 皮伕永弁ま礎匹及 @%1$s 反﹜丐引曰啦怗互丐曰引六氏"
+
+#: makeinfo/insertion.c:1462
+#, c-format
+msgid "@itemx not meaningful inside `%s' block"
+msgstr "`%s' 皮伕永弁ま礎匹及 @itemx 反﹜丐引曰啦怗互丐曰引六氏"
+
+#: makeinfo/insertion.c:1646
+#, c-format
+msgid "%c%s found outside of an insertion block"
+msgstr "醣ェ皮伕永弁陸匹﹜%c%s 互葦勾井曰引仄凶"
+
+#: makeinfo/lang.c:331
+#, c-format
+msgid "%s is not a valid ISO 639 language code"
+msgstr "%s 反肣躲卅 ISO 639 蛻賄戊□玉匹反丐曰引六氏"
+
+#: makeinfo/lang.c:384
+#, c-format
+msgid "unrecogized encoding name `%s'"
+msgstr "巨件戊□犯奴件弘抩 `%s' 毛ロ摹匹五引六氏"
+
+#: makeinfo/lang.c:387
+#, c-format
+msgid "sorry, encoding `%s' not supported"
+msgstr "酸ヶ卅互日﹜巨件戊□玉 `%s' 反熬仃尥仃日木引六氏"
+
+#: makeinfo/lang.c:414
+#, c-format
+msgid "invalid encoded character `%s'"
+msgstr "巨件戊□玉妐儂 `%s' 互拑躲匹允"
+
+#: makeinfo/lang.c:502
+#, c-format
+msgid "%s is an invalid ISO code, using %c"
+msgstr "%s 反尕贗濠卅 ISO 戊□玉匹允﹝%c 毛銀中引允"
+
+#: makeinfo/lang.c:687
+#, c-format
+msgid "%c%s expects `i' or `j' as argument, not `%c'"
+msgstr "%c%s 反 `%c' 匹反卅仁﹜`i' 井 `j' 毛婁醒午仄化优邰午仄引允"
+
+#: makeinfo/lang.c:691
+#, c-format
+msgid "%c%s expects a single character `i' or `j' as argument"
+msgstr "%c%s 反婁醒午仄化 `i' 井 `j' 及中內木井域妐儂互优邰匹允"
+
+#: makeinfo/macro.c:134
+#, c-format
+msgid "macro `%s' previously defined"
+msgstr "穴弁伕 `%s' 反動蟆卞爛聒今木化中引允"
+
+#: makeinfo/macro.c:138
+#, c-format
+msgid "here is the previous definition of `%s'"
+msgstr "仇仇反﹜`%s' 及蟆及爛聒匹允"
+
+#: makeinfo/macro.c:355
+#, c-format
+msgid "\\ in macro expansion followed by `%s' instead of \\ or parameter name"
+msgstr "穴弁伕顫釩ま及 \\ 及詨欠卞 \\ 支由仿丟正抩匹反卅仁 `%s' 互糧中化中引允"
+
+#: makeinfo/macro.c:403
+#, c-format
+msgid "Macro `%s' called on line %d with too many args"
+msgstr "穴弁伕 `%s' 裟太請仄(%d墊杴)及婁醒互聶允亢引允"
+
+#: makeinfo/macro.c:594
+#, c-format
+msgid "%cend macro not found"
+msgstr "%cend 穴弁伕互葦勾井曰引六氏"
+
+#: makeinfo/macro.c:632
+msgid "@quote-arg only useful for single-argument macros"
+msgstr "@quote-arg 反﹜婁醒毛域勾芨尹凶午五及心肣躲匹允"
+
+#: makeinfo/macro.c:668
+#, c-format
+msgid "mismatched @end %s with @%s"
+msgstr "@%2$s 午域譙仄卅中 @end %1$s"
+
+#: makeinfo/makeinfo.c:316
+#, c-format
+msgid "%s:%d: warning: "
+msgstr "%s:%d: 煞屢: "
+
+#: makeinfo/makeinfo.c:339
+msgid "Too many errors! Gave up.\n"
+msgstr "巨仿□互聶允亢引允! 襬戶引仄凶﹝\n"
+
+#: makeinfo/makeinfo.c:350 makeinfo/makeinfo.c:2026
+#, c-format
+msgid "Misplaced %c"
+msgstr "棉啜勻凶匏譆卞 %c"
+
+#: makeinfo/makeinfo.c:370
+#, c-format
+msgid "Try `%s --help' for more information.\n"
+msgstr "擇仄仁反 `%s --help' 毛撢墊仄化仁分今中﹝\n"
+
+#: makeinfo/makeinfo.c:373
+#, c-format
+msgid "Usage: %s [OPTION]... TEXINFO-FILE...\n"
+msgstr "銀中杅: %s [左皿扑亦件]... TEXINFO白央奶伙...\n"
+
+#: makeinfo/makeinfo.c:376
+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:380
+#, c-format
+msgid ""
+"General options:\n"
+" --error-limit=NUM quit after NUM errors (default %d).\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"
+" --reference-limit=NUM warn about at most NUM references (default %"
+"d).\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:394
+#, fuzzy, no-wrap
+msgid ""
+"Output format selection (default is to produce Info):\n"
+" --docbook output DocBook rather than Info.\n"
+" --html output HTML rather than Info.\n"
+" --xml output XML (TexinfoML) 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:401
+#, 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 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 (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:415
+#, c-format
+msgid ""
+"Options for Info and plain text:\n"
+" --enable-encoding output accented and special characters in\n"
+" Info output based on @documentencoding.\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\n"
+" in which they are defined (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:433
+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:442
+#, fuzzy
+msgid ""
+"Conditional processing in input:\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"
+" --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"
+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"
+msgstr ""
+" た卞隙爛互卅仃木壬﹜@if... 橢瘀反請恘溥摯慼鎔午卅曰引允:\n"
+" HTML 毛戲嶽允月卅日 --ifhtml 互肣躲匹職反拑躲匹允﹝\n"
+" Info 支皿伊奶件氾弁旦玄毛戲嶽允月卅日 --ifinfo 互肣躲匹職反拑躲匹允﹝\n"
+
+#: makeinfo/makeinfo.c:461
+#, 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 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:570 makeinfo/makeinfo.c:593 makeinfo/makeinfo.c:655
+#: makeinfo/makeinfo.c:676
+#, c-format
+msgid "%s: %s arg must be numeric, not `%s'.\n"
+msgstr "%s: %s 婁醒反 `%s' 匹反卅仁化﹜醒襖匹卅仃木壬卅曰引六氏﹝\n"
+
+#: makeinfo/makeinfo.c:583
+#, c-format
+msgid "Couldn't open macro expansion output `%s'"
+msgstr "穴弁伕傀艦請恘 `%s' 毛釩仃引六氏"
+
+#: makeinfo/makeinfo.c:586
+msgid "Cannot specify more than one macro expansion output"
+msgstr "呁醒及穴弁伕傀艦請恘毛隙爛匹五引六氏"
+
+#: makeinfo/makeinfo.c:624
+#, 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:665
+#, 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:723
+#, c-format
+msgid "%s: missing file argument.\n"
+msgstr "%s: 白央奶伙婁醒毛侉木化中引允方\n"
+
+#: makeinfo/makeinfo.c:898
+#, c-format
+msgid "Expected `%s'"
+msgstr "仇仇匹反 `%s' 互邰菲今木引允"
+
+#: makeinfo/makeinfo.c:1365
+msgid "File exists, but is not a directory"
+msgstr ""
+
+#: makeinfo/makeinfo.c:1366
+#, c-format
+msgid "Can't create directory `%s': %s"
+msgstr "犯奴伊弁玄伉 `%s' 毛綜嶽匹五引六氏: %s"
+
+#: makeinfo/makeinfo.c:1414
+#, c-format
+msgid "No `%s' found in `%s'"
+msgstr "`%2$s' 卞 `%1$s' 互葦勾井曰引六氏"
+
+#: makeinfo/makeinfo.c:1496
+#, c-format
+msgid "%s: Skipping macro expansion to stdout as Info output is going there.\n"
+msgstr "%s: Info 及請恘毛墊卅丹及匹﹜穴弁伕傀艦毛伓賞請恘卞請恘仄引六氏﹝\n"
+
+#: makeinfo/makeinfo.c:1526
+#, c-format
+msgid "Making %s file `%s' from `%s'.\n"
+msgstr "`%3$s' 井日 %1$s 白央奶伙 `%2$s' 毛綜嶽仄引允﹝\n"
+
+#: makeinfo/makeinfo.c:1561
+#, c-format
+msgid "This is %s, produced by makeinfo version %s from %s.\n"
+msgstr ""
+"仇木反 %1$s﹜%3$s 方曰 makeinfo 田□斥亦件 %2$s 卞方勻化綜嶽今木引仄凶﹝\n"
+
+#: makeinfo/makeinfo.c:1583
+#, 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:1627
+#, 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:1853
+#, c-format
+msgid "Unknown command `%s'"
+msgstr "襞日卅中戊穴件玉 `%s'"
+
+#: makeinfo/makeinfo.c:1875
+#, c-format
+msgid "Use braces to give a command as an argument to @%s"
+msgstr "@%s 尺及婁醒午仄化戊穴件玉毛芨尹月卞反﹜皮伊□旦毛銀中引仄斤丹"
+
+#: makeinfo/makeinfo.c:2068
+#, c-format
+msgid "%c%s expected `{...}'"
+msgstr "%c%s 卞反 `{...}' 互优邰匹允"
+
+#: makeinfo/makeinfo.c:2098
+msgid "Unmatched }"
+msgstr "覆殺及卅中 }"
+
+#: makeinfo/makeinfo.c:2148
+msgid "NO_NAME!"
+msgstr "抩蟆互拑中〞"
+
+#: makeinfo/makeinfo.c:2169
+#, c-format
+msgid "%c%s missing close brace"
+msgstr "岉元月皮伊□旦及卅中 %c%s"
+
+#: makeinfo/makeinfo.c:2958
+msgid "First argument to cross-reference may not be empty"
+msgstr "鍬詢輔寰尺及鎔域婁醒互塢匹丐勻化反卅曰引六氏"
+
+#: makeinfo/makeinfo.c:3018 makeinfo/makeinfo.c:3236 makeinfo/xml.c:1340
+msgid "see "
+msgstr "see "
+
+#: makeinfo/makeinfo.c:3018
+msgid "See "
+msgstr "See "
+
+#: makeinfo/makeinfo.c:3164
+#, c-format
+msgid "`.' or `,' must follow cross reference, not %c"
+msgstr "`.' 支 ',' 反 %c 匹反卅仁﹜鍬詢輔寰卞糧仃日木卅仃木壬卅曰引六氏"
+
+#: makeinfo/makeinfo.c:3212
+msgid "First argument to @inforef may not be empty"
+msgstr "@inforef 尺及鎔域婁醒反塢匹丐勻化反卅曰引六氏"
+
+#: makeinfo/makeinfo.c:3427
+#, c-format
+msgid "@image file `%s' (for HTML) not readable: %s"
+msgstr "@image 白央奶伙 `%s' (HTML 迕) 互づ戶引六氏: %s"
+
+#: makeinfo/makeinfo.c:3440
+#, c-format
+msgid "No `%s.png' or `.jpg', and no extension supplied"
+msgstr "`%s.png' 支 `.jpg' 互卅仁﹜傀艦閡互勾仃日木化中引六氏"
+
+#: makeinfo/makeinfo.c:3490
+#, c-format
+msgid "@image file `%s' (for text) unreadable: %s"
+msgstr "@image 白央奶伙 `%s' (text 迕) 互づ戶引六氏: %s"
+
+#: makeinfo/makeinfo.c:3497
+msgid "@image missing filename argument"
+msgstr "@image 卞白央奶伙抩互芨尹日木化中引六氏"
+
+#: makeinfo/makeinfo.c:3690
+#, c-format
+msgid "{No value for `%s'}"
+msgstr "{`%s' 及襖互卅中}"
+
+#: makeinfo/makeinfo.c:3744
+#, c-format
+msgid "%c%s requires a name"
+msgstr "%c%s 卞反抩蟆互优邰匹允"
+
+#: makeinfo/makeinfo.c:3850
+#, c-format
+msgid "Reached eof before matching @end %s"
+msgstr "@end %s 及覆殺及蟆卞白央奶伙及蔽曰卞請仁歹仄引仄凶"
+
+#: makeinfo/makeinfo.c:4081
+#, c-format
+msgid "`%.40s...' is too long for expansion; not expanded"
+msgstr ""
+
+#: makeinfo/multi.c:226
+msgid "Missing } in @multitable template"
+msgstr "@multitable 氾件皿伊□玄卞 } 互丐曰引六氏"
+
+#: makeinfo/multi.c:302
+#, c-format
+msgid "ignoring stray text `%s' after @multitable"
+msgstr "@multitable 及詨欠及氾弁旦玄 `%s' 毛拑骰仄引允"
+
+#: makeinfo/multi.c:375
+#, c-format
+msgid "Too many columns in multitable item (max %d)"
+msgstr "穴伙民氾□皮伙嫩杴ま及市仿丞醒互聶允亢引允(瘉釐 %d)"
+
+#: makeinfo/multi.c:426
+#, c-format
+msgid "Cannot select column #%d in multitable"
+msgstr "穴伙民氾□皮伙ま匹反﹜鎔 %d 墊毛薊鎗匹五引六氏"
+
+#: makeinfo/multi.c:529
+msgid "ignoring @tab outside of multitable"
+msgstr "穴伙民氾□皮伙及陸礎及 @tab 毛拑骰仄引允"
+
+#: makeinfo/multi.c:565
+msgid "** Multicolumn output from last row:\n"
+msgstr "** 穴伙民市仿丞及瘉詨及昫井日請恘\n"
+
+#: makeinfo/multi.c:568
+#, c-format
+msgid "* column #%d: output = %s\n"
+msgstr "* 鎔 %d 市仿丞: 請恘 = %s\n"
+
+#: makeinfo/node.c:276
+#, c-format
+msgid "Node `%s' previously defined at line %d"
+msgstr "用□玉 `%s' 蟆(%d 墊杴)卞爛聒今木化中引允"
+
+#: makeinfo/node.c:594
+#, c-format
+msgid "Formatting node %s...\n"
+msgstr "用□玉 %s 毛幫溥醱...\n"
+
+#: makeinfo/node.c:655
+#, c-format
+msgid "Node `%s' requires a sectioning command (e.g. %c%s)"
+msgstr "用□玉 `%s' 卞反本弁扑亦件迕戊穴件玉互优邰匹允(拺: %c%s)"
+
+#: makeinfo/node.c:815
+#, c-format
+msgid "No node name specified for `%c%s' command"
+msgstr "`%c%s' 戊穴件玉卞隙爛今木凶用□玉抩互丐曰引六氏"
+
+#: makeinfo/node.c:856 makeinfo/node.c:1075
+#, c-format
+msgid "Anchor `%s' and node `%s' map to the same file name"
+msgstr "失件市□ `%s' 午用□玉 `%s' 互き元白央奶伙毛穴永皿仄化中引允"
+
+#: makeinfo/node.c:859
+msgid "This @anchor command ignored; references to it will not work"
+msgstr "仇及 @anchor 戊穴件玉反拑骰今木引允 -- 公仇尺及輔寰反が綜仄引六氏"
+
+#: makeinfo/node.c:861 makeinfo/node.c:1078
+msgid "Rename this anchor or use the `--no-split' option"
+msgstr "仇及失件市□抩毛庍凳允月井 `--no-split' 左皿扑亦件毛銀中引仄斤丹"
+
+#: makeinfo/node.c:891
+#, c-format
+msgid "Unexpected string at end of split-HTML file `%s'"
+msgstr "split-HTML 白央奶伙 `%s' 及蔽曰卞﹜丐月反內及卅中妐儂昫互丐曰引允"
+
+#: makeinfo/node.c:920
+msgid "Node:"
+msgstr "用□玉:"
+
+#: makeinfo/node.c:930
+msgid "Next:"
+msgstr "慼:"
+
+#: makeinfo/node.c:940
+msgid "Previous:"
+msgstr "蟆:"
+
+#: makeinfo/node.c:950
+msgid "Up:"
+msgstr "曉:"
+
+#: makeinfo/node.c:1072
+#, c-format
+msgid "Anchors `%s' and `%s' map to the same file name"
+msgstr "失件市□ `%s' 午 `%s' 互き元白央奶伙抩卞穴永皿仄化中引允"
+
+#: makeinfo/node.c:1077
+msgid "@anchor command ignored; references to it will not work"
+msgstr "@anchor 戊穴件玉反拑骰今木引允 -- 公仇尺及輔寰反が綜仄引六氏"
+
+#: makeinfo/node.c:1277
+#, c-format
+msgid "%s reference to nonexistent node `%s'"
+msgstr "%s 反繡箕仄卅中用□玉 `%s' 毛輔寰仄化中引允"
+
+#: makeinfo/node.c:1294
+msgid "Menu"
+msgstr "丟瓦亙□"
+
+#: makeinfo/node.c:1296
+msgid "Cross"
+msgstr "鍬詢"
+
+#: makeinfo/node.c:1380
+#, c-format
+msgid "Next field of node `%s' not pointed to"
+msgstr "用□玉 `%s' 及慼及白奴□伙玉互用□玉毛隙仄化中引六氏 -- "
+
+#: makeinfo/node.c:1383
+#, c-format
+msgid "This node (%s) has the bad Prev"
+msgstr "仇及用□玉 (%s) 反五切氏午 蟆 毛儅勻化中引六氏"
+
+#: makeinfo/node.c:1395
+msgid "Prev"
+msgstr "蟆"
+
+#: makeinfo/node.c:1438
+#, c-format
+msgid "Prev field of node `%s' not pointed to"
+msgstr "用□玉 `%s' 及蟆及白奴□伙玉互用□玉毛隙仄化中引六氏 -- "
+
+#: makeinfo/node.c:1442
+#, c-format
+msgid "This node (%s) has the bad Next"
+msgstr "仇及用□玉 (%s) 反五切氏午 慼 毛儅勻化中引六氏"
+
+#: makeinfo/node.c:1454
+#, c-format
+msgid "`%s' has no Up field"
+msgstr "`%s' 卞 曉 白奴□伙玉互丐曰引六氏"
+
+#: makeinfo/node.c:1457
+msgid "Up"
+msgstr "曉"
+
+#: makeinfo/node.c:1523
+#, c-format
+msgid "Node `%s' lacks menu item for `%s' despite being its Up target"
+msgstr ""
+"用□玉 `%s' 卞反 曉匏嫩杴互丐月及卞﹜`%s' 尺及丟瓦亙□失奶氾丞毛瑞中化中引允"
+
+#: makeinfo/node.c:1552
+#, c-format
+msgid "node `%s' has been referenced %d times"
+msgstr "用□玉 `%s' 反湃卞 %d 莢輔寰今木化中引允"
+
+#: makeinfo/node.c:1566
+#, c-format
+msgid "unreferenced node `%s'"
+msgstr "輔寰今木化中卅中用□玉 `%s'"
+
+#: makeinfo/sectioning.c:117
+#, c-format
+msgid "Appendix %c "
+msgstr "尥狤 %c "
+
+#: makeinfo/sectioning.c:356 makeinfo/sectioning.c:444
+#, c-format
+msgid "Internal error (search_sectioning) \"%s\"!"
+msgstr "ま朿巨仿□ (濡繭綢醱) \"%s\"!"
+
+#: makeinfo/sectioning.c:502
+#, c-format
+msgid "%c%s is obsolete; use %c%s instead"
+msgstr "%c%s 反и鞅仄引仄凶﹝ -- 醫歹曰卞 %c%s 毛銀勻化仁分今中"
+
+#: makeinfo/sectioning.c:518
+#, c-format
+msgid "Node with %ctop as a section already exists"
+msgstr "%ctop 及用□玉反﹜本弁扑亦件午仄化湃卞繡箕仄引允"
+
+#: makeinfo/sectioning.c:526
+#, c-format
+msgid "Here is the %ctop node"
+msgstr "仇仇反 %ctop 用□玉匹允"
+
+#: makeinfo/sectioning.c:543
+#, c-format
+msgid "%ctop used before %cnode, defaulting to %s"
+msgstr "%ctop 互 %cnode 及蟆卞銀歹木引仄凶﹜%s 卞瑁戶丹切仄引允"
+
+#: makeinfo/toc.c:221 makeinfo/toc.c:298 makeinfo/toc.c:299
+msgid "Table of Contents"
+msgstr "杴慼"
+
+#: makeinfo/toc.c:330 makeinfo/toc.c:366 makeinfo/toc.c:367
+msgid "Short Contents"
+msgstr "棵啞杴慼"
+
+#: makeinfo/toc.c:406
+#, c-format
+msgid "%s: TOC should be here, but it was not found"
+msgstr "%s: TOC 互仇仇卞丐月反內卅及卞﹜葦勾井曰引六氏"
+
+#: makeinfo/xml.c:1108
+#, c-format
+msgid "@image file `%s' unreadable: %s"
+msgstr "@image 白央奶伙 `%s' 互づ戶引六氏: %s"
+
+#: util/install-info.c:151
+#, c-format
+msgid "%s: warning: "
+msgstr "%s: 煞屢: "
+
+#: util/install-info.c:176 util/install-info.c:189
+msgid "virtual memory exhausted"
+msgstr "移邂丟乒伉毛銀中絆凶仄引仄凶"
+
+#: util/install-info.c:232
+#, c-format
+msgid " for %s"
+msgstr " %s"
+
+#: util/install-info.c:381
+#, c-format
+msgid "\tTry `%s --help' for a complete list of options.\n"
+msgstr "\t敦蟈卅 左皿扑亦件伉旦玄毛ぜ月卞反 `%s --help' 毛撢墊仄化仁分今中﹝\n"
+
+#: util/install-info.c:389
+#, fuzzy, c-format
+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 犯奴伊弁玄伉白央奶伙 `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"
+
+#: util/install-info.c:444
+#, 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"
+"* Menu:\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"
+
+#: util/install-info.c:467
+#, c-format
+msgid "%s: could not read (%s) and could not create (%s)\n"
+msgstr "%s: (%s) 毛づ戶內﹜(%s) 毛綜嶽匹五引六氏匹仄凶\n"
+
+#: util/install-info.c:551
+#, c-format
+msgid "%s: empty file"
+msgstr "%s: 塢及白央奶伙"
+
+#: util/install-info.c:866 util/install-info.c:906
+msgid "START-INFO-DIR-ENTRY without matching END-INFO-DIR-ENTRY"
+msgstr "START-INFO-DIR-ENTRY 卞覆殺允月 END-INFO-DIR-ENTRY 互丐曰引六氏"
+
+#: util/install-info.c:901
+msgid "END-INFO-DIR-ENTRY without matching START-INFO-DIR-ENTRY"
+msgstr "END-INFO-DIR-ENTRY 卞覆殺允月 START-INFO-DIR-ENTRY 互丐曰引六氏"
+
+#: util/install-info.c:1150 util/install-info.c:1160
+#, c-format
+msgid "%s: Specify the Info directory only once.\n"
+msgstr "%s: Info 犯奴伊弁玄伉反域蘸分仃隙爛仄化仁分今中﹝\n"
+
+#: util/install-info.c:1195
+#, c-format
+msgid "%s: Specify the Info file only once.\n"
+msgstr "%s: Info 白央奶伙反域蘸分仃隙爛仄化仁分今中﹝\n"
+
+#: util/install-info.c:1244
+#, c-format
+msgid "excess command line argument `%s'"
+msgstr "戊穴件玉仿奶件婁醒互聶允亢引允 `%s'"
+
+#: util/install-info.c:1248
+msgid "No input file specified; try --help for more information."
+msgstr ""
+"ェ恘白央奶伙互隙爛今木化中引六氏 -- 擇仄仁反 --help 尥匹撢墊仄化仁分今中﹝"
+
+#: util/install-info.c:1251
+msgid "No dir file specified; try --help for more information."
+msgstr ""
+"dir 白央奶伙互隙爛今木化中引六氏 -- 擇仄仁反 --help 尥匹撢墊仄化票今中﹝"
+
+#: util/install-info.c:1273
+#, c-format
+msgid "no info dir entry in `%s'"
+msgstr "`%s' 卞 Info dir 迕及嫩杴互丐曰引六氏"
+
+#: util/install-info.c:1388
+#, c-format
+msgid "menu item `%s' already exists, for file `%s'"
+msgstr "丟瓦亙□嫩杴 `%s' 反﹜`%s' 卞湃卞繡箕仄引允"
+
+#: util/install-info.c:1411
+#, c-format
+msgid "no entries found for `%s'; nothing deleted"
+msgstr "`%s' 嫩杴互葦勾井曰引六氏 -- 窒手綽輪仄引六氏匹仄凶"
+
+#: util/texindex.c:245
+msgid "display this help and exit"
+msgstr "銀中杅毛刓憎仄化蔽弇仄引允"
+
+#: util/texindex.c:247
+msgid "keep temporary files around after processing"
+msgstr "質咥及詨卞氾件禾仿伉白央奶伙毛酸仄化云五引允"
+
+#: util/texindex.c:249
+msgid "do not keep temporary files around after processing (default)"
+msgstr "質咥及丐午卞氾件禾仿伉白央奶伙毛綽輪仄引允 (default)"
+
+#: util/texindex.c:251
+msgid "send output to FILE"
+msgstr "請恘毛 FILE 卞霜曰引允"
+
+#: util/texindex.c:253
+msgid "display version information and exit"
+msgstr "田□斥亦件樹扷毛刓憎仄化蔽弇仄引允"
+
+#: util/texindex.c:264
+#, c-format
+msgid "Usage: %s [OPTION]... FILE...\n"
+msgstr "銀中杅: %s [左皿扑亦件]... 白央奶伙...\n"
+
+#: util/texindex.c:265
+msgid "Generate a sorted index for each TeX output FILE.\n"
+msgstr "TeX 及啃及末□玄碧奶件犯永弁旦白央奶伙毛戲嶽仄引允\n"
+
+#: util/texindex.c:268
+#, 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:270
+msgid ""
+"\n"
+"Options:\n"
+msgstr ""
+"\n"
+"左皿扑亦件:\n"
+
+#: util/texindex.c:887 util/texindex.c:921 util/texindex.c:997
+#: util/texindex.c:1025
+#, c-format
+msgid "%s: not a texinfo index file"
+msgstr "%s: texinfo 及奶件犯永弁旦白央奶伙匹反丐曰引六氏"
+
+#: util/texindex.c:982
+#, c-format
+msgid "failure reopening %s"
+msgstr "%s 及瘋左□皿件卞撩л"
+
+#: util/texindex.c:1224
+#, c-format
+msgid "No page number in %s"
+msgstr "%s 卞矢□斥砦璊洶═磥牏誘"
+
+#: util/texindex.c:1295
+#, c-format
+msgid "entry %s follows an entry with a secondary name"
+msgstr "%s 嫩杴卞わ勾杴及嫩杴抩互糧中化中引允"
+
+#: util/texindex.c:1633
+#, c-format
+msgid "%s; for file `%s'.\n"
+msgstr "%s -- 白央奶伙 `%s'﹝\n"
+
+#~ 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"
diff --git a/gnu/usr.bin/texinfo/po/quot.sed b/gnu/usr.bin/texinfo/po/quot.sed
new file mode 100644
index 00000000000..0122c46318d
--- /dev/null
+++ b/gnu/usr.bin/texinfo/po/quot.sed
@@ -0,0 +1,6 @@
+s/"\([^"]*\)"/\1/g
+s/`\([^`']*\)'/\1/g
+s/ '\([^`']*\)' / \1 /g
+s/ '\([^`']*\)'$/ \1/g
+s/^'\([^`']*\)' /\1 /g
+s//""/g
diff --git a/gnu/usr.bin/texinfo/po/remove-potcdate.sin b/gnu/usr.bin/texinfo/po/remove-potcdate.sin
new file mode 100644
index 00000000000..2436c49e786
--- /dev/null
+++ b/gnu/usr.bin/texinfo/po/remove-potcdate.sin
@@ -0,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
+}
diff --git a/gnu/usr.bin/texinfo/po/sv.gmo b/gnu/usr.bin/texinfo/po/sv.gmo
new file mode 100644
index 00000000000..322c599346f
--- /dev/null
+++ b/gnu/usr.bin/texinfo/po/sv.gmo
Binary files differ
diff --git a/gnu/usr.bin/texinfo/po/sv.po b/gnu/usr.bin/texinfo/po/sv.po
new file mode 100644
index 00000000000..6649e6ec389
--- /dev/null
+++ b/gnu/usr.bin/texinfo/po/sv.po
@@ -0,0 +1,3144 @@
+# Swedish messages for texinfo.
+# Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+# Christian Rose <menthos@menthos.com>, 2001, 2002.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: texinfo 4.1c\n"
+"POT-Creation-Date: 2002-04-01 06:10-0800\n"
+"PO-Revision-Date: 2002-03-24 12:16+0100\n"
+"Last-Translator: Christian Rose <menthos@menthos.com>\n"
+"Language-Team: Swedish <sv@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: info/echo-area.c:283 info/session.c:712
+msgid "Move forward a character"
+msgstr "G ett tecken fram廞"
+
+#: info/echo-area.c:295 info/session.c:728
+msgid "Move backward a character"
+msgstr "G ett tecken bak廞"
+
+#: info/echo-area.c:307
+msgid "Move to the start of this line"
+msgstr "G till b顤jan 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:746
+msgid "Move forward a word"
+msgstr "G ett ord fram廞"
+
+#: info/echo-area.c:360 info/session.c:795
+msgid "Move backward a word"
+msgstr "G ett ord bak廞"
+
+#: info/echo-area.c:400
+msgid "Delete the character under the cursor"
+msgstr "Ta bort tecknet under mark顤en"
+
+#: info/echo-area.c:430
+msgid "Delete the character behind the cursor"
+msgstr "Ta bort tecknet bakom mark顤en"
+
+#: 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酲ta tecken ordagrant"
+
+#: info/echo-area.c:479
+msgid "Insert this character"
+msgstr "Infoga detta tecken"
+
+#: info/echo-area.c:497
+msgid "Insert a TAB character"
+msgstr "Infoga ett TABULATOR-tecken"
+
+#: info/echo-area.c:504
+msgid "Transpose characters at point"
+msgstr "Transponera tecken vid punkt"
+
+#: info/echo-area.c:555
+msgid "Yank back the contents of the last kill"
+msgstr "Ryck tillbaka inneh嶚let i det senaste d鐰andet"
+
+#: info/echo-area.c:562
+msgid "Kill ring is empty"
+msgstr "D鐰sringen 酺 tom"
+
+#: info/echo-area.c:575
+msgid "Yank back a previous kill"
+msgstr "Ryck tillbaka ett tidigare d鐰ande"
+
+#: info/echo-area.c:608
+msgid "Kill to the end of the line"
+msgstr "D鐰a till slutet p raden"
+
+#: info/echo-area.c:621
+msgid "Kill to the beginning of the line"
+msgstr "D鐰a till b顤jan p raden"
+
+#: info/echo-area.c:633
+msgid "Kill the word following the cursor"
+msgstr "D鐰a ordet efter mark顤en"
+
+#: info/echo-area.c:652
+msgid "Kill the word preceding the cursor"
+msgstr "D鐰a ordet f顤e mark顤en"
+
+#: info/echo-area.c:872 info/echo-area.c:932
+msgid "No completions"
+msgstr "Inga kompletteringar"
+
+#: info/echo-area.c:874
+msgid "Not complete"
+msgstr "Inte fullst鄚dig"
+
+#: info/echo-area.c:919
+msgid "List possible completions"
+msgstr "Visa m鐱liga kompletteringar"
+
+#: info/echo-area.c:936
+msgid "Sole completion"
+msgstr "Enda komplettering"
+
+#: info/echo-area.c:945
+msgid "One completion:\n"
+msgstr "En komplettering:\n"
+
+#: info/echo-area.c:946
+#, c-format
+msgid "%d completions:\n"
+msgstr "%d kompletteringar:\n"
+
+#: info/echo-area.c:1092
+msgid "Insert completion"
+msgstr "Infoga komplettering"
+
+#: info/echo-area.c:1225
+msgid "Building completions..."
+msgstr "Bygger kompletteringar..."
+
+#: info/echo-area.c:1342
+msgid "Scroll the completions window"
+msgstr "Rulla kompletteringsf霵stret"
+
+#: 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 酺 associerade med denna nod i ett annat f霵ster"
+
+#: info/footnotes.h:26
+msgid "---------- Footnotes ----------"
+msgstr "---------- Fotnoter -----------"
+
+#: info/indices.c:175
+msgid "Look up a string in the index for this file"
+msgstr "Sl upp en str鄚g i indexet f顤 denna fil"
+
+#: info/indices.c:205
+msgid "Finding index entries..."
+msgstr "S闥er indexposter..."
+
+#: info/indices.c:212
+msgid "No indices found."
+msgstr "Inga index hittades."
+
+#: info/indices.c:222
+msgid "Index entry: "
+msgstr "Indexpost: "
+
+#: info/indices.c:332
+msgid ""
+"Go to the next matching index item from the last `\\[index-search]' command"
+msgstr ""
+"G till n酲ta matchande indexpost fr幩 det senaste \"\\[index-search]\"-"
+"kommandot"
+
+#: info/indices.c:342
+msgid "No previous index search string."
+msgstr "Det finns ingen tidigare indexs闥str鄚g."
+
+#: info/indices.c:349
+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:382
+#, c-format
+msgid "No %sindex entries containing \"%s\"."
+msgstr "Inga %sindexposter som inneh嶚ler \"%s\"."
+
+#: info/indices.c:383
+msgid "more "
+msgstr "fler "
+
+#: info/indices.c:393
+msgid "CAN'T SEE THIS"
+msgstr "KAN INTE SE DETTA"
+
+#: info/indices.c:429
+#, c-format
+msgid "Found \"%s\" in %s. (`\\[next-index-match]' tries to find next.)"
+msgstr "Hittade \"%s\" i %s (\"\\[next-index-match]\" f顤s闥er hitta n酲ta)."
+
+#: info/indices.c:549
+#, c-format
+msgid "Scanning indices of \"%s\"..."
+msgstr "Genoms闥er index av \"%s\"..."
+
+#: info/indices.c:603
+#, c-format
+msgid "No available info files have \"%s\" in their indices."
+msgstr "Inga tillg鄚gliga infofiler har \"%s\" i deras index."
+
+#: info/indices.c:632
+msgid "Grovel all known info file's indices for a string and build a menu"
+msgstr "Gr銥 i alla k鄚da infofilers index efter en str鄚g och bygg en meny"
+
+#: info/indices.c:636
+msgid "Index apropos: "
+msgstr "Index-apropos: "
+
+#: info/indices.c:666
+#, c-format
+msgid ""
+"\n"
+"* Menu: Nodes whoses indices contain \"%s\":\n"
+msgstr ""
+"\n"
+"* Meny: Noder vars index inneh嶚ler \"%s\":\n"
+
+#: info/info.c:260 info/infokey.c:884
+msgid "Try --help for more information.\n"
+msgstr "Prova --help f顤 mer information.\n"
+
+#: info/info.c:279 info/infokey.c:139 makeinfo/makeinfo.c:689
+#: util/install-info.c:1224 util/texindex.c:338
+#, c-format
+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顤 mer information om detta.\n"
+
+#: info/info.c:462
+#, c-format
+msgid "no index entries found for `%s'\n"
+msgstr "inga indexposter f顤 \"%s\" hittades\n"
+
+#: info/info.c:555
+msgid " -b, --speech-friendly be friendly to speech synthesizers.\n"
+msgstr " -b, --speech-friendly var v鄚lig mot talsyntesprogram.\n"
+
+#: info/info.c:562
+#, c-format
+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 ""
+"Anv鄚dning: %s [FLAGGA]... [MENYPOST...]\n"
+"\n"
+"L酲 dokumentation i Info-format.\n"
+"\n"
+"Flaggor:\n"
+" --apropos=STR鵲G sl upp STR鵲G i alla index i alla manualer.\n"
+" -d, --directory=KATALOG l輍g till KATALOG till INFOPATH.\n"
+" --dribble=FILNAMN kom ih嶓 anv鄚darens tangentnedtryckningar i\n"
+" FILNAMN.\n"
+" -f, --file=FILNAMN ange den Info-fil som ska bes闥as.\n"
+" -h, --help visa denna hj鄟ptext och avsluta.\n"
+" --index-search=STR鵲G g till noden som utpekas av indexpost\n"
+" STR鵲G.\n"
+" -n, --node=NODNAMN ange noder i den f顤st bes闥ta Info-filen.\n"
+" -o, --output=FILNAMN skriv ut valda noder till FILNAMN.\n"
+" -R, --raw-escapes ta inte bort ANSI-styrkoder fr幩\n"
+" manualsidor.\n"
+" --restore=FILNAMN l酲 initiala tangentnedtryckningar fr幩\n"
+" FILNAMN.\n"
+" -O, --show-options, --usage g till noden f顤 kommandoradsflaggor.\n"
+"%s --subnodes skriv ut menyposter rekursivt.\n"
+" --vi-keys anv鄚d vi- och less-liknande\n"
+" snabbtangenter.\n"
+" --version visa versionsinformation och avsluta.\n"
+"\n"
+"Det f顤sta argumentet som inte 酺 en flagga 酺, om det finns, menyposten\n"
+"att b顤ja fr幩. Det s闥s efter i alla \"dir\"-filer i INFOPATH.\n"
+"Om den inte finns sl緳 info samman alla \"dir\"-filer och visar resultatet.\n"
+"Alla 廞erst嶒nde argument betraktas som namnen p menyposter relativa till\n"
+"den f顤st bes闥ta noden.\n"
+"\n"
+"Exampel:\n"
+" info visa 饘ersta katalogmenyn\n"
+" info emacs b顤ja p emacs-noden fr幩 饘ersta katalogen\n"
+" info emacs buffers b顤ja p buffertnoden inom emacs-manualen\n"
+" info --show-options emacs b顤ja p noden med emacs kommandoradsflaggor\n"
+" info -f ./foo.info visa filen ./foo.info, s闥 inte i katalogen\n"
+
+#: info/info.c:598 info/infokey.c:903 makeinfo/makeinfo.c:474
+#: util/install-info.c:421 util/texindex.c:286
+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鄚na fr嶓or och diskussion till help-texinfo@gnu.org\n"
+"och synpunkter p 饘ers酹tningen till sv@li.org.\n"
+"Hemsida f顤 texinfo: http://www.gnu.org/software/texinfo/"
+
+#: info/info.c:632
+#, c-format
+msgid "Cannot find node `%s'."
+msgstr "Kan inte hitta noden \"%s\"."
+
+#: info/info.c:633
+#, c-format
+msgid "Cannot find node `(%s)%s'."
+msgstr "Kan inte hitta noden \"(%s)%s\"."
+
+#: info/info.c:634
+msgid "Cannot find a window!"
+msgstr "Kan inte hitta ett f霵ster!"
+
+#: info/info.c:635
+msgid "Point doesn't appear within this window's node!"
+msgstr "Punkten finns inte inom detta f霵sters nod!"
+
+#: info/info.c:636
+msgid "Cannot delete the last window."
+msgstr "Kan inte ta bort det sista f霵stret."
+
+#: info/info.c:637
+msgid "No menu in this node."
+msgstr "Ingen meny i denna nod."
+
+#: info/info.c:638
+msgid "No footnotes in this node."
+msgstr "Inga fotnoter i denna nod."
+
+#: info/info.c:639
+msgid "No cross references in this node."
+msgstr "Inga korsreferenser i denna nod."
+
+#: info/info.c:640
+#, c-format
+msgid "No `%s' pointer for this node."
+msgstr "Ingen \"%s\"-pekare f顤 denna nod."
+
+#: info/info.c:641
+#, c-format
+msgid "Unknown Info command `%c'; try `?' for help."
+msgstr "Ok鄚t Info-kommando \"%c\". Prova \"?\" f顤 hj鄟p."
+
+#: info/info.c:642
+#, c-format
+msgid "Terminal type `%s' is not smart enough to run Info."
+msgstr "Terminaltypen \"%s\" 酺 inte tillr踄kligt smart f顤 att k顤a Info."
+
+#: info/info.c:643
+msgid "You are already at the last page of this node."
+msgstr "Du 酺 redan p sista sidan f顤 denna nod."
+
+#: info/info.c:644
+msgid "You are already at the first page of this node."
+msgstr "Du 酺 redan p f顤sta sidan f顤 denna nod."
+
+#: info/info.c:645
+msgid "Only one window."
+msgstr "Endast ett f霵ster."
+
+#: info/info.c:646
+msgid "Resulting window would be too small."
+msgstr "Resulterande f霵stret skulle bli f顤 litet."
+
+#: info/info.c:647
+msgid "Not enough room for a help window, please delete a window."
+msgstr ""
+"Inte tillr踄kligt med utrymme f顤 ett hj鄟pf霵ster, ta bort ett f霵ster."
+
+#: info/infodoc.c:45 info/infodoc.c:94
+msgid ""
+"Basic Commands in Info Windows\n"
+"******************************\n"
+msgstr ""
+"Grundl輍gande kommandon i Info-f霵ster\n"
+"**************************************\n"
+
+#: info/infodoc.c:48
+msgid "\\%-10[quit-help] Quit this help.\n"
+msgstr "\\%-10[quit-help] Avsluta denna hj鄟p.\n"
+
+#: info/infodoc.c:49
+msgid "\\%-10[quit] Quit Info altogether.\n"
+msgstr "\\%-10[quit] Avsluta Info helt.\n"
+
+#: info/infodoc.c:50
+msgid "\\%-10[get-info-help-node] Invoke the Info tutorial.\n"
+msgstr "\\%-10[get-info-help-node] Starta Info-handboken.\n"
+
+#: info/infodoc.c:52 info/infodoc.c:101
+msgid ""
+"Selecting other nodes:\n"
+"----------------------\n"
+msgstr ""
+"V鄟ja andra noder:\n"
+"------------------\n"
+
+#: info/infodoc.c:54
+msgid "\\%-10[next-node] Move to the \"next\" node of this node.\n"
+msgstr "\\%-10[next-node] G till n酲ta nod fr幩 denna nod.\n"
+
+#: info/infodoc.c:55
+msgid "\\%-10[prev-node] Move to the \"previous\" node of this node.\n"
+msgstr "\\%-10[prev-node] G till f顤eg嶒nde nod fr幩 denna nod.\n"
+
+#: info/infodoc.c:56
+msgid "\\%-10[up-node] Move \"up\" from this node.\n"
+msgstr "\\%-10[up-node] G upp fr幩 denna nod.\n"
+
+#: info/infodoc.c:57
+msgid ""
+"\\%-10[menu-item] Pick menu item specified by name.\n"
+" Picking a menu item causes another node to be selected.\n"
+msgstr ""
+"\\%-10[menu-item] V鄟j den menypost som anges med namn.\n"
+" Att v鄟ja en menypost g顤 att en annan nod v鄟js.\n"
+
+#: info/infodoc.c:59
+msgid ""
+"\\%-10[xref-item] Follow a cross reference. Reads name of reference.\n"
+msgstr ""
+"\\%-10[xref-item] F闤j en korsreferens. L酲er namnet p en referens.\n"
+
+#: info/infodoc.c:60
+msgid "\\%-10[history-node] Move to the last node seen in this window.\n"
+msgstr "\\%-10[history-node] G till den sista noden i detta f霵ster.\n"
+
+#: info/infodoc.c:61
+msgid ""
+"\\%-10[move-to-next-xref] Skip to next hypertext link within this node.\n"
+msgstr ""
+"\\%-10[move-to-next-xref] Hoppa till n酲ta hypertextl鄚k i denna nod.\n"
+
+#: info/infodoc.c:62
+msgid ""
+"\\%-10[move-to-prev-xref] Skip to previous hypertext link within this "
+"node.\n"
+msgstr ""
+"\\%-10[move-to-prev-xref] Hoppa till n酲ta hypertextl鄚k i denna nod.\n"
+
+#: info/infodoc.c:63
+msgid ""
+"\\%-10[select-reference-this-line] Follow the hypertext link under cursor.\n"
+msgstr ""
+"\\%-10[select-reference-this-line] F闤j hypertextl鄚ken under mark顤en.\n"
+
+#: info/infodoc.c:64
+msgid ""
+"\\%-10[dir-node] Move to the `directory' node. Equivalent to `\\[goto-"
+"node] (DIR)'.\n"
+msgstr ""
+"\\%-10[dir-node] G till \"directory\"-noden. Likv酺digt med \"g (DIR)\".\n"
+
+#: info/infodoc.c:65
+msgid ""
+"\\%-10[top-node] Move to the Top node. Equivalent to `\\[goto-node] Top'.\n"
+msgstr ""
+"\\%-10[top-node] G till den 饘ersta noden. Likv酺digt med \"g Top\".\n"
+
+#: info/infodoc.c:67 info/infodoc.c:115
+msgid ""
+"Moving within a node:\n"
+"---------------------\n"
+msgstr ""
+"F顤flyttning inom en nod:\n"
+"-------------------------\n"
+
+#: info/infodoc.c:69
+msgid "\\%-10[scroll-forward] Scroll forward a page.\n"
+msgstr "\\%-10[scroll-forward] Rulla en sida fram廞.\n"
+
+#: info/infodoc.c:70
+msgid "\\%-10[scroll-backward] Scroll backward a page.\n"
+msgstr "\\%-10[scroll-backward] Rulla en sida bak廞.\n"
+
+#: info/infodoc.c:71
+msgid "\\%-10[beginning-of-node] Go to the beginning of this node.\n"
+msgstr "\\%-10[beginning-of-node] G till b顤jan p denna nod.\n"
+
+#: info/infodoc.c:72
+msgid "\\%-10[end-of-node] Go to the end of this node.\n"
+msgstr "\\%-10[end-of-node] G till slutet av denna nod.\n"
+
+#: info/infodoc.c:73
+msgid "\\%-10[scroll-forward] Scroll forward 1 line.\n"
+msgstr "\\%-10[scroll-forward] Rulla en rad fram廞.\n"
+
+#: info/infodoc.c:74
+msgid "\\%-10[scroll-backward] Scroll backward 1 line.\n"
+msgstr "\\%-10[scroll-backward] Rulla en rad bak廞.\n"
+
+#: info/infodoc.c:76 info/infodoc.c:124
+msgid ""
+"Other commands:\n"
+"---------------\n"
+msgstr ""
+"Andra kommandon:\n"
+"----------------\n"
+
+#: info/infodoc.c:78
+msgid "\\%-10[menu-digit] Pick first ... ninth item in node's menu.\n"
+msgstr "\\%-10[menu-digit] V鄟j f顤sta ... nionde objektet i nodens meny.\n"
+
+#: info/infodoc.c:79
+msgid "\\%-10[last-menu-item] Pick last item in node's menu.\n"
+msgstr "\\%-10[last-menu-item] V鄟j det sista objektet i nodens meny.\n"
+
+#: info/infodoc.c:80
+msgid ""
+"\\%-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"
+msgstr ""
+"\\%-10[index-search] S闥 efter en angiven str鄚g i indexposterna i denna\n"
+" Info-fil, och v鄟j noden som refereras av den f顤sta posten\n"
+" som hittas.\n"
+
+#: info/infodoc.c:82
+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 till den nod som anges.\n"
+" Du kan 銥en inkludera ett filnamn, som exempelvis\n"
+" (FILNAMN)NODNAMN.\n"
+
+#: info/infodoc.c:84
+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闥 fram廞 efter en angiven str鄚g\n"
+" och v鄟j den nod i vilken n酲ta f顤ekomst hittas.\n"
+
+#: info/infodoc.c:86
+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闥 bak廞 efter en angiven str鄚g\n"
+" och v鄟j den nod i vilken n酲ta f顤ekomst hittas.\n"
+
+#: info/infodoc.c:97
+#, c-format
+msgid " %-10s Quit this help.\n"
+msgstr " %-10s Avsluta denna hj鄟p.\n"
+
+#: info/infodoc.c:98
+#, c-format
+msgid " %-10s Quit Info altogether.\n"
+msgstr " %-10s Avsluta Info helt.\n"
+
+#: info/infodoc.c:99
+#, c-format
+msgid " %-10s Invoke the Info tutorial.\n"
+msgstr " %-10s Starta Info-handboken.\n"
+
+#: info/infodoc.c:103
+#, c-format
+msgid " %-10s Move to the `next' node of this node.\n"
+msgstr " %-10s G till n酲ta nod fr幩 denna nod.\n"
+
+#: info/infodoc.c:104
+#, c-format
+msgid " %-10s Move to the `previous' node of this node.\n"
+msgstr " %-10s G till f顤eg嶒nde nod fr幩 denna nod.\n"
+
+#: info/infodoc.c:105
+#, c-format
+msgid " %-10s Move `up' from this node.\n"
+msgstr " %-10s G upp fr幩 denna nod.\n"
+
+#: info/infodoc.c:106
+#, c-format
+msgid " %-10s Pick menu item specified by name.\n"
+msgstr " %-10s V鄟j angiven menypost.\n"
+
+#: info/infodoc.c:107
+msgid " Picking a menu item causes another node to be selected.\n"
+msgstr " Att v鄟ja en menypost g顤 att en annan nod v鄟js.\n"
+
+#: info/infodoc.c:108
+#, c-format
+msgid " %-10s Follow a cross reference. Reads name of reference.\n"
+msgstr " %-10s F闤j en korsreferens. L酲er namnet p en referens.\n"
+
+#: info/infodoc.c:109
+#, c-format
+msgid " %-10s Move to the last node seen in this window.\n"
+msgstr " %-10s G till den sista noden i detta f霵ster.\n"
+
+#: info/infodoc.c:110
+#, c-format
+msgid " %-10s Skip to next hypertext link within this node.\n"
+msgstr " %-10s Hoppa till n酲ta hypertextl鄚k i denna nod.\n"
+
+#: info/infodoc.c:111
+#, c-format
+msgid " %-10s Follow the hypertext link under cursor.\n"
+msgstr " %-10s F闤j hypertextl鄚ken under mark顤en.\n"
+
+#: info/infodoc.c:112
+#, c-format
+msgid " %-10s Move to the `directory' node. Equivalent to `g (DIR)'.\n"
+msgstr " %-10s G till \"directory\"-noden. Likv酺digt med \"g (DIR)\".\n"
+
+#: info/infodoc.c:113
+#, c-format
+msgid " %-10s Move to the Top node. Equivalent to `g Top'.\n"
+msgstr " %-10s G till den 饘ersta noden. Likv酺digt med \"g Top\".\n"
+
+#: info/infodoc.c:117
+#, c-format
+msgid " %-10s Scroll forward a page.\n"
+msgstr " %-10s Rulla en sida fram廞.\n"
+
+#: info/infodoc.c:118
+#, c-format
+msgid " %-10s Scroll backward a page.\n"
+msgstr " %-10s Rulla en sida bak廞.\n"
+
+#: info/infodoc.c:119
+#, c-format
+msgid " %-10s Go to the beginning of this node.\n"
+msgstr " %-10s G till b顤jan p denna nod.\n"
+
+#: info/infodoc.c:120
+#, c-format
+msgid " %-10s Go to the end of this node.\n"
+msgstr " %-10s G till slutet av denna nod.\n"
+
+#: info/infodoc.c:121
+#, c-format
+msgid " %-10s Scroll forward 1 line.\n"
+msgstr " %-10s Rulla en rad fram廞.\n"
+
+#: info/infodoc.c:122
+#, c-format
+msgid " %-10s Scroll backward 1 line.\n"
+msgstr " %-10s Rulla en rad bak廞.\n"
+
+#: info/infodoc.c:126
+#, c-format
+msgid " %-10s Pick first ... ninth item in node's menu.\n"
+msgstr " %-10s V鄟j f顤sta ... nionde objektet i nodens meny.\n"
+
+#: info/infodoc.c:127
+#, c-format
+msgid " %-10s Pick last item in node's menu.\n"
+msgstr " %-10s V鄟j det sista 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.
+#
+#: info/infodoc.c:128
+#, c-format
+msgid ""
+" %-10s Search for a specified string in the index entries of this Info\n"
+msgstr " %-10s S闥 efter en angiven str鄚g i indexposterna i denna\n"
+
+#: info/infodoc.c:129
+msgid ""
+" file, and select the node referenced by the first entry "
+"found.\n"
+msgstr ""
+" Info-fil, och v鄟j noden som refereras av den f顤sta posten\n"
+" som hittas.\n"
+
+#: info/infodoc.c:130
+#, c-format
+msgid " %-10s Move to node specified by name.\n"
+msgstr " %-10s G till den nod som anges.\n"
+
+#: info/infodoc.c:131
+msgid ""
+" You may include a filename as well, as in (FILENAME)NODENAME.\n"
+msgstr ""
+" Du kan 銥en inkludera ett filnamn, som exempelvis\n"
+" (FILNAMN)NODNAMN.\n"
+
+# This is broken
+#
+# N_(" %-10s Search forward through 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.
+#
+#: info/infodoc.c:132
+#, c-format
+msgid " %-10s Search forward for a specified string,\n"
+msgstr " %-10s S闥 fram廞 efter en angiven str鄚g,\n"
+
+#: info/infodoc.c:133 info/infodoc.c:135
+msgid ""
+" and select the node in which the next occurrence is found.\n"
+msgstr " och v鄟j den nod i vilken n酲ta f顤ekomst hittas.\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.
+#
+#: info/infodoc.c:134
+#, c-format
+msgid " %-10s Search backward for a specified string\n"
+msgstr " %-10s S闥 bak廞 efter en angiven str鄚g,\n"
+
+#: info/infodoc.c:313
+msgid "The current search path is:\n"
+msgstr "Den aktuella s闥v輍en 酺:\n"
+
+#: info/infodoc.c:316
+msgid ""
+"Commands available in Info windows:\n"
+"\n"
+msgstr ""
+"Kommandon som 酺 tillg鄚gliga i Info-f霵ster:\n"
+"\n"
+
+#: info/infodoc.c:319
+msgid ""
+"Commands available in the echo area:\n"
+"\n"
+msgstr ""
+"Kommandon som 酺 tillg鄚gliga i echo-omr嶟et:\n"
+"\n"
+
+#: info/infodoc.c:340
+#, c-format
+msgid ""
+"The following commands can only be invoked via %s:\n"
+"\n"
+msgstr ""
+"F闤jande kommandon kan endast startas via %s:\n"
+"\n"
+
+#: info/infodoc.c:343
+msgid ""
+"The following commands cannot be invoked at all:\n"
+"\n"
+msgstr ""
+"F闤jande kommandon kan inte startas alls:\n"
+"\n"
+
+#: info/infodoc.c:367
+msgid "--- Use `\\[history-node]' or `\\[kill-node]' to exit ---\n"
+msgstr ""
+"--- Anv鄚d \"\\[history-node]\" eller \"\\[kill-node]\" f顤 att avsluta ---\n"
+
+#: info/infodoc.c:477
+msgid "Display help message"
+msgstr "Visa hj鄟pmeddelande"
+
+#: info/infodoc.c:495
+msgid "Visit Info node `(info)Help'"
+msgstr "Bes闥 Info-noden \"(info)Help\""
+
+#: info/infodoc.c:638
+msgid "Print documentation for KEY"
+msgstr "Visa dokumentationen f顤 NYCKEL"
+
+#: info/infodoc.c:650
+#, c-format
+msgid "Describe key: %s"
+msgstr "Beskriv nyckel: %s"
+
+#: info/infodoc.c:660
+#, c-format
+msgid "ESC %s is undefined."
+msgstr "ESC %s 酺 odefinierad."
+
+#: info/infodoc.c:676 info/infodoc.c:703
+#, c-format
+msgid "%s is undefined."
+msgstr "%s 酺 odefinierad."
+
+#: info/infodoc.c:724
+#, c-format
+msgid "%s is defined to %s."
+msgstr "%s 酺 definierad till %s."
+
+#: info/infodoc.c:1151
+msgid "Show what to type to execute a given command"
+msgstr "Visa vad som ska anges f顤 att k顤a ett angivet kommando"
+
+#: info/infodoc.c:1155
+msgid "Where is command: "
+msgstr "Var 酺 kommando: "
+
+#: info/infodoc.c:1177
+#, c-format
+msgid "`%s' is not on any keys"
+msgstr "\"%s\" finns inte p n嶓ra tangenter"
+
+#: info/infodoc.c:1183
+#, c-format
+msgid "%s can only be invoked via %s."
+msgstr "%s kan endast startas via %s."
+
+#: info/infodoc.c:1186
+#, c-format
+msgid "%s can be invoked via %s."
+msgstr "%s kan startas via %s."
+
+#: info/infodoc.c:1190
+#, c-format
+msgid "There is no function named `%s'"
+msgstr "Det finns ingen funktion med namnet \"%s\""
+
+#: info/infokey.c:164
+msgid "incorrect number of arguments"
+msgstr "felaktigt antal argument"
+
+#: info/infokey.c:194
+#, c-format
+msgid "cannot open input file `%s'"
+msgstr "kan inte 鞿pna indatafilen \"%s\""
+
+#: info/infokey.c:207
+#, c-format
+msgid "cannot create output file `%s'"
+msgstr "kan inte skapa utdatafilen \"%s\""
+
+#: info/infokey.c:217
+#, c-format
+msgid "error writing to `%s'"
+msgstr "fel vid skrivning till \"%s\""
+
+#: info/infokey.c:222
+#, c-format
+msgid "error closing output file `%s'"
+msgstr "fel vid st鄚gning av utdatafilen \"%s\""
+
+#: info/infokey.c:443
+msgid "key sequence too long"
+msgstr "nyckelsekvensen 酺 f顤 l幩g"
+
+#: info/infokey.c:521
+msgid "missing key sequence"
+msgstr "nyckelsekvens saknas"
+
+#: info/infokey.c:600
+msgid "NUL character (\\000) not permitted"
+msgstr "NUL-tecknet (\\000) 酺 inte till廞et"
+
+#: info/infokey.c:629
+#, c-format
+msgid "NUL character (^%c) not permitted"
+msgstr "NUL-tecknet (^%c) 酺 inte till廞et"
+
+#: info/infokey.c:652
+msgid "missing action name"
+msgstr "廞g酺dsnamn saknas"
+
+#: info/infokey.c:667 info/infokey.c:733
+msgid "section too long"
+msgstr "avsnittet 酺 f顤 l幩gt"
+
+#: info/infokey.c:673
+#, c-format
+msgid "unknown action `%s'"
+msgstr "ok鄚d 廞g酺d \"%s\""
+
+#: info/infokey.c:682
+msgid "action name too long"
+msgstr "廞g酺dsnamnet 酺 f顤 l幩gt"
+
+#: info/infokey.c:694
+#, c-format
+msgid "extra characters following action `%s'"
+msgstr "extra tecken f闤jer p 廞g酺den \"%s\""
+
+#: info/infokey.c:704
+msgid "missing variable name"
+msgstr "variabelnamn saknas"
+
+#: info/infokey.c:712
+msgid "missing `=' immediately after variable name"
+msgstr "\"=\" saknas direkt efter variabelnamnet"
+
+#: info/infokey.c:719
+msgid "variable name too long"
+msgstr "variabelnamnet 酺 f顤 l幩gt"
+
+#: info/infokey.c:741
+msgid "value too long"
+msgstr "v酺det 酺 f顤 l幩gt"
+
+#: info/infokey.c:875
+#, c-format
+msgid "\"%s\", line %u: "
+msgstr "\"%s\", rad %u: "
+
+#: info/infokey.c:891
+#, 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鄚dning: %s [FLAGGA]... [INDATAFIL]\n"
+"\n"
+"Kompilera infonyckelk鄟lfil till infonyckelfil. L酲er 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鄟let f顤 $HOME/.info\n"
+" --help visa denna hj鄟ptext och avsluta.\n"
+" --version visa versionsinformation och avsluta.\n"
+
+#: info/infomap.c:1397
+#, c-format
+msgid "Ignoring invalid infokey file `%s' - too small"
+msgstr "Ignorerar ogiltig infonyckelfil \"%s\" - f顤 liten"
+
+#: info/infomap.c:1400
+#, c-format
+msgid "Ignoring invalid infokey file `%s' - too big"
+msgstr "Ignorerar ogiltig infonyckelfil \"%s\" - f顤 stor"
+
+#: info/infomap.c:1413
+#, c-format
+msgid "Error reading infokey file `%s' - short read"
+msgstr "Fel vid l酲ning av infonyckelfilen \"%s\" - kort l酲ning"
+
+#: info/infomap.c:1431
+#, c-format
+msgid ""
+"Invalid infokey file `%s' (bad magic numbers) -- run infokey to update it"
+msgstr ""
+"Ogiltig infonyckelfil \"%s\" (felaktiga magiska nummer) -- k顤 infokey f顤\n"
+"att uppdatera den"
+
+#: info/infomap.c:1437
+#, c-format
+msgid "Your infokey file `%s' is out of date -- run infokey to update it"
+msgstr ""
+"Din infonyckelfil \"%s\" 酺 f顤 gammal -- k顤 infokey f顤 att uppdatera den"
+
+#: info/infomap.c:1450
+#, c-format
+msgid ""
+"Invalid infokey file `%s' (bad section length) -- run infokey to update it"
+msgstr ""
+"Ogiltig infonyckelfil \"%s\" (felaktig asvnittsl鄚gd) -- k顤 infokey f顤\n"
+"att uppdatera den"
+
+#: info/infomap.c:1470
+#, c-format
+msgid ""
+"Invalid infokey file `%s' (bad section code) -- run infokey to update it"
+msgstr ""
+"ogiltig infonyckelfil \"%s\" (felaktig avsnittskod) -- k顤 infokey f顤 att\n"
+"uppdatera den"
+
+#: info/infomap.c:1608
+msgid "Bad data in infokey file -- some key bindings ignored"
+msgstr "Felaktig data i infonyckelfil -- en del bindningar ignorerades"
+
+#: info/infomap.c:1659
+msgid "Bad data in infokey file -- some var settings ignored"
+msgstr "Felaktig data i infonyckelfil -- en del inst鄟lningar ignorerades"
+
+#: info/m-x.c:70
+msgid "Read the name of an Info command and describe it"
+msgstr "L酲 namnet p ett Info-kommando och beskriv det"
+
+#: info/m-x.c:74
+msgid "Describe command: "
+msgstr "Beskriv kommando: "
+
+#: info/m-x.c:97
+msgid "Read a command name in the echo area and execute it"
+msgstr "L酲 ett kommandonamn i echo-omr嶟et och k顤 det"
+
+#: info/m-x.c:141
+msgid "Cannot execute an `echo-area' command here."
+msgstr "Kan inte k顤a ett \"echo-area\"-kommando h酺."
+
+#: info/m-x.c:157
+msgid "Set the height of the displayed window"
+msgstr "St鄟l in h鐱den p det visade f霵stret"
+
+#: info/m-x.c:170
+#, c-format
+msgid "Set screen height to (%d): "
+msgstr "St鄟l in sk酺mh鐱den till (%d): "
+
+#: info/makedoc.c:161 info/makedoc.c:169
+msgid ""
+" Source files groveled to make this file include:\n"
+"\n"
+msgstr ""
+" K鄟lkodsfiler som gr銥des igenom f顤 att g顤a att denna fil inkluderar:\n"
+"\n"
+
+#: info/makedoc.c:553
+#, c-format
+msgid "Couldn't manipulate the file %s.\n"
+msgstr "Kunde inte manipulera filen %s.\n"
+
+#: info/nodemenu.c:28
+msgid ""
+"\n"
+"* Menu:\n"
+" (File)Node Lines Size Containing File\n"
+" ---------- ----- ---- ---------------"
+msgstr ""
+"\n"
+"* Meny:\n"
+" (Fil)Nod Rader Storl. Inneh嶚lande fil\n"
+" -------- ----- ------ ----------------"
+
+#: info/nodemenu.c:199
+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酺 酺 menyn med de noder som du har bes闥t nyligen.\n"
+"V鄟j en fr幩 denna meny eller anv鄚d\"\\[history-node]\" i ett annat "
+"f霵ster.\n"
+
+#: info/nodemenu.c:219
+msgid "Make a window containing a menu of all of the currently visited nodes"
+msgstr ""
+"Skapa ett f霵ster som inneh嶚ler en meny med alla nyligen bes闥ta noder"
+
+#: info/nodemenu.c:299
+msgid "Select a node which has been previously visited in a visible window"
+msgstr "V鄟j en nod som har bes闥ts nyligen i ett synligt f霵ster"
+
+#: info/nodemenu.c:311
+msgid "Select visited node: "
+msgstr "V鄟j bes闥t nod: "
+
+#: info/nodemenu.c:331 info/session.c:2235
+#, c-format
+msgid "The reference disappeared! (%s)."
+msgstr "Referensen f顤svann! (%s)."
+
+#: info/session.c:170
+#, c-format
+msgid ""
+"Welcome to Info version %s. Type \\[get-help-window] for help, \\[menu-item] "
+"for menu item."
+msgstr ""
+"V鄟kommen till Info version %s. Skriv in \\[get-help-window] f顤 hj鄟p, "
+"\\[menu-item] f顤 menypost."
+
+#: info/session.c:643
+msgid "Move down to the next line"
+msgstr "G ned till n酲ta rad"
+
+#: info/session.c:658
+msgid "Move up to the previous line"
+msgstr "G upp till f顤eg嶒nde rad"
+
+#: info/session.c:673
+msgid "Move to the end of the line"
+msgstr "G till slutet p raden"
+
+#: info/session.c:693
+msgid "Move to the start of the line"
+msgstr "G till b顤jan p raden"
+
+# src/menus.c:332
+#: info/session.c:885 makeinfo/node.c:1357
+msgid "Next"
+msgstr "N酲ta"
+
+#: info/session.c:888
+msgid "Following Next node..."
+msgstr "F闤jer n酲ta-nod..."
+
+#: info/session.c:905
+msgid "Selecting first menu item..."
+msgstr "V鄟jer f顤sta menyposten..."
+
+#: info/session.c:916
+msgid "Selecting Next node..."
+msgstr "V鄟jer n酲ta nod..."
+
+#: info/session.c:986
+#, c-format
+msgid "Moving Up %d time(s), then Next."
+msgstr "G緳 upp %d g幩g(er), sedan N酲ta."
+
+#: info/session.c:1010
+msgid "No more nodes within this document."
+msgstr "Inga fler noder i detta dokument."
+
+#: info/session.c:1034
+msgid "No `Prev' for this node."
+msgstr "Ingen \"F顤eg\" f顤 denna nod."
+
+#: info/session.c:1037 info/session.c:1092
+msgid "Moving Prev in this window."
+msgstr "G till f顤eg嶒nde i detta f霵ster."
+
+#: info/session.c:1051
+msgid "No `Prev' or `Up' for this node within this document."
+msgstr "Inget \"Prev\" eller \"Up\" f顤 denna nod inom detta dokument."
+
+#: info/session.c:1054
+msgid "Moving Up in this window."
+msgstr "G緳 upp i detta f霵ster."
+
+#: info/session.c:1102
+msgid "Moving to `Prev's last menu item."
+msgstr "G till \"F顤eg\"s senaste menypost."
+
+#: info/session.c:1113
+msgid "Move forwards or down through node structure"
+msgstr "G fram廞 eller ned廞 i nodstrukturen"
+
+#: info/session.c:1129
+msgid "Move backwards or up through node structure"
+msgstr "G bak廞 eller upp i nodstrukturen"
+
+#: info/session.c:1229
+msgid "Scroll forward in this window"
+msgstr "Rulla fram廞 i detta f霵ster"
+
+#: info/session.c:1237
+msgid "Scroll forward in this window and set default window size"
+msgstr "Rulla fram廞 i detta f霵ster och st鄟l in standardf霵sterstorleken"
+
+#: info/session.c:1245
+msgid "Scroll forward in this window staying within node"
+msgstr "Rulla fram廞 i detta f霵ster och stanna inom noden"
+
+#: info/session.c:1253
+msgid ""
+"Scroll forward in this window staying within node and set default window size"
+msgstr ""
+"Rulla fram廞 i detta f霵ster och stanna inom noden och st鄟l in "
+"standardf霵sterstorleken"
+
+#: info/session.c:1261
+msgid "Scroll backward in this window"
+msgstr "Rulla bak廞 i detta f霵ster"
+
+#: info/session.c:1269
+msgid "Scroll backward in this window and set default window size"
+msgstr "Rulla bak廞 i detta f霵ster och st鄟l in standardf霵sterstorleken"
+
+#: info/session.c:1278
+msgid "Scroll backward in this window staying within node"
+msgstr "Rulla bak廞 i detta f霵ster och stanna inom noden"
+
+#: info/session.c:1286
+msgid ""
+"Scroll backward in this window staying within node and set default window "
+"size"
+msgstr ""
+"Rulla bak廞 i detta f霵ster och stanna inom noden och st鄟l in "
+"standardf霵sterstorleken"
+
+#: info/session.c:1294
+msgid "Move to the start of this node"
+msgstr "G till b顤jan p denna nod"
+
+#: info/session.c:1301
+msgid "Move to the end of this node"
+msgstr "G till slutet p denna nod"
+
+#: info/session.c:1308
+msgid "Scroll down by lines"
+msgstr "Rulla ned廞 radvis"
+
+#: info/session.c:1325
+msgid "Scroll up by lines"
+msgstr "Rulla upp廞 radvis"
+
+#: info/session.c:1343
+msgid "Scroll down by half screen size"
+msgstr "Rulla ned廞 med halva sk酺mstorleken"
+
+#: info/session.c:1369
+msgid "Scroll up by half screen size"
+msgstr "Rulla upp廞 med halva sk酺mstorleken"
+
+#: info/session.c:1398
+msgid "Select the next window"
+msgstr "V鄟j n酲ta f霵ster"
+
+#: info/session.c:1437
+msgid "Select the previous window"
+msgstr "V鄟j f顤eg嶒nde f霵ster"
+
+#: info/session.c:1488
+msgid "Split the current window"
+msgstr "Dela aktuellt f霵ster"
+
+#: info/session.c:1569
+msgid "Delete the current window"
+msgstr "Ta bort aktuellt f霵ster"
+
+#: info/session.c:1577
+msgid "Cannot delete a permanent window"
+msgstr "Kan inte ta bort ett permanent f霵ster"
+
+#: info/session.c:1610
+msgid "Delete all other windows"
+msgstr "Ta bort alla andra f霵ster"
+
+#: info/session.c:1656
+msgid "Scroll the other window"
+msgstr "Rulla det andra f霵stret"
+
+#: info/session.c:1677
+msgid "Scroll the other window backward"
+msgstr "Rulla det andra f霵stret bak廞"
+
+#: info/session.c:1683
+msgid "Grow (or shrink) this window"
+msgstr "V鉶 (eller krymp) detta f霵ster"
+
+#: info/session.c:1694
+msgid "Divide the available screen space among the visible windows"
+msgstr "Dela det tillg鄚gliga sk酺mutrymmet mellan de synliga f霵stren"
+
+#: info/session.c:1701
+msgid "Toggle the state of line wrapping in the current window"
+msgstr "V鉶la tillst幩det f顤 radbrytning i det aktuella f霵stret"
+
+#: info/session.c:1880
+msgid "Select the Next node"
+msgstr "V鄟j n酲ta nod"
+
+#: info/session.c:1888
+msgid "Select the Prev node"
+msgstr "V鄟j f顤eg嶒nde nod"
+
+#: info/session.c:1896
+msgid "Select the Up node"
+msgstr "V鄟j uppnoden"
+
+#: info/session.c:1903
+msgid "Select the last node in this file"
+msgstr "V鄟j den sista noden i denna fil"
+
+#: info/session.c:1930 info/session.c:1963
+msgid "This window has no additional nodes"
+msgstr "Detta f霵ster har inga ytterligare noder"
+
+#: info/session.c:1936
+msgid "Select the first node in this file"
+msgstr "V鄟j den f顤sta noden i denna fil"
+
+#: info/session.c:1970
+msgid "Select the last item in this node's menu"
+msgstr "V鄟j det sista objektet i denna nods meny"
+
+#: info/session.c:1976
+msgid "Select this menu item"
+msgstr "V鄟j denna menypost"
+
+#: info/session.c:2005
+#, c-format
+msgid "There aren't %d items in this menu."
+msgstr "Det finns inte %d poster i denna meny."
+
+#: info/session.c:2148
+#, c-format
+msgid "Menu item (%s): "
+msgstr "Menypost (%s): "
+
+#: info/session.c:2150
+msgid "Menu item: "
+msgstr "Menypost: "
+
+#: info/session.c:2155
+#, c-format
+msgid "Follow xref (%s): "
+msgstr "F闤j xref (%s): "
+
+#: info/session.c:2157
+msgid "Follow xref: "
+msgstr "F闤j xref: "
+
+#: info/session.c:2280
+msgid "Read a menu item and select its node"
+msgstr "L酲 en menypost och v鄟j dess nod"
+
+#: info/session.c:2288
+msgid "Read a footnote or cross reference and select its node"
+msgstr "L酲 en fotnot eller korsreferens och v鄟j dess nod"
+
+#: info/session.c:2294
+msgid "Move to the start of this node's menu"
+msgstr "G till b顤jan p denna nods meny"
+
+#: info/session.c:2318
+msgid "Visit as many menu items at once as possible"
+msgstr "Bes闥 s m幩ga menyposter som m鐱ligt samtidigt"
+
+#: info/session.c:2346
+msgid "Read a node name and select it"
+msgstr "L酲 ett nodnamn och v鄟j det"
+
+#: info/session.c:2401 info/session.c:2405
+msgid "Goto node: "
+msgstr "G till nod: "
+
+#: info/session.c:2471
+#, c-format
+msgid "No menu in node `%s'."
+msgstr "Ingen meny i noden \"%s\"."
+
+#: info/session.c:2516
+#, c-format
+msgid "No menu item `%s' in node `%s'."
+msgstr "Ingen menypost \"%s\" i noden \"%s\"."
+
+#: info/session.c:2546
+#, 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:2597
+msgid "Read a list of menus starting from dir and follow them"
+msgstr "L酲 en lista med menyer som b顤jar med katalog, och f闤j dem"
+
+#: info/session.c:2599
+msgid "Follow menus: "
+msgstr "F闤j menyer: "
+
+#: info/session.c:2797
+msgid "Find the node describing program invocation"
+msgstr "Hitta den nod som beskriver start av programmet"
+
+#: info/session.c:2799
+#, c-format
+msgid "Find Invocation node of [%s]: "
+msgstr "Hitta programstartnod f顤 [%s]: "
+
+#: info/session.c:2837
+msgid "Read a manpage reference and select it"
+msgstr "L酲 en referens till manualsida och v鄟j den"
+
+#: info/session.c:2841
+msgid "Get Manpage: "
+msgstr "H鄝ta manualsida: "
+
+#: info/session.c:2871
+msgid "Select the node `Top' in this file"
+msgstr "V鄟j noden \"Top\" i denna fil"
+
+#: info/session.c:2877
+msgid "Select the node `(dir)'"
+msgstr "V鄟j noden \"(dir)\""
+
+#: info/session.c:2897
+#, c-format
+msgid "Kill node (%s): "
+msgstr "D鐰a noden (%s): "
+
+#: info/session.c:2951
+#, c-format
+msgid "Cannot kill node `%s'"
+msgstr "Kan inte d鐰a noden \"%s\""
+
+#: info/session.c:2961
+msgid "Cannot kill the last node"
+msgstr "Kan inte d鐰a den sista noden"
+
+#: info/session.c:3047
+msgid "Select the most recently selected node"
+msgstr "V鄟j den senast valda noden"
+
+#: info/session.c:3053
+msgid "Kill this node"
+msgstr "D鐰a denna nod"
+
+#: info/session.c:3061
+msgid "Read the name of a file and select it"
+msgstr "L酲 namnet p en fil och v鄟j den"
+
+#: info/session.c:3065
+msgid "Find file: "
+msgstr "S闥 fil: "
+
+#: info/session.c:3082
+#, c-format
+msgid "Cannot find `%s'."
+msgstr "Kan inte hitta \"%s\"."
+
+#: info/session.c:3127 info/session.c:3248
+#, c-format
+msgid "Could not create output file `%s'."
+msgstr "Kunde inte skapa utdatafilen \"%s\"."
+
+#: info/session.c:3140 info/session.c:3265 info/session.c:3326
+msgid "Done."
+msgstr "F酺dig."
+
+#: info/session.c:3196
+#, c-format
+msgid "Writing node %s..."
+msgstr "Skriver noden %s..."
+
+#: info/session.c:3274
+msgid "Pipe the contents of this node through INFO_PRINT_COMMAND"
+msgstr "Skicka inneh嶚let i denna nod i r顤 till INFO_PRINT_COMMAND"
+
+#: info/session.c:3310
+#, c-format
+msgid "Cannot open pipe to `%s'."
+msgstr "Kan inte 鞿pna r顤 till \"%s\"."
+
+#: info/session.c:3316
+#, c-format
+msgid "Printing node %s..."
+msgstr "Skriver ut noden %s..."
+
+#: info/session.c:3558
+#, c-format
+msgid "Searching subfile %s ..."
+msgstr "S闥er i underfilen %s..."
+
+#: info/session.c:3610
+msgid "Read a string and search for it case-sensitively"
+msgstr "L酲 en str鄚g och s闥 efter den skiftl輍esk鄚sligt"
+
+#: info/session.c:3617
+msgid "Read a string and search for it"
+msgstr "L酲 en str鄚g och s闥 efter den"
+
+#: info/session.c:3625
+msgid "Read a string and search backward for it"
+msgstr "L酲 en str鄚g och s闥 bakl鄚ges 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:3667
+#, c-format
+msgid "%s%sfor string [%s]: "
+msgstr "%s%sefter st鄚gen [%s]: "
+
+#: info/session.c:3668
+msgid "Search backward"
+msgstr "S闥 bakl鄚ges"
+
+#: info/session.c:3668
+msgid "Search"
+msgstr "S闥"
+
+#: info/session.c:3669
+msgid " case-sensitively "
+msgstr " skiljandes p VERSALER/gemener "
+
+#: info/session.c:3669
+msgid " "
+msgstr " "
+
+#: info/session.c:3709
+msgid "Search failed."
+msgstr "S闥ningen misslyckades."
+
+#: info/session.c:3727
+msgid "Repeat last search in the same direction"
+msgstr "Upprepa den senaste s闥ningen i samma riktning"
+
+#: info/session.c:3730 info/session.c:3740
+msgid "No previous search string"
+msgstr "Ingen tidigare s闥str鄚g"
+
+#: info/session.c:3737
+msgid "Repeat last search in the reverse direction"
+msgstr "Upprepa den senaste s闥ningen i omv鄚d riktning"
+
+#: info/session.c:3755 info/session.c:3761
+msgid "Search interactively for a string as you type it"
+msgstr "S闥 interaktivt efter en str鄚g allteftersom du skriver den"
+
+#: info/session.c:3855
+msgid "I-search backward: "
+msgstr "I-s闥 bakl鄚ges: "
+
+#: info/session.c:3857
+msgid "I-search: "
+msgstr "I-s闥: "
+
+#: info/session.c:3882
+msgid "Failing "
+msgstr "Misslyckas "
+
+#: info/session.c:4340
+msgid "Move to the previous cross reference"
+msgstr "G till f顤eg嶒nde korsreferens"
+
+#: info/session.c:4349
+msgid "Move to the next cross reference"
+msgstr "G till n酲ta korsreferens"
+
+#: info/session.c:4359
+msgid "Select reference or menu item appearing on this line"
+msgstr "V鄟j referens eller menypost som finns p denna rad"
+
+#: info/session.c:4381
+msgid "Cancel current operation"
+msgstr "Avbryt aktuell 廞g酺d"
+
+#: info/session.c:4388
+msgid "Quit"
+msgstr "Avsluta"
+
+#: info/session.c:4397
+msgid "Move the cursor to a specific line of the window"
+msgstr "Flytta mark顤en till en specifik rad i f霵stret"
+
+#: info/session.c:4429
+msgid "Redraw the display"
+msgstr "Rita om displayen"
+
+#: info/session.c:4466
+msgid "Quit using Info"
+msgstr "Avsluta anv鄚dandet av Info"
+
+#: info/session.c:4479
+msgid "Run command bound to this key's lowercase variant"
+msgstr "K顤 kommando som 酺 knutet till denna tangents gemena variant"
+
+#: info/session.c:4491
+#, c-format
+msgid "Unknown command (%s)."
+msgstr "Ok鄚t kommando (%s)."
+
+#: info/session.c:4494
+msgid "\"\" is invalid"
+msgstr "\"\" 酺 ogiltigt"
+
+#: info/session.c:4495
+#, c-format
+msgid "\"%s\" is invalid"
+msgstr "\"%s\" 酺 ogiltigt"
+
+#: info/session.c:4713
+msgid "Add this digit to the current numeric argument"
+msgstr "L輍g till denna siffra till det aktuella numeriska argumentet"
+
+#: info/session.c:4722
+msgid "Start (or multiply by 4) the current numeric argument"
+msgstr "B顤ja (eller multiplicera med 4) det numeriska argumentet"
+
+#: info/session.c:4737
+msgid "Internally used by \\[universal-argument]"
+msgstr "Anv鄚ds internt av \\[universal-argument]"
+
+#: info/tilde.c:344
+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酺 detta 酺 \"On\" visas och f顤svinner fotnoter automatiskt"
+
+#: info/variables.c:41
+msgid "When \"On\", creating or deleting a window resizes other windows"
+msgstr ""
+"N酺 detta 酺 \"On\" 鄚drar skapande eller borttagande av ett f霵ster\n"
+"storleken p andra f霵ster"
+
+#: info/variables.c:45
+msgid "When \"On\", flash the screen instead of ringing the bell"
+msgstr ""
+"N酺 detta 酺 \"On\" blinkar sk酺men till ist鄟let f顤 att klockan ringer"
+
+#: info/variables.c:49
+msgid "When \"On\", errors cause the bell to ring"
+msgstr "N酺 detta 酺 \"On\" g顤 fel att klockan ringer"
+
+#: info/variables.c:53
+msgid "When \"On\", Info garbage collects files which had to be uncompressed"
+msgstr "N酺 detta 酺 \"On\" skr鄡samlar Info filer som beh饘de packas upp"
+
+#: info/variables.c:56
+msgid "When \"On\", the portion of the matched search string is highlighted"
+msgstr "N酺 detta 酺 \"On\" markeras delen av den matchade s闥str鄚gen"
+
+#: info/variables.c:60
+msgid "Controls what happens when scrolling is requested at the end of a node"
+msgstr "Styr vad som h鄚der d rullning beg酺s i slutet p en nod"
+
+#: info/variables.c:64
+msgid "The number lines to scroll when the cursor moves out of the window"
+msgstr "Antalet rader att rulla d mark顤en flyttas utanf顤 f霵stret"
+
+#: info/variables.c:68
+msgid "When \"On\", Info accepts and displays ISO Latin characters"
+msgstr "N酺 detta 酺 \"On\" accepterar och visar Info ISO Latin-tecken"
+
+#: info/variables.c:74
+msgid "Explain the use of a variable"
+msgstr "F顤klara anv鄚dandet av en variabel"
+
+#: info/variables.c:80
+msgid "Describe variable: "
+msgstr "Beskriv variabel: "
+
+#: info/variables.c:99
+msgid "Set the value of an Info variable"
+msgstr "St鄟l in v酺det p en Info-variabel"
+
+#: info/variables.c:105
+msgid "Set variable: "
+msgstr "St鄟l in variabel: "
+
+#: info/variables.c:123
+#, c-format
+msgid "Set %s to value (%d): "
+msgstr "St鄟l in %s till v酺det (%d): "
+
+#: info/variables.c:164
+#, c-format
+msgid "Set %s to value (%s): "
+msgstr "St鄟l in %s till v酺det (%s): "
+
+#: info/window.c:1164
+msgid "--*** Tags out of Date ***"
+msgstr "--*** F顤 gamla taggar ***"
+
+#: info/window.c:1175
+msgid "-----Info: (), lines ----, "
+msgstr "-----Info: (), rader ----, "
+
+#: info/window.c:1182
+#, c-format
+msgid "-%s---Info: %s, %d lines --%s--"
+msgstr "-%s---Info: %s, %d rader --%s--"
+
+#: info/window.c:1186
+#, c-format
+msgid "-%s%s-Info: (%s)%s, %d lines --%s--"
+msgstr "-%s%s-Info: (%s)%s, %d rader --%s--"
+
+#: info/window.c:1193
+#, c-format
+msgid " Subfile: %s"
+msgstr " Underfil: %s"
+
+#: lib/getopt.c:675
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: flaggan \"%s\" 酺 flertydig\n"
+
+#: lib/getopt.c:700
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s: flaggan \"--%s\" till廞er inget argument\n"
+
+#: lib/getopt.c:705
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr "%s: flaggan \"%c%s\" till廞er inget argument\n"
+
+#: lib/getopt.c:723 lib/getopt.c:896
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr "%s: flaggan \"%s\" kr銥er ett argument\n"
+
+#: lib/getopt.c:752
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: ok鄚d flagga \"--%s\"\n"
+
+#: lib/getopt.c:756
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: ok鄚d flagga \"%c%s\"\n"
+
+#: lib/getopt.c:782
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: otill廞en flagga -- %c\n"
+
+#: lib/getopt.c:785
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr "%s: ogiltig flagga -- %c\n"
+
+#: lib/getopt.c:815 lib/getopt.c:945
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr "%s: flaggan kr銥er ett argument -- %c\n"
+
+#: lib/getopt.c:862
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr "%s: flaggan \"-W %s\" 酺 flertydig\n"
+
+#: lib/getopt.c:880
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr "%s: flaggan \"-W %s\" till廞er inget argument\n"
+
+# 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:515
+msgid "January"
+msgstr "januari"
+
+#: makeinfo/cmds.c:515
+msgid "February"
+msgstr "februari"
+
+#: makeinfo/cmds.c:515
+msgid "March"
+msgstr "mars"
+
+#: makeinfo/cmds.c:515
+msgid "April"
+msgstr "april"
+
+#: makeinfo/cmds.c:515
+msgid "May"
+msgstr "maj"
+
+#: makeinfo/cmds.c:516
+msgid "June"
+msgstr "juni"
+
+#: makeinfo/cmds.c:516
+msgid "July"
+msgstr "juli"
+
+#: makeinfo/cmds.c:516
+msgid "August"
+msgstr "augusti"
+
+#: makeinfo/cmds.c:516
+msgid "September"
+msgstr "september"
+
+#: makeinfo/cmds.c:516
+msgid "October"
+msgstr "oktober"
+
+#: makeinfo/cmds.c:517
+msgid "November"
+msgstr "november"
+
+#: makeinfo/cmds.c:517
+msgid "December"
+msgstr "december"
+
+#: makeinfo/cmds.c:658
+#, c-format
+msgid "unlikely character %c in @var"
+msgstr "osannolikt tecken %c i @var"
+
+#: makeinfo/cmds.c:701
+msgid "@sc argument all uppercase, thus no effect"
+msgstr ""
+"@sc-argumentet 酺 enbart med stora bokst銥er, d酺f顤 har det ingen effekt"
+
+#: makeinfo/cmds.c:759
+#, c-format
+msgid "`{' expected, but saw `%c'"
+msgstr "\"{\" f顤v鄚tades, men s嶓 \"%c\""
+
+#: makeinfo/cmds.c:789
+msgid "end of file inside verb block"
+msgstr "filslut inuti verb-block"
+
+#: makeinfo/cmds.c:797
+#, c-format
+msgid "`}' expected, but saw `%c'"
+msgstr "\"}\" f顤v鄚tades, men s嶓 \"%c\""
+
+#: makeinfo/cmds.c:942
+#, c-format
+msgid "%c%s is obsolete"
+msgstr "%c%s 酺 f顤嶚drat"
+
+#: makeinfo/cmds.c:1014
+#, c-format
+msgid "@sp requires a positive numeric argument, not `%s'"
+msgstr "@sp kr銥er ett positivt numeriskt argument, inte \"%s\""
+
+#: makeinfo/cmds.c:1348 makeinfo/cmds.c:1374 makeinfo/footnote.c:81
+#, c-format
+msgid "Bad argument to %c%s"
+msgstr "Felaktigt argument till %c%s"
+
+#: makeinfo/cmds.c:1358 makeinfo/makeinfo.c:4140
+msgid "asis"
+msgstr "of顤鄚drad"
+
+#: makeinfo/cmds.c:1360 makeinfo/makeinfo.c:4142
+msgid "none"
+msgstr "ingen"
+
+#: makeinfo/defun.c:85
+msgid "Missing `}' in @def arg"
+msgstr "\"}\" saknas i @def-argumentet"
+
+#: makeinfo/defun.c:363
+msgid "Function"
+msgstr "Funktion"
+
+#: makeinfo/defun.c:366
+msgid "Macro"
+msgstr "Makro"
+
+#: makeinfo/defun.c:369
+msgid "Special Form"
+msgstr "Specialform"
+
+#: makeinfo/defun.c:373
+msgid "Variable"
+msgstr "Variabel"
+
+#: makeinfo/defun.c:376
+msgid "User Option"
+msgstr "Anv鄚darflagga"
+
+#: makeinfo/defun.c:380
+msgid "Instance Variable"
+msgstr "Instansvariabel"
+
+#: makeinfo/defun.c:384
+msgid "Method"
+msgstr "Metod"
+
+#: makeinfo/defun.c:466 makeinfo/defun.c:470 makeinfo/defun.c:615
+#: makeinfo/defun.c:631 makeinfo/defun.c:671
+msgid "of"
+msgstr "av"
+
+#: makeinfo/defun.c:474 makeinfo/defun.c:478 makeinfo/defun.c:482
+#: makeinfo/defun.c:624 makeinfo/defun.c:676
+msgid "on"
+msgstr "p"
+
+#: makeinfo/defun.c:717
+#, c-format
+msgid "Must be in `%s' insertion to use `%sx'"
+msgstr "M廛te vara i \"%s\"-ins酹tningen f顤 att anv鄚da \"%sx\""
+
+#: makeinfo/files.c:448
+#, c-format
+msgid "%s: getwd: %s, %s\n"
+msgstr "%s: getwd: %s, %s\n"
+
+#: makeinfo/footnote.c:150
+#, c-format
+msgid "`%c%s' needs an argument `{...}', not just `%s'"
+msgstr "\"%c%s\" beh饘er ett argument \"{...}\", inte bara \"%s\""
+
+#: makeinfo/footnote.c:165
+#, c-format
+msgid "No closing brace for footnote `%s'"
+msgstr "Ingen avslutande klammer f顤 fotnoten \"%s\""
+
+#: makeinfo/footnote.c:198
+msgid "Footnote defined without parent node"
+msgstr "Fotnoten definierad utan f顤鄟dernod"
+
+#: makeinfo/footnote.c:210
+msgid "Footnotes inside footnotes are not allowed"
+msgstr "Fotnoter inuti fotnoter 酺 inte till廞et"
+
+#: makeinfo/footnote.c:298
+msgid "Footnotes"
+msgstr "Fotnoter"
+
+#: makeinfo/html.c:42
+msgid "Untitled"
+msgstr "Namnl飉"
+
+#: makeinfo/html.c:298
+#, c-format
+msgid "Invalid node name: `%s'"
+msgstr "Ogiltigt nodnamn: \"%s\""
+
+#: makeinfo/index.c:213
+#, c-format
+msgid "Unknown index `%s'"
+msgstr "Ok鄚t index \"%s\""
+
+#: makeinfo/index.c:238
+#, c-format
+msgid "Info cannot handle `:' in index entry `%s'"
+msgstr "Info kan inte hantera \":\" i indexposten \"%s\""
+
+#: makeinfo/index.c:396
+#, c-format
+msgid "Index `%s' already exists"
+msgstr "Indexet \"%s\" finns redan"
+
+#: makeinfo/index.c:439
+#, c-format
+msgid "Unknown index `%s' and/or `%s' in @synindex"
+msgstr "Ok鄚t index \"%s\" och/eller \"%s\" i @synindex"
+
+#: makeinfo/index.c:666
+#, c-format
+msgid "Unknown index `%s' in @printindex"
+msgstr "Ok鄚t index \"%s\" i @printindex"
+
+#: makeinfo/index.c:709
+#, c-format
+msgid "Entry for index `%s' outside of any node"
+msgstr "Posten f顤 index \"%s\" 酺 utanf顤 alla noder"
+
+#: makeinfo/index.c:712 makeinfo/index.c:751
+msgid "(outside of any node)"
+msgstr "(utanf顤 alla noder)"
+
+#: makeinfo/insertion.c:198
+msgid "Broken-Type in insertion_type_pname"
+msgstr "Felaktig typ i insertion_type_pname"
+
+#: makeinfo/insertion.c:271
+msgid "Enumeration stack overflow"
+msgstr "Uppr鄢ningsstacken har fl鐰at 饘er"
+
+#: makeinfo/insertion.c:303
+#, c-format
+msgid "lettering overflow, restarting at %c"
+msgstr "bokstaveringen har fl鐰at 饘er, startar om vid %c"
+
+#: makeinfo/insertion.c:538
+#, c-format
+msgid "%s requires an argument: the formatter for %citem"
+msgstr "%s kr銥er ett argument: formateraren f顤 %citem"
+
+#: makeinfo/insertion.c:693
+#, c-format
+msgid "`@end' expected `%s', but saw `%s'"
+msgstr "\"@end\" f顤v鄚tade \"%s\", men s嶓 \"%s\""
+
+#: makeinfo/insertion.c:931
+#, c-format
+msgid "No matching `%cend %s'"
+msgstr "Inget matchande \"%cend %s\""
+
+#: makeinfo/insertion.c:1084
+#, c-format
+msgid "%s requires letter or digit"
+msgstr "%s kr銥er bokstav eller siffra"
+
+#: makeinfo/insertion.c:1158
+msgid "end of file inside verbatim block"
+msgstr "filslut inuti bokstavligt block"
+
+#: makeinfo/insertion.c:1318
+msgid "@menu seen before first @node, creating `Top' node"
+msgstr "@menu s嶓s innan f顤sta @node, skapar \"Top\"-nod"
+
+#: makeinfo/insertion.c:1319
+msgid ""
+"perhaps your @top node should be wrapped in @ifnottex rather than @ifinfo?"
+msgstr "din @top-nod ska kanske packas i @ifnottex ist鄟let f顤 @ifinfo?"
+
+#: makeinfo/insertion.c:1331
+msgid "@detailmenu seen before first node, creating `Top' node"
+msgstr "@detailmenu s嶓s innan f顤sta noden, skapar \"Top\"-nod"
+
+#: makeinfo/insertion.c:1346
+#, c-format
+msgid "Unmatched `%c%s'"
+msgstr "Ensamt \"%c%s\""
+
+#: makeinfo/insertion.c:1353
+#, c-format
+msgid "`%c%s' needs something after it"
+msgstr "\"%c%s\" kr銥er n嶓onting efter sig"
+
+#: makeinfo/insertion.c:1359
+#, c-format
+msgid "Bad argument to `%s', `%s', using `%s'"
+msgstr "Felaktigt argument till \"%s\", \"%s\", anv鄚der \"%s\""
+
+#: makeinfo/insertion.c:1453
+#, c-format
+msgid "@%s not meaningful inside `@%s' block"
+msgstr "@%s 酺 inte meningsfullt inuti \"@%s\"-block"
+
+#: makeinfo/insertion.c:1462
+#, c-format
+msgid "@itemx not meaningful inside `%s' block"
+msgstr "@itemx 酺 inte meningsfullt inuti \"%s\"-block"
+
+#: makeinfo/insertion.c:1646
+#, c-format
+msgid "%c%s found outside of an insertion block"
+msgstr "%c%s hittades utanf顤 ett ins酹tningsblock"
+
+#: makeinfo/lang.c:331
+#, c-format
+msgid "%s is not a valid ISO 639 language code"
+msgstr "%s 酺 inte en giltig landskod enligt ISO 639"
+
+#: makeinfo/lang.c:384
+#, c-format
+msgid "unrecogized encoding name `%s'"
+msgstr "ok鄚d kodningsnamn \"%s\""
+
+#: makeinfo/lang.c:387
+#, c-format
+msgid "sorry, encoding `%s' not supported"
+msgstr "tyv酺r, kodningen \"%s\" st鐰s inte"
+
+#: makeinfo/lang.c:414
+#, c-format
+msgid "invalid encoded character `%s'"
+msgstr "ogiltigt kodat tecken \"%s\""
+
+#: makeinfo/lang.c:502
+#, c-format
+msgid "%s is an invalid ISO code, using %c"
+msgstr "%s 酺 en ogiltig ISO-kod, anv鄚der %c"
+
+#: makeinfo/lang.c:687
+#, c-format
+msgid "%c%s expects `i' or `j' as argument, not `%c'"
+msgstr "%c%s f顤v鄚tar \"i\" eller \"j\" som argument, inte \"%c\""
+
+#: makeinfo/lang.c:691
+#, c-format
+msgid "%c%s expects a single character `i' or `j' as argument"
+msgstr "%c%s f顤v鄚tar ett ensamt tecken \"i\" eller \"j\" som argument"
+
+#: makeinfo/macro.c:134
+#, c-format
+msgid "macro `%s' previously defined"
+msgstr "makrot \"%s\" 酺 redan definierat"
+
+#: makeinfo/macro.c:138
+#, c-format
+msgid "here is the previous definition of `%s'"
+msgstr "h酺 酺 den tidigare definitionen av \"%s\""
+
+#: makeinfo/macro.c:355
+#, c-format
+msgid "\\ in macro expansion followed by `%s' instead of \\ or parameter name"
+msgstr ""
+"\\ i makrout闥ning f闤jdes av \"%s\" ist鄟let f顤 \\ eller parameternamn"
+
+#: makeinfo/macro.c:403
+#, c-format
+msgid "Macro `%s' called on line %d with too many args"
+msgstr "Makrot \"%s\" anropades p rad %d med f顤 m幩ga argument"
+
+#: makeinfo/macro.c:594
+#, c-format
+msgid "%cend macro not found"
+msgstr "Makrot %cend hittades inte"
+
+#: makeinfo/macro.c:632
+msgid "@quote-arg only useful for single-argument macros"
+msgstr "@quote-arg 酺 endast anv鄚dbart f顤 makron med ett argument"
+
+#: makeinfo/macro.c:668
+#, c-format
+msgid "mismatched @end %s with @%s"
+msgstr "@end %s och @%s passar inte"
+
+#: makeinfo/makeinfo.c:316
+#, c-format
+msgid "%s:%d: warning: "
+msgstr "%s:%d: varning: "
+
+#: makeinfo/makeinfo.c:339
+msgid "Too many errors! Gave up.\n"
+msgstr "F顤 m幩ga fel! Gav upp.\n"
+
+#: makeinfo/makeinfo.c:350 makeinfo/makeinfo.c:2026
+#, c-format
+msgid "Misplaced %c"
+msgstr "Felplacerat %c"
+
+#: makeinfo/makeinfo.c:370
+#, c-format
+msgid "Try `%s --help' for more information.\n"
+msgstr "Prova \"%s --help\" f顤 mer information.\n"
+
+#: makeinfo/makeinfo.c:373
+#, c-format
+msgid "Usage: %s [OPTION]... TEXINFO-FILE...\n"
+msgstr "Anv鄚dning: %s [FLAGGA]... TEXINFO-FIL...\n"
+
+#: makeinfo/makeinfo.c:376
+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 ""
+"琌ers酹t Texinfo-k鄟ldokumentation till diverse andra format, som standard\n"
+"infofiler som 酺 l鄝pliga f顤 l酲ning med Emacs eller GNU Info.\n"
+
+#: makeinfo/makeinfo.c:380
+#, c-format
+msgid ""
+"General options:\n"
+" --error-limit=NUM quit after NUM errors (default %d).\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"
+" --reference-limit=NUM warn about at most NUM references (default %"
+"d).\n"
+" -v, --verbose explain what is being done.\n"
+" --version display version information and exit.\n"
+msgstr ""
+"Allm鄚na flaggor:\n"
+" --error-limit=ANTAL avsluta efter ANTAL fel (standardv酺de %d).\n"
+" --force bevara utdata 銥en om fel.\n"
+" --help visa denna hj鄟ptext och avsluta.\n"
+" --no-validate undertryck korsreferensvalidering av noder.\n"
+" --no-warn undertryck varningar (men inte fel).\n"
+" --reference-limit=ANTAL varna vid som mest ANTAL referenser\n"
+" (standardv酺de %d).\n"
+" -v, --verbose f顤klara vad som g顤s.\n"
+" --version visa versionsinformation och avsluta.\n"
+
+#: makeinfo/makeinfo.c:394
+#, no-wrap
+msgid ""
+"Output format selection (default is to produce Info):\n"
+" --docbook output DocBook rather than Info.\n"
+" --html output HTML rather than Info.\n"
+" --xml output XML (TexinfoML) rather than Info.\n"
+msgstr ""
+"Val av utdataformat (standard 酺 att producera Info):\n"
+" --docbook generera DocBook ist鄟let f顤 Info.\n"
+" --html generera HTML ist鄟let f顤 Info.\n"
+" --xml generera XML (TexinfoML) ist鄟let f顤 Info.\n"
+
+#: makeinfo/makeinfo.c:401
+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 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 (directory if split HTML),\n"
+msgstr ""
+"Allm鄚na utdataflaggor:\n"
+" -E, --macro-expand FIL generera makroexpanderad k鄟lkod till FIL,\n"
+" ignorera alla @setfilename.\n"
+" --no-headers undertryck nodseparatorer, Node:-rader och\n"
+" menyer fr幩 Info-utdata (och skapa d酺igenom\n"
+" vanlig text) eller fr幩 HTML (och producera\n"
+" d酺igenom kortare utdata). Skriv 銥en till\n"
+" 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:415
+#, c-format
+msgid ""
+"Options for Info and plain text:\n"
+" --enable-encoding output accented and special characters in\n"
+" Info output based on @documentencoding.\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\n"
+" in which they are defined (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顤 Info och vanlig text:\n"
+" --enable-encoding generera tecken med accent och specialtecken\n"
+" i Info-utdata baserat p @documentencoding.\n"
+" --fill-column=ANTAL radbryt Info-rader vid ANTAL tecken\n"
+" (standardv酺de %d).\n"
+" --footnote-style=STIL generera fotnoter i Info som f闤jer STIL:\n"
+" \"separate\" f顤 att placera fotnoter i sin\n"
+" egen nod,\n"
+" \"end\" f顤 att placera fotnoter i slutet\n"
+" av den nod d酺 de 酺 definierade\n"
+" (standardalternativ).\n"
+" --paragraph-indent=V麗DE g顤 indrag i Info-stycken med V麗DE\n"
+" blanksteg (standardv酺de %d).\n"
+" Om V麗DE 酺 \"none\" g顤s inga indrag; om\n"
+" V麗DE 酺 \"asis\" bevaras befintliga\n"
+" indrag.\n"
+" --split-size=ANTAL dela upp Info-filer vid storleken ANTAL\n"
+" (standardv酺de %d).\n"
+
+#: makeinfo/makeinfo.c:433
+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顤 indatafil:\n"
+" --commands-in-node-names till廞 @-kommandon i nodnamn.\n"
+" -D VARIABEL definiera variabeln VARIABEL, som med "
+"@set.\n"
+" -I KATALOG l輍g till KATALOG till @include-s闥v輍en.\n"
+" -P KATALOG l輍g till KATALOG f顤st i @include-"
+"s闥v輍en.\n"
+" -U VARIABEL odefiniera variabeln VARIABEL, som med "
+"@clear.\n"
+
+#: makeinfo/makeinfo.c:442
+#, fuzzy
+msgid ""
+"Conditional processing in input:\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"
+" --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"
+msgstr ""
+"Villkorlig behandling i indata:\n"
+" --ifhtml behandla @ifhtml och @html 銥en om inte HTML genereras.\n"
+" --ifinfo behandla @ifinfo-text 銥en om HTML genereras.\n"
+" --iftex behandla @iftex och @tex-text; medf顤 --no-split.\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"
+
+#: 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"
+msgstr ""
+" Standardv酺dena f顤 @if...-villkoren beror p utdataformatet:\n"
+" om HTML genereras 酺 --ifhtml p och de andra av;\n"
+" om Info eller vanlig text genereras 酺 --ifinfo p och de andra av.\n"
+
+#: makeinfo/makeinfo.c:461
+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 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 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"
+
+#: makeinfo/makeinfo.c:570 makeinfo/makeinfo.c:593 makeinfo/makeinfo.c:655
+#: makeinfo/makeinfo.c:676
+#, c-format
+msgid "%s: %s arg must be numeric, not `%s'.\n"
+msgstr "%s: argumentet %s m廛te vara numeriskt, inte \"%s\".\n"
+
+#: makeinfo/makeinfo.c:583
+#, c-format
+msgid "Couldn't open macro expansion output `%s'"
+msgstr "Kunde inte 鞿pna makroexpansionsutdata \"%s\""
+
+#: makeinfo/makeinfo.c:586
+msgid "Cannot specify more than one macro expansion output"
+msgstr "Kan inte ange mer 鄚 en makroexpansionsutdata"
+
+#: makeinfo/makeinfo.c:624
+#, c-format
+msgid "%s: --paragraph-indent arg must be numeric/`none'/`asis', not `%s'.\n"
+msgstr ""
+"%s: argumentet --paragraph-indent m廛te vara numeriskt/\"none\"/\"asis\", "
+"inte \"%s\".\n"
+
+#: makeinfo/makeinfo.c:665
+#, c-format
+msgid "%s: --footnote-style arg must be `separate' or `end', not `%s'.\n"
+msgstr ""
+"%s: argumentet --footnote-style m廛te vara \"separate\" eller \"end\", inte "
+"\"%s\".\n"
+
+#: makeinfo/makeinfo.c:723
+#, c-format
+msgid "%s: missing file argument.\n"
+msgstr "%s: filargument saknas.\n"
+
+#: makeinfo/makeinfo.c:898
+#, c-format
+msgid "Expected `%s'"
+msgstr "\"%s\" f顤v鄚tades"
+
+#: makeinfo/makeinfo.c:1365
+msgid "File exists, but is not a directory"
+msgstr "Filen finns men 酺 ingen katalog"
+
+#: makeinfo/makeinfo.c:1366
+#, c-format
+msgid "Can't create directory `%s': %s"
+msgstr "Kan inte skapa katalogen \"%s\": %s"
+
+#: makeinfo/makeinfo.c:1414
+#, c-format
+msgid "No `%s' found in `%s'"
+msgstr "Inget \"%s\" hittades i \"%s\""
+
+#: makeinfo/makeinfo.c:1496
+#, c-format
+msgid "%s: Skipping macro expansion to stdout as Info output is going there.\n"
+msgstr ""
+"%s: Hoppar 饘er makroexpansionen till standard ut eftersom Info-utdatan g緳 "
+"dit.\n"
+
+# printf (_("Making %s file `%s' from `%s'.\n"),
+# no_headers ? "text" : (html ? "HTML" : "info"),
+# output_filename, input_filename);
+#
+#: makeinfo/makeinfo.c:1526
+#, c-format
+msgid "Making %s file `%s' from `%s'.\n"
+msgstr "Skapar %s-fil \"%s\" fr幩 \"%s\".\n"
+
+#: makeinfo/makeinfo.c:1561
+#, c-format
+msgid "This is %s, produced by makeinfo version %s from %s.\n"
+msgstr "Detta 酺 %s, skapad av makeinfo version %s fr幩 %s.\n"
+
+#: makeinfo/makeinfo.c:1583
+#, 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鄚d --force f顤 att "
+"bevara.\n"
+
+#: makeinfo/makeinfo.c:1627
+#, 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鄚d --force f顤 att "
+"bevara.\n"
+
+#: makeinfo/makeinfo.c:1853
+#, c-format
+msgid "Unknown command `%s'"
+msgstr "Ok鄚t kommando \"%s\""
+
+#: makeinfo/makeinfo.c:1875
+#, c-format
+msgid "Use braces to give a command as an argument to @%s"
+msgstr "Anv鄚d klamrar f顤 att ge ett komamndo som ett argument till @%s"
+
+#: makeinfo/makeinfo.c:2068
+#, c-format
+msgid "%c%s expected `{...}'"
+msgstr "%c%s f顤v鄚tades \"{...}\""
+
+#: makeinfo/makeinfo.c:2098
+msgid "Unmatched }"
+msgstr "Ensam }"
+
+#: makeinfo/makeinfo.c:2148
+msgid "NO_NAME!"
+msgstr "INGET_NAMN!"
+
+#: makeinfo/makeinfo.c:2169
+#, c-format
+msgid "%c%s missing close brace"
+msgstr "%c%s saknar avslutande klammer"
+
+#: makeinfo/makeinfo.c:2958
+msgid "First argument to cross-reference may not be empty"
+msgstr "F顤sta argumentet till korsreferens kan inte vara tomt"
+
+#: makeinfo/makeinfo.c:3018 makeinfo/makeinfo.c:3236 makeinfo/xml.c:1340
+msgid "see "
+msgstr "se "
+
+#: makeinfo/makeinfo.c:3018
+msgid "See "
+msgstr "Se "
+
+#: makeinfo/makeinfo.c:3164
+#, c-format
+msgid "`.' or `,' must follow cross reference, not %c"
+msgstr "\".\" eller \",\" m廛te f闤ja p korsreferens, inte %c"
+
+#: makeinfo/makeinfo.c:3212
+msgid "First argument to @inforef may not be empty"
+msgstr "F顤sta argumentet till @inforef kan inte vara tomt"
+
+#: makeinfo/makeinfo.c:3427
+#, c-format
+msgid "@image file `%s' (for HTML) not readable: %s"
+msgstr "@image-filen \"%s\" (f顤 HTML) 酺 ol酲lig: %s"
+
+#: makeinfo/makeinfo.c:3440
+#, c-format
+msgid "No `%s.png' or `.jpg', and no extension supplied"
+msgstr "Ingen \"%s.png\" eller \".jpg\" och ingen fil鄚delse angiven"
+
+#: makeinfo/makeinfo.c:3490
+#, c-format
+msgid "@image file `%s' (for text) unreadable: %s"
+msgstr "@image-filen \"%s\" (f顤 text) 酺 ol酲lig: %s"
+
+#: makeinfo/makeinfo.c:3497
+msgid "@image missing filename argument"
+msgstr "@image saknar filnamnsargument"
+
+#: makeinfo/makeinfo.c:3690
+#, c-format
+msgid "{No value for `%s'}"
+msgstr "{Inget v酺de f顤 \"%s\"}"
+
+#: makeinfo/makeinfo.c:3744
+#, c-format
+msgid "%c%s requires a name"
+msgstr "%c%s kr銥er ett namn"
+
+#: makeinfo/makeinfo.c:3850
+#, c-format
+msgid "Reached eof before matching @end %s"
+msgstr "N嶟de filslut innan matchande @end %s"
+
+#: makeinfo/makeinfo.c:4081
+#, c-format
+msgid "`%.40s...' is too long for expansion; not expanded"
+msgstr "\"%.40s...\" 酺 f顤 l幩g f顤 expansion; inte expanderad"
+
+#: makeinfo/multi.c:226
+msgid "Missing } in @multitable template"
+msgstr "Ett } saknas i @multitable-mall"
+
+#: makeinfo/multi.c:302
+#, c-format
+msgid "ignoring stray text `%s' after @multitable"
+msgstr "ignorerar l飉 text \"%s\" efter @multitable"
+
+#: makeinfo/multi.c:375
+#, c-format
+msgid "Too many columns in multitable item (max %d)"
+msgstr "F顤 m幩ga kolumner i multitabellsobjekt (max %d)"
+
+#: makeinfo/multi.c:426
+#, c-format
+msgid "Cannot select column #%d in multitable"
+msgstr "Kan inte v鄟ja kolumn %d i multitabell"
+
+#: makeinfo/multi.c:529
+msgid "ignoring @tab outside of multitable"
+msgstr "ignorerar @tab utanf顤 multitabell"
+
+#: makeinfo/multi.c:565
+msgid "** Multicolumn output from last row:\n"
+msgstr "** Utdata p flera kolumner fr幩 senaste raden:\n"
+
+#: makeinfo/multi.c:568
+#, c-format
+msgid "* column #%d: output = %s\n"
+msgstr "* kolumn %d: utdata = %s\n"
+
+#: makeinfo/node.c:276
+#, c-format
+msgid "Node `%s' previously defined at line %d"
+msgstr "Noden \"%s\" 酺 tidigare definierad p rad %d"
+
+#: makeinfo/node.c:594
+#, c-format
+msgid "Formatting node %s...\n"
+msgstr "Formaterar noden %s...\n"
+
+#: makeinfo/node.c:655
+#, c-format
+msgid "Node `%s' requires a sectioning command (e.g. %c%s)"
+msgstr "Noden \"%s\" kr銥er ett avsnittskommando (t.ex. %c%s)"
+
+#: makeinfo/node.c:815
+#, c-format
+msgid "No node name specified for `%c%s' command"
+msgstr "Inget nodnamn angivet f顤 kommandot \"%c%s\""
+
+#: makeinfo/node.c:856 makeinfo/node.c:1075
+#, 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:859
+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:861 makeinfo/node.c:1078
+msgid "Rename this anchor or use the `--no-split' option"
+msgstr "Byt namn p detta ankare eller anv鄚d flaggan \"--no-split\""
+
+#: makeinfo/node.c:891
+#, c-format
+msgid "Unexpected string at end of split-HTML file `%s'"
+msgstr "Ov鄚tad str鄚g vid slutet p den delade HTML-filen \"%s\""
+
+#: makeinfo/node.c:920
+msgid "Node:"
+msgstr "Nod:"
+
+# src/menus.c:332
+#: makeinfo/node.c:930
+msgid "Next:"
+msgstr "N酲ta:"
+
+#: makeinfo/node.c:940
+msgid "Previous:"
+msgstr "F顤eg嶒nde:"
+
+#: makeinfo/node.c:950
+msgid "Up:"
+msgstr "Upp:"
+
+#: makeinfo/node.c:1072
+#, 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:1077
+msgid "@anchor command ignored; references to it will not work"
+msgstr ""
+"@anchor-kommandot ignoreras; referenser till det kommer inte att fungera"
+
+#: makeinfo/node.c:1277
+#, c-format
+msgid "%s reference to nonexistent node `%s'"
+msgstr "%s-referens till ickeexisterande noden \"%s\""
+
+#: makeinfo/node.c:1294
+msgid "Menu"
+msgstr "Meny"
+
+#: makeinfo/node.c:1296
+msgid "Cross"
+msgstr "Kors"
+
+#: makeinfo/node.c:1380
+#, c-format
+msgid "Next field of node `%s' not pointed to"
+msgstr "N酲ta f鄟t i noden \"%s\" pekas inte till"
+
+#: makeinfo/node.c:1383
+#, c-format
+msgid "This node (%s) has the bad Prev"
+msgstr "Denna nod (%s) har den felaktiga f顤eg嶒nde-noden"
+
+#: makeinfo/node.c:1395
+msgid "Prev"
+msgstr "F顤eg"
+
+#: makeinfo/node.c:1438
+#, c-format
+msgid "Prev field of node `%s' not pointed to"
+msgstr "F顤eg嶒nde-f鄟tet i noden \"%s\" pekas inte till"
+
+#: makeinfo/node.c:1442
+#, c-format
+msgid "This node (%s) has the bad Next"
+msgstr "Denna nod (%s) har den felaktiga n酲ta-noden"
+
+#: makeinfo/node.c:1454
+#, c-format
+msgid "`%s' has no Up field"
+msgstr "\"%s\" har inget upp-f鄟t"
+
+#: makeinfo/node.c:1457
+msgid "Up"
+msgstr "Upp"
+
+#: makeinfo/node.c:1523
+#, c-format
+msgid "Node `%s' lacks menu item for `%s' despite being its Up target"
+msgstr "Noden \"%s\" saknar menypost f顤 \"%s\" trots att den 酺 dess Upp-m嶚"
+
+#: makeinfo/node.c:1552
+#, c-format
+msgid "node `%s' has been referenced %d times"
+msgstr "noden \"%s\" har refererats %d g幩ger"
+
+#: makeinfo/node.c:1566
+#, c-format
+msgid "unreferenced node `%s'"
+msgstr "orefererad nod \"%s\""
+
+#: makeinfo/sectioning.c:117
+#, c-format
+msgid "Appendix %c "
+msgstr "Appendix %c "
+
+#: makeinfo/sectioning.c:356 makeinfo/sectioning.c:444
+#, c-format
+msgid "Internal error (search_sectioning) \"%s\"!"
+msgstr "Internt fel (search_sectioning) \"%s\"!"
+
+#: makeinfo/sectioning.c:502
+#, c-format
+msgid "%c%s is obsolete; use %c%s instead"
+msgstr "%c%s 酺 f顤嶚drat; anv鄚d %c%s ist鄟let"
+
+#: makeinfo/sectioning.c:518
+#, c-format
+msgid "Node with %ctop as a section already exists"
+msgstr "En nod med %ctop som en sektion finns redan"
+
+#: makeinfo/sectioning.c:526
+#, c-format
+msgid "Here is the %ctop node"
+msgstr "H酺 酺 %ctop-noden"
+
+#: makeinfo/sectioning.c:543
+#, c-format
+msgid "%ctop used before %cnode, defaulting to %s"
+msgstr "%ctop anv鄚des innan %cnode, anv鄚der %s som standard"
+
+#: makeinfo/toc.c:221 makeinfo/toc.c:298 makeinfo/toc.c:299
+msgid "Table of Contents"
+msgstr "Inneh嶚lsf顤teckning"
+
+#: makeinfo/toc.c:330 makeinfo/toc.c:366 makeinfo/toc.c:367
+msgid "Short Contents"
+msgstr "Kort inneh嶚lsf顤teckning"
+
+#: makeinfo/toc.c:406
+#, c-format
+msgid "%s: TOC should be here, but it was not found"
+msgstr "%s: Inneh嶚lsf顤teckningen skulle vara h酺, men hittades inte"
+
+#: makeinfo/xml.c:1108
+#, c-format
+msgid "@image file `%s' unreadable: %s"
+msgstr "@image-filen \"%s\" 酺 ol酲lig: %s"
+
+#: util/install-info.c:151
+#, c-format
+msgid "%s: warning: "
+msgstr "%s: varning: "
+
+#: util/install-info.c:176 util/install-info.c:189
+msgid "virtual memory exhausted"
+msgstr "virtuellt minne slut"
+
+# char *s = concat ("", strerror (errno), _(" for %s"));
+#
+#: util/install-info.c:232
+#, c-format
+msgid " for %s"
+msgstr " f顤 %s"
+
+#: util/install-info.c:381
+#, c-format
+msgid "\tTry `%s --help' for a complete list of options.\n"
+msgstr "\tProva \"%s --help\" f顤 en fullst鄚dig lista med flaggor.\n"
+
+#: util/install-info.c:389
+#, c-format
+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 ""
+"Anv鄚dning: %s [FLAGGA]... [INFO-FIL [KATALOGFIL]]\n"
+"\n"
+"Installera eller ta bort katalogposter fr幩 INFO-FIL i Info-katalogfilen\n"
+"KATALOGFIL.\n"
+"\n"
+"Flaggor:\n"
+" --delete ta bort existerande poster f顤 INFO-FIL fr幩 KATALOGFIL;\n"
+" infoga inte n嶓ra nya poster.\n"
+" --dir-file=NAMN ange filnamnet p Info-katalogfilen.\n"
+" Detta motsvarar anv鄚dning av argumentet KATALOGFIL.\n"
+" --entry=TEXT infoga TEXT som en Info-katalogpost.\n"
+" TEXT b顤 vara i formen av en Info-menypostsrad plus\n"
+" noll eller fler extra rader som b顤jar med tomrum.\n"
+" Om du anger mer 鄚 en post kommer alla att l輍gas\n"
+" till. Om du inte anger n嶓ra poster kommer de att\n"
+" avg顤as fr幩 information i sj鄟va Info-filen.\n"
+" --help visa denna hj鄟ptext och avsluta.\n"
+" --info-file=FIL ange Info-fil att installera i katalogen.\n"
+" Detta motsvarar anv鄚dning 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 酺 egentligen en menypost.\n"
+" --quiet undertryck varningar.\n"
+" --remove samma som --delete.\n"
+" --section=AVSNITT placera denna fils poster i avsnittet AVSNITT i\n"
+" katalogen. Om du anger mer 鄚 ett avsnitt kommer alla\n"
+" poster att l輍gas till i varje sektion. Om du inte\n"
+" anger n嶓ra avsnitt kommer de att best鄝mas fr幩\n"
+" information i sj鄟va Info-filen.\n"
+" --version visa versionsinformation och avsluta.\n"
+
+#: util/install-info.c:444
+#, 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"
+"* Menu:\n"
+msgstr ""
+"Detta 酺 filen .../info/dir som inneh嶚ler den 饘ersta noden i\n"
+"Info-hierarkin som kallas (kat)Top.\n"
+"F顤sta g幩gen du anv鄚der Info b顤jar du med denna nod.\n"
+"\n"
+"%s\tDetta 酺 饘ersta noden i INFO-tr輐et\n"
+"\n"
+" Denna nod (katalognoden) erbjuder en meny med huvudrubriker.\n"
+" Att skriva \"q\" avslutar, \"?\" visar alla Info-kommandon, \"d\"\n"
+" 廞erv鄚der hit, \"h\" visar en hj鄟p f顤 f顤stag幩gsanv鄚dare,\n"
+" \"mEmacs<Retur>\" bes闥er Emacs-manualen, osv.\n"
+"\n"
+" I Emacs kan du klicka med musknapp 2 p en menypost eller korsreferens\n"
+" f顤 att v鄟ja den.\n"
+"\n"
+"* Meny:\n"
+
+#: util/install-info.c:467
+#, c-format
+msgid "%s: could not read (%s) and could not create (%s)\n"
+msgstr "%s: kunde inte l酲a (%s) och kunde inte skapa (%s)\n"
+
+#: util/install-info.c:551
+#, c-format
+msgid "%s: empty file"
+msgstr "%s: tom fil"
+
+#: util/install-info.c:866 util/install-info.c:906
+msgid "START-INFO-DIR-ENTRY without matching END-INFO-DIR-ENTRY"
+msgstr "START-INFO-DIR-ENTRY utan matchande END-INFO-DIR-ENTRY"
+
+#: util/install-info.c:901
+msgid "END-INFO-DIR-ENTRY without matching START-INFO-DIR-ENTRY"
+msgstr "END-INFO-DIR-ENTRY utan matchande START-INFO-DIR-ENTRY"
+
+#: util/install-info.c:1150 util/install-info.c:1160
+#, c-format
+msgid "%s: Specify the Info directory only once.\n"
+msgstr "%s: Ange Info-katalogen endast en g幩g.\n"
+
+#: util/install-info.c:1195
+#, c-format
+msgid "%s: Specify the Info file only once.\n"
+msgstr "%s: Ange Info-filen endast en g幩g.\n"
+
+#: util/install-info.c:1244
+#, c-format
+msgid "excess command line argument `%s'"
+msgstr "f顤 m幩ga kommandoradsargument \"%s\""
+
+#: util/install-info.c:1248
+msgid "No input file specified; try --help for more information."
+msgstr "Ingen indatafil angiven; prova --help f顤 mer information."
+
+#: util/install-info.c:1251
+msgid "No dir file specified; try --help for more information."
+msgstr "Ingen katalogfil angiven; prova --help f顤 mer information."
+
+#: util/install-info.c:1273
+#, c-format
+msgid "no info dir entry in `%s'"
+msgstr "ingen info-katalogpost i \"%s\""
+
+#: util/install-info.c:1388
+#, c-format
+msgid "menu item `%s' already exists, for file `%s'"
+msgstr "menyposten \"%s\" finns redan, f顤 filen \"%s\""
+
+#: util/install-info.c:1411
+#, c-format
+msgid "no entries found for `%s'; nothing deleted"
+msgstr "inga poster hittades f顤 \"%s\"; ingenting togs bort"
+
+#: util/texindex.c:245
+msgid "display this help and exit"
+msgstr "visa denna hj鄟ptext och avsluta"
+
+#: util/texindex.c:247
+msgid "keep temporary files around after processing"
+msgstr "beh嶚l tempor酺a filer efter behandling"
+
+#: util/texindex.c:249
+msgid "do not keep temporary files around after processing (default)"
+msgstr "beh嶚l inte tempor酺a filer efter behandling (standardalternativ)"
+
+#: util/texindex.c:251
+msgid "send output to FILE"
+msgstr "skicka utdata till FIL"
+
+#: util/texindex.c:253
+msgid "display version information and exit"
+msgstr "visa versionsinformation och avsluta"
+
+#: util/texindex.c:264
+#, c-format
+msgid "Usage: %s [OPTION]... FILE...\n"
+msgstr "Anv鄚dning: %s [FLAGGA]... FIL...\n"
+
+#: util/texindex.c:265
+msgid "Generate a sorted index for each TeX output FILE.\n"
+msgstr "Generera ett sorterat index f顤 varje TeX-utdataFIL.\n"
+
+#: util/texindex.c:268
+#, 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顤 ett dokument \"apa.texi\".\n"
+
+#: util/texindex.c:270
+msgid ""
+"\n"
+"Options:\n"
+msgstr ""
+"\n"
+"Flaggor:\n"
+
+#: util/texindex.c:887 util/texindex.c:921 util/texindex.c:997
+#: util/texindex.c:1025
+#, c-format
+msgid "%s: not a texinfo index file"
+msgstr "%s: inte en texinfo-indexfil"
+
+#: util/texindex.c:982
+#, c-format
+msgid "failure reopening %s"
+msgstr "misslyckande vid 廞er鞿pnande av %s"
+
+#: util/texindex.c:1224
+#, c-format
+msgid "No page number in %s"
+msgstr "Inget sidnummer i %s"
+
+#: util/texindex.c:1295
+#, c-format
+msgid "entry %s follows an entry with a secondary name"
+msgstr "posten %s f闤jer p en post med ett sekund酺t namn"
+
+#: util/texindex.c:1633
+#, c-format
+msgid "%s; for file `%s'.\n"
+msgstr "%s; f顤 filen \"%s\".\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鄚na fr嶓or och diskussion till help-texinfo@gnu.org\n"
+#~ "och synpunkter p 饘ers酹tningen 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鄚dning: %s [FLAGGA]... TEXINFO-FIL...\n"
+#~ "\n"
+#~ "琌ers酹t Texinfo-k鄟ldokumentation till diverse andra format:\n"
+#~ "Info-filer som 酺 l鄝pliga f顤 l酲ning p sk酺m 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廞 @-kommandon i nodnamn.\n"
+#~ " -D VARIABEL definiera en variabel, som med @set.\n"
+#~ "--docbook generera DocBook ist鄟let f顤 Info-format.\n"
+#~ " -E, --macro-expand FIL generera makroexpanderad k鄟lkod 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顤 att placera fotnoter i sin\n"
+#~ " egen nod,\n"
+#~ " \"end\" f顤 att placera fotnoter i slutet av\n"
+#~ " den nod d酺 de 酺 definierade (standard).\n"
+#~ " --force bevara utdata 銥en om fel p廞r輎fas.\n"
+#~ " --help visa denna hj鄟ptext och avsluta.\n"
+#~ " --html generera HTML ist鄟let f顤 Info-format.\n"
+#~ " -I KATALOG l輍g till KATALOG till @include-s闥v輍en.\n"
+#~ " --ifhtml behandla @ifhtml- och @html-text 銥en om inte\n"
+#~ " HTML genereras.\n"
+#~ " --ifinfo behandla @ifinfo-text 銥en d HTML genereras.\n"
+#~ " --iftex behandla @iftex- och @tex-text.\n"
+#~ " medf顤 --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輍g till KATALOG till @include-s闥v輍en.\n"
+#~ " --paragraph-indent=V麗DE g顤 indrag i Info-stycken med V麗DE blanksteg\n"
+#~ " (standardv酺de %d).\n"
+#~ " om V麗DE 酺 \"none\" g顤s inget indrag;\n"
+#~ " om V麗DE 酺 \"asis\" bevaras befintlig "
+#~ "indragning.\n"
+#~ " --reference-limit=ANTAL varna om h鐷st ANTAL referenser\n"
+#~ " (standardv酺de %d).\n"
+#~ " --split-size=ANTAL dela i filer vid storleken ANTAL\n"
+#~ " (standardv酺de %d).\n"
+#~ " -U VARIABEL odefiniera en variabel, som med @clear.\n"
+#~ " -v, --verbose f顤klara vad som g顤s.\n"
+#~ " --version visa versionsinformation och avsluta.\n"
+#~ " --xml generera XML (TexinfoML) ist鄟let f顤 Info-"
+#~ "format.\n"
diff --git a/gnu/usr.bin/texinfo/po/zh_TW.gmo b/gnu/usr.bin/texinfo/po/zh_TW.gmo
new file mode 100644
index 00000000000..b06e41326c7
--- /dev/null
+++ b/gnu/usr.bin/texinfo/po/zh_TW.gmo
Binary files differ
diff --git a/gnu/usr.bin/texinfo/po/zh_TW.po b/gnu/usr.bin/texinfo/po/zh_TW.po
new file mode 100644
index 00000000000..8182698151c
--- /dev/null
+++ b/gnu/usr.bin/texinfo/po/zh_TW.po
@@ -0,0 +1,2954 @@
+# 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"
+"POT-Creation-Date: 2002-04-01 06:10-0800\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"
+
+#: info/echo-area.c:283 info/session.c:712
+msgid "Move forward a character"
+msgstr "向前移動一個字元"
+
+#: info/echo-area.c:295 info/session.c:728
+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:746
+msgid "Move forward a word"
+msgstr "向前移動一個字"
+
+#: info/echo-area.c:360 info/session.c:795
+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:497
+msgid "Insert a TAB character"
+msgstr "插入一個 TAB 字元"
+
+#: info/echo-area.c:504
+msgid "Transpose characters at point"
+msgstr "變換游標位置的字元的順序"
+
+#: info/echo-area.c:555
+msgid "Yank back the contents of the last kill"
+msgstr "貼入上一次剪下的內容"
+
+#: info/echo-area.c:562
+msgid "Kill ring is empty"
+msgstr "剪貼簿沒有內容"
+
+#: info/echo-area.c:575
+msgid "Yank back a previous kill"
+msgstr "貼上前次的剪下內容"
+
+#: info/echo-area.c:608
+msgid "Kill to the end of the line"
+msgstr "刪除至本行結尾, 並置入剪貼簿"
+
+#: info/echo-area.c:621
+msgid "Kill to the beginning of the line"
+msgstr "刪除至本行開頭, 並置入剪貼簿"
+
+#: info/echo-area.c:633
+msgid "Kill the word following the cursor"
+msgstr "刪除游標後的單字, 並置入剪貼簿"
+
+#: info/echo-area.c:652
+msgid "Kill the word preceding the cursor"
+msgstr "刪除游標前的單字, 並置入剪貼簿"
+
+#: info/echo-area.c:872 info/echo-area.c:932
+msgid "No completions"
+msgstr "沒有可能的完成句"
+
+#: info/echo-area.c:874
+msgid "Not complete"
+msgstr "未完成"
+
+#: info/echo-area.c:919
+msgid "List possible completions"
+msgstr "列出可能的完成句"
+
+#: info/echo-area.c:936
+msgid "Sole completion"
+msgstr "單一的完成句"
+
+#: info/echo-area.c:945
+msgid "One completion:\n"
+msgstr "一個完成句:\n"
+
+#: info/echo-area.c:946
+#, c-format
+msgid "%d completions:\n"
+msgstr "%d 個完成句:\n"
+
+#: info/echo-area.c:1092
+msgid "Insert completion"
+msgstr "插入完成句"
+
+#: info/echo-area.c:1225
+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
+#, fuzzy
+msgid "---------- Footnotes ----------"
+msgstr "---------------------\n"
+
+#: info/indices.c:175
+msgid "Look up a string in the index for this file"
+msgstr "在本檔案的索引內查詢字串"
+
+#: info/indices.c:205
+msgid "Finding index entries..."
+msgstr "找尋索引項目..."
+
+#: info/indices.c:212
+msgid "No indices found."
+msgstr "找不到索引"
+
+#: info/indices.c:222
+msgid "Index entry: "
+msgstr "索引項目: "
+
+#: info/indices.c:332
+msgid ""
+"Go to the next matching index item from the last `\\[index-search]' command"
+msgstr "移動至下一個符合上一次的 `\\[index-search] 命令的搜尋項目"
+
+#: info/indices.c:342
+msgid "No previous index search string."
+msgstr "沒有前一個索引搜尋字串"
+
+#: info/indices.c:349
+msgid "No index entries."
+msgstr "沒有索引項目."
+
+#: info/indices.c:382
+#, c-format
+msgid "No %sindex entries containing \"%s\"."
+msgstr "沒有 %s索引項目包含 \"%s\"."
+
+#: info/indices.c:383
+msgid "more "
+msgstr "更多的 "
+
+#: info/indices.c:393
+msgid "CAN'T SEE THIS"
+msgstr ""
+
+#: info/indices.c:429
+#, 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:603
+#, c-format
+msgid "No available info files have \"%s\" in their indices."
+msgstr ""
+
+#: info/indices.c:632
+msgid "Grovel all known info file's indices for a string and build a menu"
+msgstr "整理所有已知 info 檔中包含查詢字串的索引, 並建立一個選單"
+
+#: info/indices.c:636
+msgid "Index apropos: "
+msgstr ""
+
+#: info/indices.c:666
+#, c-format
+msgid ""
+"\n"
+"* Menu: Nodes whoses indices contain \"%s\":\n"
+msgstr ""
+"\n"
+"* Menu: 其索引中包含 \"%s\" 的節點:\n"
+
+#: info/info.c:260 info/infokey.c:884
+msgid "Try --help for more information.\n"
+msgstr "試試 --help 以取得更多的資訊.\n"
+
+#: info/info.c:279 info/infokey.c:139 makeinfo/makeinfo.c:689
+#: util/install-info.c:1224 util/texindex.c:338
+#, c-format
+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"
+"本軟體*不作任何保證*. 您可在 GNU 公共授權 \n"
+"(GNU General Public License) 的條款下散佈本軟體.\n"
+"欲知更多的詳情, 請看檔名為 COPYING 的檔案.\n"
+
+#: info/info.c:462
+#, c-format
+msgid "no index entries found for `%s'\n"
+msgstr "找不到包含 `%s' 的索引項目\n"
+
+#: info/info.c:555
+msgid " -b, --speech-friendly be friendly to speech synthesizers.\n"
+msgstr ""
+
+#: info/info.c:562
+#, fuzzy, c-format
+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 [OPTION]... [MENU-ITEM...]\n"
+"\n"
+"閱讀 Info 格式的文件.\n"
+"\n"
+"Options:\n"
+" --apropos=SUBJECT 在所有的手冊的索引中尋找 SUBJECT.\n"
+" --directory=DIR 將 DIR 加至 INFOPATH 中.\n"
+" --dribble=FILENAME 將使用者的按鍵記錄在 FILENAME 中.\n"
+" --file=FILENAME 指定拜訪的 Info 檔案.\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 --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"
+"\n"
+"程式臭蟲, 請以電子郵件 (英文) 回報至 bug-texinfo@gnu.org,\n"
+"一般問題與討論, 請以電子郵件 (英文) 寄到 help-texinfo@gnu.org.\n"
+
+#: info/info.c:598 info/infokey.c:903 makeinfo/makeinfo.c:474
+#: util/install-info.c:421 util/texindex.c:286
+#, 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"
+"程式臭蟲, 請以電子郵件 (英文) 回報至 bug-texinfo@gnu.org,\n"
+"一般問題與討論, 請以電子郵件 (英文) 寄到 help-texinfo@gnu.org.\n"
+
+#: info/info.c:632
+#, c-format
+msgid "Cannot find node `%s'."
+msgstr "找不到 `%s' 節點."
+
+#: info/info.c:633
+#, c-format
+msgid "Cannot find node `(%s)%s'."
+msgstr "找不到 `(%s)%s' 節點."
+
+#: info/info.c:634
+msgid "Cannot find a window!"
+msgstr "找不到分隔視窗!"
+
+#: info/info.c:635
+msgid "Point doesn't appear within this window's node!"
+msgstr "游標位置不在本分隔視窗的節點內!"
+
+#: info/info.c:636
+msgid "Cannot delete the last window."
+msgstr "無法刪除上一個分隔視窗."
+
+#: info/info.c:637
+msgid "No menu in this node."
+msgstr "本節點沒有選單."
+
+#: info/info.c:638
+msgid "No footnotes in this node."
+msgstr "本節點沒有註腳."
+
+#: info/info.c:639
+msgid "No cross references in this node."
+msgstr "本節點沒有交互參照."
+
+#: info/info.c:640
+#, c-format
+msgid "No `%s' pointer for this node."
+msgstr "本節點沒有 `%s' pointer."
+
+#: info/info.c:641
+#, c-format
+msgid "Unknown Info command `%c'; try `?' for help."
+msgstr "未知的 Info 命令 `%c'; 試試 `?' 以取得求助資訊."
+
+#: info/info.c:642
+#, c-format
+msgid "Terminal type `%s' is not smart enough to run Info."
+msgstr "終端機類型 `%s' 無法支援執行 Info 所需的需求."
+
+#: info/info.c:643
+msgid "You are already at the last page of this node."
+msgstr "您已在本節點的最後一頁."
+
+#: info/info.c:644
+msgid "You are already at the first page of this node."
+msgstr "您已在本節點的第一頁."
+
+#: info/info.c:645
+msgid "Only one window."
+msgstr "只有一個分隔視窗."
+
+#: info/info.c:646
+msgid "Resulting window would be too small."
+msgstr "產生的分隔視窗會太小."
+
+#: info/info.c:647
+msgid "Not enough room for a help window, please delete a window."
+msgstr "剩下的空間太小, 無法容納求助分隔視窗, 請刪除一個分隔視窗."
+
+#: info/infodoc.c:45 info/infodoc.c:94
+#, fuzzy
+msgid ""
+"Basic Commands in Info Windows\n"
+"******************************\n"
+msgstr "******************************\n"
+
+#: info/infodoc.c:48
+#, fuzzy
+msgid "\\%-10[quit-help] Quit this help.\n"
+msgstr " %-10s 結束本求助.\n"
+
+#: info/infodoc.c:49
+#, fuzzy
+msgid "\\%-10[quit] Quit Info altogether.\n"
+msgstr " %-10s 一併結束 Info 程式.\n"
+
+#: info/infodoc.c:50
+#, fuzzy
+msgid "\\%-10[get-info-help-node] Invoke the Info tutorial.\n"
+msgstr " %-10s 執行 Info 指導課程.\n"
+
+#: info/infodoc.c:52 info/infodoc.c:101
+#, fuzzy
+msgid ""
+"Selecting other nodes:\n"
+"----------------------\n"
+msgstr "----------------------\n"
+
+#: info/infodoc.c:54
+#, fuzzy
+msgid "\\%-10[next-node] Move to the \"next\" node of this node.\n"
+msgstr " %-10s 移至本節點的 '下一個 (next)' 節點.\n"
+
+#: info/infodoc.c:55
+#, fuzzy
+msgid "\\%-10[prev-node] Move to the \"previous\" node of this node.\n"
+msgstr " %-10s 移至本節點的 '上一個 (previous)' 節點.\n"
+
+#: info/infodoc.c:56
+#, fuzzy
+msgid "\\%-10[up-node] Move \"up\" from this node.\n"
+msgstr " %-10s 移至本節點的 '上一層 (up)' 節點.\n"
+
+#: info/infodoc.c:57
+#, fuzzy
+msgid ""
+"\\%-10[menu-item] Pick menu item specified by name.\n"
+" Picking a menu item causes another node to be selected.\n"
+msgstr " 選取選單項目以選擇另一個節點.\n"
+
+#: info/infodoc.c:59
+#, fuzzy
+msgid ""
+"\\%-10[xref-item] Follow a cross reference. Reads name of reference.\n"
+msgstr " %-10s 跟隨交互參照. 讀取參照的名稱.\n"
+
+#: info/infodoc.c:60
+#, fuzzy
+msgid "\\%-10[history-node] Move to the last node seen in this window.\n"
+msgstr " %-10s 移動至本分隔視窗中, 上一個觀看的節點.\n"
+
+#: info/infodoc.c:61
+#, fuzzy
+msgid ""
+"\\%-10[move-to-next-xref] Skip to next hypertext link within this node.\n"
+msgstr " %-10s 跳到本節點中的下一個超本文連結.\n"
+
+#: info/infodoc.c:62
+#, fuzzy
+msgid ""
+"\\%-10[move-to-prev-xref] Skip to previous hypertext link within this "
+"node.\n"
+msgstr " %-10s 跳到本節點中的下一個超本文連結.\n"
+
+#: info/infodoc.c:63
+#, fuzzy
+msgid ""
+"\\%-10[select-reference-this-line] Follow the hypertext link under cursor.\n"
+msgstr " %-10s 跟隨游標下的超本文連結.\n"
+
+#: info/infodoc.c:64
+#, fuzzy
+msgid ""
+"\\%-10[dir-node] Move to the `directory' node. Equivalent to `\\[goto-"
+"node] (DIR)'.\n"
+msgstr " %-10s 移至 `directory' 節點. 同 `g (DIR)'.\n"
+
+#: info/infodoc.c:65
+#, fuzzy
+msgid ""
+"\\%-10[top-node] Move to the Top node. Equivalent to `\\[goto-node] Top'.\n"
+msgstr " %-10s 移至 Top 節點. 同 `g TOP'.\n"
+
+#: info/infodoc.c:67 info/infodoc.c:115
+#, fuzzy
+msgid ""
+"Moving within a node:\n"
+"---------------------\n"
+msgstr "---------------------\n"
+
+#: info/infodoc.c:69
+#, fuzzy
+msgid "\\%-10[scroll-forward] Scroll forward a page.\n"
+msgstr " %-10s 向前捲動一頁.\n"
+
+#: info/infodoc.c:70
+#, fuzzy
+msgid "\\%-10[scroll-backward] Scroll backward a page.\n"
+msgstr " %-10s 向後捲動一頁.\n"
+
+#: info/infodoc.c:71
+#, fuzzy
+msgid "\\%-10[beginning-of-node] Go to the beginning of this node.\n"
+msgstr " %-10s 移至本節點的開頭.\n"
+
+#: info/infodoc.c:72
+#, fuzzy
+msgid "\\%-10[end-of-node] Go to the end of this node.\n"
+msgstr " %-10s 移至本節點的結尾.\n"
+
+#: info/infodoc.c:73
+#, fuzzy
+msgid "\\%-10[scroll-forward] Scroll forward 1 line.\n"
+msgstr " %-10s 往前捲動一行.\n"
+
+#: info/infodoc.c:74
+#, fuzzy
+msgid "\\%-10[scroll-backward] Scroll backward 1 line.\n"
+msgstr " %-10s 往後捲動一行.\n"
+
+#: info/infodoc.c:76 info/infodoc.c:124
+#, fuzzy
+msgid ""
+"Other commands:\n"
+"---------------\n"
+msgstr "---------------\n"
+
+#: info/infodoc.c:78
+#, fuzzy
+msgid "\\%-10[menu-digit] Pick first ... ninth item in node's menu.\n"
+msgstr " %-10s 挑選節點目錄中的第一個...第九個項目.\n"
+
+#: info/infodoc.c:79
+#, fuzzy
+msgid "\\%-10[last-menu-item] Pick last item in node's menu.\n"
+msgstr " %-10s 挑選節點目錄的最後一個項目.\n"
+
+#: info/infodoc.c:80
+#, fuzzy
+msgid ""
+"\\%-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"
+msgstr " 並且選擇第一個搜尋到的項目所參照的節點.\n"
+
+#: info/infodoc.c:82
+#, 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"
+
+#: info/infodoc.c:84
+#, 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"
+
+#: info/infodoc.c:86
+#, 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"
+
+#: info/infodoc.c:97
+#, c-format
+msgid " %-10s Quit this help.\n"
+msgstr " %-10s 結束本求助.\n"
+
+#: info/infodoc.c:98
+#, c-format
+msgid " %-10s Quit Info altogether.\n"
+msgstr " %-10s 一併結束 Info 程式.\n"
+
+#: info/infodoc.c:99
+#, c-format
+msgid " %-10s Invoke the Info tutorial.\n"
+msgstr " %-10s 執行 Info 指導課程.\n"
+
+#: info/infodoc.c:103
+#, c-format
+msgid " %-10s Move to the `next' node of this node.\n"
+msgstr " %-10s 移至本節點的 '下一個 (next)' 節點.\n"
+
+#: info/infodoc.c:104
+#, c-format
+msgid " %-10s Move to the `previous' node of this node.\n"
+msgstr " %-10s 移至本節點的 '上一個 (previous)' 節點.\n"
+
+#: info/infodoc.c:105
+#, c-format
+msgid " %-10s Move `up' from this node.\n"
+msgstr " %-10s 移至本節點的 '上一層 (up)' 節點.\n"
+
+#: info/infodoc.c:106
+#, c-format
+msgid " %-10s Pick menu item specified by name.\n"
+msgstr " %-10s 以名稱選取選單項目.\n"
+
+#: info/infodoc.c:107
+msgid " Picking a menu item causes another node to be selected.\n"
+msgstr " 選取選單項目以選擇另一個節點.\n"
+
+#: info/infodoc.c:108
+#, c-format
+msgid " %-10s Follow a cross reference. Reads name of reference.\n"
+msgstr " %-10s 跟隨交互參照. 讀取參照的名稱.\n"
+
+#: info/infodoc.c:109
+#, c-format
+msgid " %-10s Move to the last node seen in this window.\n"
+msgstr " %-10s 移動至本分隔視窗中, 上一個觀看的節點.\n"
+
+#: info/infodoc.c:110
+#, c-format
+msgid " %-10s Skip to next hypertext link within this node.\n"
+msgstr " %-10s 跳到本節點中的下一個超本文連結.\n"
+
+#: info/infodoc.c:111
+#, c-format
+msgid " %-10s Follow the hypertext link under cursor.\n"
+msgstr " %-10s 跟隨游標下的超本文連結.\n"
+
+#: info/infodoc.c:112
+#, c-format
+msgid " %-10s Move to the `directory' node. Equivalent to `g (DIR)'.\n"
+msgstr " %-10s 移至 `directory' 節點. 同 `g (DIR)'.\n"
+
+#: info/infodoc.c:113
+#, c-format
+msgid " %-10s Move to the Top node. Equivalent to `g Top'.\n"
+msgstr " %-10s 移至 Top 節點. 同 `g TOP'.\n"
+
+#: info/infodoc.c:117
+#, c-format
+msgid " %-10s Scroll forward a page.\n"
+msgstr " %-10s 向前捲動一頁.\n"
+
+#: info/infodoc.c:118
+#, c-format
+msgid " %-10s Scroll backward a page.\n"
+msgstr " %-10s 向後捲動一頁.\n"
+
+#: info/infodoc.c:119
+#, c-format
+msgid " %-10s Go to the beginning of this node.\n"
+msgstr " %-10s 移至本節點的開頭.\n"
+
+#: info/infodoc.c:120
+#, c-format
+msgid " %-10s Go to the end of this node.\n"
+msgstr " %-10s 移至本節點的結尾.\n"
+
+#: info/infodoc.c:121
+#, c-format
+msgid " %-10s Scroll forward 1 line.\n"
+msgstr " %-10s 往前捲動一行.\n"
+
+#: info/infodoc.c:122
+#, c-format
+msgid " %-10s Scroll backward 1 line.\n"
+msgstr " %-10s 往後捲動一行.\n"
+
+#: info/infodoc.c:126
+#, c-format
+msgid " %-10s Pick first ... ninth item in node's menu.\n"
+msgstr " %-10s 挑選節點目錄中的第一個...第九個項目.\n"
+
+#: info/infodoc.c:127
+#, c-format
+msgid " %-10s Pick last item in node's menu.\n"
+msgstr " %-10s 挑選節點目錄的最後一個項目.\n"
+
+#: info/infodoc.c:128
+#, c-format
+msgid ""
+" %-10s Search for a specified string in the index entries of this Info\n"
+msgstr " %-10s 在本 Info 檔的索引項目中, 搜尋一個指定的字串,\n"
+
+#: info/infodoc.c:129
+msgid ""
+" file, and select the node referenced by the first entry "
+"found.\n"
+msgstr " 並且選擇第一個搜尋到的項目所參照的節點.\n"
+
+#: info/infodoc.c:130
+#, c-format
+msgid " %-10s Move to node specified by name.\n"
+msgstr " %-10s 移動到指定名稱的節點.\n"
+
+#: info/infodoc.c:131
+msgid ""
+" You may include a filename as well, as in (FILENAME)NODENAME.\n"
+msgstr " 您也可以包含檔名, 如: (檔名)節點名.\n"
+
+#: info/infodoc.c:132
+#, fuzzy, c-format
+msgid " %-10s Search forward for a specified string,\n"
+msgstr " %-10s 在本 Info 檔中, 向前搜尋一個指定的字串,\n"
+
+#: info/infodoc.c:133 info/infodoc.c:135
+msgid ""
+" and select the node in which the next occurrence is found.\n"
+msgstr " 並且選擇下一個搜尋到的字串所在的節點.\n"
+
+#: info/infodoc.c:134
+#, fuzzy, c-format
+msgid " %-10s Search backward for a specified string\n"
+msgstr " %-10s 在本 Info 檔中, 向後搜尋一個指定的字串,\n"
+
+#: info/infodoc.c:313
+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:319
+msgid ""
+"Commands available in the echo area:\n"
+"\n"
+msgstr ""
+"回應區中可用的指令:\n"
+"\n"
+
+#: info/infodoc.c:340
+#, fuzzy, c-format
+msgid ""
+"The following commands can only be invoked via %s:\n"
+"\n"
+msgstr ""
+"以下的指令, 只可經由 M-x 執行:\n"
+"\n"
+
+#: info/infodoc.c:343
+#, fuzzy
+msgid ""
+"The following commands cannot be invoked at all:\n"
+"\n"
+msgstr ""
+"以下的指令, 只可經由 M-x 執行:\n"
+"\n"
+
+#: info/infodoc.c:367
+msgid "--- Use `\\[history-node]' or `\\[kill-node]' to exit ---\n"
+msgstr "--- 使用 `\\[history-node]' 或 `\\[kill-node]' 離開---\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:638
+msgid "Print documentation for KEY"
+msgstr "列出 KEY 的文件"
+
+#: info/infodoc.c:650
+#, c-format
+msgid "Describe key: %s"
+msgstr "描述按鍵指令: %s"
+
+#: info/infodoc.c:660
+#, c-format
+msgid "ESC %s is undefined."
+msgstr "ESC %s 未定義."
+
+#: info/infodoc.c:676 info/infodoc.c:703
+#, c-format
+msgid "%s is undefined."
+msgstr "%s 未定義."
+
+#: info/infodoc.c:724
+#, c-format
+msgid "%s is defined to %s."
+msgstr "%s 定義成 %s."
+
+#: info/infodoc.c:1151
+msgid "Show what to type to execute a given command"
+msgstr "顯示執行某命令所需鍵入的按鍵"
+
+#: info/infodoc.c:1155
+msgid "Where is command: "
+msgstr ""
+
+#: info/infodoc.c:1177
+#, c-format
+msgid "`%s' is not on any keys"
+msgstr "`%s' 未鏈結到任何按鍵"
+
+#: info/infodoc.c:1183
+#, c-format
+msgid "%s can only be invoked via %s."
+msgstr "%s 只能經由 %s 執行."
+
+#: info/infodoc.c:1186
+#, c-format
+msgid "%s can be invoked via %s."
+msgstr "%s 可經由 %s 執行."
+
+#: info/infodoc.c:1190
+#, c-format
+msgid "There is no function named `%s'"
+msgstr "沒有名為 `%s' 的函式"
+
+#: info/infokey.c:164
+msgid "incorrect number of arguments"
+msgstr ""
+
+#: info/infokey.c:194
+#, fuzzy, c-format
+msgid "cannot open input file `%s'"
+msgstr "無法開啟至 `%s' 的管道."
+
+#: info/infokey.c:207
+#, fuzzy, c-format
+msgid "cannot create output file `%s'"
+msgstr "無法建立輸出檔案 `%s'."
+
+#: info/infokey.c:217
+#, c-format
+msgid "error writing to `%s'"
+msgstr ""
+
+#: info/infokey.c:222
+#, fuzzy, c-format
+msgid "error closing output file `%s'"
+msgstr "無法建立輸出檔案 `%s'."
+
+#: info/infokey.c:443
+msgid "key sequence too long"
+msgstr ""
+
+#: info/infokey.c:521
+msgid "missing key sequence"
+msgstr ""
+
+#: info/infokey.c:600
+msgid "NUL character (\\000) not permitted"
+msgstr ""
+
+#: info/infokey.c:629
+#, c-format
+msgid "NUL character (^%c) not permitted"
+msgstr ""
+
+#: info/infokey.c:652
+#, fuzzy
+msgid "missing action name"
+msgstr "%c%s 遺漏右大括號"
+
+#: info/infokey.c:667 info/infokey.c:733
+msgid "section too long"
+msgstr ""
+
+#: info/infokey.c:673
+#, fuzzy, c-format
+msgid "unknown action `%s'"
+msgstr "未知的命令 `%s'"
+
+#: info/infokey.c:682
+msgid "action name too long"
+msgstr ""
+
+#: info/infokey.c:694
+#, c-format
+msgid "extra characters following action `%s'"
+msgstr ""
+
+#: info/infokey.c:704
+#, fuzzy
+msgid "missing variable name"
+msgstr "%s: 遺漏檔案引數.\n"
+
+#: info/infokey.c:712
+msgid "missing `=' immediately after variable name"
+msgstr ""
+
+#: info/infokey.c:719
+msgid "variable name too long"
+msgstr ""
+
+#: info/infokey.c:741
+msgid "value too long"
+msgstr ""
+
+#: info/infokey.c:875
+#, c-format
+msgid "\"%s\", line %u: "
+msgstr ""
+
+#: info/infokey.c:891
+#, 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:1397
+#, c-format
+msgid "Ignoring invalid infokey file `%s' - too small"
+msgstr ""
+
+#: info/infomap.c:1400
+#, c-format
+msgid "Ignoring invalid infokey file `%s' - too big"
+msgstr ""
+
+#: info/infomap.c:1413
+#, c-format
+msgid "Error reading infokey file `%s' - short read"
+msgstr ""
+
+#: info/infomap.c:1431
+#, c-format
+msgid ""
+"Invalid infokey file `%s' (bad magic numbers) -- run infokey to update it"
+msgstr ""
+
+#: info/infomap.c:1437
+#, c-format
+msgid "Your infokey file `%s' is out of date -- run infokey to update it"
+msgstr ""
+
+#: info/infomap.c:1450
+#, c-format
+msgid ""
+"Invalid infokey file `%s' (bad section length) -- run infokey to update it"
+msgstr ""
+
+#: info/infomap.c:1470
+#, c-format
+msgid ""
+"Invalid infokey file `%s' (bad section code) -- run infokey to update it"
+msgstr ""
+
+#: info/infomap.c:1608
+msgid "Bad data in infokey file -- some key bindings ignored"
+msgstr ""
+
+#: info/infomap.c:1659
+msgid "Bad data in infokey file -- some var settings ignored"
+msgstr ""
+
+#: info/m-x.c:70
+msgid "Read the name of an Info command and describe it"
+msgstr "讀取 Info 命令的名稱, 並且描述它"
+
+#: info/m-x.c:74
+msgid "Describe command: "
+msgstr "描述命令: "
+
+#: info/m-x.c:97
+msgid "Read a command name in the echo area and execute it"
+msgstr "在回應區中讀取命令名稱, 並且執行它"
+
+#: info/m-x.c:141
+msgid "Cannot execute an `echo-area' command here."
+msgstr "無法在這裡執行 `echo-area' 命令."
+
+#: info/m-x.c:157
+msgid "Set the height of the displayed window"
+msgstr "設定顯示視窗的高度"
+
+#: info/m-x.c:170
+#, c-format
+msgid "Set screen height to (%d): "
+msgstr "設定螢幕高度為 (%d): "
+
+#: info/makedoc.c:161 info/makedoc.c:169
+msgid ""
+" Source files groveled to make this file include:\n"
+"\n"
+msgstr ""
+
+#: info/makedoc.c:553
+#, c-format
+msgid "Couldn't manipulate the file %s.\n"
+msgstr "無法處理檔案 %s.\n"
+
+#: info/nodemenu.c:28
+msgid ""
+"\n"
+"* Menu:\n"
+" (File)Node Lines Size Containing File\n"
+" ---------- ----- ---- ---------------"
+msgstr ""
+"\n"
+"* 選單:\n"
+" (檔案)節點 行 數 大小 包 含 檔 案\n"
+" ---------- ----- ---- ---------------"
+
+#: info/nodemenu.c:199
+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:219
+msgid "Make a window containing a menu of all of the currently visited nodes"
+msgstr "產生一個分隔視窗, 包含所有最近拜訪過的節點選單"
+
+#: info/nodemenu.c:299
+msgid "Select a node which has been previously visited in a visible window"
+msgstr "選取之前在可見分隔視窗拜訪過的節點"
+
+#: info/nodemenu.c:311
+msgid "Select visited node: "
+msgstr "選取拜訪過的節點: "
+
+#: info/nodemenu.c:331 info/session.c:2235
+#, c-format
+msgid "The reference disappeared! (%s)."
+msgstr "交互參照不見了! (%s)."
+
+#: info/session.c:170
+#, 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:643
+msgid "Move down to the next line"
+msgstr "移至下一行"
+
+#: info/session.c:658
+msgid "Move up to the previous line"
+msgstr "移至上一行"
+
+#: info/session.c:673
+msgid "Move to the end of the line"
+msgstr "移至本行結尾"
+
+#: info/session.c:693
+msgid "Move to the start of the line"
+msgstr "移至本行開頭"
+
+#: info/session.c:885 makeinfo/node.c:1357
+msgid "Next"
+msgstr "下一個"
+
+#: info/session.c:888
+msgid "Following Next node..."
+msgstr "跟隨下一個節點..."
+
+#: info/session.c:905
+msgid "Selecting first menu item..."
+msgstr "選取第一個選單項目..."
+
+#: info/session.c:916
+msgid "Selecting Next node..."
+msgstr "選取下一個節點..."
+
+#: info/session.c:986
+#, c-format
+msgid "Moving Up %d time(s), then Next."
+msgstr "往上一層移動 %d 次, 然後往下一個方向移動."
+
+#: info/session.c:1010
+msgid "No more nodes within this document."
+msgstr "本文件中沒有更多的節點了."
+
+#: info/session.c:1034
+msgid "No `Prev' for this node."
+msgstr "本節點沒有 `上一個 (Prev)' 節點."
+
+#: info/session.c:1037 info/session.c:1092
+msgid "Moving Prev in this window."
+msgstr "向本分隔視窗的 上一個 (Prev) 節點移動."
+
+#: info/session.c:1051
+msgid "No `Prev' or `Up' for this node within this document."
+msgstr "在本文件中, 本節點沒有 `上一個 (Prev)' 節點或 `上一層 (Up)' 節點."
+
+#: info/session.c:1054
+msgid "Moving Up in this window."
+msgstr "向本分隔視窗的上一層節點移動."
+
+#: info/session.c:1102
+msgid "Moving to `Prev's last menu item."
+msgstr "移至前一個節點的最後一個目錄項目."
+
+#: info/session.c:1113
+msgid "Move forwards or down through node structure"
+msgstr "在節點結構中, 往前或往下移動"
+
+#: info/session.c:1129
+msgid "Move backwards or up through node structure"
+msgstr "在節點結構中, 往後或往下移動"
+
+#: info/session.c:1229
+msgid "Scroll forward in this window"
+msgstr "在本分隔視窗中向前捲動"
+
+#: info/session.c:1237
+msgid "Scroll forward in this window and set default window size"
+msgstr "在本分隔視窗中向前捲動, 並且設定成預設的分隔視窗尺寸"
+
+#: info/session.c:1245
+#, fuzzy
+msgid "Scroll forward in this window staying within node"
+msgstr "在本分隔視窗中向前捲動"
+
+#: info/session.c:1253
+#, fuzzy
+msgid ""
+"Scroll forward in this window staying within node and set default window size"
+msgstr "在本分隔視窗中向前捲動, 並且設定成預設的分隔視窗尺寸"
+
+#: info/session.c:1261
+msgid "Scroll backward in this window"
+msgstr "在本分隔視窗中向後捲動"
+
+#: info/session.c:1269
+msgid "Scroll backward in this window and set default window size"
+msgstr "在本分隔視窗中向後捲動, 並且設定成預設的分隔視窗尺寸"
+
+#: info/session.c:1278
+#, fuzzy
+msgid "Scroll backward in this window staying within node"
+msgstr "在本分隔視窗中向後捲動"
+
+#: info/session.c:1286
+#, fuzzy
+msgid ""
+"Scroll backward in this window staying within node and set default window "
+"size"
+msgstr "在本分隔視窗中向後捲動, 並且設定成預設的分隔視窗尺寸"
+
+#: info/session.c:1294
+msgid "Move to the start of this node"
+msgstr "移至本節點的起點"
+
+#: info/session.c:1301
+msgid "Move to the end of this node"
+msgstr "移至本節點的結尾"
+
+#: info/session.c:1308
+msgid "Scroll down by lines"
+msgstr "一行行向下捲動"
+
+#: info/session.c:1325
+msgid "Scroll up by lines"
+msgstr "一行行向上捲動"
+
+#: info/session.c:1343
+msgid "Scroll down by half screen size"
+msgstr "向下捲動半個螢幕的大小"
+
+#: info/session.c:1369
+msgid "Scroll up by half screen size"
+msgstr "向上捲動半個螢幕的大小"
+
+#: info/session.c:1398
+msgid "Select the next window"
+msgstr "選擇下一個分隔視窗"
+
+#: info/session.c:1437
+msgid "Select the previous window"
+msgstr "選擇前一個分隔視窗"
+
+#: info/session.c:1488
+msgid "Split the current window"
+msgstr "分隔目前的分隔視窗"
+
+#: info/session.c:1569
+msgid "Delete the current window"
+msgstr "刪除目前的分隔視窗"
+
+#: info/session.c:1577
+msgid "Cannot delete a permanent window"
+msgstr "無法刪除固定的分隔視窗"
+
+#: info/session.c:1610
+msgid "Delete all other windows"
+msgstr "刪除所有其它的分隔視窗"
+
+#: info/session.c:1656
+msgid "Scroll the other window"
+msgstr "捲動另一個分隔視窗"
+
+#: info/session.c:1677
+msgid "Scroll the other window backward"
+msgstr "向後捲動另一個分隔視窗"
+
+#: info/session.c:1683
+msgid "Grow (or shrink) this window"
+msgstr "擴大 (或縮小) 這個分隔視窗"
+
+#: info/session.c:1694
+msgid "Divide the available screen space among the visible windows"
+msgstr "在可用的螢幕空間中, 平均分割所有的可見分隔視窗"
+
+#: info/session.c:1701
+msgid "Toggle the state of line wrapping in the current window"
+msgstr "切換目前分隔視窗的自動換行狀態"
+
+#: info/session.c:1880
+msgid "Select the Next node"
+msgstr "選取 下一個 節點"
+
+#: info/session.c:1888
+msgid "Select the Prev node"
+msgstr "選取 前一個 節點"
+
+#: info/session.c:1896
+msgid "Select the Up node"
+msgstr "選取 上一層 節點"
+
+#: info/session.c:1903
+msgid "Select the last node in this file"
+msgstr "選取本檔案的最後一個節點"
+
+#: info/session.c:1930 info/session.c:1963
+msgid "This window has no additional nodes"
+msgstr "本分隔視窗沒有額外的節點"
+
+#: info/session.c:1936
+msgid "Select the first node in this file"
+msgstr "選取本檔案的第一個節點"
+
+#: info/session.c:1970
+msgid "Select the last item in this node's menu"
+msgstr "選取本節點選單中, 最後一個項目"
+
+#: info/session.c:1976
+msgid "Select this menu item"
+msgstr "選擇這一個選單項目"
+
+#: info/session.c:2005
+#, c-format
+msgid "There aren't %d items in this menu."
+msgstr "本選單中沒有 %d 個項目"
+
+#: info/session.c:2148
+#, c-format
+msgid "Menu item (%s): "
+msgstr "選單項目 (%s): "
+
+#: info/session.c:2150
+msgid "Menu item: "
+msgstr "選單項目: "
+
+#: info/session.c:2155
+#, c-format
+msgid "Follow xref (%s): "
+msgstr "跟隨交互參照 (%s): "
+
+#: info/session.c:2157
+msgid "Follow xref: "
+msgstr "跟隨交互參照: "
+
+#: info/session.c:2280
+msgid "Read a menu item and select its node"
+msgstr "讀取一個選單項目, 並且選擇它的節點"
+
+#: info/session.c:2288
+msgid "Read a footnote or cross reference and select its node"
+msgstr "讀取一個註腳或交互參照, 並且選擇它的節點"
+
+#: info/session.c:2294
+msgid "Move to the start of this node's menu"
+msgstr "移至本節點的選單開頭"
+
+#: info/session.c:2318
+msgid "Visit as many menu items at once as possible"
+msgstr "儘可能一次拜訪最多個選單項目"
+
+#: info/session.c:2346
+msgid "Read a node name and select it"
+msgstr "讀取節點名稱, 並且選擇它"
+
+#: info/session.c:2401 info/session.c:2405
+msgid "Goto node: "
+msgstr "跳至節點: "
+
+#: info/session.c:2471
+#, c-format
+msgid "No menu in node `%s'."
+msgstr "節點 `%s' 中沒有選單."
+
+#: info/session.c:2516
+#, c-format
+msgid "No menu item `%s' in node `%s'."
+msgstr "選單項目 `%s' 不在節點 `%s' 中."
+
+#: info/session.c:2546
+#, c-format
+msgid "Unable to find node referenced by `%s' in `%s'."
+msgstr "被參照的節點 `%s' 在 `%s' 中找不到."
+
+#: info/session.c:2597
+msgid "Read a list of menus starting from dir and follow them"
+msgstr "讀取自 dir 開始的節點條列, 並且跟隨它們"
+
+#: info/session.c:2599
+msgid "Follow menus: "
+msgstr "跟隨選單: "
+
+#: info/session.c:2797
+msgid "Find the node describing program invocation"
+msgstr "找尋描述程式執行方法的節點"
+
+#: info/session.c:2799
+#, c-format
+msgid "Find Invocation node of [%s]: "
+msgstr "找尋 [%s] 的執行方法節點: "
+
+#: info/session.c:2837
+msgid "Read a manpage reference and select it"
+msgstr "讀取線上手冊 (manpage) 的參照, 並且選擇它"
+
+#: info/session.c:2841
+msgid "Get Manpage: "
+msgstr "取得線上手冊 (Manpage): "
+
+#: info/session.c:2871
+msgid "Select the node `Top' in this file"
+msgstr "選取本檔案中的 `Top' 節點"
+
+#: info/session.c:2877
+msgid "Select the node `(dir)'"
+msgstr "選取節點 `(dir)'"
+
+#: info/session.c:2897
+#, c-format
+msgid "Kill node (%s): "
+msgstr "刪除節點 (%s): "
+
+#: info/session.c:2951
+#, c-format
+msgid "Cannot kill node `%s'"
+msgstr "無法刪除節點 `%s'"
+
+#: info/session.c:2961
+msgid "Cannot kill the last node"
+msgstr "無法刪除上一個節點"
+
+#: info/session.c:3047
+msgid "Select the most recently selected node"
+msgstr "選擇最近一次被選擇的節點"
+
+#: info/session.c:3053
+msgid "Kill this node"
+msgstr "刪除本節點"
+
+#: info/session.c:3061
+msgid "Read the name of a file and select it"
+msgstr "讀取檔案名稱, 然後選取它"
+
+#: info/session.c:3065
+msgid "Find file: "
+msgstr "找尋檔案: "
+
+#: info/session.c:3082
+#, c-format
+msgid "Cannot find `%s'."
+msgstr "無法找到 `%s'."
+
+#: info/session.c:3127 info/session.c:3248
+#, c-format
+msgid "Could not create output file `%s'."
+msgstr "無法建立輸出檔案 `%s'."
+
+#: info/session.c:3140 info/session.c:3265 info/session.c:3326
+msgid "Done."
+msgstr "完成."
+
+#: info/session.c:3196
+#, c-format
+msgid "Writing node %s..."
+msgstr "寫入節點 %s 中..."
+
+#: info/session.c:3274
+msgid "Pipe the contents of this node through INFO_PRINT_COMMAND"
+msgstr "將本節點的內容, 經由管道 (pipe) 送至 INFO_PRINT_COMMAND"
+
+#: info/session.c:3310
+#, c-format
+msgid "Cannot open pipe to `%s'."
+msgstr "無法開啟至 `%s' 的管道."
+
+#: info/session.c:3316
+#, c-format
+msgid "Printing node %s..."
+msgstr "列印節點 %s 中..."
+
+#: info/session.c:3558
+#, c-format
+msgid "Searching subfile %s ..."
+msgstr "搜尋子檔案 %s ..."
+
+#: info/session.c:3610
+msgid "Read a string and search for it case-sensitively"
+msgstr "讀取一個字串, 然後以區分大小寫方式搜尋"
+
+#: info/session.c:3617
+msgid "Read a string and search for it"
+msgstr "讀取一個字串, 然後搜尋"
+
+#: info/session.c:3625
+msgid "Read a string and search backward for it"
+msgstr "讀取一個字串, 然後向後搜尋"
+
+#: info/session.c:3667
+#, c-format
+msgid "%s%sfor string [%s]: "
+msgstr "%s%s [%s]: "
+
+#: info/session.c:3668
+msgid "Search backward"
+msgstr "向後搜尋字串"
+
+#: info/session.c:3668
+msgid "Search"
+msgstr "搜尋字串"
+
+#: info/session.c:3669
+msgid " case-sensitively "
+msgstr ", 以區分大小寫的方式"
+
+#: info/session.c:3669
+msgid " "
+msgstr " "
+
+#: info/session.c:3709
+msgid "Search failed."
+msgstr "搜尋失敗."
+
+#: info/session.c:3727
+msgid "Repeat last search in the same direction"
+msgstr "以同樣的搜尋方向重覆上次的搜尋"
+
+#: info/session.c:3730 info/session.c:3740
+msgid "No previous search string"
+msgstr "沒有前一次的搜尋字串"
+
+#: info/session.c:3737
+msgid "Repeat last search in the reverse direction"
+msgstr "以相反的搜尋方向重覆上次的搜尋"
+
+#: info/session.c:3755 info/session.c:3761
+msgid "Search interactively for a string as you type it"
+msgstr "以互動方式, 邊輸入字串邊搜尋"
+
+#: info/session.c:3855
+msgid "I-search backward: "
+msgstr "反向互動搜尋: "
+
+#: info/session.c:3857
+msgid "I-search: "
+msgstr "互動搜尋: "
+
+#: info/session.c:3882
+msgid "Failing "
+msgstr "失敗 "
+
+#: info/session.c:4340
+msgid "Move to the previous cross reference"
+msgstr "移動至前一個交互參照"
+
+#: info/session.c:4349
+msgid "Move to the next cross reference"
+msgstr "移動至下一個交互參照"
+
+#: info/session.c:4359
+msgid "Select reference or menu item appearing on this line"
+msgstr "選擇出現在本行的參照或選單項目"
+
+#: info/session.c:4381
+msgid "Cancel current operation"
+msgstr "取消目前的作業"
+
+#: info/session.c:4388
+msgid "Quit"
+msgstr "結束"
+
+#: info/session.c:4397
+msgid "Move the cursor to a specific line of the window"
+msgstr "移動游標至分隔視窗中的指定位置"
+
+#: info/session.c:4429
+msgid "Redraw the display"
+msgstr "重繪畫面"
+
+#: info/session.c:4466
+msgid "Quit using Info"
+msgstr "結束使用 Info"
+
+#: info/session.c:4479
+msgid "Run command bound to this key's lowercase variant"
+msgstr ""
+
+#: info/session.c:4491
+#, c-format
+msgid "Unknown command (%s)."
+msgstr "未知的命令 (%s)."
+
+#: info/session.c:4494
+msgid "\"\" is invalid"
+msgstr "\"\" 不合法"
+
+#: info/session.c:4495
+#, c-format
+msgid "\"%s\" is invalid"
+msgstr "\"%s\" 不合法"
+
+#: info/session.c:4713
+msgid "Add this digit to the current numeric argument"
+msgstr "將本數字加至目前的數值引數"
+
+#: info/session.c:4722
+msgid "Start (or multiply by 4) the current numeric argument"
+msgstr "開始目前的數值引數 (或是乘以 4)"
+
+#: info/session.c:4737
+msgid "Internally used by \\[universal-argument]"
+msgstr "在內部被 \\[universal-argument] 使用"
+
+#: info/tilde.c:344
+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 "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 "設定在 \"On\" 時, 符合搜尋字串的部份會被標示起來"
+
+#: info/variables.c:60
+msgid "Controls what happens when scrolling is requested at the end of a node"
+msgstr "控制在節點的結尾時, 捲動會有什麼反應"
+
+#: info/variables.c:64
+msgid "The number lines to scroll when the cursor moves out of the window"
+msgstr "控制當游標移動至分隔視窗外時, 捲動的行數"
+
+#: info/variables.c:68
+msgid "When \"On\", Info accepts and displays ISO Latin characters"
+msgstr "當設定在 \"On\" 時, Info 可接受並顯示 ISO Latin 字元"
+
+#: info/variables.c:74
+msgid "Explain the use of a variable"
+msgstr "解釋變數的用法"
+
+#: info/variables.c:80
+msgid "Describe variable: "
+msgstr "描述變數: "
+
+#: info/variables.c:99
+msgid "Set the value of an Info variable"
+msgstr "設定 Info 變數的數值"
+
+#: info/variables.c:105
+msgid "Set variable: "
+msgstr "設定變數: "
+
+#: info/variables.c:123
+#, c-format
+msgid "Set %s to value (%d): "
+msgstr "設定 %s 的數值 (%d): "
+
+#: info/variables.c:164
+#, c-format
+msgid "Set %s to value (%s): "
+msgstr "設定 %s 的數值 (%s): "
+
+#: info/window.c:1164
+msgid "--*** Tags out of Date ***"
+msgstr ""
+
+#: info/window.c:1175
+msgid "-----Info: (), lines ----, "
+msgstr "-----Info: (), 行數 ----, "
+
+#: info/window.c:1182
+#, c-format
+msgid "-%s---Info: %s, %d lines --%s--"
+msgstr "-%s---Info: %s, 共 %d 行 --%s--"
+
+#: info/window.c:1186
+#, c-format
+msgid "-%s%s-Info: (%s)%s, %d lines --%s--"
+msgstr "-%s%s-Info: (%s)%s, 共 %d 行 --%s--"
+
+#: info/window.c:1193
+#, c-format
+msgid " Subfile: %s"
+msgstr " 子檔案: %s"
+
+#: lib/getopt.c:675
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: 選項 `%s' 不明\n"
+
+#: lib/getopt.c:700
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s: 選項 `--%s' 不可含有引數\n"
+
+#: lib/getopt.c:705
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr "%s: 選項 `%c%s' 不可含有引數\n"
+
+#: lib/getopt.c:723 lib/getopt.c:896
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr "%s: 選項 `%s' 必須含有引數\n"
+
+#: lib/getopt.c:752
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: 未知的選項 `--%s'\n"
+
+#: lib/getopt.c:756
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: 未知的選項 `%c%s'\n"
+
+#: lib/getopt.c:782
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: 不合法的選項 -- %c\n"
+
+#: lib/getopt.c:785
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr "%s: 無效的選項 -- %c\n"
+
+#: lib/getopt.c:815 lib/getopt.c:945
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr "%s: 選項必須含有引數 -- %c\n"
+
+#: lib/getopt.c:862
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr "%s: 選項 `-W %s' 不明確\n"
+
+#: lib/getopt.c:880
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr "%s: 選項 `-W %s' 不可含有引數\n"
+
+#: makeinfo/cmds.c:515
+msgid "January"
+msgstr "一月"
+
+#: makeinfo/cmds.c:515
+msgid "February"
+msgstr "二月"
+
+#: makeinfo/cmds.c:515
+msgid "March"
+msgstr "三月"
+
+#: makeinfo/cmds.c:515
+msgid "April"
+msgstr "四月"
+
+#: makeinfo/cmds.c:515
+msgid "May"
+msgstr "五月"
+
+#: makeinfo/cmds.c:516
+msgid "June"
+msgstr "六月"
+
+#: makeinfo/cmds.c:516
+msgid "July"
+msgstr "七月"
+
+#: makeinfo/cmds.c:516
+msgid "August"
+msgstr "八月"
+
+#: makeinfo/cmds.c:516
+msgid "September"
+msgstr "九月"
+
+#: makeinfo/cmds.c:516
+msgid "October"
+msgstr "十月"
+
+#: makeinfo/cmds.c:517
+msgid "November"
+msgstr "十一月"
+
+#: makeinfo/cmds.c:517
+msgid "December"
+msgstr "十二月"
+
+#: makeinfo/cmds.c:658
+#, c-format
+msgid "unlikely character %c in @var"
+msgstr ""
+
+#: makeinfo/cmds.c:701
+msgid "@sc argument all uppercase, thus no effect"
+msgstr "@sc 的引數全是大寫, 所以沒有作用"
+
+#: makeinfo/cmds.c:759
+#, c-format
+msgid "`{' expected, but saw `%c'"
+msgstr ""
+
+#: makeinfo/cmds.c:789
+msgid "end of file inside verb block"
+msgstr ""
+
+#: makeinfo/cmds.c:797
+#, c-format
+msgid "`}' expected, but saw `%c'"
+msgstr ""
+
+#: makeinfo/cmds.c:942
+#, c-format
+msgid "%c%s is obsolete"
+msgstr "%c%s 已廢止不用"
+
+#: makeinfo/cmds.c:1014
+#, c-format
+msgid "@sp requires a positive numeric argument, not `%s'"
+msgstr "@sp 必須有一個正整數的引數, 而不是 `%s'"
+
+#: makeinfo/cmds.c:1348 makeinfo/cmds.c:1374 makeinfo/footnote.c:81
+#, c-format
+msgid "Bad argument to %c%s"
+msgstr "對 %c%s 無用的引數"
+
+#: makeinfo/cmds.c:1358 makeinfo/makeinfo.c:4140
+msgid "asis"
+msgstr ""
+
+#: makeinfo/cmds.c:1360 makeinfo/makeinfo.c:4142
+msgid "none"
+msgstr ""
+
+#: makeinfo/defun.c:85
+msgid "Missing `}' in @def arg"
+msgstr "@def 參數中遺漏 `}'"
+
+#: makeinfo/defun.c:363
+msgid "Function"
+msgstr ""
+
+#: makeinfo/defun.c:366
+msgid "Macro"
+msgstr ""
+
+#: makeinfo/defun.c:369
+msgid "Special Form"
+msgstr ""
+
+#: makeinfo/defun.c:373
+msgid "Variable"
+msgstr ""
+
+#: makeinfo/defun.c:376
+msgid "User Option"
+msgstr ""
+
+#: makeinfo/defun.c:380
+msgid "Instance Variable"
+msgstr ""
+
+#: makeinfo/defun.c:384
+msgid "Method"
+msgstr ""
+
+#: makeinfo/defun.c:466 makeinfo/defun.c:470 makeinfo/defun.c:615
+#: makeinfo/defun.c:631 makeinfo/defun.c:671
+msgid "of"
+msgstr ""
+
+#: makeinfo/defun.c:474 makeinfo/defun.c:478 makeinfo/defun.c:482
+#: makeinfo/defun.c:624 makeinfo/defun.c:676
+msgid "on"
+msgstr ""
+
+#: makeinfo/defun.c:717
+#, c-format
+msgid "Must be in `%s' insertion to use `%sx'"
+msgstr ""
+
+#: makeinfo/files.c:448
+#, c-format
+msgid "%s: getwd: %s, %s\n"
+msgstr "%s: getwd: %s, %s\n"
+
+#: makeinfo/footnote.c:150
+#, c-format
+msgid "`%c%s' needs an argument `{...}', not just `%s'"
+msgstr "`%c%s' 必須包含引數 `{...}', 而不是只有 `%s'"
+
+#: makeinfo/footnote.c:165
+#, c-format
+msgid "No closing brace for footnote `%s'"
+msgstr "註腳 `%s' 沒有右大括號"
+
+#: makeinfo/footnote.c:198
+msgid "Footnote defined without parent node"
+msgstr "定義註腳, 但是沒有父節點"
+
+#: makeinfo/footnote.c:210
+#, fuzzy
+msgid "Footnotes inside footnotes are not allowed"
+msgstr "定義註腳, 但是沒有父節點"
+
+#: makeinfo/footnote.c:298
+msgid "Footnotes"
+msgstr "註腳"
+
+#: makeinfo/html.c:42
+msgid "Untitled"
+msgstr ""
+
+#: makeinfo/html.c:298
+#, c-format
+msgid "Invalid node name: `%s'"
+msgstr ""
+
+#: makeinfo/index.c:213
+#, c-format
+msgid "Unknown index `%s'"
+msgstr "未知的索引 `%s'"
+
+#: makeinfo/index.c:238
+#, c-format
+msgid "Info cannot handle `:' in index entry `%s'"
+msgstr ""
+
+#: makeinfo/index.c:396
+#, c-format
+msgid "Index `%s' already exists"
+msgstr "索引 `%s' 已存在"
+
+#: makeinfo/index.c:439
+#, c-format
+msgid "Unknown index `%s' and/or `%s' in @synindex"
+msgstr "@synindex 中有未知的索引 `%s' 與/或 `%s'"
+
+#: makeinfo/index.c:666
+#, c-format
+msgid "Unknown index `%s' in @printindex"
+msgstr "@printindex 中有未知的索引 `%s'"
+
+#: makeinfo/index.c:709
+#, c-format
+msgid "Entry for index `%s' outside of any node"
+msgstr "索引 `%s' 的項目不在任何的節點內"
+
+#: makeinfo/index.c:712 makeinfo/index.c:751
+msgid "(outside of any node)"
+msgstr "(不在任何的節點內)"
+
+#: makeinfo/insertion.c:198
+msgid "Broken-Type in insertion_type_pname"
+msgstr ""
+
+#: makeinfo/insertion.c:271
+msgid "Enumeration stack overflow"
+msgstr ""
+
+#: makeinfo/insertion.c:303
+#, c-format
+msgid "lettering overflow, restarting at %c"
+msgstr ""
+
+#: makeinfo/insertion.c:538
+#, c-format
+msgid "%s requires an argument: the formatter for %citem"
+msgstr ""
+
+#: makeinfo/insertion.c:693
+#, c-format
+msgid "`@end' expected `%s', but saw `%s'"
+msgstr ""
+
+#: makeinfo/insertion.c:931
+#, c-format
+msgid "No matching `%cend %s'"
+msgstr "No matching `%cend %s'"
+
+#: makeinfo/insertion.c:1084
+#, c-format
+msgid "%s requires letter or digit"
+msgstr "%s 必須要有字元或是數字"
+
+#: makeinfo/insertion.c:1158
+msgid "end of file inside verbatim block"
+msgstr ""
+
+#: makeinfo/insertion.c:1318
+msgid "@menu seen before first @node, creating `Top' node"
+msgstr "@menu 在第一個 @node 之前出現, 將建立 `Top' 節點"
+
+#: makeinfo/insertion.c:1319
+msgid ""
+"perhaps your @top node should be wrapped in @ifnottex rather than @ifinfo?"
+msgstr "也許您應該把 @top 節點包含在 @ifnottex, 而不是 @ifinfo?"
+
+#: makeinfo/insertion.c:1331
+msgid "@detailmenu seen before first node, creating `Top' node"
+msgstr "在第一個節點之前出現 @detailmenu, 將建立 `Top' 節點"
+
+#: makeinfo/insertion.c:1346
+#, c-format
+msgid "Unmatched `%c%s'"
+msgstr "未配對的 `%c%s'"
+
+#: makeinfo/insertion.c:1353
+#, c-format
+msgid "`%c%s' needs something after it"
+msgstr "在 `%c%s' 之後必須要有東西"
+
+#: makeinfo/insertion.c:1359
+#, c-format
+msgid "Bad argument to `%s', `%s', using `%s'"
+msgstr ""
+
+#: makeinfo/insertion.c:1453
+#, c-format
+msgid "@%s not meaningful inside `@%s' block"
+msgstr "@%s 在 `@%s' 區塊之內, 並不具有意義"
+
+#: makeinfo/insertion.c:1462
+#, c-format
+msgid "@itemx not meaningful inside `%s' block"
+msgstr "`%s' 區塊之內, @itemx 並無意義"
+
+#: makeinfo/insertion.c:1646
+#, c-format
+msgid "%c%s found outside of an insertion block"
+msgstr ""
+
+#: makeinfo/lang.c:331
+#, c-format
+msgid "%s is not a valid ISO 639 language code"
+msgstr "%s 不是一個合法的 ISO 639 語言碼"
+
+#: makeinfo/lang.c:384
+#, fuzzy, c-format
+msgid "unrecogized encoding name `%s'"
+msgstr "%s: 未知的選項 `%c%s'\n"
+
+#: makeinfo/lang.c:387
+#, c-format
+msgid "sorry, encoding `%s' not supported"
+msgstr ""
+
+#: makeinfo/lang.c:414
+#, c-format
+msgid "invalid encoded character `%s'"
+msgstr ""
+
+#: makeinfo/lang.c:502
+#, fuzzy, c-format
+msgid "%s is an invalid ISO code, using %c"
+msgstr "%s 不是一個合法的 ISO 639 語言碼"
+
+#: makeinfo/lang.c:687
+#, c-format
+msgid "%c%s expects `i' or `j' as argument, not `%c'"
+msgstr "%c%s 期望使用 `i' 或 `j' 作為引數, 而不是 `%c'"
+
+#: makeinfo/lang.c:691
+#, c-format
+msgid "%c%s expects a single character `i' or `j' as argument"
+msgstr "%c%s 期望使用一個字母 `i' 或 `j' 作為引數"
+
+#: makeinfo/macro.c:134
+#, c-format
+msgid "macro `%s' previously defined"
+msgstr "巨集 `%s' 已定義過"
+
+#: makeinfo/macro.c:138
+#, c-format
+msgid "here is the previous definition of `%s'"
+msgstr "這裡是 `%s' 之前的定義"
+
+#: makeinfo/macro.c:355
+#, c-format
+msgid "\\ in macro expansion followed by `%s' instead of \\ or parameter name"
+msgstr ""
+
+#: makeinfo/macro.c:403
+#, c-format
+msgid "Macro `%s' called on line %d with too many args"
+msgstr "巨集 `%s' 在第 %d 行被呼叫, 但是引數過多"
+
+#: makeinfo/macro.c:594
+#, c-format
+msgid "%cend macro not found"
+msgstr ""
+
+#: makeinfo/macro.c:632
+msgid "@quote-arg only useful for single-argument macros"
+msgstr "@quote-arg 只在單一引數的巨集有用"
+
+#: makeinfo/macro.c:668
+#, c-format
+msgid "mismatched @end %s with @%s"
+msgstr "@end %s 與 @%s 不符合"
+
+#: makeinfo/makeinfo.c:316
+#, c-format
+msgid "%s:%d: warning: "
+msgstr "%s:%d: 警告: "
+
+#: makeinfo/makeinfo.c:339
+msgid "Too many errors! Gave up.\n"
+msgstr "錯誤過多! 放棄.\n"
+
+#: makeinfo/makeinfo.c:350 makeinfo/makeinfo.c:2026
+#, c-format
+msgid "Misplaced %c"
+msgstr "誤置的 %c"
+
+#: makeinfo/makeinfo.c:370
+#, c-format
+msgid "Try `%s --help' for more information.\n"
+msgstr "試試 `%s --help' 以取得更多的資訊.\n"
+
+#: makeinfo/makeinfo.c:373
+#, fuzzy, c-format
+msgid "Usage: %s [OPTION]... TEXINFO-FILE...\n"
+msgstr "用法: %s [OPTION]... FILE...\n"
+
+#: makeinfo/makeinfo.c:376
+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:380
+#, c-format
+msgid ""
+"General options:\n"
+" --error-limit=NUM quit after NUM errors (default %d).\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"
+" --reference-limit=NUM warn about at most NUM references (default %"
+"d).\n"
+" -v, --verbose explain what is being done.\n"
+" --version display version information and exit.\n"
+msgstr ""
+
+#: makeinfo/makeinfo.c:394
+#, no-wrap
+msgid ""
+"Output format selection (default is to produce Info):\n"
+" --docbook output DocBook rather than Info.\n"
+" --html output HTML rather than Info.\n"
+" --xml output XML (TexinfoML) rather than Info.\n"
+msgstr ""
+
+#: makeinfo/makeinfo.c:401
+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 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 (directory if split HTML),\n"
+msgstr ""
+
+#: makeinfo/makeinfo.c:415
+#, c-format
+msgid ""
+"Options for Info and plain text:\n"
+" --enable-encoding output accented and special characters in\n"
+" Info output based on @documentencoding.\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\n"
+" in which they are defined (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:433
+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:442
+msgid ""
+"Conditional processing in input:\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"
+" --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"
+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"
+msgstr ""
+
+#: makeinfo/makeinfo.c:461
+#, 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 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... 等判斷指令的預設值, 會依輸出格式不同而不同:\n"
+"如果產生 HTML, --ifhtml 會開啟, 其它則關閉;\n"
+"如果產生 Info 或普通的文字檔, --ifinfo 會開啟, 其它則關閉.\n"
+"\n"
+"範例:\n"
+" makeinfo foo.texi 輸出 Info 至 foo 的 @setfilename\n"
+" makeinfo --html foo.texi 輸出 HTML 至 foo 的 @setfilename\n"
+" makeinfo --no-headers -o - foo.texi 輸出普通文字格式至標準輸出\n"
+" makeinfo --number-sections foo.texi 以有編號的節來輸出 Info\n"
+" makeinfo --no-split foo.texi 不管檔案有多大, 輸出成一個 Info 檔\n"
+"\n"
+"程式臭蟲, 請以電子郵件 (英文) 回報至 bug-texinfo@gnu.org,\n"
+"一般問題與討論, 請以電子郵件 (英文) 寄到 help-texinfo@gnu.org."
+
+#: makeinfo/makeinfo.c:570 makeinfo/makeinfo.c:593 makeinfo/makeinfo.c:655
+#: makeinfo/makeinfo.c:676
+#, c-format
+msgid "%s: %s arg must be numeric, not `%s'.\n"
+msgstr "%s: %s 引數必須為數值, 而不是 `%s'.\n"
+
+#: makeinfo/makeinfo.c:583
+#, c-format
+msgid "Couldn't open macro expansion output `%s'"
+msgstr ""
+
+#: makeinfo/makeinfo.c:586
+msgid "Cannot specify more than one macro expansion output"
+msgstr ""
+
+#: makeinfo/makeinfo.c:624
+#, 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:665
+#, 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:723
+#, c-format
+msgid "%s: missing file argument.\n"
+msgstr "%s: 遺漏檔案引數.\n"
+
+#: makeinfo/makeinfo.c:898
+#, c-format
+msgid "Expected `%s'"
+msgstr "Expected `%s'"
+
+#: makeinfo/makeinfo.c:1365
+msgid "File exists, but is not a directory"
+msgstr ""
+
+#: makeinfo/makeinfo.c:1366
+#, c-format
+msgid "Can't create directory `%s': %s"
+msgstr ""
+
+#: makeinfo/makeinfo.c:1414
+#, c-format
+msgid "No `%s' found in `%s'"
+msgstr "`%s' 未出現在 `%s' 內"
+
+#: makeinfo/makeinfo.c:1496
+#, c-format
+msgid "%s: Skipping macro expansion to stdout as Info output is going there.\n"
+msgstr ""
+
+#: makeinfo/makeinfo.c:1526
+#, c-format
+msgid "Making %s file `%s' from `%s'.\n"
+msgstr ""
+
+#: makeinfo/makeinfo.c:1561
+#, c-format
+msgid "This is %s, produced by makeinfo version %s from %s.\n"
+msgstr "這是 %s, 由 makeinfo 版本 %s 自 %s 產生的.\n"
+
+#: makeinfo/makeinfo.c:1583
+#, 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:1627
+#, c-format
+msgid "%s: Removing output file `%s' due to errors; use --force to preserve.\n"
+msgstr "%s: 因為錯誤, 移除輸出檔 `%s'; 若要保存它, 請使用 --force 選項.\n"
+
+#: makeinfo/makeinfo.c:1853
+#, c-format
+msgid "Unknown command `%s'"
+msgstr "未知的命令 `%s'"
+
+#: makeinfo/makeinfo.c:1875
+#, c-format
+msgid "Use braces to give a command as an argument to @%s"
+msgstr "使用大括號將命令包起來, 以作為 @%s 的引數"
+
+#: makeinfo/makeinfo.c:2068
+#, c-format
+msgid "%c%s expected `{...}'"
+msgstr "%c%s 預計要有 `{...}'"
+
+#: makeinfo/makeinfo.c:2098
+msgid "Unmatched }"
+msgstr "未配對的 }"
+
+#: makeinfo/makeinfo.c:2148
+msgid "NO_NAME!"
+msgstr "NO_NAME!"
+
+#: makeinfo/makeinfo.c:2169
+#, c-format
+msgid "%c%s missing close brace"
+msgstr "%c%s 遺漏右大括號"
+
+#: makeinfo/makeinfo.c:2958
+msgid "First argument to cross-reference may not be empty"
+msgstr ""
+
+#: makeinfo/makeinfo.c:3018 makeinfo/makeinfo.c:3236 makeinfo/xml.c:1340
+msgid "see "
+msgstr ""
+
+#: makeinfo/makeinfo.c:3018
+msgid "See "
+msgstr ""
+
+#: makeinfo/makeinfo.c:3164
+#, c-format
+msgid "`.' or `,' must follow cross reference, not %c"
+msgstr "`.' 或 `,' 必須跟著交互參照, 而不是 %c"
+
+#: makeinfo/makeinfo.c:3212
+msgid "First argument to @inforef may not be empty"
+msgstr ""
+
+#: makeinfo/makeinfo.c:3427
+#, fuzzy, c-format
+msgid "@image file `%s' (for HTML) not readable: %s"
+msgstr "@image 檔案 `%s' 無法讀取: %s"
+
+#: makeinfo/makeinfo.c:3440
+#, c-format
+msgid "No `%s.png' or `.jpg', and no extension supplied"
+msgstr ""
+
+#: makeinfo/makeinfo.c:3490
+#, fuzzy, c-format
+msgid "@image file `%s' (for text) unreadable: %s"
+msgstr "@image 檔案 `%s' 無法讀取: %s"
+
+#: makeinfo/makeinfo.c:3497
+msgid "@image missing filename argument"
+msgstr "@image 沒有檔名引數"
+
+#: makeinfo/makeinfo.c:3690
+#, c-format
+msgid "{No value for `%s'}"
+msgstr ""
+
+#: makeinfo/makeinfo.c:3744
+#, c-format
+msgid "%c%s requires a name"
+msgstr "%c%s 必須要有名稱"
+
+#: makeinfo/makeinfo.c:3850
+#, c-format
+msgid "Reached eof before matching @end %s"
+msgstr "在配對的 @end %s 之前, 先到達檔案結尾"
+
+#: makeinfo/makeinfo.c:4081
+#, c-format
+msgid "`%.40s...' is too long for expansion; not expanded"
+msgstr ""
+
+#: makeinfo/multi.c:226
+msgid "Missing } in @multitable template"
+msgstr "在 @multitable 樣版中, 沒有 }"
+
+#: makeinfo/multi.c:302
+#, c-format
+msgid "ignoring stray text `%s' after @multitable"
+msgstr ""
+
+#: makeinfo/multi.c:375
+#, c-format
+msgid "Too many columns in multitable item (max %d)"
+msgstr "multitable 項目中有太多的欄位 (最大值為 %d)"
+
+#: makeinfo/multi.c:426
+#, c-format
+msgid "Cannot select column #%d in multitable"
+msgstr "無法選取 multitable 中的欄位 #%d"
+
+#: makeinfo/multi.c:529
+msgid "ignoring @tab outside of multitable"
+msgstr "忽略 multitable 外的 @tab"
+
+#: makeinfo/multi.c:565
+msgid "** Multicolumn output from last row:\n"
+msgstr ""
+
+#: makeinfo/multi.c:568
+#, c-format
+msgid "* column #%d: output = %s\n"
+msgstr "* 欄位 #%d: 輸出 = %s\n"
+
+#: makeinfo/node.c:276
+#, c-format
+msgid "Node `%s' previously defined at line %d"
+msgstr "節點 `%s' 已在第 %d 行定義過了"
+
+#: makeinfo/node.c:594
+#, c-format
+msgid "Formatting node %s...\n"
+msgstr "編排節點 %s 的格式中...\n"
+
+#: makeinfo/node.c:655
+#, c-format
+msgid "Node `%s' requires a sectioning command (e.g. %c%s)"
+msgstr "節點 `%s' 必須使用分段命令 (sectioning command) (例如: %c%s)"
+
+#: makeinfo/node.c:815
+#, c-format
+msgid "No node name specified for `%c%s' command"
+msgstr "`%c%s' 命令中未指定節點名稱"
+
+#: makeinfo/node.c:856 makeinfo/node.c:1075
+#, c-format
+msgid "Anchor `%s' and node `%s' map to the same file name"
+msgstr ""
+
+#: makeinfo/node.c:859
+msgid "This @anchor command ignored; references to it will not work"
+msgstr ""
+
+#: makeinfo/node.c:861 makeinfo/node.c:1078
+msgid "Rename this anchor or use the `--no-split' option"
+msgstr ""
+
+#: makeinfo/node.c:891
+#, c-format
+msgid "Unexpected string at end of split-HTML file `%s'"
+msgstr ""
+
+#: makeinfo/node.c:920
+msgid "Node:"
+msgstr "節點:"
+
+#: makeinfo/node.c:930
+msgid "Next:"
+msgstr "下一個:"
+
+#: makeinfo/node.c:940
+msgid "Previous:"
+msgstr "上一個:"
+
+#: makeinfo/node.c:950
+msgid "Up:"
+msgstr "上一層:"
+
+#: makeinfo/node.c:1072
+#, c-format
+msgid "Anchors `%s' and `%s' map to the same file name"
+msgstr ""
+
+#: makeinfo/node.c:1077
+msgid "@anchor command ignored; references to it will not work"
+msgstr ""
+
+#: makeinfo/node.c:1277
+#, c-format
+msgid "%s reference to nonexistent node `%s'"
+msgstr "%s 參照到不存在的節點: `%s'"
+
+#: makeinfo/node.c:1294
+msgid "Menu"
+msgstr "目錄"
+
+#: makeinfo/node.c:1296
+msgid "Cross"
+msgstr ""
+
+#: makeinfo/node.c:1380
+#, c-format
+msgid "Next field of node `%s' not pointed to"
+msgstr ""
+
+#: makeinfo/node.c:1383
+#, c-format
+msgid "This node (%s) has the bad Prev"
+msgstr "本節點 (%s) 的 前一個 (Prev) 節點有問題"
+
+#: makeinfo/node.c:1395
+msgid "Prev"
+msgstr "前一個"
+
+#: makeinfo/node.c:1438
+#, c-format
+msgid "Prev field of node `%s' not pointed to"
+msgstr ""
+
+#: makeinfo/node.c:1442
+#, c-format
+msgid "This node (%s) has the bad Next"
+msgstr "本節點 (%s) 的 下一個 (Next) 節點有問題"
+
+#: makeinfo/node.c:1454
+#, c-format
+msgid "`%s' has no Up field"
+msgstr "`%s' 沒有 上一層 (Up) 欄位"
+
+#: makeinfo/node.c:1457
+msgid "Up"
+msgstr "上一層"
+
+#: makeinfo/node.c:1523
+#, c-format
+msgid "Node `%s' lacks menu item for `%s' despite being its Up target"
+msgstr ""
+
+#: makeinfo/node.c:1552
+#, c-format
+msgid "node `%s' has been referenced %d times"
+msgstr "節點 `%s' 已被參照 %d 次"
+
+#: makeinfo/node.c:1566
+#, c-format
+msgid "unreferenced node `%s'"
+msgstr "未被參照的節點 `%s'"
+
+#: makeinfo/sectioning.c:117
+#, c-format
+msgid "Appendix %c "
+msgstr "附錄 %c"
+
+#: makeinfo/sectioning.c:356 makeinfo/sectioning.c:444
+#, c-format
+msgid "Internal error (search_sectioning) \"%s\"!"
+msgstr "內部錯誤 (search_sectioning) \"%s\"!"
+
+#: makeinfo/sectioning.c:502
+#, c-format
+msgid "%c%s is obsolete; use %c%s instead"
+msgstr "%c%s 已廢棄不用; 請改用 %c%s"
+
+#: makeinfo/sectioning.c:518
+#, c-format
+msgid "Node with %ctop as a section already exists"
+msgstr ""
+
+#: makeinfo/sectioning.c:526
+#, c-format
+msgid "Here is the %ctop node"
+msgstr ""
+
+#: makeinfo/sectioning.c:543
+#, c-format
+msgid "%ctop used before %cnode, defaulting to %s"
+msgstr ""
+
+#: makeinfo/toc.c:221 makeinfo/toc.c:298 makeinfo/toc.c:299
+msgid "Table of Contents"
+msgstr ""
+
+#: makeinfo/toc.c:330 makeinfo/toc.c:366 makeinfo/toc.c:367
+msgid "Short Contents"
+msgstr ""
+
+#: makeinfo/toc.c:406
+#, c-format
+msgid "%s: TOC should be here, but it was not found"
+msgstr ""
+
+#: makeinfo/xml.c:1108
+#, c-format
+msgid "@image file `%s' unreadable: %s"
+msgstr "@image 檔案 `%s' 無法讀取: %s"
+
+#: util/install-info.c:151
+#, c-format
+msgid "%s: warning: "
+msgstr "%s: 警告: "
+
+#: util/install-info.c:176 util/install-info.c:189
+msgid "virtual memory exhausted"
+msgstr "虛擬記憶體耗盡"
+
+#: util/install-info.c:232
+#, c-format
+msgid " for %s"
+msgstr ""
+
+#: util/install-info.c:381
+#, c-format
+msgid "\tTry `%s --help' for a complete list of options.\n"
+msgstr "\t試試 Try `%s --help' 以取得完整的參數列表.\n"
+
+#: util/install-info.c:389
+#, fuzzy, c-format
+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 [OPTION]... [INFO-FILE [DIR-FILE]]\n"
+"\n"
+"自 Info 目錄檔案 DIR-FILE 的 INFO-FILE 中, 安裝或移除 dir 項目.\n"
+"\n"
+"Options:\n"
+" --delete 自 DIR-FILE 中, 刪除現有的 INFO-FILE 項目;\n"
+" 不新增任何新的項目.\n"
+" --dir-file=NAME 指定 Info 目錄檔案的檔案名稱.\n"
+" 本選項與使用 DIR-FILE 引數相同.\n"
+" --entry=TEXT 以 TEXT 作為 Info directory 項目.\n"
+" TEXT 應該與 Info 目錄項目的寫法有相同格式\n"
+" 再加上零個以上的以空白字元開始的資料行.\n"
+" 如果您指定超過一個以上的項目, 它們全都會被加進去.\n"
+" 如果您沒有指定任何的項目, 它們會以 Info 檔案中的\n"
+"\t\t 資訊來決定.\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 directory 項目其實就是一個選單項目.\n"
+" --quiet 不顯示警告訊息.\n"
+" --remove 與 --delete 相同.\n"
+" --section=SEC 將本檔案的項目放在目錄中的 SEC 節.\n"
+" 如果您指定超過一個以上的節, 所有的項目都會\n"
+"\t\t 新增在每一個節內.\n"
+" 如果您沒有指定任何的節, 它們會以 Info 檔案中的\n"
+" 資訊來決定.\n"
+" --version 顯示版本資訊, 然後離開.\n"
+"\n"
+"程式臭蟲, 請以電子郵件 (英文) 回報至 bug-texinfo@gnu.org,\n"
+"一般問題與討論, 請以電子郵件 (英文) 寄到 help-texinfo@gnu.org.\n"
+
+#: util/install-info.c:444
+#, 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"
+"* Menu:\n"
+msgstr ""
+"這是檔案 .../info/dir, 裡面包含有 Info 選單架構中最上層的節點,\n"
+"稱為 (dir) TOP.\n"
+"您第一次執行 Info 時, 您會從這裡開始搜尋所須的節點.\n"
+"\n"
+"%s\t這是 INFO 選單樹的最上層\n"
+"\n"
+" 這裡 (Directory 節點) 提供主要項目的選單.\n"
+" 鍵入 \"q\" 離開, \"?\" 列出所有的 Info 指令, \"d\" 回到這裡,\n"
+" \"h\" 觀看給初次使用者的入門指引,\n"
+" \"mEmacs<Return>\" 可觀看 Emacs 手冊, 等等.\n"
+"\n"
+" 在 Emacs 中, 您可以在選單項目或交互參照上, 單擊滑鼠的第 2 鍵\n"
+" 以選擇它們.\n"
+"\n"
+"* Menu:\n"
+
+#: util/install-info.c:467
+#, c-format
+msgid "%s: could not read (%s) and could not create (%s)\n"
+msgstr "%s: 無法讀取 (%s), 而且無法建立 (%s)\n"
+
+#: util/install-info.c:551
+#, c-format
+msgid "%s: empty file"
+msgstr "%s: 空檔案"
+
+#: util/install-info.c:866 util/install-info.c:906
+msgid "START-INFO-DIR-ENTRY without matching END-INFO-DIR-ENTRY"
+msgstr "有 START-INFO-DIR-ENTRY, 但是沒有相對應的 END-INFO-DIR-ENTRY"
+
+#: util/install-info.c:901
+msgid "END-INFO-DIR-ENTRY without matching START-INFO-DIR-ENTRY"
+msgstr "有 END-INFO-DIR-ENTRY, 但是沒有相對應的 START-INFO-DIR-ENTRY"
+
+#: util/install-info.c:1150 util/install-info.c:1160
+#, c-format
+msgid "%s: Specify the Info directory only once.\n"
+msgstr "%s: 只有指定 Info 目錄一次.\n"
+
+#: util/install-info.c:1195
+#, c-format
+msgid "%s: Specify the Info file only once.\n"
+msgstr "%s: 只有指定 Info 檔案一次.\n"
+
+#: util/install-info.c:1244
+#, c-format
+msgid "excess command line argument `%s'"
+msgstr "多餘的命令列引數 `%s'"
+
+#: util/install-info.c:1248
+msgid "No input file specified; try --help for more information."
+msgstr "未指定輸入檔案; 試試 --help 以取得更多的資訊."
+
+#: util/install-info.c:1251
+msgid "No dir file specified; try --help for more information."
+msgstr "未指定 dir 檔案; 試試 --help 以取得取多的資訊."
+
+#: util/install-info.c:1273
+#, c-format
+msgid "no info dir entry in `%s'"
+msgstr "`%s' 內沒有 info dir 項目"
+
+#: util/install-info.c:1388
+#, c-format
+msgid "menu item `%s' already exists, for file `%s'"
+msgstr "目錄項目 `%s' 已存在, 是給檔案 `%s' 的"
+
+#: util/install-info.c:1411
+#, c-format
+msgid "no entries found for `%s'; nothing deleted"
+msgstr "找不到 `%s' 的項目; 未刪除任何項目"
+
+#: util/texindex.c:245
+msgid "display this help and exit"
+msgstr "顯示求助資訊, 然後離開"
+
+#: util/texindex.c:247
+msgid "keep temporary files around after processing"
+msgstr "處理完畢後, 不移除暫存檔"
+
+#: util/texindex.c:249
+msgid "do not keep temporary files around after processing (default)"
+msgstr "處理完畢後, 移除暫存檔 (預設值)"
+
+#: util/texindex.c:251
+msgid "send output to FILE"
+msgstr "將輸出送至 FILE"
+
+#: util/texindex.c:253
+msgid "display version information and exit"
+msgstr "顯示版本資訊, 然後離開"
+
+#: util/texindex.c:264
+#, c-format
+msgid "Usage: %s [OPTION]... FILE...\n"
+msgstr "用法: %s [OPTION]... FILE...\n"
+
+#: util/texindex.c:265
+msgid "Generate a sorted index for each TeX output FILE.\n"
+msgstr "為每個 TeX 輸出 FILE 產生一個排序的索引.\n"
+
+#: util/texindex.c:268
+#, 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:270
+msgid ""
+"\n"
+"Options:\n"
+msgstr ""
+"\n"
+"選項:\n"
+
+#: util/texindex.c:887 util/texindex.c:921 util/texindex.c:997
+#: util/texindex.c:1025
+#, c-format
+msgid "%s: not a texinfo index file"
+msgstr "%s: 不是一個 texinfo 索引檔"
+
+#: util/texindex.c:982
+#, c-format
+msgid "failure reopening %s"
+msgstr "重新開啟 %s 時發生錯誤"
+
+#: util/texindex.c:1224
+#, c-format
+msgid "No page number in %s"
+msgstr "在 %s 中沒有頁碼"
+
+#: util/texindex.c:1295
+#, c-format
+msgid "entry %s follows an entry with a secondary name"
+msgstr ""
+
+#: util/texindex.c:1633
+#, c-format
+msgid "%s; for file `%s'.\n"
+msgstr ""
+
+#, fuzzy
+#~ msgid ""
+#~ "Email bug reports to bug-texinfo@gnu.org,\n"
+#~ "general questions and discussion to help-texinfo@gnu.org."
+#~ msgstr ""
+#~ "\n"
+#~ "程式臭蟲, 請以電子郵件 (英文) 回報至 bug-texinfo@gnu.org,\n"
+#~ "一般問題與討論, 請以電子郵件 (英文) 寄到 help-texinfo@gnu.org.\n"
+
+#~ msgid "Basic Commands in Info Windows\n"
+#~ msgstr "Info 分隔視窗內的基本指令\n"
+
+#~ msgid "Moving within a node:\n"
+#~ msgstr "在節點內移動:\n"
+
+#~ msgid "Selecting other nodes:\n"
+#~ msgstr "選擇其它的節點:\n"
+
+#~ msgid "Other commands:\n"
+#~ msgstr "其它指令:\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"
+#~ "將 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 個錯誤後結束 (預設值為 %d).\n"
+#~ " --fill-column=NUM 每行在 NUM 個字元處斷行 (預設值為 %d).\n"
+#~ " --footnote-style=STYLE 以 STYLE 方式輸出註腳:\n"
+#~ " `separate' 是將註腳放置在它們自己的節點,\n"
+#~ " `end' 是將註腳放置在它們被定義的節點\n"
+#~ " 的尾端 (預設值).\n"
+#~ " --force 即使有錯誤產生, 也維持輸出.\n"
+#~ " --help 顯示求助資訊, 然後離開.\n"
+#~ " --html 輸出 HTML 格式, 而非 Info;\n"
+#~ " -I DIR 將 DIR 加在 @include 搜尋路徑之後.\n"
+#~ " --ifhtml 即使不輸出 HTML 格式, 也一併處理 @ifhtml\n"
+#~ " 與 @html 文字.\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 不產生 Info 節點分隔線與 節點: 行, 以及\n"
+#~ " 未指定 --output 時, 輸出至標準輸出設備.\n"
+#~ " --no-ifhtml 不處理 @ifhtml 與 @html 文字.\n"
+#~ " --no-ifinfo 不處理 @ifinfo 文字.\n"
+#~ " --no-iftex 不處理 @iftex 與 @tex 文字.\n"
+#~ " --no-split 不分割大的 Info 輸出檔案, 也不一個節點\n"
+#~ " 就產生一個 HTML 檔案\n"
+#~ " --no-validate 不對節點的交互參照作有效檢查.\n"
+#~ " --no-warn 不顯示警告 (但是不包括錯誤).\n"
+#~ " --number-sections 在輸出時顯示章節等的編號.\n"
+#~ " -o, --output=FILE 輸出至檔案 FILE, 忽略任何的 @setfilename 設"
+#~ "定.\n"
+#~ " -P DIR 將 DIR 加在 @include 搜尋路徑之前.\n"
+#~ " --paragraph-indent=VAL 將 Info 段落縮排 VAL 個空白 (預設值為 %d).\n"
+#~ " 如果 VAL 為 `none', 不作縮排;\n"
+#~ " 如果 VAL 為 `asis', 保留目前的 縮排.\n"
+#~ " --reference-limit=NUM 最多警告 NUM 個參照 (預設值為 %d).\n"
+#~ " -U VAR 取消變數的定義, 如同 @clear.\n"
+#~ " -v, --verbose 解釋目前正在作的事.\n"
+#~ " --version 顯示版本資訊, 然後結束.\n"
+
+#~ msgid "No .png or .jpg for `%s'"
+#~ msgstr "沒有給 `%s' 的 .png 或 .jpg"
diff --git a/gnu/usr.bin/texinfo/util/install-info-html b/gnu/usr.bin/texinfo/util/install-info-html
new file mode 100644
index 00000000000..f63c97e79b8
--- /dev/null
+++ b/gnu/usr.bin/texinfo/util/install-info-html
@@ -0,0 +1,157 @@
+#!@BASH@
+# $Id: install-info-html,v 1.1.1.1 2002/06/10 13:21:26 espie 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" -a -z "$1" ]; then
+ help
+ echo "$name: No HTML documents given"
+ exit 2
+fi
+
+if [ -n "$all" -a -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