aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNo Author <no-author@gcc.gnu.org>1999-02-16 08:57:56 +0000
committerNo Author <no-author@gcc.gnu.org>1999-02-16 08:57:56 +0000
commit3a81931d583a6f85e84da0ca3ed0df90fca44a88 (patch)
tree7da3f6c9d93d317d9be2b2fb1aa2de68ee2924ae
parent7d6964b4aa96040d4da9ac93ae32f01b9a13d9d6 (diff)
This commit was manufactured by cvs2svn to create tagprereleases/egcs-1.1.2-prerelease-1
'egcs_1_1_2_prerelease_1'. From-SVN: r25236
-rw-r--r--texinfo/cygnus/Makefile.in69
-rw-r--r--texinfo/cygnus/texinfo.tex7
-rw-r--r--texinfo/cygnus/texiplus.tex325
-rwxr-xr-xtexinfo/cygnus/tocfix37
-rw-r--r--texinfo/emacs/Makefile.am21
-rw-r--r--texinfo/emacs/Makefile.in204
-rw-r--r--texinfo/emacs/README17
-rw-r--r--texinfo/emacs/detexinfo.el250
-rwxr-xr-xtexinfo/emacs/elisp-comp7
-rw-r--r--texinfo/emacs/info.el2032
-rw-r--r--texinfo/emacs/informat.el438
-rw-r--r--texinfo/emacs/makeinfo.el256
-rw-r--r--texinfo/emacs/new-useful-setqs180
-rw-r--r--texinfo/emacs/texinfmt.el4013
-rw-r--r--texinfo/emacs/texinfo.el874
-rw-r--r--texinfo/emacs/texnfo-tex.el346
-rw-r--r--texinfo/emacs/texnfo-upd.el2062
-rw-r--r--texinfo/intl/ChangeLog1022
-rw-r--r--texinfo/intl/Makefile.in214
-rw-r--r--texinfo/intl/VERSION1
-rw-r--r--texinfo/intl/bindtextdom.c199
-rw-r--r--texinfo/intl/cat-compat.c262
-rw-r--r--texinfo/intl/dcgettext.c593
-rw-r--r--texinfo/intl/dgettext.c59
-rw-r--r--texinfo/intl/explodename.c181
-rw-r--r--texinfo/intl/finddomain.c189
-rw-r--r--texinfo/intl/gettext.c70
-rw-r--r--texinfo/intl/gettext.h105
-rw-r--r--texinfo/intl/gettextP.h73
-rw-r--r--texinfo/intl/hash-string.h63
-rw-r--r--texinfo/intl/intl-compat.c76
-rw-r--r--texinfo/intl/l10nflist.c409
-rw-r--r--texinfo/intl/libgettext.h182
-rw-r--r--texinfo/intl/linux-msg.sed100
-rw-r--r--texinfo/intl/loadinfo.h58
-rw-r--r--texinfo/intl/loadmsgcat.c199
-rw-r--r--texinfo/intl/localealias.c378
-rw-r--r--texinfo/intl/po2tbl.sed.in102
-rw-r--r--texinfo/intl/textdomain.c106
-rw-r--r--texinfo/intl/xopen-msg.sed104
-rw-r--r--texinfo/makeinfo/macros/example.texi224
-rw-r--r--texinfo/makeinfo/macros/html.texi269
-rw-r--r--texinfo/makeinfo/macros/multifmt.texi41
-rw-r--r--texinfo/makeinfo/macros/res-samp.texi32
-rw-r--r--texinfo/makeinfo/macros/resume.texi64
-rw-r--r--texinfo/makeinfo/macros/simpledoc.texi135
-rw-r--r--texinfo/po/ChangeLog0
-rw-r--r--texinfo/po/Makefile.in.in247
-rw-r--r--texinfo/po/POTFILES.in22
-rw-r--r--texinfo/po/cat-id-tbl.c502
-rw-r--r--texinfo/po/de.gmobin15853 -> 0 bytes
-rw-r--r--texinfo/po/de.po2089
-rw-r--r--texinfo/po/fr.gmobin32126 -> 0 bytes
-rw-r--r--texinfo/po/fr.po2091
-rw-r--r--texinfo/po/stamp-cat-id1
-rw-r--r--texinfo/po/texinfo.pot1832
-rw-r--r--texinfo/testsuite/ChangeLog37
-rw-r--r--texinfo/testsuite/Makefile.in100
-rw-r--r--texinfo/testsuite/config/unix.exp29
-rwxr-xr-xtexinfo/testsuite/configure772
-rw-r--r--texinfo/testsuite/configure.in5
-rw-r--r--texinfo/testsuite/lib/utils.exp31
-rw-r--r--texinfo/testsuite/makeinfo.0/atnode.exp19
-rw-r--r--texinfo/testsuite/makeinfo.0/conditions.exp21
-rw-r--r--texinfo/testsuite/makeinfo.0/mini.exp17
-rw-r--r--texinfo/testsuite/makeinfo.0/missnode.exp25
-rw-r--r--texinfo/testsuite/makeinfo.0/nonsense.exp12
-rw-r--r--texinfo/testsuite/makeinfo.0/not.exp15
-rw-r--r--texinfo/testsuite/makeinfo.0/smstruct.exp14
-rw-r--r--texinfo/testsuite/text/atnode.texi21
-rw-r--r--texinfo/testsuite/text/conditions.texi26
-rw-r--r--texinfo/testsuite/text/dfltnode.texi21
-rw-r--r--texinfo/testsuite/text/minimal.texi2
-rw-r--r--texinfo/testsuite/text/missnode.texi22
-rw-r--r--texinfo/testsuite/text/nonsense.texi3
-rw-r--r--texinfo/testsuite/text/not.texi1
-rw-r--r--texinfo/testsuite/text/smstruct.texi21
77 files changed, 0 insertions, 24646 deletions
diff --git a/texinfo/cygnus/Makefile.in b/texinfo/cygnus/Makefile.in
deleted file mode 100644
index 178c463cc45..00000000000
--- a/texinfo/cygnus/Makefile.in
+++ /dev/null
@@ -1,69 +0,0 @@
-# Makefile for Cygnus overrides to Texinfo distribution. -*- Indented-Text -*-
-# 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.
-
-#### Start of system configuration section. ####
-
-srcdir = @srcdir@
-VPATH = @srcdir@
-
-LN = ln
-RM = rm -f
-
-SHELL = /bin/sh
-
-# We do not use texi2dvi because (a) we need no index, and
-# (b) texi2dvi monkeys with TEXINPUTS
-TEX = tex
-
-#### End of system configuration section. ####
-
-all: dvi
-
-sub-all:
-check:
-installcheck:
-info:
-install-info:
-
-TAGS:
-
-dvi: license.dvi lgpl.dvi
-
-install:
-
-uninstall:
-
-Makefile: Makefile.in ../config.status
- cd ..; $(SHELL) ./config.status
-
-clean mostlyclean:
- $(RM) license.?? license.??? liblic.?? liblic.??? lgpl.?? lgpl.???
-
-distclean realclean: clean
- $(RM) Makefile config.status fsf-texi.tex
-
-license.dvi: texiplus.tex texinfo.tex $(srcdir)/../license.texi $(srcdir)/../gpl.texinfo fsf-texi.tex
- TEXINPUTS=$(srcdir):.:$(srcdir)/.. $(TEX) $(srcdir)/../license.texi
-
-lgpl.dvi: texiplus.tex texinfo.tex $(srcdir)/../liblic.texi $(srcdir)/../lgpl.texinfo fsf-texi.tex
- TEXINPUTS=$(srcdir):.:$(srcdir)/.. $(TEX) $(srcdir)/../liblic.texi
- mv liblic.dvi lgpl.dvi
-
-fsf-texi.tex: $(srcdir)/../texinfo.tex
- cp $(srcdir)/../texinfo.tex fsf-texi.tex
-
-force:
diff --git a/texinfo/cygnus/texinfo.tex b/texinfo/cygnus/texinfo.tex
deleted file mode 100644
index 8546205c1f2..00000000000
--- a/texinfo/cygnus/texinfo.tex
+++ /dev/null
@@ -1,7 +0,0 @@
-%$Id: texinfo.tex,v 1.1.1.1 1998/03/23 04:42:12 law Exp $
-% Cover file to permit easy management of FSF texinfo.tex and use of
-% Cygnus local revisions.
-% First we get the official FSF one:
-\input fsf-texi.tex
-@c Now we get the Cygnus mods to override things we like to do differently:
-@input texiplus.tex
diff --git a/texinfo/cygnus/texiplus.tex b/texinfo/cygnus/texiplus.tex
deleted file mode 100644
index 01a4e1316a6..00000000000
--- a/texinfo/cygnus/texiplus.tex
+++ /dev/null
@@ -1,325 +0,0 @@
-@tex
-%% Cygnus revisions to texinfo.tex, TeX macros to handle texinfo files
-% Copyright (C) 1991 Free Software Foundation, Inc.
-%% Maintained at Cygnus Support as:
-%%$Id: texiplus.tex,v 1.1.1.1 1998/03/23 04:42:12 law Exp $
-
-%This texi+.tex file is free software; you can redistribute it and/or
-%modify it under the terms of the GNU General Public License as
-%published by the Free Software Foundation; either version 1, or (at
-
-{\let\fsfvn=\texinfoversion
-\xdef\texinfoversion{\fsfvn\ (Cygnus)}}
-\message{Loading Cygnus texinfo revisions [\texinfoversion]:}
-
-% Print the version number if in a .fmt file.
-\everyjob{\message{[Cygnus Texinfo \texinfoversion]}}
-
-\globaldefs=1 % Escape the bounds of @tex/@end tex surrounding us
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%CROPMARKS%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% These differ only slightly from FSF defaults; all crop dimens are
-% defined here (whether different or not) for ease in revising.
-\cornerlong=1pc\cornerthick=.3pt % These set size of cropmarks
-\outerhsize=7in
-\outervsize=9in
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\newif\ifdraft\drafttrue % Extra markings; turn off with @finalout
-
-% There are only two small changes to standard \title from texinfo
-% (1) to include DRAFT marking on title page unless @finalout
-% (2) to include a title-sized \tt font
-% However, since \title is local to \titlepage, we have to redefine
-% *that* whole damned thing.
-%%%%%%%%%%This is sensitive to conflict w/FSF changes!****************
-\def\titlepage{\begingroup \parindent=0pt \textfonts
- \let\subtitlerm=\tenrm
-% I deinstalled the following change because \cmr12 is undefined.
-% This change was not in the ChangeLog anyway. --rms.
-% \let\subtitlerm=\cmr12
- \def\subtitlefont{\subtitlerm \normalbaselineskip = 13pt \normalbaselines}%
- %
- \def\authorfont{\authorrm \normalbaselineskip = 16pt \normalbaselines}%
- %
- % Leave some space at the very top of the page.
- \vglue\titlepagetopglue
- %
- % Now you can print the title using @title.
- \def\title{\parsearg\titlezzz}%
-%changes from FSF only in following line:
- \def\titlezzz##1{{\let\tentt=\titlett
- \leftline{\titlefont{##1\ifdraft\hfill DRAFT\fi }}}
-%end real changes from FSF version
- % print a rule at the page bottom also.
- \finishedtitlepagefalse
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% The ``width \hsize'' below should be unnecessary, since the rule is
-% supposed to default to the smallest enclosing box...but *something*
-% in texiplus breaks that default, so we force it to hsize.
- \vskip4pt \hrule height 4pt width \hsize \vskip4pt}%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- % No rule at page bottom unless we print one at the top with @title.
- \finishedtitlepagetrue
- %
- % Now you can put text using @subtitle.
- \def\subtitle{\parsearg\subtitlezzz}%
- \def\subtitlezzz##1{{\subtitlefont \rightline{##1}}}%
- %
- % @author should come last, but may come many times.
- \def\author{\parsearg\authorzzz}%
- \def\authorzzz##1{\ifseenauthor\else\vskip 0pt plus 1filll\seenauthortrue\fi
- {\authorfont \leftline{##1}}}%
- %
- % Most title ``pages'' are actually two pages long, with space
- % at the top of the second. We don't want the ragged left on the second.
- \let\oldpage = \page
- \def\page{%
- \iffinishedtitlepage\else
- \finishtitlepage
- \fi
- \oldpage
- \let\page = \oldpage
- \hbox{}}%
-% \def\page{\oldpage \hbox{}}
-}
-\def\finishtitlepage{%
-% same comment re ``width \hsize'' as on last hrule...
- \vskip4pt \hrule width \hsize height 2pt
- \vskip\titlepagebottomglue
- \finishedtitlepagetrue
-}
-%%%%%%%%%%end sensitive to conflict w/FSF changes!********************
-
-% Cygnus uses different default page headings and footers
-\def\leadline{\ \leaders\hrule height 2.5pt depth -2pt\hfil\ }
-\def\manvers{}% Empty default version in case manual doesn't supply
-% This is for _explicitly_ turning headers off. Note that we're more
-% literal-minded than the FSF: we don't turn off _footers_! This
-% means that, unlike with the FSF macros, our ``@headings off'' do not
-% return to the default Texinfo heading-state of the document.
-% Reconsider if this gives trouble...
-\def\HEADINGSoff{
-\global\evenheadline={\hfil}
-\global\evenfootline={\line{\let\,=\thinspace\ftfnt c\,y\,g\,n\,u\,s\quad s\,u\,p\,p\,o\,r\,t\leadline\manvers}}
-\global\oddheadline={\hfil}
-\global\oddfootline={\line {\let\,=\thinspace\ftfnt c\,y\,g\,n\,u\,s\quad s\,u\,p\,p\,o\,r\,t\leadline\manvers}}}
-% SINGLEPAGE:
-\def\HEADINGSsingle{
-\global\pageno=1\HEADINGSsinglex}
-\def\HEADINGSsinglex{
-\global\evenfootline={%
-{\let\,=\thinspace\ftfnt c\,y\,g\,n\,u\,s\quad s\,u\,p\,p\,o\,r\,t}%
-\leadline\manvers}
-\global\oddfootline={%
-{\let\,=\thinspace\ftfnt c\,y\,g\,n\,u\,s\quad s\,u\,p\,p\,o\,r\,t}%
-\leadline\manvers}
-\global\evenheadline={\ftfnt\thischapter\leadline
- \ifdraft DRAFT\leadline\fi
- \bf\folio}
-\global\oddheadline={\ftfnt\thischapter\leadline
- \ifdraft DRAFT\leadline\fi
- \bf\folio}
-}
-%
-% DOUBLEPAGE:
-% use hrule leaders to delimit headings, footings from
-% body; timestamp footer; pagenos outside *bottom* to
-% permit moving chaptername to outside *top* (for easier
-% skimming). 1990 dec 31, pesch@cygnus.com
-\def\HEADINGSdouble{
-\global\pageno=1\HEADINGSdoublex}
-\def\HEADINGSdoublex{
-\global\evenfootline={%
-{\bf\folio}\ftfnt\leadline\ifdraft DRAFT\quad\fi
-\ftfnt\manvers\qquad\today
-}
-\global\oddfootline={%
-{\let\,=\thinspace\ftfnt c\,y\,g\,n\,u\,s\quad s\,u\,p\,p\,o\,r\,t}%
-\leadline{\bf\folio}%
-}
-\global\evenheadline={\ftfnt\thistitle\leadline\ifdraft DRAFT\fi}
-\global\oddheadline={\rm\leadline\thischapter}
-}
-
-% CHANGE to @finalout ---also use it to remove DRAFT markings from
-% title, footers
-%% For a final copy, take out the rectangles
-%% that mark overfull boxes (in case you have decided
-%% that the text looks ok even though it passes the margin).
-\def\finalout{\overfullrule=0pt
-%% Also take out ``DRAFT'' markings
- \global\draftfalse
- }
-
-%Font overrides; we use PostScript when possible.
-\font\textrm=pncr scaled \magstephalf
-\font\texttt=pcrr
-\font\textbf=pncb scaled \magstephalf
-\font\textit=pncri scaled \magstephalf
-\font\textsl=pcrro
-\font\textsf=slcrst at 9.5pt
-% FIXME: figure out, test dvips smallcaps kluge
-%\font\textsc=Times-SmallCaps scaled \magstephalf
-\font\ftfnt=phvr at 8pt % Cygnus Support footer-font
-
-\font\defbf=pncb scaled \magstep1 %was 1314
-
-\font\ninett=pcrr at 9pt
-\let\indtt=\ninett
-\font\indrm=pncr at 9pt
-\font\indit=pncri at 9pt
-\font\indsl=pcrro at 9pt
-\let\indsf=\indrm
-\let\indbf=\indrm
-\let\indsc=\indrm
-
-\font\chaprm=pncb at 17pt
-\font\chapit=pncbi at 17pt
-\font\chapsl=pcrbo at 16pt
-\font\chaptt=pcrb at 16pt
-\font\chapsf=slcrst at 16pt
-\let\chapbf=\chaprm
-% \chapfonts mod from FSF vn is to include baselineskip, for the few
-% cases where a title chapter overflows its line.
-\def\chapfonts{\baselineskip=19pt%
- \let\tenrm=\chaprm \let\tenit=\chapit \let\tensl=\chapsl
- \let\tenbf=\chapbf \let\tentt=\chaptt \let\smallcaps=\chapsc
- \let\tensf=\chapsf \let\teni=\chapi \let\tensy=\chapsy
- \resetmathfonts}
-
-
-\font\secrm=pncb at 14pt
-\font\secit=pncbi at 14pt
-\font\secsl=pcrbo at 13pt
-\font\sectt=pcrb at 13pt
-\font\secsf=slcrst at 13pt
-\font\secbf=pncb at 14pt
-
-\font\ssecrm=pncr at 13pt
-\font\ssecit=pncri at 13pt
-\font\ssecsl=pcrro at 12pt
-\font\ssectt=pcrr at 12pt
-\font\ssecsf=slcrst at 12pt
-\font\ssecbf=pncb at 13pt
-
-\font\titlerm=pncb at 21pt
-\font\titlett=pcrr at 20pt
-\font\authorrm=pncr scaled \magstep2
-
-\font\truesecrm=pncr at 12pt
-
-% Fonts for short table of contents
-\font\shortcontrm=pncr at 12pt
-\font\shortcontbf=pncb at 12pt
-\font\shortcontsl=pncri at 12pt
-
-% \smartitalic{ARG} outputs arg in italics, followed by an italic correction
-% unless the following character is such as not to need one.
-\def\smartitalicx{\ifx\next,\else\ifx\next-\else\ifx\next.\else\/\fi\fi\fi}
-\def\smartitalic#1{{\it #1}\futurelet\next\smartitalicx}
-% \smartitalic is used for @emph; FSF keeps trying to make it match
-% @var.
-%
-% \smartslant{ARG} outputs arg in a slanted font, followed by an
-% italic correction unless the following character is such as not to need one.
-\def\smartslantx{\ifx\next,\else\ifx\next-\else\ifx\next.\else\/\fi\fi\fi}
-\def\smartslant#1{{\sl #1}\futurelet\next\smartslantx}
-
-\let\i=\smartitalic
-\let\var=\smartslant
-\let\dfn=\smartitalic
-\let\emph=\smartitalic
-\let\cite=\smartitalic
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% @altref, if called explicitly (inside @iftex), switches the @ref
-% printed output so it lacks the square brackets used by default.
-% While we're at it, we use double quotes instead of square brackets
-% (or no decorator at all, depending on state of @altref toggle).
-% Unfortunately this requires reproducing the entire damn xrefX
-% definition. WARNING: may need to track texinfo.tex changes to xrefX...
-\newif\ifbra\bratrue
-\def\altref{\ifbra\brafalse\else\bratrue\fi}% Toggle.
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%Begin duplicate xrefX:
-\def\xrefX[#1,#2,#3,#4,#5,#6]{\begingroup%
-\def\printedmanual{\ignorespaces #5}%
-\def\printednodename{\ignorespaces #3}%
-%
-\setbox1=\hbox{\printedmanual}%
-\setbox0=\hbox{\printednodename}%
-\ifdim \wd0=0pt%
-\def\printednodename{\ignorespaces #1}%
-%%% Uncommment the following line to make the actual chapter or section title
-%%% appear inside the square brackets.
-%\def\printednodename{#1-title}%
-\fi%
-%
-%
-% If we use \unhbox0 and \unhbox1 to print the node names, TeX does
-% not insert empty discretionaries after hyphens, which means that it
-% will not find a line break at a hyphen in a node names. Since some
-% manuals are best written with fairly long node names, containing
-% hyphens, this is a loss. Therefore, we simply give the text of
-% the node name again, so it is as if TeX is seeing it for the first
-% time.
-\ifdim \wd1>0pt
-section ``\printednodename'' in \cite{\printedmanual}%
-\else%
-\turnoffactive%
-%%%%%%%%%%%%%%%Here's the change for @altref:
-\ifbra
-\refx{#1-snt}{} ``\printednodename,'' page\tie\refx{#1-pg}{}%
-\else
-\refx{#1-snt}{} \printednodename, page\tie\refx{#1-pg}{}%
-\fi
-%%%%%%%%%%%%%%%end change for @altref
-\fi
-\endgroup}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%:End duplicate xrefX
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% \widen: let examples (or whatever) fall into margins. Symmetric. Cancel
-% ``@widen{N}'' with ``@widen{-N}''.
-\newdimen\extra\extra=0pt % for ``widen''
-\global\def\widen#1{\advance\extra by #1%
-\advance\leftskip by -#1\advance\rightskip by -#1}
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% ONLY INTENDED CHANGES from FSF smallbook: tolerance and page centering
-% Use @smallbook to reset parameters for 7x9.5 format (or else 7x9.25)
-\def\smallbook{
-
-% These values for secheadingskip and subsecheadingskip are
-% experiments. RJC 7 Aug 1992
-\global\secheadingskip = 17pt plus 6pt minus 3pt
-\global\subsecheadingskip = 14pt plus 6pt minus 3pt
-
-\global\lispnarrowing = 0.3in
-\setleading{12pt}
-\advance\topskip by -1cm
-\global\parskip 3pt plus 1pt
-\global\hsize = 5in
-\advance\normaloffset by .75in % half of difference from 6.5in default hsize
-\global\vsize=7.5in
-\advance\voffset by .7in % half of difference from 8.9in default vsize
-\global\tolerance=1400
-\global\hfuzz=1pt
-\global\contentsrightmargin=0pt
-
-\global\pagewidth=\hsize
-\global\pageheight=\vsize
-
-\global\let\smalllisp=\smalllispx
-\global\let\smallexample=\smalllispx
-\global\def\Esmallexample{\Esmalllisp}
-}\textfonts
-
-\globaldefs=0 % this is NOT redundant; the \endgroup done by@end tex
- % would restore the value, but before doing that would
- % screw up if globaldefs=1 were allowed to remain here.
-@end tex
-@rm
-@smallbook
-@c some manuals (notably as) contain stuff that only looks good in
-@c smallbook; this switch controls its appearance, by local convention
-@set SMALL
diff --git a/texinfo/cygnus/tocfix b/texinfo/cygnus/tocfix
deleted file mode 100755
index c03ca8807fe..00000000000
--- a/texinfo/cygnus/tocfix
+++ /dev/null
@@ -1,37 +0,0 @@
-#!/bin/sh
-# tocfix - move a DVI file table of contents to its proper position
-
-# TeX puts the table of contents at the end of the DVI file.
-# If you're printing multiple pages per sheet, you can't fix it
-# on the printout. This program moves the TOC to be right after
-# the titlepage and copyright page.
-# It's a safe no-op to run this program on a DVI file more than once.
-
-# Some explanation: the TOC has negative page numbers, represented
-# to dviselect by an underscore. The titlepage and copyright page
-# have TeX page numbers 1 and 2, but so do the first two pages of the
-# first chapter. So we have to use absolute, as opposed to TeX,
-# page numbers to get them right, represented to dviselect by an
-# equals sign.
-
-# This program assumes that the DVI file has the standard Texinfo
-# format -- a titlepage, a copyright page, then the real text.
-
-# djm@cygnus.com (David MacKenzie)
-
-trap 'rm -f new-*.dvi title.dvi toc.dvi body_plus_toc.dvi body.dvi; exit 1' 1 3 15
-
-if [ $# -eq 0 ]; then
- echo "Usage; tocfix dvifile..." >&2; exit 1
-fi
-
-for dvi
-do
- dviselect -i $dvi -o title.dvi =1:2
- dviselect -i $dvi -o toc.dvi :_1
- dviselect -i $dvi -o body_plus_toc.dvi =3:
- dviselect -i body_plus_toc.dvi -o body.dvi 1:
- dviconcat -o new-$dvi title.dvi toc.dvi body.dvi
- mv new-$dvi $dvi
- rm -f title.dvi toc.dvi body_plus_toc.dvi body.dvi
-done
diff --git a/texinfo/emacs/Makefile.am b/texinfo/emacs/Makefile.am
deleted file mode 100644
index e2e98af28d5..00000000000
--- a/texinfo/emacs/Makefile.am
+++ /dev/null
@@ -1,21 +0,0 @@
-## Makefile.am for texinfo/emacs.
-## $Id: Makefile.am,v 1.1.1.1 1998/03/23 04:42:12 law Exp $
-## Run automake in .. to produce Makefile.in from this.
-
-# Do not byte compile our Elisp files by default.
-ELCFILES =
-
-# Do not install our Elisp files by default, either.
-noinst_LISP = info.el informat.el makeinfo.el \
- texinfmt.el texinfo.el texnfo-upd.el
-
-EXTRA_DIST = README elisp-comp new-useful-setqs $(noinst_LISP)
-
-install-data-local:
- @echo "WARNING: You must (compile and) install the Emacs Lisp files"
- @echo "WARNING: manually. See ./emacs/README for some considerations."
-
-# For some reason these do not get defined.
-distclean-lisp:
-clean-lisp:
-mostlyclean-lisp:
diff --git a/texinfo/emacs/Makefile.in b/texinfo/emacs/Makefile.in
deleted file mode 100644
index f200fa5934d..00000000000
--- a/texinfo/emacs/Makefile.in
+++ /dev/null
@@ -1,204 +0,0 @@
-# Makefile.in generated automatically by automake 1.2 from Makefile.am
-
-# Copyright (C) 1994, 1995, 1996, 1997 Free Software Foundation, Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy, distribute and modify it.
-
-# Do not byte compile our Elisp files by default.
-
-
-SHELL = /bin/sh
-
-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@
-
-INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-transform = @program_transform_name@
-
-NORMAL_INSTALL = true
-PRE_INSTALL = true
-POST_INSTALL = true
-NORMAL_UNINSTALL = true
-PRE_UNINSTALL = true
-POST_UNINSTALL = true
-CATALOGS = @CATALOGS@
-CATOBJEXT = @CATOBJEXT@
-CC = @CC@
-DATADIRNAME = @DATADIRNAME@
-EXEEXT = @EXEEXT@
-GENCAT = @GENCAT@
-GMOFILES = @GMOFILES@
-GMSGFMT = @GMSGFMT@
-GT_NO = @GT_NO@
-GT_YES = @GT_YES@
-INSTOBJEXT = @INSTOBJEXT@
-INTLDEPS = @INTLDEPS@
-INTLLIBS = @INTLLIBS@
-INTLOBJS = @INTLOBJS@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-MKINSTALLDIRS = @MKINSTALLDIRS@
-MSGFMT = @MSGFMT@
-PACKAGE = @PACKAGE@
-POFILES = @POFILES@
-POSUB = @POSUB@
-RANLIB = @RANLIB@
-TERMLIBS = @TERMLIBS@
-TEXCONFIG = @TEXCONFIG@
-TEXMF = @TEXMF@
-USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
-USE_NLS = @USE_NLS@
-VERSION = @VERSION@
-l = @l@
-
-ELCFILES =
-
-# Do not install our Elisp files by default, either.
-noinst_LISP = info.el informat.el makeinfo.el \
- texinfmt.el texinfo.el texnfo-upd.el
-
-EXTRA_DIST = README elisp-comp new-useful-setqs $(noinst_LISP)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = ../config.h
-CONFIG_CLEAN_FILES =
-LISP = $(noinst_LISP)
-
-lispdir = @lispdir@
-EMACS = @EMACS@
-DIST_COMMON = README Makefile.am Makefile.in elisp-comp
-
-
-DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
-
-TAR = tar
-GZIP = --best
-default: all
-
-.SUFFIXES:
-.SUFFIXES: .el .elc
-$(srcdir)/Makefile.in: @MAINT@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
- cd $(top_srcdir) && $(AUTOMAKE) --cygnus emacs/Makefile
-
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- cd $(top_builddir) \
- && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
-
-.el.elc:
- @echo 'WARNING: Warnings can be ignored. :-)'
- if test $(EMACS) != no; then \
- EMACS=$(EMACS) $(SHELL) $(srcdir)/elisp-comp $<; \
- fi
-tags: TAGS
-TAGS:
-
-
-distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
-
-subdir = emacs
-
-distdir: $(DISTFILES)
- @for file in $(DISTFILES); do \
- if test -f $$file; then d=.; else d=$(srcdir); fi; \
- test -f $(distdir)/$$file \
- || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
- || cp -p $$d/$$file $(distdir)/$$file; \
- done
-info:
-dvi:
-check: all
- $(MAKE)
-installcheck:
-install-info:
-install-exec:
- @$(NORMAL_INSTALL)
-
-install-data: install-data-local
- @$(NORMAL_INSTALL)
-
-install: install-exec install-data all
- @:
-
-uninstall:
-
-all: Makefile $(LISP) $(ELCFILES)
-
-install-strip:
- $(MAKE) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' INSTALL_SCRIPT='$(INSTALL_PROGRAM)' install
-installdirs:
-
-
-mostlyclean-generic:
- test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
-
-clean-generic:
- test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
-
-distclean-generic:
- rm -f Makefile $(DISTCLEANFILES)
- rm -f config.cache config.log stamp-h stamp-h[0-9]*
- test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-
-maintainer-clean-generic:
- test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
- test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
-mostlyclean: mostlyclean-lisp mostlyclean-generic
-
-clean: clean-lisp clean-generic mostlyclean
-
-distclean: distclean-lisp distclean-generic clean
- rm -f config.status
-
-maintainer-clean: maintainer-clean-lisp maintainer-clean-generic \
- distclean
- @echo "This command is intended for maintainers to use;"
- @echo "it deletes files that may require special tools to rebuild."
-
-.PHONY: default mostlyclean-lisp distclean-lisp clean-lisp \
-maintainer-clean-lisp tags distdir info dvi installcheck install-info \
-install-exec install-data install uninstall all installdirs \
-mostlyclean-generic distclean-generic clean-generic \
-maintainer-clean-generic clean mostlyclean distclean maintainer-clean
-
-
-install-data-local:
- @echo "WARNING: You must (compile and) install the Emacs Lisp files"
- @echo "WARNING: manually. See ./emacs/README for some considerations."
-
-# For some reason these do not get defined.
-distclean-lisp:
-clean-lisp:
-mostlyclean-lisp:
-
-# 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/texinfo/emacs/README b/texinfo/emacs/README
deleted file mode 100644
index 23053166c3f..00000000000
--- a/texinfo/emacs/README
+++ /dev/null
@@ -1,17 +0,0 @@
-This directory contains Emacs Lisp sources related to Texinfo.
-
-M-x texinfo-format-buffer is no longer the standard way to make .info
-files, and may or may not work. Use makeinfo instead. See the
-`makeinfo advantages' in the manual for why.
-
-The files here may or may not be newer than the versions in the latest
-Emacs distribution -- there is only one master source, so it simply
-depends on what was released later. Use whatever works better for you.
-
-They are not compiled or installed by default, because of the above, and
-also due to the wide variations in sites' Emacs installations.
-
-Even if you do install them, you may not want to compile them if your
-site is running multiple versions of Emacs, since .elc files are not
-portable between all Emacs releases. If you do want to compile them,
-just run the ./elisp-comp shell script.
diff --git a/texinfo/emacs/detexinfo.el b/texinfo/emacs/detexinfo.el
deleted file mode 100644
index fda99091c49..00000000000
--- a/texinfo/emacs/detexinfo.el
+++ /dev/null
@@ -1,250 +0,0 @@
-;;; Here is a handy keybinding:
-
-(global-set-key "\C-x\\" 'detexinfo)
-
-;;;;;;;;;;;;;;;; detexinfo.el ;;;;;;;;;;;;;;;;
-;;;
-;;; Remove Texinfo commands from a Texinfo source file.
-;;;
-;;; Copyright (C) 1991, 1992 Free Software Foundation
-;;; Robert J. Chassell
-;;; bugs to bug-texinfo@prep.ai.mit.edu
-;;;
-;;; ==> test version <==
-;;; Fails if Texinfo source file contains formatting errors.
-;;;
-;;; Version 0.05 - 3 Jun 1992
-;;; Add to list of removed commands. Improve messages.
-;;;
-;;; Version 0.04 - 27 Jan 1992
-;;; Rewrite to insert detexinfo'd text into a temporary buffer.
-;;;
-;;; Version 0.03 - 27 Dec 1991
-;;; Improved messages.
-;;;
-;;; Version 0.02 - 13 Nov 1991
-;;; detexinfo-remove-inline-cmd, detexinfo-syntax-table: Handle
-;;; nested commands.
-;;; detexinfo: Handle nested @'s, eg @samp{@}} and @samp{@@};
-;;; replace @TeX{} with TeX.
-;;;
-;;; Version 0.01 - 13 Nov 1991
-;;;
-;;; Based on detex.el, by Bengt Martensson, 4 Oct 1987
-;;;
-;;;;;;;;;;;;;;;;
-
-(defvar detexinfo-buffer-name "*detexinfo*"
- "*Name of the temporary buffer used by \\[detexinfo].")
-
-(defvar detexinfo-syntax-table nil)
-
-(if detexinfo-syntax-table
- nil
- (setq detexinfo-syntax-table (make-syntax-table))
- (modify-syntax-entry ?\[ "." detexinfo-syntax-table)
- (modify-syntax-entry ?\] "." detexinfo-syntax-table)
- (modify-syntax-entry ?\" "." detexinfo-syntax-table)
- (modify-syntax-entry ?\\ "." detexinfo-syntax-table)
- (modify-syntax-entry ?\( "." detexinfo-syntax-table)
- (modify-syntax-entry ?\) "." detexinfo-syntax-table)
- (modify-syntax-entry ?{ "(}" detexinfo-syntax-table)
- (modify-syntax-entry ?} "){" detexinfo-syntax-table))
-
-(defun detexinfo ()
- "Remove Texinfo commands from current buffer, copying result to new buffer.
-BUG: Fails if Texinfo source file contains formatting errors."
- (interactive)
- (let ((input-buffer (current-buffer)))
- ;; Find a buffer to use.
- (switch-to-buffer (get-buffer-create detexinfo-buffer-name))
- (setq major-mode 'detexinfo-mode)
- (set-syntax-table detexinfo-syntax-table)
- (erase-buffer)
- (insert-buffer-substring input-buffer)
-
- ;; Replace @{ and @} with %#* and *#% temporarily, so @samp{@{} works.
- ;; What is a better way of doing this??
- (goto-char (point-min))
- (while (search-forward "@{" nil t) ; e.g., @samp{@{}
- (replace-match "%#*"))
- (goto-char (point-min))
- (while (search-forward "@}" nil t)
- (forward-char -3) ; e.g., @samp{@@}
- (if (looking-at "@") ; Two @@ in a row
- (progn
- (delete-char 2)
- (insert "%&%#"))
- (forward-char 1)
- (delete-char 2)
- (insert "*#%")))
-
- (goto-char (point-min))
- ;; Remove @refill, the only inline command without braces.
- (while (search-forward "@refill" nil t)
- (replace-match ""))
- ;; Replace @TeX{} with TeX
- (goto-char (point-min))
- (while (search-forward "@TeX{}" nil t) (replace-match "TeX" t t))
-
- (detexinfo-remove-line-cmds-without-arg)
- (detexinfo-remove-inline-cmds-without-arg)
- (detexinfo-remove-inline-cmds-keep-arg)
- (detexinfo-remove-line-cmds-deletable-arg)
- (detexinfo-remove-line-cmds-maybe-delete-arg)
- (detexinfo-remove-line-cmds-keep-arg)
-
- ;; Now replace %#*, *#%, and %&%# with {, }, and @@.
- (goto-char (point-min))
- (while (search-forward "%#*" nil t)
- (replace-match "{"))
- (goto-char (point-min))
- (while (search-forward "*#%" nil t)
- (replace-match "}"))
- (goto-char (point-min))
- (while (search-forward "%&%#" nil t)
- (replace-match "@@"))
-
- ;; Scan for remaining two character @-commands
- (goto-char (point-min))
- (while (search-forward "@" nil t)
- (cond ((looking-at "[*:]")
- (delete-region (1- (point)) (1+ (point))))
- ((looking-at "[{}^@.'`]\"?!")
- (delete-region (1- (point)) (point)))))
-
- (goto-char (point-min))
- (message "Done...removed Texinfo commands from buffer. You may save it.")))
-
-(defun detexinfo-remove-whole-line (cmd)
- "Delete Texinfo line command CMD at beginning of line and rest of line."
- (goto-char (point-min))
- (while
- (re-search-forward
- (concat "^@" cmd "[ \n]+") (point-max) t)
- (goto-char (match-beginning 0))
- (delete-region
- (point) (save-excursion (end-of-line) (1+ (point))))))
-
-(defun detexinfo-remove-inline-cmd (cmd)
- "Delete Texinfo inline command CMD, eg. @point, @code."
- (goto-char (point-min))
- (while
- (re-search-forward (concat "@" cmd "{") (point-max) t)
- (save-excursion
- (forward-char -1)
- (forward-sexp 1)
- (delete-char -1)) ; delete right brace
- (delete-region (point) (match-beginning 0))))
-
-;;;;;;;;;;;;;;;;
-
-;;; 1. @setfilename and other line commands with args to delete
-
-(defvar detexinfo-line-cmds-deletable-arg
- '("enumerate" "ftable" "vtable" "itemize" "table"
- "setfilename" "settitle" "setchapternewpage"
- "footnotestyle" "paragraphindent"
- "include" "need" "sp"
- "clear" "ifclear" "ifset" "set"
- "defcodeindex" "defindex" "syncodeindex" "synindex")
- "List of Texinfo commands whose arguments should be deleted.")
-
-(defun detexinfo-remove-line-cmds-deletable-arg ()
- "Delete Texinfo line commands together with their args, eg @setfilename."
- (message "Removing commands such as @enumerate...with their arguments...")
- (mapcar 'detexinfo-remove-whole-line
- detexinfo-line-cmds-deletable-arg))
-
-;;; 2. @cindex and other cmds with args that may be deleted
-;;; This list is here just to make it easier to revise the
-;;; categories. In particular, you might want to keep the index entries.
-
-(defvar detexinfo-line-cmds-maybe-delete-arg
- '("cindex" "findex" "kindex" "pindex" "tindex" "vindex" "node"
- "c" "comment" "end" "headings" "printindex" "vskip"
- "evenfooting" "evenheading" "everyfooting" "everyheading"
- "oddfooting" "oddheading")
- "List of Texinfo commands whose arguments may possibly be deleted.")
-
-(defun detexinfo-remove-line-cmds-maybe-delete-arg ()
- "Delete Texinfo line commands together with their arguments, eg, @cindex."
- (message "Removing commands such as @cindex...with their arguments...")
- (mapcar 'detexinfo-remove-whole-line
- detexinfo-line-cmds-maybe-delete-arg))
-
-;;; 3. @chapter and other line cmds with args to keep.
-
-(defvar detexinfo-line-cmds-keep-arg
- '("top" "chapter" "section" "subsection" "subsubsection"
- "unnumbered" "unnumberedsec" "unnumberedsubsec" "unnumberedsubsubsec"
- "majorheading" "chapheading" "heading" "subheading" "subsubheading"
- "appendix" "appendixsec" "appendixsubsec" "appendixsubsubsec"
- "item" "itemx"
- "title" "subtitle" "center" "author" "exdent"
- "defcv" "deffn" "defivar" "defmac" "defmethod" "defop" "defopt"
- "defspec" "deftp" "deftypefn" "deftypefun" "deftypvr"
- "deftypevar" "defun" "defvar" "defvr")
- "List of Texinfo line commands whose arguments should be kept.")
-
-(defun detexinfo-remove-line-cmds-keep-arg ()
- "Delete Texinfo line commands but keep their arguments, eg @chapter."
- (message "Removing commands such as @chapter...but not their arguments...")
- (mapcar 'detexinfo-remove-line-cmd-keep-arg
- detexinfo-line-cmds-keep-arg))
-
-(defun detexinfo-remove-line-cmd-keep-arg (cmd)
- "Delete Texinfo line command CMD but keep its argument, eg @chapter."
- (goto-char (point-min))
- (while
- (re-search-forward
- (concat "^@" cmd "[ \n]+") (point-max) t)
- (delete-region (match-beginning 0) (match-end 0))))
-
-;;; 4. @bye and other line commands without args.
-
-(defvar detexinfo-line-cmds-without-arg
- '("bye" "contents" "display" "example" "finalout"
- "flushleft" "flushright" "format" "group" "ifhtml" "ifinfo" "iftex"
- "ignore" "lisp" "menu" "noindent" "page" "quotation"
- "shortcontents" "smallbook" "smallexample" "smalllisp"
- "summarycontents" "tex" "thischapter" "thischaptername"
- "thisfile" "thispage" "thissection" "thistitle" "titlepage")
- "List of Texinfo commands without arguments that should be deleted.")
-
-(defun detexinfo-remove-line-cmds-without-arg ()
- "Delete line Texinfo commands that lack args, eg. @example."
- (message "Removing commands such as @example...that lack arguments...")
- (mapcar 'detexinfo-remove-whole-line
- detexinfo-line-cmds-without-arg))
-
-;;; 5. @equiv and other inline cmds without args.
-
-(defvar detexinfo-inline-cmds-without-arg
- '("equiv" "error" "expansion" "point" "print" "result"
- "asis" "br" "bullet" "dots" "minus" "today")
- "List of Texinfo inline commands without arguments that should be deleted.")
-
-(defun detexinfo-remove-inline-cmds-without-arg ()
- "Delete Texinfo inline commands in that lack arguments."
- (message "Removing within line commands such as @result...")
- (mapcar 'detexinfo-remove-inline-cmd
- detexinfo-inline-cmds-without-arg))
-
-;;; 6. @code and other inline cmds with args to keep
-
-(defvar detexinfo-inline-cmds-keep-arg
- '("b" "cartouche" "cite" "code" "copyright" "ctrl" "dfn" "dmn"
- "emph" "file" "footnote" "i" "inforef"
- "kbd" "key" "pxref" "r" "ref" "samp" "sc" "titlefont"
- "strong" "t" "var" "w" "xref")
- "List of Texinfo inline commands with arguments that should be kept.")
-
-(defun detexinfo-remove-inline-cmds-keep-arg ()
- "Delete Texinfo inline commands but keep its arg, eg. @code."
- (message
- "Removing within line commands such as @code...but not their arguments...")
- (mapcar 'detexinfo-remove-inline-cmd
- detexinfo-inline-cmds-keep-arg))
-
-;;;;;;;;;;;;;;;; end detexinfo.el ;;;;;;;;;;;;;;;;
diff --git a/texinfo/emacs/elisp-comp b/texinfo/emacs/elisp-comp
deleted file mode 100755
index eb16b5da1bf..00000000000
--- a/texinfo/emacs/elisp-comp
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/bin/sh
-# $Id: elisp-comp,v 1.1.1.1 1997/08/21 22:57:57 jason Exp $
-# Trivial script to compile the Elisp files.
-setpath=${TMPDIR-/tmp}/elc.$$
-echo "(setq load-path (cons nil load-path))" > $setpath
-emacs -batch -l $setpath -f batch-byte-compile "$@"
-rm -f $setpath
diff --git a/texinfo/emacs/info.el b/texinfo/emacs/info.el
deleted file mode 100644
index ec21f5b9ff9..00000000000
--- a/texinfo/emacs/info.el
+++ /dev/null
@@ -1,2032 +0,0 @@
-;;; info.el --- info package for Emacs.
-
-;; Copyright (C) 1985, 86, 92, 93, 94, 95, 96, 97 Free Software
-;; Foundation, Inc.
-
-;; Maintainer: FSF
-;; Keywords: help
-
-;; This file is part of GNU Emacs.
-
-;; GNU Emacs is free software; you can redistribute it and/or modify
-;; it under the terms of the GNU General Public License as published by
-;; the Free Software Foundation; either version 2, or (at your option)
-;; any later version.
-
-;; GNU Emacs is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-;; GNU General Public License for more details.
-
-;; You should have received a copy of the GNU General Public License
-;; along with GNU Emacs; see the file COPYING. If not, write to the
-;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-;; Boston, MA 02111-1307, USA.
-
-;;; Commentary:
-
-;; Note that nowadays we expect info files to be made using makeinfo.
-
-;;; Code:
-
-(defgroup info nil
- "Info subsystem"
- :group 'help
- :group 'docs)
-
-
-(defvar Info-history nil
- "List of info nodes user has visited.
-Each element of list is a list (FILENAME NODENAME BUFFERPOS).")
-
-(defcustom Info-enable-edit nil
- "*Non-nil means the \\<Info-mode-map>\\[Info-edit] command in Info can edit the current node.
-This is convenient if you want to write info files by hand.
-However, we recommend that you not do this.
-It is better to write a Texinfo file and generate the Info file from that,
-because that gives you a printed manual as well."
- :type 'boolean
- :group 'info)
-
-(defvar Info-enable-active-nodes nil
- "Non-nil allows Info to execute Lisp code associated with nodes.
-The Lisp code is executed when the node is selected.")
-(put 'Info-enable-active-nodes 'risky-local-variable t)
-
-(defcustom Info-fontify t
- "*Non-nil enables highlighting and fonts in Info nodes."
- :type 'boolean
- :group 'info)
-
-(defcustom Info-fontify-maximum-menu-size 30000
- "*Maximum size of menu to fontify if `Info-fontify' is non-nil."
- :type 'integer
- :group 'info)
-
-(defvar Info-directory-list
- (let ((path (getenv "INFOPATH"))
- ;; This is for older Emacs versions
- ;; which might get this info.el from the Texinfo distribution.
- (path-separator (if (boundp 'path-separator) path-separator
- (if (eq system-type 'ms-dos) ";" ":")))
- (source (expand-file-name "info/" source-directory))
- (sibling (if installation-directory
- (expand-file-name "info/" installation-directory)))
- alternative)
- (if path
- (let ((list nil)
- idx)
- (while (> (length path) 0)
- (setq idx (or (string-match path-separator path) (length path))
- list (cons (substring path 0 idx) list)
- path (substring path (min (1+ idx)
- (length path)))))
- (nreverse list))
- (if (and sibling (file-exists-p sibling))
- (setq alternative sibling)
- (setq alternative source))
- (if (or (member alternative Info-default-directory-list)
- (not (file-exists-p alternative))
- ;; On DOS/NT, we use movable executables always,
- ;; and we must always find the Info dir at run time.
- (if (or (eq system-type 'ms-dos) (eq system-type 'windows-nt))
- nil
- ;; Use invocation-directory for Info only if we used it for
- ;; exec-directory also.
- (not (string= exec-directory
- (expand-file-name "lib-src/"
- installation-directory)))))
- Info-default-directory-list
- (reverse (cons alternative
- (cdr (reverse Info-default-directory-list)))))))
- "List of directories to search for Info documentation files.
-nil means not yet initialized. In this case, Info uses the environment
-variable INFOPATH to initialize it, or `Info-default-directory-list'
-if there is no INFOPATH variable in the environment.
-The last element of `Info-default-directory-list' is the directory
-where Emacs installs the Info files that come with it.
-
-If you run the Emacs executable from the `src' directory in the Emacs
-source tree, the `info' directory in the source tree is used as the last
-element, in place of the installation Info directory. This is useful
-when you run a version of Emacs without installing it.")
-
-(defcustom Info-additional-directory-list nil
- "List of additional directories to search for Info documentation files.
-These directories are not searched for merging the `dir' file."
- :type '(repeat directory)
- :group 'info)
-
-(defvar Info-current-file nil
- "Info file that Info is now looking at, or nil.
-This is the name that was specified in Info, not the actual file name.
-It doesn't contain directory names or file name extensions added by Info.")
-
-(defvar Info-current-subfile nil
- "Info subfile that is actually in the *info* buffer now,
-or nil if current info file is not split into subfiles.")
-
-(defvar Info-current-node nil
- "Name of node that Info is now looking at, or nil.")
-
-(defvar Info-tag-table-marker nil
- "Marker pointing at beginning of current Info file's tag table.
-Marker points nowhere if file has no tag table.")
-
-(defvar Info-tag-table-buffer nil
- "Buffer used for indirect tag tables.")
-
-(defvar Info-current-file-completions nil
- "Cached completion list for current Info file.")
-
-(defvar Info-index-alternatives nil
- "List of possible matches for last Info-index command.")
-
-(defvar Info-standalone nil
- "Non-nil if Emacs was started solely as an Info browser.")
-
-(defvar Info-suffix-list
- (if (eq system-type 'ms-dos)
- '( (".gz" . "gunzip")
- (".z" . "gunzip")
- (".inf" . nil)
- ("" . nil))
- '( (".info.Z". "uncompress")
- (".info.Y". "unyabba")
- (".info.gz". "gunzip")
- (".info.z". "gunzip")
- (".info". nil)
- ("-info.Z". "uncompress")
- ("-info.Y". "unyabba")
- ("-info.gz". "gunzip")
- ("-info.z". "gunzip")
- ("-info". nil)
- ("/index.Z". "uncompress")
- ("/index.Y". "unyabba")
- ("/index.gz". "gunzip")
- ("/index.z". "gunzip")
- ("/index". nil)
- (".Z". "uncompress")
- (".Y". "unyabba")
- (".gz". "gunzip")
- (".z". "gunzip")
- ("". nil)))
- "List of file name suffixes and associated decoding commands.
-Each entry should be (SUFFIX . STRING); the file is given to
-the command as standard input. If STRING is nil, no decoding is done.
-Because the SUFFIXes are tried in order, the empty string should
-be last in the list.")
-
-;; Concatenate SUFFIX onto FILENAME. SUFFIX should start with a dot.
-;; First, on ms-dos, delete some of the extension in FILENAME
-;; to make room.
-(defun info-insert-file-contents-1 (filename suffix)
- (if (not (eq system-type 'ms-dos))
- (concat filename suffix)
- (let* ((sans-exts (file-name-sans-extension filename))
- ;; How long is the extension in FILENAME (not counting the dot).
- (ext-len (max 0 (- (length filename) (length sans-exts) 1)))
- ext-left)
- ;; SUFFIX starts with a dot. If FILENAME already has one,
- ;; get rid of the one in SUFFIX (unless suffix is empty).
- (or (and (<= ext-len 0)
- (not (eq (aref filename (1- (length filename))) ?.)))
- (= (length suffix) 0)
- (setq suffix (substring suffix 1)))
- ;; How many chars of that extension should we keep?
- (setq ext-left (min ext-len (max 0 (- 3 (length suffix)))))
- ;; Get rid of the rest of the extension, and add SUFFIX.
- (concat (substring filename 0 (- (length filename)
- (- ext-len ext-left)))
- suffix))))
-
-(defun info-insert-file-contents (filename &optional visit)
- "Insert the contents of an info file in the current buffer.
-Do the right thing if the file has been compressed or zipped."
- (let ((tail Info-suffix-list)
- fullname decoder)
- (if (file-exists-p filename)
- ;; FILENAME exists--see if that name contains a suffix.
- ;; If so, set DECODE accordingly.
- (progn
- (while (and tail
- (not (string-match
- (concat (regexp-quote (car (car tail))) "$")
- filename)))
- (setq tail (cdr tail)))
- (setq fullname filename
- decoder (cdr (car tail))))
- ;; Try adding suffixes to FILENAME and see if we can find something.
- (while (and tail
- (not (file-exists-p (info-insert-file-contents-1
- filename (car (car tail))))))
- (setq tail (cdr tail)))
- ;; If we found a file with a suffix, set DECODER according to the suffix
- ;; and set FULLNAME to the file's actual name.
- (setq fullname (info-insert-file-contents-1 filename (car (car tail)))
- decoder (cdr (car tail)))
- (or tail
- (error "Can't find %s or any compressed version of it" filename)))
- ;; check for conflict with jka-compr
- (if (and (featurep 'jka-compr)
- (jka-compr-installed-p)
- (jka-compr-get-compression-info fullname))
- (setq decoder nil))
- (insert-file-contents fullname visit)
- (if decoder
- (let ((buffer-read-only nil)
- (default-directory (or (file-name-directory fullname)
- default-directory)))
- (call-process-region (point-min) (point-max) decoder t t)))))
-
-;;;###autoload (add-hook 'same-window-buffer-names "*info*")
-
-;;;###autoload
-(defun info (&optional file)
- "Enter Info, the documentation browser.
-Optional argument FILE specifies the file to examine;
-the default is the top-level directory of Info.
-
-In interactive use, a prefix argument directs this command
-to read a file name from the minibuffer.
-
-The search path for Info files is in the variable `Info-directory-list'.
-The top-level Info directory is made by combining all the files named `dir'
-in all the directories in that path."
- (interactive (if current-prefix-arg
- (list (read-file-name "Info file name: " nil nil t))))
- (if file
- (Info-goto-node (concat "(" file ")"))
- (if (get-buffer "*info*")
- (pop-to-buffer "*info*")
- (Info-directory))))
-
-;;;###autoload
-(defun info-standalone ()
- "Run Emacs as a standalone Info reader.
-Usage: emacs -f info-standalone [filename]
-In standalone mode, \\<Info-mode-map>\\[Info-exit] exits Emacs itself."
- (setq Info-standalone t)
- (if (and command-line-args-left
- (not (string-match "^-" (car command-line-args-left))))
- (condition-case err
- (progn
- (info (car command-line-args-left))
- (setq command-line-args-left (cdr command-line-args-left)))
- (error (send-string-to-terminal
- (format "%s\n" (if (eq (car-safe err) 'error)
- (nth 1 err) err)))
- (save-buffers-kill-emacs)))
- (info)))
-
-;; Go to an info node specified as separate filename and nodename.
-;; no-going-back is non-nil if recovering from an error in this function;
-;; it says do not attempt further (recursive) error recovery.
-(defun Info-find-node (filename nodename &optional no-going-back)
- ;; Convert filename to lower case if not found as specified.
- ;; Expand it.
- (if filename
- (let (temp temp-downcase found)
- (setq filename (substitute-in-file-name filename))
- (if (string= (downcase filename) "dir")
- (setq found t)
- (let ((dirs (if (string-match "^\\./" filename)
- ;; If specified name starts with `./'
- ;; then just try current directory.
- '("./")
- (if (file-name-absolute-p filename)
- ;; No point in searching for an
- ;; absolute file name
- '(nil)
- (if Info-additional-directory-list
- (append Info-directory-list
- Info-additional-directory-list)
- Info-directory-list)))))
- ;; Search the directory list for file FILENAME.
- (while (and dirs (not found))
- (setq temp (expand-file-name filename (car dirs)))
- (setq temp-downcase
- (expand-file-name (downcase filename) (car dirs)))
- ;; Try several variants of specified name.
- (let ((suffix-list Info-suffix-list))
- (while (and suffix-list (not found))
- (cond ((file-exists-p
- (info-insert-file-contents-1
- temp (car (car suffix-list))))
- (setq found temp))
- ((file-exists-p
- (info-insert-file-contents-1
- temp-downcase (car (car suffix-list))))
- (setq found temp-downcase)))
- (setq suffix-list (cdr suffix-list))))
- (setq dirs (cdr dirs)))))
- (if found
- (setq filename found)
- (error "Info file %s does not exist" filename))))
- ;; Record the node we are leaving.
- (if (and Info-current-file (not no-going-back))
- (setq Info-history
- (cons (list Info-current-file Info-current-node (point))
- Info-history)))
- ;; Go into info buffer.
- (or (eq major-mode 'Info-mode) (pop-to-buffer "*info*"))
- (buffer-disable-undo (current-buffer))
- (or (eq major-mode 'Info-mode)
- (Info-mode))
- (widen)
- (setq Info-current-node nil)
- (unwind-protect
- (progn
- ;; Switch files if necessary
- (or (null filename)
- (equal Info-current-file filename)
- (let ((buffer-read-only nil))
- (setq Info-current-file nil
- Info-current-subfile nil
- Info-current-file-completions nil
- buffer-file-name nil)
- (erase-buffer)
- (if (eq filename t)
- (Info-insert-dir)
- (info-insert-file-contents filename t)
- (setq default-directory (file-name-directory filename)))
- (set-buffer-modified-p nil)
- ;; See whether file has a tag table. Record the location if yes.
- (goto-char (point-max))
- (forward-line -8)
- ;; Use string-equal, not equal, to ignore text props.
- (if (not (or (string-equal nodename "*")
- (not
- (search-forward "\^_\nEnd tag table\n" nil t))))
- (let (pos)
- ;; We have a tag table. Find its beginning.
- ;; Is this an indirect file?
- (search-backward "\nTag table:\n")
- (setq pos (point))
- (if (save-excursion
- (forward-line 2)
- (looking-at "(Indirect)\n"))
- ;; It is indirect. Copy it to another buffer
- ;; and record that the tag table is in that buffer.
- (let ((buf (current-buffer))
- (tagbuf
- (or Info-tag-table-buffer
- (generate-new-buffer " *info tag table*"))))
- (setq Info-tag-table-buffer tagbuf)
- (save-excursion
- (set-buffer tagbuf)
- (buffer-disable-undo (current-buffer))
- (setq case-fold-search t)
- (erase-buffer)
- (insert-buffer-substring buf))
- (set-marker Info-tag-table-marker
- (match-end 0) tagbuf))
- (set-marker Info-tag-table-marker pos)))
- (set-marker Info-tag-table-marker nil))
- (setq Info-current-file
- (if (eq filename t) "dir" filename))))
- ;; Use string-equal, not equal, to ignore text props.
- (if (string-equal nodename "*")
- (progn (setq Info-current-node nodename)
- (Info-set-mode-line))
- ;; Search file for a suitable node.
- (let ((guesspos (point-min))
- (regexp (concat "Node: *" (regexp-quote nodename) " *[,\t\n\177]")))
- ;; First get advice from tag table if file has one.
- ;; Also, if this is an indirect info file,
- ;; read the proper subfile into this buffer.
- (if (marker-position Info-tag-table-marker)
- (save-excursion
- (let ((m Info-tag-table-marker)
- found found-mode)
- (save-excursion
- (set-buffer (marker-buffer m))
- (goto-char m)
- (beginning-of-line) ;so re-search will work.
- (setq found (re-search-forward regexp nil t))
- (if found
- (setq guesspos (read (current-buffer))))
- (setq found-mode major-mode))
- (if found
- (progn
- ;; If this is an indirect file, determine
- ;; which file really holds this node and
- ;; read it in.
- (if (not (eq found-mode 'Info-mode))
- ;; Note that the current buffer must be
- ;; the *info* buffer on entry to
- ;; Info-read-subfile. Thus the hackery
- ;; above.
- (setq guesspos (Info-read-subfile guesspos))))
- (error "No such node: %s" nodename)))))
- (goto-char (max (point-min) (- guesspos 1000)))
- ;; Now search from our advised position (or from beg of buffer)
- ;; to find the actual node.
- (catch 'foo
- (while (search-forward "\n\^_" nil t)
- (forward-line 1)
- (let ((beg (point)))
- (forward-line 1)
- (if (re-search-backward regexp beg t)
- (throw 'foo t))))
- (error "No such node: %s" nodename)))
- (Info-select-node)))
- ;; If we did not finish finding the specified node,
- ;; go back to the previous one.
- (or Info-current-node no-going-back (null Info-history)
- (let ((hist (car Info-history)))
- (setq Info-history (cdr Info-history))
- (Info-find-node (nth 0 hist) (nth 1 hist) t)
- (goto-char (nth 2 hist)))))
- (goto-char (point-min)))
-
-;; Cache the contents of the (virtual) dir file, once we have merged
-;; it for the first time, so we can save time subsequently.
-(defvar Info-dir-contents nil)
-
-;; Cache for the directory we decided to use for the default-directory
-;; of the merged dir text.
-(defvar Info-dir-contents-directory nil)
-
-;; Record the file attributes of all the files from which we
-;; constructed Info-dir-contents.
-(defvar Info-dir-file-attributes nil)
-
-;; Construct the Info directory node by merging the files named `dir'
-;; from various directories. Set the *info* buffer's
-;; default-directory to the first directory we actually get any text
-;; from.
-(defun Info-insert-dir ()
- (if (and Info-dir-contents Info-dir-file-attributes
- ;; Verify that none of the files we used has changed
- ;; since we used it.
- (eval (cons 'and
- (mapcar '(lambda (elt)
- (let ((curr (file-attributes (car elt))))
- ;; Don't compare the access time.
- (if curr (setcar (nthcdr 4 curr) 0))
- (setcar (nthcdr 4 (cdr elt)) 0)
- (equal (cdr elt) curr)))
- Info-dir-file-attributes))))
- (insert Info-dir-contents)
- (let ((dirs Info-directory-list)
- buffers buffer others nodes dirs-done)
-
- (setq Info-dir-file-attributes nil)
-
- ;; Search the directory list for the directory file.
- (while dirs
- (let ((truename (file-truename (expand-file-name (car dirs)))))
- (or (member truename dirs-done)
- (member (directory-file-name truename) dirs-done)
- ;; Try several variants of specified name.
- ;; Try upcasing, appending `.info', or both.
- (let* (file
- (attrs
- (or
- (progn (setq file (expand-file-name "dir" truename))
- (file-attributes file))
- (progn (setq file (expand-file-name "DIR" truename))
- (file-attributes file))
- (progn (setq file (expand-file-name "dir.info" truename))
- (file-attributes file))
- (progn (setq file (expand-file-name "DIR.INFO" truename))
- (file-attributes file)))))
- (setq dirs-done
- (cons truename
- (cons (directory-file-name truename)
- dirs-done)))
- (if attrs
- (save-excursion
- (or buffers
- (message "Composing main Info directory..."))
- (set-buffer (generate-new-buffer "info dir"))
- (insert-file-contents file)
- (setq buffers (cons (current-buffer) buffers)
- Info-dir-file-attributes
- (cons (cons file attrs)
- Info-dir-file-attributes))))))
- (or (cdr dirs) (setq Info-dir-contents-directory
- (file-name-as-directory (car dirs))))
- (setq dirs (cdr dirs))))
-
- (or buffers
- (error "Can't find the Info directory node"))
- ;; Distinguish the dir file that comes with Emacs from all the
- ;; others. Yes, that is really what this is supposed to do.
- ;; If it doesn't work, fix it.
- (setq buffer (car buffers)
- others (cdr buffers))
-
- ;; Insert the entire original dir file as a start; note that we've
- ;; already saved its default directory to use as the default
- ;; directory for the whole concatenation.
- (insert-buffer buffer)
-
- ;; Look at each of the other buffers one by one.
- (while others
- (let ((other (car others)))
- ;; In each, find all the menus.
- (save-excursion
- (set-buffer other)
- (goto-char (point-min))
- ;; Find each menu, and add an elt to NODES for it.
- (while (re-search-forward "^\\* Menu:" nil t)
- (let (beg nodename end)
- (forward-line 1)
- (setq beg (point))
- (search-backward "\n\^_")
- (search-forward "Node: ")
- (setq nodename (Info-following-node-name))
- (search-forward "\n\^_" nil 'move)
- (beginning-of-line)
- (setq end (point))
- (setq nodes (cons (list nodename other beg end) nodes))))))
- (setq others (cdr others)))
- ;; Add to the main menu a menu item for each other node.
- (re-search-forward "^\\* Menu:")
- (forward-line 1)
- (let ((menu-items '("top"))
- (nodes nodes)
- (case-fold-search t)
- (end (save-excursion (search-forward "\^_" nil t) (point))))
- (while nodes
- (let ((nodename (car (car nodes))))
- (save-excursion
- (or (member (downcase nodename) menu-items)
- (re-search-forward (concat "^\\* "
- (regexp-quote nodename)
- "::")
- end t)
- (progn
- (insert "* " nodename "::" "\n")
- (setq menu-items (cons nodename menu-items))))))
- (setq nodes (cdr nodes))))
- ;; Now take each node of each of the other buffers
- ;; and merge it into the main buffer.
- (while nodes
- (let ((nodename (car (car nodes))))
- (goto-char (point-min))
- ;; Find the like-named node in the main buffer.
- (if (re-search-forward (concat "\n\^_.*\n.*Node: "
- (regexp-quote nodename)
- "[,\n\t]")
- nil t)
- (progn
- (search-forward "\n\^_" nil 'move)
- (beginning-of-line)
- (insert "\n"))
- ;; If none exists, add one.
- (goto-char (point-max))
- (insert "\^_\nFile: dir\tNode: " nodename "\n\n* Menu:\n\n"))
- ;; Merge the text from the other buffer's menu
- ;; into the menu in the like-named node in the main buffer.
- (apply 'insert-buffer-substring (cdr (car nodes))))
- (setq nodes (cdr nodes)))
- ;; Kill all the buffers we just made.
- (while buffers
- (kill-buffer (car buffers))
- (setq buffers (cdr buffers)))
- (message "Composing main Info directory...done"))
- (setq Info-dir-contents (buffer-string)))
- (setq default-directory Info-dir-contents-directory))
-
-;; Note that on entry to this function the current-buffer must be the
-;; *info* buffer; not the info tags buffer.
-(defun Info-read-subfile (nodepos)
- ;; NODEPOS is either a position (in the Info file as a whole,
- ;; not relative to a subfile) or the name of a subfile.
- (let (lastfilepos
- lastfilename)
- (if (numberp nodepos)
- (save-excursion
- (set-buffer (marker-buffer Info-tag-table-marker))
- (goto-char (point-min))
- (search-forward "\n\^_")
- (forward-line 2)
- (catch 'foo
- (while (not (looking-at "\^_"))
- (if (not (eolp))
- (let ((beg (point))
- thisfilepos thisfilename)
- (search-forward ": ")
- (setq thisfilename (buffer-substring beg (- (point) 2)))
- (setq thisfilepos (read (current-buffer)))
- ;; read in version 19 stops at the end of number.
- ;; Advance to the next line.
- (forward-line 1)
- (if (> thisfilepos nodepos)
- (throw 'foo t))
- (setq lastfilename thisfilename)
- (setq lastfilepos thisfilepos))
- (forward-line 1)))))
- (setq lastfilename nodepos)
- (setq lastfilepos 0))
- ;; Assume previous buffer is in Info-mode.
- ;; (set-buffer (get-buffer "*info*"))
- (or (equal Info-current-subfile lastfilename)
- (let ((buffer-read-only nil))
- (setq buffer-file-name nil)
- (widen)
- (erase-buffer)
- (info-insert-file-contents lastfilename)
- (set-buffer-modified-p nil)
- (setq Info-current-subfile lastfilename)))
- (goto-char (point-min))
- (search-forward "\n\^_")
- (if (numberp nodepos)
- (+ (- nodepos lastfilepos) (point)))))
-
-;; Select the info node that point is in.
-(defun Info-select-node ()
- (save-excursion
- ;; Find beginning of node.
- (search-backward "\n\^_")
- (forward-line 2)
- ;; Get nodename spelled as it is in the node.
- (re-search-forward "Node:[ \t]*")
- (setq Info-current-node
- (buffer-substring-no-properties (point)
- (progn
- (skip-chars-forward "^,\t\n")
- (point))))
- (Info-set-mode-line)
- ;; Find the end of it, and narrow.
- (beginning-of-line)
- (let (active-expression)
- (narrow-to-region (point)
- (if (re-search-forward "\n[\^_\f]" nil t)
- (prog1
- (1- (point))
- (if (looking-at "[\n\^_\f]*execute: ")
- (progn
- (goto-char (match-end 0))
- (setq active-expression
- (read (current-buffer))))))
- (point-max)))
- (if Info-enable-active-nodes (eval active-expression))
- (if Info-fontify (Info-fontify-node))
- (run-hooks 'Info-selection-hook))))
-
-(defun Info-set-mode-line ()
- (setq mode-line-buffer-identification
- (concat
- " Info: ("
- (if Info-current-file
- (file-name-nondirectory Info-current-file)
- "")
- ")"
- (or Info-current-node ""))))
-
-;; Go to an info node specified with a filename-and-nodename string
-;; of the sort that is found in pointers in nodes.
-
-(defun Info-goto-node (nodename)
- "Go to info node named NAME. Give just NODENAME or (FILENAME)NODENAME."
- (interactive (list (Info-read-node-name "Goto node: ")))
- (let (filename)
- (string-match "\\s *\\((\\s *\\([^\t)]*\\)\\s *)\\s *\\|\\)\\(.*\\)"
- nodename)
- (setq filename (if (= (match-beginning 1) (match-end 1))
- ""
- (substring nodename (match-beginning 2) (match-end 2)))
- nodename (substring nodename (match-beginning 3) (match-end 3)))
- (let ((trim (string-match "\\s *\\'" filename)))
- (if trim (setq filename (substring filename 0 trim))))
- (let ((trim (string-match "\\s *\\'" nodename)))
- (if trim (setq nodename (substring nodename 0 trim))))
- (if transient-mark-mode (deactivate-mark))
- (Info-find-node (if (equal filename "") nil filename)
- (if (equal nodename "") "Top" nodename))))
-
-;; This function is used as the "completion table" while reading a node name.
-;; It does completion using the alist in completion-table
-;; unless STRING starts with an open-paren.
-(defun Info-read-node-name-1 (string predicate code)
- (let ((no-completion (and (> (length string) 0) (eq (aref string 0) ?\())))
- (cond ((eq code nil)
- (if no-completion
- string
- (try-completion string completion-table predicate)))
- ((eq code t)
- (if no-completion
- nil
- (all-completions string completion-table predicate)))
- ((eq code 'lambda)
- (if no-completion
- t
- (assoc string completion-table))))))
-
-(defun Info-read-node-name (prompt &optional default)
- (let* ((completion-ignore-case t)
- (completion-table (Info-build-node-completions))
- (nodename (completing-read prompt 'Info-read-node-name-1 nil t)))
- (if (equal nodename "")
- (or default
- (Info-read-node-name prompt))
- nodename)))
-
-(defun Info-build-node-completions ()
- (or Info-current-file-completions
- (let ((compl nil))
- (save-excursion
- (save-restriction
- (if (marker-buffer Info-tag-table-marker)
- (let ((marker Info-tag-table-marker))
- (set-buffer (marker-buffer marker))
- (widen)
- (goto-char marker)
- (while (re-search-forward "\nNode: \\(.*\\)\177" nil t)
- (setq compl
- (cons (list (buffer-substring (match-beginning 1)
- (match-end 1)))
- compl))))
- (widen)
- (goto-char (point-min))
- (while (search-forward "\n\^_" nil t)
- (forward-line 1)
- (let ((beg (point)))
- (forward-line 1)
- (if (re-search-backward "Node: *\\([^,\n]*\\) *[,\n\t]"
- beg t)
- (setq compl
- (cons (list (buffer-substring (match-beginning 1)
- (match-end 1)))
- compl))))))))
- (setq Info-current-file-completions compl))))
-
-(defun Info-restore-point (hl)
- "If this node has been visited, restore the point value when we left."
- (while hl
- (if (and (equal (nth 0 (car hl)) Info-current-file)
- ;; Use string-equal, not equal, to ignore text props.
- (string-equal (nth 1 (car hl)) Info-current-node))
- (progn
- (goto-char (nth 2 (car hl)))
- (setq hl nil)) ;terminate the while at next iter
- (setq hl (cdr hl)))))
-
-(defvar Info-last-search nil
- "Default regexp for \\<Info-mode-map>\\[Info-search] command to search for.")
-
-(defun Info-search (regexp)
- "Search for REGEXP, starting from point, and select node it's found in."
- (interactive "sSearch (regexp): ")
- (if transient-mark-mode (deactivate-mark))
- (if (equal regexp "")
- (setq regexp Info-last-search)
- (setq Info-last-search regexp))
- (let ((found ()) current
- (onode Info-current-node)
- (ofile Info-current-file)
- (opoint (point))
- (ostart (window-start))
- (osubfile Info-current-subfile))
- (save-excursion
- (save-restriction
- (widen)
- (if (null Info-current-subfile)
- (progn (re-search-forward regexp) (setq found (point)))
- (condition-case err
- (progn (re-search-forward regexp) (setq found (point)))
- (search-failed nil)))))
- (if (not found) ;can only happen in subfile case -- else would have erred
- (unwind-protect
- (let ((list ()))
- (save-excursion
- (set-buffer (marker-buffer Info-tag-table-marker))
- (goto-char (point-min))
- (search-forward "\n\^_\nIndirect:")
- (save-restriction
- (narrow-to-region (point)
- (progn (search-forward "\n\^_")
- (1- (point))))
- (goto-char (point-min))
- (search-forward (concat "\n" osubfile ": "))
- (beginning-of-line)
- (while (not (eobp))
- (re-search-forward "\\(^.*\\): [0-9]+$")
- (goto-char (+ (match-end 1) 2))
- (setq list (cons (cons (read (current-buffer))
- (buffer-substring
- (match-beginning 1) (match-end 1)))
- list))
- (goto-char (1+ (match-end 0))))
- (setq list (nreverse list)
- current (car (car list))
- list (cdr list))))
- (while list
- (message "Searching subfile %s..." (cdr (car list)))
- (Info-read-subfile (car (car list)))
- (setq list (cdr list))
-;; (goto-char (point-min))
- (if (re-search-forward regexp nil t)
- (setq found (point) list ())))
- (if found
- (message "")
- (signal 'search-failed (list regexp))))
- (if (not found)
- (progn (Info-read-subfile osubfile)
- (goto-char opoint)
- (Info-select-node)
- (set-window-start (selected-window) ostart)))))
- (widen)
- (goto-char found)
- (Info-select-node)
- ;; Use string-equal, not equal, to ignore text props.
- (or (and (string-equal onode Info-current-node)
- (equal ofile Info-current-file))
- (setq Info-history (cons (list ofile onode opoint)
- Info-history)))))
-
-;; Extract the value of the node-pointer named NAME.
-;; If there is none, use ERRORNAME in the error message;
-;; if ERRORNAME is nil, just return nil.
-(defun Info-extract-pointer (name &optional errorname)
- (save-excursion
- (goto-char (point-min))
- (forward-line 1)
- (if (re-search-backward (concat name ":") nil t)
- (progn
- (goto-char (match-end 0))
- (Info-following-node-name))
- (if (eq errorname t)
- nil
- (error "Node has no %s" (capitalize (or errorname name)))))))
-
-;; Return the node name in the buffer following point.
-;; ALLOWEDCHARS, if non-nil, goes within [...] to make a regexp
-;; saying which chars may appear in the node name.
-(defun Info-following-node-name (&optional allowedchars)
- (skip-chars-forward " \t")
- (buffer-substring-no-properties
- (point)
- (progn
- (while (looking-at (concat "[" (or allowedchars "^,\t\n") "]"))
- (skip-chars-forward (concat (or allowedchars "^,\t\n") "("))
- (if (looking-at "(")
- (skip-chars-forward "^)")))
- (skip-chars-backward " ")
- (point))))
-
-(defun Info-next ()
- "Go to the next node of this node."
- (interactive)
- (Info-goto-node (Info-extract-pointer "next")))
-
-(defun Info-prev ()
- "Go to the previous node of this node."
- (interactive)
- (Info-goto-node (Info-extract-pointer "prev[ious]*" "previous")))
-
-(defun Info-up ()
- "Go to the superior node of this node."
- (interactive)
- (Info-goto-node (Info-extract-pointer "up"))
- (Info-restore-point Info-history))
-
-(defun Info-last ()
- "Go back to the last node visited."
- (interactive)
- (or Info-history
- (error "This is the first Info node you looked at"))
- (let (filename nodename opoint)
- (setq filename (car (car Info-history)))
- (setq nodename (car (cdr (car Info-history))))
- (setq opoint (car (cdr (cdr (car Info-history)))))
- (setq Info-history (cdr Info-history))
- (Info-find-node filename nodename)
- (setq Info-history (cdr Info-history))
- (goto-char opoint)))
-
-(defun Info-directory ()
- "Go to the Info directory node."
- (interactive)
- (Info-find-node "dir" "top"))
-
-(defun Info-follow-reference (footnotename)
- "Follow cross reference named NAME to the node it refers to.
-NAME may be an abbreviation of the reference name."
- (interactive
- (let ((completion-ignore-case t)
- completions default alt-default (start-point (point)) str i bol eol)
- (save-excursion
- ;; Store end and beginning of line.
- (end-of-line)
- (setq eol (point))
- (beginning-of-line)
- (setq bol (point))
-
- (goto-char (point-min))
- (while (re-search-forward "\\*note[ \n\t]*\\([^:]*\\):" nil t)
- (setq str (buffer-substring
- (match-beginning 1)
- (1- (point))))
- ;; See if this one should be the default.
- (and (null default)
- (<= (match-beginning 0) start-point)
- (<= start-point (point))
- (setq default t))
- ;; See if this one should be the alternate default.
- (and (null alt-default)
- (and (<= bol (match-beginning 0))
- (<= (point) eol))
- (setq alt-default t))
- (setq i 0)
- (while (setq i (string-match "[ \n\t]+" str i))
- (setq str (concat (substring str 0 i) " "
- (substring str (match-end 0))))
- (setq i (1+ i)))
- ;; Record as a completion and perhaps as default.
- (if (eq default t) (setq default str))
- (if (eq alt-default t) (setq alt-default str))
- ;; Don't add this string if it's a duplicate.
- ;; We use a loop instead of "(assoc str completions)" because
- ;; we want to do a case-insensitive compare.
- (let ((tail completions)
- (tem (downcase str)))
- (while (and tail
- (not (string-equal tem (downcase (car (car tail))))))
- (setq tail (cdr tail)))
- (or tail
- (setq completions
- (cons (cons str nil)
- completions))))))
- ;; If no good default was found, try an alternate.
- (or default
- (setq default alt-default))
- ;; If only one cross-reference found, then make it default.
- (if (eq (length completions) 1)
- (setq default (car (car completions))))
- (if completions
- (let ((input (completing-read (if default
- (concat "Follow reference named: ("
- default ") ")
- "Follow reference named: ")
- completions nil t)))
- (list (if (equal input "")
- default input)))
- (error "No cross-references in this node"))))
- (let (target beg i (str (concat "\\*note " (regexp-quote footnotename))))
- (while (setq i (string-match " " str i))
- (setq str (concat (substring str 0 i) "[ \t\n]+" (substring str (1+ i))))
- (setq i (+ i 6)))
- (save-excursion
- (goto-char (point-min))
- (or (re-search-forward str nil t)
- (error "No cross-reference named %s" footnotename))
- (goto-char (+ (match-beginning 0) 5))
- (setq target
- (Info-extract-menu-node-name "Bad format cross reference" t)))
- (while (setq i (string-match "[ \t\n]+" target i))
- (setq target (concat (substring target 0 i) " "
- (substring target (match-end 0))))
- (setq i (+ i 1)))
- (Info-goto-node target)))
-
-(defun Info-extract-menu-node-name (&optional errmessage multi-line)
- (skip-chars-forward " \t\n")
- (let ((beg (point))
- str i)
- (skip-chars-forward "^:")
- (forward-char 1)
- (setq str
- (if (looking-at ":")
- (buffer-substring-no-properties beg (1- (point)))
- (skip-chars-forward " \t\n")
- (Info-following-node-name (if multi-line "^.,\t" "^.,\t\n"))))
- (while (setq i (string-match "\n" str i))
- (aset str i ?\ ))
- ;; Collapse multiple spaces.
- (while (string-match " +" str)
- (setq str (replace-match " " t t str)))
- str))
-
-;; No one calls this.
-;;(defun Info-menu-item-sequence (list)
-;; (while list
-;; (Info-menu (car list))
-;; (setq list (cdr list))))
-
-(defun Info-complete-menu-item (string predicate action)
- (let ((case-fold-search t))
- (cond ((eq action nil)
- (let (completions
- (pattern (concat "\n\\* \\("
- (regexp-quote string)
- "[^:\t\n]*\\):")))
- (save-excursion
- (set-buffer Info-complete-menu-buffer)
- (goto-char (point-min))
- (search-forward "\n* Menu:")
- (while (re-search-forward pattern nil t)
- (setq completions (cons (cons (format "%s"
- (buffer-substring
- (match-beginning 1)
- (match-end 1)))
- (match-beginning 1))
- completions))))
- (try-completion string completions predicate)))
- ((eq action t)
- (let (completions
- (pattern (concat "\n\\* \\("
- (regexp-quote string)
- "[^:\t\n]*\\):")))
- (save-excursion
- (set-buffer Info-complete-menu-buffer)
- (goto-char (point-min))
- (search-forward "\n* Menu:")
- (while (re-search-forward pattern nil t)
- (setq completions (cons (cons (format "%s"
- (buffer-substring
- (match-beginning 1)
- (match-end 1)))
- (match-beginning 1))
- completions))))
- (all-completions string completions predicate)))
- (t
- (save-excursion
- (set-buffer Info-complete-menu-buffer)
- (goto-char (point-min))
- (search-forward "\n* Menu:")
- (re-search-forward (concat "\n\\* "
- (regexp-quote string)
- ":")
- nil t))))))
-
-
-(defun Info-menu (menu-item)
- "Go to node for menu item named (or abbreviated) NAME.
-Completion is allowed, and the menu item point is on is the default."
- (interactive
- (let ((completions '())
- ;; If point is within a menu item, use that item as the default
- (default nil)
- (p (point))
- beg
- (last nil))
- (save-excursion
- (goto-char (point-min))
- (if (not (search-forward "\n* menu:" nil t))
- (error "No menu in this node"))
- (setq beg (point))
- (and (< (point) p)
- (save-excursion
- (goto-char p)
- (end-of-line)
- (re-search-backward "\n\\* \\([^:\t\n]*\\):" beg t)
- (setq default (format "%s" (buffer-substring
- (match-beginning 1)
- (match-end 1)))))))
- (let ((item nil))
- (while (null item)
- (setq item (let ((completion-ignore-case t)
- (Info-complete-menu-buffer (current-buffer)))
- (completing-read (if default
- (format "Menu item (default %s): "
- default)
- "Menu item: ")
- 'Info-complete-menu-item nil t)))
- ;; we rely on the fact that completing-read accepts an input
- ;; of "" even when the require-match argument is true and ""
- ;; is not a valid possibility
- (if (string= item "")
- (if default
- (setq item default)
- ;; ask again
- (setq item nil))))
- (list item))))
- ;; there is a problem here in that if several menu items have the same
- ;; name you can only go to the node of the first with this command.
- (Info-goto-node (Info-extract-menu-item menu-item)))
-
-(defun Info-extract-menu-item (menu-item)
- (setq menu-item (regexp-quote menu-item))
- (save-excursion
- (goto-char (point-min))
- (or (search-forward "\n* menu:" nil t)
- (error "No menu in this node"))
- (or (re-search-forward (concat "\n\\* " menu-item ":") nil t)
- (re-search-forward (concat "\n\\* " menu-item) nil t)
- (error "No such item in menu"))
- (beginning-of-line)
- (forward-char 2)
- (Info-extract-menu-node-name)))
-
-;; If COUNT is nil, use the last item in the menu.
-(defun Info-extract-menu-counting (count)
- (save-excursion
- (goto-char (point-min))
- (or (search-forward "\n* menu:" nil t)
- (error "No menu in this node"))
- (if count
- (or (search-forward "\n* " nil t count)
- (error "Too few items in menu"))
- (while (search-forward "\n* " nil t)
- nil))
- (Info-extract-menu-node-name)))
-
-(defun Info-nth-menu-item ()
- "Go to the node of the Nth menu item.
-N is the digit argument used to invoke this command."
- (interactive)
- (Info-goto-node
- (Info-extract-menu-counting
- (- (aref (this-command-keys) (1- (length (this-command-keys)))) ?0))))
-
-(defun Info-top-node ()
- "Go to the Top node of this file."
- (interactive)
- (Info-goto-node "Top"))
-
-(defun Info-final-node ()
- "Go to the final node in this file."
- (interactive)
- (Info-goto-node "Top")
- (let (Info-history)
- ;; Go to the last node in the menu of Top.
- (Info-goto-node (Info-extract-menu-counting nil))
- ;; If the last node in the menu is not last in pointer structure,
- ;; move forward until we can't go any farther.
- (while (Info-forward-node t t) nil)
- ;; Then keep moving down to last subnode, unless we reach an index.
- (while (and (not (string-match "\\<index\\>" Info-current-node))
- (save-excursion (search-forward "\n* Menu:" nil t)))
- (Info-goto-node (Info-extract-menu-counting nil)))))
-
-(defun Info-forward-node (&optional not-down no-error)
- "Go forward one node, considering all nodes as forming one sequence."
- (interactive)
- (goto-char (point-min))
- (forward-line 1)
- ;; three possibilities, in order of priority:
- ;; 1. next node is in a menu in this node (but not in an index)
- ;; 2. next node is next at same level
- ;; 3. next node is up and next
- (cond ((and (not not-down)
- (save-excursion (search-forward "\n* menu:" nil t))
- (not (string-match "\\<index\\>" Info-current-node)))
- (Info-goto-node (Info-extract-menu-counting 1))
- t)
- ((save-excursion (search-backward "next:" nil t))
- (Info-next)
- t)
- ((and (save-excursion (search-backward "up:" nil t))
- ;; Use string-equal, not equal, to ignore text props.
- (not (string-equal (downcase (Info-extract-pointer "up"))
- "top")))
- (let ((old-node Info-current-node))
- (Info-up)
- (let (Info-history success)
- (unwind-protect
- (setq success (Info-forward-node t no-error))
- (or success (Info-goto-node old-node))))))
- (no-error nil)
- (t (error "No pointer forward from this node"))))
-
-(defun Info-backward-node ()
- "Go backward one node, considering all nodes as forming one sequence."
- (interactive)
- (let ((prevnode (Info-extract-pointer "prev[ious]*" t))
- (upnode (Info-extract-pointer "up" t)))
- (cond ((and upnode (string-match "(" upnode))
- (error "First node in file"))
- ((and upnode (or (null prevnode)
- ;; Use string-equal, not equal,
- ;; to ignore text properties.
- (string-equal (downcase prevnode)
- (downcase upnode))))
- (Info-up))
- (prevnode
- ;; If we move back at the same level,
- ;; go down to find the last subnode*.
- (Info-prev)
- (let (Info-history)
- (while (and (not (string-match "\\<index\\>" Info-current-node))
- (save-excursion (search-forward "\n* Menu:" nil t)))
- (Info-goto-node (Info-extract-menu-counting nil)))))
- (t
- (error "No pointer backward from this node")))))
-
-(defun Info-exit ()
- "Exit Info by selecting some other buffer."
- (interactive)
- (if Info-standalone
- (save-buffers-kill-emacs)
- (bury-buffer)))
-
-(defun Info-next-menu-item ()
- (interactive)
- (save-excursion
- (forward-line -1)
- (search-forward "\n* menu:" nil t)
- (or (search-forward "\n* " nil t)
- (error "No more items in menu"))
- (Info-goto-node (Info-extract-menu-node-name))))
-
-(defun Info-last-menu-item ()
- (interactive)
- (save-excursion
- (forward-line 1)
- (let ((beg (save-excursion
- (and (search-backward "\n* menu:" nil t)
- (point)))))
- (or (and beg (search-backward "\n* " beg t))
- (error "No previous items in menu")))
- (Info-goto-node (save-excursion
- (goto-char (match-end 0))
- (Info-extract-menu-node-name)))))
-
-(defmacro Info-no-error (&rest body)
- (list 'condition-case nil (cons 'progn (append body '(t))) '(error nil)))
-
-(defun Info-next-preorder ()
- "Go to the next subnode or the next node, or go up a level."
- (interactive)
- (cond ((Info-no-error (Info-next-menu-item)))
- ((Info-no-error (Info-next)))
- ((Info-no-error (Info-up))
- ;; Since we have already gone thru all the items in this menu,
- ;; go up to the end of this node.
- (goto-char (point-max))
- ;; Since logically we are done with the node with that menu,
- ;; move on from it.
- (Info-next-preorder))
- (t
- (error "No more nodes"))))
-
-(defun Info-last-preorder ()
- "Go to the last node, popping up a level if there is none."
- (interactive)
- (cond ((Info-no-error
- (Info-last-menu-item)
- ;; If we go down a menu item, go to the end of the node
- ;; so we can scroll back through it.
- (goto-char (point-max)))
- ;; Keep going down, as long as there are nested menu nodes.
- (while (Info-no-error
- (Info-last-menu-item)
- ;; If we go down a menu item, go to the end of the node
- ;; so we can scroll back through it.
- (goto-char (point-max))))
- (recenter -1))
- ((Info-no-error (Info-prev))
- (goto-char (point-max))
- (while (Info-no-error
- (Info-last-menu-item)
- ;; If we go down a menu item, go to the end of the node
- ;; so we can scroll back through it.
- (goto-char (point-max))))
- (recenter -1))
- ((Info-no-error (Info-up))
- (goto-char (point-min))
- (or (search-forward "\n* Menu:" nil t)
- (goto-char (point-max))))
- (t (error "No previous nodes"))))
-
-(defun Info-scroll-up ()
- "Scroll one screenful forward in Info, considering all nodes as one sequence.
-Once you scroll far enough in a node that its menu appears on the screen
-but after point, the next scroll moves into its first subnode.
-
-When you scroll past the end of a node, that goes to the next node; if
-this node has no successor, it moves to the parent node's successor,
-and so on. If point is inside the menu of a node, it moves to
-subnode indicated by the following menu item. (That case won't
-normally result from this command, but can happen in other ways.)"
-
- (interactive)
- (if (or (< (window-start) (point-min))
- (> (window-start) (point-max)))
- (set-window-start (selected-window) (point)))
- (let ((virtual-end (save-excursion
- (goto-char (point-min))
- (if (search-forward "\n* Menu:" nil t)
- (point)
- (point-max)))))
- (if (or (< virtual-end (window-start))
- (pos-visible-in-window-p virtual-end))
- (Info-next-preorder)
- (scroll-up))))
-
-(defun Info-scroll-down ()
- "Scroll one screenful back in Info, considering all nodes as one sequence.
-Within the menu of a node, this goes to its last subnode.
-When you scroll past the beginning of a node, that goes to the
-previous node or back up to the parent node."
- (interactive)
- (if (or (< (window-start) (point-min))
- (> (window-start) (point-max)))
- (set-window-start (selected-window) (point)))
- (let* ((current-point (point))
- (virtual-end (save-excursion
- (beginning-of-line)
- (setq current-point (point))
- (goto-char (point-min))
- (search-forward "\n* Menu:"
- current-point
- t))))
- (if (or virtual-end (pos-visible-in-window-p (point-min)))
- (Info-last-preorder)
- (scroll-down))))
-
-(defun Info-next-reference (&optional recur)
- "Move cursor to the next cross-reference or menu item in the node."
- (interactive)
- (let ((pat "\\*note[ \n\t]*\\([^:]*\\):\\|^\\* .*:")
- (old-pt (point)))
- (or (eobp) (forward-char 1))
- (or (re-search-forward pat nil t)
- (progn
- (goto-char (point-min))
- (or (re-search-forward pat nil t)
- (progn
- (goto-char old-pt)
- (error "No cross references in this node")))))
- (goto-char (match-beginning 0))
- (if (looking-at "\\* Menu:")
- (if recur
- (error "No cross references in this node")
- (Info-next-reference t)))))
-
-(defun Info-prev-reference (&optional recur)
- "Move cursor to the previous cross-reference or menu item in the node."
- (interactive)
- (let ((pat "\\*note[ \n\t]*\\([^:]*\\):\\|^\\* .*:")
- (old-pt (point)))
- (or (re-search-backward pat nil t)
- (progn
- (goto-char (point-max))
- (or (re-search-backward pat nil t)
- (progn
- (goto-char old-pt)
- (error "No cross references in this node")))))
- (goto-char (match-beginning 0))
- (if (looking-at "\\* Menu:")
- (if recur
- (error "No cross references in this node")
- (Info-prev-reference t)))))
-
-(defun Info-index (topic)
- "Look up a string in the index for this file.
-The index is defined as the first node in the top-level menu whose
-name contains the word \"Index\", plus any immediately following
-nodes whose names also contain the word \"Index\".
-If there are no exact matches to the specified topic, this chooses
-the first match which is a case-insensitive substring of a topic.
-Use the `,' command to see the other matches.
-Give a blank topic name to go to the Index node itself."
- (interactive "sIndex topic: ")
- (let ((orignode Info-current-node)
- (rnode nil)
- (pattern (format "\n\\* \\([^\n:]*%s[^\n:]*\\):[ \t]*\\([^.\n]*\\)\\.[ \t]*\\([0-9]*\\)"
- (regexp-quote topic)))
- node)
- (Info-goto-node "Top")
- (or (search-forward "\n* menu:" nil t)
- (error "No index"))
- (or (re-search-forward "\n\\* \\(.*\\<Index\\>\\)" nil t)
- (error "No index"))
- (goto-char (match-beginning 1))
- ;; Here, and subsequently in this function,
- ;; we bind Info-history to nil for internal node-switches
- ;; so that we don't put junk in the history.
- ;; In the first Info-goto-node call, above, we do update the history
- ;; because that is what the user's previous node choice into it.
- (let ((Info-history nil))
- (Info-goto-node (Info-extract-menu-node-name)))
- (or (equal topic "")
- (let ((matches nil)
- (exact nil)
- (Info-history nil)
- found)
- (while
- (progn
- (goto-char (point-min))
- (while (re-search-forward pattern nil t)
- (setq matches
- (cons (list (buffer-substring (match-beginning 1)
- (match-end 1))
- (buffer-substring (match-beginning 2)
- (match-end 2))
- Info-current-node
- (string-to-int (concat "0"
- (buffer-substring
- (match-beginning 3)
- (match-end 3)))))
- matches)))
- (and (setq node (Info-extract-pointer "next" t))
- (string-match "\\<Index\\>" node)))
- (Info-goto-node node))
- (or matches
- (progn
- (Info-goto-node orignode)
- (error "No `%s' in index" topic)))
- ;; Here it is a feature that assoc is case-sensitive.
- (while (setq found (assoc topic matches))
- (setq exact (cons found exact)
- matches (delq found matches)))
- (setq Info-index-alternatives (nconc exact (nreverse matches)))
- (Info-index-next 0)))))
-
-(defun Info-index-next (num)
- "Go to the next matching index item from the last `i' command."
- (interactive "p")
- (or Info-index-alternatives
- (error "No previous `i' command"))
- (while (< num 0)
- (setq num (+ num (length Info-index-alternatives))))
- (while (> num 0)
- (setq Info-index-alternatives
- (nconc (cdr Info-index-alternatives)
- (list (car Info-index-alternatives)))
- num (1- num)))
- (Info-goto-node (nth 1 (car Info-index-alternatives)))
- (if (> (nth 3 (car Info-index-alternatives)) 0)
- (forward-line (nth 3 (car Info-index-alternatives)))
- (forward-line 3) ; don't search in headers
- (let ((name (car (car Info-index-alternatives))))
- (Info-find-index-name name)))
- (message "Found `%s' in %s. %s"
- (car (car Info-index-alternatives))
- (nth 2 (car Info-index-alternatives))
- (if (cdr Info-index-alternatives)
- "(Press `,' for more)"
- "(Only match)")))
-
-(defun Info-find-index-name (name)
- "Move point to the place within the current node where NAME is defined."
- (if (or (re-search-forward (format
- "[a-zA-Z]+: %s\\( \\|$\\)"
- (regexp-quote name)) nil t)
- (search-forward (format "`%s'" name) nil t)
- (and (string-match "\\`.*\\( (.*)\\)\\'" name)
- (search-forward
- (format "`%s'" (substring name 0 (match-beginning 1)))
- nil t))
- (search-forward name nil t))
- (beginning-of-line)
- (goto-char (point-min))))
-
-(defun Info-undefined ()
- "Make command be undefined in Info."
- (interactive)
- (ding))
-
-(defun Info-help ()
- "Enter the Info tutorial."
- (interactive)
- (delete-other-windows)
- (Info-find-node "info"
- (if (< (window-height) 23)
- "Help-Small-Screen"
- "Help")))
-
-(defun Info-summary ()
- "Display a brief summary of all Info commands."
- (interactive)
- (save-window-excursion
- (switch-to-buffer "*Help*")
- (erase-buffer)
- (insert (documentation 'Info-mode))
- (help-mode)
- (goto-char (point-min))
- (let (ch flag)
- (while (progn (setq flag (not (pos-visible-in-window-p (point-max))))
- (message (if flag "Type Space to see more"
- "Type Space to return to Info"))
- (if (not (eq ?\ (setq ch (read-event))))
- (progn (setq unread-command-events (list ch)) nil)
- flag))
- (scroll-up)))
- (bury-buffer "*Help*")))
-
-(defun Info-get-token (pos start all &optional errorstring)
- "Return the token around POS,
-POS must be somewhere inside the token
-START is a regular expression which will match the
- beginning of the tokens delimited string
-ALL is a regular expression with a single
- parenthesized subpattern which is the token to be
- returned. E.g. '{\(.*\)}' would return any string
- enclosed in braces around POS.
-SIG optional fourth argument, controls action on no match
- nil: return nil
- t: beep
- a string: signal an error, using that string."
- (save-excursion
- (goto-char pos)
- ;; First look for a match for START that goes across POS.
- (while (and (not (bobp)) (> (point) (- pos (length start)))
- (not (looking-at start)))
- (forward-char -1))
- ;; If we did not find one, search back for START
- ;; (this finds only matches that end at or before POS).
- (or (looking-at start)
- (progn
- (goto-char pos)
- (re-search-backward start (max (point-min) (- pos 200)) 'yes)))
- (let (found)
- (while (and (re-search-forward all (min (point-max) (+ pos 200)) 'yes)
- (not (setq found (and (<= (match-beginning 0) pos)
- (> (match-end 0) pos))))))
- (if (and found (<= (match-beginning 0) pos)
- (> (match-end 0) pos))
- (buffer-substring (match-beginning 1) (match-end 1))
- (cond ((null errorstring)
- nil)
- ((eq errorstring t)
- (beep)
- nil)
- (t
- (error "No %s around position %d" errorstring pos)))))))
-
-(defun Info-mouse-follow-nearest-node (click)
- "\\<Info-mode-map>Follow a node reference near point.
-Like \\[Info-menu], \\[Info-follow-reference], \\[Info-next], \\[Info-prev] or \\[Info-up] command, depending on where you click.
-At end of the node's text, moves to the next node, or up if none."
- (interactive "e")
- (let* ((start (event-start click))
- (window (car start))
- (pos (car (cdr start))))
- (select-window window)
- (goto-char pos))
- (and (not (Info-try-follow-nearest-node))
- (save-excursion (forward-line 1) (eobp))
- (Info-next-preorder)))
-
-(defun Info-follow-nearest-node ()
- "\\<Info-mode-map>Follow a node reference near point.
-Like \\[Info-menu], \\[Info-follow-reference], \\[Info-next], \\[Info-prev] or \\[Info-up] command, depending on where point is.
-If no reference to follow, moves to the next node, or up if none."
- (interactive)
- (or (Info-try-follow-nearest-node)
- (Info-next-preorder)))
-
-;; Common subroutine.
-(defun Info-try-follow-nearest-node ()
- "Follow a node reference near point. Return non-nil if successful."
- (let (node)
- (cond
- ((setq node (Info-get-token (point) "\\*note[ \n]"
- "\\*note[ \n]\\([^:]*\\):"))
- (Info-follow-reference node))
- ((setq node (Info-get-token (point) "\\* " "\\* \\([^:]*\\)::"))
- (Info-goto-node node))
- ((setq node (Info-get-token (point) "\\* " "\\* \\([^:]*\\):"))
- (Info-menu node))
- ((setq node (Info-get-token (point) "Up: " "Up: \\([^,\n\t]*\\)"))
- (Info-goto-node node))
- ((setq node (Info-get-token (point) "Next: " "Next: \\([^,\n\t]*\\)"))
- (Info-goto-node node))
- ((setq node (Info-get-token (point) "File: " "File: \\([^,\n\t]*\\)"))
- (Info-goto-node "Top"))
- ((setq node (Info-get-token (point) "Prev: " "Prev: \\([^,\n\t]*\\)"))
- (Info-goto-node node)))
- node))
-
-(defvar Info-mode-map nil
- "Keymap containing Info commands.")
-(if Info-mode-map
- nil
- (setq Info-mode-map (make-keymap))
- (suppress-keymap Info-mode-map)
- (define-key Info-mode-map "." 'beginning-of-buffer)
- (define-key Info-mode-map " " 'Info-scroll-up)
- (define-key Info-mode-map "\C-m" 'Info-follow-nearest-node)
- (define-key Info-mode-map "\t" 'Info-next-reference)
- (define-key Info-mode-map "\e\t" 'Info-prev-reference)
- (define-key Info-mode-map "1" 'Info-nth-menu-item)
- (define-key Info-mode-map "2" 'Info-nth-menu-item)
- (define-key Info-mode-map "3" 'Info-nth-menu-item)
- (define-key Info-mode-map "4" 'Info-nth-menu-item)
- (define-key Info-mode-map "5" 'Info-nth-menu-item)
- (define-key Info-mode-map "6" 'Info-nth-menu-item)
- (define-key Info-mode-map "7" 'Info-nth-menu-item)
- (define-key Info-mode-map "8" 'Info-nth-menu-item)
- (define-key Info-mode-map "9" 'Info-nth-menu-item)
- (define-key Info-mode-map "0" 'undefined)
- (define-key Info-mode-map "?" 'Info-summary)
- (define-key Info-mode-map "]" 'Info-forward-node)
- (define-key Info-mode-map "[" 'Info-backward-node)
- (define-key Info-mode-map "<" 'Info-top-node)
- (define-key Info-mode-map ">" 'Info-final-node)
- (define-key Info-mode-map "b" 'beginning-of-buffer)
- (define-key Info-mode-map "d" 'Info-directory)
- (define-key Info-mode-map "e" 'Info-edit)
- (define-key Info-mode-map "f" 'Info-follow-reference)
- (define-key Info-mode-map "g" 'Info-goto-node)
- (define-key Info-mode-map "h" 'Info-help)
- (define-key Info-mode-map "i" 'Info-index)
- (define-key Info-mode-map "l" 'Info-last)
- (define-key Info-mode-map "m" 'Info-menu)
- (define-key Info-mode-map "n" 'Info-next)
- (define-key Info-mode-map "p" 'Info-prev)
- (define-key Info-mode-map "q" 'Info-exit)
- (define-key Info-mode-map "s" 'Info-search)
- ;; For consistency with Rmail.
- (define-key Info-mode-map "\M-s" 'Info-search)
- (define-key Info-mode-map "t" 'Info-top-node)
- (define-key Info-mode-map "u" 'Info-up)
- (define-key Info-mode-map "," 'Info-index-next)
- (define-key Info-mode-map "\177" 'Info-scroll-down)
- (define-key Info-mode-map [mouse-2] 'Info-mouse-follow-nearest-node)
- )
-
-(defun Info-check-pointer (item)
- ;; Non-nil if ITEM is present in this node.
- (condition-case nil
- (Info-extract-pointer item)
- (error nil)))
-
-(easy-menu-define Info-mode-menu Info-mode-map
- "Menu for info files."
- '("Info"
- ["Up" Info-up (Info-check-pointer "up")]
- ["Next" Info-next (Info-check-pointer "next")]
- ["Previous" Info-prev (Info-check-pointer "prev[ious]*")]
- ("Menu item" ["You should never see this" report-emacs-bug t])
- ("Reference" ["You should never see this" report-emacs-bug t])
- ["Search..." Info-search t]
- ["Goto node..." Info-goto-node t]
- ["Last" Info-last Info-history]
- ["Exit" Info-exit t]))
-
-(defvar Info-menu-last-node nil)
-;; Last node the menu was created for.
-
-(defun Info-menu-update ()
- ;; Update the Info menu for the current node.
- (condition-case nil
- (if (or (not (eq major-mode 'Info-mode))
- (eq Info-current-node Info-menu-last-node))
- ()
- ;; Update menu menu.
- (let* ((Info-complete-menu-buffer (current-buffer))
- (items (nreverse (condition-case nil
- (Info-complete-menu-item
- "" (lambda (e) t) t)
- (error nil))))
- entries current
- (number 0))
- (while (and items (< number 9))
- (setq current (car items)
- items (cdr items)
- number (1+ number))
- (setq entries (cons `[,current
- (Info-menu ,current)
- :keys ,(format "%d" number)]
- entries)))
- (if items
- (setq entries (cons ["Other..." Info-menu t] entries)))
- (or entries
- (setq entries (list ["No menu" nil nil])))
- (easy-menu-change '("Info") "Menu item" (nreverse entries)))
- ;; Update reference menu. Code stolen from `Info-follow-reference'.
- (let ((items nil)
- str i entries current
- (number 0))
- (save-excursion
- (goto-char (point-min))
- (while (re-search-forward "\\*note[ \n\t]*\\([^:]*\\):" nil t)
- (setq str (buffer-substring
- (match-beginning 1)
- (1- (point))))
- (setq i 0)
- (while (setq i (string-match "[ \n\t]+" str i))
- (setq str (concat (substring str 0 i) " "
- (substring str (match-end 0))))
- (setq i (1+ i)))
- (setq items
- (cons str items))))
- (while (and items (< number 9))
- (setq current (car items)
- items (cdr items)
- number (1+ number))
- (setq entries (cons `[,current
- (Info-follow-reference ,current)
- t]
- entries)))
- (if items
- (setq entries (cons ["Other..." Info-follow-reference t]
- entries)))
- (or entries
- (setq entries (list ["No references" nil nil])))
- (easy-menu-change '("Info") "Reference" (nreverse entries)))
- ;; Update last seen node.
- (setq Info-menu-last-node (current-buffer)))
- ;; Try to avoid entering infinite beep mode in case of errors.
- (error (ding))))
-
-
-;; Info mode is suitable only for specially formatted data.
-(put 'info-mode 'mode-class 'special)
-
-(defun Info-mode ()
- "\\<Info-mode-map>
-Info mode provides commands for browsing through the Info documentation tree.
-Documentation in Info is divided into \"nodes\", each of which discusses
-one topic and contains references to other nodes which discuss related
-topics. Info has commands to follow the references and show you other nodes.
-
-\\[Info-help] Invoke the Info tutorial.
-
-Selecting other nodes:
-\\[Info-mouse-follow-nearest-node]
- Follow a node reference you click on.
- This works with menu items, cross references, and
- the \"next\", \"previous\" and \"up\", depending on where you click.
-\\[Info-next] Move to the \"next\" node of this node.
-\\[Info-prev] Move to the \"previous\" node of this node.
-\\[Info-up] Move \"up\" from this node.
-\\[Info-menu] Pick menu item specified by name (or abbreviation).
- Picking a menu item causes another node to be selected.
-\\[Info-directory] Go to the Info directory node.
-\\[Info-follow-reference] Follow a cross reference. Reads name of reference.
-\\[Info-last] Move to the last node you were at.
-\\[Info-index] Look up a topic in this file's Index and move to that node.
-\\[Info-index-next] (comma) Move to the next match from a previous `i' command.
-
-Moving within a node:
-\\[Info-scroll-up] Normally, scroll forward a full screen. If the end of the buffer is
-already visible, try to go to the next menu entry, or up if there is none.
-\\[Info-scroll-down] Normally, scroll backward. If the beginning of the buffer is
-already visible, try to go to the previous menu entry, or up if there is none.
-\\[beginning-of-buffer] Go to beginning of node.
-
-Advanced commands:
-\\[Info-exit] Quit Info: reselect previously selected buffer.
-\\[Info-edit] Edit contents of selected node.
-1 Pick first item in node's menu.
-2, 3, 4, 5 Pick second ... fifth item in node's menu.
-\\[Info-goto-node] Move to node specified by name.
- You may include a filename as well, as (FILENAME)NODENAME.
-\\[universal-argument] \\[info] Move to new Info file with completion.
-\\[Info-search] Search through this Info file for specified regexp,
- and select the node in which the next occurrence is found.
-\\[Info-next-reference] Move cursor to next cross-reference or menu item.
-\\[Info-prev-reference] Move cursor to previous cross-reference or menu item."
- (kill-all-local-variables)
- (setq major-mode 'Info-mode)
- (setq mode-name "Info")
- (setq tab-width 8)
- (use-local-map Info-mode-map)
- (make-local-hook 'activate-menubar-hook)
- (add-hook 'activate-menubar-hook 'Info-menu-update nil t)
- (set-syntax-table text-mode-syntax-table)
- (setq local-abbrev-table text-mode-abbrev-table)
- (setq case-fold-search t)
- (setq buffer-read-only t)
- (make-local-variable 'Info-current-file)
- (make-local-variable 'Info-current-subfile)
- (make-local-variable 'Info-current-node)
- (make-local-variable 'Info-tag-table-marker)
- (setq Info-tag-table-marker (make-marker))
- (make-local-variable 'Info-tag-table-buffer)
- (setq Info-tag-table-buffer nil)
- (make-local-variable 'Info-history)
- (make-local-variable 'Info-index-alternatives)
- (if (memq (framep (selected-frame)) '(x pc w32))
- (progn
- (make-face 'info-node)
- (make-face 'info-menu-5)
- (make-face 'info-xref)
- (or (face-differs-from-default-p 'info-node)
- (if (face-differs-from-default-p 'bold-italic)
- (copy-face 'bold-italic 'info-node)
- (copy-face 'bold 'info-node)))
- (or (face-differs-from-default-p 'info-menu-5)
- (set-face-underline-p 'info-menu-5 t))
- (or (face-differs-from-default-p 'info-xref)
- (copy-face 'bold 'info-xref)))
- (setq Info-fontify nil))
- (Info-set-mode-line)
- (run-hooks 'Info-mode-hook))
-
-(defvar Info-edit-map nil
- "Local keymap used within `e' command of Info.")
-(if Info-edit-map
- nil
- (setq Info-edit-map (nconc (make-sparse-keymap) text-mode-map))
- (define-key Info-edit-map "\C-c\C-c" 'Info-cease-edit))
-
-;; Info-edit mode is suitable only for specially formatted data.
-(put 'info-edit-mode 'mode-class 'special)
-
-(defun Info-edit-mode ()
- "Major mode for editing the contents of an Info node.
-Like text mode with the addition of `Info-cease-edit'
-which returns to Info mode for browsing.
-\\{Info-edit-map}"
- (use-local-map Info-edit-map)
- (setq major-mode 'Info-edit-mode)
- (setq mode-name "Info Edit")
- (kill-local-variable 'mode-line-buffer-identification)
- (setq buffer-read-only nil)
- (force-mode-line-update)
- (buffer-enable-undo (current-buffer))
- (run-hooks 'Info-edit-mode-hook))
-
-(defun Info-edit ()
- "Edit the contents of this Info node.
-Allowed only if variable `Info-enable-edit' is non-nil."
- (interactive)
- (or Info-enable-edit
- (error "Editing info nodes is not enabled"))
- (Info-edit-mode)
- (message "%s" (substitute-command-keys
- "Editing: Type \\<Info-edit-map>\\[Info-cease-edit] to return to info")))
-
-(defun Info-cease-edit ()
- "Finish editing Info node; switch back to Info proper."
- (interactive)
- ;; Do this first, so nothing has changed if user C-g's at query.
- (and (buffer-modified-p)
- (y-or-n-p "Save the file? ")
- (save-buffer))
- (use-local-map Info-mode-map)
- (setq major-mode 'Info-mode)
- (setq mode-name "Info")
- (Info-set-mode-line)
- (setq buffer-read-only t)
- (force-mode-line-update)
- (and (marker-position Info-tag-table-marker)
- (buffer-modified-p)
- (message "Tags may have changed. Use Info-tagify if necessary")))
-
-(defvar Info-file-list-for-emacs
- '("ediff" "forms" "gnus" "info" ("mh" . "mh-e") "sc")
- "List of Info files that describe Emacs commands.
-An element can be a file name, or a list of the form (PREFIX . FILE)
-where PREFIX is a name prefix and FILE is the file to look in.
-If the element is just a file name, the file name also serves as the prefix.")
-
-(defun Info-find-emacs-command-nodes (command)
- "Return a list of locations documenting COMMAND.
-The `info-file' property of COMMAND says which Info manual to search.
-If COMMAND has no property, the variable `Info-file-list-for-emacs'
-defines heuristics for which Info manual to try.
-The locations are of the format used in Info-history, i.e.
-\(FILENAME NODENAME BUFFERPOS\)."
- (let ((where '())
- (cmd-desc (concat "^\\* " (regexp-quote (symbol-name command))
- ":\\s *\\(.*\\)\\.$"))
- (info-file "emacs")) ;default
- ;; Determine which info file this command is documented in.
- (if (get command 'info-file)
- (setq info-file (get command 'info-file))
- ;; If it doesn't say explicitly, test its name against
- ;; various prefixes that we know.
- (let ((file-list Info-file-list-for-emacs))
- (while file-list
- (let* ((elt (car file-list))
- (name (if (consp elt)
- (car elt)
- elt))
- (file (if (consp elt) (cdr elt) elt))
- (regexp (concat "\\`" (regexp-quote name)
- "\\(\\'\\|-\\)")))
- (if (string-match regexp (symbol-name command))
- (setq info-file file file-list nil))
- (setq file-list (cdr file-list))))))
- (save-excursion
- (condition-case nil
- (Info-find-node info-file "Command Index")
- ;; Some manuals may not have a separate Command Index node,
- ;; so try just Index instead.
- (error
- (Info-find-node info-file "Index")))
- ;; Take the index node off the Info history.
- (setq Info-history (cdr Info-history))
- (goto-char (point-max))
- (while (re-search-backward cmd-desc nil t)
- (setq where (cons (list Info-current-file
- (buffer-substring
- (match-beginning 1)
- (match-end 1))
- 0)
- where)))
- where)))
-
-;;;###autoload
-(defun Info-goto-emacs-command-node (command)
- "Go to the Info node in the Emacs manual for command COMMAND.
-The command is found by looking up in Emacs manual's Command Index
-or in another manual found via COMMAND's `info-file' property or
-the variable `Info-file-list-for-emacs'."
- (interactive "CFind documentation for command: ")
- (or (commandp command)
- (signal 'wrong-type-argument (list 'commandp command)))
- (let ((where (Info-find-emacs-command-nodes command)))
- (if where
- (let ((num-matches (length where)))
- ;; Get Info running, and pop to it in another window.
- (save-window-excursion
- (info))
- ;; FIXME It would be cool if this could use a buffer other
- ;; than *info*.
- (pop-to-buffer "*info*")
- (Info-find-node (car (car where))
- (car (cdr (car where))))
- (if (> num-matches 1)
- (progn
- ;; Info-find-node already pushed (car where) onto
- ;; Info-history. Put the other nodes that were found on
- ;; the history.
- (setq Info-history (nconc (cdr where) Info-history))
- (message "Found %d other entr%s. Use %s to see %s."
- (1- num-matches)
- (if (> num-matches 2) "ies" "y")
- (substitute-command-keys "\\[Info-last]")
- (if (> num-matches 2) "them" "it")))))
- (error "Couldn't find documentation for %s" command))))
-
-;;;###autoload
-(defun Info-goto-emacs-key-command-node (key)
- "Go to the Info node in the Emacs manual the command bound to KEY, a string.
-Interactively, if the binding is execute-extended-command, a command is read.
-The command is found by looking up in Emacs manual's Command Index
-or in another manual found via COMMAND's `info-file' property or
-the variable `Info-file-list-for-emacs'."
- (interactive "kFind documentation for key:")
- (let ((command (key-binding key)))
- (cond ((null command)
- (message "%s is undefined" (key-description key)))
- ((and (interactive-p)
- (eq command 'execute-extended-command))
- (Info-goto-emacs-command-node
- (read-command "Find documentation for command: ")))
- (t
- (Info-goto-emacs-command-node command)))))
-
-(defcustom Info-title-face-alist
- '((?* bold underline)
- (?= bold-italic underline)
- (?- italic underline))
- "*Alist of face or list of faces to use for pseudo-underlined titles.
-The alist key is the character the title is underlined with (?*, ?= or ?-)."
- :type '(repeat (list character face face))
- :group 'info)
-
-(defun Info-fontify-node ()
- (save-excursion
- (let ((buffer-read-only nil))
- (goto-char (point-min))
- (if (looking-at "^File: [^,: \t]+,?[ \t]+")
- (progn
- (goto-char (match-end 0))
- (while
- (looking-at "[ \t]*[^:, \t\n]+:[ \t]+\\([^:,\t\n]+\\),?")
- (goto-char (match-end 0))
- (put-text-property (match-beginning 1) (match-end 1)
- 'face 'info-xref)
- (put-text-property (match-beginning 1) (match-end 1)
- 'mouse-face 'highlight))))
- (goto-char (point-min))
- (while (re-search-forward "\n\\([^ \t\n].+\\)\n\\(\\*+\\|=+\\|-+\\)$"
- nil t)
- (put-text-property (match-beginning 1) (match-end 1)
- 'face
- (cdr (assq (preceding-char) Info-title-face-alist)))
- (put-text-property (match-end 1) (match-end 2)
- 'invisible t))
- (goto-char (point-min))
- (while (re-search-forward "\\*Note[ \n\t]+\\([^:]*\\):" nil t)
- (if (= (char-after (1- (match-beginning 0))) ?\") ; hack
- nil
- (put-text-property (match-beginning 1) (match-end 1)
- 'face 'info-xref)
- (put-text-property (match-beginning 1) (match-end 1)
- 'mouse-face 'highlight)))
- (goto-char (point-min))
- (if (and (search-forward "\n* Menu:" nil t)
- (not (string-match "\\<Index\\>" Info-current-node))
- ;; Don't take time to annotate huge menus
- (< (- (point-max) (point)) Info-fontify-maximum-menu-size))
- (let ((n 0))
- (while (re-search-forward "^\\* \\([^:\t\n]*\\):" nil t)
- (setq n (1+ n))
- (if (memq n '(5 9)) ; visual aids to help with 1-9 keys
- (put-text-property (match-beginning 0)
- (1+ (match-beginning 0))
- 'face 'info-menu-5))
- (put-text-property (match-beginning 1) (match-end 1)
- 'face 'info-node)
- (put-text-property (match-beginning 1) (match-end 1)
- 'mouse-face 'highlight))))
- (set-buffer-modified-p nil))))
-
-
-;; When an Info buffer is killed, make sure the associated tags buffer
-;; is killed too.
-(defun Info-kill-buffer ()
- (and (eq major-mode 'Info-mode)
- Info-tag-table-buffer
- (kill-buffer Info-tag-table-buffer)))
-
-(add-hook 'kill-buffer-hook 'Info-kill-buffer)
-
-
-(provide 'info)
-
-;;; info.el ends here
diff --git a/texinfo/emacs/informat.el b/texinfo/emacs/informat.el
deleted file mode 100644
index 36f0c560675..00000000000
--- a/texinfo/emacs/informat.el
+++ /dev/null
@@ -1,438 +0,0 @@
-;;; informat.el --- info support functions package for Emacs
-
-;; Copyright (C) 1986 Free Software Foundation, Inc.
-
-;; Maintainer: FSF
-;; Keywords: help
-
-;; This file is part of GNU Emacs.
-
-;; GNU Emacs is free software; you can redistribute it and/or modify
-;; it under the terms of the GNU General Public License as published by
-;; the Free Software Foundation; either version 2, or (at your option)
-;; any later version.
-
-;; GNU Emacs is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-;; GNU General Public License for more details.
-
-;; You should have received a copy of the GNU General Public License
-;; along with GNU Emacs; see the file COPYING. If not, write to the
-;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-;; Boston, MA 02111-1307, USA.
-
-;;; Code:
-
-(require 'info)
-
-;;;###autoload
-(defun Info-tagify ()
- "Create or update Info-file tag table in current buffer."
- (interactive)
- ;; Save and restore point and restrictions.
- ;; save-restrictions would not work
- ;; because it records the old max relative to the end.
- ;; We record it relative to the beginning.
- (message "Tagifying %s ..." (file-name-nondirectory (buffer-file-name)))
- (let ((omin (point-min))
- (omax (point-max))
- (nomax (= (point-max) (1+ (buffer-size))))
- (opoint (point)))
- (unwind-protect
- (progn
- (widen)
- (goto-char (point-min))
- (if (search-forward "\^_\nIndirect:\n" nil t)
- (message "Cannot tagify split info file")
- (let ((regexp "Node:[ \t]*\\([^,\n\t]*\\)[,\t\n]")
- (case-fold-search t)
- list)
- (while (search-forward "\n\^_" nil t)
- ;; We want the 0-origin character position of the ^_.
- ;; That is the same as the Emacs (1-origin) position
- ;; of the newline before it.
- (let ((beg (match-beginning 0)))
- (forward-line 2)
- (if (re-search-backward regexp beg t)
- (setq list
- (cons (list (buffer-substring-no-properties
- (match-beginning 1)
- (match-end 1))
- beg)
- list)))))
- (goto-char (point-max))
- (forward-line -8)
- (let ((buffer-read-only nil))
- (if (search-forward "\^_\nEnd tag table\n" nil t)
- (let ((end (point)))
- (search-backward "\nTag table:\n")
- (beginning-of-line)
- (delete-region (point) end)))
- (goto-char (point-max))
- (insert "\^_\f\nTag table:\n")
- (if (eq major-mode 'info-mode)
- (move-marker Info-tag-table-marker (point)))
- (setq list (nreverse list))
- (while list
- (insert "Node: " (car (car list)) ?\177)
- (princ (car (cdr (car list))) (current-buffer))
- (insert ?\n)
- (setq list (cdr list)))
- (insert "\^_\nEnd tag table\n")))))
- (goto-char opoint)
- (narrow-to-region omin (if nomax (1+ (buffer-size))
- (min omax (point-max))))))
- (message "Tagifying %s ... done" (file-name-nondirectory (buffer-file-name))))
-
-;;;###autoload
-(defun Info-split ()
- "Split an info file into an indirect file plus bounded-size subfiles.
-Each subfile will be up to 50,000 characters plus one node.
-
-To use this command, first visit a large Info file that has a tag
-table. The buffer is modified into a (small) indirect info file which
-should be saved in place of the original visited file.
-
-The subfiles are written in the same directory the original file is
-in, with names generated by appending `-' and a number to the original
-file name. The indirect file still functions as an Info file, but it
-contains just the tag table and a directory of subfiles."
-
- (interactive)
- (if (< (buffer-size) 70000)
- (error "This is too small to be worth splitting"))
- (goto-char (point-min))
- (search-forward "\^_")
- (forward-char -1)
- (let ((start (point))
- (chars-deleted 0)
- subfiles
- (subfile-number 1)
- (case-fold-search t)
- (filename (file-name-sans-versions buffer-file-name)))
- (goto-char (point-max))
- (forward-line -8)
- (setq buffer-read-only nil)
- (or (search-forward "\^_\nEnd tag table\n" nil t)
- (error "Tag table required; use M-x Info-tagify"))
- (search-backward "\nTag table:\n")
- (if (looking-at "\nTag table:\n\^_")
- (error "Tag table is just a skeleton; use M-x Info-tagify"))
- (beginning-of-line)
- (forward-char 1)
- (save-restriction
- (narrow-to-region (point-min) (point))
- (goto-char (point-min))
- (while (< (1+ (point)) (point-max))
- (goto-char (min (+ (point) 50000) (point-max)))
- (search-forward "\^_" nil 'move)
- (setq subfiles
- (cons (list (+ start chars-deleted)
- (concat (file-name-nondirectory filename)
- (format "-%d" subfile-number)))
- subfiles))
- ;; Put a newline at end of split file, to make Unix happier.
- (insert "\n")
- (write-region (point-min) (point)
- (concat filename (format "-%d" subfile-number)))
- (delete-region (1- (point)) (point))
- ;; Back up over the final ^_.
- (forward-char -1)
- (setq chars-deleted (+ chars-deleted (- (point) start)))
- (delete-region start (point))
- (setq subfile-number (1+ subfile-number))))
- (while subfiles
- (goto-char start)
- (insert (nth 1 (car subfiles))
- (format ": %d" (1- (car (car subfiles))))
- "\n")
- (setq subfiles (cdr subfiles)))
- (goto-char start)
- (insert "\^_\nIndirect:\n")
- (search-forward "\nTag Table:\n")
- (insert "(Indirect)\n")))
-
-(defvar Info-validate-allnodes)
-(defvar Info-validate-thisnode)
-(defvar Info-validate-lossages)
-
-;;;###autoload
-(defun Info-validate ()
- "Check current buffer for validity as an Info file.
-Check that every node pointer points to an existing node."
- (interactive)
- (save-excursion
- (save-restriction
- (widen)
- (goto-char (point-min))
- (if (search-forward "\nTag table:\n(Indirect)\n" nil t)
- (error "Don't yet know how to validate indirect info files: \"%s\""
- (buffer-name (current-buffer))))
- (goto-char (point-min))
- (let ((Info-validate-allnodes '(("*")))
- (regexp "Node:[ \t]*\\([^,\n\t]*\\)[,\t\n]")
- (case-fold-search t)
- (tags-losing nil)
- (Info-validate-lossages ()))
- (while (search-forward "\n\^_" nil t)
- (forward-line 1)
- (let ((beg (point)))
- (forward-line 1)
- (if (re-search-backward regexp beg t)
- (let ((name (downcase
- (buffer-substring-no-properties
- (match-beginning 1)
- (progn
- (goto-char (match-end 1))
- (skip-chars-backward " \t")
- (point))))))
- (if (assoc name Info-validate-allnodes)
- (setq Info-validate-lossages
- (cons (list name "Duplicate node-name" nil)
- Info-validate-lossages))
- (setq Info-validate-allnodes
- (cons (list name
- (progn
- (end-of-line)
- (and (re-search-backward
- "prev[ious]*:" beg t)
- (progn
- (goto-char (match-end 0))
- (downcase
- (Info-following-node-name)))))
- beg)
- Info-validate-allnodes)))))))
- (goto-char (point-min))
- (while (search-forward "\n\^_" nil t)
- (forward-line 1)
- (let ((beg (point))
- Info-validate-thisnode next)
- (forward-line 1)
- (if (re-search-backward regexp beg t)
- (save-restriction
- (search-forward "\n\^_" nil 'move)
- (narrow-to-region beg (point))
- (setq Info-validate-thisnode (downcase
- (buffer-substring-no-properties
- (match-beginning 1)
- (progn
- (goto-char (match-end 1))
- (skip-chars-backward " \t")
- (point)))))
- (end-of-line)
- (and (search-backward "next:" nil t)
- (setq next (Info-validate-node-name "invalid Next"))
- (assoc next Info-validate-allnodes)
- (if (equal (car (cdr (assoc next Info-validate-allnodes)))
- Info-validate-thisnode)
- ;; allow multiple `next' pointers to one node
- (let ((tem Info-validate-lossages))
- (while tem
- (if (and (equal (car (cdr (car tem)))
- "should have Previous")
- (equal (car (car tem))
- next))
- (setq Info-validate-lossages
- (delq (car tem) Info-validate-lossages)))
- (setq tem (cdr tem))))
- (setq Info-validate-lossages
- (cons (list next
- "should have Previous"
- Info-validate-thisnode)
- Info-validate-lossages))))
- (end-of-line)
- (if (re-search-backward "prev[ious]*:" nil t)
- (Info-validate-node-name "invalid Previous"))
- (end-of-line)
- (if (search-backward "up:" nil t)
- (Info-validate-node-name "invalid Up"))
- (if (re-search-forward "\n* Menu:" nil t)
- (while (re-search-forward "\n\\* " nil t)
- (Info-validate-node-name
- (concat "invalid menu item "
- (buffer-substring (point)
- (save-excursion
- (skip-chars-forward "^:")
- (point))))
- (Info-extract-menu-node-name))))
- (goto-char (point-min))
- (while (re-search-forward "\\*note[ \n]*[^:\t]*:" nil t)
- (goto-char (+ (match-beginning 0) 5))
- (skip-chars-forward " \n")
- (Info-validate-node-name
- (concat "invalid reference "
- (buffer-substring (point)
- (save-excursion
- (skip-chars-forward "^:")
- (point))))
- (Info-extract-menu-node-name "Bad format cross-reference")))))))
- (setq tags-losing (not (Info-validate-tags-table)))
- (if (or Info-validate-lossages tags-losing)
- (with-output-to-temp-buffer " *problems in info file*"
- (while Info-validate-lossages
- (princ "In node \"")
- (princ (car (car Info-validate-lossages)))
- (princ "\", ")
- (let ((tem (nth 1 (car Info-validate-lossages))))
- (cond ((string-match "\n" tem)
- (princ (substring tem 0 (match-beginning 0)))
- (princ "..."))
- (t
- (princ tem))))
- (if (nth 2 (car Info-validate-lossages))
- (progn
- (princ ": ")
- (let ((tem (nth 2 (car Info-validate-lossages))))
- (cond ((string-match "\n" tem)
- (princ (substring tem 0 (match-beginning 0)))
- (princ "..."))
- (t
- (princ tem))))))
- (terpri)
- (setq Info-validate-lossages (cdr Info-validate-lossages)))
- (if tags-losing (princ "\nTags table must be recomputed\n")))
- ;; Here if info file is valid.
- ;; If we already made a list of problems, clear it out.
- (save-excursion
- (if (get-buffer " *problems in info file*")
- (progn
- (set-buffer " *problems in info file*")
- (kill-buffer (current-buffer)))))
- (message "File appears valid"))))))
-
-(defun Info-validate-node-name (kind &optional name)
- (if name
- nil
- (goto-char (match-end 0))
- (skip-chars-forward " \t")
- (if (= (following-char) ?\()
- nil
- (setq name
- (buffer-substring-no-properties
- (point)
- (progn
- (skip-chars-forward "^,\t\n")
- (skip-chars-backward " ")
- (point))))))
- (if (null name)
- nil
- (setq name (downcase name))
- (or (and (> (length name) 0) (= (aref name 0) ?\())
- (assoc name Info-validate-allnodes)
- (setq Info-validate-lossages
- (cons (list Info-validate-thisnode kind name)
- Info-validate-lossages))))
- name)
-
-(defun Info-validate-tags-table ()
- (goto-char (point-min))
- (if (not (search-forward "\^_\nEnd tag table\n" nil t))
- t
- (not (catch 'losing
- (let* ((end (match-beginning 0))
- (start (progn (search-backward "\nTag table:\n")
- (1- (match-end 0))))
- tem)
- (setq tem Info-validate-allnodes)
- (while tem
- (goto-char start)
- (or (equal (car (car tem)) "*")
- (search-forward (concat "Node: "
- (car (car tem))
- "\177")
- end t)
- (throw 'losing 'x))
- (setq tem (cdr tem)))
- (goto-char (1+ start))
- (while (looking-at ".*Node: \\(.*\\)\177\\([0-9]+\\)$")
- (setq tem (downcase (buffer-substring-no-properties
- (match-beginning 1)
- (match-end 1))))
- (setq tem (assoc tem Info-validate-allnodes))
- (if (or (not tem)
- (< 1000 (progn
- (goto-char (match-beginning 2))
- (setq tem (- (car (cdr (cdr tem)))
- (read (current-buffer))))
- (if (> tem 0) tem (- tem)))))
- (throw 'losing 'y))
- (forward-line 1)))
- (if (looking-at "\^_\n")
- (forward-line 1))
- (or (looking-at "End tag table\n")
- (throw 'losing 'z))
- nil))))
-
-;;;###autoload
-(defun batch-info-validate ()
- "Runs `Info-validate' on the files remaining on the command line.
-Must be used only with -batch, and kills Emacs on completion.
-Each file will be processed even if an error occurred previously.
-For example, invoke \"emacs -batch -f batch-info-validate $info/ ~/*.info\""
- (if (not noninteractive)
- (error "batch-info-validate may only be used -batch."))
- (let ((version-control t)
- (auto-save-default nil)
- (find-file-run-dired nil)
- (kept-old-versions 259259)
- (kept-new-versions 259259))
- (let ((error 0)
- file
- (files ()))
- (while command-line-args-left
- (setq file (expand-file-name (car command-line-args-left)))
- (cond ((not (file-exists-p file))
- (message ">> %s does not exist!" file)
- (setq error 1
- command-line-args-left (cdr command-line-args-left)))
- ((file-directory-p file)
- (setq command-line-args-left (nconc (directory-files file)
- (cdr command-line-args-left))))
- (t
- (setq files (cons file files)
- command-line-args-left (cdr command-line-args-left)))))
- (while files
- (setq file (car files)
- files (cdr files))
- (let ((lose nil))
- (condition-case err
- (progn
- (if buffer-file-name (kill-buffer (current-buffer)))
- (find-file file)
- (buffer-disable-undo (current-buffer))
- (set-buffer-modified-p nil)
- (fundamental-mode)
- (let ((case-fold-search nil))
- (goto-char (point-max))
- (cond ((search-backward "\n\^_\^L\nTag table:\n" nil t)
- (message "%s already tagified" file))
- ((< (point-max) 30000)
- (message "%s too small to bother tagifying" file))
- (t
- (Info-tagify))))
- (let ((loss-name " *problems in info file*"))
- (message "Checking validity of info file %s..." file)
- (if (get-buffer loss-name)
- (kill-buffer loss-name))
- (Info-validate)
- (if (not (get-buffer loss-name))
- nil ;(message "Checking validity of info file %s... OK" file)
- (message "----------------------------------------------------------------------")
- (message ">> PROBLEMS IN INFO FILE %s" file)
- (save-excursion
- (set-buffer loss-name)
- (princ (buffer-substring-no-properties
- (point-min) (point-max))))
- (message "----------------------------------------------------------------------")
- (setq error 1 lose t)))
- (if (and (buffer-modified-p)
- (not lose))
- (progn (message "Saving modified %s" file)
- (save-buffer))))
- (error (message ">> Error: %s" (prin1-to-string err))))))
- (kill-emacs error))))
-
-(provide 'informat)
-
-;;; informat.el ends here
diff --git a/texinfo/emacs/makeinfo.el b/texinfo/emacs/makeinfo.el
deleted file mode 100644
index d6ee7bbb1c0..00000000000
--- a/texinfo/emacs/makeinfo.el
+++ /dev/null
@@ -1,256 +0,0 @@
-;;; makeinfo.el --- run makeinfo conveniently
-
-;; Copyright (C) 1991, 1993 Free Software Foundation, Inc.
-
-;; Author: Robert J. Chassell
-;; Maintainer: FSF
-
-;; This file is part of GNU Emacs.
-
-;; GNU Emacs is free software; you can redistribute it and/or modify
-;; it under the terms of the GNU General Public License as published by
-;; the Free Software Foundation; either version 2, or (at your option)
-;; any later version.
-
-;; GNU Emacs is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-;; GNU General Public License for more details.
-
-;; You should have received a copy of the GNU General Public License
-;; along with GNU Emacs; see the file COPYING. If not, write to the
-;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-;; Boston, MA 02111-1307, USA.
-
-;;; Commentary:
-
-;;; The Texinfo mode `makeinfo' related commands are:
-
-;; makeinfo-region to run makeinfo on the current region.
-;; makeinfo-buffer to run makeinfo on the current buffer, or
-;; with optional prefix arg, on current region
-;; kill-compilation to kill currently running makeinfo job
-;; makeinfo-recenter-makeinfo-buffer to redisplay *compilation* buffer
-
-;;; Keybindings (defined in `texinfo.el')
-
-;; makeinfo bindings
-; (define-key texinfo-mode-map "\C-c\C-m\C-r" 'makeinfo-region)
-; (define-key texinfo-mode-map "\C-c\C-m\C-b" 'makeinfo-buffer)
-; (define-key texinfo-mode-map "\C-c\C-m\C-k" 'kill-compilation)
-; (define-key texinfo-mode-map "\C-c\C-m\C-l"
-; 'makeinfo-recenter-compilation-buffer)
-
-;;; Code:
-
-;;; Variables used by `makeinfo'
-
-(require 'compile)
-
-(defgroup makeinfo nil
- "Run makeinfo conveniently"
- :group 'docs)
-
-
-(defcustom makeinfo-run-command "makeinfo"
- "*Command used to run `makeinfo' subjob.
-The name of the file is appended to this string, separated by a space."
- :type 'string
- :group 'makeinfo)
-
-(defcustom makeinfo-options "--fill-column=70"
- "*String containing options for running `makeinfo'.
-Do not include `--footnote-style' or `--paragraph-indent';
-the proper way to specify those is with the Texinfo commands
-`@footnotestyle` and `@paragraphindent'."
- :type 'string
- :group 'makeinfo)
-
-(require 'texinfo)
-
-(defvar makeinfo-compilation-process nil
- "Process that runs `makeinfo'. Should start out nil.")
-
-(defvar makeinfo-temp-file nil
- "Temporary file name used for text being sent as input to `makeinfo'.")
-
-(defvar makeinfo-output-file-name nil
- "Info file name used for text output by `makeinfo'.")
-
-
-;;; The `makeinfo' function definitions
-
-(defun makeinfo-region (region-beginning region-end)
- "Make Info file from region of current Texinfo file, and switch to it.
-
-This command does not offer the `next-error' feature since it would
-apply to a temporary file, not the original; use the `makeinfo-buffer'
-command to gain use of `next-error'."
-
- (interactive "r")
- (let (filename-or-header
- filename-or-header-beginning
- filename-or-header-end)
- ;; Cannot use `let' for makeinfo-temp-file or
- ;; makeinfo-output-file-name since `makeinfo-compilation-sentinel'
- ;; needs them.
-
- (setq makeinfo-temp-file
- (concat
- (make-temp-name
- (substring (buffer-file-name)
- 0
- (or (string-match "\\.tex" (buffer-file-name))
- (length (buffer-file-name)))))
- ".texinfo"))
-
- (save-excursion
- (save-restriction
- (widen)
- (goto-char (point-min))
- (let ((search-end (save-excursion (forward-line 100) (point))))
- ;; Find and record the Info filename,
- ;; or else explain that a filename is needed.
- (if (re-search-forward
- "^@setfilename[ \t]+\\([^ \t\n]+\\)[ \t]*"
- search-end t)
- (setq makeinfo-output-file-name
- (buffer-substring (match-beginning 1) (match-end 1)))
- (error
- "The texinfo file needs a line saying: @setfilename <name>"))
-
- ;; Find header and specify its beginning and end.
- (goto-char (point-min))
- (if (and
- (prog1
- (search-forward tex-start-of-header search-end t)
- (beginning-of-line)
- ;; Mark beginning of header.
- (setq filename-or-header-beginning (point)))
- (prog1
- (search-forward tex-end-of-header nil t)
- (beginning-of-line)
- ;; Mark end of header
- (setq filename-or-header-end (point))))
-
- ;; Insert the header into the temporary file.
- (write-region
- (min filename-or-header-beginning region-beginning)
- filename-or-header-end
- makeinfo-temp-file nil nil)
-
- ;; Else no header; insert @filename line into temporary file.
- (goto-char (point-min))
- (search-forward "@setfilename" search-end t)
- (beginning-of-line)
- (setq filename-or-header-beginning (point))
- (forward-line 1)
- (setq filename-or-header-end (point))
- (write-region
- (min filename-or-header-beginning region-beginning)
- filename-or-header-end
- makeinfo-temp-file nil nil))
-
- ;; Insert the region into the file.
- (write-region
- (max region-beginning filename-or-header-end)
- region-end
- makeinfo-temp-file t nil)
-
- ;; Run the `makeinfo-compile' command in the *compilation* buffer
- (save-excursion
- (makeinfo-compile
- (concat makeinfo-run-command
- " "
- makeinfo-options
- " "
- makeinfo-temp-file)
- "Use `makeinfo-buffer' to gain use of the `next-error' command"
- nil)))))))
-
-;;; Actually run makeinfo. COMMAND is the command to run.
-;;; ERROR-MESSAGE is what to say when next-error can't find another error.
-;;; If PARSE-ERRORS is non-nil, do try to parse error messages.
-(defun makeinfo-compile (command error-message parse-errors)
- (let ((buffer
- (compile-internal command error-message nil
- (and (not parse-errors)
- ;; If we do want to parse errors, pass nil.
- ;; Otherwise, use this function, which won't
- ;; ever find any errors.
- '(lambda (&rest ignore)
- (setq compilation-error-list nil))))))
- (set-process-sentinel (get-buffer-process buffer)
- 'makeinfo-compilation-sentinel)))
-
-;; Delete makeinfo-temp-file after processing is finished,
-;; and visit Info file.
-;; This function is called when the compilation process changes state.
-;; Based on `compilation-sentinel' in compile.el
-(defun makeinfo-compilation-sentinel (proc msg)
- (compilation-sentinel proc msg)
- (if (and makeinfo-temp-file (file-exists-p makeinfo-temp-file))
- (delete-file makeinfo-temp-file))
- ;; Always use the version on disk.
- (if (get-file-buffer makeinfo-output-file-name)
- (progn (set-buffer makeinfo-output-file-name)
- (revert-buffer t t))
- (find-file makeinfo-output-file-name))
- (goto-char (point-min)))
-
-(defun makeinfo-buffer ()
- "Make Info file from current buffer.
-
-Use the \\[next-error] command to move to the next error
-\(if there are errors\)."
-
- (interactive)
- (cond ((null buffer-file-name)
- (error "Buffer not visiting any file"))
- ((buffer-modified-p)
- (if (y-or-n-p "Buffer modified; do you want to save it? ")
- (save-buffer))))
-
- ;; Find and record the Info filename,
- ;; or else explain that a filename is needed.
- (save-excursion
- (goto-char (point-min))
- (let ((search-end (save-excursion (forward-line 100) (point))))
- (if (re-search-forward
- "^@setfilename[ \t]+\\([^ \t\n]+\\)[ \t]*"
- search-end t)
- (setq makeinfo-output-file-name
- (buffer-substring (match-beginning 1) (match-end 1)))
- (error
- "The texinfo file needs a line saying: @setfilename <name>"))))
-
- (save-excursion
- (makeinfo-compile
- (concat makeinfo-run-command " " makeinfo-options
- " " buffer-file-name)
- "No more errors."
- t)))
-
-(defun makeinfo-recenter-compilation-buffer (linenum)
- "Redisplay `*compilation*' buffer so most recent output can be seen.
-The last line of the buffer is displayed on
-line LINE of the window, or centered if LINE is nil."
- (interactive "P")
- (let ((makeinfo-buffer (get-buffer "*compilation*"))
- (old-buffer (current-buffer)))
- (if (null makeinfo-buffer)
- (message "No *compilation* buffer")
- (pop-to-buffer makeinfo-buffer)
- (bury-buffer makeinfo-buffer)
- (goto-char (point-max))
- (recenter (if linenum
- (prefix-numeric-value linenum)
- (/ (window-height) 2)))
- (pop-to-buffer old-buffer)
- )))
-
-;;; Place `provide' at end of file.
-(provide 'makeinfo)
-
-;;; makeinfo.el ends here
-
diff --git a/texinfo/emacs/new-useful-setqs b/texinfo/emacs/new-useful-setqs
deleted file mode 100644
index 4241ae429ef..00000000000
--- a/texinfo/emacs/new-useful-setqs
+++ /dev/null
@@ -1,180 +0,0 @@
-;; -*- Mode: Emacs-Lisp -*-
-
-;; This is the `new-useful-setqs' file
-;; This overrides old defvars since they were revised.
-
-(setq texinfmt-version "2.35 of 10 September 1996")
-
-(setq texinfo-master-menu-header
- "\n@detailmenu\n --- The Detailed Node Listing ---\n")
-
-(setq texinfo-environment-regexp
- (concat
- "^@"
- "\\("
- "cartouche\\|"
- "display\\|"
- "end\\|"
- "enumerate\\|"
- "example\\|"
- "f?table\\|"
- "flushleft\\|"
- "flushright\\|"
- "format\\|"
- "group\\|"
- "ifhtml\\|"
- "ifinfo\\|"
- "iftex\\|"
- "ignore\\|"
- "itemize\\|"
- "lisp\\|"
- "macro\\|"
- "multitable\\|"
- "quotation\\|"
- "smallexample\\|"
- "smalllisp\\|"
- "tex"
- "\\)")
-)
-
-(setq texinfo-no-refill-regexp
- (concat
- "^@"
- "\\("
- "example\\|"
- "smallexample\\|"
- "lisp\\|"
- "smalllisp\\|"
- "display\\|"
- "format\\|"
- "flushleft\\|"
- "flushright\\|"
- "menu\\|"
- "multitable\\|"
- "titlepage\\|"
- "iftex\\|"
- "ifhtml\\|"
- "tex\\|"
- "html"
- "\\)"))
-
-
-(setq texinfo-accent-commands
- (concat
- "@OE\\|"
- "@oe\\|"
- "@AA\\|"
- "@aa\\|"
- "@AE\\|"
- "@ae\\|"
- "@ss\\|"
- "@^\\|"
- "@`\\|"
- "@'\\|"
- "@\"\\|"
- "@,\\|"
- "@=\\|"
- "@~\\|"
- "@questiondown{\\|"
- "@exclamdown{\\|"
- "@L{\\|"
- "@l{\\|"
- "@O{\\|"
- "@o{\\|"
- "@dotaccent{\\|"
- "@ubaraccent{\\|"
- "@d{\\|"
- "@H{\\|"
- "@ringaccent{\\|"
- "@tieaccent{\\|"
- "@u{\\|"
- "@v{\\|"
- "@dotless{"
- ))
-
-(setq texinfo-part-of-para-regexp
- (concat
- "^@"
- "\\("
- "b{\\|"
- "bullet{\\|"
- "cite{\\|"
- "code{\\|"
- "emph{\\|"
- "equiv{\\|"
- "error{\\|"
- "expansion{\\|"
- "file{\\|"
- "i{\\|"
- "inforef{\\|"
- "kbd{\\|"
- "key{\\|"
- "lisp{\\|"
- "email{\\|"
- "minus{\\|"
- "point{\\|"
- "print{\\|"
- "pxref{\\|"
- "r{\\|"
- "ref{\\|"
- "result{\\|"
- "samp{\\|"
- "sc{\\|"
- "t{\\|"
- "TeX{\\|"
- "today{\\|"
- "url{\\|"
- "var{\\|"
- "w{\\|"
- "xref{\\|"
- "@-\\|" ; @- is a descretionary hyphen (not an accent) (a noop).
- texinfo-accent-commands
- "\\)"
- ))
-
-(setq texinfo-raisesections-alist
- '((@chapter . @chapter) ; Cannot go higher
- (@unnumbered . @unnumbered)
- (@centerchap . @unnumbered)
-
- (@majorheading . @majorheading)
- (@chapheading . @chapheading)
- (@appendix . @appendix)
-
- (@section . @chapter)
- (@unnumberedsec . @unnumbered)
- (@heading . @chapheading)
- (@appendixsec . @appendix)
-
- (@subsection . @section)
- (@unnumberedsubsec . @unnumberedsec)
- (@subheading . @heading)
- (@appendixsubsec . @appendixsec)
-
- (@subsubsection . @subsection)
- (@unnumberedsubsubsec . @unnumberedsubsec)
- (@subsubheading . @subheading)
- (@appendixsubsubsec . @appendixsubsec)))
-
-(setq texinfo-lowersections-alist
- '((@chapter . @section)
- (@unnumbered . @unnumberedsec)
- (@centerchap . @unnumberedsec)
- (@majorheading . @heading)
- (@chapheading . @heading)
- (@appendix . @appendixsec)
-
- (@section . @subsection)
- (@unnumberedsec . @unnumberedsubsec)
- (@heading . @subheading)
- (@appendixsec . @appendixsubsec)
-
- (@subsection . @subsubsection)
- (@unnumberedsubsec . @unnumberedsubsubsec)
- (@subheading . @subsubheading)
- (@appendixsubsec . @appendixsubsubsec)
-
- (@subsubsection . @subsubsection) ; Cannot go lower.
- (@unnumberedsubsubsec . @unnumberedsubsubsec)
- (@subsubheading . @subsubheading)
- (@appendixsubsubsec . @appendixsubsubsec)))
diff --git a/texinfo/emacs/texinfmt.el b/texinfo/emacs/texinfmt.el
deleted file mode 100644
index aadd28a35e1..00000000000
--- a/texinfo/emacs/texinfmt.el
+++ /dev/null
@@ -1,4013 +0,0 @@
-;;; texinfmt.el --- format Texinfo files into Info files.
-
-;; Copyright (C) 1985, 1986, 1988, 1990, 1991, 1992, 1993,
-;; 1994, 1995, 1996, 1997 Free Software Foundation, Inc.
-
-;; Maintainer: Robert J. Chassell <bug-texinfo@prep.ai.mit.edu>
-;; Keywords: maint, tex, docs
-
-;; This file is part of GNU Emacs.
-
-;; GNU Emacs is free software; you can redistribute it and/or modify
-;; it under the terms of the GNU General Public License as published by
-;; the Free Software Foundation; either version 2, or (at your option)
-;; any later version.
-
-;; GNU Emacs is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-;; GNU General Public License for more details.
-
-;; You should have received a copy of the GNU General Public License
-;; along with GNU Emacs; see the file COPYING. If not, write to the
-;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-;; Boston, MA 02111-1307, USA.
-
-;;; Code:
-
-;;; Emacs lisp functions to convert Texinfo files to Info files.
-
-(defvar texinfmt-version "2.37 of 24 May 1997")
-
-(defun texinfmt-version (&optional here)
- "Show the version of texinfmt.el in the minibuffer.
-If optional argument HERE is non-nil, insert info at point."
- (interactive "P")
- (let ((version-string
- (format "Version of \`texinfmt.el\': %s" texinfmt-version)))
- (if here
- (insert version-string)
- (if (interactive-p)
- (message "%s" version-string)
- version-string))))
-
-
-;;; Variable definitions
-
-(require 'texinfo) ; So `texinfo-footnote-style' is defined.
-(require 'texnfo-upd) ; So `texinfo-section-types-regexp' is defined.
-
-(defvar texinfo-format-syntax-table nil)
-
-(defvar texinfo-vindex)
-(defvar texinfo-findex)
-(defvar texinfo-cindex)
-(defvar texinfo-pindex)
-(defvar texinfo-tindex)
-(defvar texinfo-kindex)
-(defvar texinfo-last-node)
-(defvar texinfo-node-names)
-(defvar texinfo-enclosure-list)
-(defvar texinfo-alias-list)
-
-(defvar texinfo-command-start)
-(defvar texinfo-command-end)
-(defvar texinfo-command-name)
-(defvar texinfo-defun-type)
-(defvar texinfo-last-node-pos)
-(defvar texinfo-stack)
-(defvar texinfo-short-index-cmds-alist)
-(defvar texinfo-short-index-format-cmds-alist)
-(defvar texinfo-format-filename)
-(defvar texinfo-footnote-number)
-(defvar texinfo-start-of-header)
-(defvar texinfo-end-of-header)
-(defvar texinfo-raisesections-alist)
-(defvar texinfo-lowersections-alist)
-
-;;; Syntax table
-
-(if texinfo-format-syntax-table
- nil
- (setq texinfo-format-syntax-table (make-syntax-table))
- (modify-syntax-entry ?\" " " texinfo-format-syntax-table)
- (modify-syntax-entry ?\\ " " texinfo-format-syntax-table)
- (modify-syntax-entry ?@ "\\" texinfo-format-syntax-table)
- (modify-syntax-entry ?\^q "\\" texinfo-format-syntax-table)
- (modify-syntax-entry ?\[ "." texinfo-format-syntax-table)
- (modify-syntax-entry ?\] "." texinfo-format-syntax-table)
- (modify-syntax-entry ?\( "." texinfo-format-syntax-table)
- (modify-syntax-entry ?\) "." texinfo-format-syntax-table)
- (modify-syntax-entry ?{ "(}" texinfo-format-syntax-table)
- (modify-syntax-entry ?} "){" texinfo-format-syntax-table)
- (modify-syntax-entry ?\' "." texinfo-format-syntax-table))
-
-
-;;; Top level buffer and region formatting functions
-
-;;;###autoload
-(defun texinfo-format-buffer (&optional notagify)
- "Process the current buffer as texinfo code, into an Info file.
-The Info file output is generated in a buffer visiting the Info file
-name specified in the @setfilename command.
-
-Non-nil argument (prefix, if interactive) means don't make tag table
-and don't split the file if large. You can use Info-tagify and
-Info-split to do these manually."
- (interactive "P")
- (let ((lastmessage "Formatting Info file..."))
- (message lastmessage)
- (texinfo-format-buffer-1)
- (if notagify
- nil
- (if (> (buffer-size) 30000)
- (progn
- (message (setq lastmessage "Making tags table for Info file..."))
- (Info-tagify)))
- (if (> (buffer-size) 100000)
- (progn
- (message (setq lastmessage "Splitting Info file..."))
- (Info-split))))
- (message (concat lastmessage
- (if (interactive-p) "done. Now save it." "done.")))))
-
-(defvar texinfo-region-buffer-name "*Info Region*"
- "*Name of the temporary buffer used by \\[texinfo-format-region].")
-
-;;;###autoload
-(defun texinfo-format-region (region-beginning region-end)
- "Convert the current region of the Texinfo file to Info format.
-This lets you see what that part of the file will look like in Info.
-The command is bound to \\[texinfo-format-region]. The text that is
-converted to Info is stored in a temporary buffer."
- (interactive "r")
- (message "Converting region to Info format...")
- (let (texinfo-command-start
- texinfo-command-end
- texinfo-command-name
- texinfo-vindex
- texinfo-findex
- texinfo-cindex
- texinfo-pindex
- texinfo-tindex
- texinfo-kindex
- texinfo-stack
- (texinfo-format-filename "")
- texinfo-example-start
- texinfo-last-node-pos
- texinfo-last-node
- texinfo-node-names
- (texinfo-footnote-number 0)
- last-input-buffer
- (fill-column-for-info fill-column)
- (input-buffer (current-buffer))
- (input-directory default-directory)
- (header-text "")
- (header-beginning 1)
- (header-end 1))
-
-;;; Copy lines between beginning and end of header lines,
-;;; if any, or else copy the `@setfilename' line, if any.
- (save-excursion
- (save-restriction
- (widen)
- (goto-char (point-min))
- (let ((search-end (save-excursion (forward-line 100) (point))))
- (if (or
- ;; Either copy header text.
- (and
- (prog1
- (search-forward tex-start-of-header search-end t)
- (forward-line 1)
- ;; Mark beginning of header.
- (setq header-beginning (point)))
- (prog1
- (search-forward tex-end-of-header nil t)
- (beginning-of-line)
- ;; Mark end of header
- (setq header-end (point))))
- ;; Or copy @filename line.
- (prog2
- (goto-char (point-min))
- (search-forward "@setfilename" search-end t)
- (beginning-of-line)
- (setq header-beginning (point))
- (forward-line 1)
- (setq header-end (point))))
-
- ;; Copy header
- (setq header-text
- (buffer-substring
- (min header-beginning region-beginning)
- header-end))))))
-
-;;; Find a buffer to use.
- (switch-to-buffer (get-buffer-create texinfo-region-buffer-name))
- (erase-buffer)
- ;; Insert the header into the buffer.
- (insert header-text)
- ;; Insert the region into the buffer.
- (insert-buffer-substring
- input-buffer
- (max region-beginning header-end)
- region-end)
- ;; Make sure region ends in a newline.
- (or (= (preceding-char) ?\n)
- (insert "\n"))
-
- (goto-char (point-min))
- (texinfo-mode)
- (message "Converting region to Info format...")
- (setq fill-column fill-column-for-info)
- ;; Install a syntax table useful for scanning command operands.
- (set-syntax-table texinfo-format-syntax-table)
-
- ;; Insert @include files so `texinfo-raise-lower-sections' can
- ;; work on them without losing track of multiple
- ;; @raise/@lowersections commands.
- (while (re-search-forward "^@include" nil t)
- (setq texinfo-command-end (point))
- (let ((filename (concat input-directory
- (texinfo-parse-line-arg))))
- (re-search-backward "^@include")
- (delete-region (point) (save-excursion (forward-line 1) (point)))
- (message "Reading included file: %s" filename)
- (save-excursion
- (save-restriction
- (narrow-to-region
- (point)
- (+ (point) (car (cdr (insert-file-contents filename)))))
- (goto-char (point-min))
- ;; Remove `@setfilename' line from included file, if any,
- ;; so @setfilename command not duplicated.
- (if (re-search-forward
- "^@setfilename" (save-excursion (forward-line 100) (point)) t)
- (progn
- (beginning-of-line)
- (delete-region
- (point) (save-excursion (forward-line 1) (point)))))))))
-
- ;; Raise or lower level of each section, if necessary.
- (goto-char (point-min))
- (texinfo-raise-lower-sections)
- ;; Append @refill to appropriate paragraphs for filling.
- (goto-char (point-min))
- (texinfo-append-refill)
- ;; If the region includes the effective end of the data,
- ;; discard everything after that.
- (goto-char (point-max))
- (if (re-search-backward "^@bye" nil t)
- (delete-region (point) (point-max)))
- ;; Make sure buffer ends in a newline.
- (or (= (preceding-char) ?\n)
- (insert "\n"))
- ;; Don't use a previous value of texinfo-enclosure-list.
- (setq texinfo-enclosure-list nil)
- (setq texinfo-alias-list nil)
-
- (goto-char (point-min))
- (if (looking-at "\\\\input[ \t]+texinfo")
- (delete-region (point) (save-excursion (forward-line 1) (point))))
-
- ;; Insert Info region title text.
- (goto-char (point-min))
- (if (search-forward
- "@setfilename" (save-excursion (forward-line 100) (point)) t)
- (progn
- (setq texinfo-command-end (point))
- (beginning-of-line)
- (setq texinfo-command-start (point))
- (let ((arg (texinfo-parse-arg-discard)))
- (insert " "
- texinfo-region-buffer-name
- " buffer for: `")
- (insert (file-name-nondirectory (expand-file-name arg)))
- (insert "', -*-Text-*-\n")))
- ;; Else no `@setfilename' line
- (insert " "
- texinfo-region-buffer-name
- " buffer -*-Text-*-\n"))
- (insert "produced by `texinfo-format-region'\n"
- "from a region in: "
- (if (buffer-file-name input-buffer)
- (concat "`"
- (file-name-sans-versions
- (file-name-nondirectory
- (buffer-file-name input-buffer)))
- "'")
- (concat "buffer `" (buffer-name input-buffer) "'"))
- "\nusing `texinfmt.el' version "
- texinfmt-version
- ".\n\n")
-
- ;; Now convert for real.
- (goto-char (point-min))
- (texinfo-format-scan)
- (goto-char (point-min))
-
- (message "Done.")))
-
-;;;###autoload
-(defun texi2info (&optional notagify)
- "Convert the current buffer (written in Texinfo code) into an Info file.
-The Info file output is generated in a buffer visiting the Info file
-names specified in the @setfilename command.
-
-This function automatically updates all node pointers and menus, and
-creates a master menu. This work is done on a temporary buffer that
-is automatically removed when the Info file is created. The original
-Texinfo source buffer is not changed.
-
-Non-nil argument (prefix, if interactive) means don't make tag table
-and don't split the file if large. You can use Info-tagify and
-Info-split to do these manually."
- (interactive "P")
- (let ((temp-buffer (concat "*--" (buffer-name) "--temporary-buffer*" )))
- (message "First updating nodes and menus, then creating Info file.")
- ;; (sit-for 2)
- (copy-to-buffer temp-buffer (point-min) (point-max))
- (switch-to-buffer temp-buffer)
- (texinfo-master-menu t)
- (message "Now creating Info file.")
- (sit-for 2)
- (texinfo-format-buffer notagify)
- (save-buffer)
- (kill-buffer temp-buffer)))
-
-
-;;; Primary internal formatting function for the whole buffer.
-
-(defun texinfo-format-buffer-1 ()
- (let (texinfo-format-filename
- texinfo-example-start
- texinfo-command-start
- texinfo-command-end
- texinfo-command-name
- texinfo-last-node
- texinfo-last-node-pos
- texinfo-vindex
- texinfo-findex
- texinfo-cindex
- texinfo-pindex
- texinfo-tindex
- texinfo-kindex
- texinfo-stack
- texinfo-node-names
- (texinfo-footnote-number 0)
- last-input-buffer
- outfile
- (fill-column-for-info fill-column)
- (input-buffer (current-buffer))
- (input-directory default-directory))
- (setq texinfo-enclosure-list nil)
- (setq texinfo-alias-list nil)
- (save-excursion
- (goto-char (point-min))
- (or (search-forward "@setfilename" nil t)
- (error "Texinfo file needs an `@setfilename FILENAME' line."))
- (setq texinfo-command-end (point))
- (setq outfile (texinfo-parse-line-arg)))
- (find-file outfile)
- (texinfo-mode)
- (setq fill-column fill-column-for-info)
- (set-syntax-table texinfo-format-syntax-table)
- (erase-buffer)
- (insert-buffer-substring input-buffer)
- (message "Converting %s to Info format..." (buffer-name input-buffer))
-
- ;; Insert @include files so `texinfo-raise-lower-sections' can
- ;; work on them without losing track of multiple
- ;; @raise/@lowersections commands.
- (goto-char (point-min))
- (while (re-search-forward "^@include" nil t)
- (setq texinfo-command-end (point))
- (let ((filename (concat input-directory
- (texinfo-parse-line-arg))))
- (re-search-backward "^@include")
- (delete-region (point) (save-excursion (forward-line 1) (point)))
- (message "Reading included file: %s" filename)
- (save-excursion
- (save-restriction
- (narrow-to-region
- (point)
- (+ (point) (car (cdr (insert-file-contents filename)))))
- (goto-char (point-min))
- ;; Remove `@setfilename' line from included file, if any,
- ;; so @setfilename command not duplicated.
- (if (re-search-forward
- "^@setfilename"
- (save-excursion (forward-line 100) (point)) t)
- (progn
- (beginning-of-line)
- (delete-region
- (point) (save-excursion (forward-line 1) (point)))))))))
- ;; Raise or lower level of each section, if necessary.
- (goto-char (point-min))
- (texinfo-raise-lower-sections)
- ;; Append @refill to appropriate paragraphs
- (goto-char (point-min))
- (texinfo-append-refill)
- (goto-char (point-min))
- (search-forward "@setfilename")
- (beginning-of-line)
- (delete-region (point-min) (point))
- ;; Remove @bye at end of file, if it is there.
- (goto-char (point-max))
- (if (search-backward "@bye" nil t)
- (delete-region (point) (point-max)))
- ;; Make sure buffer ends in a newline.
- (or (= (preceding-char) ?\n)
- (insert "\n"))
- ;; Scan the whole buffer, converting to Info format.
- (texinfo-format-scan)
- ;; Return data for indices.
- (goto-char (point-min))
- (list outfile
- texinfo-vindex texinfo-findex texinfo-cindex
- texinfo-pindex texinfo-tindex texinfo-kindex)))
-
-
-;;; Perform non-@-command file conversions: quotes and hyphens
-
-(defun texinfo-format-convert (min max)
- ;; Convert left and right quotes to typewriter font quotes.
- (goto-char min)
- (while (search-forward "``" max t)
- (replace-match "\""))
- (goto-char min)
- (while (search-forward "''" max t)
- (replace-match "\""))
- ;; Convert three hyphens in a row to two.
- (goto-char min)
- (while (re-search-forward "\\( \\|\\w\\)\\(---\\)\\( \\|\\w\\)" max t)
- (delete-region (1+ (match-beginning 2)) (+ 2 (match-beginning
- 2)))))
-
-
-;;; Handle paragraph filling
-
-;; Keep as concatinated lists for ease of maintenance
-
-(defvar texinfo-no-refill-regexp
- (concat
- "^@"
- "\\("
- "example\\|"
- "smallexample\\|"
- "lisp\\|"
- "smalllisp\\|"
- "display\\|"
- "format\\|"
- "flushleft\\|"
- "flushright\\|"
- "menu\\|"
- "multitable\\|"
- "titlepage\\|"
- "iftex\\|"
- "ifhtml\\|"
- "tex\\|"
- "html"
- "\\)")
- "Regexp specifying environments in which paragraphs are not filled.")
-
-(defvar texinfo-accent-commands
- (concat
- "@^\\|"
- "@`\\|"
- "@'\\|"
- "@\"\\|"
- "@,\\|"
- "@=\\|"
- "@~\\|"
- "@OE{\\|"
- "@oe{\\|"
- "@AA{\\|"
- "@aa{\\|"
- "@AE{\\|"
- "@ae{\\|"
- "@ss{\\|"
- "@questiondown{\\|"
- "@exclamdown{\\|"
- "@L{\\|"
- "@l{\\|"
- "@O{\\|"
- "@o{\\|"
- "@dotaccent{\\|"
- "@ubaraccent{\\|"
- "@d{\\|"
- "@H{\\|"
- "@ringaccent{\\|"
- "@tieaccent{\\|"
- "@u{\\|"
- "@v{\\|"
- "@dotless{"
- ))
-
-(defvar texinfo-part-of-para-regexp
- (concat
- "^@"
- "\\("
- "b{\\|"
- "bullet{\\|"
- "cite{\\|"
- "code{\\|"
- "email{\\|"
- "emph{\\|"
- "equiv{\\|"
- "error{\\|"
- "expansion{\\|"
- "file{\\|"
- "i{\\|"
- "inforef{\\|"
- "kbd{\\|"
- "key{\\|"
- "lisp{\\|"
- "minus{\\|"
- "point{\\|"
- "print{\\|"
- "pxref{\\|"
- "r{\\|"
- "ref{\\|"
- "result{\\|"
- "samp{\\|"
- "sc{\\|"
- "t{\\|"
- "TeX{\\|"
- "today{\\|"
- "url{\\|"
- "var{\\|"
- "w{\\|"
- "xref{\\|"
- "@-\\|" ; @- is a descretionary hyphen (not an accent) (a noop).
- texinfo-accent-commands
- "\\)"
- )
- "Regexp specifying @-commands found within paragraphs.")
-
-(defun texinfo-append-refill ()
- "Append @refill at end of each paragraph that should be filled.
-Do not append @refill to paragraphs within @example and similar environments.
-Do not append @refill to paragraphs containing @w{TEXT} or @*."
-
- ;; It is necessary to append @refill before other processing because
- ;; the other processing removes information that tells Texinfo
- ;; whether the text should or should not be filled.
-
- (while (< (point) (point-max))
- (let ((refill-blank-lines "^[ \t\n]*$")
- (case-fold-search nil)) ; Don't confuse @TeX and @tex....
- (beginning-of-line)
- ;; 1. Skip over blank lines;
- ;; skip over lines beginning with @-commands,
- ;; but do not skip over lines
- ;; that are no-refill environments such as @example or
- ;; that begin with within-paragraph @-commands such as @code.
- (while (and (looking-at (concat "^@\\|^\\\\\\|" refill-blank-lines))
- (not (looking-at
- (concat
- "\\("
- texinfo-no-refill-regexp
- "\\|"
- texinfo-part-of-para-regexp
- "\\)")))
- (< (point) (point-max)))
- (forward-line 1))
- ;; 2. Skip over @example and similar no-refill environments.
- (if (looking-at texinfo-no-refill-regexp)
- (let ((environment
- (buffer-substring (match-beginning 1) (match-end 1))))
- (progn (re-search-forward (concat "^@end " environment) nil t)
- (forward-line 1)))
- ;; Else
- ;; 3. Do not refill a paragraph containing @w or @*, or ending
- ;; with @<newline> followed by a newline.
- (if (or
- (>= (point) (point-max))
- (re-search-forward
- "@w{\\|@\\*\\|@\n\n"
- (save-excursion
- (forward-paragraph)
- (forward-line 1)
- (point)) t))
- ;; Go to end of paragraph and do nothing.
- (forward-paragraph)
- ;; 4. Else go to end of paragraph and insert @refill
- (forward-paragraph)
- (forward-line -1)
- (end-of-line)
- (delete-region
- (point)
- (save-excursion (skip-chars-backward " \t") (point)))
- ;; `looking-at-backward' not available in v. 18.57
- ;; (if (not (looking-at-backward "@refill\\|@bye")) ;)
- (if (not (re-search-backward
- "@refill\\|@bye"
- (save-excursion (beginning-of-line) (point))
- t))
- (insert "@refill"))
- (forward-line 1))))))
-
-
-;;; Handle `@raisesections' and `@lowersections' commands
-
-;; These commands change the hierarchical level of chapter structuring
-;; commands.
-;;
-;; @raisesections changes @subsection to @section,
-;; @section to @chapter,
-;; etc.
-;;
-;; @lowersections changes @chapter to @section
-;; @subsection to @subsubsection,
-;; etc.
-;;
-;; An @raisesections/@lowersections command changes only those
-;; structuring commands that follow the @raisesections/@lowersections
-;; command.
-;;
-;; Repeated @raisesections/@lowersections continue to raise or lower
-;; the heading level.
-;;
-;; An @lowersections command cancels an @raisesections command, and
-;; vice versa.
-;;
-;; You cannot raise or lower "beyond" chapters or subsubsections, but
-;; trying to do so does not elicit an error---you just get more
-;; headings that mean the same thing as you keep raising or lowering
-;; (for example, after a single @raisesections, both @chapter and
-;; @section produce chapter headings).
-
-(defun texinfo-raise-lower-sections ()
- "Raise or lower the hierarchical level of chapters, sections, etc.
-
-This function acts according to `@raisesections' and `@lowersections'
-commands in the Texinfo file.
-
-For example, an `@lowersections' command is useful if you wish to
-include what is written as an outer or standalone Texinfo file in
-another Texinfo file as an inner, included file. The `@lowersections'
-command changes chapters to sections, sections to subsections and so
-on.
-
-@raisesections changes @subsection to @section,
- @section to @chapter,
- @heading to @chapheading,
- etc.
-
-@lowersections changes @chapter to @section,
- @subsection to @subsubsection,
- @heading to @subheading,
- etc.
-
-An `@raisesections' or `@lowersections' command changes only those
-structuring commands that follow the `@raisesections' or
-`@lowersections' command.
-
-An `@lowersections' command cancels an `@raisesections' command, and
-vice versa.
-
-Repeated use of the commands continue to raise or lower the hierarchical
-level a step at a time.
-
-An attempt to raise above `chapters' reproduces chapter commands; an
-attempt to lower below subsubsections reproduces subsubsection
-commands."
-
- ;; `texinfo-section-types-regexp' is defined in `texnfo-upd.el';
- ;; it is a regexp matching chapter, section, other headings
- ;; (but not the top node).
-
- (let (type (level 0))
- (while
- (re-search-forward
- (concat
- "\\(\\(^@\\(raise\\|lower\\)sections\\)\\|\\("
- texinfo-section-types-regexp
- "\\)\\)")
- nil t)
- (beginning-of-line)
- (save-excursion (setq type (read (current-buffer))))
- (cond
-
- ;; 1. Increment level
- ((eq type '@raisesections)
- (setq level (1+ level))
- (delete-region
- (point) (save-excursion (forward-line 1) (point))))
-
- ;; 2. Decrement level
- ((eq type '@lowersections)
- (setq level (1- level))
- (delete-region
- (point) (save-excursion (forward-line 1) (point))))
-
- ;; Now handle structuring commands
- ((cond
-
- ;; 3. Raise level when positive
- ((> level 0)
- (let ((count level)
- (new-level type))
- (while (> count 0)
- (setq new-level
- (cdr (assq new-level texinfo-raisesections-alist)))
- (setq count (1- count)))
- (kill-word 1)
- (insert (symbol-name new-level))))
-
- ;; 4. Do nothing except move point when level is zero
- ((= level 0) (forward-line 1))
-
- ;; 5. Lower level when positive
- ((< level 0)
- (let ((count level)
- (new-level type))
- (while (< count 0)
- (setq new-level
- (cdr (assq new-level texinfo-lowersections-alist)))
- (setq count (1+ count)))
- (kill-word 1)
- (insert (symbol-name new-level))))))))))
-
-(defvar texinfo-raisesections-alist
- '((@chapter . @chapter) ; Cannot go higher
- (@unnumbered . @unnumbered)
- (@centerchap . @unnumbered)
-
- (@majorheading . @majorheading)
- (@chapheading . @chapheading)
- (@appendix . @appendix)
-
- (@section . @chapter)
- (@unnumberedsec . @unnumbered)
- (@heading . @chapheading)
- (@appendixsec . @appendix)
-
- (@subsection . @section)
- (@unnumberedsubsec . @unnumberedsec)
- (@subheading . @heading)
- (@appendixsubsec . @appendixsec)
-
- (@subsubsection . @subsection)
- (@unnumberedsubsubsec . @unnumberedsubsec)
- (@subsubheading . @subheading)
- (@appendixsubsubsec . @appendixsubsec))
- "*An alist of next higher levels for chapters, sections. etc.
-For example, section to chapter, subsection to section.
-Used by `texinfo-raise-lower-sections'.
-The keys specify types of section; the values correspond to the next
-higher types.")
-
-(defvar texinfo-lowersections-alist
- '((@chapter . @section)
- (@unnumbered . @unnumberedsec)
- (@centerchap . @unnumberedsec)
- (@majorheading . @heading)
- (@chapheading . @heading)
- (@appendix . @appendixsec)
-
- (@section . @subsection)
- (@unnumberedsec . @unnumberedsubsec)
- (@heading . @subheading)
- (@appendixsec . @appendixsubsec)
-
- (@subsection . @subsubsection)
- (@unnumberedsubsec . @unnumberedsubsubsec)
- (@subheading . @subsubheading)
- (@appendixsubsec . @appendixsubsubsec)
-
- (@subsubsection . @subsubsection) ; Cannot go lower.
- (@unnumberedsubsubsec . @unnumberedsubsubsec)
- (@subsubheading . @subsubheading)
- (@appendixsubsubsec . @appendixsubsubsec))
- "*An alist of next lower levels for chapters, sections. etc.
-For example, chapter to section, section to subsection.
-Used by `texinfo-raise-lower-sections'.
-The keys specify types of section; the values correspond to the next
-lower types.")
-
-
-;;; Perform those texinfo-to-info conversions that apply to the whole input
-;;; uniformly.
-
-(defun texinfo-format-scan ()
- (texinfo-format-convert (point-min) (point-max))
- ;; Scan for @-commands.
- (goto-char (point-min))
- (while (search-forward "@" nil t)
- ;;
- ;; These are the single-character accent commands: @^ @` @' @" @= @~
- ;; In Info, they are simply quoted and the @ deleted.
- ;; Other single-character commands:
- ;; @* forces a line break,
- ;; @- is a discretionary hyphenation point; does nothing in Info.
- ;; @<space>, @<tab>, @<newline> each produce a single space,
- ;; unless followed by a newline.
- ;;
- ;; Old version 2.34 expression: (looking-at "[@{}^'` *\"?!]")
- (if (looking-at "[@{}^'`\"=~ \t\n*?!-]")
- ;; @*, causes a line break.
- (cond
- ;; @*, a line break
- ((= (following-char) ?*)
- ;; remove command
- (delete-region (1- (point)) (1+ (point)))
- ;; insert return if not at end of line;
- ;; else line is already broken.
- (if (not (= (following-char) ?\n))
- (insert ?\n)))
- ;; @-, deleted
- ((= (following-char) ?-)
- (delete-region (1- (point)) (1+ (point))))
- ;; @<space>, @<tab>, @<newline>: produce a single space,
- ;; unless followed by a newline.
- ((= (following-char) ? )
- (delete-region (1- (point)) (1+ (point)))
- ;; insert single space if not at end of line;
- ;; else line is already broken.
- (if (not (= (following-char) ?\n))
- (insert ? )))
- ((= (following-char) ?\t)
- (delete-region (1- (point)) (1+ (point)))
- ;; insert single space if not at end of line;
- ;; else line is already broken.
- (if (not (= (following-char) ?\n))
- (insert ? )))
- ;; following char is a carriage return
- ((= (following-char) ?
-)
- ;; remove command
- (delete-region (1- (point)) (1+ (point)))
- ;; insert single space if not at end of line;
- ;; else line is already broken.
- (if (not (= (following-char) ?\n))
- (insert ? )))
- ;; Otherwise: the other characters are simply quoted. Delete the @.
- (t
- (delete-char -1)
- (forward-char 1)))
- ;; @ is followed by a command-word; find the end of the word.
- (setq texinfo-command-start (1- (point)))
- (if (= (char-syntax (following-char)) ?w)
- (forward-word 1)
- (forward-char 1))
- (setq texinfo-command-end (point))
- ;; Handle let aliasing
- (setq texinfo-command-name
- (let (trial
- (cmdname
- (buffer-substring
- (1+ texinfo-command-start) texinfo-command-end)))
- (while (setq trial (assoc cmdname texinfo-alias-list))
- (setq cmdname (cdr trial)))
- (intern cmdname)))
- ;; Call the handler for this command.
- (let ((enclosure-type
- (assoc
- (symbol-name texinfo-command-name)
- texinfo-enclosure-list)))
- (if enclosure-type
- (progn
- (insert
- (car (car (cdr enclosure-type)))
- (texinfo-parse-arg-discard)
- (car (cdr (car (cdr enclosure-type)))))
- (goto-char texinfo-command-start))
- (let ((cmd (get texinfo-command-name 'texinfo-format)))
- (if cmd (funcall cmd) (texinfo-unsupported)))))))
-
- (cond (texinfo-stack
- (goto-char (nth 2 (car texinfo-stack)))
- (error "Unterminated @%s" (car (car texinfo-stack))))))
-
-(put 'begin 'texinfo-format 'texinfo-format-begin)
-(defun texinfo-format-begin ()
- (texinfo-format-begin-end 'texinfo-format))
-
-(put 'end 'texinfo-format 'texinfo-format-end)
-(defun texinfo-format-end ()
- (texinfo-format-begin-end 'texinfo-end))
-
-(defun texinfo-format-begin-end (prop)
- (setq texinfo-command-name (intern (texinfo-parse-line-arg)))
- (let ((cmd (get texinfo-command-name prop)))
- (if cmd (funcall cmd)
- (texinfo-unsupported))))
-
-;;; Parsing functions
-
-(defun texinfo-parse-line-arg ()
- "Return argument of @-command as string.
-Argument is separated from command either by a space or by a brace.
-If a space, return rest of line, with beginning and ending white
-space removed. If a brace, return string between braces.
-Leave point after argument."
- (goto-char texinfo-command-end)
- (let ((start (point)))
- (cond ((looking-at " ")
- (skip-chars-forward " ")
- (setq start (point))
- (end-of-line)
- (skip-chars-backward " ")
- (delete-region (point) (progn (end-of-line) (point)))
- (setq texinfo-command-end (1+ (point))))
- ((looking-at "{")
- (setq start (1+ (point)))
- (forward-list 1)
- (setq texinfo-command-end (point))
- (forward-char -1))
- (t
- (error "Invalid texinfo command arg format")))
- (prog1 (buffer-substring start (point))
- (if (eolp) (forward-char 1)))))
-
-(defun texinfo-parse-expanded-arg ()
- (goto-char texinfo-command-end)
- (let ((start (point))
- marker)
- (cond ((looking-at " ")
- (skip-chars-forward " ")
- (setq start (point))
- (end-of-line)
- (setq texinfo-command-end (1+ (point))))
- ((looking-at "{")
- (setq start (1+ (point)))
- (forward-list 1)
- (setq texinfo-command-end (point))
- (forward-char -1))
- (t
- (error "Invalid texinfo command arg format")))
- (setq marker (move-marker (make-marker) texinfo-command-end))
- (texinfo-format-expand-region start (point))
- (setq texinfo-command-end (marker-position marker))
- (move-marker marker nil)
- (prog1 (buffer-substring start (point))
- (if (eolp) (forward-char 1)))))
-
-(defun texinfo-format-expand-region (start end)
- (save-restriction
- (narrow-to-region start end)
- (let (texinfo-command-start
- texinfo-command-end
- texinfo-command-name
- texinfo-stack)
- (texinfo-format-scan))
- (goto-char (point-max))))
-
-(defun texinfo-parse-arg-discard ()
- "Delete command and argument; return argument of command."
- (prog1 (texinfo-parse-line-arg)
- (texinfo-discard-command)))
-
-(defun texinfo-discard-command ()
- (delete-region texinfo-command-start texinfo-command-end))
-
-(defun texinfo-optional-braces-discard ()
- "Discard braces following command, if any."
- (goto-char texinfo-command-end)
- (let ((start (point)))
- (cond ((looking-at "[ \t]*\n")) ; do nothing
- ((looking-at "{") ; remove braces, if any
- (forward-list 1)
- (setq texinfo-command-end (point)))
- (t
- (error
- "Invalid `texinfo-optional-braces-discard' format \(need braces?\)")))
- (delete-region texinfo-command-start texinfo-command-end)))
-
-(defun texinfo-format-parse-line-args ()
- (let ((start (1- (point)))
- next beg end
- args)
- (skip-chars-forward " ")
- (while (not (eolp))
- (setq beg (point))
- (re-search-forward "[\n,]")
- (setq next (point))
- (if (bolp) (setq next (1- next)))
- (forward-char -1)
- (skip-chars-backward " ")
- (setq end (point))
- (setq args (cons (if (> end beg) (buffer-substring beg end))
- args))
- (goto-char next)
- (skip-chars-forward " "))
- (if (eolp) (forward-char 1))
- (setq texinfo-command-end (point))
- (nreverse args)))
-
-(defun texinfo-format-parse-args ()
- (let ((start (1- (point)))
- next beg end
- args)
- (search-forward "{")
- (save-excursion
- (texinfo-format-expand-region
- (point)
- (save-excursion (up-list 1) (1- (point)))))
- ;; The following does not handle cross references of the form:
- ;; `@xref{bullet, , @code{@@bullet}@{@}}.' because the
- ;; re-search-forward finds the first right brace after the second
- ;; comma.
- (while (/= (preceding-char) ?\})
- (skip-chars-forward " \t\n")
- (setq beg (point))
- (re-search-forward "[},]")
- (setq next (point))
- (forward-char -1)
- (skip-chars-backward " \t\n")
- (setq end (point))
- (cond ((< beg end)
- (goto-char beg)
- (while (search-forward "\n" end t)
- (replace-match " "))))
- (setq args (cons (if (> end beg) (buffer-substring beg end))
- args))
- (goto-char next))
- (if (eolp) (forward-char 1))
- (setq texinfo-command-end (point))
- (nreverse args)))
-
-(defun texinfo-format-parse-defun-args ()
- (goto-char texinfo-command-end)
- (let ((start (point)))
- (end-of-line)
- (setq texinfo-command-end (1+ (point)))
- (let ((marker (move-marker (make-marker) texinfo-command-end)))
- (texinfo-format-expand-region start (point))
- (setq texinfo-command-end (marker-position marker))
- (move-marker marker nil))
- (goto-char start)
- (let ((args '())
- beg end)
- (skip-chars-forward " ")
- (while (not (eolp))
- (cond ((looking-at "{")
- (setq beg (1+ (point)))
- (forward-list 1)
- (setq end (1- (point))))
- (t
- (setq beg (point))
- (re-search-forward "[\n ]")
- (forward-char -1)
- (setq end (point))))
- (setq args (cons (buffer-substring beg end) args))
- (skip-chars-forward " "))
- (forward-char 1)
- (nreverse args))))
-
-(defun texinfo-discard-line ()
- (goto-char texinfo-command-end)
- (skip-chars-forward " \t")
- (or (eolp)
- (error "Extraneous text at end of command line."))
- (goto-char texinfo-command-start)
- (or (bolp)
- (error "Extraneous text at beginning of command line."))
- (delete-region (point) (progn (forward-line 1) (point))))
-
-(defun texinfo-discard-line-with-args ()
- (goto-char texinfo-command-start)
- (delete-region (point) (progn (forward-line 1) (point))))
-
-
-;;; @setfilename
-
-;; Only `texinfo-format-buffer' handles @setfilename with this
-;; definition; `texinfo-format-region' handles @setfilename, if any,
-;; specially.
-(put 'setfilename 'texinfo-format 'texinfo-format-setfilename)
-(defun texinfo-format-setfilename ()
- (let ((arg (texinfo-parse-arg-discard)))
- (message "Formatting Info file: %s" arg)
- (setq texinfo-format-filename
- (file-name-nondirectory (expand-file-name arg)))
- (insert "Info file: "
- texinfo-format-filename ", -*-Text-*-\n"
- "produced by `texinfo-format-buffer'\n"
- ;; Date string removed so that regression testing is easier.
- ;; "on "
- ;; (insert (format-time-string "%e %b %Y")) " "
- "from file"
- (if (buffer-file-name input-buffer)
- (concat " `"
- (file-name-sans-versions
- (file-name-nondirectory
- (buffer-file-name input-buffer)))
- "'")
- (concat "buffer `" (buffer-name input-buffer) "'"))
- "\nusing `texinfmt.el' version "
- texinfmt-version
- ".\n\n")))
-
-;;; @node, @menu, @detailmenu
-
-(put 'node 'texinfo-format 'texinfo-format-node)
-(put 'nwnode 'texinfo-format 'texinfo-format-node)
-(defun texinfo-format-node ()
- (let* ((args (texinfo-format-parse-line-args))
- (name (nth 0 args))
- (next (nth 1 args))
- (prev (nth 2 args))
- (up (nth 3 args)))
- (texinfo-discard-command)
- (setq texinfo-last-node name)
- (let ((tem (downcase name)))
- (if (assoc tem texinfo-node-names)
- (error "Duplicate node name: %s" name)
- (setq texinfo-node-names (cons (list tem) texinfo-node-names))))
- (setq texinfo-footnote-number 0)
- ;; insert "\n\^_" unconditionally since this is what info is looking for
- (insert "\n\^_\nFile: " texinfo-format-filename
- ", Node: " name)
- (if next
- (insert ", Next: " next))
- (if prev
- (insert ", Prev: " prev))
- (if up
- (insert ", Up: " up))
- (insert ?\n)
- (setq texinfo-last-node-pos (point))))
-
-(put 'menu 'texinfo-format 'texinfo-format-menu)
-(defun texinfo-format-menu ()
- (texinfo-discard-line)
- (insert "* Menu:\n\n"))
-
-(put 'menu 'texinfo-end 'texinfo-discard-command)
-
-;; The @detailmenu should be removed eventually.
-
-;; According to Karl Berry, 31 August 1996:
-;;
-;; You don't like, I don't like it. I agree, it would be better just to
-;; fix the bug [in `makeinfo']. .. At this point, since inserting those
-;; two commands in the Elisp fn is trivial, I don't especially want to
-;; expend more effort...
-;;
-;; I added a couple sentences of documentation to the manual (putting the
-;; blame on makeinfo where it belongs :-().
-
-(put 'detailmenu 'texinfo-format 'texinfo-discard-line)
-(put 'detailmenu 'texinfo-end 'texinfo-discard-command)
-
-;; (Also see `texnfo-upd.el')
-
-
-;;; Cross references
-
-;; @xref {NODE, FNAME, NAME, FILE, DOCUMENT}
-;; -> *Note FNAME: (FILE)NODE
-;; If FILE is missing,
-;; *Note FNAME: NODE
-;; If FNAME is empty and NAME is present
-;; *Note NAME: Node
-;; If both NAME and FNAME are missing
-;; *Note NODE::
-;; texinfo ignores the DOCUMENT argument.
-;; -> See section <xref to NODE> [NAME, else NODE], page <xref to NODE>
-;; If FILE is specified, (FILE)NODE is used for xrefs.
-;; If fifth argument DOCUMENT is specified, produces
-;; See section <xref to NODE> [NAME, else NODE], page <xref to NODE>
-;; of DOCUMENT
-
-;; @ref a reference that does not put `See' or `see' in
-;; the hardcopy and is the same as @xref in Info
-(put 'ref 'texinfo-format 'texinfo-format-xref)
-
-(put 'xref 'texinfo-format 'texinfo-format-xref)
-(defun texinfo-format-xref ()
- (let ((args (texinfo-format-parse-args)))
- (texinfo-discard-command)
- (insert "*Note ")
- (let ((fname (or (nth 1 args) (nth 2 args))))
- (if (null (or fname (nth 3 args)))
- (insert (car args) "::")
- (insert (or fname (car args)) ": ")
- (if (nth 3 args)
- (insert "(" (nth 3 args) ")"))
- (insert (car args))))))
-
-(put 'pxref 'texinfo-format 'texinfo-format-pxref)
-(defun texinfo-format-pxref ()
- (texinfo-format-xref)
- (or (save-excursion
- (forward-char -2)
- (looking-at "::"))
- (insert ".")))
-
-;; @inforef{NODE, FNAME, FILE}
-;; Like @xref{NODE, FNAME,,FILE} in texinfo.
-;; In Tex, generates "See Info file FILE, node NODE"
-(put 'inforef 'texinfo-format 'texinfo-format-inforef)
-(defun texinfo-format-inforef ()
- (let ((args (texinfo-format-parse-args)))
- (texinfo-discard-command)
- (if (nth 1 args)
- (insert "*Note " (nth 1 args) ": (" (nth 2 args) ")" (car args))
- (insert "*Note " "(" (nth 2 args) ")" (car args) "::"))))
-
-
-;;; Section headings
-
-(put 'majorheading 'texinfo-format 'texinfo-format-chapter)
-(put 'chapheading 'texinfo-format 'texinfo-format-chapter)
-(put 'ichapter 'texinfo-format 'texinfo-format-chapter)
-(put 'chapter 'texinfo-format 'texinfo-format-chapter)
-(put 'iappendix 'texinfo-format 'texinfo-format-chapter)
-(put 'appendix 'texinfo-format 'texinfo-format-chapter)
-(put 'iunnumbered 'texinfo-format 'texinfo-format-chapter)
-(put 'top 'texinfo-format 'texinfo-format-chapter)
-(put 'unnumbered 'texinfo-format 'texinfo-format-chapter)
-(put 'centerchap 'texinfo-format 'texinfo-format-chapter)
-(defun texinfo-format-chapter ()
- (texinfo-format-chapter-1 ?*))
-
-(put 'heading 'texinfo-format 'texinfo-format-section)
-(put 'isection 'texinfo-format 'texinfo-format-section)
-(put 'section 'texinfo-format 'texinfo-format-section)
-(put 'iappendixsection 'texinfo-format 'texinfo-format-section)
-(put 'appendixsection 'texinfo-format 'texinfo-format-section)
-(put 'iappendixsec 'texinfo-format 'texinfo-format-section)
-(put 'appendixsec 'texinfo-format 'texinfo-format-section)
-(put 'iunnumberedsec 'texinfo-format 'texinfo-format-section)
-(put 'unnumberedsec 'texinfo-format 'texinfo-format-section)
-(defun texinfo-format-section ()
- (texinfo-format-chapter-1 ?=))
-
-(put 'subheading 'texinfo-format 'texinfo-format-subsection)
-(put 'isubsection 'texinfo-format 'texinfo-format-subsection)
-(put 'subsection 'texinfo-format 'texinfo-format-subsection)
-(put 'iappendixsubsec 'texinfo-format 'texinfo-format-subsection)
-(put 'appendixsubsec 'texinfo-format 'texinfo-format-subsection)
-(put 'iunnumberedsubsec 'texinfo-format 'texinfo-format-subsection)
-(put 'unnumberedsubsec 'texinfo-format 'texinfo-format-subsection)
-(defun texinfo-format-subsection ()
- (texinfo-format-chapter-1 ?-))
-
-(put 'subsubheading 'texinfo-format 'texinfo-format-subsubsection)
-(put 'isubsubsection 'texinfo-format 'texinfo-format-subsubsection)
-(put 'subsubsection 'texinfo-format 'texinfo-format-subsubsection)
-(put 'iappendixsubsubsec 'texinfo-format 'texinfo-format-subsubsection)
-(put 'appendixsubsubsec 'texinfo-format 'texinfo-format-subsubsection)
-(put 'iunnumberedsubsubsec 'texinfo-format 'texinfo-format-subsubsection)
-(put 'unnumberedsubsubsec 'texinfo-format 'texinfo-format-subsubsection)
-(defun texinfo-format-subsubsection ()
- (texinfo-format-chapter-1 ?.))
-
-(defun texinfo-format-chapter-1 (belowchar)
- (let ((arg (texinfo-parse-arg-discard)))
- (message "Formatting: %s ... " arg) ; So we can see where we are.
- (insert ?\n arg ?\n "@SectionPAD " belowchar ?\n)
- (forward-line -2)))
-
-(put 'SectionPAD 'texinfo-format 'texinfo-format-sectionpad)
-(defun texinfo-format-sectionpad ()
- (let ((str (texinfo-parse-arg-discard)))
- (forward-char -1)
- (let ((column (current-column)))
- (forward-char 1)
- (while (> column 0)
- (insert str)
- (setq column (1- column))))
- (insert ?\n)))
-
-
-;;; Space controlling commands: @. and @:, and the soft hyphen.
-
-(put '\. 'texinfo-format 'texinfo-format-\.)
-(defun texinfo-format-\. ()
- (texinfo-discard-command)
- (insert "."))
-
-(put '\: 'texinfo-format 'texinfo-format-\:)
-(defun texinfo-format-\: ()
- (texinfo-discard-command))
-
-(put '\- 'texinfo-format 'texinfo-format-soft-hyphen)
-(defun texinfo-format-soft-hyphen ()
- (texinfo-discard-command))
-
-
-;;; @center, @sp, and @br
-
-(put 'center 'texinfo-format 'texinfo-format-center)
-(defun texinfo-format-center ()
- (let ((arg (texinfo-parse-expanded-arg)))
- (texinfo-discard-command)
- (insert arg)
- (insert ?\n)
- (save-restriction
- (goto-char (1- (point)))
- (let ((indent-tabs-mode nil))
- (center-line)))))
-
-(put 'sp 'texinfo-format 'texinfo-format-sp)
-(defun texinfo-format-sp ()
- (let* ((arg (texinfo-parse-arg-discard))
- (num (read arg)))
- (insert-char ?\n num)))
-
-(put 'br 'texinfo-format 'texinfo-format-paragraph-break)
-(defun texinfo-format-paragraph-break ()
- "Force a paragraph break.
-If used within a line, follow `@br' with braces."
- (texinfo-optional-braces-discard)
- ;; insert one return if at end of line;
- ;; else insert two returns, to generate a blank line.
- (if (= (following-char) ?\n)
- (insert ?\n)
- (insert-char ?\n 2)))
-
-
-;;; @footnote and @footnotestyle
-
-;; In Texinfo, footnotes are created with the `@footnote' command.
-;; This command is followed immediately by a left brace, then by the text of
-;; the footnote, and then by a terminating right brace. The
-;; template for a footnote is:
-;;
-;; @footnote{TEXT}
-;;
-;; Info has two footnote styles:
-;;
-;; * In the End of node style, all the footnotes for a single node
-;; are placed at the end of that node. The footnotes are
-;; separated from the rest of the node by a line of dashes with
-;; the word `Footnotes' within it.
-;;
-;; * In the Separate node style, all the footnotes for a single node
-;; are placed in an automatically constructed node of their own.
-
-;; Footnote style is specified by the @footnotestyle command, either
-;; @footnotestyle separate
-;; or
-;; @footnotestyle end
-;;
-;; The default is separate
-
-(defvar texinfo-footnote-style "separate"
- "Footnote style, either separate or end.")
-
-(put 'footnotestyle 'texinfo-format 'texinfo-footnotestyle)
-(defun texinfo-footnotestyle ()
- "Specify whether footnotes are at end of node or in separate nodes.
-Argument is either end or separate."
- (setq texinfo-footnote-style (texinfo-parse-arg-discard)))
-
-(defvar texinfo-footnote-number)
-
-(put 'footnote 'texinfo-format 'texinfo-format-footnote)
-(defun texinfo-format-footnote ()
- "Format a footnote in either end of node or separate node style.
-The texinfo-footnote-style variable controls which style is used."
- (setq texinfo-footnote-number (1+ texinfo-footnote-number))
- (cond ((string= texinfo-footnote-style "end")
- (texinfo-format-end-node))
- ((string= texinfo-footnote-style "separate")
- (texinfo-format-separate-node))))
-
-(defun texinfo-format-separate-node ()
- "Format footnote in Separate node style, with notes in own node.
-The node is constructed automatically."
- (let* (start
- (arg (texinfo-parse-line-arg))
- (node-name-beginning
- (save-excursion
- (re-search-backward
- "^File: \\w+\\(\\w\\|\\s_\\|\\.\\|,\\)*[ \t]+Node:")
- (match-end 0)))
- (node-name
- (save-excursion
- (buffer-substring
- (progn (goto-char node-name-beginning) ; skip over node command
- (skip-chars-forward " \t") ; and over spaces
- (point))
- (if (search-forward
- ","
- (save-excursion (end-of-line) (point)) t) ; bound search
- (1- (point))
- (end-of-line) (point))))))
- (texinfo-discard-command) ; remove or insert whitespace, as needed
- (delete-region (save-excursion (skip-chars-backward " \t\n") (point))
- (point))
- (insert (format " (%d) (*Note %s-Footnotes::)"
- texinfo-footnote-number node-name))
- (fill-paragraph nil)
- (save-excursion
- (if (re-search-forward "^@node" nil 'move)
- (forward-line -1))
-
- ;; two cases: for the first footnote, we must insert a node header;
- ;; for the second and subsequent footnotes, we need only insert
- ;; the text of the footnote.
-
- (if (save-excursion
- (re-search-backward
- (concat node-name "-Footnotes, Up: ")
- node-name-beginning
- t))
- (progn ; already at least one footnote
- (setq start (point))
- (insert (format "\n(%d) %s\n" texinfo-footnote-number arg))
- (fill-region start (point)))
- ;; else not yet a footnote
- (insert "\n\^_\nFile: " texinfo-format-filename
- " Node: " node-name "-Footnotes, Up: " node-name "\n")
- (setq start (point))
- (insert (format "\n(%d) %s\n" texinfo-footnote-number arg))
- (fill-region start (point))))))
-
-(defun texinfo-format-end-node ()
- "Format footnote in the End of node style, with notes at end of node."
- (let (start
- (arg (texinfo-parse-line-arg)))
- (texinfo-discard-command) ; remove or insert whitespace, as needed
- (delete-region (save-excursion (skip-chars-backward " \t\n") (point))
- (point))
- (insert (format " (%d) " texinfo-footnote-number))
- (fill-paragraph nil)
- (save-excursion
- (if (search-forward "\n--------- Footnotes ---------\n" nil t)
- (progn ; already have footnote, put new one before end of node
- (if (re-search-forward "^@node" nil 'move)
- (forward-line -1))
- (setq start (point))
- (insert (format "\n(%d) %s\n" texinfo-footnote-number arg))
- (fill-region start (point)))
- ;; else no prior footnote
- (if (re-search-forward "^@node" nil 'move)
- (forward-line -1))
- (insert "\n--------- Footnotes ---------\n")
- (setq start (point))
- (insert (format "\n(%d) %s\n" texinfo-footnote-number arg))))))
-
-
-;;; @itemize, @enumerate, and similar commands
-
-;; @itemize pushes (itemize "COMMANDS" STARTPOS) on texinfo-stack.
-;; @enumerate pushes (enumerate 0 STARTPOS).
-;; @item dispatches to the texinfo-item prop of the first elt of the list.
-;; For itemize, this puts in and rescans the COMMANDS.
-;; For enumerate, this increments the number and puts it in.
-;; In either case, it puts a Backspace at the front of the line
-;; which marks it not to be indented later.
-;; All other lines get indented by 5 when the @end is reached.
-
-(defvar texinfo-stack-depth 0
- "Count of number of unpopped texinfo-push-stack calls.
-Used by @refill indenting command to avoid indenting within lists, etc.")
-
-(defun texinfo-push-stack (check arg)
- (setq texinfo-stack-depth (1+ texinfo-stack-depth))
- (setq texinfo-stack
- (cons (list check arg texinfo-command-start)
- texinfo-stack)))
-
-(defun texinfo-pop-stack (check)
- (setq texinfo-stack-depth (1- texinfo-stack-depth))
- (if (null texinfo-stack)
- (error "Unmatched @end %s" check))
- (if (not (eq (car (car texinfo-stack)) check))
- (error "@end %s matches @%s"
- check (car (car texinfo-stack))))
- (prog1 (cdr (car texinfo-stack))
- (setq texinfo-stack (cdr texinfo-stack))))
-
-(put 'itemize 'texinfo-format 'texinfo-itemize)
-(defun texinfo-itemize ()
- (texinfo-push-stack
- 'itemize
- (progn (skip-chars-forward " \t")
- (if (eolp)
- "@bullet"
- (texinfo-parse-line-arg))))
- (texinfo-discard-line-with-args)
- (setq fill-column (- fill-column 5)))
-
-(put 'itemize 'texinfo-end 'texinfo-end-itemize)
-(defun texinfo-end-itemize ()
- (setq fill-column (+ fill-column 5))
- (texinfo-discard-command)
- (let ((stacktop
- (texinfo-pop-stack 'itemize)))
- (texinfo-do-itemize (nth 1 stacktop))))
-
-(put 'enumerate 'texinfo-format 'texinfo-enumerate)
-(defun texinfo-enumerate ()
- (texinfo-push-stack
- 'enumerate
- (progn (skip-chars-forward " \t")
- (if (eolp)
- 1
- (read (current-buffer)))))
- (if (and (symbolp (car (cdr (car texinfo-stack))))
- (> 1 (length (symbol-name (car (cdr (car texinfo-stack)))))))
- (error
- "@enumerate: Use a number or letter, eg: 1, A, a, 3, B, or d." ))
- (texinfo-discard-line-with-args)
- (setq fill-column (- fill-column 5)))
-
-(put 'enumerate 'texinfo-end 'texinfo-end-enumerate)
-(defun texinfo-end-enumerate ()
- (setq fill-column (+ fill-column 5))
- (texinfo-discard-command)
- (let ((stacktop
- (texinfo-pop-stack 'enumerate)))
- (texinfo-do-itemize (nth 1 stacktop))))
-
-;; @alphaenumerate never became a standard part of Texinfo
-(put 'alphaenumerate 'texinfo-format 'texinfo-alphaenumerate)
-(defun texinfo-alphaenumerate ()
- (texinfo-push-stack 'alphaenumerate (1- ?a))
- (setq fill-column (- fill-column 5))
- (texinfo-discard-line))
-
-(put 'alphaenumerate 'texinfo-end 'texinfo-end-alphaenumerate)
-(defun texinfo-end-alphaenumerate ()
- (setq fill-column (+ fill-column 5))
- (texinfo-discard-command)
- (let ((stacktop
- (texinfo-pop-stack 'alphaenumerate)))
- (texinfo-do-itemize (nth 1 stacktop))))
-
-;; @capsenumerate never became a standard part of Texinfo
-(put 'capsenumerate 'texinfo-format 'texinfo-capsenumerate)
-(defun texinfo-capsenumerate ()
- (texinfo-push-stack 'capsenumerate (1- ?A))
- (setq fill-column (- fill-column 5))
- (texinfo-discard-line))
-
-(put 'capsenumerate 'texinfo-end 'texinfo-end-capsenumerate)
-(defun texinfo-end-capsenumerate ()
- (setq fill-column (+ fill-column 5))
- (texinfo-discard-command)
- (let ((stacktop
- (texinfo-pop-stack 'capsenumerate)))
- (texinfo-do-itemize (nth 1 stacktop))))
-
-;; At the @end, indent all the lines within the construct
-;; except those marked with backspace. FROM says where
-;; construct started.
-(defun texinfo-do-itemize (from)
- (save-excursion
- (while (progn (forward-line -1)
- (>= (point) from))
- (if (= (following-char) ?\b)
- (save-excursion
- (delete-char 1)
- (end-of-line)
- (delete-char 6))
- (if (not (looking-at "[ \t]*$"))
- (save-excursion (insert " ")))))))
-
-(put 'item 'texinfo-format 'texinfo-item)
-(put 'itemx 'texinfo-format 'texinfo-item)
-(defun texinfo-item ()
- (funcall (get (car (car texinfo-stack)) 'texinfo-item)))
-
-(put 'itemize 'texinfo-item 'texinfo-itemize-item)
-(defun texinfo-itemize-item ()
- ;; (texinfo-discard-line) ; Did not handle text on same line as @item.
- (delete-region (1+ (point)) (save-excursion (beginning-of-line) (point)))
- (if (looking-at "[ \t]*[^ \t\n]+")
- ;; Text on same line as @item command.
- (insert "\b " (nth 1 (car texinfo-stack)) " \n")
- ;; Else text on next line.
- (insert "\b " (nth 1 (car texinfo-stack)) " "))
- (forward-line -1))
-
-(put 'enumerate 'texinfo-item 'texinfo-enumerate-item)
-(defun texinfo-enumerate-item ()
- (texinfo-discard-line)
- (let (enumerating-symbol)
- (cond ((integerp (car (cdr (car texinfo-stack))))
- (setq enumerating-symbol (car (cdr (car texinfo-stack))))
- (insert ?\b (format "%3d. " enumerating-symbol) ?\n)
- (setcar (cdr (car texinfo-stack)) (1+ enumerating-symbol)))
- ((symbolp (car (cdr (car texinfo-stack))))
- (setq enumerating-symbol
- (symbol-name (car (cdr (car texinfo-stack)))))
- (if (or (equal ?\[ (string-to-char enumerating-symbol))
- (equal ?\{ (string-to-char enumerating-symbol)))
- (error
- "Too many items in enumerated list; alphabet ends at Z."))
- (insert ?\b (format "%3s. " enumerating-symbol) ?\n)
- (setcar (cdr (car texinfo-stack))
- (make-symbol
- (char-to-string
- (1+
- (string-to-char enumerating-symbol))))))
- (t
- (error
- "@enumerate: Use a number or letter, eg: 1, A, a, 3, B or d." )))
- (forward-line -1)))
-
-(put 'alphaenumerate 'texinfo-item 'texinfo-alphaenumerate-item)
-(defun texinfo-alphaenumerate-item ()
- (texinfo-discard-line)
- (let ((next (1+ (car (cdr (car texinfo-stack))))))
- (if (> next ?z)
- (error "More than 26 items in @alphaenumerate; get a bigger alphabet."))
- (setcar (cdr (car texinfo-stack)) next)
- (insert "\b " next ". \n"))
- (forward-line -1))
-
-(put 'capsenumerate 'texinfo-item 'texinfo-capsenumerate-item)
-(defun texinfo-capsenumerate-item ()
- (texinfo-discard-line)
- (let ((next (1+ (car (cdr (car texinfo-stack))))))
- (if (> next ?Z)
- (error "More than 26 items in @capsenumerate; get a bigger alphabet."))
- (setcar (cdr (car texinfo-stack)) next)
- (insert "\b " next ". \n"))
- (forward-line -1))
-
-
-;;; @table
-
-;; The `@table' command produces two-column tables.
-
-(put 'table 'texinfo-format 'texinfo-table)
-(defun texinfo-table ()
- (texinfo-push-stack
- 'table
- (progn (skip-chars-forward " \t")
- (if (eolp)
- "@asis"
- (texinfo-parse-line-arg))))
- (texinfo-discard-line-with-args)
- (setq fill-column (- fill-column 5)))
-
-(put 'table 'texinfo-item 'texinfo-table-item)
-(defun texinfo-table-item ()
- (let ((arg (texinfo-parse-arg-discard))
- (itemfont (car (cdr (car texinfo-stack)))))
- (insert ?\b itemfont ?\{ arg "}\n \n"))
- (forward-line -2))
-
-(put 'table 'texinfo-end 'texinfo-end-table)
-(defun texinfo-end-table ()
- (setq fill-column (+ fill-column 5))
- (texinfo-discard-command)
- (let ((stacktop
- (texinfo-pop-stack 'table)))
- (texinfo-do-itemize (nth 1 stacktop))))
-
-;; @description appears to be an undocumented variant on @table that
-;; does not require an arg. It fails in texinfo.tex 2.58 and is not
-;; part of makeinfo.c The command appears to be a relic of the past.
-(put 'description 'texinfo-end 'texinfo-end-table)
-(put 'description 'texinfo-format 'texinfo-description)
-(defun texinfo-description ()
- (texinfo-push-stack 'table "@asis")
- (setq fill-column (- fill-column 5))
- (texinfo-discard-line))
-
-
-;;; @ftable, @vtable
-
-;; The `@ftable' and `@vtable' commands are like the `@table' command
-;; but they also insert each entry in the first column of the table
-;; into the function or variable index.
-
-;; Handle the @ftable and @vtable commands:
-
-(put 'ftable 'texinfo-format 'texinfo-ftable)
-(put 'vtable 'texinfo-format 'texinfo-vtable)
-
-(defun texinfo-ftable () (texinfo-indextable 'ftable))
-(defun texinfo-vtable () (texinfo-indextable 'vtable))
-
-(defun texinfo-indextable (table-type)
- (texinfo-push-stack table-type (texinfo-parse-arg-discard))
- (setq fill-column (- fill-column 5)))
-
-;; Handle the @item commands within ftable and vtable:
-
-(put 'ftable 'texinfo-item 'texinfo-ftable-item)
-(put 'vtable 'texinfo-item 'texinfo-vtable-item)
-
-(defun texinfo-ftable-item () (texinfo-indextable-item 'texinfo-findex))
-(defun texinfo-vtable-item () (texinfo-indextable-item 'texinfo-vindex))
-
-(defun texinfo-indextable-item (index-type)
- (let ((item (texinfo-parse-arg-discard))
- (itemfont (car (cdr (car texinfo-stack))))
- (indexvar index-type))
- (insert ?\b itemfont ?\{ item "}\n \n")
- (set indexvar
- (cons
- (list item texinfo-last-node)
- (symbol-value indexvar)))
- (forward-line -2)))
-
-;; Handle @end ftable, @end vtable
-
-(put 'ftable 'texinfo-end 'texinfo-end-ftable)
-(put 'vtable 'texinfo-end 'texinfo-end-vtable)
-
-(defun texinfo-end-ftable () (texinfo-end-indextable 'ftable))
-(defun texinfo-end-vtable () (texinfo-end-indextable 'vtable))
-
-(defun texinfo-end-indextable (table-type)
- (setq fill-column (+ fill-column 5))
- (texinfo-discard-command)
- (let ((stacktop
- (texinfo-pop-stack table-type)))
- (texinfo-do-itemize (nth 1 stacktop))))
-
-
-;;; @multitable ... @end multitable
-
-;; Produce a multi-column table, with as many columns as desired.
-;;
-;; A multi-column table has this template:
-;;
-;; @multitable {A1} {A2} {A3}
-;; @item A1 @tab A2 @tab A3
-;; @item B1 @tab B2 @tab B3
-;; @item C1 @tab C2 @tab C3
-;; @end multitable
-;;
-;; where the width of the text in brackets specifies the width of the
-;; respective column.
-;;
-;; Or else:
-;;
-;; @multitable @columnfractions .25 .3 .45
-;; @item A1 @tab A2 @tab A3
-;; @item B1 @tab B2 @tab B3
-;; @end multitable
-;;
-;; where the fractions specify the width of each column as a percent
-;; of the current width of the text (i.e., of the fill-column).
-;;
-;; Long lines of text are filled within columns.
-;;
-;; Using the Emacs Lisp formatter, texinfmt.el,
-;; the whitespace between columns can be increased by setting
-;; `texinfo-extra-inter-column-width' to a value greater than 0. By default,
-;; there is at least one blank space between columns.
-;;
-;; The Emacs Lisp formatter, texinfmt.el, ignores the following four
-;; commands that are defined in texinfo.tex for printed output.
-;;
-;; @multitableparskip,
-;; @multitableparindent,
-;; @multitablecolmargin,
-;; @multitablelinespace.
-
-;; How @multitable works.
-;; =====================
-;;
-;; `texinfo-multitable' reads the @multitable line and determines from it
-;; how wide each column should be.
-;;
-;; Also, it pushes this information, along with an identifying symbol,
-;; onto the `texinfo-stack'. At the @end multitable command, the stack
-;; is checked for its matching @multitable command, and then popped, or
-;; else an error is signaled. Also, this command pushes the location of
-;; the start of the table onto the stack.
-;;
-;; `texinfo-end-multitable' checks the `texinfo-stack' that the @end
-;; multitable truly is ending a corresponding beginning, and if it is,
-;; pops the stack.
-;;
-;; `texinfo-multitable-widths' is called by `texinfo-multitable'.
-;; The function returns a list of the widths of each column in a
-;; multi-column table, based on the information supplied by the arguments
-;; to the @multitable command (by arguments, I mean the text on the rest
-;; of the @multitable line, not the remainder of the multi-column table
-;; environment).
-;;
-;; `texinfo-multitable-item' formats a row within a multicolumn table.
-;; This command is executed when texinfmt sees @item inside @multitable.
-;; Cells in row are separated by `@tab's. Widths of cells are specified
-;; by the arguments in the @multitable line. Cells are filled. All cells
-;; are made to be the same height by padding their bottoms, as needed,
-;; with blanks.
-;;
-;; `texinfo-multitable-extract-row' is called by `texinfo-multitable-item'.
-;; This function returns the text in a multitable row, as a string.
-;; The start of a row is marked by an @item and the end of row is the
-;; beginning of next @item or beginning of the @end multitable line.
-;; Cells within a row are separated by @tab.
-;;
-;; Note that @tab, the cell separators, are not treated as independent
-;; Texinfo commands.
-
-(defvar texinfo-extra-inter-column-width 0
- "*Number of extra spaces between entries (columns) in @multitable.")
-
-(defvar texinfo-multitable-buffer-name "*multitable-temporary-buffer*")
-(defvar texinfo-multitable-rectangle-name "texinfo-multitable-temp-")
-
-;; These commands are defined in texinfo.tex for printed output.
-(put 'multitableparskip 'texinfo-format 'texinfo-discard-line-with-args)
-(put 'multitableparindent 'texinfo-format 'texinfo-discard-line-with-args)
-(put 'multitablecolmargin 'texinfo-format 'texinfo-discard-line-with-args)
-(put 'multitablelinespace 'texinfo-format 'texinfo-discard-line-with-args)
-
-(put 'multitable 'texinfo-format 'texinfo-multitable)
-
-(defun texinfo-multitable ()
- "Produce multi-column tables.
-
-A multi-column table has this template:
-
- @multitable {A1} {A2} {A3}
- @item A1 @tab A2 @tab A3
- @item B1 @tab B2 @tab B3
- @item C1 @tab C2 @tab C3
- @end multitable
-
-where the width of the text in brackets specifies the width of the
-respective column.
-
-Or else:
-
- @multitable @columnfractions .25 .3 .45
- @item A1 @tab A2 @tab A3
- @item B1 @tab B2 @tab B3
- @end multitable
-
-where the fractions specify the width of each column as a percent
-of the current width of the text (i.e., of the fill-column).
-
-Long lines of text are filled within columns.
-
-Using the Emacs Lisp formatter, texinfmt.el,
-the whitespace between columns can be increased by setting
-`texinfo-extra-inter-column-width' to a value greater than 0. By default,
-there is at least one blank space between columns.
-
-The Emacs Lisp formatter, texinfmt.el, ignores the following four
-commands that are defined in texinfo.tex for printed output.
-
- @multitableparskip,
- @multitableparindent,
- @multitablecolmargin,
- @multitablelinespace."
-
-;; This function pushes information onto the `texinfo-stack'.
-;; A stack element consists of:
-;; - type-of-command, i.e., multitable
-;; - the information about column widths, and
-;; - the position of texinfo-command-start.
-;; e.g., ('multitable (1 2 3 4) 123)
-;; The command line is then deleted.
- (texinfo-push-stack
- 'multitable
- ;; push width information on stack
- (texinfo-multitable-widths))
- (texinfo-discard-line-with-args))
-
-(put 'multitable 'texinfo-end 'texinfo-end-multitable)
-(defun texinfo-end-multitable ()
- "Discard the @end multitable line and pop the stack of multitable."
- (texinfo-discard-command)
- (texinfo-pop-stack 'multitable))
-
-(defun texinfo-multitable-widths ()
- "Return list of widths of each column in a multi-column table."
- (let (texinfo-multitable-width-list)
- ;; Fractions format:
- ;; @multitable @columnfractions .25 .3 .45
- ;;
- ;; Template format:
- ;; @multitable {Column 1 template} {Column 2} {Column 3 example}
- ;; Place point before first argument
- (skip-chars-forward " \t")
- (cond
- ;; Check for common misspelling
- ((looking-at "@columnfraction ")
- (error "In @multitable, @columnfractions misspelled"))
- ;; Case 1: @columnfractions .25 .3 .45
- ((looking-at "@columnfractions")
- (forward-word 1)
- (while (not (eolp))
- (setq texinfo-multitable-width-list
- (cons
- (truncate
- (1-
- (* fill-column (read (get-buffer (current-buffer))))))
- texinfo-multitable-width-list))))
- ;;
- ;; Case 2: {Column 1 template} {Column 2} {Column 3 example}
- ((looking-at "{")
- (let ((start-of-templates (point)))
- (while (not (eolp))
- (skip-chars-forward " \t")
- (let* ((start-of-template (1+ (point)))
- (end-of-template
- ;; forward-sexp works with braces in Texinfo mode
- (progn (forward-sexp 1) (1- (point)))))
- (setq texinfo-multitable-width-list
- (cons (- end-of-template start-of-template)
- texinfo-multitable-width-list))
- ;; Remove carriage return from within a template, if any.
- ;; This helps those who want to use more than
- ;; one line's worth of words in @multitable line.
- (narrow-to-region start-of-template end-of-template)
- (goto-char (point-min))
- (while (search-forward "
-" nil t)
- (delete-char -1))
- (goto-char (point-max))
- (widen)
- (forward-char 1)))))
- ;;
- ;; Case 3: Trouble
- (t
- (error
- "You probably need to specify column widths for @multitable correctly.")))
- ;; Check whether columns fit on page.
- (let ((desired-columns
- (+
- ;; between column spaces
- (length texinfo-multitable-width-list)
- ;; additional between column spaces, if any
- texinfo-extra-inter-column-width
- ;; sum of spaces for each entry
- (apply '+ texinfo-multitable-width-list))))
- (if (> desired-columns fill-column)
- (error
- (format
- "Multi-column table width, %d chars, is greater than page width, %d chars."
- desired-columns fill-column))))
- texinfo-multitable-width-list))
-
-;; @item A1 @tab A2 @tab A3
-(defun texinfo-multitable-extract-row ()
- "Return multitable row, as a string.
-End of row is beginning of next @item or beginning of @end.
-Cells within rows are separated by @tab."
- (skip-chars-forward " \t")
- (let* ((start (point))
- (end (progn
- (re-search-forward "@item\\|@end")
- (match-beginning 0)))
- (row (progn (goto-char end)
- (skip-chars-backward " ")
- ;; remove whitespace at end of argument
- (delete-region (point) end)
- (buffer-substring start (point)))))
- (delete-region texinfo-command-start end)
- row))
-
-(put 'multitable 'texinfo-item 'texinfo-multitable-item)
-(defun texinfo-multitable-item ()
- "Format a row within a multicolumn table.
-Cells in row are separated by @tab.
-Widths of cells are specified by the arguments in the @multitable line.
-All cells are made to be the same height.
-This command is executed when texinfmt sees @item inside @multitable."
- (let ((original-buffer (current-buffer))
- (table-widths (reverse (car (cdr (car texinfo-stack)))))
- (existing-fill-column fill-column)
- start
- end
- (table-column 0)
- (table-entry-height 0)
- ;; unformatted row looks like: A1 @tab A2 @tab A3
- ;; extract-row command deletes the source line in the table.
- (unformated-row (texinfo-multitable-extract-row)))
- ;; Use a temporary buffer
- (set-buffer (get-buffer-create texinfo-multitable-buffer-name))
- (delete-region (point-min) (point-max))
- (insert unformated-row)
- (goto-char (point-min))
-;; 1. Check for correct number of @tab in line.
- (let ((tab-number 1)) ; one @tab between two columns
- (while (search-forward "@tab" nil t)
- (setq tab-number (1+ tab-number)))
- (if (/= tab-number (length table-widths))
- (error "Wrong number of @tab's in a @multitable row.")))
- (goto-char (point-min))
-;; 2. Format each cell, and copy to a rectangle
- ;; buffer looks like this: A1 @tab A2 @tab A3
- ;; Cell #1: format up to @tab
- ;; Cell #2: format up to @tab
- ;; Cell #3: format up to eob
- (while (not (eobp))
- (setq start (point))
- (setq end (save-excursion
- (if (search-forward "@tab" nil 'move)
- ;; Delete the @tab command, including the @-sign
- (delete-region
- (point)
- (progn (forward-word -1) (1- (point)))))
- (point)))
- ;; Set fill-column *wider* than needed to produce inter-column space
- (setq fill-column (+ 1
- texinfo-extra-inter-column-width
- (nth table-column table-widths)))
- (narrow-to-region start end)
- ;; Remove whitespace before and after entry.
- (skip-chars-forward " ")
- (delete-region (point) (save-excursion (beginning-of-line) (point)))
- (goto-char (point-max))
- (skip-chars-backward " ")
- (delete-region (point) (save-excursion (end-of-line) (point)))
- ;; Temorarily set texinfo-stack to nil so texinfo-format-scan
- ;; does not see an unterminated @multitable.
- (let (texinfo-stack) ; nil
- (texinfo-format-scan))
- (let (fill-prefix) ; no fill prefix
- (fill-region (point-min) (point-max)))
- (setq table-entry-height
- (max table-entry-height (count-lines (point-min) (point-max))))
-;; 3. Move point to end of bottom line, and pad that line to fill column.
- (goto-char (point-min))
- (forward-line (1- table-entry-height))
- (let* ((beg (point)) ; beginning of line
- ;; add one more space for inter-column spacing
- (needed-whitespace
- (1+
- (- fill-column
- (-
- (progn (end-of-line) (point)) ; end of existing line
- beg)))))
- (insert (make-string
- (if (> needed-whitespace 0) needed-whitespace 1)
- ? )))
- ;; now, put formatted cell into a rectangle
- (set (intern (concat texinfo-multitable-rectangle-name
- (int-to-string table-column)))
- (extract-rectangle (point-min) (point)))
- (delete-region (point-min) (point))
- (goto-char (point-max))
- (setq table-column (1+ table-column))
- (widen))
-;; 4. Add extra lines to rectangles so all are of same height
- (let ((total-number-of-columns table-column)
- (column-number 0)
- here)
- (while (> table-column 0)
- (let ((this-rectangle (int-to-string table-column)))
- (while (< (length this-rectangle) table-entry-height)
- (setq this-rectangle (append this-rectangle '("")))))
- (setq table-column (1- table-column)))
-;; 5. Insert formatted rectangles in original buffer
- (switch-to-buffer original-buffer)
- (open-line table-entry-height)
- (while (< column-number total-number-of-columns)
- (setq here (point))
- (insert-rectangle
- (eval (intern
- (concat texinfo-multitable-rectangle-name
- (int-to-string column-number)))))
- (goto-char here)
- (end-of-line)
- (setq column-number (1+ column-number))))
- (kill-buffer texinfo-multitable-buffer-name)
- (setq fill-column existing-fill-column)))
-
-
-;;; @ifinfo, @iftex, @tex, @ifhtml, @html
-
-(put 'ifinfo 'texinfo-format 'texinfo-discard-line)
-(put 'ifinfo 'texinfo-end 'texinfo-discard-command)
-
-(put 'iftex 'texinfo-format 'texinfo-format-iftex)
-(defun texinfo-format-iftex ()
- (delete-region texinfo-command-start
- (progn (re-search-forward "@end iftex[ \t]*\n")
- (point))))
-
-(put 'ifhtml 'texinfo-format 'texinfo-format-ifhtml)
-(defun texinfo-format-ifhtml ()
- (delete-region texinfo-command-start
- (progn (re-search-forward "@end ifhtml[ \t]*\n")
- (point))))
-
-(put 'tex 'texinfo-format 'texinfo-format-tex)
-(defun texinfo-format-tex ()
- (delete-region texinfo-command-start
- (progn (re-search-forward "@end tex[ \t]*\n")
- (point))))
-
-(put 'html 'texinfo-format 'texinfo-format-html)
-(defun texinfo-format-html ()
- (delete-region texinfo-command-start
- (progn (re-search-forward "@end html[ \t]*\n")
- (point))))
-
-
-;;; @titlepage
-
-(put 'titlepage 'texinfo-format 'texinfo-format-titlepage)
-(defun texinfo-format-titlepage ()
- (delete-region texinfo-command-start
- (progn (re-search-forward "@end titlepage[ \t]*\n")
- (point))))
-
-(put 'endtitlepage 'texinfo-format 'texinfo-discard-line)
-
-;; @titlespec an alternative titling command; ignored by Info
-
-(put 'titlespec 'texinfo-format 'texinfo-format-titlespec)
-(defun texinfo-format-titlespec ()
- (delete-region texinfo-command-start
- (progn (re-search-forward "@end titlespec[ \t]*\n")
- (point))))
-
-(put 'endtitlespec 'texinfo-format 'texinfo-discard-line)
-
-
-;;; @today
-
-(put 'today 'texinfo-format 'texinfo-format-today)
-
-;; Produces Day Month Year style of output. eg `1 Jan 1900'
-;; The `@today{}' command requires a pair of braces, like `@dots{}'.
-(defun texinfo-format-today ()
- (texinfo-parse-arg-discard)
- (insert (format-time-string "%e %b %Y")))
-
-
-;;; @timestamp{}
-;; Produce `Day Month Year Hour:Min' style of output.
-;; eg `1 Jan 1900 13:52'
-
-(put 'timestamp 'texinfo-format 'texinfo-format-timestamp)
-
-;; The `@timestamp{}' command requires a pair of braces, like `@dots{}'.
-(defun texinfo-format-timestamp ()
- "Insert the current local time and date."
- (texinfo-parse-arg-discard)
- ;; For seconds and time zone, replace format string with "%e %b %Y %T %Z"
- (insert (format-time-string "%e %b %Y %R")))
-
-
-;;; @ignore
-
-(put 'ignore 'texinfo-format 'texinfo-format-ignore)
-(defun texinfo-format-ignore ()
- (delete-region texinfo-command-start
- (progn (re-search-forward "@end ignore[ \t]*\n")
- (point))))
-
-(put 'endignore 'texinfo-format 'texinfo-discard-line)
-
-
-;;; Define the Info enclosure command: @definfoenclose
-
-;; A `@definfoenclose' command may be used to define a highlighting
-;; command for Info, but not for TeX. A command defined using
-;; `@definfoenclose' marks text by enclosing it in strings that precede
-;; and follow the text.
-;;
-;; Presumably, if you define a command with `@definfoenclose` for Info,
-;; you will also define the same command in the TeX definitions file,
-;; `texinfo.tex' in a manner appropriate for typesetting.
-;;
-;; Write a `@definfoenclose' command on a line and follow it with three
-;; arguments separated by commas (commas are used as separators in an
-;; `@node' line in the same way). The first argument to
-;; `@definfoenclose' is the @-command name \(without the `@'\); the
-;; second argument is the Info start delimiter string; and the third
-;; argument is the Info end delimiter string. The latter two arguments
-;; enclose the highlighted text in the Info file. A delimiter string
-;; may contain spaces. Neither the start nor end delimiter is
-;; required. However, if you do not provide a start delimiter, you
-;; must follow the command name with two commas in a row; otherwise,
-;; the Info formatting commands will misinterpret the end delimiter
-;; string as a start delimiter string.
-;;
-;; If you do a @definfoenclose{} on the name of a pre-defined macro (such
-;; as @emph{}, @strong{}, @tt{}, or @i{}) the enclosure definition will
-;; override the built-in definition.
-;;
-;; An enclosure command defined this way takes one argument in braces.
-;;
-;; For example, you can write:
-;;
-;; @ifinfo
-;; @definfoenclose phoo, //, \\
-;; @end ifinfo
-;;
-;; near the beginning of a Texinfo file at the beginning of the lines
-;; to define `@phoo' as an Info formatting command that inserts `//'
-;; before and `\\' after the argument to `@phoo'. You can then write
-;; `@phoo{bar}' wherever you want `//bar\\' highlighted in Info.
-;;
-;; Also, for TeX formatting, you could write
-;;
-;; @iftex
-;; @global@let@phoo=@i
-;; @end iftex
-;;
-;; to define `@phoo' as a command that causes TeX to typeset
-;; the argument to `@phoo' in italics.
-;;
-;; Note that each definition applies to its own formatter: one for TeX,
-;; the other for texinfo-format-buffer or texinfo-format-region.
-;;
-;; Here is another example: write
-;;
-;; @definfoenclose headword, , :
-;;
-;; near the beginning of the file, to define `@headword' as an Info
-;; formatting command that inserts nothing before and a colon after the
-;; argument to `@headword'.
-
-(put 'definfoenclose 'texinfo-format 'texinfo-define-info-enclosure)
-(defun texinfo-define-info-enclosure ()
- (let* ((args (texinfo-format-parse-line-args))
- (command-name (nth 0 args))
- (beginning-delimiter (or (nth 1 args) ""))
- (end-delimiter (or (nth 2 args) "")))
- (texinfo-discard-command)
- (setq texinfo-enclosure-list
- (cons
- (list command-name
- (list
- beginning-delimiter
- end-delimiter))
- texinfo-enclosure-list))))
-
-
-;;; @var, @code and the like
-
-(put 'var 'texinfo-format 'texinfo-format-var)
-;; @sc a small caps font for TeX; formatted as `var' in Info
-(put 'sc 'texinfo-format 'texinfo-format-var)
-(defun texinfo-format-var ()
- (insert (upcase (texinfo-parse-arg-discard)))
- (goto-char texinfo-command-start))
-
-(put 'url 'texinfo-format 'texinfo-format-code)
-(put 'cite 'texinfo-format 'texinfo-format-code)
-(put 'code 'texinfo-format 'texinfo-format-code)
-(put 'file 'texinfo-format 'texinfo-format-code)
-(put 'samp 'texinfo-format 'texinfo-format-code)
-(defun texinfo-format-code ()
- (insert "`" (texinfo-parse-arg-discard) "'")
- (goto-char texinfo-command-start))
-
-(put 'emph 'texinfo-format 'texinfo-format-emph)
-(put 'strong 'texinfo-format 'texinfo-format-emph)
-(defun texinfo-format-emph ()
- (insert "*" (texinfo-parse-arg-discard) "*")
- (goto-char texinfo-command-start))
-
-(put 'dfn 'texinfo-format 'texinfo-format-defn)
-(put 'defn 'texinfo-format 'texinfo-format-defn)
-(defun texinfo-format-defn ()
- (insert "\"" (texinfo-parse-arg-discard) "\"")
- (goto-char texinfo-command-start))
-
-(put 'email 'texinfo-format 'texinfo-format-key)
-(put 'key 'texinfo-format 'texinfo-format-key)
-;; I've decided not want to have angle brackets around these -- rms.
-(defun texinfo-format-key ()
- (insert (texinfo-parse-arg-discard))
- (goto-char texinfo-command-start))
-
-(put 'bullet 'texinfo-format 'texinfo-format-bullet)
-(defun texinfo-format-bullet ()
- "Insert an asterisk.
-If used within a line, follow `@bullet' with braces."
- (texinfo-optional-braces-discard)
- (insert "*"))
-
-
-;;; @kbd
-
-;; Inside of @example ... @end example and similar environments,
-;; @kbd does nothing; but outside of such environments, it places
-;; single quotation markes around its argument.
-
-(defvar texinfo-format-kbd-regexp
- (concat
- "^@"
- "\\("
- "example\\|"
- "smallexample\\|"
- "lisp\\|"
- "smalllisp"
- "\\)")
- "Regexp specifying environments in which @kbd does not put `...'
- around argument.")
-
-(defvar texinfo-format-kbd-end-regexp
- (concat
- "^@end "
- "\\("
- "example\\|"
- "smallexample\\|"
- "lisp\\|"
- "smalllisp"
- "\\)")
- "Regexp specifying end of environments in which @kbd does not put `...'
- around argument. (See `texinfo-format-kbd-regexp')")
-
-(put 'kbd 'texinfo-format 'texinfo-format-kbd)
-(defun texinfo-format-kbd ()
- "Place single quote marks around arg, except in @example and similar."
- ;; Search forward for @end example closer than an @example.
- ;; Can stop search at nearest @node or texinfo-section-types-regexp
- (let* ((stop
- (save-excursion
- (re-search-forward
- (concat "^@node\\|\\(" texinfo-section-types-regexp "\\)")
- nil
- 'move-to-end) ; if necessary, return point at end of buffer
- (point)))
- (example-location
- (save-excursion
- (re-search-forward texinfo-format-kbd-regexp stop 'move-to-end)
- (point)))
- (end-example-location
- (save-excursion
- (re-search-forward texinfo-format-kbd-end-regexp stop 'move-to-end)
- (point))))
- ;; If inside @example, @end example will be closer than @example
- ;; or end of search i.e., end-example-location less than example-location
- (if (>= end-example-location example-location)
- ;; outside an @example or equivalent
- (insert "`" (texinfo-parse-arg-discard) "'")
- ;; else, in @example; do not surround with `...'
- (insert (texinfo-parse-arg-discard)))
- (goto-char texinfo-command-start)))
-
-
-;;; @example, @lisp, @quotation, @display, @smalllisp, @smallexample
-
-(put 'display 'texinfo-format 'texinfo-format-example)
-(put 'example 'texinfo-format 'texinfo-format-example)
-(put 'lisp 'texinfo-format 'texinfo-format-example)
-(put 'quotation 'texinfo-format 'texinfo-format-example)
-(put 'smallexample 'texinfo-format 'texinfo-format-example)
-(put 'smalllisp 'texinfo-format 'texinfo-format-example)
-(defun texinfo-format-example ()
- (texinfo-push-stack 'example nil)
- (setq fill-column (- fill-column 5))
- (texinfo-discard-line))
-
-(put 'example 'texinfo-end 'texinfo-end-example)
-(put 'display 'texinfo-end 'texinfo-end-example)
-(put 'lisp 'texinfo-end 'texinfo-end-example)
-(put 'quotation 'texinfo-end 'texinfo-end-example)
-(put 'smallexample 'texinfo-end 'texinfo-end-example)
-(put 'smalllisp 'texinfo-end 'texinfo-end-example)
-(defun texinfo-end-example ()
- (setq fill-column (+ fill-column 5))
- (texinfo-discard-command)
- (let ((stacktop
- (texinfo-pop-stack 'example)))
- (texinfo-do-itemize (nth 1 stacktop))))
-
-(put 'exdent 'texinfo-format 'texinfo-format-exdent)
-(defun texinfo-format-exdent ()
- (texinfo-discard-command)
- (delete-region (point)
- (progn
- (skip-chars-forward " ")
- (point)))
- (insert ?\b)
- ;; Cancel out the deletion that texinfo-do-itemize
- ;; is going to do at the end of this line.
- (save-excursion
- (end-of-line)
- (insert "\n ")))
-
-
-;;; @cartouche
-
-;; The @cartouche command is a noop in Info; in a printed manual,
-;; it makes a box with rounded corners.
-
-(put 'cartouche 'texinfo-format 'texinfo-discard-line)
-(put 'cartouche 'texinfo-end 'texinfo-discard-command)
-
-
-;;; @flushleft and @format
-
-;; The @flushleft command left justifies every line but leaves the
-;; right end ragged. As far as Info is concerned, @flushleft is a
-;; `do-nothing' command
-
-;; The @format command is similar to @example except that it does not
-;; indent; this means that in Info, @format is similar to @flushleft.
-
-(put 'format 'texinfo-format 'texinfo-format-flushleft)
-(put 'flushleft 'texinfo-format 'texinfo-format-flushleft)
-(defun texinfo-format-flushleft ()
- (texinfo-discard-line))
-
-(put 'format 'texinfo-end 'texinfo-end-flushleft)
-(put 'flushleft 'texinfo-end 'texinfo-end-flushleft)
-(defun texinfo-end-flushleft ()
- (texinfo-discard-command))
-
-
-;;; @flushright
-
-;; The @flushright command right justifies every line but leaves the
-;; left end ragged. Spaces and tabs at the right ends of lines are
-;; removed so that visible text lines up on the right side.
-
-(put 'flushright 'texinfo-format 'texinfo-format-flushright)
-(defun texinfo-format-flushright ()
- (texinfo-push-stack 'flushright nil)
- (texinfo-discard-line))
-
-(put 'flushright 'texinfo-end 'texinfo-end-flushright)
-(defun texinfo-end-flushright ()
- (texinfo-discard-command)
-
- (let ((stacktop
- (texinfo-pop-stack 'flushright)))
-
- (texinfo-do-flushright (nth 1 stacktop))))
-
-(defun texinfo-do-flushright (from)
- (save-excursion
- (while (progn (forward-line -1)
- (>= (point) from))
-
- (beginning-of-line)
- (insert
- (make-string
- (- fill-column
- (save-excursion
- (end-of-line)
- (skip-chars-backward " \t")
- (delete-region (point) (progn (end-of-line) (point)))
- (current-column)))
- ? )))))
-
-
-;;; @ctrl, @TeX, @copyright, @minus, @dots, @enddots, @pounds
-
-(put 'ctrl 'texinfo-format 'texinfo-format-ctrl)
-(defun texinfo-format-ctrl ()
- (let ((str (texinfo-parse-arg-discard)))
- (insert (logand 31 (aref str 0)))))
-
-(put 'TeX 'texinfo-format 'texinfo-format-TeX)
-(defun texinfo-format-TeX ()
- (texinfo-parse-arg-discard)
- (insert "TeX"))
-
-(put 'copyright 'texinfo-format 'texinfo-format-copyright)
-(defun texinfo-format-copyright ()
- (texinfo-parse-arg-discard)
- (insert "(C)"))
-
-(put 'minus 'texinfo-format 'texinfo-format-minus)
-(defun texinfo-format-minus ()
- "Insert a minus sign.
-If used within a line, follow `@minus' with braces."
- (texinfo-optional-braces-discard)
- (insert "-"))
-
-(put 'dots 'texinfo-format 'texinfo-format-dots)
-(defun texinfo-format-dots ()
- (texinfo-parse-arg-discard)
- (insert "..."))
-
-(put 'enddots 'texinfo-format 'texinfo-format-enddots)
-(defun texinfo-format-enddots ()
- (texinfo-parse-arg-discard)
- (insert "...."))
-
-(put 'pounds 'texinfo-format 'texinfo-format-pounds)
-(defun texinfo-format-pounds ()
- (texinfo-parse-arg-discard)
- (insert "#"))
-
-
-;;; Refilling and indenting: @refill, @paragraphindent, @noindent
-
-;;; Indent only those paragraphs that are refilled as a result of an
-;;; @refill command.
-
-;; * If the value is `asis', do not change the existing indentation at
-;; the starts of paragraphs.
-
-;; * If the value zero, delete any existing indentation.
-
-;; * If the value is greater than zero, indent each paragraph by that
-;; number of spaces.
-
-;;; But do not refill paragraphs with an @refill command that are
-;;; preceded by @noindent or are part of a table, list, or deffn.
-
-(defvar texinfo-paragraph-indent "asis"
- "Number of spaces for @refill to indent a paragraph; else to leave as is.")
-
-(put 'paragraphindent 'texinfo-format 'texinfo-paragraphindent)
-
-(defun texinfo-paragraphindent ()
- "Specify the number of spaces for @refill to indent a paragraph.
-Default is to leave the number of spaces as is."
- (let ((arg (texinfo-parse-arg-discard)))
- (if (string= "asis" arg)
- (setq texinfo-paragraph-indent "asis")
- (setq texinfo-paragraph-indent (string-to-int arg)))))
-
-(put 'refill 'texinfo-format 'texinfo-format-refill)
-(defun texinfo-format-refill ()
- "Refill paragraph. Also, indent first line as set by @paragraphindent.
-Default is to leave paragraph indentation as is."
- (texinfo-discard-command)
- (forward-paragraph -1)
- (if (looking-at "[ \t\n]*$") (forward-line 1))
- ;; Do not indent if an entry in a list, table, or deffn,
- ;; or if paragraph is preceded by @noindent.
- ;; Otherwise, indent
- (cond
- ;; delete a @noindent line and do not indent paragraph
- ((save-excursion (forward-line -1)
- (looking-at "^@noindent"))
- (forward-line -1)
- (delete-region (point) (progn (forward-line 1) (point))))
- ;; do nothing if "asis"
- ((equal texinfo-paragraph-indent "asis"))
- ;; do no indenting in list, etc.
- ((> texinfo-stack-depth 0))
- ;; otherwise delete existing whitespace and indent
- (t
- (delete-region (point) (progn (skip-chars-forward " \t") (point)))
- (insert (make-string texinfo-paragraph-indent ? ))))
- (forward-paragraph 1)
- (forward-line -1)
- (end-of-line)
- ;; Do not fill a section title line with asterisks, hyphens, etc. that
- ;; are used to underline it. This could occur if the line following
- ;; the underlining is not an index entry and has text within it.
- (let* ((previous-paragraph-separate paragraph-separate)
- (paragraph-separate
- (concat paragraph-separate "\\|[-=.]+\\|\\*\\*+"))
- (previous-paragraph-start paragraph-start)
- (paragraph-start
- (concat paragraph-start "\\|[-=.]+\\|\\*\\*+")))
- (unwind-protect
- (fill-paragraph nil)
- (setq paragraph-separate previous-paragraph-separate)
- (setq paragraph-start previous-paragraph-start))))
-
-(put 'noindent 'texinfo-format 'texinfo-noindent)
-(defun texinfo-noindent ()
- (save-excursion
- (forward-paragraph 1)
- (if (search-backward "@refill"
- (save-excursion (forward-line -1) (point)) t)
- () ; leave @noindent command so @refill command knows not to indent
- ;; else
- (texinfo-discard-line))))
-
-
-;;; Index generation
-
-(put 'vindex 'texinfo-format 'texinfo-format-vindex)
-(defun texinfo-format-vindex ()
- (texinfo-index 'texinfo-vindex))
-
-(put 'cindex 'texinfo-format 'texinfo-format-cindex)
-(defun texinfo-format-cindex ()
- (texinfo-index 'texinfo-cindex))
-
-(put 'findex 'texinfo-format 'texinfo-format-findex)
-(defun texinfo-format-findex ()
- (texinfo-index 'texinfo-findex))
-
-(put 'pindex 'texinfo-format 'texinfo-format-pindex)
-(defun texinfo-format-pindex ()
- (texinfo-index 'texinfo-pindex))
-
-(put 'tindex 'texinfo-format 'texinfo-format-tindex)
-(defun texinfo-format-tindex ()
- (texinfo-index 'texinfo-tindex))
-
-(put 'kindex 'texinfo-format 'texinfo-format-kindex)
-(defun texinfo-format-kindex ()
- (texinfo-index 'texinfo-kindex))
-
-(defun texinfo-index (indexvar)
- (let ((arg (texinfo-parse-expanded-arg)))
- (texinfo-discard-command)
- (set indexvar
- (cons (list arg
- texinfo-last-node
- ;; Region formatting may not provide last node position.
- (if texinfo-last-node-pos
- (1+ (count-lines texinfo-last-node-pos (point)))
- 1))
- (symbol-value indexvar)))))
-
-(defconst texinfo-indexvar-alist
- '(("cp" . texinfo-cindex)
- ("fn" . texinfo-findex)
- ("vr" . texinfo-vindex)
- ("tp" . texinfo-tindex)
- ("pg" . texinfo-pindex)
- ("ky" . texinfo-kindex)))
-
-
-;;; @defindex @defcodeindex
-(put 'defindex 'texinfo-format 'texinfo-format-defindex)
-(put 'defcodeindex 'texinfo-format 'texinfo-format-defindex)
-
-(defun texinfo-format-defindex ()
- (let* ((index-name (texinfo-parse-arg-discard)) ; eg: `aa'
- (indexing-command (intern (concat index-name "index")))
- (index-formatting-command ; eg: `texinfo-format-aaindex'
- (intern (concat "texinfo-format-" index-name "index")))
- (index-alist-name ; eg: `texinfo-aaindex'
- (intern (concat "texinfo-" index-name "index"))))
-
- (set index-alist-name nil)
-
- (put indexing-command ; eg, aaindex
- 'texinfo-format
- index-formatting-command) ; eg, texinfo-format-aaindex
-
- ;; eg: "aa" . texinfo-aaindex
- (or (assoc index-name texinfo-indexvar-alist)
- (setq texinfo-indexvar-alist
- (cons
- (cons index-name
- index-alist-name)
- texinfo-indexvar-alist)))
-
- (fset index-formatting-command
- (list 'lambda 'nil
- (list 'texinfo-index
- (list 'quote index-alist-name))))))
-
-
-;;; @synindex @syncodeindex
-
-(put 'synindex 'texinfo-format 'texinfo-format-synindex)
-(put 'syncodeindex 'texinfo-format 'texinfo-format-synindex)
-
-(defun texinfo-format-synindex ()
- (let* ((args (texinfo-parse-arg-discard))
- (second (cdr (read-from-string args)))
- (joiner (symbol-name (car (read-from-string args))))
- (joined (symbol-name (car (read-from-string args second)))))
-
- (if (assoc joiner texinfo-short-index-cmds-alist)
- (put
- (cdr (assoc joiner texinfo-short-index-cmds-alist))
- 'texinfo-format
- (or (cdr (assoc joined texinfo-short-index-format-cmds-alist))
- (intern (concat "texinfo-format-" joined "index"))))
- (put
- (intern (concat joiner "index"))
- 'texinfo-format
- (or (cdr(assoc joined texinfo-short-index-format-cmds-alist))
- (intern (concat "texinfo-format-" joined "index")))))))
-
-(defconst texinfo-short-index-cmds-alist
- '(("cp" . cindex)
- ("fn" . findex)
- ("vr" . vindex)
- ("tp" . tindex)
- ("pg" . pindex)
- ("ky" . kindex)))
-
-(defconst texinfo-short-index-format-cmds-alist
- '(("cp" . texinfo-format-cindex)
- ("fn" . texinfo-format-findex)
- ("vr" . texinfo-format-vindex)
- ("tp" . texinfo-format-tindex)
- ("pg" . texinfo-format-pindex)
- ("ky" . texinfo-format-kindex)))
-
-
-;;; Sort and index (for VMS)
-
-;; Sort an index which is in the current buffer between START and END.
-;; Used on VMS, where the `sort' utility is not available.
-(defun texinfo-sort-region (start end)
- (require 'sort)
- (save-restriction
- (narrow-to-region start end)
- (sort-subr nil 'forward-line 'end-of-line 'texinfo-sort-startkeyfun)))
-
-;; Subroutine for sorting an index.
-;; At start of a line, return a string to sort the line under.
-(defun texinfo-sort-startkeyfun ()
- (let ((line
- (buffer-substring (point) (save-excursion (end-of-line) (point)))))
- ;; Canonicalize whitespace and eliminate funny chars.
- (while (string-match "[ \t][ \t]+\\|[^a-z0-9 ]+" line)
- (setq line (concat (substring line 0 (match-beginning 0))
- " "
- (substring line (match-end 0) (length line)))))
- line))
-
-
-;;; @printindex
-
-(put 'printindex 'texinfo-format 'texinfo-format-printindex)
-
-(defun texinfo-format-printindex ()
- (let ((indexelts (symbol-value
- (cdr (assoc (texinfo-parse-arg-discard)
- texinfo-indexvar-alist))))
- opoint)
- (insert "\n* Menu:\n\n")
- (setq opoint (point))
- (texinfo-print-index nil indexelts)
-
- (if (memq system-type '(vax-vms windows-nt ms-dos))
- (texinfo-sort-region opoint (point))
- (shell-command-on-region opoint (point) "sort -fd" 1))))
-
-(defun texinfo-print-index (file indexelts)
- (while indexelts
- (if (stringp (car (car indexelts)))
- (progn
- (insert "* " (car (car indexelts)) ": " )
- (indent-to 32)
- (insert
- (if file (concat "(" file ")") "")
- (nth 1 (car indexelts)) ".")
- (indent-to 54)
- (insert
- (if (nth 2 (car indexelts))
- (format " %d." (nth 2 (car indexelts)))
- "")
- "\n"))
- ;; index entries from @include'd file
- (texinfo-print-index (nth 1 (car indexelts))
- (nth 2 (car indexelts))))
- (setq indexelts (cdr indexelts))))
-
-
-;;; Glyphs: @equiv, @error, etc
-
-;; @equiv to show that two expressions are equivalent
-;; @error to show an error message
-;; @expansion to show what a macro expands to
-;; @point to show the location of point in an example
-;; @print to show what an evaluated expression prints
-;; @result to indicate the value returned by an expression
-
-(put 'equiv 'texinfo-format 'texinfo-format-equiv)
-(defun texinfo-format-equiv ()
- (texinfo-parse-arg-discard)
- (insert "=="))
-
-(put 'error 'texinfo-format 'texinfo-format-error)
-(defun texinfo-format-error ()
- (texinfo-parse-arg-discard)
- (insert "error-->"))
-
-(put 'expansion 'texinfo-format 'texinfo-format-expansion)
-(defun texinfo-format-expansion ()
- (texinfo-parse-arg-discard)
- (insert "==>"))
-
-(put 'point 'texinfo-format 'texinfo-format-point)
-(defun texinfo-format-point ()
- (texinfo-parse-arg-discard)
- (insert "-!-"))
-
-(put 'print 'texinfo-format 'texinfo-format-print)
-(defun texinfo-format-print ()
- (texinfo-parse-arg-discard)
- (insert "-|"))
-
-(put 'result 'texinfo-format 'texinfo-format-result)
-(defun texinfo-format-result ()
- (texinfo-parse-arg-discard)
- (insert "=>"))
-
-
-;;; Accent commands
-
-;; Info presumes a plain ASCII output, so the accented characters do
-;; not look as they would if typeset, or output with a different
-;; character set.
-
-;; See the `texinfo-accent-commands' variable
-;; in the section for `texinfo-append-refill'.
-;; Also, see the defun for `texinfo-format-scan'
-;; for single-character accent commands.
-
-;; Command Info output Name
-
-;; These do not have braces:
-;; @^ ==> ^ circumflex accent
-;; @` ==> ` grave accent
-;; @' ==> ' acute accent
-;; @" ==> " umlaut accent
-;; @= ==> = overbar accent
-;; @~ ==> ~ tilde accent
-
-;; These have braces, but take no argument:
-;; @OE{} ==> OE French-OE-ligature
-;; @oe{} ==> oe
-;; @AA{} ==> AA Scandinavian-A-with-circle
-;; @aa{} ==> aa
-;; @AE{} ==> AE Latin-Scandinavian-AE
-;; @ae{} ==> ae
-;; @ss{} ==> ss German-sharp-S
-
-;; @questiondown{} ==> ? upside-down-question-mark
-;; @exclamdown{} ==> ! upside-down-exclamation-mark
-;; @L{} ==> L/ Polish suppressed-L (Lslash)
-;; @l{} ==> l/ Polish suppressed-L (Lslash) (lower case)
-;; @O{} ==> O/ Scandinavian O-with-slash
-;; @o{} ==> o/ Scandinavian O-with-slash (lower case)
-
-;; These have braces, and take an argument:
-;; @,{c} ==> c, cedilla accent
-;; @dotaccent{o} ==> .o overdot-accent
-;; @ubaraccent{o} ==> _o underbar-accent
-;; @udotaccent{o} ==> o-. underdot-accent
-;; @H{o} ==> ""o long Hungarian umlaut
-;; @ringaccent{o} ==> *o ring accent
-;; @tieaccent{oo} ==> [oo tie after accent
-;; @u{o} ==> (o breve accent
-;; @v{o} ==> <o hacek accent
-;; @dotless{i} ==> i dotless i and dotless j
-
-;; ==========
-
-;; Note: The defun texinfo-format-scan
-;; looks at "[@{}^'`\",=~ *?!-]"
-;; In the case of @*, a line break is inserted;
-;; in the other cases, the characters are simply quoted and the @ is deleted.
-;; Thus, `texinfo-format-scan' handles the following
-;; single-character accent commands: @^ @` @' @" @, @- @= @~
-
-;; @^ ==> ^ circumflex accent
-;; (put '^ 'texinfo-format 'texinfo-format-circumflex-accent)
-;; (defun texinfo-format-circumflex-accent ()
-;; (texinfo-discard-command)
-;; (insert "^"))
-;;
-;; @` ==> ` grave accent
-;; (put '\` 'texinfo-format 'texinfo-format-grave-accent)
-;; (defun texinfo-format-grave-accent ()
-;; (texinfo-discard-command)
-;; (insert "\`"))
-;;
-;; @' ==> ' acute accent
-;; (put '\' 'texinfo-format 'texinfo-format-acute-accent)
-;; (defun texinfo-format-acute-accent ()
-;; (texinfo-discard-command)
-;; (insert "'"))
-;;
-;; @" ==> " umlaut accent
-;; (put '\" 'texinfo-format 'texinfo-format-umlaut-accent)
-;; (defun texinfo-format-umlaut-accent ()
-;; (texinfo-discard-command)
-;; (insert "\""))
-;;
-;; @= ==> = overbar accent
-;; (put '= 'texinfo-format 'texinfo-format-overbar-accent)
-;; (defun texinfo-format-overbar-accent ()
-;; (texinfo-discard-command)
-;; (insert "="))
-;;
-;; @~ ==> ~ tilde accent
-;; (put '~ 'texinfo-format 'texinfo-format-tilde-accent)
-;; (defun texinfo-format-tilde-accent ()
-;; (texinfo-discard-command)
-;; (insert "~"))
-
-;; @OE{} ==> OE French-OE-ligature
-(put 'OE 'texinfo-format 'texinfo-format-French-OE-ligature)
-(defun texinfo-format-French-OE-ligature ()
- (insert "OE" (texinfo-parse-arg-discard))
- (goto-char texinfo-command-start))
-
-;; @oe{} ==> oe
-(put 'oe 'texinfo-format 'texinfo-format-French-oe-ligature)
-(defun texinfo-format-French-oe-ligature () ; lower case
- (insert "oe" (texinfo-parse-arg-discard))
- (goto-char texinfo-command-start))
-
-;; @AA{} ==> AA Scandinavian-A-with-circle
-(put 'AA 'texinfo-format 'texinfo-format-Scandinavian-A-with-circle)
-(defun texinfo-format-Scandinavian-A-with-circle ()
- (insert "AA" (texinfo-parse-arg-discard))
- (goto-char texinfo-command-start))
-
-;; @aa{} ==> aa
-(put 'aa 'texinfo-format 'texinfo-format-Scandinavian-a-with-circle)
-(defun texinfo-format-Scandinavian-a-with-circle () ; lower case
- (insert "aa" (texinfo-parse-arg-discard))
- (goto-char texinfo-command-start))
-
-;; @AE{} ==> AE Latin-Scandinavian-AE
-(put 'AE 'texinfo-format 'texinfo-format-Latin-Scandinavian-AE)
-(defun texinfo-format-Latin-Scandinavian-AE ()
- (insert "AE" (texinfo-parse-arg-discard))
- (goto-char texinfo-command-start))
-
-;; @ae{} ==> ae
-(put 'ae 'texinfo-format 'texinfo-format-Latin-Scandinavian-ae)
-(defun texinfo-format-Latin-Scandinavian-ae () ; lower case
- (insert "ae" (texinfo-parse-arg-discard))
- (goto-char texinfo-command-start))
-
-;; @ss{} ==> ss German-sharp-S
-(put 'ss 'texinfo-format 'texinfo-format-German-sharp-S)
-(defun texinfo-format-German-sharp-S ()
- (insert "ss" (texinfo-parse-arg-discard))
- (goto-char texinfo-command-start))
-
-;; @questiondown{} ==> ? upside-down-question-mark
-(put 'questiondown 'texinfo-format 'texinfo-format-upside-down-question-mark)
-(defun texinfo-format-upside-down-question-mark ()
- (insert "?" (texinfo-parse-arg-discard))
- (goto-char texinfo-command-start))
-
-;; @exclamdown{} ==> ! upside-down-exclamation-mark
-(put 'exclamdown 'texinfo-format 'texinfo-format-upside-down-exclamation-mark)
-(defun texinfo-format-upside-down-exclamation-mark ()
- (insert "!" (texinfo-parse-arg-discard))
- (goto-char texinfo-command-start))
-
-;; @L{} ==> L/ Polish suppressed-L (Lslash)
-(put 'L 'texinfo-format 'texinfo-format-Polish-suppressed-L)
-(defun texinfo-format-Polish-suppressed-L ()
- (insert (texinfo-parse-arg-discard) "/L")
- (goto-char texinfo-command-start))
-
-;; @l{} ==> l/ Polish suppressed-L (Lslash) (lower case)
-(put 'l 'texinfo-format 'texinfo-format-Polish-suppressed-l-lower-case)
-(defun texinfo-format-Polish-suppressed-l-lower-case ()
- (insert (texinfo-parse-arg-discard) "/l")
- (goto-char texinfo-command-start))
-
-
-;; @O{} ==> O/ Scandinavian O-with-slash
-(put 'O 'texinfo-format 'texinfo-format-Scandinavian-O-with-slash)
-(defun texinfo-format-Scandinavian-O-with-slash ()
- (insert (texinfo-parse-arg-discard) "O/")
- (goto-char texinfo-command-start))
-
-;; @o{} ==> o/ Scandinavian O-with-slash (lower case)
-(put 'o 'texinfo-format 'texinfo-format-Scandinavian-o-with-slash-lower-case)
-(defun texinfo-format-Scandinavian-o-with-slash-lower-case ()
- (insert (texinfo-parse-arg-discard) "o/")
- (goto-char texinfo-command-start))
-
-;; Take arguments
-
-;; @,{c} ==> c, cedilla accent
-(put ', 'texinfo-format 'texinfo-format-cedilla-accent)
-(defun texinfo-format-cedilla-accent ()
- (insert (texinfo-parse-arg-discard) ",")
- (goto-char texinfo-command-start))
-
-
-;; @dotaccent{o} ==> .o overdot-accent
-(put 'dotaccent 'texinfo-format 'texinfo-format-overdot-accent)
-(defun texinfo-format-overdot-accent ()
- (insert "." (texinfo-parse-arg-discard))
- (goto-char texinfo-command-start))
-
-;; @ubaraccent{o} ==> _o underbar-accent
-(put 'ubaraccent 'texinfo-format 'texinfo-format-underbar-accent)
-(defun texinfo-format-underbar-accent ()
- (insert "_" (texinfo-parse-arg-discard))
- (goto-char texinfo-command-start))
-
-;; @udotaccent{o} ==> o-. underdot-accent
-(put 'udotaccent 'texinfo-format 'texinfo-format-underdot-accent)
-(defun texinfo-format-underdot-accent ()
- (insert (texinfo-parse-arg-discard) "-.")
- (goto-char texinfo-command-start))
-
-;; @H{o} ==> ""o long Hungarian umlaut
-(put 'H 'texinfo-format 'texinfo-format-long-Hungarian-umlaut)
-(defun texinfo-format-long-Hungarian-umlaut ()
- (insert "\"\"" (texinfo-parse-arg-discard))
- (goto-char texinfo-command-start))
-
-;; @ringaccent{o} ==> *o ring accent
-(put 'ringaccent 'texinfo-format 'texinfo-format-ring-accent)
-(defun texinfo-format-ring-accent ()
- (insert "*" (texinfo-parse-arg-discard))
- (goto-char texinfo-command-start))
-
-;; @tieaccent{oo} ==> [oo tie after accent
-(put 'tieaccent 'texinfo-format 'texinfo-format-tie-after-accent)
-(defun texinfo-format-tie-after-accent ()
- (insert "[" (texinfo-parse-arg-discard))
- (goto-char texinfo-command-start))
-
-
-;; @u{o} ==> (o breve accent
-(put 'u 'texinfo-format 'texinfo-format-breve-accent)
-(defun texinfo-format-breve-accent ()
- (insert "(" (texinfo-parse-arg-discard))
- (goto-char texinfo-command-start))
-
-;; @v{o} ==> <o hacek accent
-(put 'v 'texinfo-format 'texinfo-format-hacek-accent)
-(defun texinfo-format-hacek-accent ()
- (insert "<" (texinfo-parse-arg-discard))
- (goto-char texinfo-command-start))
-
-
-;; @dotless{i} ==> i dotless i and dotless j
-(put 'dotless 'texinfo-format 'texinfo-format-dotless)
-(defun texinfo-format-dotless ()
- (insert (texinfo-parse-arg-discard))
- (goto-char texinfo-command-start))
-
-
-;;; Definition formatting: @deffn, @defun, etc
-
-;; What definition formatting produces:
-;;
-;; @deffn category name args...
-;; In Info, `Category: name ARGS'
-;; In index: name: node. line#.
-;;
-;; @defvr category name
-;; In Info, `Category: name'
-;; In index: name: node. line#.
-;;
-;; @deftp category name attributes...
-;; `category name attributes...' Note: @deftp args in lower case.
-;; In index: name: node. line#.
-;;
-;; Specialized function-like or variable-like entity:
-;;
-;; @defun, @defmac, @defspec, @defvar, @defopt
-;;
-;; @defun name args In Info, `Function: name ARGS'
-;; @defmac name args In Info, `Macro: name ARGS'
-;; @defvar name In Info, `Variable: name'
-;; etc.
-;; In index: name: node. line#.
-;;
-;; Generalized typed-function-like or typed-variable-like entity:
-;; @deftypefn category data-type name args...
-;; In Info, `Category: data-type name args...'
-;; @deftypevr category data-type name
-;; In Info, `Category: data-type name'
-;; In index: name: node. line#.
-;;
-;; Specialized typed-function-like or typed-variable-like entity:
-;; @deftypefun data-type name args...
-;; In Info, `Function: data-type name ARGS'
-;; In index: name: node. line#.
-;;
-;; @deftypevar data-type name
-;; In Info, `Variable: data-type name'
-;; In index: name: node. line#. but include args after name!?
-;;
-;; Generalized object oriented entity:
-;; @defop category class name args...
-;; In Info, `Category on class: name ARG'
-;; In index: name on class: node. line#.
-;;
-;; @defcv category class name
-;; In Info, `Category of class: name'
-;; In index: name of class: node. line#.
-;;
-;; Specialized object oriented entity:
-;; @defmethod class name args...
-;; In Info, `Method on class: name ARGS'
-;; In index: name on class: node. line#.
-;;
-;; @defivar class name
-;; In Info, `Instance variable of class: name'
-;; In index: name of class: node. line#.
-
-
-;;; The definition formatting functions
-
-(defun texinfo-format-defun ()
- (texinfo-push-stack 'defun nil)
- (setq fill-column (- fill-column 5))
- (texinfo-format-defun-1 t))
-
-(defun texinfo-end-defun ()
- (setq fill-column (+ fill-column 5))
- (texinfo-discard-command)
- (let ((start (nth 1 (texinfo-pop-stack 'defun))))
- (texinfo-do-itemize start)
- ;; Delete extra newline inserted after header.
- (save-excursion
- (goto-char start)
- (delete-char -1))))
-
-(defun texinfo-format-defunx ()
- (texinfo-format-defun-1 nil))
-
-(defun texinfo-format-defun-1 (first-p)
- (let ((parse-args (texinfo-format-parse-defun-args))
- (texinfo-defun-type (get texinfo-command-name 'texinfo-defun-type)))
- (texinfo-discard-command)
- ;; Delete extra newline inserted after previous header line.
- (if (not first-p)
- (delete-char -1))
- (funcall
- (get texinfo-command-name 'texinfo-deffn-formatting-property) parse-args)
- ;; Insert extra newline so that paragraph filling does not mess
- ;; with header line.
- (insert "\n\n")
- (rplaca (cdr (cdr (car texinfo-stack))) (point))
- (funcall
- (get texinfo-command-name 'texinfo-defun-indexing-property) parse-args)))
-
-;;; Formatting the first line of a definition
-
-;; @deffn, @defvr, @deftp
-(put 'deffn 'texinfo-deffn-formatting-property 'texinfo-format-deffn)
-(put 'deffnx 'texinfo-deffn-formatting-property 'texinfo-format-deffn)
-(put 'defvr 'texinfo-deffn-formatting-property 'texinfo-format-deffn)
-(put 'defvrx 'texinfo-deffn-formatting-property 'texinfo-format-deffn)
-(put 'deftp 'texinfo-deffn-formatting-property 'texinfo-format-deffn)
-(put 'deftpx 'texinfo-deffn-formatting-property 'texinfo-format-deffn)
-(defun texinfo-format-deffn (parsed-args)
- ;; Generalized function-like, variable-like, or generic data-type entity:
- ;; @deffn category name args...
- ;; In Info, `Category: name ARGS'
- ;; @deftp category name attributes...
- ;; `category name attributes...' Note: @deftp args in lower case.
- (let ((category (car parsed-args))
- (name (car (cdr parsed-args)))
- (args (cdr (cdr parsed-args))))
- (insert " -- " category ": " name)
- (while args
- (insert " "
- (if (or (= ?& (aref (car args) 0))
- (eq (eval (car texinfo-defun-type)) 'deftp-type))
- (car args)
- (upcase (car args))))
- (setq args (cdr args)))))
-
-;; @defun, @defmac, @defspec, @defvar, @defopt: Specialized, simple
-(put 'defun 'texinfo-deffn-formatting-property
- 'texinfo-format-specialized-defun)
-(put 'defunx 'texinfo-deffn-formatting-property
- 'texinfo-format-specialized-defun)
-(put 'defmac 'texinfo-deffn-formatting-property
- 'texinfo-format-specialized-defun)
-(put 'defmacx 'texinfo-deffn-formatting-property
- 'texinfo-format-specialized-defun)
-(put 'defspec 'texinfo-deffn-formatting-property
- 'texinfo-format-specialized-defun)
-(put 'defspecx 'texinfo-deffn-formatting-property
- 'texinfo-format-specialized-defun)
-(put 'defvar 'texinfo-deffn-formatting-property
- 'texinfo-format-specialized-defun)
-(put 'defvarx 'texinfo-deffn-formatting-property
- 'texinfo-format-specialized-defun)
-(put 'defopt 'texinfo-deffn-formatting-property
- 'texinfo-format-specialized-defun)
-(put 'defoptx 'texinfo-deffn-formatting-property
- 'texinfo-format-specialized-defun)
-(defun texinfo-format-specialized-defun (parsed-args)
- ;; Specialized function-like or variable-like entity:
- ;; @defun name args In Info, `Function: Name ARGS'
- ;; @defmac name args In Info, `Macro: Name ARGS'
- ;; @defvar name In Info, `Variable: Name'
- ;; Use cdr of texinfo-defun-type to determine category:
- (let ((category (car (cdr texinfo-defun-type)))
- (name (car parsed-args))
- (args (cdr parsed-args)))
- (insert " -- " category ": " name)
- (while args
- (insert " "
- (if (= ?& (aref (car args) 0))
- (car args)
- (upcase (car args))))
- (setq args (cdr args)))))
-
-;; @deftypefn, @deftypevr: Generalized typed
-(put 'deftypefn 'texinfo-deffn-formatting-property 'texinfo-format-deftypefn)
-(put 'deftypefnx 'texinfo-deffn-formatting-property 'texinfo-format-deftypefn)
-(put 'deftypevr 'texinfo-deffn-formatting-property 'texinfo-format-deftypefn)
-(put 'deftypevrx 'texinfo-deffn-formatting-property 'texinfo-format-deftypefn)
-(defun texinfo-format-deftypefn (parsed-args)
- ;; Generalized typed-function-like or typed-variable-like entity:
- ;; @deftypefn category data-type name args...
- ;; In Info, `Category: data-type name args...'
- ;; @deftypevr category data-type name
- ;; In Info, `Category: data-type name'
- ;; Note: args in lower case, unless modified in command line.
- (let ((category (car parsed-args))
- (data-type (car (cdr parsed-args)))
- (name (car (cdr (cdr parsed-args))))
- (args (cdr (cdr (cdr parsed-args)))))
- (insert " -- " category ": " data-type " " name)
- (while args
- (insert " " (car args))
- (setq args (cdr args)))))
-
-;; @deftypefun, @deftypevar: Specialized typed
-(put 'deftypefun 'texinfo-deffn-formatting-property 'texinfo-format-deftypefun)
-(put 'deftypefunx 'texinfo-deffn-formatting-property
- 'texinfo-format-deftypefun)
-(put 'deftypevar 'texinfo-deffn-formatting-property 'texinfo-format-deftypefun)
-(put 'deftypevarx 'texinfo-deffn-formatting-property
- 'texinfo-format-deftypefun)
-(defun texinfo-format-deftypefun (parsed-args)
- ;; Specialized typed-function-like or typed-variable-like entity:
- ;; @deftypefun data-type name args...
- ;; In Info, `Function: data-type name ARGS'
- ;; @deftypevar data-type name
- ;; In Info, `Variable: data-type name'
- ;; Note: args in lower case, unless modified in command line.
- ;; Use cdr of texinfo-defun-type to determine category:
- (let ((category (car (cdr texinfo-defun-type)))
- (data-type (car parsed-args))
- (name (car (cdr parsed-args)))
- (args (cdr (cdr parsed-args))))
- (insert " -- " category ": " data-type " " name)
- (while args
- (insert " " (car args))
- (setq args (cdr args)))))
-
-;; @defop: Generalized object-oriented
-(put 'defop 'texinfo-deffn-formatting-property 'texinfo-format-defop)
-(put 'defopx 'texinfo-deffn-formatting-property 'texinfo-format-defop)
-(defun texinfo-format-defop (parsed-args)
- ;; Generalized object oriented entity:
- ;; @defop category class name args...
- ;; In Info, `Category on class: name ARG'
- ;; Note: args in upper case; use of `on'
- (let ((category (car parsed-args))
- (class (car (cdr parsed-args)))
- (name (car (cdr (cdr parsed-args))))
- (args (cdr (cdr (cdr parsed-args)))))
- (insert " -- " category " on " class ": " name)
- (while args
- (insert " " (upcase (car args)))
- (setq args (cdr args)))))
-
-;; @defcv: Generalized object-oriented
-(put 'defcv 'texinfo-deffn-formatting-property 'texinfo-format-defcv)
-(put 'defcvx 'texinfo-deffn-formatting-property 'texinfo-format-defcv)
-(defun texinfo-format-defcv (parsed-args)
- ;; Generalized object oriented entity:
- ;; @defcv category class name
- ;; In Info, `Category of class: name'
- ;; Note: args in upper case; use of `of'
- (let ((category (car parsed-args))
- (class (car (cdr parsed-args)))
- (name (car (cdr (cdr parsed-args))))
- (args (cdr (cdr (cdr parsed-args)))))
- (insert " -- " category " of " class ": " name)
- (while args
- (insert " " (upcase (car args)))
- (setq args (cdr args)))))
-
-;; @defmethod: Specialized object-oriented
-(put 'defmethod 'texinfo-deffn-formatting-property 'texinfo-format-defmethod)
-(put 'defmethodx 'texinfo-deffn-formatting-property 'texinfo-format-defmethod)
-(defun texinfo-format-defmethod (parsed-args)
- ;; Specialized object oriented entity:
- ;; @defmethod class name args...
- ;; In Info, `Method on class: name ARGS'
- ;; Note: args in upper case; use of `on'
- ;; Use cdr of texinfo-defun-type to determine category:
- (let ((category (car (cdr texinfo-defun-type)))
- (class (car parsed-args))
- (name (car (cdr parsed-args)))
- (args (cdr (cdr parsed-args))))
- (insert " -- " category " on " class ": " name)
- (while args
- (insert " " (upcase (car args)))
- (setq args (cdr args)))))
-
-;; @defivar: Specialized object-oriented
-(put 'defivar 'texinfo-deffn-formatting-property 'texinfo-format-defivar)
-(put 'defivarx 'texinfo-deffn-formatting-property 'texinfo-format-defivar)
-(defun texinfo-format-defivar (parsed-args)
- ;; Specialized object oriented entity:
- ;; @defivar class name
- ;; In Info, `Instance variable of class: name'
- ;; Note: args in upper case; use of `of'
- ;; Use cdr of texinfo-defun-type to determine category:
- (let ((category (car (cdr texinfo-defun-type)))
- (class (car parsed-args))
- (name (car (cdr parsed-args)))
- (args (cdr (cdr parsed-args))))
- (insert " -- " category " of " class ": " name)
- (while args
- (insert " " (upcase (car args)))
- (setq args (cdr args)))))
-
-
-;;; Indexing for definitions
-
-;; An index entry has three parts: the `entry proper', the node name, and the
-;; line number. Depending on the which command is used, the entry is
-;; formatted differently:
-;;
-;; @defun,
-;; @defmac,
-;; @defspec,
-;; @defvar,
-;; @defopt all use their 1st argument as the entry-proper
-;;
-;; @deffn,
-;; @defvr,
-;; @deftp
-;; @deftypefun
-;; @deftypevar all use their 2nd argument as the entry-proper
-;;
-;; @deftypefn,
-;; @deftypevr both use their 3rd argument as the entry-proper
-;;
-;; @defmethod uses its 2nd and 1st arguments as an entry-proper
-;; formatted: NAME on CLASS
-
-;; @defop uses its 3rd and 2nd arguments as an entry-proper
-;; formatted: NAME on CLASS
-;;
-;; @defivar uses its 2nd and 1st arguments as an entry-proper
-;; formatted: NAME of CLASS
-;;
-;; @defcv uses its 3rd and 2nd argument as an entry-proper
-;; formatted: NAME of CLASS
-
-(put 'defun 'texinfo-defun-indexing-property 'texinfo-index-defun)
-(put 'defunx 'texinfo-defun-indexing-property 'texinfo-index-defun)
-(put 'defmac 'texinfo-defun-indexing-property 'texinfo-index-defun)
-(put 'defmacx 'texinfo-defun-indexing-property 'texinfo-index-defun)
-(put 'defspec 'texinfo-defun-indexing-property 'texinfo-index-defun)
-(put 'defspecx 'texinfo-defun-indexing-property 'texinfo-index-defun)
-(put 'defvar 'texinfo-defun-indexing-property 'texinfo-index-defun)
-(put 'defvarx 'texinfo-defun-indexing-property 'texinfo-index-defun)
-(put 'defopt 'texinfo-defun-indexing-property 'texinfo-index-defun)
-(put 'defoptx 'texinfo-defun-indexing-property 'texinfo-index-defun)
-(defun texinfo-index-defun (parsed-args)
- ;; use 1st parsed-arg as entry-proper
- ;; `index-list' will be texinfo-findex or the like
- (let ((index-list (get texinfo-command-name 'texinfo-defun-index)))
- (set index-list
- (cons
- ;; Three elements: entry-proper, node-name, line-number
- (list
- (car parsed-args)
- texinfo-last-node
- ;; Region formatting may not provide last node position.
- (if texinfo-last-node-pos
- (1+ (count-lines texinfo-last-node-pos (point)))
- 1))
- (symbol-value index-list)))))
-
-(put 'deffn 'texinfo-defun-indexing-property 'texinfo-index-deffn)
-(put 'deffnx 'texinfo-defun-indexing-property 'texinfo-index-deffn)
-(put 'defvr 'texinfo-defun-indexing-property 'texinfo-index-deffn)
-(put 'defvrx 'texinfo-defun-indexing-property 'texinfo-index-deffn)
-(put 'deftp 'texinfo-defun-indexing-property 'texinfo-index-deffn)
-(put 'deftpx 'texinfo-defun-indexing-property 'texinfo-index-deffn)
-(put 'deftypefun 'texinfo-defun-indexing-property 'texinfo-index-deffn)
-(put 'deftypefunx 'texinfo-defun-indexing-property 'texinfo-index-deffn)
-(put 'deftypevar 'texinfo-defun-indexing-property 'texinfo-index-deffn)
-(put 'deftypevarx 'texinfo-defun-indexing-property 'texinfo-index-deffn)
-(defun texinfo-index-deffn (parsed-args)
- ;; use 2nd parsed-arg as entry-proper
- ;; `index-list' will be texinfo-findex or the like
- (let ((index-list (get texinfo-command-name 'texinfo-defun-index)))
- (set index-list
- (cons
- ;; Three elements: entry-proper, node-name, line-number
- (list
- (car (cdr parsed-args))
- texinfo-last-node
- ;; Region formatting may not provide last node position.
- (if texinfo-last-node-pos
- (1+ (count-lines texinfo-last-node-pos (point)))
- 1))
- (symbol-value index-list)))))
-
-(put 'deftypefn 'texinfo-defun-indexing-property 'texinfo-index-deftypefn)
-(put 'deftypefnx 'texinfo-defun-indexing-property 'texinfo-index-deftypefn)
-(put 'deftypevr 'texinfo-defun-indexing-property 'texinfo-index-deftypefn)
-(put 'deftypevrx 'texinfo-defun-indexing-property 'texinfo-index-deftypefn)
-(defun texinfo-index-deftypefn (parsed-args)
- ;; use 3rd parsed-arg as entry-proper
- ;; `index-list' will be texinfo-findex or the like
- (let ((index-list (get texinfo-command-name 'texinfo-defun-index)))
- (set index-list
- (cons
- ;; Three elements: entry-proper, node-name, line-number
- (list
- (car (cdr (cdr parsed-args)))
- texinfo-last-node
- ;; Region formatting may not provide last node position.
- (if texinfo-last-node-pos
- (1+ (count-lines texinfo-last-node-pos (point)))
- 1))
- (symbol-value index-list)))))
-
-(put 'defmethod 'texinfo-defun-indexing-property 'texinfo-index-defmethod)
-(put 'defmethodx 'texinfo-defun-indexing-property 'texinfo-index-defmethod)
-(defun texinfo-index-defmethod (parsed-args)
- ;; use 2nd on 1st parsed-arg as entry-proper
- ;; `index-list' will be texinfo-findex or the like
- (let ((index-list (get texinfo-command-name 'texinfo-defun-index)))
- (set index-list
- (cons
- ;; Three elements: entry-proper, node-name, line-number
- (list
- (format "%s on %s"
- (car (cdr parsed-args))
- (car parsed-args))
- texinfo-last-node
- ;; Region formatting may not provide last node position.
- (if texinfo-last-node-pos
- (1+ (count-lines texinfo-last-node-pos (point)))
- 1))
- (symbol-value index-list)))))
-
-(put 'defop 'texinfo-defun-indexing-property 'texinfo-index-defop)
-(put 'defopx 'texinfo-defun-indexing-property 'texinfo-index-defop)
-(defun texinfo-index-defop (parsed-args)
- ;; use 3rd on 2nd parsed-arg as entry-proper
- ;; `index-list' will be texinfo-findex or the like
- (let ((index-list (get texinfo-command-name 'texinfo-defun-index)))
- (set index-list
- (cons
- ;; Three elements: entry-proper, node-name, line-number
- (list
- (format "%s on %s"
- (car (cdr (cdr parsed-args)))
- (car (cdr parsed-args)))
- texinfo-last-node
- ;; Region formatting may not provide last node position.
- (if texinfo-last-node-pos
- (1+ (count-lines texinfo-last-node-pos (point)))
- 1))
- (symbol-value index-list)))))
-
-(put 'defivar 'texinfo-defun-indexing-property 'texinfo-index-defivar)
-(put 'defivarx 'texinfo-defun-indexing-property 'texinfo-index-defivar)
-(defun texinfo-index-defivar (parsed-args)
- ;; use 2nd of 1st parsed-arg as entry-proper
- ;; `index-list' will be texinfo-findex or the like
- (let ((index-list (get texinfo-command-name 'texinfo-defun-index)))
- (set index-list
- (cons
- ;; Three elements: entry-proper, node-name, line-number
- (list
- (format "%s of %s"
- (car (cdr parsed-args))
- (car parsed-args))
- texinfo-last-node
- ;; Region formatting may not provide last node position.
- (if texinfo-last-node-pos
- (1+ (count-lines texinfo-last-node-pos (point)))
- 1))
- (symbol-value index-list)))))
-
-(put 'defcv 'texinfo-defun-indexing-property 'texinfo-index-defcv)
-(put 'defcvx 'texinfo-defun-indexing-property 'texinfo-index-defcv)
-(defun texinfo-index-defcv (parsed-args)
- ;; use 3rd of 2nd parsed-arg as entry-proper
- ;; `index-list' will be texinfo-findex or the like
- (let ((index-list (get texinfo-command-name 'texinfo-defun-index)))
- (set index-list
- (cons
- ;; Three elements: entry-proper, node-name, line-number
- (list
- (format "%s of %s"
- (car (cdr (cdr parsed-args)))
- (car (cdr parsed-args)))
- texinfo-last-node
- ;; Region formatting may not provide last node position.
- (if texinfo-last-node-pos
- (1+ (count-lines texinfo-last-node-pos (point)))
- 1))
- (symbol-value index-list)))))
-
-
-;;; Properties for definitions
-
-;; Each definition command has six properties:
-;;
-;; 1. texinfo-deffn-formatting-property to format definition line
-;; 2. texinfo-defun-indexing-property to create index entry
-;; 3. texinfo-format formatting command
-;; 4. texinfo-end end formatting command
-;; 5. texinfo-defun-type type of deffn to format
-;; 6. texinfo-defun-index type of index to use
-;;
-;; The `x' forms of each definition command are used for the second
-;; and subsequent header lines.
-
-;; The texinfo-deffn-formatting-property and texinfo-defun-indexing-property
-;; are listed just before the appropriate formatting and indexing commands.
-
-(put 'deffn 'texinfo-format 'texinfo-format-defun)
-(put 'deffnx 'texinfo-format 'texinfo-format-defunx)
-(put 'deffn 'texinfo-end 'texinfo-end-defun)
-(put 'deffn 'texinfo-defun-type '('deffn-type nil))
-(put 'deffnx 'texinfo-defun-type '('deffn-type nil))
-(put 'deffn 'texinfo-defun-index 'texinfo-findex)
-(put 'deffnx 'texinfo-defun-index 'texinfo-findex)
-
-(put 'defun 'texinfo-format 'texinfo-format-defun)
-(put 'defunx 'texinfo-format 'texinfo-format-defunx)
-(put 'defun 'texinfo-end 'texinfo-end-defun)
-(put 'defun 'texinfo-defun-type '('defun-type "Function"))
-(put 'defunx 'texinfo-defun-type '('defun-type "Function"))
-(put 'defun 'texinfo-defun-index 'texinfo-findex)
-(put 'defunx 'texinfo-defun-index 'texinfo-findex)
-
-(put 'defmac 'texinfo-format 'texinfo-format-defun)
-(put 'defmacx 'texinfo-format 'texinfo-format-defunx)
-(put 'defmac 'texinfo-end 'texinfo-end-defun)
-(put 'defmac 'texinfo-defun-type '('defun-type "Macro"))
-(put 'defmacx 'texinfo-defun-type '('defun-type "Macro"))
-(put 'defmac 'texinfo-defun-index 'texinfo-findex)
-(put 'defmacx 'texinfo-defun-index 'texinfo-findex)
-
-(put 'defspec 'texinfo-format 'texinfo-format-defun)
-(put 'defspecx 'texinfo-format 'texinfo-format-defunx)
-(put 'defspec 'texinfo-end 'texinfo-end-defun)
-(put 'defspec 'texinfo-defun-type '('defun-type "Special form"))
-(put 'defspecx 'texinfo-defun-type '('defun-type "Special form"))
-(put 'defspec 'texinfo-defun-index 'texinfo-findex)
-(put 'defspecx 'texinfo-defun-index 'texinfo-findex)
-
-(put 'defvr 'texinfo-format 'texinfo-format-defun)
-(put 'defvrx 'texinfo-format 'texinfo-format-defunx)
-(put 'defvr 'texinfo-end 'texinfo-end-defun)
-(put 'defvr 'texinfo-defun-type '('deffn-type nil))
-(put 'defvrx 'texinfo-defun-type '('deffn-type nil))
-(put 'defvr 'texinfo-defun-index 'texinfo-vindex)
-(put 'defvrx 'texinfo-defun-index 'texinfo-vindex)
-
-(put 'defvar 'texinfo-format 'texinfo-format-defun)
-(put 'defvarx 'texinfo-format 'texinfo-format-defunx)
-(put 'defvar 'texinfo-end 'texinfo-end-defun)
-(put 'defvar 'texinfo-defun-type '('defun-type "Variable"))
-(put 'defvarx 'texinfo-defun-type '('defun-type "Variable"))
-(put 'defvar 'texinfo-defun-index 'texinfo-vindex)
-(put 'defvarx 'texinfo-defun-index 'texinfo-vindex)
-
-(put 'defconst 'texinfo-format 'texinfo-format-defun)
-(put 'defconstx 'texinfo-format 'texinfo-format-defunx)
-(put 'defconst 'texinfo-end 'texinfo-end-defun)
-(put 'defconst 'texinfo-defun-type '('defun-type "Constant"))
-(put 'defconstx 'texinfo-defun-type '('defun-type "Constant"))
-(put 'defconst 'texinfo-defun-index 'texinfo-vindex)
-(put 'defconstx 'texinfo-defun-index 'texinfo-vindex)
-
-(put 'defcmd 'texinfo-format 'texinfo-format-defun)
-(put 'defcmdx 'texinfo-format 'texinfo-format-defunx)
-(put 'defcmd 'texinfo-end 'texinfo-end-defun)
-(put 'defcmd 'texinfo-defun-type '('defun-type "Command"))
-(put 'defcmdx 'texinfo-defun-type '('defun-type "Command"))
-(put 'defcmd 'texinfo-defun-index 'texinfo-findex)
-(put 'defcmdx 'texinfo-defun-index 'texinfo-findex)
-
-(put 'defopt 'texinfo-format 'texinfo-format-defun)
-(put 'defoptx 'texinfo-format 'texinfo-format-defunx)
-(put 'defopt 'texinfo-end 'texinfo-end-defun)
-(put 'defopt 'texinfo-defun-type '('defun-type "User Option"))
-(put 'defoptx 'texinfo-defun-type '('defun-type "User Option"))
-(put 'defopt 'texinfo-defun-index 'texinfo-vindex)
-(put 'defoptx 'texinfo-defun-index 'texinfo-vindex)
-
-(put 'deftp 'texinfo-format 'texinfo-format-defun)
-(put 'deftpx 'texinfo-format 'texinfo-format-defunx)
-(put 'deftp 'texinfo-end 'texinfo-end-defun)
-(put 'deftp 'texinfo-defun-type '('deftp-type nil))
-(put 'deftpx 'texinfo-defun-type '('deftp-type nil))
-(put 'deftp 'texinfo-defun-index 'texinfo-tindex)
-(put 'deftpx 'texinfo-defun-index 'texinfo-tindex)
-
-;;; Object-oriented stuff is a little hairier.
-
-(put 'defop 'texinfo-format 'texinfo-format-defun)
-(put 'defopx 'texinfo-format 'texinfo-format-defunx)
-(put 'defop 'texinfo-end 'texinfo-end-defun)
-(put 'defop 'texinfo-defun-type '('defop-type nil))
-(put 'defopx 'texinfo-defun-type '('defop-type nil))
-(put 'defop 'texinfo-defun-index 'texinfo-findex)
-(put 'defopx 'texinfo-defun-index 'texinfo-findex)
-
-(put 'defmethod 'texinfo-format 'texinfo-format-defun)
-(put 'defmethodx 'texinfo-format 'texinfo-format-defunx)
-(put 'defmethod 'texinfo-end 'texinfo-end-defun)
-(put 'defmethod 'texinfo-defun-type '('defmethod-type "Method"))
-(put 'defmethodx 'texinfo-defun-type '('defmethod-type "Method"))
-(put 'defmethod 'texinfo-defun-index 'texinfo-findex)
-(put 'defmethodx 'texinfo-defun-index 'texinfo-findex)
-
-(put 'defcv 'texinfo-format 'texinfo-format-defun)
-(put 'defcvx 'texinfo-format 'texinfo-format-defunx)
-(put 'defcv 'texinfo-end 'texinfo-end-defun)
-(put 'defcv 'texinfo-defun-type '('defop-type nil))
-(put 'defcvx 'texinfo-defun-type '('defop-type nil))
-(put 'defcv 'texinfo-defun-index 'texinfo-vindex)
-(put 'defcvx 'texinfo-defun-index 'texinfo-vindex)
-
-(put 'defivar 'texinfo-format 'texinfo-format-defun)
-(put 'defivarx 'texinfo-format 'texinfo-format-defunx)
-(put 'defivar 'texinfo-end 'texinfo-end-defun)
-(put 'defivar 'texinfo-defun-type '('defmethod-type "Instance variable"))
-(put 'defivarx 'texinfo-defun-type '('defmethod-type "Instance variable"))
-(put 'defivar 'texinfo-defun-index 'texinfo-vindex)
-(put 'defivarx 'texinfo-defun-index 'texinfo-vindex)
-
-;;; Typed functions and variables
-
-(put 'deftypefn 'texinfo-format 'texinfo-format-defun)
-(put 'deftypefnx 'texinfo-format 'texinfo-format-defunx)
-(put 'deftypefn 'texinfo-end 'texinfo-end-defun)
-(put 'deftypefn 'texinfo-defun-type '('deftypefn-type nil))
-(put 'deftypefnx 'texinfo-defun-type '('deftypefn-type nil))
-(put 'deftypefn 'texinfo-defun-index 'texinfo-findex)
-(put 'deftypefnx 'texinfo-defun-index 'texinfo-findex)
-
-(put 'deftypefun 'texinfo-format 'texinfo-format-defun)
-(put 'deftypefunx 'texinfo-format 'texinfo-format-defunx)
-(put 'deftypefun 'texinfo-end 'texinfo-end-defun)
-(put 'deftypefun 'texinfo-defun-type '('deftypefun-type "Function"))
-(put 'deftypefunx 'texinfo-defun-type '('deftypefun-type "Function"))
-(put 'deftypefun 'texinfo-defun-index 'texinfo-findex)
-(put 'deftypefunx 'texinfo-defun-index 'texinfo-findex)
-
-(put 'deftypevr 'texinfo-format 'texinfo-format-defun)
-(put 'deftypevrx 'texinfo-format 'texinfo-format-defunx)
-(put 'deftypevr 'texinfo-end 'texinfo-end-defun)
-(put 'deftypevr 'texinfo-defun-type '('deftypefn-type nil))
-(put 'deftypevrx 'texinfo-defun-type '('deftypefn-type nil))
-(put 'deftypevr 'texinfo-defun-index 'texinfo-vindex)
-(put 'deftypevrx 'texinfo-defun-index 'texinfo-vindex)
-
-(put 'deftypevar 'texinfo-format 'texinfo-format-defun)
-(put 'deftypevarx 'texinfo-format 'texinfo-format-defunx)
-(put 'deftypevar 'texinfo-end 'texinfo-end-defun)
-(put 'deftypevar 'texinfo-defun-type '('deftypevar-type "Variable"))
-(put 'deftypevarx 'texinfo-defun-type '('deftypevar-type "Variable"))
-(put 'deftypevar 'texinfo-defun-index 'texinfo-vindex)
-(put 'deftypevarx 'texinfo-defun-index 'texinfo-vindex)
-
-
-;;; @set, @clear, @ifset, @ifclear
-
-;; If a flag is set with @set FLAG, then text between @ifset and @end
-;; ifset is formatted normally, but if the flag is cleared with
-;; @clear FLAG, then the text is not formatted; it is ignored.
-
-;; If a flag is cleared with @clear FLAG, then text between @ifclear
-;; and @end ifclear is formatted normally, but if the flag is set with
-;; @set FLAG, then the text is not formatted; it is ignored. @ifclear
-;; is the opposite of @ifset.
-
-;; If a flag is set to a string with @set FLAG,
-;; replace @value{FLAG} with the string.
-;; If a flag with a value is cleared,
-;; @value{FLAG} is invalid,
-;; as if there had never been any @set FLAG previously.
-
-(put 'clear 'texinfo-format 'texinfo-clear)
-(defun texinfo-clear ()
- "Clear the value of the flag."
- (let* ((arg (texinfo-parse-arg-discard))
- (flag (car (read-from-string arg)))
- (value (substring arg (cdr (read-from-string arg)))))
- (put flag 'texinfo-whether-setp 'flag-cleared)
- (put flag 'texinfo-set-value "")))
-
-(put 'set 'texinfo-format 'texinfo-set)
-(defun texinfo-set ()
- "Set the value of the flag, optionally to a string.
-The command `@set foo This is a string.'
-sets flag foo to the value: `This is a string.'
-The command `@value{foo}' expands to the value."
- (let* ((arg (texinfo-parse-arg-discard))
- (flag (car (read-from-string arg)))
- (value (substring arg (cdr (read-from-string arg)))))
- (put flag 'texinfo-whether-setp 'flag-set)
- (put flag 'texinfo-set-value value)))
-
-(put 'value 'texinfo-format 'texinfo-value)
-(defun texinfo-value ()
- "Insert the string to which the flag is set.
-The command `@set foo This is a string.'
-sets flag foo to the value: `This is a string.'
-The command `@value{foo}' expands to the value."
- (let ((arg (texinfo-parse-arg-discard)))
- (cond ((and
- (eq (get (car (read-from-string arg)) 'texinfo-whether-setp)
- 'flag-set)
- (get (car (read-from-string arg)) 'texinfo-set-value))
- (insert (get (car (read-from-string arg)) 'texinfo-set-value)))
- ((eq (get (car (read-from-string arg)) 'texinfo-whether-setp)
- 'flag-cleared)
- (insert (format "{No value for \"%s\"}" arg)))
- ((eq (get (car (read-from-string arg)) 'texinfo-whether-setp) nil)
- (insert (format "{No value for \"%s\"}" arg))))))
-
-(put 'ifset 'texinfo-end 'texinfo-discard-command)
-(put 'ifset 'texinfo-format 'texinfo-if-set)
-(defun texinfo-if-set ()
- "If set, continue formatting; else do not format region up to @end ifset"
- (let ((arg (texinfo-parse-arg-discard)))
- (cond
- ((eq (get (car (read-from-string arg)) 'texinfo-whether-setp)
- 'flag-set)
- ;; Format the text (i.e., do not remove it); do nothing here.
- ())
- ((eq (get (car (read-from-string arg)) 'texinfo-whether-setp)
- 'flag-cleared)
- ;; Clear region (i.e., cause the text to be ignored).
- (delete-region texinfo-command-start
- (progn (re-search-forward "@end ifset[ \t]*\n")
- (point))))
- ((eq (get (car (read-from-string arg)) 'texinfo-whether-setp)
- nil)
- ;; In this case flag is neither set nor cleared.
- ;; Act as if set, i.e. do nothing.
- ()))))
-
-(put 'ifclear 'texinfo-end 'texinfo-discard-command)
-(put 'ifclear 'texinfo-format 'texinfo-if-clear)
-(defun texinfo-if-clear ()
- "If clear, continue formatting; if set, do not format up to @end ifset"
- (let ((arg (texinfo-parse-arg-discard)))
- (cond
- ((eq (get (car (read-from-string arg)) 'texinfo-whether-setp)
- 'flag-set)
- ;; Clear region (i.e., cause the text to be ignored).
- (delete-region texinfo-command-start
- (progn (re-search-forward "@end ifclear[ \t]*\n")
- (point))))
- ((eq (get (car (read-from-string arg)) 'texinfo-whether-setp)
- 'flag-cleared)
- ;; Format the text (i.e., do not remove it); do nothing here.
- ())
- ((eq (get (car (read-from-string arg)) 'texinfo-whether-setp)
- nil)
- ;; In this case flag is neither set nor cleared.
- ;; Act as if clear, i.e. do nothing.
- ()))))
-
-;;; @ifeq
-
-(put 'ifeq 'texinfo-format 'texinfo-format-ifeq)
-(defun texinfo-format-ifeq ()
- "If ARG1 and ARG2 caselessly string compare to same string, perform COMMAND.
-Otherwise produces no output.
-
-Thus:
- @ifeq{ arg1 , arg1 , @code{foo}} bar
-
- ==> `foo' bar.
-but
- @ifeq{ arg1 , arg2 , @code{foo}} bar
-
- ==> bar
-
-Note that the Texinfo command and its arguments must be arguments to
-the @ifeq command."
- ;; compare-buffer-substrings does not exist in version 18; don't use
- (goto-char texinfo-command-end)
- (let* ((case-fold-search t)
- (stop (save-excursion (forward-sexp 1) (point)))
- start end
- ;; @ifeq{arg1, arg2, @command{optional-args}}
- (arg1
- (progn
- (forward-char 1)
- (skip-chars-forward " ")
- (setq start (point))
- (search-forward "," stop t)
- (skip-chars-backward ", ")
- (buffer-substring start (point))))
- (arg2
- (progn
- (search-forward "," stop t)
- (skip-chars-forward " ")
- (setq start (point))
- (search-forward "," stop t)
- (skip-chars-backward ", ")
- (buffer-substring start (point))))
- (texinfo-command
- (progn
- (search-forward "," stop t)
- (skip-chars-forward " ")
- (setq start (point))
- (goto-char (1- stop))
- (skip-chars-backward " ")
- (buffer-substring start (point)))))
- (delete-region texinfo-command-start stop)
- (if (equal arg1 arg2)
- (insert texinfo-command))
- (goto-char texinfo-command-start)))
-
-
-;;; Process included files: `@include' command
-
-;; Updated 19 October 1990
-;; In the original version, include files were ignored by Info but
-;; incorporated in to the printed manual. To make references to the
-;; included file, the Texinfo source file has to refer to the included
-;; files using the `(filename)nodename' format for referring to other
-;; Info files. Also, the included files had to be formatted on their
-;; own. It was just like they were another file.
-
-;; Currently, include files are inserted into the buffer that is
-;; formatted for Info. If large, the resulting info file is split and
-;; tagified. For current include files to work, the master menu must
-;; refer to all the nodes, and the highest level nodes in the include
-;; files must have the correct next, prev, and up pointers.
-
-;; The included file may have an @setfilename and even an @settitle,
-;; but not an `\input texinfo' line.
-
-;; Updated 24 March 1993
-;; In order for @raisesections and @lowersections to work, included
-;; files must be inserted into the buffer holding the outer file
-;; before other Info formatting takes place. So @include is no longer
-;; is treated like other @-commands.
-(put 'include 'texinfo-format 'texinfo-format-noop)
-
-;; Original definition:
-;; (defun texinfo-format-include ()
-;; (let ((filename (texinfo-parse-arg-discard))
-;; (default-directory input-directory)
-;; subindex)
-;; (setq subindex
-;; (save-excursion
-;; (progn (find-file
-;; (cond ((file-readable-p (concat filename ".texinfo"))
-;; (concat filename ".texinfo"))
-;; ((file-readable-p (concat filename ".texi"))
-;; (concat filename ".texi"))
-;; ((file-readable-p (concat filename ".tex"))
-;; (concat filename ".tex"))
-;; ((file-readable-p filename)
-;; filename)
-;; (t (error "@include'd file %s not found"
-;; filename))))
-;; (texinfo-format-buffer-1))))
-;; (texinfo-subindex 'texinfo-vindex (car subindex) (nth 1 subindex))
-;; (texinfo-subindex 'texinfo-findex (car subindex) (nth 2 subindex))
-;; (texinfo-subindex 'texinfo-cindex (car subindex) (nth 3 subindex))
-;; (texinfo-subindex 'texinfo-pindex (car subindex) (nth 4 subindex))
-;; (texinfo-subindex 'texinfo-tindex (car subindex) (nth 5 subindex))
-;; (texinfo-subindex 'texinfo-kindex (car subindex) (nth 6 subindex))))
-;;
-;;(defun texinfo-subindex (indexvar file content)
-;; (set indexvar (cons (list 'recurse file content)
-;; (symbol-value indexvar))))
-
-;; Second definition:
-;; (put 'include 'texinfo-format 'texinfo-format-include)
-;; (defun texinfo-format-include ()
-;; (let ((filename (concat input-directory
-;; (texinfo-parse-arg-discard)))
-;; (default-directory input-directory))
-;; (message "Reading: %s" filename)
-;; (save-excursion
-;; (save-restriction
-;; (narrow-to-region
-;; (point)
-;; (+ (point) (car (cdr (insert-file-contents filename)))))
-;; (goto-char (point-min))
-;; (texinfo-append-refill)
-;; (texinfo-format-convert (point-min) (point-max))))
-;; (setq last-input-buffer input-buffer) ; to bypass setfilename
-;; ))
-
-
-;;; Numerous commands do nothing in Info
-;; These commands are defined in texinfo.tex for printed output.
-
-
-;;; various noops, such as @b{foo}, that take arguments in braces
-
-(put 'b 'texinfo-format 'texinfo-format-noop)
-(put 'i 'texinfo-format 'texinfo-format-noop)
-(put 'r 'texinfo-format 'texinfo-format-noop)
-(put 't 'texinfo-format 'texinfo-format-noop)
-(put 'w 'texinfo-format 'texinfo-format-noop)
-(put 'asis 'texinfo-format 'texinfo-format-noop)
-(put 'dmn 'texinfo-format 'texinfo-format-noop)
-(put 'math 'texinfo-format 'texinfo-format-noop)
-(put 'titlefont 'texinfo-format 'texinfo-format-noop)
-(defun texinfo-format-noop ()
- (insert (texinfo-parse-arg-discard))
- (goto-char texinfo-command-start))
-
-;; @hyphenation command discards an argument within braces
-(put 'hyphenation 'texinfo-format 'texinfo-discard-command-and-arg)
-(defun texinfo-discard-command-and-arg ()
- "Discard both @-command and its argument in braces."
- (goto-char texinfo-command-end)
- (forward-list 1)
- (setq texinfo-command-end (point))
- (delete-region texinfo-command-start texinfo-command-end))
-
-
-;;; Do nothing commands, such as @smallbook, that have no args and no braces
-;; These must appear on a line of their own
-
-(put 'bye 'texinfo-format 'texinfo-discard-line)
-(put 'smallbook 'texinfo-format 'texinfo-discard-line)
-(put 'finalout 'texinfo-format 'texinfo-discard-line)
-(put 'overfullrule 'texinfo-format 'texinfo-discard-line)
-(put 'smallbreak 'texinfo-format 'texinfo-discard-line)
-(put 'medbreak 'texinfo-format 'texinfo-discard-line)
-(put 'bigbreak 'texinfo-format 'texinfo-discard-line)
-
-
-;;; These noop commands discard the rest of the line.
-
-(put 'c 'texinfo-format 'texinfo-discard-line-with-args)
-(put 'comment 'texinfo-format 'texinfo-discard-line-with-args)
-(put 'contents 'texinfo-format 'texinfo-discard-line-with-args)
-(put 'group 'texinfo-end 'texinfo-discard-line-with-args)
-(put 'group 'texinfo-format 'texinfo-discard-line-with-args)
-(put 'headings 'texinfo-format 'texinfo-discard-line-with-args)
-(put 'setchapterstyle 'texinfo-format 'texinfo-discard-line-with-args)
-(put 'hsize 'texinfo-format 'texinfo-discard-line-with-args)
-(put 'itemindent 'texinfo-format 'texinfo-discard-line-with-args)
-(put 'lispnarrowing 'texinfo-format 'texinfo-discard-line-with-args)
-(put 'need 'texinfo-format 'texinfo-discard-line-with-args)
-(put 'nopara 'texinfo-format 'texinfo-discard-line-with-args)
-(put 'page 'texinfo-format 'texinfo-discard-line-with-args)
-(put 'parindent 'texinfo-format 'texinfo-discard-line-with-args)
-(put 'setchapternewpage 'texinfo-format 'texinfo-discard-line-with-args)
-(put 'setq 'texinfo-format 'texinfo-discard-line-with-args)
-(put 'settitle 'texinfo-format 'texinfo-discard-line-with-args)
-(put 'setx 'texinfo-format 'texinfo-discard-line-with-args)
-(put 'shortcontents 'texinfo-format 'texinfo-discard-line-with-args)
-(put 'shorttitlepage 'texinfo-format 'texinfo-discard-line-with-args)
-(put 'summarycontents 'texinfo-format 'texinfo-discard-line-with-args)
-(put 'input 'texinfo-format 'texinfo-discard-line-with-args)
-(put 'dircategory 'texinfo-format 'texinfo-discard-line-with-args)
-
-
-;;; Some commands cannot be handled
-
-(defun texinfo-unsupported ()
- (error "%s is not handled by texinfo"
- (buffer-substring texinfo-command-start texinfo-command-end)))
-
-;;; Batch formatting
-
-(defun batch-texinfo-format ()
- "Runs texinfo-format-buffer on the files remaining on the command line.
-Must be used only with -batch, and kills emacs on completion.
-Each file will be processed even if an error occurred previously.
-For example, invoke
- \"emacs -batch -funcall batch-texinfo-format $docs/ ~/*.texinfo\"."
- (if (not noninteractive)
- (error "batch-texinfo-format may only be used -batch."))
- (let ((version-control t)
- (auto-save-default nil)
- (find-file-run-dired nil)
- (kept-old-versions 259259)
- (kept-new-versions 259259))
- (let ((error 0)
- file
- (files ()))
- (while command-line-args-left
- (setq file (expand-file-name (car command-line-args-left)))
- (cond ((not (file-exists-p file))
- (message ">> %s does not exist!" file)
- (setq error 1
- command-line-args-left (cdr command-line-args-left)))
- ((file-directory-p file)
- (setq command-line-args-left
- (nconc (directory-files file)
- (cdr command-line-args-left))))
- (t
- (setq files (cons file files)
- command-line-args-left (cdr command-line-args-left)))))
- (while files
- (setq file (car files)
- files (cdr files))
- (condition-case err
- (progn
- (if buffer-file-name (kill-buffer (current-buffer)))
- (find-file file)
- (buffer-disable-undo (current-buffer))
- (set-buffer-modified-p nil)
- (texinfo-mode)
- (message "texinfo formatting %s..." file)
- (texinfo-format-buffer nil)
- (if (buffer-modified-p)
- (progn (message "Saving modified %s" (buffer-file-name))
- (save-buffer))))
- (error
- (message ">> Error: %s" (prin1-to-string err))
- (message ">> point at")
- (let ((s (buffer-substring (point)
- (min (+ (point) 100)
- (point-max))))
- (tem 0))
- (while (setq tem (string-match "\n+" s tem))
- (setq s (concat (substring s 0 (match-beginning 0))
- "\n>> "
- (substring s (match-end 0)))
- tem (1+ tem)))
- (message ">> %s" s))
- (setq error 1))))
- (kill-emacs error))))
-
-
-;;; Place `provide' at end of file.
-(provide 'texinfmt)
-
-;;; texinfmt.el ends here.
diff --git a/texinfo/emacs/texinfo.el b/texinfo/emacs/texinfo.el
deleted file mode 100644
index 9e1099f4b88..00000000000
--- a/texinfo/emacs/texinfo.el
+++ /dev/null
@@ -1,874 +0,0 @@
-;;; texinfo.el --- major mode for editing Texinfo files
-
-;; Copyright (C) 1985, '88, '89, '90, '91,
-;; '92, '93, '96, '97 Free Software Foundation, Inc.
-
-;; Author: Robert J. Chassell
-;; Date: [Set date below for texinfo-version]
-;; Maintainer: bug-texinfo@prep.ai.mit.edu
-;; Keywords: maint, tex, docs
-
-;; This file is part of GNU Emacs.
-
-;; GNU Emacs is free software; you can redistribute it and/or modify
-;; it under the terms of the GNU General Public License as published by
-;; the Free Software Foundation; either version 2, or (at your option)
-;; any later version.
-
-;; GNU Emacs is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-;; GNU General Public License for more details.
-
-;; You should have received a copy of the GNU General Public License
-;; along with GNU Emacs; see the file COPYING. If not, write to the
-;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-;; Boston, MA 02111-1307, USA.
-
-;;; Code:
-
-(defgroup texinfo nil
- "Texinfo Mode"
- :group 'docs)
-
-(defvar texinfo-version "2.37 of 24 May 1997")
-
-(defun texinfo-version (&optional here)
- "Show the version of texinfo.el in the minibuffer.
-If optional argument HERE is non-nil, insert info at point."
- (interactive "P")
- (let ((version-string
- (format "Version of \`texinfo.el\': %s" texinfo-version)))
- (if here
- (insert version-string)
- (if (interactive-p)
- (message "%s" version-string)
- version-string))))
-
-
-;;; Autoloads:
-
-(autoload 'makeinfo-region
- "makeinfo"
- "Make Info file from region of current Texinfo file, and switch to it.
-
-This command does not offer the `next-error' feature since it would
-apply to a temporary file, not the original; use the `makeinfo-buffer'
-command to gain use of `next-error'."
- t nil)
-
-(autoload 'makeinfo-buffer
- "makeinfo"
- "Make Info file from current buffer.
-
-Use the \\[next-error] command to move to the next error
-\(if there are errors\)."
- t nil)
-
-(autoload 'kill-compilation
- "compile"
- "Kill the process made by the \\[compile] command."
- t nil)
-
-(autoload 'makeinfo-recenter-compilation-buffer
- "makeinfo"
- "Redisplay `*compilation*' buffer so most recent output can be seen.
-The last line of the buffer is displayed on
-line LINE of the window, or centered if LINE is nil."
- t nil)
-
-(autoload 'texinfo-update-node
- "texnfo-upd"
- "Without any prefix argument, update the node in which point is located.
-Non-nil argument (prefix, if interactive) means update the nodes in the
-marked region.
-
-The functions for creating or updating nodes and menus, and their
-keybindings, are:
-
- texinfo-update-node (&optional region-p) \\[texinfo-update-node]
- texinfo-every-node-update () \\[texinfo-every-node-update]
- texinfo-sequential-node-update (&optional region-p)
-
- texinfo-make-menu (&optional region-p) \\[texinfo-make-menu]
- texinfo-all-menus-update () \\[texinfo-all-menus-update]
- texinfo-master-menu ()
-
- texinfo-indent-menu-description (column &optional region-p)
-
-The `texinfo-column-for-description' variable specifies the column to
-which menu descriptions are indented. Its default value is 32."
- t nil)
-
-(autoload 'texinfo-every-node-update
- "texnfo-upd"
- "Update every node in a Texinfo file."
- t nil)
-
-(autoload 'texinfo-sequential-node-update
- "texnfo-upd"
- "Update one node (or many) in a Texinfo file with sequential pointers.
-
-This function causes the `Next' or `Previous' pointer to point to the
-immediately preceding or following node, even if it is at a higher or
-lower hierarchical level in the document. Continually pressing `n' or
-`p' takes you straight through the file.
-
-Without any prefix argument, update the node in which point is located.
-Non-nil argument (prefix, if interactive) means update the nodes in the
-marked region.
-
-This command makes it awkward to navigate among sections and
-subsections; it should be used only for those documents that are meant
-to be read like a novel rather than a reference, and for which the
-Info `g*' command is inadequate."
- t nil)
-
-(autoload 'texinfo-make-menu
- "texnfo-upd"
- "Without any prefix argument, make or update a menu.
-Make the menu for the section enclosing the node found following point.
-
-Non-nil argument (prefix, if interactive) means make or update menus
-for nodes within or part of the marked region.
-
-Whenever a menu exists, and is being updated, the descriptions that
-are associated with node names in the pre-existing menu are
-incorporated into the new menu. Otherwise, the nodes' section titles
-are inserted as descriptions."
- t nil)
-
-(autoload 'texinfo-all-menus-update
- "texnfo-upd"
- "Update every regular menu in a Texinfo file.
-Remove pre-existing master menu, if there is one.
-
-If called with a non-nil argument, this function first updates all the
-nodes in the buffer before updating the menus."
- t nil)
-
-(autoload 'texinfo-master-menu
- "texnfo-upd"
- "Make a master menu for a whole Texinfo file.
-Non-nil argument (prefix, if interactive) means first update all
-existing nodes and menus. Remove pre-existing master menu, if there is one.
-
-This function creates a master menu that follows the top node. The
-master menu includes every entry from all the other menus. It
-replaces any existing ordinary menu that follows the top node.
-
-If called with a non-nil argument, this function first updates all the
-menus in the buffer (incorporating descriptions from pre-existing
-menus) before it constructs the master menu.
-
-The function removes the detailed part of an already existing master
-menu. This action depends on the pre-existing master menu using the
-standard `texinfo-master-menu-header'.
-
-The master menu has the following format, which is adapted from the
-recommendation in the Texinfo Manual:
-
- * The first part contains the major nodes in the Texinfo file: the
- nodes for the chapters, chapter-like sections, and the major
- appendices. This includes the indices, so long as they are in
- chapter-like sections, such as unnumbered sections.
-
- * The second and subsequent parts contain a listing of the other,
- lower level menus, in order. This way, an inquirer can go
- directly to a particular node if he or she is searching for
- specific information.
-
-Each of the menus in the detailed node listing is introduced by the
-title of the section containing the menu."
- t nil)
-
-(autoload 'texinfo-indent-menu-description
- "texnfo-upd"
- "Indent every description in menu following point to COLUMN.
-Non-nil argument (prefix, if interactive) means indent every
-description in every menu in the region. Does not indent second and
-subsequent lines of a multi-line description."
- t nil)
-
-(autoload 'texinfo-insert-node-lines
- "texnfo-upd"
- "Insert missing `@node' lines in region of Texinfo file.
-Non-nil argument (prefix, if interactive) means also to insert the
-section titles as node names; and also to insert the section titles as
-node names in pre-existing @node lines that lack names."
- t nil)
-
-(autoload 'texinfo-start-menu-description
- "texnfo-upd"
- "In this menu entry, insert the node's section title as a description.
-Position point at beginning of description ready for editing.
-Do not insert a title if the line contains an existing description.
-
-You will need to edit the inserted text since a useful description
-complements the node name rather than repeats it as a title does."
- t nil)
-
-(autoload 'texinfo-multiple-files-update
- "texnfo-upd"
- "Update first node pointers in each file included in OUTER-FILE;
-create or update main menu in the outer file that refers to such nodes.
-This does not create or update menus or pointers within the included files.
-
-With optional MAKE-MASTER-MENU argument (prefix arg, if interactive),
-insert a master menu in OUTER-FILE. This does not create or update
-menus or pointers within the included files.
-
-With optional UPDATE-EVERYTHING argument (numeric prefix arg, if
-interactive), update all the menus and all the `Next', `Previous', and
-`Up' pointers of all the files included in OUTER-FILE before inserting
-a master menu in OUTER-FILE.
-
-The command also updates the `Top' level node pointers of OUTER-FILE.
-
-Notes:
-
- * this command does NOT save any files--you must save the
- outer file and any modified, included files.
-
- * except for the `Top' node, this command does NOT handle any
- pre-existing nodes in the outer file; hence, indices must be
- enclosed in an included file.
-
-Requirements:
-
- * each of the included files must contain exactly one highest
- hierarchical level node,
- * this highest node must be the first node in the included file,
- * each highest hierarchical level node must be of the same type.
-
-Thus, normally, each included file contains one, and only one,
-chapter."
- t nil)
-
-
-;;; Code:
-
-;;; Don't you dare insert any `require' calls at top level in this file--rms.
-
-;;; Syntax table
-
-(defvar texinfo-mode-syntax-table nil)
-
-(if texinfo-mode-syntax-table
- nil
- (setq texinfo-mode-syntax-table (make-syntax-table))
- (modify-syntax-entry ?\" " " texinfo-mode-syntax-table)
- (modify-syntax-entry ?\\ " " texinfo-mode-syntax-table)
- (modify-syntax-entry ?@ "\\" texinfo-mode-syntax-table)
- (modify-syntax-entry ?\^q "\\" texinfo-mode-syntax-table)
- (modify-syntax-entry ?\[ "(]" texinfo-mode-syntax-table)
- (modify-syntax-entry ?\] ")[" texinfo-mode-syntax-table)
- (modify-syntax-entry ?{ "(}" texinfo-mode-syntax-table)
- (modify-syntax-entry ?} "){" texinfo-mode-syntax-table)
- (modify-syntax-entry ?\' "w" texinfo-mode-syntax-table))
-
-;; Written by Wolfgang Bangerth <zcg51122@rpool1.rus.uni-stuttgart.de>
-;; To override this example, set either `imenu-generic-expression'
-;; or `imenu-create-index-function'.
-(defvar texinfo-imenu-generic-expression
- '((nil "^@node[ \t]+\\([^,\n]*\\)" 1)
- ("Chapters" "^@chapter[ \t]+\\(.*\\)$" 1))
-
- "Imenu generic expression for TexInfo mode. See `imenu-generic-expression'.")
-
-(defvar texinfo-font-lock-keywords
- '(;; All but the first 2 had an OVERRIDE of t.
- ;; It didn't seem to be any better, and it's slower--simon.
- ("^\\(@c\\|@comment\\)\\>.*" . font-lock-comment-face) ;comments
- ;; Robert J. Chassell <bob@gnu.ai.mit.edu> says remove this line.
- ;;("\\$\\([^$]*\\)\\$" 1 font-lock-string-face t)
- ("@\\([a-zA-Z]+\\|[^ \t\n]\\)" 1 font-lock-keyword-face) ;commands
- ("^\\*\\(.*\\)[\t ]*$" 1 font-lock-function-name-face t) ;menu items
- ("@\\(emph\\|strong\\|b\\|i\\){\\([^}]+\\)" 2 font-lock-comment-face)
- ("@\\(file\\|kbd\\|key\\|url\\|email\\){\\([^}]+\\)" 2 font-lock-string-face)
- ("@\\(samp\\|code\\|var\\|math\\){\\([^}]+\\)"
- 2 font-lock-variable-name-face)
- ("@\\(cite\\|xref\\|pxref\\){\\([^}]+\\)" 2 font-lock-reference-face)
- ("@\\(end\\|itemx?\\) +\\(.+\\)" 2 font-lock-function-name-face keep)
- )
- "Additional expressions to highlight in TeXinfo mode.")
-
-(defvar texinfo-section-list
- '(("top" 1)
- ("majorheading" 1)
- ("chapter" 2)
- ("unnumbered" 2)
- ("appendix" 2)
- ("chapheading" 2)
- ("section" 3)
- ("unnumberedsec" 3)
- ("appendixsec" 3)
- ("heading" 3)
- ("subsection" 4)
- ("unnumberedsubsec" 4)
- ("appendixsubsec" 4)
- ("subheading" 4)
- ("subsubsection" 5)
- ("unnumberedsubsubsec" 5)
- ("appendixsubsubsec" 5)
- ("subsubheading" 5))
- "Alist of sectioning commands and their relative level.")
-
-(defun texinfo-outline-level ()
- ;; Calculate level of current texinfo outline heading.
- (save-excursion
- (if (bobp)
- 0
- (forward-char 1)
- (let* ((word (buffer-substring-no-properties
- (point) (progn (forward-word 1) (point))))
- (entry (assoc word texinfo-section-list)))
- (if entry
- (nth 1 entry)
- 5)))))
-
-
-;;; Keybindings
-(defvar texinfo-mode-map nil)
-
-;;; Keys common both to Texinfo mode and to TeX shell.
-
-(defun texinfo-define-common-keys (keymap)
- "Define the keys both in Texinfo mode and in the texinfo-tex-shell."
- (define-key keymap "\C-c\C-t\C-k" 'tex-kill-job)
- (define-key keymap "\C-c\C-t\C-x" 'texinfo-quit-job)
- (define-key keymap "\C-c\C-t\C-l" 'tex-recenter-output-buffer)
- (define-key keymap "\C-c\C-t\C-d" 'texinfo-delete-from-print-queue)
- (define-key keymap "\C-c\C-t\C-q" 'tex-show-print-queue)
- (define-key keymap "\C-c\C-t\C-p" 'texinfo-tex-print)
- (define-key keymap "\C-c\C-t\C-v" 'texinfo-tex-view)
- (define-key keymap "\C-c\C-t\C-i" 'texinfo-texindex)
-
- (define-key keymap "\C-c\C-t\C-r" 'texinfo-tex-region)
- (define-key keymap "\C-c\C-t\C-b" 'texinfo-tex-buffer))
-
-;; Mode documentation displays commands in reverse order
-;; from how they are listed in the texinfo-mode-map.
-
-(if texinfo-mode-map
- nil
- (setq texinfo-mode-map (make-sparse-keymap))
-
- ;; bindings for `texnfo-tex.el'
- (texinfo-define-common-keys texinfo-mode-map)
-
- ;; bindings for `makeinfo.el'
- (define-key texinfo-mode-map "\C-c\C-m\C-k" 'kill-compilation)
- (define-key texinfo-mode-map "\C-c\C-m\C-l"
- 'makeinfo-recenter-compilation-buffer)
- (define-key texinfo-mode-map "\C-c\C-m\C-r" 'makeinfo-region)
- (define-key texinfo-mode-map "\C-c\C-m\C-b" 'makeinfo-buffer)
-
- ;; bindings for `texinfmt.el'
- (define-key texinfo-mode-map "\C-c\C-e\C-r" 'texinfo-format-region)
- (define-key texinfo-mode-map "\C-c\C-e\C-b" 'texinfo-format-buffer)
-
- ;; bindings for updating nodes and menus
-
- (define-key texinfo-mode-map "\C-c\C-um" 'texinfo-master-menu)
-
- (define-key texinfo-mode-map "\C-c\C-u\C-m" 'texinfo-make-menu)
- (define-key texinfo-mode-map "\C-c\C-u\C-n" 'texinfo-update-node)
- (define-key texinfo-mode-map "\C-c\C-u\C-e" 'texinfo-every-node-update)
- (define-key texinfo-mode-map "\C-c\C-u\C-a" 'texinfo-all-menus-update)
-
- (define-key texinfo-mode-map "\C-c\C-s" 'texinfo-show-structure)
-
- (define-key texinfo-mode-map "\C-c}" 'up-list)
- (define-key texinfo-mode-map "\C-c]" 'up-list)
- (define-key texinfo-mode-map "\C-c{" 'texinfo-insert-braces)
-
- ;; bindings for inserting strings
-
- (define-key texinfo-mode-map "\C-c\C-c\C-d" 'texinfo-start-menu-description)
-
- (define-key texinfo-mode-map "\C-c\C-cv" 'texinfo-insert-@var)
- (define-key texinfo-mode-map "\C-c\C-ct" 'texinfo-insert-@table)
- (define-key texinfo-mode-map "\C-c\C-cs" 'texinfo-insert-@samp)
- (define-key texinfo-mode-map "\C-c\C-co" 'texinfo-insert-@noindent)
- (define-key texinfo-mode-map "\C-c\C-cn" 'texinfo-insert-@node)
- (define-key texinfo-mode-map "\C-c\C-ck" 'texinfo-insert-@kbd)
- (define-key texinfo-mode-map "\C-c\C-ci" 'texinfo-insert-@item)
- (define-key texinfo-mode-map "\C-c\C-cf" 'texinfo-insert-@file)
- (define-key texinfo-mode-map "\C-c\C-cx" 'texinfo-insert-@example)
- (define-key texinfo-mode-map "\C-c\C-ce" 'texinfo-insert-@end)
- (define-key texinfo-mode-map "\C-c\C-cd" 'texinfo-insert-@dfn)
- (define-key texinfo-mode-map "\C-c\C-cc" 'texinfo-insert-@code))
-
-
-;;; Texinfo mode
-
-(defvar texinfo-chapter-level-regexp
- "chapter\\|unnumbered \\|appendix \\|majorheading\\|chapheading"
- "Regular expression matching Texinfo chapter-level headings.
-This does not match `@node' and does not match the `@top' command.")
-
-;;;###autoload
-(defun texinfo-mode ()
- "Major mode for editing Texinfo files.
-
- It has these extra commands:
-\\{texinfo-mode-map}
-
- These are files that are used as input for TeX to make printed manuals
-and also to be turned into Info files with \\[makeinfo-buffer] or
-the `makeinfo' program. These files must be written in a very restricted and
-modified version of TeX input format.
-
- Editing commands are like text-mode except that the syntax table is
-set up so expression commands skip Texinfo bracket groups. To see
-what the Info version of a region of the Texinfo file will look like,
-use \\[makeinfo-region], which runs `makeinfo' on the current region.
-
- You can show the structure of a Texinfo file with \\[texinfo-show-structure].
-This command shows the structure of a Texinfo file by listing the
-lines with the @-sign commands for @chapter, @section, and the like.
-These lines are displayed in another window called the *Occur* window.
-In that window, you can position the cursor over one of the lines and
-use \\[occur-mode-goto-occurrence], to jump to the corresponding spot
-in the Texinfo file.
-
- In addition, Texinfo mode provides commands that insert various
-frequently used @-sign commands into the buffer. You can use these
-commands to save keystrokes. And you can insert balanced braces with
-\\[texinfo-insert-braces] and later use the command \\[up-list] to
-move forward past the closing brace.
-
-Also, Texinfo mode provides functions for automatically creating or
-updating menus and node pointers. These functions
-
- * insert the `Next', `Previous' and `Up' pointers of a node,
- * insert or update the menu for a section, and
- * create a master menu for a Texinfo source file.
-
-Here are the functions:
-
- texinfo-update-node \\[texinfo-update-node]
- texinfo-every-node-update \\[texinfo-every-node-update]
- texinfo-sequential-node-update
-
- texinfo-make-menu \\[texinfo-make-menu]
- texinfo-all-menus-update \\[texinfo-all-menus-update]
- texinfo-master-menu
-
- texinfo-indent-menu-description (column &optional region-p)
-
-The `texinfo-column-for-description' variable specifies the column to
-which menu descriptions are indented.
-
-Passed an argument (a prefix argument, if interactive), the
-`texinfo-update-node' and `texinfo-make-menu' functions do their jobs
-in the region.
-
-To use the updating commands, you must structure your Texinfo file
-hierarchically, such that each `@node' line, with the exception of the
-Top node, is accompanied by some kind of section line, such as an
-`@chapter' or `@section' line.
-
-If the file has a `top' node, it must be called `top' or `Top' and
-be the first node in the file.
-
-Entering Texinfo mode calls the value of text-mode-hook, and then the
-value of texinfo-mode-hook."
- (interactive)
- (text-mode)
- (setq mode-name "Texinfo")
- (setq major-mode 'texinfo-mode)
- (use-local-map texinfo-mode-map)
- (set-syntax-table texinfo-mode-syntax-table)
- (make-local-variable 'page-delimiter)
- (setq page-delimiter
- (concat
- "^@node [ \t]*[Tt]op\\|^@\\("
- texinfo-chapter-level-regexp
- "\\)"))
- (make-local-variable 'require-final-newline)
- (setq require-final-newline t)
- (make-local-variable 'indent-tabs-mode)
- (setq indent-tabs-mode nil)
- (make-local-variable 'paragraph-separate)
- (setq paragraph-separate
- (concat "\b\\|@[a-zA-Z]*[ \n]\\|" paragraph-separate))
- (make-local-variable 'paragraph-start)
- (setq paragraph-start (concat "\b\\|@[a-zA-Z]*[ \n]\\|" paragraph-start))
- (make-local-variable 'fill-column)
- (setq fill-column 72)
- (make-local-variable 'comment-start)
- (setq comment-start "@c ")
- (make-local-variable 'comment-start-skip)
- (setq comment-start-skip "@c +")
- (make-local-variable 'words-include-escapes)
- (setq words-include-escapes t)
- (make-local-variable 'imenu-generic-expression)
- (setq imenu-generic-expression texinfo-imenu-generic-expression)
- (make-local-variable 'font-lock-defaults)
- (setq font-lock-defaults '(texinfo-font-lock-keywords t))
- (make-local-variable 'outline-regexp)
- (setq outline-regexp
- (concat "@\\("
- (mapconcat 'car texinfo-section-list "\\>\\|")
- "\\>\\)"))
- (make-local-variable 'outline-level)
- (setq outline-level 'texinfo-outline-level)
- (make-local-variable 'tex-start-of-header)
- (setq tex-start-of-header "%\\*\\*start")
- (make-local-variable 'tex-end-of-header)
- (setq tex-end-of-header "%\\*\\*end")
- (make-local-variable 'tex-first-line-header-regexp)
- (setq tex-first-line-header-regexp "^\\\\input")
- (make-local-variable 'tex-trailer)
- (setq tex-trailer "@bye\n")
- (run-hooks 'text-mode-hook 'texinfo-mode-hook))
-
-
-;;; Insert string commands
-
-;; Keep as concatinated lists for ease of maintenance
-(defconst texinfo-environment-regexp
- (concat
- "^@"
- "\\("
- "cartouche\\|"
- "display\\|"
- "end\\|"
- "enumerate\\|"
- "example\\|"
- "f?table\\|"
- "flushleft\\|"
- "flushright\\|"
- "format\\|"
- "group\\|"
- "ifhtml\\|"
- "ifinfo\\|"
- "iftex\\|"
- "ignore\\|"
- "itemize\\|"
- "lisp\\|"
- "macro\\|"
- "multitable\\|"
- "quotation\\|"
- "smallexample\\|"
- "smalllisp\\|"
- "tex"
- "\\)")
- "Regexp for environment-like TexInfo list commands.
- Subexpression 1 is what goes into the corresponding `@end' statement.")
-
-;; The following texinfo-insert-@end command not only inserts a SPC
-;; after the @end, but tries to find out what belongs there. It is
-;; not very smart: it does not understand nested lists.
-
-(defun texinfo-insert-@end ()
- "Insert the matching `@end' for the last Texinfo command that needs one."
- (interactive)
- (let ((depth 1) string)
- (save-excursion
- (while (and (> depth 0)
- (re-search-backward texinfo-environment-regexp nil t))
- (if (looking-at "@end")
- (setq depth (1+ depth))
- (setq depth (1- depth))))
- (looking-at texinfo-environment-regexp)
- (if (zerop depth)
- (setq string
- (buffer-substring (match-beginning 1)
- (match-end 1)))))
- (insert "@end ")
- (if string (insert string "\n"))))
-
-;; The following insert commands accept a prefix arg N, which is the
-;; number of words (actually s-exprs) that should be surrounded by
-;; braces. Thus you can first paste a variable name into a .texinfo
-;; buffer, then say C-u 1 C-c C-c v at the beginning of the just
-;; pasted variable name to put @var{...} *around* the variable name.
-;; Operate on previous word or words with negative arg.
-
-;; These commands use texinfo-insert-@-with-arg
-(defun texinfo-insert-@-with-arg (string &optional arg)
- (if arg
- (progn
- (setq arg (prefix-numeric-value arg))
- (if (< arg 0)
- (progn
- (skip-chars-backward " \t\n\r\f")
- (save-excursion
- (forward-sexp arg)
- (insert "@" string "{"))
- (insert "}"))
- (skip-chars-forward " \t\n\r\f")
- (insert "@" string "{")
- (forward-sexp arg)
- (insert "}")))
- (insert "@" string "{}")
- (backward-char)))
-
-(defun texinfo-insert-braces ()
- "Make a pair of braces and be poised to type inside of them.
-Use \\[up-list] to move forward out of the braces."
- (interactive)
- (insert "{}")
- (backward-char))
-
-(defun texinfo-insert-@code (&optional arg)
- "Insert a `@code{...}' command in a Texinfo buffer.
-A numeric argument says how many words the braces should surround.
-The default is not to surround any existing words with the braces."
- (interactive "P")
- (texinfo-insert-@-with-arg "code" arg))
-
-(defun texinfo-insert-@dfn (&optional arg)
- "Insert a `@dfn{...}' command in a Texinfo buffer.
-A numeric argument says how many words the braces should surround.
-The default is not to surround any existing words with the braces."
- (interactive "P")
- (texinfo-insert-@-with-arg "dfn" arg))
-
-(defun texinfo-insert-@example ()
- "Insert the string `@example' in a Texinfo buffer."
- (interactive)
- (insert "@example\n"))
-
-(defun texinfo-insert-@file (&optional arg)
- "Insert a `@file{...}' command in a Texinfo buffer.
-A numeric argument says how many words the braces should surround.
-The default is not to surround any existing words with the braces."
- (interactive "P")
- (texinfo-insert-@-with-arg "file" arg))
-
-(defun texinfo-insert-@item ()
- "Insert the string `@item' in a Texinfo buffer."
- (interactive)
- (insert "@item")
- (newline))
-
-(defun texinfo-insert-@kbd (&optional arg)
- "Insert a `@kbd{...}' command in a Texinfo buffer.
-A numeric argument says how many words the braces should surround.
-The default is not to surround any existing words with the braces."
- (interactive "P")
- (texinfo-insert-@-with-arg "kbd" arg))
-
-(defun texinfo-insert-@node ()
- "Insert the string `@node' in a Texinfo buffer.
-This also inserts on the following line a comment indicating
-the order of arguments to @node."
- (interactive)
- (insert "@node \n@comment node-name, next, previous, up")
- (forward-line -1)
- (forward-char 6))
-
-(defun texinfo-insert-@noindent ()
- "Insert the string `@noindent' in a Texinfo buffer."
- (interactive)
- (insert "@noindent\n"))
-
-(defun texinfo-insert-@samp (&optional arg)
- "Insert a `@samp{...}' command in a Texinfo buffer.
-A numeric argument says how many words the braces should surround.
-The default is not to surround any existing words with the braces."
- (interactive "P")
- (texinfo-insert-@-with-arg "samp" arg))
-
-(defun texinfo-insert-@table (&optional arg)
- "Insert the string `@table' in a Texinfo buffer."
- (interactive "P")
- (insert "@table "))
-
-(defun texinfo-insert-@var (&optional arg)
- "Insert a `@var{}' command in a Texinfo buffer.
-A numeric argument says how many words the braces should surround.
-The default is not to surround any existing words with the braces."
- (interactive "P")
- (texinfo-insert-@-with-arg "var" arg))
-
-;;; Texinfo file structure
-
-;; These are defined in texnfo-upd.el. defvars here avoid warnings.
-(defvar texinfo-section-types-regexp)
-(defvar texinfo-section-level-regexp)
-(defvar texinfo-subsection-level-regexp)
-(defvar texinfo-subsubsection-level-regexp)
-
-(defun texinfo-show-structure (&optional nodes-too)
- "Show the structure of a Texinfo file.
-List the lines in the file that begin with the @-sign commands for
-@chapter, @section, and the like.
-
-With optional argument (prefix if interactive), list both the lines
-with @-sign commands for @chapter, @section, and the like, and list
-@node lines.
-
-Lines with structuring commands beginning in them are displayed in
-another buffer named `*Occur*'. In that buffer, you can move point to
-one of those lines and then use \\<occur-mode-map>\\[occur-mode-goto-occurrence],
-to jump to the corresponding spot in the Texinfo source file."
-
- (interactive "P")
- (require 'texnfo-upd)
- (save-excursion
- (goto-char (point-min))
- (if nodes-too
- (occur (concat "\\(^@node\\)\\|" texinfo-section-types-regexp))
- (occur texinfo-section-types-regexp)))
- (pop-to-buffer "*Occur*")
- (goto-char (point-min))
- (flush-lines "-----")
- ;; Now format the "*Occur*" buffer to show the structure.
- ;; Thanks to ceder@signum.se (Per Cederqvist)
- (goto-char (point-max))
- (let ((margin 5))
- (while (re-search-backward "^ *[0-9]*:" nil 0)
- (re-search-forward ":")
- (setq margin
- (cond
- ((looking-at
- (concat "@\\(" texinfo-chapter-level-regexp "\\)")) 5)
- ;; ((looking-at "@chapter ") 5)
- ;; ((looking-at "@unnumbered ") 5)
- ;; ((looking-at "@appendix ") 5)
- ;; ((looking-at "@majorheading ") 5)
- ;; ((looking-at "@chapheading ") 5)
-
- ((looking-at
- (concat "@\\(" texinfo-section-level-regexp "\\)")) 9)
- ;; ((looking-at "@section ") 9)
- ;; ((looking-at "@unnumberedsec ") 9)
- ;; ((looking-at "@appendixsec ") 9)
- ;; ((looking-at "@heading ") 9)
-
- ((looking-at
- (concat "@\\(" texinfo-subsection-level-regexp "\\)")) 13)
- ;; ((looking-at "@subsection ") 13)
- ;; ((looking-at "@unnumberedsubsec ") 13)
- ;; ((looking-at "@appendixsubsec ") 13)
- ;; ((looking-at "@subheading ") 13)
-
- ((looking-at
- (concat "@\\(" texinfo-subsubsection-level-regexp "\\)")) 17)
- ;; ((looking-at "@subsubsection ") 17)
- ;; ((looking-at "@unnumberedsubsubsec ") 17)
- ;; ((looking-at "@appendixsubsubsec ") 17)
- ;; ((looking-at "@subsubheading ") 17)
- (t margin)))
- (indent-to-column margin)
- (beginning-of-line))))
-
-;;; The tex and print function definitions:
-
-(defcustom texinfo-texi2dvi-command "texi2dvi"
- "*Command used by `texinfo-tex-buffer' to run TeX and texindex on a buffer."
- :type 'string
- :group 'texinfo)
-
-(defcustom texinfo-tex-command "tex"
- "*Command used by `texinfo-tex-region' to run TeX on a region."
- :type 'string
- :group 'texinfo)
-
-(defcustom texinfo-texindex-command "texindex"
- "*Command used by `texinfo-texindex' to sort unsorted index files."
- :type 'string
- :group 'texinfo)
-
-(defcustom texinfo-delete-from-print-queue-command "lprm"
- "*Command string used to delete a job from the line printer queue.
-Command is used by \\[texinfo-delete-from-print-queue] based on
-number provided by a previous \\[tex-show-print-queue]
-command."
- :type 'string
- :group 'texinfo)
-
-(defvar texinfo-tex-trailer "@bye"
- "String appended after a region sent to TeX by `texinfo-tex-region'.")
-
-(defun texinfo-tex-region (beg end)
- "Run TeX on the current region.
-This works by writing a temporary file (`tex-zap-file') in the directory
-that is the value of `tex-directory', then running TeX on that file.
-
-The first line of the buffer is copied to the
-temporary file; and if the buffer has a header, it is written to the
-temporary file before the region itself. The buffer's header is all lines
-between the strings defined by `tex-start-of-header' and `tex-end-of-header'
-inclusive. The header must start in the first 100 lines.
-
-The value of `texinfo-tex-trailer' is appended to the temporary file after the region."
- (interactive "r")
- (require 'tex-mode)
- (let ((tex-command texinfo-tex-command)
- (tex-trailer "@bye\n"))
- (tex-region beg end)))
-
-(defun texinfo-tex-buffer ()
- "Run TeX on visited file, once or twice, to make a correct `.dvi' file."
- (interactive)
- (require 'tex-mode)
- (let ((tex-command texinfo-texi2dvi-command))
- (tex-buffer)))
-
-(defun texinfo-texindex ()
- "Run `texindex' on unsorted index files.
-The index files are made by \\[texinfo-tex-region] or \\[texinfo-tex-buffer].
-This runs the shell command defined by `texinfo-texindex-command'."
- (interactive)
- (require 'tex-mode)
- (tex-send-command texinfo-texindex-command (concat tex-zap-file ".??"))
- ;; alternatively
- ;; (send-string "tex-shell"
- ;; (concat texinfo-texindex-command
- ;; " " tex-zap-file ".??" "\n"))
- (tex-recenter-output-buffer nil))
-
-(defun texinfo-tex-print ()
- "Print `.dvi' file made by \\[texinfo-tex-region] or \\[texinfo-tex-buffer].
-This runs the shell command defined by `tex-dvi-print-command'."
- (interactive)
- (require 'tex-mode)
- (tex-print))
-
-(defun texinfo-tex-view ()
- "View `.dvi' file made by \\[texinfo-tex-region] or \\[texinfo-tex-buffer].
-This runs the shell command defined by `tex-dvi-view-command'."
- (interactive)
- (require 'tex-mode)
- (tex-view))
-
-(defun texinfo-quit-job ()
- "Quit currently running TeX job, by sending an `x' to it."
- (interactive)
- (if (not (get-process "tex-shell"))
- (error "No TeX shell running"))
- (tex-send-command "x"))
-;; alternatively:
-;; save-excursion
-;; (set-buffer (get-buffer "*tex-shell*"))
-;; (goto-char (point-max))
-;; (insert "x")
-;; (comint-send-input)
-
-(defun texinfo-delete-from-print-queue (job-number)
- "Delete job from the line printer spooling queue.
-You are prompted for the job number (use a number shown by a previous
-\\[tex-show-print-queue] command)."
- (interactive "nPrinter job number for deletion: ")
- (require 'tex-mode)
- (if (tex-shell-running)
- (tex-kill-job)
- (tex-start-shell))
- (tex-send-command texinfo-delete-from-print-queue-command job-number)
- ;; alternatively
- ;; (send-string "tex-shell"
- ;; (concat
- ;; texinfo-delete-from-print-queue-command
- ;; " "
- ;; job-number"\n"))
- (tex-recenter-output-buffer nil))
-
-(provide 'texinfo)
-
-;;; texinfo.el ends here
diff --git a/texinfo/emacs/texnfo-tex.el b/texinfo/emacs/texnfo-tex.el
deleted file mode 100644
index 225ea685c04..00000000000
--- a/texinfo/emacs/texnfo-tex.el
+++ /dev/null
@@ -1,346 +0,0 @@
-;;;; texnfo-tex.el
-
-;;; Texinfo mode TeX and hardcopy printing commands.
-
-;; These commands are for running TeX on a region of a Texinfo file in
-;; GNU Emacs, or on the whole buffer, and for printing the resulting
-;; DVI file.
-
-;;; Version 2.07 22 October 1991
-;;; Robert J. Chassell
-;;; Please send bug reports to: bug-texinfo@prep.ai.mit.edu
-
-;;; Copyright (C) 1989, 1990, 1991 Free Software Foundation, Inc.
-
-
-;;; This file is part of GNU Emacs.
-
-;; GNU Emacs is free software; you can redistribute it and/or modify
-;; it under the terms of the GNU General Public License as published by
-;; the Free Software Foundation; either version 2, or (at your option)
-;; any later version.
-
-;; GNU Emacs is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-;; GNU General Public License for more details.
-
-;; You should have received a copy of the GNU General Public License
-;; along with GNU Emacs; see the file COPYING. If not, write to
-;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-
-
-;;; The Texinfo mode TeX related commands are:
-
-; texinfo-tex-region to run tex on the current region.
-; texinfo-tex-buffer to run tex on the current buffer.
-; texinfo-texindex to sort unsorted index files.
-; texinfo-tex-print to print the .dvi file made by tex.
-; texinfo-kill-tex-job to kill the currently running tex job.
-; texinfo-recenter-tex-output-buffer to redisplay tex output buffer.
-; texinfo-show-tex-print-queue to show the print queue.
-
-
-;;; Keys common both to Texinfo mode and to TeX shell.
-
-;; Defined in `texinfo.el'
-; (defun texinfo-define-common-keys (keymap)
-; "Define the keys both in Texinfo mode and in the texinfo-tex-shell."
-; (define-key keymap "\C-c\C-t\C-k" 'texinfo-kill-tex-job)
-; (define-key keymap "\C-c\C-t\C-x" 'texinfo-quit-tex-job)
-; (define-key keymap "\C-c\C-t\C-l" 'texinfo-recenter-tex-output-buffer)
-; (define-key keymap "\C-c\C-t\C-d" 'texinfo-delete-from-tex-print-queue)
-; (define-key keymap "\C-c\C-t\C-q" 'texinfo-show-tex-print-queue)
-; (define-key keymap "\C-c\C-t\C-p" 'texinfo-tex-print)
-; (define-key keymap "\C-c\C-t\C-i" 'texinfo-texindex)
-; (define-key keymap "\C-c\C-t\C-r" 'texinfo-tex-region)
-; (define-key keymap "\C-c\C-t\C-b" 'texinfo-tex-buffer))
-
-;; See also texinfo-tex-start-shell.
-;; The following is executed in the `texinfo.el' file
-;(texinfo-define-common-keys texinfo-mode-map)
-
-
-;;; Variable definitions:
-
-(require 'shell)
-
-(defvar texinfo-tex-shell-cd-command "cd"
- "Command to give to shell running TeX to change directory.")
-
-(defvar texinfo-tex-command "tex"
- "*Command used by texinfo-tex-region to run tex on a region.")
-
-(defvar texinfo-texindex-command "texindex"
- "*Command used by texinfo-texindex to sort unsorted index files.")
-
-(defvar texinfo-tex-dvi-print-command "lpr -d"
- "*Command string used by \\[tex-print] to print a .dvi file.")
-
-(defvar texinfo-show-tex-queue-command "lpq"
- "*Command string used to show the Texinfo TeX print queue.
-Command is used by \\[texinfo-show-tex-print-queue] and it
-should show the queue that \\[texinfo-tex-print] puts jobs on.")
-
-(defvar texinfo-delete-from-print-queue-command "lprm"
- "*Command string used to delete a job from the line printer queue.
-Command is used by \\[texinfo-delete-from-tex-print-queue] based on
-number provided by a previous \\[texinfo-show-tex-print-queue]
-command.")
-
-(defvar texinfo-tex-trailer "@bye"
- "String appended after a region sent to TeX by texinfo-tex-region.")
-
-(defvar texinfo-tex-original-file ""
- "Original name of file on which to run TeX.")
-
-(defvar texinfo-tex-temp-file nil
- "Temporary file name used for text being sent as input to TeX.")
-
-(defvar texinfo-tex-root-temp-file nil
- "Temporary file name used for text being sent as input to TeX.")
-
-
-;;; Texinfo TeX main functions
-
-(defun texinfo-tex-region (beginning end)
- "Run tex on the current region.
-
-A temporary file is written in the default directory, and tex is run
-in that directory. The first line of the file is copied to the
-temporary file; and if the buffer has a header, it is written to the
-temporary file before the region itself. The buffer's header is all
-lines between the strings defined by texinfo-start-of-header and
-texinfo-end-of-header inclusive. The header must start in the first 100
-lines. The value of texinfo-tex-trailer is appended to the temporary file
-after the region."
-
- (interactive "r")
- (if (get-buffer "*texinfo-tex-shell*")
- (quit-process (get-process "texinfo-tex-shell") t)
- (texinfo-tex-start-shell))
-
- (setq texinfo-tex-root-temp-file
- (expand-file-name
- (make-temp-name
- (prin1-to-string (read (buffer-name))))))
-
- (let ((texinfo-tex-temp-file (concat texinfo-tex-root-temp-file ".tex")))
- (save-excursion
- (save-restriction
- (widen)
- (goto-char (point-min))
- (forward-line 100)
- (let ((search-end (point))
- (header-beginning (point-min)) (header-end (point-min)))
- (goto-char (point-min))
- ;; Copy first line, the `\input texinfo' line, to temp file
- (write-region (point)
- (save-excursion (forward-line 1) (point))
- texinfo-tex-temp-file nil nil)
- ;; Don't copy first line twice if region includes it.
- (forward-line 1)
- (if (< beginning (point)) (setq beginning (point)))
- ;; Initialize the temp file with either the header or nothing
- (if (search-forward texinfo-start-of-header search-end t)
- (progn
- (beginning-of-line)
- (setq header-beginning (point)) ; Mark beginning of header.
- (if (search-forward texinfo-end-of-header nil t)
- (progn (beginning-of-line)
- (setq header-end (point))) ; Mark end of header.
- (setq header-beginning (point-min))))) ; Else no header.
- ;; Copy header to temp file.
- (write-region
- (min header-beginning beginning )
- header-end
- texinfo-tex-temp-file t nil)
- ;; Copy region to temp file.
- (write-region
- (max beginning header-end)
- end
- texinfo-tex-temp-file t nil)
- ;; This is a kludge to insert the texinfo-tex-trailer into the
- ;; texinfo-tex-temp-file. We have to create a special buffer
- ;; in which to insert the texinfo-tex-trailer first because there is
- ;; no function with which to append a literal string directly
- ;; to a file.
- (let ((local-tex-trailer texinfo-tex-trailer)
- (temp-buffer (get-buffer-create " texinfo-trailer-buffer")))
- (set-buffer temp-buffer)
- (erase-buffer)
- ;; make sure trailer isn't hidden by a comment
- (insert-string "\n")
- (if local-tex-trailer (insert local-tex-trailer))
- (write-region (point-min) (point-max)
- texinfo-tex-temp-file t nil)))
- (set-process-sentinel (get-process "texinfo-tex-shell")
- 'texinfo-tex-shell-sentinel)
- (send-string "texinfo-tex-shell"
- (concat texinfo-tex-shell-cd-command " "
- default-directory "\n"))
- (send-string "texinfo-tex-shell"
- (concat texinfo-tex-command " "
- texinfo-tex-temp-file "\n "))
- (texinfo-recenter-tex-output-buffer 0)))))
-
-(defun texinfo-tex-buffer (buffer)
- "Run TeX on current buffer.
-After running TeX the first time, you may have to run \\[texinfo-texindex]
-and then \\[texinfo-tex-buffer] again."
- (interactive
- (list
- ;; Sometimes you put point into *texinfo-tex-shell*; this prompts
- ;; you for the correct file regardless.
- (if (and
- (string= (buffer-name (current-buffer)) "*texinfo-tex-shell*")
- texinfo-tex-root-temp-file)
- (read-string (format "Run TeX on: ")
- texinfo-tex-original-file)
- (read-string (format "Run TeX on: ") (buffer-name (current-buffer))))))
-
- ;; Set to original buffer if in *texinfo-tex-shell*; otherwise,
- ;; record name of current buffer.
- (if (string= (buffer-name (current-buffer)) "*texinfo-tex-shell*")
- (set-buffer buffer)
- (setq texinfo-tex-original-file
- (buffer-name (current-buffer))))
-
- (if (get-buffer "*texinfo-tex-shell*")
- (quit-process (get-process "texinfo-tex-shell") t)
- (texinfo-tex-start-shell))
- (cond ((null buffer-file-name)
- (error "Buffer not visiting any file!"))
- ((buffer-modified-p)
- (error "Buffer has been modified since last saved!"))
- (t (set-process-sentinel (get-process "texinfo-tex-shell")
- 'texinfo-tex-shell-sentinel)
- (send-string "texinfo-tex-shell"
- (concat texinfo-tex-shell-cd-command
- " "
- (file-name-directory
- (buffer-file-name
- (get-buffer buffer)))
- "\n"))
- (send-string "texinfo-tex-shell"
- (concat texinfo-tex-command " " buffer "\n "))
-
- ;; so the texinfo-tex-print command works
- (setq texinfo-tex-root-temp-file
- (substring buffer 0
- (or (string-match "\\.tex" buffer)
- (length buffer))))
-
- (texinfo-recenter-tex-output-buffer 0))))
-
-(defun texinfo-texindex ()
- "Run texindex on unsorted index files.
-The index files are made by \\[texinfo-tex-region] or \\[texinfo-tex-buffer].
-Runs the shell command defined by texinfo-texindex-command."
- (interactive)
- (send-string "texinfo-tex-shell"
- (concat texinfo-texindex-command
- " " texinfo-tex-root-temp-file ".??" "\n"))
- (texinfo-recenter-tex-output-buffer nil))
-
-(defun texinfo-tex-print ()
- "Print .dvi file made by \\[texinfo-tex-region] or \\[texinfo-tex-buffer].
-Runs the shell command defined by texinfo-tex-dvi-print-command."
- (interactive)
- (send-string "texinfo-tex-shell"
- (concat texinfo-tex-dvi-print-command
- " " texinfo-tex-root-temp-file ".dvi" "\n"))
- (texinfo-recenter-tex-output-buffer nil))
-
-
-;;; Texinfo TeX utility functions
-
-(defun texinfo-tex-start-shell ()
- (save-excursion
- (require 'texinfo)
- (set-buffer (make-shell "texinfo-tex-shell" "/bin/sh" nil "-v"))
- (setq texinfo-tex-shell-map (copy-keymap shell-mode-map))
- (texinfo-define-common-keys texinfo-tex-shell-map)
- (use-local-map texinfo-tex-shell-map)
- (run-hooks 'texinfo-tex-shell-hook)
- (if (zerop (buffer-size))
- (sleep-for 1))))
-
-(defun texinfo-quit-tex-job ()
- "Quit currently running TeX job, by sending an `x' to it."
- (interactive)
- (if (not (get-process "texinfo-tex-shell"))
- (error "No TeX shell running."))
- (save-excursion
- (set-buffer (get-buffer "*texinfo-tex-shell*"))
- (goto-char (point-max))
- (insert "x")
- (shell-send-input)))
-
-(defun texinfo-kill-tex-job ()
- "Kill the currently running TeX job."
- (interactive)
- (if (get-process "texinfo-tex-shell")
- ;; Use `texinfo-tex-shell-sentinel' to restart
- ;; texinfo-tex-shell after it is killed.
- (kill-process (get-process "texinfo-tex-shell"))))
-
-(defun texinfo-tex-shell-sentinel (process event)
- "Restart texinfo-tex-shell after it is killed."
- (if (equal event "killed\n")
- (save-excursion
- (set-buffer "*texinfo-tex-shell*")
- (insert "\n")
- (texinfo-tex-start-shell))))
-
-(defun texinfo-recenter-tex-output-buffer (linenum)
- "Redisplay buffer of TeX job output so that most recent output can be seen.
-The last line of the buffer is displayed on
-line LINE of the window, or centered if LINE is nil."
- (interactive "P")
- (let ((texinfo-tex-shell (get-buffer "*texinfo-tex-shell*"))
- (old-buffer (current-buffer)))
- (if (null texinfo-tex-shell)
- (message "No TeX output buffer")
- (pop-to-buffer texinfo-tex-shell)
- (bury-buffer texinfo-tex-shell)
- (goto-char (point-max))
- (recenter (if linenum
- (prefix-numeric-value linenum)
- (/ (window-height) 2)))
- (pop-to-buffer old-buffer)
- )))
-
-(defun texinfo-show-tex-print-queue ()
- "Show the print queue that \\[texinfo-tex-print] put your job on.
-Runs the shell command defined by texinfo-show-tex-queue-command."
- (interactive)
- (if (not (texinfo-tex-shell-running-p))
- (texinfo-tex-start-shell))
- (send-string "texinfo-tex-shell"
- (concat texinfo-show-tex-queue-command "\n"))
- (texinfo-recenter-tex-output-buffer nil))
-
-(defun texinfo-delete-from-tex-print-queue (job-number)
- "Delete job from the line printer spooling queue.
-You are prompted for the job number (shown by a previous
-\\[texinfo-show-tex-print-queue] command."
- (interactive "nPrinter job number for deletion: ")
- (if (texinfo-tex-shell-running-p)
- (texinfo-kill-tex-job)
- (texinfo-tex-start-shell))
- (send-string "texinfo-tex-shell"
- (concat
- texinfo-delete-from-print-queue-command
- " "
- job-number"\n"))
- (texinfo-recenter-tex-output-buffer nil))
-
-(defun texinfo-tex-shell-running-p ()
- (and (get-process "texinfo-tex-shell")
- (eq (process-status (get-process "texinfo-tex-shell")) 'run)))
-
-
-;;; Place `provide' at end of file.
-(provide 'texnfo-tex)
-;;;;;;;;;;;;;;;; end texnfo-tex.el ;;;;;;;;;;;;;;;;
diff --git a/texinfo/emacs/texnfo-upd.el b/texinfo/emacs/texnfo-upd.el
deleted file mode 100644
index 516c1a6130b..00000000000
--- a/texinfo/emacs/texnfo-upd.el
+++ /dev/null
@@ -1,2062 +0,0 @@
-;;; texnfo-upd.el --- utilities for updating nodes and menus in Texinfo files
-
-;; Copyright (C) 1989, 1990, 1991, 1992 Free Software Foundation, Inc.
-
-;; Author: Robert J. Chassell
-;; Maintainer: bug-texinfo@prep.ai.mit.edu
-;; Keywords: maint, tex, docs
-
-;; This file is part of GNU Emacs.
-
-;; GNU Emacs is free software; you can redistribute it and/or modify
-;; it under the terms of the GNU General Public License as published by
-;; the Free Software Foundation; either version 2, or (at your option)
-;; any later version.
-
-;; GNU Emacs is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-;; GNU General Public License for more details.
-
-;; You should have received a copy of the GNU General Public License
-;; along with GNU Emacs; see the file COPYING. If not, write to the
-;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-;; Boston, MA 02111-1307, USA.
-
-;;; Commentary:
-
-;; Known bug: update commands fail to ignore @ignore.
-
-;; Summary: how to use the updating commands
-
-;; The node and menu updating functions automatically
-
-;; * insert missing `@node' lines,
-;; * insert the `Next', `Previous' and `Up' pointers of a node,
-;; * insert or update the menu for a section,
-;; * create a master menu for a Texinfo source file.
-;;
-;; With a prefix argument, the `texinfo-update-node' and
-;; `texinfo-make-menu' functions do their jobs in the region.
-;;
-;; In brief, the functions for creating or updating nodes and menus, are:
-;;
-;; texinfo-update-node (&optional beginning end)
-;; texinfo-every-node-update ()
-;; texinfo-sequential-node-update (&optional region-p)
-;;
-;; texinfo-make-menu (&optional beginning end)
-;; texinfo-all-menus-update ()
-;; texinfo-master-menu ()
-;;
-;; texinfo-insert-node-lines (&optional title-p)
-;;
-;; texinfo-indent-menu-description (column &optional region-p)
-
-;; The `texinfo-column-for-description' variable specifies the column to
-;; which menu descriptions are indented.
-
-;; Texinfo file structure
-;; ----------------------
-
-;; To use the updating commands, you must structure your Texinfo file
-;; hierarchically. Each `@node' line, with the exception of the top
-;; node, must be accompanied by some kind of section line, such as an
-;; `@chapter' or `@section' line. Each node-line/section-line
-;; combination must look like this:
-
-;; @node Lists and Tables, Cross References, Structuring, Top
-;; @comment node-name, next, previous, up
-;; @chapter Making Lists and Tables
-
-;; or like this (without the `@comment' line):
-
-;; @node Lists and Tables, Cross References, Structuring, Top
-;; @chapter Making Lists and Tables
-
-;; If the file has a `top' node, it must be called `top' or `Top' and
-;; be the first node in the file.
-
-
-;;; The update node functions described in detail
-
-;; The `texinfo-update-node' command with no prefix argument inserts
-;; the correct next, previous and up pointers for the node in which
-;; point is located (i.e., for the node preceding point).
-
-;; With prefix argument, the `texinfo-update-node' function inserts the
-;; correct next, previous and up pointers for the nodes inside the
-;; region.
-
-;; It does not matter whether the `@node' line has pre-existing
-;; `Next', `Previous', or `Up' pointers in it. They are removed.
-
-;; The `texinfo-every-node-update' function runs `texinfo-update-node'
-;; on the whole buffer.
-
-;; The `texinfo-sequential-node-update' function inserts the
-;; immediately following and preceding node into the `Next' or
-;; `Previous' pointers regardless of their hierarchical level. This is
-;; only useful for certain kinds of text, like a novel, which you go
-;; through sequentially.
-
-
-;;; The menu making functions described in detail
-
-;; The `texinfo-make-menu' function without an argument creates or
-;; updates a menu for the section encompassing the node that follows
-;; point. With an argument, it makes or updates menus for the nodes
-;; within or part of the marked region.
-
-;; Whenever an existing menu is updated, the descriptions from
-;; that menu are incorporated into the new menu. This is done by copying
-;; descriptions from the existing menu to the entries in the new menu
-;; that have the same node names. If the node names are different, the
-;; descriptions are not copied to the new menu.
-
-;; Menu entries that refer to other Info files are removed since they
-;; are not a node within current buffer. This is a deficiency.
-
-;; The `texinfo-all-menus-update' function runs `texinfo-make-menu'
-;; on the whole buffer.
-
-;; The `texinfo-master-menu' function creates an extended menu located
-;; after the top node. (The file must have a top node.) The function
-;; first updates all the regular menus in the buffer (incorporating the
-;; descriptions from pre-existing menus), and then constructs a master
-;; menu that includes every entry from every other menu. (However, the
-;; function cannot update an already existing master menu; if one
-;; exists, it must be removed before calling the function.)
-
-;; The `texinfo-indent-menu-description' function indents every
-;; description in the menu following point, to the specified column.
-;; Non-nil argument (prefix, if interactive) means indent every
-;; description in every menu in the region. This function does not
-;; indent second and subsequent lines of a multi-line description.
-
-;; The `texinfo-insert-node-lines' function inserts `@node' before the
-;; `@chapter', `@section', and such like lines of a region in a Texinfo
-;; file where the `@node' lines are missing.
-;;
-;; With a non-nil argument (prefix, if interactive), the function not
-;; only inserts `@node' lines but also inserts the chapter or section
-;; titles as the names of the corresponding nodes; and inserts titles
-;; as node names in pre-existing `@node' lines that lack names.
-;;
-;; Since node names should be more concise than section or chapter
-;; titles, node names so inserted will need to be edited manually.
-
-
-;;; Code:
-
-(defvar texinfo-master-menu-header
- " --- The Detailed Node Listing ---\n"
- "String inserted before lower level entries in Texinfo master menu.
-It comes after the chapter-level menu entries.")
-
-(defun texinfo-make-menu (&optional beginning end)
- "Without any prefix argument, make or update a menu.
-Make the menu for the section enclosing the node found following point.
-
-A prefix argument means make or update menus
-for nodes within or part of the marked region.
-
-Whenever a menu exists, and is being updated, the descriptions that
-are associated with node names in the pre-existing menu are
-incorporated into the new menu. Otherwise, the nodes' section titles
-are inserted as descriptions."
-
- (interactive
- (if prefix-arg
- (list (point) (mark))))
- (if (null beginning)
- (let ((level (texinfo-hierarchic-level)))
- (texinfo-make-one-menu level)
- (message "Menu updated"))
- ;; else
- (message "Making or updating menus in %s... " (buffer-name))
- (save-excursion
- (goto-char (min beginning end))
- ;; find section type following point
- (let ((level (texinfo-hierarchic-level))
- (region-end (max beginning end)))
- (save-restriction
- (widen)
-
- (while (texinfo-find-lower-level-node level region-end)
- (setq level (texinfo-hierarchic-level)) ; new, lower level
- (texinfo-make-one-menu level))
-
- (while (and (< (point) region-end)
- (texinfo-find-higher-level-node level region-end))
- (setq level (texinfo-hierarchic-level))
- (while (texinfo-find-lower-level-node level region-end)
- (setq level (texinfo-hierarchic-level)) ; new, lower level
- (texinfo-make-one-menu level))))))
- (message "Making or updating menus in %s...done" (buffer-name))))
-
-(defun texinfo-make-one-menu (level)
- "Make a menu of all the appropriate nodes in this section.
-`Appropriate nodes' are those associated with sections that are
-at the level specified by LEVEL. Point is left at the end of menu."
- (let*
- ((case-fold-search t)
- (beginning
- (save-excursion
- (goto-char (texinfo-update-menu-region-beginning level))
- (end-of-line)
- (point)))
- (end (texinfo-update-menu-region-end level))
- (first (texinfo-menu-first-node beginning end))
- (node-name (progn
- (goto-char beginning)
- (beginning-of-line)
- (texinfo-copy-node-name)))
- (new-menu-list (texinfo-make-menu-list beginning end level)))
- (if (texinfo-old-menu-p beginning first)
- (progn
- (texinfo-incorporate-descriptions new-menu-list)
- (texinfo-incorporate-menu-entry-names new-menu-list)
- (texinfo-delete-old-menu beginning first)))
- (texinfo-insert-menu new-menu-list node-name)))
-
-(defun texinfo-all-menus-update (&optional update-all-nodes-p)
- "Update every regular menu in a Texinfo file.
-Update pre-existing master menu, if there is one.
-
-If called with a non-nil argument, this function first updates all the
-nodes in the buffer before updating the menus."
- (interactive "P")
- (let ((case-fold-search t)
- master-menu-p)
- (save-excursion
- (push-mark (point-max) t)
- (goto-char (point-min))
- (message "Checking for a master menu in %s ... "(buffer-name))
- (save-excursion
- (if (search-forward texinfo-master-menu-header nil t)
- (progn
- ;; Check if @detailmenu kludge is used;
- ;; if so, leave point before @detailmenu.
- (search-backward "\n@detailmenu"
- (save-excursion (forward-line -3) (point))
- t)
- ;; Remove detailed master menu listing
- (setq master-menu-p t)
- (goto-char (match-beginning 0))
- (let ((end-of-detailed-menu-descriptions
- (save-excursion ; beginning of end menu line
- (goto-char (texinfo-menu-end))
- (beginning-of-line) (forward-char -1)
- (point))))
- (delete-region (point) end-of-detailed-menu-descriptions)))))
-
- (if update-all-nodes-p
- (progn
- (message "Updating all nodes in %s ... " (buffer-name))
- (sleep-for 2)
- (texinfo-update-node (point-min) (point-max))))
-
- (message "Updating all menus in %s ... " (buffer-name))
- (sleep-for 2)
- (texinfo-make-menu (point-max) (point-min))
-
- (if master-menu-p
- (progn
- (message "Updating the master menu in %s... " (buffer-name))
- (sleep-for 2)
- (texinfo-master-menu nil))))
-
- (message "Done...updated all the menus. You may save the buffer.")))
-
-(defun texinfo-find-lower-level-node (level region-end)
- "Search forward from point for node at any level lower than LEVEL.
-Search is limited to the end of the marked region, REGION-END,
-and to the end of the menu region for the level.
-
-Return t if the node is found, else nil. Leave point at the beginning
-of the node if one is found; else do not move point."
- (let ((case-fold-search t))
- (if (and (< (point) region-end)
- (re-search-forward
- (concat
- "\\(^@node\\).*\n" ; match node line
- "\\(\\(\\(^@c\\).*\n\\)" ; match comment line, if any
- "\\|" ; or
- "\\(^@ifinfo[ ]*\n\\)\\)?" ; ifinfo line, if any
- (eval (cdr (assoc level texinfo-update-menu-lower-regexps))))
- ;; the next higher level node marks the end of this
- ;; section, and no lower level node will be found beyond
- ;; this position even if region-end is farther off
- (texinfo-update-menu-region-end level)
- t))
- (goto-char (match-beginning 1)))))
-
-(defun texinfo-find-higher-level-node (level region-end)
- "Search forward from point for node at any higher level than argument LEVEL.
-Search is limited to the end of the marked region, REGION-END.
-
-Return t if the node is found, else nil. Leave point at the beginning
-of the node if one is found; else do not move point."
- (let ((case-fold-search t))
- (cond
- ((or (string-equal "top" level) (string-equal "chapter" level))
- (if (re-search-forward "^@node [ \t]*top[ \t]*\\(,\\|$\\)" region-end t)
- (progn (beginning-of-line) t)))
- (t
- (if (re-search-forward
- (concat
- "\\(^@node\\).*\n" ; match node line
- "\\(\\(\\(^@c\\).*\n\\)" ; match comment line, if any
- "\\|" ; or
- "\\(^@ifinfo[ ]*\n\\)\\)?" ; ifinfo line, if any
- (eval (cdr (assoc level texinfo-update-menu-higher-regexps))))
- region-end t)
- (progn (beginning-of-line) t))))))
-
-
-;;; Making the list of new menu entries
-
-(defun texinfo-make-menu-list (beginning end level)
- "Make a list of node names and their descriptions.
-Point is left at the end of the menu region, but the menu is not inserted.
-
-First argument is position from which to start making menu list;
-second argument is end of region in which to try to locate entries;
-third argument is the level of the nodes that are the entries.
-
-Node names and descriptions are dotted pairs of strings. Each pair is
-an element of the list. If the description does not exist, the
-element consists only of the node name."
- (goto-char beginning)
- (let (new-menu-list)
- (while (texinfo-menu-locate-entry-p level end)
- (setq new-menu-list
- (cons (cons
- (texinfo-copy-node-name)
- (prog1 "" (forward-line 1)))
- ;; Use following to insert section titles automatically.
- ;; (texinfo-copy-section-title))
- new-menu-list)))
- (reverse new-menu-list)))
-
-(defun texinfo-menu-locate-entry-p (level search-end)
- "Find a node that will be part of menu for this section.
-First argument is a string such as \"section\" specifying the general
-hierarchical level of the menu; second argument is a position
-specifying the end of the search.
-
-The function returns t if the node is found, else nil. It searches
-forward from point, and leaves point at the beginning of the node.
-
-The function finds entries of the same type. Thus `subsections' and
-`unnumberedsubsecs' will appear in the same menu."
- (let ((case-fold-search t))
- (if (re-search-forward
- (concat
- "\\(^@node\\).*\n" ; match node line
- "\\(\\(\\(^@c\\).*\n\\)" ; match comment line, if any
- "\\|" ; or
- "\\(^@ifinfo[ ]*\n\\)\\)?" ; ifinfo line, if any
- (eval
- (cdr (assoc level texinfo-update-menu-same-level-regexps))))
- search-end
- t)
- (goto-char (match-beginning 1)))))
-
-(defun texinfo-copy-node-name ()
- "Return the node name as a string.
-
-Start with point at the beginning of the node line; copy the text
-after the node command up to the first comma on the line, if any, and
-return the text as a string. Leaves point at the beginning of the
-line. If there is no node name, returns an empty string."
-
- (save-excursion
- (buffer-substring
- (progn (forward-word 1) ; skip over node command
- (skip-chars-forward " \t") ; and over spaces
- (point))
- (if (search-forward
- ","
- (save-excursion (end-of-line) (point)) t) ; bound search
- (1- (point))
- (end-of-line) (point)))))
-
-(defun texinfo-copy-section-title ()
- "Return the title of the section as a string.
-The title is used as a description line in the menu when one does not
-already exist.
-
-Move point to the beginning of the appropriate section line by going
-to the start of the text matched by last regexp searched for, which
-must have been done by `texinfo-menu-locate-entry-p'."
-
- ;; could use the same re-search as in `texinfo-menu-locate-entry-p'
- ;; instead of using `match-beginning'; such a variation would be
- ;; more general, but would waste information already collected
-
- (goto-char (match-beginning 7)) ; match section name
-
- (buffer-substring
- (progn (forward-word 1) ; skip over section type
- (skip-chars-forward " \t") ; and over spaces
- (point))
- (progn (end-of-line) (point))))
-
-
-;;; Handling the old menu
-
-(defun texinfo-old-menu-p (beginning first)
- "Move point to the beginning of the menu for this section, if any.
-Otherwise move point to the end of the first node of this section.
-Return t if a menu is found, nil otherwise.
-
-First argument is the position of the beginning of the section in which
-the menu will be located; second argument is the position of the first
-node within the section.
-
-If no menu is found, the function inserts two newlines just before the
-end of the section, and leaves point there where a menu ought to be."
- (goto-char beginning)
- (if (not (re-search-forward "^@menu" first 'goto-end))
- (progn (insert "\n\n") (forward-line -2) nil)
- t))
-
-(defun texinfo-incorporate-descriptions (new-menu-list)
- "Copy the old menu line descriptions that exist to the new menu.
-
-Point must be at beginning of old menu.
-
-If the node-name of the new menu is found in the old menu, insert the
-old description into the new entry.
-
-For this function, the new menu is a list made up of lists of dotted
-pairs in which the first element of the pair is the node name and the
-second element the description. The new menu is changed destructively.
-The old menu is the menu as it appears in the Texinfo file."
-
- (let ((new-menu-list-pointer new-menu-list)
- (end-of-menu (texinfo-menu-end)))
- (while new-menu-list
- (save-excursion ; keep point at beginning of menu
- (if (re-search-forward
- ;; Existing nodes can have the form
- ;; * NODE NAME:: DESCRIPTION
- ;; or
- ;; * MENU ITEM: NODE NAME. DESCRIPTION.
- ;;
- ;; Recognize both when looking for the description.
- (concat "\\* \\(" ; so only menu entries are found
- (regexp-quote (car (car new-menu-list))) "::"
- "\\|"
- ".*: " (regexp-quote (car (car new-menu-list))) "[.,\t\n]"
- "\\)"
- ) ; so only complete entries are found
- end-of-menu
- t)
- (setcdr (car new-menu-list)
- (texinfo-menu-copy-old-description end-of-menu))))
- (setq new-menu-list (cdr new-menu-list)))
- (setq new-menu-list new-menu-list-pointer)))
-
-(defun texinfo-incorporate-menu-entry-names (new-menu-list)
- "Copy any old menu entry names to the new menu.
-
-Point must be at beginning of old menu.
-
-If the node-name of the new menu entry cannot be found in the old
-menu, do nothing.
-
-For this function, the new menu is a list made up of lists of dotted
-pairs in which the first element of the pair is the node name and the
-second element is the description (or nil).
-
-If we find an existing menu entry name, we change the first element of
-the pair to be another dotted pair in which the car is the menu entry
-name and the cdr is the node name.
-
-NEW-MENU-LIST is changed destructively. The old menu is the menu as it
-appears in the texinfo file."
-
- (let ((new-menu-list-pointer new-menu-list)
- (end-of-menu (texinfo-menu-end)))
- (while new-menu-list
- (save-excursion ; keep point at beginning of menu
- (if (re-search-forward
- ;; Existing nodes can have the form
- ;; * NODE NAME:: DESCRIPTION
- ;; or
- ;; * MENU ITEM: NODE NAME. DESCRIPTION.
- ;;
- ;; We're interested in the second case.
- (concat "\\* " ; so only menu entries are found
- "\\(.*\\): " (car (car new-menu-list)) "[.,\t\n]")
- end-of-menu
- t)
- (setcar
- (car new-menu-list) ; replace the node name
- (cons (buffer-substring (match-beginning 1) (match-end 1))
- (car (car new-menu-list)))))
- (setq new-menu-list (cdr new-menu-list))))
- (setq new-menu-list new-menu-list-pointer)))
-
-(defun texinfo-menu-copy-old-description (end-of-menu)
- "Return description field of old menu line as string.
-Point must be located just after the node name. Point left before description.
-Single argument, END-OF-MENU, is position limiting search."
- (skip-chars-forward "[:.,\t\n ]+")
- ;; don't copy a carriage return at line beginning with asterisk!
- ;; do copy a description that begins with an `@'!
- ;; !! Known bug: does not copy descriptions starting with ^|\{?* etc.
- (if (and (looking-at "\\(\\w+\\|@\\)")
- (not (looking-at "\\(^\\* \\|^@end menu\\)")))
- (buffer-substring
- (point)
- (save-excursion
- (re-search-forward "\\(^\\* \\|^@end menu\\)" end-of-menu t)
- (forward-line -1)
- (end-of-line) ; go to end of last description line
- (point)))
- ""))
-
-(defun texinfo-menu-end ()
- "Return position of end of menu, but don't move point.
-Signal an error if not end of menu."
- (save-excursion
- (if (re-search-forward "^@end menu" nil t)
- (point)
- (error "Menu does not have an end."))))
-
-(defun texinfo-delete-old-menu (beginning first)
- "Delete the old menu. Point must be in or after menu.
-First argument is position of the beginning of the section in which
-the menu will be located; second argument is the position of the first
-node within the section."
- ;; No third arg to search, so error if search fails.
- (re-search-backward "^@menu" beginning)
- (delete-region (point)
- (save-excursion
- (re-search-forward "^@end menu" first)
- (point))))
-
-
-;;; Inserting new menu
-
-;; try 32, but perhaps 24 is better
-(defvar texinfo-column-for-description 32
- "*Column at which descriptions start in a Texinfo menu.")
-
-(defun texinfo-insert-menu (menu-list node-name)
- "Insert formatted menu at point.
-Indents the first line of the description, if any, to the value of
-texinfo-column-for-description.
-
-MENU-LIST has form:
-
- \(\(\"node-name1\" . \"description\"\)
- \(\"node-name2\" . \"description\"\) ... \)
-
-However, the description field might be nil.
-
-Also, the node-name field might itself be a dotted pair (call it P) of
-strings instead of just a string. In that case, the car of P
-is the menu entry name, and the cdr of P is the node name."
-
- (insert "@menu\n")
- (while menu-list
- ;; Every menu entry starts with a star and a space.
- (insert "* ")
-
- ;; Insert the node name (and menu entry name, if present).
- (let ((node-part (car (car menu-list))))
- (if (stringp node-part)
- ;; "Double colon" entry line; menu entry and node name are the same,
- (insert (format "%s::" node-part))
- ;; "Single colon" entry line; menu entry and node name are different.
- (insert (format "%s: %s." (car node-part) (cdr node-part)))))
-
- ;; Insert the description, if present.
- (if (cdr (car menu-list))
- (progn
- ;; Move to right place.
- (indent-to texinfo-column-for-description 2)
- ;; Insert description.
- (insert (format "%s" (cdr (car menu-list))))))
-
- (insert "\n") ; end this menu entry
- (setq menu-list (cdr menu-list)))
- (insert "@end menu")
- (message
- "Updated \"%s\" level menu following node: %s ... " level node-name))
-
-
-;;; Starting menu descriptions by inserting titles
-
-(defun texinfo-start-menu-description ()
- "In this menu entry, insert the node's section title as a description.
-Position point at beginning of description ready for editing.
-Do not insert a title if the line contains an existing description.
-
-You will need to edit the inserted text since a useful description
-complements the node name rather than repeats it as a title does."
-
- (interactive)
- (let (beginning end node-name title)
- (save-excursion
- (beginning-of-line)
- (if (search-forward "* " (save-excursion (end-of-line) (point)) t)
- (progn (skip-chars-forward " \t")
- (setq beginning (point)))
- (error "This is not a line in a menu!"))
-
- (cond
- ;; "Double colon" entry line; menu entry and node name are the same,
- ((search-forward "::" (save-excursion (end-of-line) (point)) t)
- (if (looking-at "[ \t]*[^ \t\n]+")
- (error "Descriptive text already exists."))
- (skip-chars-backward ": \t")
- (setq node-name (buffer-substring beginning (point))))
-
- ;; "Single colon" entry line; menu entry and node name are different.
- ((search-forward ":" (save-excursion (end-of-line) (point)) t)
- (skip-chars-forward " \t")
- (setq beginning (point))
- ;; Menu entry line ends in a period, comma, or tab.
- (if (re-search-forward "[.,\t]"
- (save-excursion (forward-line 1) (point)) t)
- (progn
- (if (looking-at "[ \t]*[^ \t\n]+")
- (error "Descriptive text already exists."))
- (skip-chars-backward "., \t")
- (setq node-name (buffer-substring beginning (point))))
- ;; Menu entry line ends in a return.
- (re-search-forward ".*\n"
- (save-excursion (forward-line 1) (point)) t)
- (skip-chars-backward " \t\n")
- (setq node-name (buffer-substring beginning (point)))
- (if (= 0 (length node-name))
- (error "No node name on this line.")
- (insert "."))))
- (t (error "No node name on this line.")))
- ;; Search for node that matches node name, and copy the section title.
- (if (re-search-forward
- (concat
- "^@node[ \t]+"
- node-name
- ".*\n" ; match node line
- "\\("
- "\\(\\(^@c \\|^@comment\\).*\n\\)" ; match comment line, if any
- "\\|" ; or
- "\\(^@ifinfo[ ]*\n\\)" ; ifinfo line, if any
- "\\)?")
- nil t)
- (progn
- (setq title
- (buffer-substring
- ;; skip over section type
- (progn (forward-word 1)
- ;; and over spaces
- (skip-chars-forward " \t")
- (point))
- (progn (end-of-line)
- (skip-chars-backward " \t")
- (point)))))
- (error "Cannot find node to match node name in menu entry.")))
- ;; Return point to the menu and insert the title.
- (end-of-line)
- (delete-region
- (point)
- (save-excursion (skip-chars-backward " \t") (point)))
- (indent-to texinfo-column-for-description 2)
- (save-excursion (insert title))))
-
-
-;;; Handling description indentation
-
-;; Since the make-menu functions indent descriptions, these functions
-;; are useful primarily for indenting a single menu specially.
-
-(defun texinfo-indent-menu-description (column &optional region-p)
- "Indent every description in menu following point to COLUMN.
-Non-nil argument (prefix, if interactive) means indent every
-description in every menu in the region. Does not indent second and
-subsequent lines of a multi-line description."
-
- (interactive
- "nIndent menu descriptions to (column number): \nP")
- (save-excursion
- (save-restriction
- (widen)
- (if (not region-p)
- (progn
- (re-search-forward "^@menu")
- (texinfo-menu-indent-description column)
- (message
- "Indented descriptions in menu. You may save the buffer."))
- ;;else
- (message "Indenting every menu description in region... ")
- (goto-char (region-beginning))
- (while (and (< (point) (region-end))
- (texinfo-locate-menu-p))
- (forward-line 1)
- (texinfo-menu-indent-description column))
- (message "Indenting done. You may save the buffer.")))))
-
-(defun texinfo-menu-indent-description (to-column-number)
- "Indent the Texinfo file menu description to TO-COLUMN-NUMBER.
-Start with point just after the word `menu' in the `@menu' line and
-leave point on the line before the `@end menu' line. Does not indent
-second and subsequent lines of a multi-line description."
- (let* ((beginning-of-next-line (point)))
- (while (< beginning-of-next-line
- (save-excursion ; beginning of end menu line
- (goto-char (texinfo-menu-end))
- (beginning-of-line)
- (point)))
-
- (if (re-search-forward "\\* \\(.*::\\|.*: [^.,\t\n]+[.,\t]\\)"
- (texinfo-menu-end)
- t)
- (progn
- (let ((beginning-white-space (point)))
- (skip-chars-forward " \t") ; skip over spaces
- (if (looking-at "\\(@\\|\\w\\)+") ; if there is text
- (progn
- ;; remove pre-existing indentation
- (delete-region beginning-white-space (point))
- (indent-to-column to-column-number))))))
- ;; position point at beginning of next line
- (forward-line 1)
- (setq beginning-of-next-line (point)))))
-
-
-;;; Making the master menu
-
-(defun texinfo-master-menu (update-all-nodes-menus-p)
- "Make a master menu for a whole Texinfo file.
-Non-nil argument (prefix, if interactive) means first update all
-existing nodes and menus. Remove pre-existing master menu, if there is one.
-
-This function creates a master menu that follows the top node. The
-master menu includes every entry from all the other menus. It
-replaces any existing ordinary menu that follows the top node.
-
-If called with a non-nil argument, this function first updates all the
-menus in the buffer (incorporating descriptions from pre-existing
-menus) before it constructs the master menu.
-
-The function removes the detailed part of an already existing master
-menu. This action depends on the pre-existing master menu using the
-standard `texinfo-master-menu-header'.
-
-The master menu has the following format, which is adapted from the
-recommendation in the Texinfo Manual:
-
- * The first part contains the major nodes in the Texinfo file: the
- nodes for the chapters, chapter-like sections, and the major
- appendices. This includes the indices, so long as they are in
- chapter-like sections, such as unnumbered sections.
-
- * The second and subsequent parts contain a listing of the other,
- lower level menus, in order. This way, an inquirer can go
- directly to a particular node if he or she is searching for
- specific information.
-
-Each of the menus in the detailed node listing is introduced by the
-title of the section containing the menu."
-
- (interactive "P")
- (let ((case-fold-search t))
- (widen)
- (goto-char (point-min))
-
- ;; Move point to location after `top'.
- (if (not (re-search-forward "^@node [ \t]*top[ \t]*\\(,\\|$\\)" nil t))
- (error "This buffer needs a Top node!"))
-
- (let ((first-chapter
- (save-excursion
- (or (re-search-forward "^@node" nil t)
- (error "Too few nodes for a master menu!"))
- (point))))
- (if (search-forward texinfo-master-menu-header first-chapter t)
- (progn
- ;; Check if @detailmenu kludge is used;
- ;; if so, leave point before @detailmenu.
- (search-backward "\n@detailmenu"
- (save-excursion (forward-line -3) (point))
- t)
- ;; Remove detailed master menu listing
- (goto-char (match-beginning 0))
- (let ((end-of-detailed-menu-descriptions
- (save-excursion ; beginning of end menu line
- (goto-char (texinfo-menu-end))
- (beginning-of-line) (forward-char -1)
- (point))))
- (delete-region (point) end-of-detailed-menu-descriptions)))))
-
- (if update-all-nodes-menus-p
- (progn
- (message "Making a master menu in %s ...first updating all nodes... "
- (buffer-name))
- (sleep-for 2)
- (texinfo-update-node (point-min) (point-max))
-
- (message "Updating all menus in %s ... " (buffer-name))
- (sleep-for 2)
- (texinfo-make-menu (point-min) (point-max))))
-
- (message "Now making the master menu in %s... " (buffer-name))
- (sleep-for 2)
- (goto-char (point-min))
- (texinfo-insert-master-menu-list
- (texinfo-master-menu-list))
-
- ;; Remove extra newlines that texinfo-insert-master-menu-list
- ;; may have inserted.
-
- (save-excursion
- (goto-char (point-min))
-
- (if (search-forward texinfo-master-menu-header nil t)
- (progn
- (goto-char (match-beginning 0))
- ;; Check if @detailmenu kludge is used;
- ;; if so, leave point before @detailmenu.
- (search-backward "\n@detailmenu"
- (save-excursion (forward-line -3) (point))
- t)
- (insert "\n")
- (delete-blank-lines)
- (goto-char (point-min))))
-
- (re-search-forward "^@menu")
- (forward-line -1)
- (delete-blank-lines)
-
- (re-search-forward "^@end menu")
- (forward-line 1)
- (delete-blank-lines))
-
- (message
- "Done...completed making master menu. You may save the buffer.")))
-
-(defun texinfo-master-menu-list ()
- "Return a list of menu entries and header lines for the master menu.
-
-Start with the menu for chapters and indices and then find each
-following menu and the title of the node preceding that menu.
-
-The master menu list has this form:
-
- \(\(\(... \"entry-1-2\" \"entry-1\"\) \"title-1\"\)
- \(\(... \"entry-2-2\" \"entry-2-1\"\) \"title-2\"\)
- ...\)
-
-However, there does not need to be a title field."
-
- (let (master-menu-list)
- (while (texinfo-locate-menu-p)
- (setq master-menu-list
- (cons (list
- (texinfo-copy-menu)
- (texinfo-copy-menu-title))
- master-menu-list)))
- (reverse master-menu-list)))
-
-(defun texinfo-insert-master-menu-list (master-menu-list)
- "Format and insert the master menu in the current buffer."
- (goto-char (point-min))
- ;; Insert a master menu only after `Top' node and before next node
- ;; \(or include file if there is no next node\).
- (if (not (re-search-forward "^@node [ \t]*top[ \t]*\\(,\\|$\\)" nil t))
- (error "This buffer needs a Top node!"))
- (let ((first-chapter
- (save-excursion (re-search-forward "^@node\\|^@include") (point))))
- (if (not (re-search-forward "^@menu" first-chapter t))
- (error
- "Buffer lacks ordinary `Top' menu in which to insert master.")))
- (beginning-of-line)
- (delete-region ; buffer must have ordinary top menu
- (point)
- (save-excursion (re-search-forward "^@end menu") (point)))
-
- (save-excursion
- ;; `master-menu-inserted-p' is a kludge to tell
- ;; whether to insert @end detailmenu (see bleow)
- (let (master-menu-inserted-p)
- ;; Handle top of menu
- (insert "\n@menu\n")
- ;; Insert chapter menu entries
- (setq this-very-menu-list (reverse (car (car master-menu-list))))
- ;; Tell user what is going on.
- (message "Inserting chapter menu entry: %s ... " this-very-menu-list)
- (while this-very-menu-list
- (insert "* " (car this-very-menu-list) "\n")
- (setq this-very-menu-list (cdr this-very-menu-list)))
-
- (setq master-menu-list (cdr master-menu-list))
-
- ;; Only insert detailed master menu if there is one....
- (if (car (car master-menu-list))
- (progn (setq master-menu-inserted-p t)
- (insert (concat "\n@detailmenu" texinfo-master-menu-header))))
-
- ;; @detailmenu added 5 Sept 1996 to `texinfo-master-menu-header'
- ;; at Karl Berry's request to avert a bug in `makeinfo';
- ;; all agree this is a bad kludge and should eventually be removed.
- ;; @detailmenu ... @end detailmenu is a noop in `texinfmt.el'.
- ;; See @end detailmenu below;
- ;; also see `texinfo-all-menus-update' above, `texinfo-master-menu',
- ;; `texinfo-multiple-files-update'.
-
- ;; Now, insert all the other menus
-
- ;; The menu master-menu-list has a form like this:
- ;; ((("beta" "alpha") "title-A")
- ;; (("delta" "gamma") "title-B"))
-
- (while master-menu-list
-
- (message
- "Inserting menu for %s .... " (car (cdr (car master-menu-list))))
- ;; insert title of menu section
- (insert "\n" (car (cdr (car master-menu-list))) "\n\n")
-
- ;; insert each menu entry
- (setq this-very-menu-list (reverse (car (car master-menu-list))))
- (while this-very-menu-list
- (insert "* " (car this-very-menu-list) "\n")
- (setq this-very-menu-list (cdr this-very-menu-list)))
-
- (setq master-menu-list (cdr master-menu-list)))
-
- ;; Finish menu
-
- ;; @detailmenu (see note above)
- ;; Only insert @end detailmenu if a master menu was inserted.
- (if master-menu-inserted-p
- (insert "\n@end detailmenu"))
- (insert "\n@end menu\n\n"))))
-
-(defun texinfo-locate-menu-p ()
- "Find the next menu in the texinfo file.
-If found, leave point after word `menu' on the `@menu' line, and return t.
-If a menu is not found, do not move point and return nil."
- (re-search-forward "\\(^@menu\\)" nil t))
-
-(defun texinfo-copy-menu-title ()
- "Return the title of the section preceding the menu as a string.
-If such a title cannot be found, return an empty string. Do not move
-point."
- (let ((case-fold-search t))
- (save-excursion
- (if (re-search-backward
- (concat
- "\\(^@top"
- "\\|" ; or
- texinfo-section-types-regexp ; all other section types
- "\\)")
- nil
- t)
- (progn
- (beginning-of-line)
- (forward-word 1) ; skip over section type
- (skip-chars-forward " \t") ; and over spaces
- (buffer-substring
- (point)
- (progn (end-of-line) (point))))
- ""))))
-
-(defun texinfo-copy-menu ()
- "Return the entries of an existing menu as a list.
-Start with point just after the word `menu' in the `@menu' line
-and leave point on the line before the `@end menu' line."
- (let* (this-menu-list
- (end-of-menu (texinfo-menu-end)) ; position of end of `@end menu'
- (last-entry (save-excursion ; position of beginning of
- ; last `* ' entry
- (goto-char end-of-menu)
- ;; handle multi-line description
- (if (not (re-search-backward "^\\* " nil t))
- (error "No entries in menu."))
- (point))))
- (while (< (point) last-entry)
- (if (re-search-forward "^\\* " end-of-menu t)
- (progn
- (setq this-menu-list
- (cons
- (buffer-substring
- (point)
- ;; copy multi-line descriptions
- (save-excursion
- (re-search-forward "\\(^\\* \\|^@e\\)" nil t)
- (- (point) 3)))
- this-menu-list)))))
- this-menu-list))
-
-
-;;; Determining the hierarchical level in the texinfo file
-
-(defun texinfo-specific-section-type ()
- "Return the specific type of next section, as a string.
-For example, \"unnumberedsubsec\". Return \"top\" for top node.
-
-Searches forward for a section. Hence, point must be before the
-section whose type will be found. Does not move point. Signal an
-error if the node is not the top node and a section is not found."
- (let ((case-fold-search t))
- (save-excursion
- (cond
- ((re-search-forward "^@node [ \t]*top[ \t]*\\(,\\|$\\)"
-;;; Following search limit by cph but causes a bug
-;;; (save-excursion
-;;; (end-of-line)
-;;; (point))
- nil
- t)
- "top")
- ((re-search-forward texinfo-section-types-regexp nil t)
- (buffer-substring-no-properties
- (progn (beginning-of-line) ; copy its name
- (1+ (point)))
- (progn (forward-word 1)
- (point))))
- (t
- (error
- "texinfo-specific-section-type: Chapter or section not found."))))))
-
-(defun texinfo-hierarchic-level ()
- "Return the general hierarchal level of the next node in a texinfo file.
-Thus, a subheading or appendixsubsec is of type subsection."
- (let ((case-fold-search t))
- (cdr (assoc
- (texinfo-specific-section-type)
- texinfo-section-to-generic-alist))))
-
-
-;;; Locating the major positions
-
-(defun texinfo-update-menu-region-beginning (level)
- "Locate beginning of higher level section this section is within.
-Return position of the beginning of the node line; do not move point.
-Thus, if this level is subsection, searches backwards for section node.
-Only argument is a string of the general type of section."
- (let ((case-fold-search t))
- ;; !! Known bug: if section immediately follows top node, this
- ;; returns the beginning of the buffer as the beginning of the
- ;; higher level section.
- (cond
- ((or (string-equal "top" level)
- (string-equal "chapter" level))
- (save-excursion
- (goto-char (point-min))
- (re-search-forward "^@node [ \t]*top[ \t]*\\(,\\|$\\)" nil t)
- (beginning-of-line)
- (point)))
- (t
- (save-excursion
- (re-search-backward
- (concat
- "\\(^@node\\).*\n" ; match node line
- "\\(\\(\\(^@c\\).*\n\\)" ; match comment line, if any
- "\\|" ; or
- "\\(^@ifinfo[ ]*\n\\)\\)?" ; ifinfo line, if any
- (eval
- (cdr (assoc level texinfo-update-menu-higher-regexps))))
- nil
- 'goto-beginning)
- (point))))))
-
-(defun texinfo-update-menu-region-end (level)
- "Locate end of higher level section this section is within.
-Return position; do not move point. Thus, if this level is a
-subsection, find the node for the section this subsection is within.
-If level is top or chapter, returns end of file. Only argument is a
-string of the general type of section."
- (let ((case-fold-search t))
- (save-excursion
- (if (re-search-forward
- (concat
- "\\(^@node\\).*\n" ; match node line
- "\\(\\(\\(^@c\\).*\n\\)" ; match comment line, if any
- "\\|" ; or
- "\\(^@ifinfo[ ]*\n\\)\\)?" ; ifinfo line, if any
- (eval
- ;; Never finds end of level above chapter so goes to end.
- (cdr (assoc level texinfo-update-menu-higher-regexps))))
- nil
- 'goto-end)
- (match-beginning 1)
- (point-max)))))
-
-(defun texinfo-menu-first-node (beginning end)
- "Locate first node of the section the menu will be placed in.
-Return position; do not move point.
-The menu will be located just before this position.
-
-First argument is the position of the beginning of the section in
-which the menu will be located; second argument is the position of the
-end of that region; it limits the search."
-
- (save-excursion
- (goto-char beginning)
- (forward-line 1)
- (re-search-forward "^@node" end t)
- (beginning-of-line)
- (point)))
-
-
-;;; Alists and regular expressions for defining hierarchical levels
-
-(defvar texinfo-section-to-generic-alist
- '(("top" . "top")
-
- ("chapter" . "chapter")
- ("unnumbered" . "chapter")
- ("majorheading" . "chapter")
- ("chapheading" . "chapter")
- ("appendix" . "chapter")
-
- ("section" . "section")
- ("unnumberedsec" . "section")
- ("heading" . "section")
- ("appendixsec" . "section")
-
- ("subsection" . "subsection")
- ("unnumberedsubsec" . "subsection")
- ("subheading" . "subsection")
- ("appendixsubsec" . "subsection")
-
- ("subsubsection" . "subsubsection")
- ("unnumberedsubsubsec" . "subsubsection")
- ("subsubheading" . "subsubsection")
- ("appendixsubsubsec" . "subsubsection"))
- "*An alist of specific and corresponding generic Texinfo section types.
-The keys are strings specifying specific types of section; the values
-are strings of their corresponding general types.")
-
-;; We used to look for just sub, but that found @subtitle.
-(defvar texinfo-section-types-regexp
- "^@\\(chapter \\|sect\\|subs\\|subh\\|unnum\\|major\\|chapheading \\|heading \\|appendix\\)"
- "Regexp matching chapter, section, other headings (but not the top node).")
-
-(defvar texinfo-chapter-level-regexp
- "chapter\\|unnumbered \\|appendix \\|majorheading\\|chapheading"
- "Regular expression matching just the Texinfo chapter level headings.")
-
-(defvar texinfo-section-level-regexp
- "section\\|unnumberedsec\\|heading \\|appendixsec"
- "Regular expression matching just the Texinfo section level headings.")
-
-(defvar texinfo-subsection-level-regexp
- "subsection\\|unnumberedsubsec\\|subheading\\|appendixsubsec"
- "Regular expression matching just the Texinfo subsection level headings.")
-
-(defvar texinfo-subsubsection-level-regexp
- "subsubsection\\|unnumberedsubsubsec\\|subsubheading\\|appendixsubsubsec"
- "Regular expression matching just the Texinfo subsubsection level headings.")
-
-(defvar texinfo-update-menu-same-level-regexps
- '(("top" . "top[ \t]+")
- ("chapter" .
- (concat "\\(^@\\)\\(" texinfo-chapter-level-regexp "\\)[ \t]*"))
- ("section" .
- (concat "\\(^@\\)\\(" texinfo-section-level-regexp "\\)[ \t]*"))
- ("subsection" .
- (concat "\\(^@\\)\\(" texinfo-subsection-level-regexp "\\)[ \t]+"))
- ("subsubsection" .
- (concat "\\(^@\\)\\(" texinfo-subsubsection-level-regexp "\\)[ \t]+")))
- "*Regexps for searching for same level sections in a Texinfo file.
-The keys are strings specifying the general hierarchical level in the
-document; the values are regular expressions.")
-
-(defvar texinfo-update-menu-higher-regexps
- '(("top" . "^@node [ \t]*DIR")
- ("chapter" . "^@node [ \t]*top[ \t]*\\(,\\|$\\)")
- ("section" .
- (concat
- "\\(^@\\("
- texinfo-chapter-level-regexp
- "\\)[ \t]*\\)"))
- ("subsection" .
- (concat
- "\\(^@\\("
- texinfo-section-level-regexp
- "\\|"
- texinfo-chapter-level-regexp
- "\\)[ \t]*\\)"))
- ("subsubsection" .
- (concat
- "\\(^@\\("
- texinfo-subsection-level-regexp
- "\\|"
- texinfo-section-level-regexp
- "\\|"
- texinfo-chapter-level-regexp
- "\\)[ \t]*\\)")))
- "*Regexps for searching for higher level sections in a Texinfo file.
-The keys are strings specifying the general hierarchical level in the
-document; the values are regular expressions.")
-
-(defvar texinfo-update-menu-lower-regexps
- '(("top" .
- (concat
- "\\(^@\\("
- texinfo-chapter-level-regexp
- "\\|"
- texinfo-section-level-regexp
- "\\|"
- texinfo-subsection-level-regexp
- "\\|"
- texinfo-subsubsection-level-regexp
- "\\)[ \t]*\\)"))
- ("chapter" .
- (concat
- "\\(^@\\("
- texinfo-section-level-regexp
- "\\|"
- texinfo-subsection-level-regexp
- "\\|"
- texinfo-subsubsection-level-regexp
- "\\)[ \t]*\\)"))
- ("section" .
- (concat
- "\\(^@\\("
- texinfo-subsection-level-regexp
- "\\|"
- texinfo-subsubsection-level-regexp
- "\\)[ \t]+\\)"))
- ("subsection" .
- (concat
- "\\(^@\\("
- texinfo-subsubsection-level-regexp
- "\\)[ \t]+\\)"))
- ("subsubsection" . "nothing lower"))
- "*Regexps for searching for lower level sections in a Texinfo file.
-The keys are strings specifying the general hierarchical level in the
-document; the values are regular expressions.")
-
-
-;;; Updating a node
-
-;;;###autoload
-(defun texinfo-update-node (&optional beginning end)
- "Without any prefix argument, update the node in which point is located.
-Interactively, a prefix argument means to operate on the region.
-
-The functions for creating or updating nodes and menus, and their
-keybindings, are:
-
- texinfo-update-node (&optional beginning end) \\[texinfo-update-node]
- texinfo-every-node-update () \\[texinfo-every-node-update]
- texinfo-sequential-node-update (&optional region-p)
-
- texinfo-make-menu (&optional region-p) \\[texinfo-make-menu]
- texinfo-all-menus-update () \\[texinfo-all-menus-update]
- texinfo-master-menu ()
-
- texinfo-indent-menu-description (column &optional region-p)
-
-The `texinfo-column-for-description' variable specifies the column to
-which menu descriptions are indented. Its default value is 32."
-
- (interactive
- (if prefix-arg
- (list (point) (mark))))
- (if (null beginning)
- ;; Update a single node.
- (let ((auto-fill-function nil) (auto-fill-hook nil))
- (if (not (re-search-backward "^@node" (point-min) t))
- (error "Node line not found before this position"))
- (texinfo-update-the-node)
- (message "Done...updated the node. You may save the buffer."))
- ;; else
- (let ((auto-fill-function nil)
- (auto-fill-hook nil))
- (save-excursion
- (save-restriction
- (narrow-to-region beginning end)
- (goto-char (point-min))
- (while (re-search-forward "^@node" (point-max) t)
- (beginning-of-line)
- (texinfo-update-the-node))
- (goto-char (point-max))
- (message "Done...nodes updated in region. You may save the buffer."))))))
-
-;;;###autoload
-(defun texinfo-every-node-update ()
- "Update every node in a Texinfo file."
- (interactive)
- (save-excursion
- (texinfo-update-node (point-min) (point-max))
- (message "Done...updated every node. You may save the buffer.")))
-
-(defun texinfo-update-the-node ()
- "Update one node. Point must be at the beginning of node line.
-Leave point at the end of the node line."
- (texinfo-check-for-node-name)
- (texinfo-delete-existing-pointers)
- (message "Updating node: %s ... " (texinfo-copy-node-name))
- (save-restriction
- (widen)
- (let*
- ((case-fold-search t)
- (level (texinfo-hierarchic-level))
- (beginning (texinfo-update-menu-region-beginning level))
- (end (texinfo-update-menu-region-end level)))
- (if (string-equal level "top")
- (texinfo-top-pointer-case)
- ;; else
- (texinfo-insert-pointer beginning end level 'next)
- (texinfo-insert-pointer beginning end level 'previous)
- (texinfo-insert-pointer beginning end level 'up)
- (texinfo-clean-up-node-line)))))
-
-(defun texinfo-top-pointer-case ()
- "Insert pointers in the Top node. This is a special case.
-
-The `Next' pointer is a pointer to a chapter or section at a lower
-hierarchical level in the file. The `Previous' and `Up' pointers are
-to `(dir)'. Point must be at the beginning of the node line, and is
-left at the end of the node line."
-
- (texinfo-clean-up-node-line)
- (insert ", "
- (save-excursion
- ;; There may be an @chapter or other such command between
- ;; the top node line and the next node line, as a title
- ;; for an `ifinfo' section. This @chapter command must
- ;; must be skipped. So the procedure is to search for
- ;; the next `@node' line, and then copy its name.
- (if (re-search-forward "^@node" nil t)
- (progn
- (beginning-of-line)
- (texinfo-copy-node-name))
- " "))
- ", (dir), (dir)"))
-
-(defun texinfo-check-for-node-name ()
- "Determine whether the node has a node name. Prompt for one if not.
-Point must be at beginning of node line. Does not move point."
- (save-excursion
- (let ((initial (texinfo-copy-next-section-title)))
- ;; This is not clean. Use `interactive' to read the arg.
- (forward-word 1) ; skip over node command
- (skip-chars-forward " \t") ; and over spaces
- (if (not (looking-at "[^,\t\n ]+")) ; regexp based on what Info looks for
- ; alternatively, use "[a-zA-Z]+"
- (let ((node-name
- (read-from-minibuffer
- "Node name (use no @, commas, colons, or apostrophes): "
- initial)))
- (insert " " node-name))))))
-
-(defun texinfo-delete-existing-pointers ()
- "Delete `Next', `Previous', and `Up' pointers.
-Starts from the current position of the cursor, and searches forward
-on the line for a comma and if one is found, deletes the rest of the
-line, including the comma. Leaves point at beginning of line."
- (let ((eol-point (save-excursion (end-of-line) (point))))
- (if (search-forward "," eol-point t)
- (delete-region (1- (point)) eol-point)))
- (beginning-of-line))
-
-(defun texinfo-find-pointer (beginning end level direction)
- "Move point to section associated with next, previous, or up pointer.
-Return type of pointer (either `normal' or `no-pointer').
-
-The first and second arguments bound the search for a pointer to the
-beginning and end, respectively, of the enclosing higher level
-section. The third argument is a string specifying the general kind
-of section such as \"chapter\" or \"section\". When looking for the
-`Next' pointer, the section found will be at the same hierarchical
-level in the Texinfo file; when looking for the `Previous' pointer,
-the section found will be at the same or higher hierarchical level in
-the Texinfo file; when looking for the `Up' pointer, the section found
-will be at some level higher in the Texinfo file. The fourth argument
-\(one of 'next, 'previous, or 'up\) specifies whether to find the
-`Next', `Previous', or `Up' pointer."
- (let ((case-fold-search t))
- (cond ((eq direction 'next)
- (forward-line 3) ; skip over current node
- ;; Search for section commands accompanied by node lines;
- ;; ignore section commands in the middle of nodes.
- (if (re-search-forward
- ;; A `Top' node is never a next pointer, so won't find it.
- (concat
- ;; Match node line.
- "\\(^@node\\).*\n"
- ;; Match comment or ifinfo line, if any
- "\\(\\(\\(^@c\\).*\n\\)\\|\\(^@ifinfo[ ]*\n\\)\\)?"
- (eval
- (cdr (assoc level texinfo-update-menu-same-level-regexps))))
- end
- t)
- 'normal
- 'no-pointer))
- ((eq direction 'previous)
- (if (re-search-backward
- (concat
- "\\("
- ;; Match node line.
- "\\(^@node\\).*\n"
- ;; Match comment or ifinfo line, if any
- "\\(\\(\\(^@c\\).*\n\\)\\|\\(^@ifinfo[ ]*\n\\)\\)?"
- (eval
- (cdr (assoc level texinfo-update-menu-same-level-regexps)))
- "\\|"
- ;; Match node line.
- "\\(^@node\\).*\n"
- ;; Match comment or ifinfo line, if any
- "\\(\\(\\(^@c\\).*\n\\)\\|\\(^@ifinfo[ ]*\n\\)\\)?"
- (eval
- (cdr (assoc level texinfo-update-menu-higher-regexps)))
- "\\|"
- ;; Handle `Top' node specially.
- "^@node [ \t]*top[ \t]*\\(,\\|$\\)"
- "\\)")
- beginning
- t)
- 'normal
- 'no-pointer))
- ((eq direction 'up)
- (if (re-search-backward
- (concat
- "\\("
- ;; Match node line.
- "\\(^@node\\).*\n"
- ;; Match comment or ifinfo line, if any
- "\\(\\(\\(^@c\\).*\n\\)\\|\\(^@ifinfo[ ]*\n\\)\\)?"
- (eval (cdr (assoc level texinfo-update-menu-higher-regexps)))
- "\\|"
- ;; Handle `Top' node specially.
- "^@node [ \t]*top[ \t]*\\(,\\|$\\)"
- "\\)")
- (save-excursion
- (goto-char beginning)
- (beginning-of-line)
- (point))
- t)
- 'normal
- 'no-pointer))
- (t
- (error "texinfo-find-pointer: lack proper arguments")))))
-
-(defun texinfo-pointer-name (kind)
- "Return the node name preceding the section command.
-The argument is the kind of section, either `normal' or `no-pointer'."
- (let (name)
- (cond ((eq kind 'normal)
- (end-of-line) ; this handles prev node top case
- (re-search-backward ; when point is already
- "^@node" ; at the beginning of @node line
- (save-excursion (forward-line -3))
- t)
- (setq name (texinfo-copy-node-name)))
- ((eq kind 'no-pointer)
- ;; Don't need to put a blank in the pointer slot,
- ;; since insert "' " always has a space
- (setq name " "))) ; put a blank in the pointer slot
- name))
-
-(defun texinfo-insert-pointer (beginning end level direction)
- "Insert the `Next', `Previous' or `Up' node name at point.
-Move point forward.
-
-The first and second arguments bound the search for a pointer to the
-beginning and end, respectively, of the enclosing higher level
-section. The third argument is the hierarchical level of the Texinfo
-file, a string such as \"section\". The fourth argument is direction
-towards which the pointer is directed, one of `next', `previous', or `up'."
-
- (end-of-line)
- (insert
- ", "
- (save-excursion
- (texinfo-pointer-name
- (texinfo-find-pointer beginning end level direction)))))
-
-(defun texinfo-clean-up-node-line ()
- "Remove extra commas, if any, at end of node line."
- (end-of-line)
- (skip-chars-backward ", ")
- (delete-region (point) (save-excursion (end-of-line) (point))))
-
-
-;;; Updating nodes sequentially
-;; These sequential update functions insert `Next' or `Previous'
-;; pointers that point to the following or preceding nodes even if they
-;; are at higher or lower hierarchical levels. This means that if a
-;; section contains one or more subsections, the section's `Next'
-;; pointer will point to the subsection and not the following section.
-;; (The subsection to which `Next' points will most likely be the first
-;; item on the section's menu.)
-
-;;;###autoload
-(defun texinfo-sequential-node-update (&optional region-p)
- "Update one node (or many) in a Texinfo file with sequential pointers.
-
-This function causes the `Next' or `Previous' pointer to point to the
-immediately preceding or following node, even if it is at a higher or
-lower hierarchical level in the document. Continually pressing `n' or
-`p' takes you straight through the file.
-
-Without any prefix argument, update the node in which point is located.
-Non-nil argument (prefix, if interactive) means update the nodes in the
-marked region.
-
-This command makes it awkward to navigate among sections and
-subsections; it should be used only for those documents that are meant
-to be read like a novel rather than a reference, and for which the
-Info `g*' command is inadequate."
-
- (interactive "P")
- (if (not region-p)
- ;; update a single node
- (let ((auto-fill-function nil) (auto-fill-hook nil))
- (if (not (re-search-backward "^@node" (point-min) t))
- (error "Node line not found before this position."))
- (texinfo-sequentially-update-the-node)
- (message
- "Done...sequentially updated the node . You may save the buffer."))
- ;; else
- (let ((auto-fill-function nil)
- (auto-fill-hook nil)
- (beginning (region-beginning))
- (end (region-end)))
- (if (= end beginning)
- (error "Please mark a region!"))
- (save-restriction
- (narrow-to-region beginning end)
- (goto-char beginning)
- (push-mark (point) t)
- (while (re-search-forward "^@node" (point-max) t)
- (beginning-of-line)
- (texinfo-sequentially-update-the-node))
- (message
- "Done...updated the nodes in sequence. You may save the buffer.")))))
-
-(defun texinfo-sequentially-update-the-node ()
- "Update one node such that the pointers are sequential.
-A `Next' or `Previous' pointer points to any preceding or following node,
-regardless of its hierarchical level."
-
- (texinfo-check-for-node-name)
- (texinfo-delete-existing-pointers)
- (message
- "Sequentially updating node: %s ... " (texinfo-copy-node-name))
- (save-restriction
- (widen)
- (let*
- ((case-fold-search t)
- (level (texinfo-hierarchic-level)))
- (if (string-equal level "top")
- (texinfo-top-pointer-case)
- ;; else
- (texinfo-sequentially-insert-pointer level 'next)
- (texinfo-sequentially-insert-pointer level 'previous)
- (texinfo-sequentially-insert-pointer level 'up)
- (texinfo-clean-up-node-line)))))
-
-(defun texinfo-sequentially-find-pointer (level direction)
- "Find next or previous pointer sequentially in Texinfo file, or up pointer.
-Move point to section associated with the pointer. Find point even if
-it is in a different section.
-
-Return type of pointer (either `normal' or `no-pointer').
-
-The first argument is a string specifying the general kind of section
-such as \"chapter\" or \"section\". The section found will be at the
-same hierarchical level in the Texinfo file, or, in the case of the up
-pointer, some level higher. The second argument (one of `next',
-`previous', or `up') specifies whether to find the `Next', `Previous',
-or `Up' pointer."
- (let ((case-fold-search t))
- (cond ((eq direction 'next)
- (forward-line 3) ; skip over current node
- (if (re-search-forward
- texinfo-section-types-regexp
- (point-max)
- t)
- 'normal
- 'no-pointer))
- ((eq direction 'previous)
- (if (re-search-backward
- texinfo-section-types-regexp
- (point-min)
- t)
- 'normal
- 'no-pointer))
- ((eq direction 'up)
- (if (re-search-backward
- (eval (cdr (assoc level texinfo-update-menu-higher-regexps)))
- beginning
- t)
- 'normal
- 'no-pointer))
- (t
- (error "texinfo-sequential-find-pointer: lack proper arguments")))))
-
-(defun texinfo-sequentially-insert-pointer (level direction)
- "Insert the `Next', `Previous' or `Up' node name at point.
-Move point forward.
-
-The first argument is the hierarchical level of the Texinfo file, a
-string such as \"section\". The second argument is direction, one of
-`next', `previous', or `up'."
-
- (end-of-line)
- (insert
- ", "
- (save-excursion
- (texinfo-pointer-name
- (texinfo-sequentially-find-pointer level direction)))))
-
-
-;;; Inserting `@node' lines
-;; The `texinfo-insert-node-lines' function inserts `@node' lines as needed
-;; before the `@chapter', `@section', and such like lines of a region
-;; in a Texinfo file.
-
-(defun texinfo-insert-node-lines (beginning end &optional title-p)
- "Insert missing `@node' lines in region of Texinfo file.
-Non-nil argument (prefix, if interactive) means also to insert the
-section titles as node names; and also to insert the section titles as
-node names in pre-existing `@node' lines that lack names."
- (interactive "r\nP")
-
- ;; Use marker; after inserting node lines, leave point at end of
- ;; region and mark at beginning.
-
- (let (beginning-marker end-marker title last-section-position)
-
- ;; Save current position on mark ring and set mark to end.
- (push-mark end t)
- (setq end-marker (mark-marker))
-
- (goto-char beginning)
- (while (re-search-forward
- texinfo-section-types-regexp
- end-marker
- 'end)
- ;; Copy title if desired.
- (if title-p
- (progn
- (beginning-of-line)
- (forward-word 1)
- (skip-chars-forward " \t")
- (setq title (buffer-substring
- (point)
- (save-excursion (end-of-line) (point))))))
- ;; Insert node line if necessary.
- (if (re-search-backward
- "^@node"
- ;; Avoid finding previous node line if node lines are close.
- (or last-section-position
- (save-excursion (forward-line -2) (point))) t)
- ;; @node is present, and point at beginning of that line
- (forward-word 1) ; Leave point just after @node.
- ;; Else @node missing; insert one.
- (beginning-of-line) ; Beginning of `@section' line.
- (insert "@node\n")
- (backward-char 1)) ; Leave point just after `@node'.
- ;; Insert title if desired.
- (if title-p
- (progn
- (skip-chars-forward " \t")
- ;; Use regexp based on what info looks for
- ;; (alternatively, use "[a-zA-Z]+");
- ;; this means we only insert a title if none exists.
- (if (not (looking-at "[^,\t\n ]+"))
- (progn
- (beginning-of-line)
- (forward-word 1)
- (insert " " title)
- (message "Inserted title %s ... " title)))))
- ;; Go forward beyond current section title.
- (re-search-forward texinfo-section-types-regexp
- (save-excursion (forward-line 3) (point)) t)
- (setq last-section-position (point))
- (forward-line 1))
-
- ;; Leave point at end of region, mark at beginning.
- (set-mark beginning)
-
- (if title-p
- (message
- "Done inserting node lines and titles. You may save the buffer.")
- (message "Done inserting node lines. You may save the buffer."))))
-
-
-;;; Update and create menus for multi-file Texinfo sources
-
-;; 1. M-x texinfo-multiple-files-update
-;;
-;; Read the include file list of an outer Texinfo file and
-;; update all highest level nodes in the files listed and insert a
-;; main menu in the outer file after its top node.
-
-;; 2. C-u M-x texinfo-multiple-files-update
-;;
-;; Same as 1, but insert a master menu. (Saves reupdating lower
-;; level menus and nodes.) This command simply reads every menu,
-;; so if the menus are wrong, the master menu will be wrong.
-;; Similarly, if the lower level node pointers are wrong, they
-;; will stay wrong.
-
-;; 3. C-u 2 M-x texinfo-multiple-files-update
-;;
-;; Read the include file list of an outer Texinfo file and
-;; update all nodes and menus in the files listed and insert a
-;; master menu in the outer file after its top node.
-
-;;; Note: these functions:
-;;;
-;;; * Do not save or delete any buffers. You may fill up your memory.
-;;; * Do not handle any pre-existing nodes in outer file.
-;;; Hence, you may need a file for indices.
-
-
-;;; Auxiliary functions for multiple file updating
-
-(defun texinfo-multi-file-included-list (outer-file)
- "Return a list of the included files in OUTER-FILE."
- (let ((included-file-list (list outer-file))
- start)
- (save-excursion
- (switch-to-buffer (find-file-noselect outer-file))
- (widen)
- (goto-char (point-min))
- (while (re-search-forward "^@include" nil t)
- (skip-chars-forward " \t")
- (setq start (point))
- (end-of-line)
- (skip-chars-backward " \t")
- (setq included-file-list
- (cons (buffer-substring start (point))
- included-file-list)))
- (nreverse included-file-list))))
-
-(defun texinfo-copy-next-section-title ()
- "Return the name of the immediately following section as a string.
-
-Start with point at the beginning of the node line. Leave point at the
-same place. If there is no title, returns an empty string."
-
- (save-excursion
- (end-of-line)
- (let ((node-end (or
- (save-excursion
- (if (re-search-forward "\\(^@node\\)" nil t)
- (match-beginning 0)))
- (point-max))))
- (if (re-search-forward texinfo-section-types-regexp node-end t)
- (progn
- (beginning-of-line)
- ;; copy title
- (let ((title
- (buffer-substring
- (progn (forward-word 1) ; skip over section type
- (skip-chars-forward " \t") ; and over spaces
- (point))
- (progn (end-of-line) (point)))))
- title))
- ""))))
-
-(defun texinfo-multi-file-update (files &optional update-everything)
- "Update first node pointers in each file in FILES.
-Return a list of the node names.
-
-The first file in the list is an outer file; the remaining are
-files included in the outer file with `@include' commands.
-
-If optional arg UPDATE-EVERYTHING non-nil, update every menu and
-pointer in each of the included files.
-
-Also update the `Top' level node pointers of the outer file.
-
-Requirements:
-
- * the first file in the FILES list must be the outer file,
- * each of the included files must contain exactly one highest
- hierarchical level node,
- * this node must be the first node in the included file,
- * each highest hierarchical level node must be of the same type.
-
-Thus, normally, each included file contains one, and only one, chapter."
-
-;; The menu-list has the form:
-;;
-;; \(\(\"node-name1\" . \"title1\"\)
-;; \(\"node-name2\" . \"title2\"\) ... \)
-;;
-;; However, there does not need to be a title field and this function
-;; does not fill it; however a comment tells you how to do so.
-;; You would use the title field if you wanted to insert titles in the
-;; description slot of a menu as a description.
-
- (let ((case-fold-search t)
- menu-list)
-
- ;; Find the name of the first node of the first included file.
- (switch-to-buffer (find-file-noselect (car (cdr files))))
- (widen)
- (goto-char (point-min))
- (if (not (re-search-forward "^@node" nil t))
- (error "No `@node' line found in %s !" (buffer-name)))
- (beginning-of-line)
- (texinfo-check-for-node-name)
- (setq next-node-name (texinfo-copy-node-name))
-
- (setq menu-list
- (cons (cons
- next-node-name
- (prog1 "" (forward-line 1)))
- ;; Use following to insert section titles automatically.
- ;; (texinfo-copy-next-section-title)
- menu-list))
-
- ;; Go to outer file
- (switch-to-buffer (find-file-noselect (car files)))
- (goto-char (point-min))
- (if (not (re-search-forward "^@node [ \t]*top[ \t]*\\(,\\|$\\)" nil t))
- (error "This buffer needs a Top node!"))
- (beginning-of-line)
- (texinfo-delete-existing-pointers)
- (end-of-line)
- (insert ", " next-node-name ", (dir), (dir)")
- (beginning-of-line)
- (setq previous-node-name "Top")
- (setq files (cdr files))
-
- (while files
-
- (if (not (cdr files))
- ;; No next file
- (setq next-node-name "")
- ;; Else,
- ;; find the name of the first node in the next file.
- (switch-to-buffer (find-file-noselect (car (cdr files))))
- (widen)
- (goto-char (point-min))
- (if (not (re-search-forward "^@node" nil t))
- (error "No `@node' line found in %s !" (buffer-name)))
- (beginning-of-line)
- (texinfo-check-for-node-name)
- (setq next-node-name (texinfo-copy-node-name))
- (setq menu-list
- (cons (cons
- next-node-name
- (prog1 "" (forward-line 1)))
- ;; Use following to insert section titles automatically.
- ;; (texinfo-copy-next-section-title)
- menu-list)))
-
- ;; Go to node to be updated.
- (switch-to-buffer (find-file-noselect (car files)))
- (goto-char (point-min))
- (if (not (re-search-forward "^@node" nil t))
- (error "No `@node' line found in %s !" (buffer-name)))
- (beginning-of-line)
-
- ;; Update other menus and nodes if requested.
- (if update-everything (texinfo-all-menus-update t))
-
- (beginning-of-line)
- (texinfo-delete-existing-pointers)
- (end-of-line)
- (insert ", " next-node-name ", " previous-node-name ", " up-node-name)
-
- (beginning-of-line)
- (setq previous-node-name (texinfo-copy-node-name))
-
- (setq files (cdr files)))
- (nreverse menu-list)))
-
-(defun texinfo-multi-files-insert-main-menu (menu-list)
- "Insert formatted main menu at point.
-Indents the first line of the description, if any, to the value of
-`texinfo-column-for-description'."
-
- (insert "@menu\n")
- (while menu-list
- ;; Every menu entry starts with a star and a space.
- (insert "* ")
-
- ;; Insert the node name (and menu entry name, if present).
- (let ((node-part (car (car menu-list))))
- (if (stringp node-part)
- ;; "Double colon" entry line; menu entry and node name are the same,
- (insert (format "%s::" node-part))
- ;; "Single colon" entry line; menu entry and node name are different.
- (insert (format "%s: %s." (car node-part) (cdr node-part)))))
-
- ;; Insert the description, if present.
- (if (cdr (car menu-list))
- (progn
- ;; Move to right place.
- (indent-to texinfo-column-for-description 2)
- ;; Insert description.
- (insert (format "%s" (cdr (car menu-list))))))
-
- (insert "\n") ; end this menu entry
- (setq menu-list (cdr menu-list)))
- (insert "@end menu"))
-
-(defun texinfo-multi-file-master-menu-list (files-list)
- "Return master menu list from files in FILES-LIST.
-Menu entries in each file collected using `texinfo-master-menu-list'.
-
-The first file in FILES-LIST must be the outer file; the others must
-be the files included within it. A main menu must already exist."
- (save-excursion
- (let (master-menu-list)
- (while files-list
- (switch-to-buffer (find-file-noselect (car files-list)))
- (message "Working on: %s " (current-buffer))
- (goto-char (point-min))
- (setq master-menu-list
- (append master-menu-list (texinfo-master-menu-list)))
- (setq files-list (cdr files-list)))
- master-menu-list)))
-
-
-;;; The multiple-file update function
-
-(defun texinfo-multiple-files-update
- (outer-file &optional update-everything make-master-menu)
- "Update first node pointers in each file included in OUTER-FILE;
-create or update the `Top' level node pointers and the main menu in
-the outer file that refers to such nodes. This does not create or
-update menus or pointers within the included files.
-
-With optional MAKE-MASTER-MENU argument (prefix arg, if interactive),
-insert a master menu in OUTER-FILE in addition to creating or updating
-pointers in the first @node line in each included file and creating or
-updating the `Top' level node pointers of the outer file. This does
-not create or update other menus and pointers within the included
-files.
-
-With optional UPDATE-EVERYTHING argument (numeric prefix arg, if
-interactive), update all the menus and all the `Next', `Previous', and
-`Up' pointers of all the files included in OUTER-FILE before inserting
-a master menu in OUTER-FILE. Also, update the `Top' level node
-pointers of OUTER-FILE.
-
-Notes:
-
- * this command does NOT save any files--you must save the
- outer file and any modified, included files.
-
- * except for the `Top' node, this command does NOT handle any
- pre-existing nodes in the outer file; hence, indices must be
- enclosed in an included file.
-
-Requirements:
-
- * each of the included files must contain exactly one highest
- hierarchical level node,
- * this highest node must be the first node in the included file,
- * each highest hierarchical level node must be of the same type.
-
-Thus, normally, each included file contains one, and only one,
-chapter."
-
- (interactive (cons
- (read-string
- "Name of outer `include' file: "
- (buffer-file-name))
- (cond ((not current-prefix-arg)
- '(nil nil))
- ((listp current-prefix-arg)
- '(t nil)) ; make-master-menu
- ((numberp current-prefix-arg)
- '(t t)) ; update-everything
- )))
-
- (let* ((included-file-list (texinfo-multi-file-included-list outer-file))
- (files included-file-list)
- main-menu-list
- next-node-name
- previous-node-name
- (up-node-name "Top"))
-
-;;; Update the pointers
-;;; and collect the names of the nodes and titles
- (setq main-menu-list (texinfo-multi-file-update files update-everything))
-
-;;; Insert main menu
-
- ;; Go to outer file
- (switch-to-buffer (find-file-noselect (car included-file-list)))
- (if (texinfo-old-menu-p
- (point-min)
- (save-excursion
- (re-search-forward "^@include")
- (beginning-of-line)
- (point)))
-
- ;; If found, leave point after word `menu' on the `@menu' line.
- (progn
- (texinfo-incorporate-descriptions main-menu-list)
- ;; Delete existing menu.
- (beginning-of-line)
- (delete-region
- (point)
- (save-excursion (re-search-forward "^@end menu") (point)))
- ;; Insert main menu
- (texinfo-multi-files-insert-main-menu main-menu-list))
-
- ;; Else no current menu; insert it before `@include'
- (texinfo-multi-files-insert-main-menu main-menu-list))
-
-;;; Insert master menu
-
- (if make-master-menu
- (progn
- ;; First, removing detailed part of any pre-existing master menu
- (goto-char (point-min))
- (if (search-forward texinfo-master-menu-header nil t)
- (progn
- (goto-char (match-beginning 0))
- ;; Check if @detailmenu kludge is used;
- ;; if so, leave point before @detailmenu.
- (search-backward "\n@detailmenu"
- (save-excursion (forward-line -3) (point))
- t)
- ;; Remove detailed master menu listing
- (let ((end-of-detailed-menu-descriptions
- (save-excursion ; beginning of end menu line
- (goto-char (texinfo-menu-end))
- (beginning-of-line) (forward-char -1)
- (point))))
- (delete-region (point) end-of-detailed-menu-descriptions))))
-
- ;; Create a master menu and insert it
- (texinfo-insert-master-menu-list
- (texinfo-multi-file-master-menu-list
- included-file-list)))))
-
- ;; Remove unwanted extra lines.
- (save-excursion
- (goto-char (point-min))
-
- (re-search-forward "^@menu")
- (forward-line -1)
- (insert "\n") ; Ensure at least one blank line.
- (delete-blank-lines)
-
- (re-search-forward "^@end menu")
- (forward-line 1)
- (insert "\n") ; Ensure at least one blank line.
- (delete-blank-lines))
-
- (message "Multiple files updated."))
-
-
-;;; Place `provide' at end of file.
-(provide 'texnfo-upd)
-
-;;; texnfo-upd.el ends here
diff --git a/texinfo/intl/ChangeLog b/texinfo/intl/ChangeLog
deleted file mode 100644
index ecff6f6b2cd..00000000000
--- a/texinfo/intl/ChangeLog
+++ /dev/null
@@ -1,1022 +0,0 @@
-1997-09-06 02:10 Ulrich Drepper <drepper@cygnus.com>
-
- * intlh.inst.in: Reformat copyright.
-
-1997-08-19 15:22 Ulrich Drepper <drepper@cygnus.com>
-
- * dcgettext.c (DCGETTEXT): Remove wrong comment.
-
-1997-08-16 00:13 Ulrich Drepper <drepper@cygnus.com>
-
- * Makefile.in (install-data): Don't change directory to install.
-
-1997-08-01 14:30 Ulrich Drepper <drepper@cygnus.com>
-
- * cat-compat.c: Fix copyright.
-
- * localealias.c: Don't define strchr unless !HAVE_STRCHR.
-
- * loadmsgcat.c: Update copyright. Fix typos.
-
- * l10nflist.c: Don't define strchr unless !HAVE_STRCHR.
- (_nl_make_l10nflist): Handle sponsor and revision correctly.
-
- * gettext.c: Update copyright.
- * gettext.h: Likewise.
- * hash-string.h: Likewise.
-
- * finddomain.c: Remoave dead code. Define strchr only if
- !HAVE_STRCHR.
-
- * explodename.c: Include <sys/types.h>.
-
- * explodename.c: Reformat copyright text.
- (_nl_explode_name): Fix typo.
-
- * dcgettext.c: Define and use __set_errno.
- (guess_category_value): Don't use setlocale if HAVE_LC_MESSAGES is
- not defined.
-
- * bindtextdom.c: Pretty printing.
-
-1997-05-01 02:25 Ulrich Drepper <drepper@cygnus.com>
-
- * dcgettext.c (guess_category_value): Don't depend on
- HAVE_LC_MESSAGES. We don't need the macro here.
- Patch by Bruno Haible <haible@ilog.fr>.
-
- * cat-compat.c (textdomain): DoN't refer to HAVE_SETLOCALE_NULL
- macro. Instead use HAVE_LOCALE_NULL and define it when using
- glibc, as in dcgettext.c.
- Patch by Bruno Haible <haible@ilog.fr>.
-
- * Makefile.in (CPPFLAGS): New variable. Reported by Franc,ois
- Pinard.
-
-Mon Mar 10 06:51:17 1997 Ulrich Drepper <drepper@cygnus.com>
-
- * Makefile.in: Implement handling of libtool.
-
- * gettextP.h: Change data structures for use of generic lowlevel
- i18n file handling.
-
-Wed Dec 4 20:21:18 1996 Ulrich Drepper <drepper@cygnus.com>
-
- * textdomain.c: Put parentheses around arguments of memcpy macro
- definition.
- * localealias.c: Likewise.
- * l10nflist.c: Likewise.
- * finddomain.c: Likewise.
- * bindtextdom.c: Likewise.
- Reported by Thomas Esken.
-
-Mon Nov 25 22:57:51 1996 Ulrich Drepper <drepper@cygnus.com>
-
- * textdomain.c: Move definition of `memcpy` macro to right
- position.
-
-Fri Nov 22 04:01:58 1996 Ulrich Drepper <drepper@cygnus.com>
-
- * finddomain.c [!HAVE_STRING_H && !_LIBC]: Define memcpy using
- bcopy if not already defined. Reported by Thomas Esken.
- * bindtextdom.c: Likewise.
- * l10nflist.c: Likewise.
- * localealias.c: Likewise.
- * textdomain.c: Likewise.
-
-Tue Oct 29 11:10:27 1996 Ulrich Drepper <drepper@cygnus.com>
-
- * Makefile.in (libdir): Change to use exec_prefix instead of
- prefix. Reported by Knut-HåvardAksnes <etokna@eto.ericsson.se>.
-
-Sat Aug 31 03:07:09 1996 Ulrich Drepper <drepper@cygnus.com>
-
- * l10nflist.c (_nl_normalize_codeset): We convert to lower case,
- so don't prepend uppercase `ISO' for only numeric arg.
-
-Fri Jul 19 00:15:46 1996 Ulrich Drepper <drepper@cygnus.com>
-
- * l10nflist.c: Move inclusion of argz.h, ctype.h, stdlib.h after
- definition of _GNU_SOURCE. Patch by Roland McGrath.
-
- * Makefile.in (uninstall): Fix another bug with `for' loop and
- empty arguments. Patch by Jim Meyering. Correct name os
- uninstalled files: no intl- prefix anymore.
-
- * Makefile.in (install-data): Again work around shells which
- cannot handle mpty for list. Reported by Jim Meyering.
-
-Sat Jul 13 18:11:35 1996 Ulrich Drepper <drepper@cygnus.com>
-
- * Makefile.in (install): Split goal. Now depend on install-exec
- and install-data.
- (install-exec, install-data): New goals. Created from former
- install goal.
- Reported by Karl Berry.
-
-Sat Jun 22 04:58:14 1996 Ulrich Drepper <drepper@cygnus.com>
-
- * Makefile.in (MKINSTALLDIRS): New variable. Path to
- mkinstalldirs script.
- (install): use MKINSTALLDIRS variable or if the script is not present
- try to find it in the $top_scrdir).
-
-Wed Jun 19 02:56:56 1996 Ulrich Drepper <drepper@cygnus.com>
-
- * l10nflist.c: Linux libc *partly* includes the argz_* functions.
- Grr. Work around by renaming the static version and use macros
- for renaming.
-
-Tue Jun 18 20:11:17 1996 Ulrich Drepper <drepper@cygnus.com>
-
- * l10nflist.c: Correct presence test macros of __argz_* functions.
-
- * l10nflist.c: Include <argz.h> based on test of it instead when
- __argz_* functions are available.
- Reported by Andreas Schwab.
-
-Thu Jun 13 15:17:44 1996 Ulrich Drepper <drepper@cygnus.com>
-
- * explodename.c, l10nflist.c: Define NULL for dumb systems.
-
-Tue Jun 11 17:05:13 1996 Ulrich Drepper <drepper@cygnus.com>
-
- * intlh.inst.in, libgettext.h (dcgettext): Rename local variable
- result to __result to prevent name clash.
-
- * l10nflist.c, localealias.c, dcgettext.c: Define _GNU_SOURCE to
- get prototype for stpcpy and strcasecmp.
-
- * intlh.inst.in, libgettext.h: Move declaration of
- `_nl_msg_cat_cntr' outside __extension__ block to prevent warning
- from gcc's -Wnested-extern option.
-
-Fri Jun 7 01:58:00 1996 Ulrich Drepper <drepper@cygnus.com>
-
- * Makefile.in (install): Remove comment.
-
-Thu Jun 6 17:28:17 1996 Ulrich Drepper <drepper@cygnus.com>
-
- * Makefile.in (install): Work around for another Buglix stupidity.
- Always use an `else' close for `if's. Reported by Nelson Beebe.
-
- * Makefile.in (intlh.inst): Correct typo in phony rule.
- Reported by Nelson Beebe.
-
-Thu Jun 6 01:49:52 1996 Ulrich Drepper <drepper@cygnus.com>
-
- * dcgettext.c (read_alias_file): Rename variable alloca_list to
- block_list as the macro calls assume.
- Patch by Eric Backus.
-
- * localealias.c [!HAVE_ALLOCA]: Define alloca as macro using
- malloc.
- (read_alias_file): Rename varriabe alloca_list to block_list as the
- macro calls assume.
- Patch by Eric Backus.
-
- * l10nflist.c: Correct conditional for <argz.h> inclusion.
- Reported by Roland McGrath.
-
- * Makefile.in (all): Depend on all-@USE_INCLUDED_LIBINTL@, not
- all-@USE_NLS@.
-
- * Makefile.in (install): intlh.inst comes from local dir, not
- $(srcdir).
-
- * Makefile.in (intlh.inst): Special handling of this goal. If
- used in gettext, this is really a rul to construct this file. If
- used in any other package it is defined as a .PHONY rule with
- empty body.
-
- * finddomain.c: Extract locale file information handling into
- l10nfile.c. Rename local stpcpy__ function to stpcpy.
-
- * dcgettext.c (stpcpy): Add local definition.
-
- * l10nflist.c: Solve some portability problems. Patches partly by
- Thomas Esken. Add local definition of stpcpy.
-
-Tue Jun 4 02:47:49 1996 Ulrich Drepper <drepper@cygnus.com>
-
- * intlh.inst.in: Don't depend including <locale.h> on
- HAVE_LOCALE_H. Instead configure must rewrite this fiile
- depending on the result of the configure run.
-
- * Makefile.in (install): libintl.inst is now called intlh.inst.
- Add rules for updating intlh.inst from intlh.inst.in.
-
- * libintl.inst: Renamed to intlh.inst.in.
-
- * localealias.c, dcgettext.c [__GNUC__]: Define HAVE_ALLOCA to 1
- because gcc has __buitlin_alloca.
- Reported by Roland McGrath.
-
-Mon Jun 3 00:32:16 1996 Ulrich Drepper <drepper@cygnus.com>
-
- * Makefile.in (installcheck): New goal to fulfill needs of
- automake's distcheck.
-
- * Makefile.in (install): Reorder commands so that VERSION is
- found.
-
- * Makefile.in (gettextsrcdir): Now use subdirectory intl/ in
- @datadir@/gettext.
- (COMSRCS): Add l10nfile.c.
- (OBJECTS): Add l10nfile.o.
- (DISTFILES): Rename to DISTFILE.normal. Remove $(DISTFILES.common).
- (DISTFILE.gettext): Remove $(DISTFILES.common).
- (all-gettext): Remove goal.
- (install): If $(PACKAGE) = gettext install, otherwose do nothing. No
- package but gettext itself should install libintl.h + headers.
- (dist): Extend goal to work for gettext, too.
- (dist-gettext): Remove goal.
-
- * dcgettext.c [!HAVE_ALLOCA]: Define macro alloca by using malloc.
-
-Sun Jun 2 17:33:06 1996 Ulrich Drepper <drepper@cygnus.com>
-
- * loadmsgcat.c (_nl_load_domain): Parameter is now comes from
- find_l10nfile.
-
-Sat Jun 1 02:23:03 1996 Ulrich Drepper <drepper@cygnus.com>
-
- * l10nflist.c (__argz_next): Add definition.
-
- * dcgettext.c [!HAVE_ALLOCA]: Add code for handling missing alloca
- code. Use new l10nfile handling.
-
- * localealias.c [!HAVE_ALLOCA]: Add code for handling missing
- alloca code.
-
- * l10nflist.c: Initial revision.
-
-Tue Apr 2 18:51:18 1996 Ulrich Drepper <drepper@myware>
-
- * Makefile.in (all-gettext): New goal. Same as all-yes.
-
-Thu Mar 28 23:01:22 1996 Karl Eichwalder <ke@ke.central.de>
-
- * Makefile.in (gettextsrcdir): Define using @datadir@.
-
-Tue Mar 26 12:39:14 1996 Ulrich Drepper <drepper@myware>
-
- * finddomain.c: Include <ctype.h>. Reported by Roland McGrath.
-
-Sat Mar 23 02:00:35 1996 Ulrich Drepper <drepper@myware>
-
- * finddomain.c (stpcpy): Rename to stpcpy__ to prevent clashing
- with external declaration.
-
-Sat Mar 2 00:47:09 1996 Ulrich Drepper <drepper@myware>
-
- * Makefile.in (all-no): Rename from all_no.
-
-Sat Feb 17 00:25:59 1996 Ulrich Drepper <drepper@myware>
-
- * gettextP.h [loaded_domain]: Array `successor' must now contain up
- to 63 elements (because of codeset name normalization).
-
- * finddomain.c: Implement codeset name normalization.
-
-Thu Feb 15 04:39:09 1996 Ulrich Drepper <drepper@myware>
-
- * Makefile.in (all): Define to `all-@USE_NLS@'.
- (all-yes, all_no): New goals. `all-no' is noop, `all-yes'
- is former all.
-
-Mon Jan 15 21:46:01 1996 Howard Gayle <howard@hal.com>
-
- * localealias.c (alias_compare): Increment string pointers in loop
- of strcasecmp replacement.
-
-Fri Dec 29 21:16:34 1995 Ulrich Drepper <drepper@myware>
-
- * Makefile.in (install-src): Who commented this goal out ? :-)
-
-Fri Dec 29 15:08:16 1995 Ulrich Drepper <drepper@myware>
-
- * dcgettext.c (DCGETTEXT): Save `errno'. Failing system calls
- should not effect it because a missing catalog is no error.
- Reported by Harald K<o:>nig <koenig@tat.physik.uni-tuebingen.de>.
-
-Tue Dec 19 22:09:13 1995 Ulrich Drepper <drepper@myware>
-
- * Makefile.in (Makefile): Explicitly use $(SHELL) for running
- shell scripts.
-
-Fri Dec 15 17:34:59 1995 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
-
- * Makefile.in (install-src): Only install library and header when
- we use the own implementation. Don't do it when using the
- system's gettext or catgets functions.
-
- * dcgettext.c (find_msg): Must not swap domain->hash_size here.
-
-Sat Dec 9 16:24:37 1995 Ulrich Drepper <drepper@myware>
-
- * localealias.c, libintl.inst, libgettext.h, hash-string.h,
- gettextP.h, finddomain.c, dcgettext.c, cat-compat.c:
- Use PARAMS instead of __P. Suggested by Roland McGrath.
-
-Tue Dec 5 11:39:14 1995 Larry Schwimmer <rosebud@cyclone.stanford.edu>
-
- * libgettext.h: Use `#if !defined (_LIBINTL_H)' instead of `#if
- !_LIBINTL_H' because Solaris defines _LIBINTL_H as empty.
-
-Mon Dec 4 15:42:07 1995 Ulrich Drepper <drepper@myware>
-
- * Makefile.in (install-src):
- Install libintl.inst instead of libintl.h.install.
-
-Sat Dec 2 22:51:38 1995 Marcus Daniels <marcus@sysc.pdx.edu>
-
- * cat-compat.c (textdomain):
- Reverse order in which files are tried you load. First
- try local file, when this failed absolute path.
-
-Wed Nov 29 02:03:53 1995 Nelson H. F. Beebe <beebe@math.utah.edu>
-
- * cat-compat.c (bindtextdomain): Add missing { }.
-
-Sun Nov 26 18:21:41 1995 Ulrich Drepper <drepper@myware>
-
- * libintl.inst: Add missing __P definition. Reported by Nelson Beebe.
-
- * Makefile.in:
- Add dummy `all' and `dvi' goals. Reported by Tom Tromey.
-
-Sat Nov 25 16:12:01 1995 Franc,ois Pinard <pinard@iro.umontreal.ca>
-
- * hash-string.h: Capitalize arguments of macros.
-
-Sat Nov 25 12:01:36 1995 Ulrich Drepper <drepper@myware>
-
- * Makefile.in (DISTFILES): Prevent files names longer than 13
- characters. libintl.h.glibc->libintl.glibc,
- libintl.h.install->libintl.inst. Reported by Joshua R. Poulson.
-
-Sat Nov 25 11:31:12 1995 Eric Backus <ericb@lsid.hp.com>
-
- * dcgettext.c: Fix bug in preprocessor conditionals.
-
-Sat Nov 25 02:35:27 1995 Nelson H. F. Beebe <beebe@math.utah.edu>
-
- * libgettext.h: Solaris cc does not understand
- #if !SYMBOL1 && !SYMBOL2. Sad but true.
-
-Thu Nov 23 16:22:14 1995 Ulrich Drepper <drepper@myware>
-
- * hash-string.h (hash_string):
- Fix for machine with >32 bit `unsigned long's.
-
- * dcgettext.c (DCGETTEXT):
- Fix horrible bug in loop for alternative translation.
-
-Thu Nov 23 01:45:29 1995 Ulrich Drepper <drepper@myware>
-
- * po2tbl.sed.in, linux-msg.sed, xopen-msg.sed:
- Some further simplifications in message number generation.
-
-Mon Nov 20 21:08:43 1995 Ulrich Drepper <drepper@myware>
-
- * libintl.h.glibc: Use __const instead of const in prototypes.
-
- * Makefile.in (install-src):
- Install libintl.h.install instead of libintl.h. This
- is a stripped-down version. Suggested by Peter Miller.
-
- * libintl.h.install, libintl.h.glibc: Initial revision.
-
- * localealias.c (_nl_expand_alias, read_alias_file):
- Protect prototypes in type casts by __P.
-
-Tue Nov 14 16:43:58 1995 Ulrich Drepper <drepper@myware>
-
- * hash-string.h: Correct prototype for hash_string.
-
-Sun Nov 12 12:42:30 1995 Ulrich Drepper <drepper@myware>
-
- * hash-string.h (hash_string): Add prototype.
-
- * gettextP.h: Fix copyright.
- (SWAP): Add prototype.
-
-Wed Nov 8 22:56:33 1995 Ulrich Drepper <drepper@myware>
-
- * localealias.c (read_alias_file): Forgot sizeof.
- Avoid calling *printf function. This introduces a big overhead.
- Patch by Roland McGrath.
-
-Tue Nov 7 14:21:08 1995 Ulrich Drepper <drepper@myware>
-
- * finddomain.c, cat-compat.c: Wrong indentation in #if for stpcpy.
-
- * finddomain.c (stpcpy):
- Define substitution function local. The macro was to flaky.
-
- * cat-compat.c: Fix typo.
-
- * xopen-msg.sed, linux-msg.sed:
- While bringing message number to right place only accept digits.
-
- * linux-msg.sed, xopen-msg.sed: Now that the counter does not have
- leading 0s we don't need to remove them. Reported by Marcus
- Daniels.
-
- * Makefile.in (../po/cat-id-tbl.o): Use $(top_srdir) in
- dependency. Reported by Marcus Daniels.
-
- * cat-compat.c: (stpcpy) [!_LIBC && !HAVE_STPCPY]: Define replacement.
- Generally cleanup using #if instead of #ifndef.
-
- * Makefile.in: Correct typos in comment. By Franc,ois Pinard.
-
-Mon Nov 6 00:27:02 1995 Ulrich Drepper <drepper@myware>
-
- * Makefile.in (install-src): Don't install libintl.h and libintl.a
- if we use an available gettext implementation.
-
-Sun Nov 5 22:02:08 1995 Ulrich Drepper <drepper@myware>
-
- * libgettext.h: Fix typo: HAVE_CATGETTS -> HAVE_CATGETS. Reported
- by Franc,ois Pinard.
-
- * libgettext.h: Use #if instead of #ifdef/#ifndef.
-
- * finddomain.c:
- Comments describing what has to be done should start with FIXME.
-
-Sun Nov 5 19:38:01 1995 Ulrich Drepper <drepper@myware>
-
- * Makefile.in (DISTFILES): Split. Use DISTFILES with normal meaning.
- DISTFILES.common names the files common to both dist goals.
- DISTFILES.gettext are the files only distributed in GNU gettext.
-
-Sun Nov 5 17:32:54 1995 Ulrich Drepper <drepper@myware>
-
- * dcgettext.c (DCGETTEXT): Correct searching in derived locales.
- This was necessary since a change in _nl_find_msg several weeks
- ago. I really don't know this is still not fixed.
-
-Sun Nov 5 12:43:12 1995 Ulrich Drepper <drepper@myware>
-
- * loadmsgcat.c (_nl_load_domain): Test for FILENAME == NULL. This
- might mark a special condition.
-
- * finddomain.c (make_entry_rec): Don't make illegal entry as decided.
-
- * Makefile.in (dist): Suppress error message when ln failed.
- Get files from $(srcdir) explicitly.
-
- * libgettext.h (gettext_const): Rename to gettext_noop.
-
-Fri Nov 3 07:36:50 1995 Ulrich Drepper <drepper@myware>
-
- * finddomain.c (make_entry_rec):
- Protect against wrong locale names by testing mask.
-
- * libgettext.h (gettext_const): Add macro definition.
- Capitalize macro arguments.
-
-Thu Nov 2 23:15:51 1995 Ulrich Drepper <drepper@myware>
-
- * finddomain.c (_nl_find_domain):
- Test for pointer != NULL before accessing value.
- Reported by Tom Tromey.
-
- * gettext.c (NULL):
- Define as (void*)0 instad of 0. Reported by Franc,ois Pinard.
-
-Mon Oct 30 21:28:52 1995 Ulrich Drepper <drepper@myware>
-
- * po2tbl.sed.in: Serious typo bug fixed by Jim Meyering.
-
-Sat Oct 28 23:20:47 1995 Ulrich Drepper <drepper@myware>
-
- * libgettext.h: Disable dcgettext optimization for Solaris 2.3.
-
- * localealias.c (alias_compare):
- Peter Miller reported that tolower in some systems is
- even dumber than I thought. Protect call by `isupper'.
-
-Fri Oct 27 22:22:51 1995 Ulrich Drepper <drepper@myware>
-
- * Makefile.in (libdir, includedir): New variables.
- (install-src): Install libintl.a and libintl.h in correct dirs.
-
-Fri Oct 27 22:07:29 1995 Ulrich Drepper <drepper@myware>
-
- * Makefile.in (SOURCES): Fix typo: intrl.compat.c -> intl-compat.c.
-
- * po2tbl.sed.in: Patch for buggy SEDs by Christian von Roques.
-
- * localealias.c:
- Fix typo and superflous test. Reported by Christian von Roques.
-
-Fri Oct 6 11:52:05 1995 Ulrich Drepper <drepper@myware>
-
- * finddomain.c (_nl_find_domain):
- Correct some remainder from the pre-CEN syntax. Now
- we don't have a constant number of successors anymore.
-
-Wed Sep 27 21:41:13 1995 Ulrich Drepper <drepper@myware>
-
- * Makefile.in (DISTFILES): Add libintl.h.glibc.
-
- * Makefile.in (dist-libc): Add goal for packing sources for glibc.
- (COMSRCS, COMHDRS): Splitted to separate sources shared with glibc.
-
- * loadmsgcat.c: Forget to continue #if line.
-
- * localealias.c:
- [_LIBC]: Rename strcasecmp to __strcasecmp to keep ANSI C name
- space clean.
-
- * dcgettext.c, finddomain.c: Better comment to last change.
-
- * loadmsgcat.c:
- [_LIBC]: Rename fstat, open, close, read, mmap, and munmap to
- __fstat, __open, __close, __read, __mmap, and __munmap resp
- to keep ANSI C name space clean.
-
- * finddomain.c:
- [_LIBC]: Rename stpcpy to __stpcpy to keep ANSI C name space clean.
-
- * dcgettext.c:
- [_LIBC]: Rename getced and stpcpy to __getcwd and __stpcpy resp to
- keep ANSI C name space clean.
-
- * libgettext.h:
- Include sys/types.h for those old SysV systems out there.
- Reported by Francesco Potorti`.
-
- * loadmsgcat.c (use_mmap): Define if compiled for glibc.
-
- * bindtextdom.c: Include all those standard headers
- unconditionally if _LIBC is defined.
-
- * finddomain.c: Fix 2 times defiend -> defined.
-
- * textdomain.c: Include libintl.h instead of libgettext.h when
- compiling for glibc. Include all those standard headers
- unconditionally if _LIBC is defined.
-
- * localealias.c, loadmsgcat.c: Prepare to be compiled in glibc.
-
- * gettext.c:
- Include libintl.h instead of libgettext.h when compiling for glibc.
- Get NULL from stddef.h if we compile for glibc.
-
- * finddomain.c: Include libintl.h instead of libgettext.h when
- compiling for glibc. Include all those standard headers
- unconditionally if _LIBC is defined.
-
- * dcgettext.c: Include all those standard headers unconditionally
- if _LIBC is defined.
-
- * dgettext.c: If compiled in glibc include libintl.h instead of
- libgettext.h.
- (locale.h): Don't rely on HAVE_LOCALE_H when compiling for glibc.
-
- * dcgettext.c: If compiled in glibc include libintl.h instead of
- libgettext.h.
- (getcwd): Don't rely on HAVE_GETCWD when compiling for glibc.
-
- * bindtextdom.c:
- If compiled in glibc include libintl.h instead of libgettext.h.
-
-Mon Sep 25 22:23:06 1995 Ulrich Drepper <drepper@myware>
-
- * localealias.c (_nl_expand_alias): Don't call bsearch if NMAP <= 0.
- Reported by Marcus Daniels.
-
- * cat-compat.c (bindtextdomain):
- String used in putenv must not be recycled.
- Reported by Marcus Daniels.
-
- * libgettext.h (__USE_GNU_GETTEXT):
- Additional symbol to signal that we use GNU gettext
- library.
-
- * cat-compat.c (bindtextdomain):
- Fix bug with the strange stpcpy replacement.
- Reported by Nelson Beebe.
-
-Sat Sep 23 08:23:51 1995 Ulrich Drepper <drepper@myware>
-
- * cat-compat.c: Include <string.h> for stpcpy prototype.
-
- * localealias.c (read_alias_file):
- While expand strdup code temporary variable `cp' hided
- higher level variable with same name. Rename to `tp'.
-
- * textdomain.c (textdomain):
- Avoid warning by using temporary variable in strdup code.
-
- * finddomain.c (_nl_find_domain): Remove unused variable `application'.
-
-Thu Sep 21 15:51:44 1995 Ulrich Drepper <drepper@myware>
-
- * localealias.c (alias_compare):
- Use strcasecmp() only if available. Else use
- implementation in place.
-
- * intl-compat.c:
- Wrapper functions now call *__ functions instead of __*.
-
- * libgettext.h: Declare prototypes for *__ functions instead for __*.
-
- * cat-compat.c, loadmsgcat.c:
- Don't use xmalloc, xstrdup, and stpcpy. These functions are not part
- of the standard libc and so prevent libintl.a from being used
- standalone.
-
- * bindtextdom.c:
- Don't use xmalloc, xstrdup, and stpcpy. These functions are not part
- of the standard libc and so prevent libintl.a from being used
- standalone.
- Rename to bindtextdomain__ if not used in GNU C Library.
-
- * dgettext.c:
- Rename function to dgettext__ if not used in GNU C Library.
-
- * gettext.c:
- Don't use xmalloc, xstrdup, and stpcpy. These functions are not part
- of the standard libc and so prevent libintl.a from being used
- standalone.
- Functions now called gettext__ if not used in GNU C Library.
-
- * dcgettext.c, localealias.c, textdomain.c, finddomain.c:
- Don't use xmalloc, xstrdup, and stpcpy. These functions are not part
- of the standard libc and so prevent libintl.a from being used
- standalone.
-
-Sun Sep 17 23:14:49 1995 Ulrich Drepper <drepper@myware>
-
- * finddomain.c: Correct some bugs in handling of CEN standard
- locale definitions.
-
-Thu Sep 7 01:49:28 1995 Ulrich Drepper <drepper@myware>
-
- * finddomain.c: Implement CEN syntax.
-
- * gettextP.h (loaded_domain): Extend number of successors to 31.
-
-Sat Aug 19 19:25:29 1995 Ulrich Drepper <drepper@myware>
-
- * Makefile.in (aliaspath): Remove path to X11 locale dir.
-
- * Makefile.in: Make install-src depend on install. This helps
- gettext to install the sources and other packages can use the
- install goal.
-
-Sat Aug 19 15:19:33 1995 Ulrich Drepper <drepper@myware>
-
- * Makefile.in (uninstall): Remove stuff installed by install-src.
-
-Tue Aug 15 13:13:53 1995 Ulrich Drepper <drepper@myware>
-
- * VERSION.in: Initial revision.
-
- * Makefile.in (DISTFILES):
- Add VERSION file. This is not necessary for gettext, but
- for other packages using this library.
-
-Tue Aug 15 06:16:44 1995 Ulrich Drepper <drepper@myware>
-
- * gettextP.h (_nl_find_domain):
- New prototype after changing search strategy.
-
- * finddomain.c (_nl_find_domain):
- We now try only to find a specified catalog. Fall back to other
- catalogs listed in the locale list is now done in __dcgettext.
-
- * dcgettext.c (__dcgettext):
- Now we provide message fall back even to different languages.
- I.e. if a message is not available in one language all the other
- in the locale list a tried. Formerly fall back was only possible
- within one language. Implemented by moving one loop from
- _nl_find_domain to here.
-
-Mon Aug 14 23:45:50 1995 Ulrich Drepper <drepper@myware>
-
- * Makefile.in (gettextsrcdir):
- Directory where source of GNU gettext library are made
- available.
- (INSTALL, INSTALL_DATA): Programs used for installing sources.
- (gettext-src): New. Rule to install GNU gettext sources for use in
- gettextize shell script.
-
-Sun Aug 13 14:40:48 1995 Ulrich Drepper <drepper@myware>
-
- * loadmsgcat.c (_nl_load_domain):
- Use mmap for loading only when munmap function is
- also available.
-
- * Makefile.in (install): Depend on `all' goal.
-
-Wed Aug 9 11:04:33 1995 Ulrich Drepper <drepper@myware>
-
- * localealias.c (read_alias_file):
- Do not overwrite '\n' when terminating alias value string.
-
- * localealias.c (read_alias_file):
- Handle long lines. Ignore the rest not fitting in
- the buffer after the initial `fgets' call.
-
-Wed Aug 9 00:54:29 1995 Ulrich Drepper <drepper@myware>
-
- * gettextP.h (_nl_load_domain):
- Add prototype, replacing prototype for _nl_load_msg_cat.
-
- * finddomain.c (_nl_find_domain):
- Remove unneeded variable filename and filename_len.
- (expand_alias): Remove prototype because functions does not
- exist anymore.
-
- * localealias.c (read_alias_file):
- Change type of fname_len parameter to int.
- (xmalloc): Add prototype.
-
- * loadmsgcat.c: Better prototypes for xmalloc.
-
-Tue Aug 8 22:30:39 1995 Ulrich Drepper <drepper@myware>
-
- * finddomain.c (_nl_find_domain):
- Allow alias name to be constructed from the four components.
-
- * Makefile.in (aliaspath): New variable. Set to preliminary value.
- (SOURCES): Add localealias.c.
- (OBJECTS): Add localealias.o.
-
- * gettextP.h: Add prototype for _nl_expand_alias.
-
- * finddomain.c: Aliasing handled in intl/localealias.c.
-
- * localealias.c: Aliasing for locale names.
-
- * bindtextdom.c: Better prototypes for xmalloc and xstrdup.
-
-Mon Aug 7 23:47:42 1995 Ulrich Drepper <drepper@myware>
-
- * Makefile.in (DISTFILES): gettext.perl is now found in misc/.
-
- * cat-compat.c (bindtextdomain):
- Correct implementation. dirname parameter was not used.
- Reported by Marcus Daniels.
-
- * gettextP.h (loaded_domain):
- New fields `successor' and `decided' for oo, lazy
- message handling implementation.
-
- * dcgettext.c:
- Adopt for oo, lazy message handliing.
- Now we can inherit translations from less specific locales.
- (find_msg): New function.
-
- * loadmsgcat.c, finddomain.c:
- Complete rewrite. Implement oo, lazy message handling :-).
- We now have an additional environment variable `LANGUAGE' with
- a higher priority than LC_ALL for the LC_MESSAGE locale.
- Here we can set a colon separated list of specifications each
- of the form `language[_territory[.codeset]][@modifier]'.
-
-Sat Aug 5 09:55:42 1995 Ulrich Drepper <drepper@myware>
-
- * finddomain.c (unistd.h):
- Include to get _PC_PATH_MAX defined on system having it.
-
-Fri Aug 4 22:42:00 1995 Ulrich Drepper <drepper@myware>
-
- * finddomain.c (stpcpy): Include prototype.
-
- * Makefile.in (dist): Remove `copying instead' message.
-
-Wed Aug 2 18:52:03 1995 Ulrich Drepper <drepper@myware>
-
- * Makefile.in (ID, TAGS): Do not use $^.
-
-Tue Aug 1 20:07:11 1995 Ulrich Drepper <drepper@myware>
-
- * Makefile.in (TAGS, ID): Use $^ as command argument.
- (TAGS): Give etags -o option t write to current directory,
- not $(srcdir).
- (ID): Use $(srcdir) instead os $(top_srcdir)/src.
- (distclean): Remove ID.
-
-Sun Jul 30 11:51:46 1995 Ulrich Drepper <drepper@myware>
-
- * Makefile.in (gnulocaledir):
- New variable, always using share/ for data directory.
- (DEFS): Add GNULOCALEDIR, used in finddomain.c.
-
- * finddomain.c (_nl_default_dirname):
- Set to GNULOCALEDIR, because it always has to point
- to the directory where GNU gettext Library writes it to.
-
- * intl-compat.c (textdomain, bindtextdomain):
- Undefine macros before function definition.
-
-Sat Jul 22 01:10:02 1995 Ulrich Drepper <drepper@myware>
-
- * libgettext.h (_LIBINTL_H):
- Protect definition in case where this file is included as
- libgettext.h on Solaris machines. Add comment about this.
-
-Wed Jul 19 02:36:42 1995 Ulrich Drepper <drepper@myware>
-
- * intl-compat.c (textdomain): Correct typo.
-
-Wed Jul 19 01:51:35 1995 Ulrich Drepper <drepper@myware>
-
- * dcgettext.c (dcgettext): Function now called __dcgettext.
-
- * dgettext.c (dgettext): Now called __dgettext and calls
- __dcgettext.
-
- * gettext.c (gettext):
- Function now called __gettext and calls __dgettext.
-
- * textdomain.c (textdomain): Function now called __textdomain.
-
- * bindtextdom.c (bindtextdomain): Function now called
- __bindtextdomain.
-
- * intl-compat.c: Initial revision.
-
- * Makefile.in (SOURCES): Add intl-compat.c.
- (OBJECTS): We always compile the GNU gettext library functions.
- OBJECTS contains all objects but cat-compat.o, ../po/cat-if-tbl.o,
- and intl-compat.o.
- (GETTOBJS): Contains now only intl-compat.o.
-
- * libgettext.h:
- Re-include protection matches dualistic character of libgettext.h.
- For all functions in GNU gettext library define __ counter part.
-
- * finddomain.c (strchr): Define as index if not found in C library.
- (_nl_find_domain): For relative paths paste / in between.
-
-Tue Jul 18 16:37:45 1995 Ulrich Drepper <drepper@myware>
-
- * loadmsgcat.c, finddomain.c: Add inclusion of sys/types.h.
-
- * xopen-msg.sed: Fix bug with `msgstr ""' lines.
- A little bit better comments.
-
-Tue Jul 18 01:18:27 1995 Ulrich Drepper <drepper@myware>
-
- * Makefile.in:
- po-mode.el, makelinks, combine-sh are now found in ../misc.
-
- * po-mode.el, makelinks, combine-sh, elisp-comp:
- Moved to ../misc/.
-
- * libgettext.h, gettextP.h, gettext.h: Uniform test for __STDC__.
-
-Sun Jul 16 22:33:02 1995 Ulrich Drepper <drepper@myware>
-
- * Makefile.in (INSTALL, INSTALL_DATA): New variables.
- (install-data, uninstall): Install/uninstall .elc file.
-
- * po-mode.el (Installation comment):
- Add .pox as possible extension of .po files.
-
-Sun Jul 16 13:23:27 1995 Ulrich Drepper <drepper@myware>
-
- * elisp-comp: Complete new version by Franc,ois: This does not
- fail when not compiling in the source directory.
-
-Sun Jul 16 00:12:17 1995 Ulrich Drepper <drepper@myware>
-
- * Makefile.in (../po/cat-id-tbl.o):
- Use $(MAKE) instead of make for recursive make.
-
- * Makefile.in (.el.elc): Use $(SHELL) instead of /bin/sh.
- (install-exec): Add missing dummy goal.
- (install-data, uninstall): @ in multi-line shell command at
- beginning, not in front of echo. Reported by Eric Backus.
-
-Sat Jul 15 00:21:28 1995 Ulrich Drepper <drepper@myware>
-
- * Makefile.in (DISTFILES):
- Rename libgettext.perl to gettext.perl to fit in 14 chars
- file systems.
-
- * gettext.perl:
- Rename to gettext.perl to fit in 14 chars file systems.
-
-Thu Jul 13 23:17:20 1995 Ulrich Drepper <drepper@myware>
-
- * cat-compat.c: If !STDC_HEADERS try to include malloc.h.
-
-Thu Jul 13 20:55:02 1995 Ulrich Drepper <drepper@myware>
-
- * po2tbl.sed.in: Pretty printing.
-
- * linux-msg.sed, xopen-msg.sed:
- Correct bugs with handling substitute flags in branches.
-
- * hash-string.h (hash_string):
- Old K&R compilers don't under stand `unsigned char'.
-
- * gettext.h (nls_uint32):
- Some old K&R compilers (eg HP) don't understand `unsigned int'.
-
- * cat-compat.c (msg_to_cat_id): De-ANSI-fy prototypes.
-
-Thu Jul 13 01:34:33 1995 Ulrich Drepper <drepper@myware>
-
- * Makefile.in (ELCFILES): New variable.
- (DISTFILES): Add elisp-comp.
- Add implicit rule for .el -> .elc compilation.
- (install-data): install $ELCFILES
- (clean): renamed po-to-tbl and po-to-msg to po2tbl and po2msg resp.
-
- * elisp-comp: Initial revision
-
-Wed Jul 12 16:14:52 1995 Ulrich Drepper <drepper@myware>
-
- * Makefile.in:
- cat-id-tbl.c is now found in po/. This enables us to use an identical
- intl/ directory in all packages.
-
- * dcgettext.c (dcgettext): hashing does not work for table size <= 2.
-
- * textdomain.c: fix typo (#if def -> #if defined)
-
-Tue Jul 11 18:44:43 1995 Ulrich Drepper <drepper@myware>
-
- * Makefile.in (stamp-cat-id): use top_srcdir to address source files
- (DISTFILES,distclean): move tupdate.perl to src/
-
- * po-to-tbl.sed.in:
- add additional jump to clear change flag to recognize multiline strings
-
-Tue Jul 11 01:32:50 1995 Ulrich Drepper <drepper@myware>
-
- * textdomain.c: Protect inclusion of stdlib.h and string.h.
-
- * loadmsgcat.c: Protect inclusion of stdlib.h.
-
- * libgettext.h: Protect inclusion of locale.h.
- Allow use in C++ programs.
- Define NULL is not happened already.
-
- * Makefile.in (DISTFILES): ship po-to-tbl.sed.in instead of
- po-to-tbl.sed.
- (distclean): remove po-to-tbl.sed and tupdate.perl.
-
- * tupdate.perl.in: Substitute Perl path even in exec line.
- Don't include entries without translation from old .po file.
-
-Tue Jul 4 00:41:51 1995 Ulrich Drepper <drepper@myware>
-
- * tupdate.perl.in: use "Updated: " in msgid "".
-
- * cat-compat.c: Fix typo (LOCALDIR -> LOCALEDIR).
- Define getenv if !__STDC__.
-
- * bindtextdom.c: Protect stdlib.h and string.h inclusion.
- Define free if !__STDC__.
-
- * finddomain.c: Change DEF_MSG_DOM_DIR to LOCALEDIR.
- Define free if !__STDC__.
-
- * cat-compat.c: Change DEF_MSG_DOM_DIR to LOCALEDIR.
-
-Mon Jul 3 23:56:30 1995 Ulrich Drepper <drepper@myware>
-
- * Makefile.in: Use LOCALEDIR instead of DEF_MSG_DOM_DIR.
- Remove unneeded $(srcdir) from Makefile.in dependency.
-
- * makelinks: Add copyright and short description.
-
- * po-mode.el: Last version for 0.7.
-
- * tupdate.perl.in: Fix die message.
-
- * dcgettext.c: Protect include of string.h.
-
- * gettext.c: Protect include of stdlib.h and further tries to get NULL.
-
- * finddomain.c: Some corrections in includes.
-
- * Makefile.in (INCLUDES): Prune list correct path to Makefile.in.
-
- * po-to-tbl.sed: Adopt for new .po file format.
-
- * linux-msg.sed, xopen-msg.sed: Adopt for new .po file format.
-
-Sun Jul 2 23:55:03 1995 Ulrich Drepper <drepper@myware>
-
- * tupdate.perl.in: Complete rewrite for new .po file format.
-
-Sun Jul 2 02:06:50 1995 Ulrich Drepper <drepper@myware>
-
- * First official release. This directory contains all the code
- needed to internationalize own packages. It provides functions
- which allow to use the X/Open catgets function with an interface
- like the Uniforum gettext function. For system which does not
- have neither of those a complete implementation is provided.
diff --git a/texinfo/intl/Makefile.in b/texinfo/intl/Makefile.in
deleted file mode 100644
index a41fb5796b0..00000000000
--- a/texinfo/intl/Makefile.in
+++ /dev/null
@@ -1,214 +0,0 @@
-# Makefile for directory with message catalog handling in GNU NLS Utilities.
-# Copyright (C) 1995, 1996, 1997 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.
-
-PACKAGE = @PACKAGE@
-VERSION = @VERSION@
-
-SHELL = /bin/sh
-
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
-top_builddir = ..
-VPATH = @srcdir@
-
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-transform = @program_transform_name@
-libdir = $(exec_prefix)/lib
-includedir = $(prefix)/include
-datadir = $(prefix)/@DATADIRNAME@
-localedir = $(datadir)/locale
-gnulocaledir = $(prefix)/share/locale
-gettextsrcdir = @datadir@/gettext/intl
-aliaspath = $(localedir):.
-subdir = intl
-
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-MKINSTALLDIRS = @MKINSTALLDIRS@
-
-l = @l@
-
-AR = ar
-CC = @CC@
-LIBTOOL = @LIBTOOL@
-RANLIB = @RANLIB@
-
-DEFS = -DLOCALEDIR=\"$(localedir)\" -DGNULOCALEDIR=\"$(gnulocaledir)\" \
--DLOCALE_ALIAS_PATH=\"$(aliaspath)\" @DEFS@
-CPPFLAGS = @CPPFLAGS@
-CFLAGS = @CFLAGS@
-LDFLAGS = @LDFLAGS@
-
-COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS)
-
-HEADERS = $(COMHDRS) libgettext.h loadinfo.h
-COMHDRS = gettext.h gettextP.h hash-string.h
-SOURCES = $(COMSRCS) intl-compat.c cat-compat.c
-COMSRCS = bindtextdom.c dcgettext.c dgettext.c gettext.c \
-finddomain.c loadmsgcat.c localealias.c textdomain.c l10nflist.c \
-explodename.c
-OBJECTS = @INTLOBJS@ bindtextdom.$lo dcgettext.$lo dgettext.$lo gettext.$lo \
-finddomain.$lo loadmsgcat.$lo localealias.$lo textdomain.$lo l10nflist.$lo \
-explodename.$lo
-CATOBJS = cat-compat.$lo ../po/cat-id-tbl.$lo
-GETTOBJS = intl-compat.$lo
-DISTFILES.common = ChangeLog Makefile.in linux-msg.sed po2tbl.sed.in \
-xopen-msg.sed $(HEADERS) $(SOURCES)
-DISTFILES.normal = VERSION
-DISTFILES.gettext = libintl.glibc intlh.inst.in
-
-.SUFFIXES:
-.SUFFIXES: .c .o .lo
-.c.o:
- $(COMPILE) $<
-.c.lo:
- $(LIBTOOL) --mode=compile $(COMPILE) $<
-
-INCLUDES = -I.. -I. -I$(top_srcdir)/intl -I$(top_srcdir)/lib
-
-all: all-@USE_INCLUDED_LIBINTL@
-
-all-yes: libintl.$la intlh.inst
-all-no:
-
-libintl.a: $(OBJECTS)
- rm -f $@
- $(AR) cru $@ $(OBJECTS)
- $(RANLIB) $@
-
-libintl.la: $(OBJECTS)
- $(LIBTOOL) --mode=link $(CC) $(LDFLAGS) -o $@ $(OBJECTS) \
- -version-info 1:0 -rpath $(libdir)
-
-../po/cat-id-tbl.$lo: ../po/cat-id-tbl.c $(top_srcdir)/po/$(PACKAGE).pot
- cd ../po && $(MAKE) cat-id-tbl.$lo
-
-check: all
-
-# This installation goal is only used in GNU gettext. Packages which
-# only use the library should use install instead.
-
-# We must not install the libintl.h/libintl.a files if we are on a
-# system which has the gettext() function in its C library or in a
-# separate library or use the catgets interface. A special case is
-# where configure found a previously installed GNU gettext library.
-# If you want to use the one which comes with this version of the
-# package, you have to use `configure --with-included-gettext'.
-install: install-exec install-data
-install-exec: all
- if test "$(PACKAGE)" = "gettext" \
- && test '@INTLOBJS@' = '$(GETTOBJS)'; then \
- if test -r $(MKINSTALLDIRS); then \
- $(MKINSTALLDIRS) $(libdir) $(includedir); \
- else \
- $(top_srcdir)/mkinstalldirs $(libdir) $(includedir); \
- fi; \
- $(INSTALL_DATA) intlh.inst $(includedir)/libintl.h; \
- $(INSTALL_DATA) libintl.a $(libdir)/libintl.a; \
- else \
- : ; \
- fi
-install-data: all
- if test "$(PACKAGE)" = "gettext"; then \
- if test -r $(MKINSTALLDIRS); then \
- $(MKINSTALLDIRS) $(gettextsrcdir); \
- else \
- $(top_srcdir)/mkinstalldirs $(gettextsrcdir); \
- fi; \
- $(INSTALL_DATA) VERSION $(gettextsrcdir)/VERSION; \
- dists="$(DISTFILES.common)"; \
- for file in $$dists; do \
- $(INSTALL_DATA) $(srcdir)/$$file $(gettextsrcdir)/$$file; \
- done; \
- else \
- : ; \
- fi
-
-# Define this as empty until I found a useful application.
-installcheck:
-
-uninstall:
- dists="$(DISTFILES.common)"; \
- for file in $$dists; do \
- rm -f $(gettextsrcdir)/$$file; \
- done
-
-info dvi:
-
-$(OBJECTS): ../config.h libgettext.h
-bindtextdom.$lo finddomain.$lo loadmsgcat.$lo: gettextP.h gettext.h loadinfo.h
-dcgettext.$lo: gettextP.h gettext.h hash-string.h loadinfo.h
-
-tags: TAGS
-
-TAGS: $(HEADERS) $(SOURCES)
- here=`pwd`; cd $(srcdir) && etags -o $$here/TAGS $(HEADERS) $(SOURCES)
-
-id: ID
-
-ID: $(HEADERS) $(SOURCES)
- here=`pwd`; cd $(srcdir) && mkid -f$$here/ID $(HEADERS) $(SOURCES)
-
-
-mostlyclean:
- rm -f *.a *.o *.lo core core.*
-
-clean: mostlyclean
-
-distclean: clean
- rm -f Makefile ID TAGS po2msg.sed po2tbl.sed libintl.h
-
-maintainer-clean: distclean
- @echo "This command is intended for maintainers to use;"
- @echo "it deletes files that may require special tools to rebuild."
-
-
-# GNU gettext needs not contain the file `VERSION' but contains some
-# other files which should not be distributed in other packages.
-distdir = ../$(PACKAGE)-$(VERSION)/$(subdir)
-dist distdir: Makefile $(DISTFILES)
- if test "$(PACKAGE)" = gettext; then \
- additional="$(DISTFILES.gettext)"; \
- else \
- additional="$(DISTFILES.normal)"; \
- fi; \
- for file in $(DISTFILES.common) $$additional; do \
- ln $(srcdir)/$$file $(distdir) 2> /dev/null \
- || cp -p $(srcdir)/$$file $(distdir); \
- done
-
-dist-libc:
- tar zcvf intl-glibc.tar.gz $(COMSRCS) $(COMHDRS) libintl.h.glibc
-
-Makefile: Makefile.in ../config.status
- cd .. \
- && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
-
-# The dependency for intlh.inst is different in gettext and all other
-# packages. Because we cannot you GNU make features we have to solve
-# the problem while rewriting Makefile.in.
-@GT_YES@intlh.inst: intlh.inst.in ../config.status
-@GT_YES@ cd .. \
-@GT_YES@ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= \
-@GT_YES@ $(SHELL) ./config.status
-@GT_NO@.PHONY: intlh.inst
-@GT_NO@intlh.inst:
-
-# Tell versions [3.59,3.63) of GNU make not to export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/texinfo/intl/VERSION b/texinfo/intl/VERSION
deleted file mode 100644
index d31950a61d6..00000000000
--- a/texinfo/intl/VERSION
+++ /dev/null
@@ -1 +0,0 @@
-GNU gettext library from gettext-0.10.32
diff --git a/texinfo/intl/bindtextdom.c b/texinfo/intl/bindtextdom.c
deleted file mode 100644
index 9fcb8d9f29b..00000000000
--- a/texinfo/intl/bindtextdom.c
+++ /dev/null
@@ -1,199 +0,0 @@
-/* Implementation of the bindtextdomain(3) function
- Copyright (C) 1995, 1996, 1997 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. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#if defined STDC_HEADERS || defined _LIBC
-# include <stdlib.h>
-#else
-# ifdef HAVE_MALLOC_H
-# include <malloc.h>
-# else
-void free ();
-# endif
-#endif
-
-#if defined HAVE_STRING_H || defined _LIBC
-# include <string.h>
-#else
-# include <strings.h>
-# ifndef memcpy
-# define memcpy(Dst, Src, Num) bcopy (Src, Dst, Num)
-# endif
-#endif
-
-#ifdef _LIBC
-# include <libintl.h>
-#else
-# include "libgettext.h"
-#endif
-#include "gettext.h"
-#include "gettextP.h"
-
-/* @@ end of prolog @@ */
-
-/* Contains the default location of the message catalogs. */
-extern const char _nl_default_dirname[];
-
-/* List with bindings of specific domains. */
-extern struct binding *_nl_domain_bindings;
-
-
-/* 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 BINDTEXTDOMAIN __bindtextdomain
-# define strdup(str) __strdup (str)
-#else
-# define BINDTEXTDOMAIN bindtextdomain__
-#endif
-
-/* Specify that the DOMAINNAME message catalog will be found
- in DIRNAME rather than in the system locale data base. */
-char *
-BINDTEXTDOMAIN (domainname, dirname)
- const char *domainname;
- const char *dirname;
-{
- struct binding *binding;
-
- /* Some sanity checks. */
- if (domainname == NULL || domainname[0] == '\0')
- return NULL;
-
- 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 (dirname == NULL)
- /* The current binding has be to returned. */
- return binding == NULL ? (char *) _nl_default_dirname : binding->dirname;
-
- if (binding != NULL)
- {
- /* The domain is already bound. If the new value and the old
- one are equal we simply do nothing. Otherwise replace the
- old binding. */
- if (strcmp (dirname, binding->dirname) != 0)
- {
- char *new_dirname;
-
- if (strcmp (dirname, _nl_default_dirname) == 0)
- new_dirname = (char *) _nl_default_dirname;
- else
- {
-#if defined _LIBC || defined HAVE_STRDUP
- new_dirname = strdup (dirname);
- if (new_dirname == NULL)
- return NULL;
-#else
- size_t len = strlen (dirname) + 1;
- new_dirname = (char *) malloc (len);
- if (new_dirname == NULL)
- return NULL;
-
- memcpy (new_dirname, dirname, len);
-#endif
- }
-
- if (binding->dirname != _nl_default_dirname)
- free (binding->dirname);
-
- binding->dirname = new_dirname;
- }
- }
- else
- {
- /* We have to create a new binding. */
- size_t len;
- struct binding *new_binding =
- (struct binding *) malloc (sizeof (*new_binding));
-
- if (new_binding == NULL)
- return NULL;
-
-#if defined _LIBC || defined HAVE_STRDUP
- new_binding->domainname = strdup (domainname);
- if (new_binding->domainname == NULL)
- return NULL;
-#else
- len = strlen (domainname) + 1;
- new_binding->domainname = (char *) malloc (len);
- if (new_binding->domainname == NULL)
- return NULL;
- memcpy (new_binding->domainname, domainname, len);
-#endif
-
- if (strcmp (dirname, _nl_default_dirname) == 0)
- new_binding->dirname = (char *) _nl_default_dirname;
- else
- {
-#if defined _LIBC || defined HAVE_STRDUP
- new_binding->dirname = strdup (dirname);
- if (new_binding->dirname == NULL)
- return NULL;
-#else
- len = strlen (dirname) + 1;
- new_binding->dirname = (char *) malloc (len);
- if (new_binding->dirname == NULL)
- return NULL;
- memcpy (new_binding->dirname, dirname, len);
-#endif
- }
-
- /* Now enqueue it. */
- if (_nl_domain_bindings == NULL
- || strcmp (domainname, _nl_domain_bindings->domainname) < 0)
- {
- new_binding->next = _nl_domain_bindings;
- _nl_domain_bindings = new_binding;
- }
- else
- {
- binding = _nl_domain_bindings;
- while (binding->next != NULL
- && strcmp (domainname, binding->next->domainname) > 0)
- binding = binding->next;
-
- new_binding->next = binding->next;
- binding->next = new_binding;
- }
-
- binding = new_binding;
- }
-
- return binding->dirname;
-}
-
-#ifdef _LIBC
-/* Alias for function name in GNU C Library. */
-weak_alias (__bindtextdomain, bindtextdomain);
-#endif
diff --git a/texinfo/intl/cat-compat.c b/texinfo/intl/cat-compat.c
deleted file mode 100644
index 867d901b8ff..00000000000
--- a/texinfo/intl/cat-compat.c
+++ /dev/null
@@ -1,262 +0,0 @@
-/* Compatibility code for gettext-using-catgets interface.
- Copyright (C) 1995, 1997 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. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <stdio.h>
-
-#ifdef STDC_HEADERS
-# include <stdlib.h>
-# include <string.h>
-#else
-char *getenv ();
-# ifdef HAVE_MALLOC_H
-# include <malloc.h>
-# endif
-#endif
-
-#ifdef HAVE_NL_TYPES_H
-# include <nl_types.h>
-#endif
-
-#include "libgettext.h"
-
-/* @@ end of prolog @@ */
-
-/* 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. And even worse: POSIX
- defines this not at all. So we can use this feature only on selected
- system (e.g. those using GNU C Library). */
-#ifdef _LIBC
-# define HAVE_LOCALE_NULL
-#endif
-
-/* The catalog descriptor. */
-static nl_catd catalog = (nl_catd) -1;
-
-/* Name of the default catalog. */
-static const char default_catalog_name[] = "messages";
-
-/* Name of currently used catalog. */
-static const char *catalog_name = default_catalog_name;
-
-/* Get ID for given string. If not found return -1. */
-static int msg_to_cat_id PARAMS ((const char *msg));
-
-/* Substitution for systems lacking this function in their C library. */
-#if !_LIBC && !HAVE_STPCPY
-static char *stpcpy PARAMS ((char *dest, const char *src));
-#endif
-
-
-/* Set currently used domain/catalog. */
-char *
-textdomain (domainname)
- const char *domainname;
-{
- nl_catd new_catalog;
- char *new_name;
- size_t new_name_len;
- char *lang;
-
-#if defined HAVE_SETLOCALE && defined HAVE_LC_MESSAGES \
- && defined HAVE_LOCALE_NULL
- lang = setlocale (LC_MESSAGES, NULL);
-#else
- lang = getenv ("LC_ALL");
- if (lang == NULL || lang[0] == '\0')
- {
- lang = getenv ("LC_MESSAGES");
- if (lang == NULL || lang[0] == '\0')
- lang = getenv ("LANG");
- }
-#endif
- if (lang == NULL || lang[0] == '\0')
- lang = "C";
-
- /* See whether name of currently used domain is asked. */
- if (domainname == NULL)
- return (char *) catalog_name;
-
- if (domainname[0] == '\0')
- domainname = default_catalog_name;
-
- /* Compute length of added path element. */
- new_name_len = sizeof (LOCALEDIR) - 1 + 1 + strlen (lang)
- + sizeof ("/LC_MESSAGES/") - 1 + sizeof (PACKAGE) - 1
- + sizeof (".cat");
-
- new_name = (char *) malloc (new_name_len);
- if (new_name == NULL)
- return NULL;
-
- strcpy (new_name, PACKAGE);
- new_catalog = catopen (new_name, 0);
-
- if (new_catalog == (nl_catd) -1)
- {
- /* NLSPATH search didn't work, try absolute path */
- sprintf (new_name, "%s/%s/LC_MESSAGES/%s.cat", LOCALEDIR, lang,
- PACKAGE);
- new_catalog = catopen (new_name, 0);
-
- if (new_catalog == (nl_catd) -1)
- {
- free (new_name);
- return (char *) catalog_name;
- }
- }
-
- /* Close old catalog. */
- if (catalog != (nl_catd) -1)
- catclose (catalog);
- if (catalog_name != default_catalog_name)
- free ((char *) catalog_name);
-
- catalog = new_catalog;
- catalog_name = new_name;
-
- return (char *) catalog_name;
-}
-
-char *
-bindtextdomain (domainname, dirname)
- const char *domainname;
- const char *dirname;
-{
-#if HAVE_SETENV || HAVE_PUTENV
- char *old_val, *new_val, *cp;
- size_t new_val_len;
-
- /* This does not make much sense here but to be compatible do it. */
- if (domainname == NULL)
- return NULL;
-
- /* Compute length of added path element. If we use setenv we don't need
- the first byts for NLSPATH=, but why complicate the code for this
- peanuts. */
- new_val_len = sizeof ("NLSPATH=") - 1 + strlen (dirname)
- + sizeof ("/%L/LC_MESSAGES/%N.cat");
-
- old_val = getenv ("NLSPATH");
- if (old_val == NULL || old_val[0] == '\0')
- {
- old_val = NULL;
- new_val_len += 1 + sizeof (LOCALEDIR) - 1
- + sizeof ("/%L/LC_MESSAGES/%N.cat");
- }
- else
- new_val_len += strlen (old_val);
-
- new_val = (char *) malloc (new_val_len);
- if (new_val == NULL)
- return NULL;
-
-# if HAVE_SETENV
- cp = new_val;
-# else
- cp = stpcpy (new_val, "NLSPATH=");
-# endif
-
- cp = stpcpy (cp, dirname);
- cp = stpcpy (cp, "/%L/LC_MESSAGES/%N.cat:");
-
- if (old_val == NULL)
- {
-# if __STDC__
- stpcpy (cp, LOCALEDIR "/%L/LC_MESSAGES/%N.cat");
-# else
-
- cp = stpcpy (cp, LOCALEDIR);
- stpcpy (cp, "/%L/LC_MESSAGES/%N.cat");
-# endif
- }
- else
- stpcpy (cp, old_val);
-
-# if HAVE_SETENV
- setenv ("NLSPATH", new_val, 1);
- free (new_val);
-# else
- putenv (new_val);
- /* Do *not* free the environment entry we just entered. It is used
- from now on. */
-# endif
-
-#endif
-
- return (char *) domainname;
-}
-
-#undef gettext
-char *
-gettext (msg)
- const char *msg;
-{
- int msgid;
-
- if (msg == NULL || catalog == (nl_catd) -1)
- return (char *) msg;
-
- /* Get the message from the catalog. We always use set number 1.
- The message ID is computed by the function `msg_to_cat_id'
- which works on the table generated by `po-to-tbl'. */
- msgid = msg_to_cat_id (msg);
- if (msgid == -1)
- return (char *) msg;
-
- return catgets (catalog, 1, msgid, (char *) msg);
-}
-
-/* Look through the table `_msg_tbl' which has `_msg_tbl_length' entries
- for the one equal to msg. If it is found return the ID. In case when
- the string is not found return -1. */
-static int
-msg_to_cat_id (msg)
- const char *msg;
-{
- int cnt;
-
- for (cnt = 0; cnt < _msg_tbl_length; ++cnt)
- if (strcmp (msg, _msg_tbl[cnt]._msg) == 0)
- return _msg_tbl[cnt]._msg_number;
-
- return -1;
-}
-
-
-/* @@ 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
diff --git a/texinfo/intl/dcgettext.c b/texinfo/intl/dcgettext.c
deleted file mode 100644
index a316bfd1086..00000000000
--- a/texinfo/intl/dcgettext.c
+++ /dev/null
@@ -1,593 +0,0 @@
-/* Implementation of the dcgettext(3) function
- Copyright (C) 1995, 1996, 1997 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. */
-
-#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
-
-#if defined STDC_HEADERS || defined _LIBC
-# include <stdlib.h>
-#else
-char *getenv ();
-# ifdef HAVE_MALLOC_H
-# include <malloc.h>
-# else
-void free ();
-# endif
-#endif
-
-#if defined HAVE_STRING_H || defined _LIBC
-# ifndef _GNU_SOURCE
-# define _GNU_SOURCE 1
-# endif
-# include <string.h>
-#else
-# include <strings.h>
-#endif
-#if !HAVE_STRCHR && !defined _LIBC
-# ifndef strchr
-# define strchr index
-# endif
-#endif
-
-#if defined HAVE_UNISTD_H || defined _LIBC
-# include <unistd.h>
-#endif
-
-#include "gettext.h"
-#include "gettextP.h"
-#ifdef _LIBC
-# include <libintl.h>
-#else
-# include "libgettext.h"
-#endif
-#include "hash-string.h"
-
-/* @@ 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
-# define stpcpy __stpcpy
-#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
-#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
-
-/* 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. And even worse: POSIX
- defines this not at all. So we can use this feature only on selected
- system (e.g. those using GNU C Library). */
-#ifdef _LIBC
-# define HAVE_LOCALE_NULL
-#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. */
-const char _nl_default_dirname[] = GNULOCALEDIR;
-
-/* List with bindings of specific domains created by bindtextdomain()
- calls. */
-struct binding *_nl_domain_bindings;
-
-/* Prototypes for local functions. */
-static char *find_msg PARAMS ((struct loaded_l10nfile *domain_file,
- const char *msgid));
-static const char *category_to_name PARAMS ((int category));
-static const char *guess_category_value PARAMS ((int category,
- const char *categoryname));
-
-
-/* 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 */
-
-
-/* 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 DCGETTEXT __dcgettext
-#else
-# define DCGETTEXT dcgettext__
-#endif
-
-/* Look up MSGID in the DOMAINNAME message catalog for the current CATEGORY
- locale. */
-char *
-DCGETTEXT (domainname, msgid, category)
- const char *domainname;
- const char *msgid;
- 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;
- int saved_errno = errno;
-
- /* If no real MSGID is given return NULL. */
- if (msgid == NULL)
- return NULL;
-
- /* 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
- defintion left this undefined. */
- if (domainname == NULL)
- domainname = _nl_current_default_domain;
-
- /* 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 (binding->dirname[0] == '/')
- 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) PATH_MAX;
- path_max += 2; /* The getcwd docs say to do this. */
-
- dirname = (char *) alloca (path_max + dirname_len);
- ADD_BLOCK (block_list, dirname);
-
- __set_errno (0);
- while ((ret = getcwd (dirname, path_max)) == NULL && errno == ERANGE)
- {
- path_max += PATH_INCR;
- dirname = (char *) alloca (path_max + dirname_len);
- ADD_BLOCK (block_list, dirname);
- __set_errno (0);
- }
-
- 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);
- __set_errno (saved_errno);
- return (char *) msgid;
- }
-
- 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);
-
- xdomainname = (char *) alloca (strlen (categoryname)
- + strlen (domainname) + 5);
- ADD_BLOCK (block_list, xdomainname);
-
- stpcpy (stpcpy (stpcpy (stpcpy (xdomainname, categoryname), "/"),
- domainname),
- ".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 th 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';
- }
-
- /* 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);
- __set_errno (saved_errno);
- return (char *) msgid;
- }
-
-
- /* Find structure describing the message catalog matching the
- DOMAINNAME and CATEGORY. */
- domain = _nl_find_domain (dirname, single_locale, xdomainname);
-
- if (domain != NULL)
- {
- retval = find_msg (domain, msgid);
-
- if (retval == NULL)
- {
- int cnt;
-
- for (cnt = 0; domain->successor[cnt] != NULL; ++cnt)
- {
- retval = find_msg (domain->successor[cnt], msgid);
-
- if (retval != NULL)
- break;
- }
- }
-
- if (retval != NULL)
- {
- FREE_BLOCKS (block_list);
- __set_errno (saved_errno);
- return retval;
- }
- }
- }
- /* NOTREACHED */
-}
-
-#ifdef _LIBC
-/* Alias for function name in GNU C Library. */
-weak_alias (__dcgettext, dcgettext);
-#endif
-
-
-static char *
-find_msg (domain_file, msgid)
- struct loaded_l10nfile *domain_file;
- const char *msgid;
-{
- size_t top, act, bottom;
- struct loaded_domain *domain;
-
- if (domain_file->decided == 0)
- _nl_load_domain (domain_file);
-
- 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));
- nls_uint32 nstr = W (domain->must_swap, domain->hash_tab[idx]);
-
- if (nstr == 0)
- /* Hash table entry is empty. */
- return NULL;
-
- 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)
- return (char *) domain->data + W (domain->must_swap,
- domain->trans_tab[nstr - 1].offset);
-
- while (1)
- {
- if (idx >= domain->hash_size - incr)
- idx -= domain->hash_size - incr;
- else
- idx += incr;
-
- nstr = W (domain->must_swap, domain->hash_tab[idx]);
- if (nstr == 0)
- /* Hash table entry is empty. */
- return NULL;
-
- 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)
- return (char *) domain->data
- + W (domain->must_swap, domain->trans_tab[nstr - 1].offset);
- }
- /* NOTREACHED */
- }
-
- /* Now we try the default method: binary search in the sorted
- array of messages. */
- 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
- break;
- }
-
- /* If an translation is found return this. */
- return bottom >= top ? NULL : (char *) domain->data
- + W (domain->must_swap,
- domain->trans_tab[act].offset);
-}
-
-
-/* Return string representation of locale CATEGORY. */
-static const char *
-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 *
-guess_category_value (category, categoryname)
- int category;
- const char *categoryname;
-{
- const char *retval;
-
- /* The highest priority value is the `LANGUAGE' environment
- variable. This is a GNU extension. */
- retval = getenv ("LANGUAGE");
- if (retval != NULL && retval[0] != '\0')
- return retval;
-
- /* `LANGUAGE' is not set. So 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. */
-#if defined HAVE_SETLOCALE && defined HAVE_LC_MESSAGES && defined HAVE_LOCALE_NULL
- return setlocale (category, NULL);
-#else
- /* Setting of LC_ALL overwrites all other. */
- retval = getenv ("LC_ALL");
- if (retval != NULL && retval[0] != '\0')
- return retval;
-
- /* Next comes the name of the desired category. */
- retval = getenv (categoryname);
- if (retval != NULL && retval[0] != '\0')
- return retval;
-
- /* Last possibility is the LANG environment variable. */
- retval = getenv ("LANG");
- if (retval != NULL && retval[0] != '\0')
- return retval;
-
- /* We use C as the default domain. POSIX says this is implementation
- defined. */
- return "C";
-#endif
-}
-
-/* @@ 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
diff --git a/texinfo/intl/dgettext.c b/texinfo/intl/dgettext.c
deleted file mode 100644
index 2fde6770f79..00000000000
--- a/texinfo/intl/dgettext.c
+++ /dev/null
@@ -1,59 +0,0 @@
-/* dgettext.c -- implementation of the dgettext(3) function
- Copyright (C) 1995 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. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#if defined HAVE_LOCALE_H || defined _LIBC
-# include <locale.h>
-#endif
-
-#ifdef _LIBC
-# include <libintl.h>
-#else
-# include "libgettext.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 DGETTEXT __dgettext
-# define DCGETTEXT __dcgettext
-#else
-# define DGETTEXT dgettext__
-# define DCGETTEXT dcgettext__
-#endif
-
-/* Look up MSGID in the DOMAINNAME message catalog of the current
- LC_MESSAGES locale. */
-char *
-DGETTEXT (domainname, msgid)
- const char *domainname;
- const char *msgid;
-{
- return DCGETTEXT (domainname, msgid, LC_MESSAGES);
-}
-
-#ifdef _LIBC
-/* Alias for function name in GNU C Library. */
-weak_alias (__dgettext, dgettext);
-#endif
diff --git a/texinfo/intl/explodename.c b/texinfo/intl/explodename.c
deleted file mode 100644
index 37c46e9d7b8..00000000000
--- a/texinfo/intl/explodename.c
+++ /dev/null
@@ -1,181 +0,0 @@
-/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
- Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <stdlib.h>
-#include <string.h>
-#include <sys/types.h>
-
-#include "loadinfo.h"
-
-/* On some strange systems still no definition of NULL is found. Sigh! */
-#ifndef NULL
-# if defined __STDC__ && __STDC__
-# define NULL ((void *) 0)
-# else
-# define NULL 0
-# endif
-#endif
-
-/* @@ end of prolog @@ */
-
-int
-_nl_explode_name (name, language, modifier, territory, codeset,
- normalized_codeset, special, sponsor, revision)
- char *name;
- const char **language;
- const char **modifier;
- const char **territory;
- const char **codeset;
- const char **normalized_codeset;
- const char **special;
- const char **sponsor;
- const char **revision;
-{
- enum { undecided, xpg, cen } syntax;
- char *cp;
- int mask;
-
- *modifier = NULL;
- *territory = NULL;
- *codeset = NULL;
- *normalized_codeset = NULL;
- *special = NULL;
- *sponsor = NULL;
- *revision = NULL;
-
- /* Now we determine the single parts of the locale name. First
- look for the language. Termination symbols are `_' and `@' if
- we use XPG4 style, and `_', `+', and `,' if we use CEN syntax. */
- mask = 0;
- syntax = undecided;
- *language = cp = name;
- while (cp[0] != '\0' && cp[0] != '_' && cp[0] != '@'
- && cp[0] != '+' && cp[0] != ',')
- ++cp;
-
- if (*language == cp)
- /* This does not make sense: language has to be specified. Use
- this entry as it is without exploding. Perhaps it is an alias. */
- cp = strchr (*language, '\0');
- else if (cp[0] == '_')
- {
- /* Next is the territory. */
- cp[0] = '\0';
- *territory = ++cp;
-
- while (cp[0] != '\0' && cp[0] != '.' && cp[0] != '@'
- && cp[0] != '+' && cp[0] != ',' && cp[0] != '_')
- ++cp;
-
- mask |= TERRITORY;
-
- if (cp[0] == '.')
- {
- /* Next is the codeset. */
- syntax = xpg;
- cp[0] = '\0';
- *codeset = ++cp;
-
- while (cp[0] != '\0' && cp[0] != '@')
- ++cp;
-
- mask |= XPG_CODESET;
-
- if (*codeset != cp && (*codeset)[0] != '\0')
- {
- *normalized_codeset = _nl_normalize_codeset (*codeset,
- cp - *codeset);
- if (strcmp (*codeset, *normalized_codeset) == 0)
- free ((char *) *normalized_codeset);
- else
- mask |= XPG_NORM_CODESET;
- }
- }
- }
-
- if (cp[0] == '@' || (syntax != xpg && cp[0] == '+'))
- {
- /* Next is the modifier. */
- syntax = cp[0] == '@' ? xpg : cen;
- cp[0] = '\0';
- *modifier = ++cp;
-
- while (syntax == cen && cp[0] != '\0' && cp[0] != '+'
- && cp[0] != ',' && cp[0] != '_')
- ++cp;
-
- mask |= XPG_MODIFIER | CEN_AUDIENCE;
- }
-
- if (syntax != xpg && (cp[0] == '+' || cp[0] == ',' || cp[0] == '_'))
- {
- syntax = cen;
-
- if (cp[0] == '+')
- {
- /* Next is special application (CEN syntax). */
- cp[0] = '\0';
- *special = ++cp;
-
- while (cp[0] != '\0' && cp[0] != ',' && cp[0] != '_')
- ++cp;
-
- mask |= CEN_SPECIAL;
- }
-
- if (cp[0] == ',')
- {
- /* Next is sponsor (CEN syntax). */
- cp[0] = '\0';
- *sponsor = ++cp;
-
- while (cp[0] != '\0' && cp[0] != '_')
- ++cp;
-
- mask |= CEN_SPONSOR;
- }
-
- if (cp[0] == '_')
- {
- /* Next is revision (CEN syntax). */
- cp[0] = '\0';
- *revision = ++cp;
-
- mask |= CEN_REVISION;
- }
- }
-
- /* For CEN syntax values it might be important to have the
- separator character in the file name, not for XPG syntax. */
- if (syntax == xpg)
- {
- if (*territory != NULL && (*territory)[0] == '\0')
- mask &= ~TERRITORY;
-
- if (*codeset != NULL && (*codeset)[0] == '\0')
- mask &= ~XPG_CODESET;
-
- if (*modifier != NULL && (*modifier)[0] == '\0')
- mask &= ~XPG_MODIFIER;
- }
-
- return mask;
-}
diff --git a/texinfo/intl/finddomain.c b/texinfo/intl/finddomain.c
deleted file mode 100644
index ec85d4de4d1..00000000000
--- a/texinfo/intl/finddomain.c
+++ /dev/null
@@ -1,189 +0,0 @@
-/* Handle list of needed message catalogs
- Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
- Written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <ctype.h>
-#include <errno.h>
-#include <stdio.h>
-#include <sys/types.h>
-
-#if defined STDC_HEADERS || defined _LIBC
-# include <stdlib.h>
-#else
-# ifdef HAVE_MALLOC_H
-# include <malloc.h>
-# else
-void free ();
-# endif
-#endif
-
-#if defined HAVE_STRING_H || defined _LIBC
-# include <string.h>
-#else
-# include <strings.h>
-# ifndef memcpy
-# define memcpy(Dst, Src, Num) bcopy (Src, Dst, Num)
-# endif
-#endif
-#if !HAVE_STRCHR && !defined _LIBC
-# ifndef strchr
-# define strchr index
-# endif
-#endif
-
-#if defined HAVE_UNISTD_H || defined _LIBC
-# include <unistd.h>
-#endif
-
-#include "gettext.h"
-#include "gettextP.h"
-#ifdef _LIBC
-# include <libintl.h>
-#else
-# include "libgettext.h"
-#endif
-
-/* @@ end of prolog @@ */
-/* List of already loaded domains. */
-static struct loaded_l10nfile *_nl_loaded_domains;
-
-
-/* Return a data structure describing the message catalog described by
- the DOMAINNAME and CATEGORY parameters with respect to the currently
- established bindings. */
-struct loaded_l10nfile *
-_nl_find_domain (dirname, locale, domainname)
- const char *dirname;
- char *locale;
- const char *domainname;
-{
- struct loaded_l10nfile *retval;
- const char *language;
- const char *modifier;
- const char *territory;
- const char *codeset;
- const char *normalized_codeset;
- const char *special;
- const char *sponsor;
- const char *revision;
- const char *alias_value;
- int mask;
-
- /* LOCALE can consist of up to four recognized parts for the XPG syntax:
-
- language[_territory[.codeset]][@modifier]
-
- and six parts for the CEN syntax:
-
- language[_territory][+audience][+special][,[sponsor][_revision]]
-
- Beside the first all of them are allowed to be missing. If the
- full specified locale is not found, the less specific one are
- looked for. The various part will be stripped of according to
- the following order:
- (1) revision
- (2) sponsor
- (3) special
- (4) codeset
- (5) normalized codeset
- (6) territory
- (7) audience/modifier
- */
-
- /* If we have already tested for this locale entry there has to
- be one data set in the list of loaded domains. */
- retval = _nl_make_l10nflist (&_nl_loaded_domains, dirname,
- strlen (dirname) + 1, 0, locale, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, domainname, 0);
- if (retval != NULL)
- {
- /* We know something about this locale. */
- int cnt;
-
- if (retval->decided == 0)
- _nl_load_domain (retval);
-
- if (retval->data != NULL)
- return retval;
-
- for (cnt = 0; retval->successor[cnt] != NULL; ++cnt)
- {
- if (retval->successor[cnt]->decided == 0)
- _nl_load_domain (retval->successor[cnt]);
-
- if (retval->successor[cnt]->data != NULL)
- break;
- }
- return cnt >= 0 ? retval : NULL;
- /* NOTREACHED */
- }
-
- /* See whether the locale value is an alias. If yes its value
- *overwrites* the alias name. No test for the original value is
- done. */
- alias_value = _nl_expand_alias (locale);
- if (alias_value != NULL)
- {
- size_t len = strlen (alias_value) + 1;
- locale = (char *) malloc (len);
- if (locale == NULL)
- return NULL;
-
- memcpy (locale, alias_value, len);
- }
-
- /* Now we determine the single parts of the locale name. First
- look for the language. Termination symbols are `_' and `@' if
- we use XPG4 style, and `_', `+', and `,' if we use CEN syntax. */
- mask = _nl_explode_name (locale, &language, &modifier, &territory,
- &codeset, &normalized_codeset, &special,
- &sponsor, &revision);
-
- /* Create all possible locale entries which might be interested in
- generalization. */
- retval = _nl_make_l10nflist (&_nl_loaded_domains, dirname,
- strlen (dirname) + 1, mask, language, territory,
- codeset, normalized_codeset, modifier, special,
- sponsor, revision, domainname, 1);
- if (retval == NULL)
- /* This means we are out of core. */
- return NULL;
-
- if (retval->decided == 0)
- _nl_load_domain (retval);
- if (retval->data == NULL)
- {
- int cnt;
- for (cnt = 0; retval->successor[cnt] != NULL; ++cnt)
- {
- if (retval->successor[cnt]->decided == 0)
- _nl_load_domain (retval->successor[cnt]);
- if (retval->successor[cnt]->data != NULL)
- break;
- }
- }
-
- /* The room for an alias was dynamically allocated. Free it now. */
- if (alias_value != NULL)
- free (locale);
-
- return retval;
-}
diff --git a/texinfo/intl/gettext.c b/texinfo/intl/gettext.c
deleted file mode 100644
index 1336d21e7c9..00000000000
--- a/texinfo/intl/gettext.c
+++ /dev/null
@@ -1,70 +0,0 @@
-/* Implementation of gettext(3) function
- Copyright (C) 1995, 1997 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. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#ifdef _LIBC
-# define __need_NULL
-# include <stddef.h>
-#else
-# ifdef STDC_HEADERS
-# include <stdlib.h> /* Just for NULL. */
-# else
-# ifdef HAVE_STRING_H
-# include <string.h>
-# else
-# define NULL ((void *) 0)
-# endif
-# endif
-#endif
-
-#ifdef _LIBC
-# include <libintl.h>
-#else
-# include "libgettext.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 GETTEXT __gettext
-# define DGETTEXT __dgettext
-#else
-# define GETTEXT gettext__
-# define DGETTEXT dgettext__
-#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 *
-GETTEXT (msgid)
- const char *msgid;
-{
- return DGETTEXT (NULL, msgid);
-}
-
-#ifdef _LIBC
-/* Alias for function name in GNU C Library. */
-weak_alias (__gettext, gettext);
-#endif
diff --git a/texinfo/intl/gettext.h b/texinfo/intl/gettext.h
deleted file mode 100644
index 6b4b9e3316c..00000000000
--- a/texinfo/intl/gettext.h
+++ /dev/null
@@ -1,105 +0,0 @@
-/* Internal header for GNU gettext internationalization functions
- Copyright (C) 1995, 1997 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 Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. 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 <stdio.h>
-
-#if HAVE_LIMITS_H || _LIBC
-# include <limits.h>
-#endif
-
-/* @@ 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
- doing that would require that the configure script compile and *run*
- the resulting executable. Locally running cross-compiled executables
- is usually not possible. */
-
-#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/texinfo/intl/gettextP.h b/texinfo/intl/gettextP.h
deleted file mode 100644
index bb8d55235ad..00000000000
--- a/texinfo/intl/gettextP.h
+++ /dev/null
@@ -1,73 +0,0 @@
-/* Header describing internals of gettext library
- Copyright (C) 1995, 1996, 1997 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 _GETTEXTP_H
-#define _GETTEXTP_H
-
-#include "loadinfo.h"
-
-/* @@ end of prolog @@ */
-
-#ifndef PARAMS
-# if __STDC__
-# define PARAMS(args) args
-# else
-# define PARAMS(args) ()
-# endif
-#endif
-
-#ifndef W
-# define W(flag, data) ((flag) ? SWAP (data) : (data))
-#endif
-
-
-static nls_uint32 SWAP PARAMS ((nls_uint32 i));
-
-static inline nls_uint32
-SWAP (i)
- nls_uint32 i;
-{
- return (i << 24) | ((i & 0xff00) << 8) | ((i >> 8) & 0xff00) | (i >> 24);
-}
-
-
-struct loaded_domain
-{
- const char *data;
- int must_swap;
- nls_uint32 nstrings;
- struct string_desc *orig_tab;
- struct string_desc *trans_tab;
- nls_uint32 hash_size;
- nls_uint32 *hash_tab;
-};
-
-struct binding
-{
- struct binding *next;
- char *domainname;
- char *dirname;
-};
-
-struct loaded_l10nfile *_nl_find_domain PARAMS ((const char *__dirname,
- char *__locale,
- const char *__domainname));
-void _nl_load_domain PARAMS ((struct loaded_l10nfile *__domain));
-
-/* @@ begin of epilog @@ */
-
-#endif /* gettextP.h */
diff --git a/texinfo/intl/hash-string.h b/texinfo/intl/hash-string.h
deleted file mode 100644
index e66e8417a97..00000000000
--- a/texinfo/intl/hash-string.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/* Implements a string hashing function.
- Copyright (C) 1995, 1997 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 Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA. */
-
-#ifdef HAVE_VALUES_H
-# include <values.h>
-#endif
-
-/* @@ end of prolog @@ */
-
-#ifndef PARAMS
-# if __STDC__
-# define PARAMS(Args) Args
-# else
-# define PARAMS(Args) ()
-# endif
-#endif
-
-/* We assume to have `unsigned long int' value with at least 32 bits. */
-#define HASHWORDBITS 32
-
-
-/* Defines the so called `hashpjw' function by P.J. Weinberger
- [see Aho/Sethi/Ullman, COMPILERS: Principles, Techniques and Tools,
- 1986, 1987 Bell Telephone Laboratories, Inc.] */
-static unsigned long hash_string PARAMS ((const char *__str_param));
-
-static inline unsigned long
-hash_string (str_param)
- const char *str_param;
-{
- unsigned long int hval, g;
- const char *str = str_param;
-
- /* Compute the hash value for the given string. */
- hval = 0;
- while (*str != '\0')
- {
- hval <<= 4;
- hval += (unsigned long) *str++;
- g = hval & ((unsigned long) 0xf << (HASHWORDBITS - 4));
- if (g != 0)
- {
- hval ^= g >> (HASHWORDBITS - 8);
- hval ^= g;
- }
- }
- return hval;
-}
diff --git a/texinfo/intl/intl-compat.c b/texinfo/intl/intl-compat.c
deleted file mode 100644
index 503efa0fa9c..00000000000
--- a/texinfo/intl/intl-compat.c
+++ /dev/null
@@ -1,76 +0,0 @@
-/* intl-compat.c - Stub functions to call gettext functions from GNU gettext
- Library.
- Copyright (C) 1995 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. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include "libgettext.h"
-
-/* @@ end of prolog @@ */
-
-
-#undef gettext
-#undef dgettext
-#undef dcgettext
-#undef textdomain
-#undef bindtextdomain
-
-
-char *
-bindtextdomain (domainname, dirname)
- const char *domainname;
- const char *dirname;
-{
- return bindtextdomain__ (domainname, dirname);
-}
-
-
-char *
-dcgettext (domainname, msgid, category)
- const char *domainname;
- const char *msgid;
- int category;
-{
- return dcgettext__ (domainname, msgid, category);
-}
-
-
-char *
-dgettext (domainname, msgid)
- const char *domainname;
- const char *msgid;
-{
- return dgettext__ (domainname, msgid);
-}
-
-
-char *
-gettext (msgid)
- const char *msgid;
-{
- return gettext__ (msgid);
-}
-
-
-char *
-textdomain (domainname)
- const char *domainname;
-{
- return textdomain__ (domainname);
-}
diff --git a/texinfo/intl/l10nflist.c b/texinfo/intl/l10nflist.c
deleted file mode 100644
index 4e2bc130950..00000000000
--- a/texinfo/intl/l10nflist.c
+++ /dev/null
@@ -1,409 +0,0 @@
-/* Handle list of needed message catalogs
- Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
- Written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-
-#if defined HAVE_STRING_H || defined _LIBC
-# ifndef _GNU_SOURCE
-# define _GNU_SOURCE 1
-# endif
-# include <string.h>
-#else
-# include <strings.h>
-# ifndef memcpy
-# define memcpy(Dst, Src, Num) bcopy (Src, Dst, Num)
-# endif
-#endif
-#if !HAVE_STRCHR && !defined _LIBC
-# ifndef strchr
-# define strchr index
-# endif
-#endif
-
-#if defined _LIBC || defined HAVE_ARGZ_H
-# include <argz.h>
-#endif
-#include <ctype.h>
-#include <sys/types.h>
-
-#if defined STDC_HEADERS || defined _LIBC
-# include <stdlib.h>
-#endif
-
-#include "loadinfo.h"
-
-/* On some strange systems still no definition of NULL is found. Sigh! */
-#ifndef NULL
-# if defined __STDC__ && __STDC__
-# define NULL ((void *) 0)
-# else
-# define NULL 0
-# endif
-#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 stpcpy(dest, src) __stpcpy(dest, src)
-#else
-# ifndef HAVE_STPCPY
-static char *stpcpy PARAMS ((char *dest, const char *src));
-# endif
-#endif
-
-/* Define function which are usually not available. */
-
-#if !defined _LIBC && !defined HAVE___ARGZ_COUNT
-/* Returns the number of strings in ARGZ. */
-static size_t argz_count__ PARAMS ((const char *argz, size_t len));
-
-static size_t
-argz_count__ (argz, len)
- const char *argz;
- size_t len;
-{
- size_t count = 0;
- while (len > 0)
- {
- size_t part_len = strlen (argz);
- argz += part_len + 1;
- len -= part_len + 1;
- count++;
- }
- return count;
-}
-# undef __argz_count
-# define __argz_count(argz, len) argz_count__ (argz, len)
-#endif /* !_LIBC && !HAVE___ARGZ_COUNT */
-
-#if !defined _LIBC && !defined HAVE___ARGZ_STRINGIFY
-/* Make '\0' separated arg vector ARGZ printable by converting all the '\0's
- except the last into the character SEP. */
-static void argz_stringify__ PARAMS ((char *argz, size_t len, int sep));
-
-static void
-argz_stringify__ (argz, len, sep)
- char *argz;
- size_t len;
- int sep;
-{
- while (len > 0)
- {
- size_t part_len = strlen (argz);
- argz += part_len;
- len -= part_len + 1;
- if (len > 0)
- *argz++ = sep;
- }
-}
-# undef __argz_stringify
-# define __argz_stringify(argz, len, sep) argz_stringify__ (argz, len, sep)
-#endif /* !_LIBC && !HAVE___ARGZ_STRINGIFY */
-
-#if !defined _LIBC && !defined HAVE___ARGZ_NEXT
-static char *argz_next__ PARAMS ((char *argz, size_t argz_len,
- const char *entry));
-
-static char *
-argz_next__ (argz, argz_len, entry)
- char *argz;
- size_t argz_len;
- const char *entry;
-{
- if (entry)
- {
- if (entry < argz + argz_len)
- entry = strchr (entry, '\0') + 1;
-
- return entry >= argz + argz_len ? NULL : (char *) entry;
- }
- else
- if (argz_len > 0)
- return argz;
- else
- return 0;
-}
-# undef __argz_next
-# define __argz_next(argz, len, entry) argz_next__ (argz, len, entry)
-#endif /* !_LIBC && !HAVE___ARGZ_NEXT */
-
-
-/* Return number of bits set in X. */
-static int pop PARAMS ((int x));
-
-static inline int
-pop (x)
- int x;
-{
- /* We assume that no more than 16 bits are used. */
- x = ((x & ~0x5555) >> 1) + (x & 0x5555);
- x = ((x & ~0x3333) >> 2) + (x & 0x3333);
- x = ((x >> 4) + x) & 0x0f0f;
- x = ((x >> 8) + x) & 0xff;
-
- return x;
-}
-
-
-struct loaded_l10nfile *
-_nl_make_l10nflist (l10nfile_list, dirlist, dirlist_len, mask, language,
- territory, codeset, normalized_codeset, modifier, special,
- sponsor, revision, filename, do_allocate)
- struct loaded_l10nfile **l10nfile_list;
- const char *dirlist;
- size_t dirlist_len;
- int mask;
- const char *language;
- const char *territory;
- const char *codeset;
- const char *normalized_codeset;
- const char *modifier;
- const char *special;
- const char *sponsor;
- const char *revision;
- const char *filename;
- int do_allocate;
-{
- char *abs_filename;
- struct loaded_l10nfile *last = NULL;
- struct loaded_l10nfile *retval;
- char *cp;
- size_t entries;
- int cnt;
-
- /* Allocate room for the full file name. */
- abs_filename = (char *) malloc (dirlist_len
- + strlen (language)
- + ((mask & TERRITORY) != 0
- ? strlen (territory) + 1 : 0)
- + ((mask & XPG_CODESET) != 0
- ? strlen (codeset) + 1 : 0)
- + ((mask & XPG_NORM_CODESET) != 0
- ? strlen (normalized_codeset) + 1 : 0)
- + (((mask & XPG_MODIFIER) != 0
- || (mask & CEN_AUDIENCE) != 0)
- ? strlen (modifier) + 1 : 0)
- + ((mask & CEN_SPECIAL) != 0
- ? strlen (special) + 1 : 0)
- + (((mask & CEN_SPONSOR) != 0
- || (mask & CEN_REVISION) != 0)
- ? (1 + ((mask & CEN_SPONSOR) != 0
- ? strlen (sponsor) + 1 : 0)
- + ((mask & CEN_REVISION) != 0
- ? strlen (revision) + 1 : 0)) : 0)
- + 1 + strlen (filename) + 1);
-
- if (abs_filename == NULL)
- return NULL;
-
- retval = NULL;
- last = NULL;
-
- /* Construct file name. */
- memcpy (abs_filename, dirlist, dirlist_len);
- __argz_stringify (abs_filename, dirlist_len, ':');
- cp = abs_filename + (dirlist_len - 1);
- *cp++ = '/';
- cp = stpcpy (cp, language);
-
- if ((mask & TERRITORY) != 0)
- {
- *cp++ = '_';
- cp = stpcpy (cp, territory);
- }
- if ((mask & XPG_CODESET) != 0)
- {
- *cp++ = '.';
- cp = stpcpy (cp, codeset);
- }
- if ((mask & XPG_NORM_CODESET) != 0)
- {
- *cp++ = '.';
- cp = stpcpy (cp, normalized_codeset);
- }
- if ((mask & (XPG_MODIFIER | CEN_AUDIENCE)) != 0)
- {
- /* This component can be part of both syntaces but has different
- leading characters. For CEN we use `+', else `@'. */
- *cp++ = (mask & CEN_AUDIENCE) != 0 ? '+' : '@';
- cp = stpcpy (cp, modifier);
- }
- if ((mask & CEN_SPECIAL) != 0)
- {
- *cp++ = '+';
- cp = stpcpy (cp, special);
- }
- if ((mask & (CEN_SPONSOR | CEN_REVISION)) != 0)
- {
- *cp++ = ',';
- if ((mask & CEN_SPONSOR) != 0)
- cp = stpcpy (cp, sponsor);
- if ((mask & CEN_REVISION) != 0)
- {
- *cp++ = '_';
- cp = stpcpy (cp, revision);
- }
- }
-
- *cp++ = '/';
- stpcpy (cp, filename);
-
- /* Look in list of already loaded domains whether it is already
- available. */
- last = NULL;
- for (retval = *l10nfile_list; retval != NULL; retval = retval->next)
- if (retval->filename != NULL)
- {
- int compare = strcmp (retval->filename, abs_filename);
- if (compare == 0)
- /* We found it! */
- break;
- if (compare < 0)
- {
- /* It's not in the list. */
- retval = NULL;
- break;
- }
-
- last = retval;
- }
-
- if (retval != NULL || do_allocate == 0)
- {
- free (abs_filename);
- return retval;
- }
-
- retval = (struct loaded_l10nfile *)
- malloc (sizeof (*retval) + (__argz_count (dirlist, dirlist_len)
- * (1 << pop (mask))
- * sizeof (struct loaded_l10nfile *)));
- if (retval == NULL)
- return NULL;
-
- retval->filename = abs_filename;
- retval->decided = (__argz_count (dirlist, dirlist_len) != 1
- || ((mask & XPG_CODESET) != 0
- && (mask & XPG_NORM_CODESET) != 0));
- retval->data = NULL;
-
- if (last == NULL)
- {
- retval->next = *l10nfile_list;
- *l10nfile_list = retval;
- }
- else
- {
- retval->next = last->next;
- last->next = retval;
- }
-
- entries = 0;
- /* If the DIRLIST is a real list the RETVAL entry corresponds not to
- a real file. So we have to use the DIRLIST separation mechanism
- of the inner loop. */
- cnt = __argz_count (dirlist, dirlist_len) == 1 ? mask - 1 : mask;
- for (; cnt >= 0; --cnt)
- if ((cnt & ~mask) == 0
- && ((cnt & CEN_SPECIFIC) == 0 || (cnt & XPG_SPECIFIC) == 0)
- && ((cnt & XPG_CODESET) == 0 || (cnt & XPG_NORM_CODESET) == 0))
- {
- /* Iterate over all elements of the DIRLIST. */
- char *dir = NULL;
-
- while ((dir = __argz_next ((char *) dirlist, dirlist_len, dir))
- != NULL)
- retval->successor[entries++]
- = _nl_make_l10nflist (l10nfile_list, dir, strlen (dir) + 1, cnt,
- language, territory, codeset,
- normalized_codeset, modifier, special,
- sponsor, revision, filename, 1);
- }
- retval->successor[entries] = NULL;
-
- return retval;
-}
-
-/* Normalize codeset name. There is no standard for the codeset
- names. Normalization allows the user to use any of the common
- names. */
-const char *
-_nl_normalize_codeset (codeset, name_len)
- const char *codeset;
- size_t name_len;
-{
- int len = 0;
- int only_digit = 1;
- char *retval;
- char *wp;
- size_t cnt;
-
- for (cnt = 0; cnt < name_len; ++cnt)
- if (isalnum (codeset[cnt]))
- {
- ++len;
-
- if (isalpha (codeset[cnt]))
- only_digit = 0;
- }
-
- retval = (char *) malloc ((only_digit ? 3 : 0) + len + 1);
-
- if (retval != NULL)
- {
- if (only_digit)
- wp = stpcpy (retval, "iso");
- else
- wp = retval;
-
- for (cnt = 0; cnt < name_len; ++cnt)
- if (isalpha (codeset[cnt]))
- *wp++ = tolower (codeset[cnt]);
- else if (isdigit (codeset[cnt]))
- *wp++ = codeset[cnt];
-
- *wp = '\0';
- }
-
- return (const char *) 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
diff --git a/texinfo/intl/libgettext.h b/texinfo/intl/libgettext.h
deleted file mode 100644
index 0d4de4d0ee1..00000000000
--- a/texinfo/intl/libgettext.h
+++ /dev/null
@@ -1,182 +0,0 @@
-/* Message catalogs for internationalization.
- Copyright (C) 1995, 1996, 1997 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. */
-
-/* Because on some systems (e.g. Solaris) we sometimes have to include
- the systems libintl.h as well as this file we have more complex
- include protection above. But the systems header might perhaps also
- define _LIBINTL_H and therefore we have to protect the definition here. */
-
-#if !defined (_LIBINTL_H) || !defined (_LIBGETTEXT_H)
-#if !defined (_LIBINTL_H)
-# define _LIBINTL_H 1
-#endif
-#define _LIBGETTEXT_H 1
-
-/* We define an additional symbol to signal that we use the GNU
- implementation of gettext. */
-#define __USE_GNU_GETTEXT 1
-
-#include <sys/types.h>
-
-#if HAVE_LOCALE_H
-# include <locale.h>
-#endif
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* @@ end of prolog @@ */
-
-#ifndef PARAMS
-# if __STDC__
-# define PARAMS(args) args
-# else
-# define PARAMS(args) ()
-# endif
-#endif
-
-#ifndef NULL
-# if !defined __cplusplus || defined __GNUC__
-# define NULL ((void *) 0)
-# else
-# define NULL (0)
-# endif
-#endif
-
-#if !HAVE_LC_MESSAGES
-/* This value determines the behaviour of the gettext() and dgettext()
- function. But some system does not have this defined. Define it
- to a default value. */
-# define LC_MESSAGES (-1)
-#endif
-
-
-/* Declarations for gettext-using-catgets interface. Derived from
- Jim Meyering's libintl.h. */
-struct _msg_ent
-{
- const char *_msg;
- int _msg_number;
-};
-
-
-#if HAVE_CATGETS
-/* These two variables are defined in the automatically by po-to-tbl.sed
- generated file `cat-id-tbl.c'. */
-extern const struct _msg_ent _msg_tbl[];
-extern int _msg_tbl_length;
-#endif
-
-
-/* For automatical extraction of messages sometimes no real
- translation is needed. Instead the string itself is the result. */
-#define gettext_noop(Str) (Str)
-
-/* 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 PARAMS ((const char *__msgid));
-extern char *gettext__ PARAMS ((const char *__msgid));
-
-/* Look up MSGID in the DOMAINNAME message catalog for the current
- LC_MESSAGES locale. */
-extern char *dgettext PARAMS ((const char *__domainname, const char *__msgid));
-extern char *dgettext__ PARAMS ((const char *__domainname,
- const char *__msgid));
-
-/* Look up MSGID in the DOMAINNAME message catalog for the current CATEGORY
- locale. */
-extern char *dcgettext PARAMS ((const char *__domainname, const char *__msgid,
- int __category));
-extern char *dcgettext__ PARAMS ((const char *__domainname,
- const char *__msgid, 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 PARAMS ((const char *__domainname));
-extern char *textdomain__ 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 PARAMS ((const char *__domainname,
- const char *__dirname));
-extern char *bindtextdomain__ PARAMS ((const char *__domainname,
- const char *__dirname));
-
-#if ENABLE_NLS
-
-/* Solaris 2.3 has the gettext function but dcgettext is missing.
- So we omit this optimization for Solaris 2.3. BTW, Solaris 2.4
- has dcgettext. */
-# if !HAVE_CATGETS && (!HAVE_GETTEXT || HAVE_DCGETTEXT)
-
-# define gettext(Msgid) \
- dgettext (NULL, Msgid)
-
-# define dgettext(Domainname, Msgid) \
- dcgettext (Domainname, Msgid, LC_MESSAGES)
-
-# if defined __GNUC__ && __GNUC__ == 2 && __GNUC_MINOR__ >= 7
-/* This global variable is defined in loadmsgcat.c. We need a sign,
- whether a new catalog was loaded, which can be associated with all
- translations. */
-extern int _nl_msg_cat_cntr;
-
-# define dcgettext(Domainname, Msgid, Category) \
- (__extension__ \
- ({ \
- char *__result; \
- if (__builtin_constant_p (Msgid)) \
- { \
- static char *__translation__; \
- static int __catalog_counter__; \
- if (! __translation__ || __catalog_counter__ != _nl_msg_cat_cntr) \
- { \
- __translation__ = \
- dcgettext__ (Domainname, Msgid, Category); \
- __catalog_counter__ = _nl_msg_cat_cntr; \
- } \
- __result = __translation__; \
- } \
- else \
- __result = dcgettext__ (Domainname, Msgid, Category); \
- __result; \
- }))
-# endif
-# endif
-
-#else
-
-# define gettext(Msgid) (Msgid)
-# define dgettext(Domainname, Msgid) (Msgid)
-# define dcgettext(Domainname, Msgid, Category) (Msgid)
-# define textdomain(Domainname) while (0) /* nothing */
-# define bindtextdomain(Domainname, Dirname) while (0) /* nothing */
-
-#endif
-
-/* @@ begin of epilog @@ */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/texinfo/intl/linux-msg.sed b/texinfo/intl/linux-msg.sed
deleted file mode 100644
index 5918e720a9a..00000000000
--- a/texinfo/intl/linux-msg.sed
+++ /dev/null
@@ -1,100 +0,0 @@
-# po2msg.sed - Convert Uniforum style .po file to Linux style .msg file
-# Copyright (C) 1995 Free Software Foundation, Inc.
-# Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-#
-#
-# The first directive in the .msg should be the definition of the
-# message set number. We use always set number 1.
-#
-1 {
- i\
-$set 1 # Automatically created by po2msg.sed
- h
- s/.*/0/
- x
-}
-#
-# Mitch's old catalog format does not allow comments.
-#
-# We copy the original message as a comment into the .msg file.
-#
-/^msgid/ {
- s/msgid[ ]*"//
-#
-# This does not work now with the new format.
-# /"$/! {
-# s/\\$//
-# s/$/ ... (more lines following)"/
-# }
- x
-# The following nice solution is by
-# Bruno <Haible@ma2s2.mathematik.uni-karlsruhe.de>
- td
-# Increment a decimal number in pattern space.
-# First hide trailing `9' digits.
- :d
- s/9\(_*\)$/_\1/
- td
-# Assure at least one digit is available.
- s/^\(_*\)$/0\1/
-# Increment the last digit.
- s/8\(_*\)$/9\1/
- s/7\(_*\)$/8\1/
- s/6\(_*\)$/7\1/
- s/5\(_*\)$/6\1/
- s/4\(_*\)$/5\1/
- s/3\(_*\)$/4\1/
- s/2\(_*\)$/3\1/
- s/1\(_*\)$/2\1/
- s/0\(_*\)$/1\1/
-# Convert the hidden `9' digits to `0's.
- s/_/0/g
- x
- G
- s/\(.*\)"\n\([0-9]*\)/$ #\2 Original Message:(\1)/p
-}
-#
-# The .msg file contains, other then the .po file, only the translations
-# but each given a unique ID. Starting from 1 and incrementing by 1 for
-# each message we assign them to the messages.
-# It is important that the .po file used to generate the cat-id-tbl.c file
-# (with po-to-tbl) is the same as the one used here. (At least the order
-# of declarations must not be changed.)
-#
-/^msgstr/ {
- s/msgstr[ ]*"\(.*\)"/# \1/
-# Clear substitution flag.
- tb
-# Append the next line.
- :b
- N
-# Look whether second part is continuation line.
- s/\(.*\n\)"\(.*\)"/\1\2/
-# Yes, then branch.
- ta
- P
- D
-# Note that D includes a jump to the start!!
-# We found a continuation line. But before printing insert '\'.
- :a
- s/\(.*\)\(\n.*\)/\1\\\2/
- P
-# We cannot use D here.
- s/.*\n\(.*\)/\1/
- tb
-}
-d
diff --git a/texinfo/intl/loadinfo.h b/texinfo/intl/loadinfo.h
deleted file mode 100644
index c67c2eb2e8e..00000000000
--- a/texinfo/intl/loadinfo.h
+++ /dev/null
@@ -1,58 +0,0 @@
-#ifndef PARAMS
-# if __STDC__
-# define PARAMS(args) args
-# else
-# define PARAMS(args) ()
-# endif
-#endif
-
-/* Encoding of locale name parts. */
-#define CEN_REVISION 1
-#define CEN_SPONSOR 2
-#define CEN_SPECIAL 4
-#define XPG_NORM_CODESET 8
-#define XPG_CODESET 16
-#define TERRITORY 32
-#define CEN_AUDIENCE 64
-#define XPG_MODIFIER 128
-
-#define CEN_SPECIFIC (CEN_REVISION|CEN_SPONSOR|CEN_SPECIAL|CEN_AUDIENCE)
-#define XPG_SPECIFIC (XPG_CODESET|XPG_NORM_CODESET|XPG_MODIFIER)
-
-
-struct loaded_l10nfile
-{
- const char *filename;
- int decided;
-
- const void *data;
-
- struct loaded_l10nfile *next;
- struct loaded_l10nfile *successor[1];
-};
-
-
-extern const char *_nl_normalize_codeset PARAMS ((const char *codeset,
- size_t name_len));
-
-extern struct loaded_l10nfile *
-_nl_make_l10nflist PARAMS ((struct loaded_l10nfile **l10nfile_list,
- const char *dirlist, size_t dirlist_len, int mask,
- const char *language, const char *territory,
- const char *codeset,
- const char *normalized_codeset,
- const char *modifier, const char *special,
- const char *sponsor, const char *revision,
- const char *filename, int do_allocate));
-
-
-extern const char *_nl_expand_alias PARAMS ((const char *name));
-
-extern int _nl_explode_name PARAMS ((char *name, const char **language,
- const char **modifier,
- const char **territory,
- const char **codeset,
- const char **normalized_codeset,
- const char **special,
- const char **sponsor,
- const char **revision));
diff --git a/texinfo/intl/loadmsgcat.c b/texinfo/intl/loadmsgcat.c
deleted file mode 100644
index 73e90a9190f..00000000000
--- a/texinfo/intl/loadmsgcat.c
+++ /dev/null
@@ -1,199 +0,0 @@
-/* Load needed message catalogs
- Copyright (C) 1995, 1996, 1997 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. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <fcntl.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-
-#if defined STDC_HEADERS || defined _LIBC
-# include <stdlib.h>
-#endif
-
-#if defined HAVE_UNISTD_H || defined _LIBC
-# include <unistd.h>
-#endif
-
-#if (defined HAVE_MMAP && defined HAVE_MUNMAP) || defined _LIBC
-# include <sys/mman.h>
-#endif
-
-#include "gettext.h"
-#include "gettextP.h"
-
-/* @@ end of prolog @@ */
-
-#ifdef _LIBC
-/* Rename the non ISO C functions. This is required by the standard
- because some ISO C functions will require linking with this object
- file and the name space must not be polluted. */
-# define fstat __fstat
-# define open __open
-# define close __close
-# define read __read
-# define mmap __mmap
-# define munmap __munmap
-#endif
-
-/* We need a sign, whether a new catalog was loaded, which can be associated
- with all translations. This is important if the translations are
- cached by one of GCC's features. */
-int _nl_msg_cat_cntr = 0;
-
-
-/* Load the message catalogs specified by FILENAME. If it is no valid
- message catalog do nothing. */
-void
-_nl_load_domain (domain_file)
- struct loaded_l10nfile *domain_file;
-{
- int fd;
- struct stat st;
- struct mo_file_header *data = (struct mo_file_header *) -1;
-#if (defined HAVE_MMAP && defined HAVE_MUNMAP && !defined DISALLOW_MMAP) \
- || defined _LIBC
- int use_mmap = 0;
-#endif
- struct loaded_domain *domain;
-
- domain_file->decided = 1;
- domain_file->data = NULL;
-
- /* If the record does not represent a valid locale the FILENAME
- might be NULL. This can happen when according to the given
- specification the locale file name is different for XPG and CEN
- syntax. */
- if (domain_file->filename == NULL)
- return;
-
- /* Try to open the addressed file. */
- fd = open (domain_file->filename, O_RDONLY);
- if (fd == -1)
- return;
-
- /* We must know about the size of the file. */
- if (fstat (fd, &st) != 0
- && st.st_size < (off_t) sizeof (struct mo_file_header))
- {
- /* Something went wrong. */
- close (fd);
- return;
- }
-
-#if (defined HAVE_MMAP && defined HAVE_MUNMAP && !defined DISALLOW_MMAP) \
- || defined _LIBC
- /* Now we are ready to load the file. If mmap() is available we try
- this first. If not available or it failed we try to load it. */
- data = (struct mo_file_header *) mmap (NULL, st.st_size, PROT_READ,
- MAP_PRIVATE, fd, 0);
-
- if (data != (struct mo_file_header *) -1)
- {
- /* mmap() call was successful. */
- close (fd);
- use_mmap = 1;
- }
-#endif
-
- /* If the data is not yet available (i.e. mmap'ed) we try to load
- it manually. */
- if (data == (struct mo_file_header *) -1)
- {
- off_t to_read;
- char *read_ptr;
-
- data = (struct mo_file_header *) malloc (st.st_size);
- if (data == NULL)
- return;
-
- to_read = st.st_size;
- read_ptr = (char *) data;
- do
- {
- long int nb = (long int) read (fd, read_ptr, to_read);
- if (nb == -1)
- {
- close (fd);
- return;
- }
-
- read_ptr += nb;
- to_read -= nb;
- }
- while (to_read > 0);
-
- close (fd);
- }
-
- /* Using the magic number we can test whether it really is a message
- catalog file. */
- if (data->magic != _MAGIC && data->magic != _MAGIC_SWAPPED)
- {
- /* The magic number is wrong: not a message catalog file. */
-#if (defined HAVE_MMAP && defined HAVE_MUNMAP && !defined DISALLOW_MMAP) \
- || defined _LIBC
- if (use_mmap)
- munmap ((caddr_t) data, st.st_size);
- else
-#endif
- free (data);
- return;
- }
-
- domain_file->data
- = (struct loaded_domain *) malloc (sizeof (struct loaded_domain));
- if (domain_file->data == NULL)
- return;
-
- domain = (struct loaded_domain *) domain_file->data;
- domain->data = (char *) data;
- domain->must_swap = data->magic != _MAGIC;
-
- /* Fill in the information about the available tables. */
- switch (W (domain->must_swap, data->revision))
- {
- case 0:
- domain->nstrings = W (domain->must_swap, data->nstrings);
- domain->orig_tab = (struct string_desc *)
- ((char *) data + W (domain->must_swap, data->orig_tab_offset));
- domain->trans_tab = (struct string_desc *)
- ((char *) data + W (domain->must_swap, data->trans_tab_offset));
- domain->hash_size = W (domain->must_swap, data->hash_tab_size);
- domain->hash_tab = (nls_uint32 *)
- ((char *) data + W (domain->must_swap, data->hash_tab_offset));
- break;
- default:
- /* This is an illegal revision. */
-#if (defined HAVE_MMAP && defined HAVE_MUNMAP && !defined DISALLOW_MMAP) \
- || defined _LIBC
- if (use_mmap)
- munmap ((caddr_t) data, st.st_size);
- else
-#endif
- free (data);
- free (domain);
- domain_file->data = NULL;
- return;
- }
-
- /* Show that one domain is changed. This might make some cached
- translations invalid. */
- ++_nl_msg_cat_cntr;
-}
diff --git a/texinfo/intl/localealias.c b/texinfo/intl/localealias.c
deleted file mode 100644
index 00d91941b9b..00000000000
--- a/texinfo/intl/localealias.c
+++ /dev/null
@@ -1,378 +0,0 @@
-/* Handle aliases for locale names
- Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
- Written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <ctype.h>
-#include <stdio.h>
-#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
-
-#if defined STDC_HEADERS || defined _LIBC
-# include <stdlib.h>
-#else
-char *getenv ();
-# ifdef HAVE_MALLOC_H
-# include <malloc.h>
-# else
-void free ();
-# endif
-#endif
-
-#if defined HAVE_STRING_H || defined _LIBC
-# ifndef _GNU_SOURCE
-# define _GNU_SOURCE 1
-# endif
-# include <string.h>
-#else
-# include <strings.h>
-# ifndef memcpy
-# define memcpy(Dst, Src, Num) bcopy (Src, Dst, Num)
-# endif
-#endif
-#if !HAVE_STRCHR && !defined _LIBC
-# ifndef strchr
-# define strchr index
-# endif
-#endif
-
-#include "gettext.h"
-#include "gettextP.h"
-
-/* @@ 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 strcasecmp __strcasecmp
-#endif
-
-
-/* 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 */
-
-
-struct alias_map
-{
- const char *alias;
- const char *value;
-};
-
-
-static struct alias_map *map;
-static size_t nmap = 0;
-static size_t maxmap = 0;
-
-
-/* Prototypes for local functions. */
-static size_t read_alias_file PARAMS ((const char *fname, int fname_len));
-static void extend_alias_table PARAMS ((void));
-static int alias_compare PARAMS ((const struct alias_map *map1,
- const struct alias_map *map2));
-
-
-const char *
-_nl_expand_alias (name)
- const char *name;
-{
- static const char *locale_alias_path = LOCALE_ALIAS_PATH;
- struct alias_map *retval;
- size_t added;
-
- do
- {
- struct alias_map item;
-
- item.alias = name;
-
- if (nmap > 0)
- retval = (struct alias_map *) bsearch (&item, map, nmap,
- sizeof (struct alias_map),
- (int (*) PARAMS ((const void *,
- const void *))
- ) alias_compare);
- else
- retval = NULL;
-
- /* We really found an alias. Return the value. */
- if (retval != NULL)
- return retval->value;
-
- /* Perhaps we can find another alias file. */
- added = 0;
- while (added == 0 && locale_alias_path[0] != '\0')
- {
- const char *start;
-
- while (locale_alias_path[0] == ':')
- ++locale_alias_path;
- start = locale_alias_path;
-
- while (locale_alias_path[0] != '\0' && locale_alias_path[0] != ':')
- ++locale_alias_path;
-
- if (start < locale_alias_path)
- added = read_alias_file (start, locale_alias_path - start);
- }
- }
- while (added != 0);
-
- return NULL;
-}
-
-
-static size_t
-read_alias_file (fname, fname_len)
- const char *fname;
- int fname_len;
-{
-#ifndef HAVE_ALLOCA
- struct block_list *block_list = NULL;
-#endif
- FILE *fp;
- char *full_fname;
- size_t added;
- static const char aliasfile[] = "/locale.alias";
-
- full_fname = (char *) alloca (fname_len + sizeof aliasfile);
- ADD_BLOCK (block_list, full_fname);
- memcpy (full_fname, fname, fname_len);
- memcpy (&full_fname[fname_len], aliasfile, sizeof aliasfile);
-
- fp = fopen (full_fname, "r");
- if (fp == NULL)
- {
- FREE_BLOCKS (block_list);
- return 0;
- }
-
- added = 0;
- while (!feof (fp))
- {
- /* It is a reasonable approach to use a fix buffer here because
- a) we are only interested in the first two fields
- b) these fields must be usable as file names and so must not
- be that long
- */
- char buf[BUFSIZ];
- char *alias;
- char *value;
- char *cp;
-
- if (fgets (buf, BUFSIZ, fp) == NULL)
- /* EOF reached. */
- break;
-
- cp = buf;
- /* Ignore leading white space. */
- while (isspace (cp[0]))
- ++cp;
-
- /* A leading '#' signals a comment line. */
- if (cp[0] != '\0' && cp[0] != '#')
- {
- alias = cp++;
- while (cp[0] != '\0' && !isspace (cp[0]))
- ++cp;
- /* Terminate alias name. */
- if (cp[0] != '\0')
- *cp++ = '\0';
-
- /* Now look for the beginning of the value. */
- while (isspace (cp[0]))
- ++cp;
-
- if (cp[0] != '\0')
- {
- char *tp;
- size_t len;
-
- value = cp++;
- while (cp[0] != '\0' && !isspace (cp[0]))
- ++cp;
- /* Terminate value. */
- if (cp[0] == '\n')
- {
- /* This has to be done to make the following test
- for the end of line possible. We are looking for
- the terminating '\n' which do not overwrite here. */
- *cp++ = '\0';
- *cp = '\n';
- }
- else if (cp[0] != '\0')
- *cp++ = '\0';
-
- if (nmap >= maxmap)
- extend_alias_table ();
-
- /* We cannot depend on strdup available in the libc. Sigh! */
- len = strlen (alias) + 1;
- tp = (char *) malloc (len);
- if (tp == NULL)
- {
- FREE_BLOCKS (block_list);
- return added;
- }
- memcpy (tp, alias, len);
- map[nmap].alias = tp;
-
- len = strlen (value) + 1;
- tp = (char *) malloc (len);
- if (tp == NULL)
- {
- FREE_BLOCKS (block_list);
- return added;
- }
- memcpy (tp, value, len);
- map[nmap].value = tp;
-
- ++nmap;
- ++added;
- }
- }
-
- /* Possibly not the whole line fits into the buffer. Ignore
- the rest of the line. */
- while (strchr (cp, '\n') == NULL)
- {
- cp = buf;
- if (fgets (buf, BUFSIZ, fp) == NULL)
- /* Make sure the inner loop will be left. The outer loop
- will exit at the `feof' test. */
- *cp = '\n';
- }
- }
-
- /* Should we test for ferror()? I think we have to silently ignore
- errors. --drepper */
- fclose (fp);
-
- if (added > 0)
- qsort (map, nmap, sizeof (struct alias_map),
- (int (*) PARAMS ((const void *, const void *))) alias_compare);
-
- FREE_BLOCKS (block_list);
- return added;
-}
-
-
-static void
-extend_alias_table ()
-{
- size_t new_size;
- struct alias_map *new_map;
-
- new_size = maxmap == 0 ? 100 : 2 * maxmap;
- new_map = (struct alias_map *) malloc (new_size
- * sizeof (struct alias_map));
- if (new_map == NULL)
- /* Simply don't extend: we don't have any more core. */
- return;
-
- memcpy (new_map, map, nmap * sizeof (struct alias_map));
-
- if (maxmap != 0)
- free (map);
-
- map = new_map;
- maxmap = new_size;
-}
-
-
-static int
-alias_compare (map1, map2)
- const struct alias_map *map1;
- const struct alias_map *map2;
-{
-#if defined _LIBC || defined HAVE_STRCASECMP
- return strcasecmp (map1->alias, map2->alias);
-#else
- const unsigned char *p1 = (const unsigned char *) map1->alias;
- const unsigned char *p2 = (const unsigned char *) map2->alias;
- unsigned char c1, c2;
-
- if (p1 == p2)
- return 0;
-
- do
- {
- /* I know this seems to be odd but the tolower() function in
- some systems libc cannot handle nonalpha characters. */
- c1 = isupper (*p1) ? tolower (*p1) : *p1;
- c2 = isupper (*p2) ? tolower (*p2) : *p2;
- if (c1 == '\0')
- break;
- ++p1;
- ++p2;
- }
- while (c1 == c2);
-
- return c1 - c2;
-#endif
-}
diff --git a/texinfo/intl/po2tbl.sed.in b/texinfo/intl/po2tbl.sed.in
deleted file mode 100644
index b3bcca4d730..00000000000
--- a/texinfo/intl/po2tbl.sed.in
+++ /dev/null
@@ -1,102 +0,0 @@
-# po2tbl.sed - Convert Uniforum style .po file to lookup table for catgets
-# Copyright (C) 1995 Free Software Foundation, Inc.
-# Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-#
-1 {
- i\
-/* Automatically generated by po2tbl.sed from @PACKAGE NAME@.pot. */\
-\
-#if HAVE_CONFIG_H\
-# include <config.h>\
-#endif\
-\
-#include "libgettext.h"\
-\
-const struct _msg_ent _msg_tbl[] = {
- h
- s/.*/0/
- x
-}
-#
-# Write msgid entries in C array form.
-#
-/^msgid/ {
- s/msgid[ ]*\(".*"\)/ {\1/
- tb
-# Append the next line
- :b
- N
-# Look whether second part is continuation line.
- s/\(.*\)"\(\n\)"\(.*"\)/\1\2\3/
-# Yes, then branch.
- ta
-# Because we assume that the input file correctly formed the line
-# just read cannot be again be a msgid line. So it's safe to ignore
-# it.
- s/\(.*\)\n.*/\1/
- bc
-# We found a continuation line. But before printing insert '\'.
- :a
- s/\(.*\)\(\n.*\)/\1\\\2/
- P
-# We cannot use D here.
- s/.*\n\(.*\)/\1/
-# Some buggy seds do not clear the `successful substitution since last ``t'''
-# flag on `N', so we do a `t' here to clear it.
- tb
-# Not reached
- :c
- x
-# The following nice solution is by
-# Bruno <Haible@ma2s2.mathematik.uni-karlsruhe.de>
- td
-# Increment a decimal number in pattern space.
-# First hide trailing `9' digits.
- :d
- s/9\(_*\)$/_\1/
- td
-# Assure at least one digit is available.
- s/^\(_*\)$/0\1/
-# Increment the last digit.
- s/8\(_*\)$/9\1/
- s/7\(_*\)$/8\1/
- s/6\(_*\)$/7\1/
- s/5\(_*\)$/6\1/
- s/4\(_*\)$/5\1/
- s/3\(_*\)$/4\1/
- s/2\(_*\)$/3\1/
- s/1\(_*\)$/2\1/
- s/0\(_*\)$/1\1/
-# Convert the hidden `9' digits to `0's.
- s/_/0/g
- x
- G
- s/\(.*\)\n\([0-9]*\)/\1, \2},/
- s/\(.*\)"$/\1/
- p
-}
-#
-# Last line.
-#
-$ {
- i\
-};\
-
- g
- s/0*\(.*\)/int _msg_tbl_length = \1;/p
-}
-d
diff --git a/texinfo/intl/textdomain.c b/texinfo/intl/textdomain.c
deleted file mode 100644
index 55d93406a8a..00000000000
--- a/texinfo/intl/textdomain.c
+++ /dev/null
@@ -1,106 +0,0 @@
-/* Implementation of the textdomain(3) function
- Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
- Written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#if defined STDC_HEADERS || defined _LIBC
-# include <stdlib.h>
-#endif
-
-#if defined STDC_HEADERS || defined HAVE_STRING_H || defined _LIBC
-# include <string.h>
-#else
-# include <strings.h>
-# ifndef memcpy
-# define memcpy(Dst, Src, Num) bcopy (Src, Dst, Num)
-# endif
-#endif
-
-#ifdef _LIBC
-# include <libintl.h>
-#else
-# include "libgettext.h"
-#endif
-
-/* @@ end of prolog @@ */
-
-/* Name of the default text domain. */
-extern const char _nl_default_default_domain[];
-
-/* Default text domain in which entries for gettext(3) are to be found. */
-extern const char *_nl_current_default_domain;
-
-
-/* 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 TEXTDOMAIN __textdomain
-# define strdup(str) __strdup (str)
-#else
-# define TEXTDOMAIN textdomain__
-#endif
-
-/* 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". */
-char *
-TEXTDOMAIN (domainname)
- const char *domainname;
-{
- char *old;
-
- /* A NULL pointer requests the current setting. */
- if (domainname == NULL)
- return (char *) _nl_current_default_domain;
-
- old = (char *) _nl_current_default_domain;
-
- /* If domain name is the null string set to default domain "messages". */
- if (domainname[0] == '\0'
- || strcmp (domainname, _nl_default_default_domain) == 0)
- _nl_current_default_domain = _nl_default_default_domain;
- else
- {
- /* If the following malloc fails `_nl_current_default_domain'
- will be NULL. This value will be returned and so signals we
- are out of core. */
-#if defined _LIBC || defined HAVE_STRDUP
- _nl_current_default_domain = strdup (domainname);
-#else
- size_t len = strlen (domainname) + 1;
- char *cp = (char *) malloc (len);
- if (cp != NULL)
- memcpy (cp, domainname, len);
- _nl_current_default_domain = cp;
-#endif
- }
-
- if (old != _nl_default_default_domain)
- free (old);
-
- return (char *) _nl_current_default_domain;
-}
-
-#ifdef _LIBC
-/* Alias for function name in GNU C Library. */
-weak_alias (__textdomain, textdomain);
-#endif
diff --git a/texinfo/intl/xopen-msg.sed b/texinfo/intl/xopen-msg.sed
deleted file mode 100644
index b19c0bbd0ec..00000000000
--- a/texinfo/intl/xopen-msg.sed
+++ /dev/null
@@ -1,104 +0,0 @@
-# po2msg.sed - Convert Uniforum style .po file to X/Open style .msg file
-# Copyright (C) 1995 Free Software Foundation, Inc.
-# Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-#
-#
-# The first directive in the .msg should be the definition of the
-# message set number. We use always set number 1.
-#
-1 {
- i\
-$set 1 # Automatically created by po2msg.sed
- h
- s/.*/0/
- x
-}
-#
-# We copy all comments into the .msg file. Perhaps they can help.
-#
-/^#/ s/^#[ ]*/$ /p
-#
-# We copy the original message as a comment into the .msg file.
-#
-/^msgid/ {
-# Does not work now
-# /"$/! {
-# s/\\$//
-# s/$/ ... (more lines following)"/
-# }
- s/^msgid[ ]*"\(.*\)"$/$ Original Message: \1/
- p
-}
-#
-# The .msg file contains, other then the .po file, only the translations
-# but each given a unique ID. Starting from 1 and incrementing by 1 for
-# each message we assign them to the messages.
-# It is important that the .po file used to generate the cat-id-tbl.c file
-# (with po-to-tbl) is the same as the one used here. (At least the order
-# of declarations must not be changed.)
-#
-/^msgstr/ {
- s/msgstr[ ]*"\(.*\)"/\1/
- x
-# The following nice solution is by
-# Bruno <Haible@ma2s2.mathematik.uni-karlsruhe.de>
- td
-# Increment a decimal number in pattern space.
-# First hide trailing `9' digits.
- :d
- s/9\(_*\)$/_\1/
- td
-# Assure at least one digit is available.
- s/^\(_*\)$/0\1/
-# Increment the last digit.
- s/8\(_*\)$/9\1/
- s/7\(_*\)$/8\1/
- s/6\(_*\)$/7\1/
- s/5\(_*\)$/6\1/
- s/4\(_*\)$/5\1/
- s/3\(_*\)$/4\1/
- s/2\(_*\)$/3\1/
- s/1\(_*\)$/2\1/
- s/0\(_*\)$/1\1/
-# Convert the hidden `9' digits to `0's.
- s/_/0/g
- x
-# Bring the line in the format `<number> <message>'
- G
- s/^[^\n]*$/& /
- s/\(.*\)\n\([0-9]*\)/\2 \1/
-# Clear flag from last substitution.
- tb
-# Append the next line.
- :b
- N
-# Look whether second part is a continuation line.
- s/\(.*\n\)"\(.*\)"/\1\2/
-# Yes, then branch.
- ta
- P
- D
-# Note that `D' includes a jump to the start!!
-# We found a continuation line. But before printing insert '\'.
- :a
- s/\(.*\)\(\n.*\)/\1\\\2/
- P
-# We cannot use the sed command `D' here
- s/.*\n\(.*\)/\1/
- tb
-}
-d
diff --git a/texinfo/makeinfo/macros/example.texi b/texinfo/makeinfo/macros/example.texi
deleted file mode 100644
index d3554ff3ddc..00000000000
--- a/texinfo/makeinfo/macros/example.texi
+++ /dev/null
@@ -1,224 +0,0 @@
-\input texinfo @c -*-texinfo-*-
-@comment %**start of header
-@setfilename example.info
-@set VERSION 1.58
-@paragraphindent none
-@comment %**end of header
-
-@include simpledoc.texi
-
-@document {@makeinfo{}, Brian J. Fox,
-This file is an extract from the @cite{@texinfo{}} manual.@*
-It documents @makeinfo{}\, a program that converts @texinfo{} files into
-Info files.
-}
-
-@menu
-* What is @makeinfo{}?::
-* Controlling Paragraph Formats::
-* Command Line Options::
-* Pointer Validation::
-@end menu
-
-@section What is @makeinfo{}?
-
-@iftex
-This file documents the use of the @code{makeinfo} program, versions
-@value{VERSION} and later. It is an extract from the @cite{TeXinfo} manual.
-@end iftex
-
-@makeinfo{} is a program for converting @dfn{@texinfo{}} files into
-@dfn{@Info{}} files. @texinfo{} is a documentation system that uses a
-single source file to produce both on-line information and printed output.
-
-You can read the on-line information using @Info{}; type @code{info} to
-learn about @Info{}.
-@ifinfo
-@xref{Top, Texinfo, Overview of Texinfo, texinfo, Texinfo},
-@end ifinfo
-@iftex
-See the @cite{TeXinfo} manual,
-@end iftex
-to learn about the TeXinfo documentation system.
-
-@section Controlling Paragraph Formats
-
-In general, @makeinfo{} @dfn{fills} the paragraphs that it outputs
-to an @Info{} file. Filling is the process of breaking and connecting
-lines so that lines are the same length as or shorter than the number
-specified as the fill column. Lines are broken between words. With
-@makeinfo{}, you can control:
-
-@itemize @bullet
-@item
-The width of each paragraph (the @dfn{fill-column}).
-@item
-The amount of indentation that the first line of
-each paragraph receives (the @dfn{paragraph-indentation}).
-@end itemize
-
-@section Command Line Options
-
-The following command line options are available for @makeinfo{}.
-
-@need 100
-@table @code
-@item -D @var{var}
-Cause @var{var} to be defined. This is equivalent to
-@code{@@set @var{var}} in the Texinfo file.
-
-@need 150
-@item --error-limit @var{limit}
-Set the maximum number of errors that @makeinfo{} will report
-before exiting (on the assumption that continuing would be useless).
-The default number of errors that can be reported before
-@makeinfo{} gives up is 100.@refill
-
-@need 150
-@item --fill-column @var{width}
-Specify the maximum number of columns in a line; this is the right-hand
-edge of a line. Paragraphs that are filled will be filled to this
-width. The default value for @code{fill-column} is 72.
-
-@item --footnote-style @var{style}
-Set the footnote style to @var{style}, either @samp{end} for the end
-node style or @samp{separate} for the separate node style. The value
-set by this option overrides the value set in a Texinfo file by an
-@code{@@footnotestyle} command. When the footnote style is
-@samp{separate}, @makeinfo{} makes a new node containing the
-footnotes found in the current node. When the footnote style is
-@samp{end}, @makeinfo{} places the footnote references at the end
-of the current node.
-
-@need 150
-@item -I @var{dir}
-Add @code{dir} to the directory search list for finding files that are
-included using the @code{@@include} command. By default,
-@makeinfo{} searches only the current directory.
-
-@need 150
-@item --no-headers
-Do not include menus or node lines in the output. This results in an
-@sc{ascii} file that you cannot read in Info since it does not contain
-the requisite nodes or menus; but you can print such a file in a
-single, typewriter-like font and produce acceptable output.
-
-@need 150
-@item --no-split
-Suppress the splitting stage of @makeinfo{}. Normally, large
-output files (where the size is greater than 70k bytes) are split into
-smaller subfiles, each one approximately 50k bytes. If you specify
-@samp{--no-split}, @makeinfo{} will not split up the output
-file.
-
-@need 100
-@item --no-pointer-validate
-@item --no-validate
-Suppress the pointer-validation phase of @makeinfo{}. Normally,
-after a Texinfo file is processed, some consistency checks are made to
-ensure that cross references can be resolved, etc.
-@xref{Pointer Validation}.
-
-@need 150
-@item --no-warn
-Suppress the output of warning messages. This does @emph{not}
-suppress the output of error messages, only warnings. You might
-want this if the file you are creating has examples of Texinfo cross
-references within it, and the nodes that are referenced do not actually
-exist.
-
-@item --no-number-footnotes
-Supress automatic footnote numbering. By default, @makeinfo{}
-numbers each footnote sequentially in a single node, resetting the
-current footnote number to 1 at the start of each node.
-
-@need 150
-@item --output @var{file}
-@itemx -o @var{file}
-Specify that the output should be directed to @var{file} and not to the
-file name specified in the @code{@@setfilename} command found in the Texinfo
-source. @var{file} can be the special token @samp{-}, which specifies
-standard output.
-
-@need 150
-@item --paragraph-indent @var{indent}
-Set the paragraph indentation style to @var{indent}. The value set by
-this option overrides the value set in a Texinfo file by an
-@code{@@paragraphindent} command. The value of @var{indent} is
-interpreted as follows:
-
-@itemize @bullet
-@item
-If the value of @var{indent} is @samp{asis}, do not change the
-existing indentation at the starts of paragraphs.
-
-@item
-If the value of @var{indent} is zero, delete any existing
-indentation.
-
-@item
-If the value of @var{indent} is greater than zero, indent each
-paragraph by that number of spaces.
-@end itemize
-
-@need 100
-@item --reference-limit @var{limit}
-Set the value of the number of references to a node that
-@makeinfo{} will make without reporting a warning. If a node has more
-than this number of references in it, @makeinfo{} will make the
-references but also report a warning.
-
-@need 150
-@item -U @var{var}
-Cause @var{var} to be undefined. This is equivalent to
-@code{@@clear @var{var}} in the Texinfo file.
-
-@need 100
-@item --verbose
-Cause @makeinfo{} to display messages saying what it is doing.
-Normally, @makeinfo{} only outputs messages if there are errors or
-warnings.
-
-@need 100
-@item --version
-Report the version number of this copy of @makeinfo{}.
-@end table
-
-@section Pointer Validation
-@cindex Pointer validation with @makeinfo{}
-@cindex Validation of pointers
-
-If you do not suppress pointer-validation (by using the
-@samp{--no-pointer-validation} option), @makeinfo{}
-will check the validity of the final Info file. Mostly,
-this means ensuring that nodes you have referenced
-really exist. Here is a complete list of what is
-checked:
-
-@enumerate
-@item
-If a `Next', `Previous', or `Up' node reference is a reference to a
-node in the current file and is not an external reference such as to
-@file{(dir)}, then the referenced node must exist.
-
-@item
-In every node, if the `Previous' node is different from the `Up' node,
-then the `Previous' node must also be pointed to by a `Next' node.
-
-@item
-Every node except the `Top' node must have an `Up' pointer.
-
-@item
-The node referenced by an `Up' pointer must contain a reference to the
-current node in some manner other than through a `Next' reference.
-This includes menu entries and cross references.
-
-@item
-If the `Next' reference of a node is not the same as the `Next' reference
-of the `Up' reference, then the node referenced by the `Next' pointer
-must have a `Previous' pointer that points back to the current node.
-This rule allows the last node in a section to point to the first node
-of the next chapter.
-@end enumerate
-
-@bye
diff --git a/texinfo/makeinfo/macros/html.texi b/texinfo/makeinfo/macros/html.texi
deleted file mode 100644
index 60760825c68..00000000000
--- a/texinfo/makeinfo/macros/html.texi
+++ /dev/null
@@ -1,269 +0,0 @@
-@c html.texi: -*- Texinfo -*- Macros which support HTML output.
-
-@c Copyright (c) 1995 Brian Fox (bfox@ai.mit.edu)
-@c Author: Brian J. Fox (bfox@ai.mit.edu) Sat Apr 1 20:30:54 1995.
-@c
-@c I didn't want to write this myself, because I wanted some HTML wizard
-@c to get everything exactly right. However, rms continues to believe
-@c that the macro system is not a good idea. I couldn't disagree more,
-@c so I am writing this as an example of how useful such macros can be.
-
-@macro html
-@set html
-<html>
-@end macro
-
-@c
-@c The first step is to define the macros which really only have meaning
-@c when producing output for HTML.
-
-@c
-@c @anchor{Brian Fox, http://www.ua.com/users/bfox/}
-@c
-@macro anchor{text, link}
-@ifset html
-<a href="\link\">\text\</a>
-@end ifset
-@ifclear html
-\text\
-@end ifclear
-@end macro
-
-@macro pre{}
-@ifset html
-<pre>
-@end ifset
-@end macro
-
-@macro endpre{}
-@ifset html
-</pre>
-@end ifset
-@end macro
-
-@macro TeX
-@ifset html
-<i>T</i>e<i>X</i>
-@end ifset
-@ifclear html
-@TeX{}
-@end ifclear
-@end macro
-
-@macro paragraph{}
-@ifset html
-<p>
-@end ifset
-@end macro
-
-@c
-@c @email{bfox@@ai.mit.edu}
-@c
-@macro email{address}
-@anchor{mailto:\address\, \address\}
-@end macro
-
-@c
-@c Redefine the TeXinfo commands which have direct HTML counterparts.
-@c
-
-@macro html-define-0arg{command, html-insertion}
-@macro \command\
-@ifset html
-\html-insertion\
-@end ifset
-@ifclear html
-@\command\
-@end ifclear
-@end macro
-@end macro
-
-@macro html-define-1arg{command, html-insertion}
-@macro \command\{arg}
-@ifset html
-\html-insertion\
-@end ifset
-@ifclear html
-@\command\{\arg\}
-@end ifclear
-@end macro
-@end macro
-
-@macro html-define-line{command, html-insertion}
-@macro \command\{line}
-@ifset html
-\html-insertion\
-@end ifset
-@ifclear html
-@\command\ \line\
-@end ifclear
-@end macro
-@end macro
-
-@html-define-0arg{*, <br>}
-@html-define-1arg{b, <b>\\arg\\</b>}
-@html-define-1arg{code, <tt><b>\\arg\\</b></tt>}
-@html-define-line{itemize, <ul>}
-@html-define-line{item,<p><li>}
-@html-define-line{heading,<h1>\\line\\</h1>}
-@html-define-0arg{bye, </html>}
-
-@c
-@c Define into nothing the macros which do nothing in html.
-@c
-@html-define-line{group,}
-
-@c
-@c Define a macro which is used to define other macros. This one makes
-@c a macro which creates an HTML header line. No sectioning commands
-@c are used. This takes advantage of the non-recursion feature of
-@c macro execution.
-@macro node_define{orig-name, header-style}
-@macro \orig-name\{title}
-@ifset html
-@node \title\
-<a name="\title\"><\header-style\>\title\</\header-style\></a>
-@end ifset
-@ifclear html
-@\orig-name\ \title\
-@end ifclear
-@end macro
-@end macro
-
-@c
-@c The same as NODE_DEFINE, but italicized.
-@macro inode_define{orig-name, header-style}
-@macro \orig-name\{title}
-@ifset html
-@node \title\
-<a name="\title\"><\header-style\><i>\title\</i></\header-style\></a>
-@end ifset
-@ifclear html
-@\orig-name\ \title\
-@end ifclear
-@end macro
-@end macro
-
-@c Ignore @node commands.
-@html-define-line{node,}
-
-@c Here is a special one for "@top".
-@macro top{title}
-@end macro
-
-@c Now actually define a new set of sectioning commands.
-@node_define {appendix, h1}
-@node_define {appendixsec, h2}
-@node_define {appendixsubsec, h3}
-@node_define {appendixsubsubsec, h4}
-@node_define {chapter, h1}
-@node_define {section, h2}
-@node_define {subsection, h3}
-@node_define {subsubsec, h4}
-@node_define {unnumbered, h1}
-@node_define {unnumberedsec, h2}
-@node_define {unnumberedsubsec, h3}
-@node_define {unnumberedsubsubsec, h4}
-
-@c The italicized analogues.
-@inode_define {iappendix, h1}
-@inode_define {iappendixsec, h2}
-@inode_define {iappendixsubsec, h3}
-@inode_define {iappendixsubsubsec, h4}
-@inode_define {ichapter, h1}
-@inode_define {isection, h2}
-@inode_define {isubsection, h3}
-@inode_define {isubsubsec, h4}
-@inode_define {iunnumbered, h1}
-@inode_define {iunnumberedsec, h2}
-@inode_define {iunnumberedsubsec, h3}
-@inode_define {iunnumberedsubsubsec, h4}
-
-@c Manual starter:
-@c
-@c Pass arguments of TITLE, AUTHOR, and a short DESCRIPTION.
-@c Immediately following, insert the Top node's menu.
-@c
-@c Typical usage:
-@c
-@c @document{Makeinfo, Brian J. Fox, This file documents the use of the
-@c @code{makeinfo} program\, versions 1.61 and later.}
-@c
-@c @menu
-@c * What is @makeinfo{}?::
-@c @end menu
-@macro document{title, author, description}
-@ifinfo
-\description\
-
-Copyright @copyright{} 1995 \author\
-Copyright @copyright{} 1995 Free Software Foundation, Inc.
-
-Permission is granted to make and distribute verbatim copies of
-this manual provided the copyright notice and this permission notice
-are preserved on all copies.
-
-Permission is granted to process this file through TeX and print the
-results, provided the printed document carries copying permission
-notice identical to this one except for the removal of this paragraph
-(this paragraph not being relevant to the printed manual).
-
-Permission is granted to copy and distribute modified versions of this
-manual under the conditions for verbatim copying, provided that the entire
-resulting derived work is distributed under the terms of a permission
-notice identical to this one.
-
-Permission is granted to copy and distribute translations of this manual
-into another language, under the above conditions for modified versions,
-except that this permission notice may be stated in a translation approved
-by the copyright holders.
-@end ifinfo
-
-@titlepage
-@title \title\
-@author \author\
-
-@page
-@vskip 0pt plus 1filll
-Copyright @copyright{} 1995 \author\
-Copyright @copyright{} 1995 Free Software Foundation, Inc.
-
-Permission is granted to make and distribute verbatim copies of
-this manual provided the copyright notice and this permission notice
-are preserved on all copies.
-
-Permission is granted to copy and distribute modified versions of this
-manual under the conditions for verbatim copying, provided that the entire
-resulting derived work is distributed under the terms of a permission
-notice identical to this one.
-
-Permission is granted to copy and distribute translations of this manual
-into another language, under the above conditions for modified versions,
-except that this permission notice may be stated in a translation approved
-by the copyright holders.
-@end titlepage
-
-@top{\title\}
-
-\description\
-@end macro
-
-@html-define-line{end,
-@ifeq{"\\line\\"\, "ifinfo"\, @end ifinfo}
-@ifeq{"\\line\\"\, "ifset"\, @end ifset}
-@ifeq{"\\line\\"\, "ifclear"\, @end ifclear}
-@ifeq{"\\line\\"\, "cartouche"\, @end cartouche}
-@ifeq{"\\line\\"\, "menu"\, @end menu}
-@ifeq{"\\line\\"\, "itemize"\, </ul>}
-@ifeq{"\\line\\"\, "enumerate"\, </ul>}
-@ifeq{"\\line\\"\, "table"\, </ul>}
-@ifeq{"\\line\\"\, "ftable"\, </ul>}
-@ifeq{"\\line\\"\, "vtable"\, </ul>}
-@ifeq{"\\line\\"\, "menu"\, xxx}
-@ifeq{"\\line\\"\, "quotation"\, </pre>}
-@ifeq{"\\line\\"\, "example"\, </tt></pre>}
-@ifeq{"\\line\\"\, "smallexample"\, </tt></pre>}
-@ifeq{"\\line\\"\, "lisp"\, </tt></pre>}
-@ifeq{"\\line\\"\, "format"\, </tt></pre>}
-@ifeq{"\\line\\"\, "display"\, </tt></pre>}
-@ifeq{"\\line\\"\, "group"}}
diff --git a/texinfo/makeinfo/macros/multifmt.texi b/texinfo/makeinfo/macros/multifmt.texi
deleted file mode 100644
index 0f2eb32a585..00000000000
--- a/texinfo/makeinfo/macros/multifmt.texi
+++ /dev/null
@@ -1,41 +0,0 @@
-@c multiformat.texi: -*- Texinfo -*- \input texinfo.tex
-
-@c Copyright (c) 1995 Universal Access, Inc
-@c Author: Brian J. Fox (bfox@ua.com) Sun Apr 2 07:56:23 1995.
-@setfilename multiformat.info
-
-@include html.texi
-
-@ifset html
-@html
-@end ifset
-
-@node First Node, First Section, (dir), (dir)
-@chapter First Chapter
-Here is some text that belongs in the first chapter. Nothing very
-exciting happens here, but this is enough text to span a couple of
-lines, and we feel that is important.
-@paragraph
-
-This is the second paragraph of the first chapter. Note that the
-formatting commands in @code{HTML} seem to do the right thing, as do the
-commands when invoked in @code{Texinfo} mode and in @TeX{}.
-
-@node First Section, , First Node, First Node
-@isection First Section
-
-Here is some text in the first section of the first chapter. We are
-trying very hard to examine the output here to see exactly how proper it
-is. If I wasn't so tired, we could probably see it already.
-@paragraph
-
-Here is a list of items:
-@paragraph
-
-@itemize @bullet
-@item Here is the first item.
-@item Here is the second item.
-@end itemize
-
-@bye
-
diff --git a/texinfo/makeinfo/macros/res-samp.texi b/texinfo/makeinfo/macros/res-samp.texi
deleted file mode 100644
index 5b4e869e0c3..00000000000
--- a/texinfo/makeinfo/macros/res-samp.texi
+++ /dev/null
@@ -1,32 +0,0 @@
-\input texinfo.tex
-@setfilename resume-example.info
-
-@include resume.texi
-
-@name Brian J. Fox
-@email bfox@@ai.mit.edu
-@street 116 Barranca Ave, Ste. B
-@city Santa Barbara
-@state CA
-@zip 93109
-@phone (805) 564-2192
-
-@resume
-
-@block{EDUCATION}
-@entry{
-12/11/59,
-12/11/63,
-My Mom's House,
-Learning at home with my mother.,
-This was the most learning I ever did.}
-
-@entry{12/11/63, 12/11/77, Brookline\, MA, Learning in the public school system.}
-@entry{12/11/78, 12/11/81, Santa Barbara\, CA, Learning in life
-experience\, and three months at Santa Barbara City College.}
-
-@block{WORK EXPERIENCE}
-@entry{12/11/59, 12/11/75, Mom's house, Various and sundry tasks\,
-including washing dishes and clothes\, and toilet training.}
-@entry{3 months ago, present, Terrapin\, Inc., hacking up Unix systems\, breaking @code{LOGO} worlds\, terrorizing surrounding neighborhood.}
-@bye
diff --git a/texinfo/makeinfo/macros/resume.texi b/texinfo/makeinfo/macros/resume.texi
deleted file mode 100644
index a4dc5d04be9..00000000000
--- a/texinfo/makeinfo/macros/resume.texi
+++ /dev/null
@@ -1,64 +0,0 @@
-@c
-@c Reusme writing macros. Produce a very specific format.
-@c
-
-@c A macro which creates a macro. The resultant macro can be called to
-@c set a variable which has the same name as the macro. Use
-@c @value{name} to get the value set in @name{}.
-@macro make-var-macro{macro-name}
-@macro \macro-name\{value}
-@quote-arg
-@set \macro-name\ \value\
-@end macro
-@end macro
-
-@make-var-macro{name}
-@make-var-macro{street}
-@make-var-macro{city}
-@make-var-macro{state}
-@make-var-macro{zip}
-@make-var-macro{phone}
-@make-var-macro{email}
-
-@c Give all of the above variable/macros a null value to start.
-@name
-@street
-@city
-@state
-@zip
-@phone
-@email
-
-@c A typical heading for a resume block is a non-indented line.
-@macro block{title}
-@paragraphindent none
-@comment @noindent
-@heading \title\
-@end macro
-
-@c A typical entry in a resume has a from-date, a to-date, a location,
-@c a job title, and a longer descrition body.
-
-@macro entry{from-date, to-date, where, what, body}
-@paragraphindent 8
-@b{\where\: \what\ (\from-date\ --- \to-date\)}
-@paragraphindent 3
-
-\body\
-@paragraphindent none
-@end macro
-
-@macro address{}
-@value{name}@*
-@value{street}@*
-@value{city}, @value{state}@*
-@value{zip}@*
-@value{phone}
-@end macro
-
-@macro resume{}
-@center @value{name}@*
-@center @value{street}@*
-@center @value{city}, @value{state} @value{zip}@*
-@center @value{email}
-@end macro
diff --git a/texinfo/makeinfo/macros/simpledoc.texi b/texinfo/makeinfo/macros/simpledoc.texi
deleted file mode 100644
index 576cb9b8e41..00000000000
--- a/texinfo/makeinfo/macros/simpledoc.texi
+++ /dev/null
@@ -1,135 +0,0 @@
-
-@comment Here are some useful examples of the macro facility.
-
-@c Simply insert the right version of the texinfo name.
-@macro texinfo{}
-TeXinfo
-@end macro
-
-@c Define a macro which expands to a pretty version of the name of the
-@c Makeinfo program.
-@macro makeinfo{}
-@code{Makeinfo}
-@end macro
-
-@c Simple insert the right version of the Info name.
-@macro Info{}
-@code{Info}
-@end macro
-
-@c Define a macro which is used to define other macros. This one makes
-@c a macro which creates a node and gives it a sectioning command. Note
-@c that the created macro uses the original definition within the
-@c expansion text. This takes advantage of the non-recursion feature of
-@c macro execution.
-@macro node_define{orig-name}
-@macro \orig-name\{title}
-@node \title\
-@\orig-name\ \title\
-@end macro
-@end macro
-
-@c Here is a special one for "@top", causing the node name to be "Top",
-@c but leaving the section name as the specified title.
-@macro top{title}
-@node Top
-@top \title\
-@end macro
-
-@c Now actually define a new set of sectioning commands.
-@node_define {appendix}
-@node_define {appendixsec}
-@node_define {appendixsubsec}
-@node_define {appendixsubsubsec}
-@node_define {chapter}
-@node_define {section}
-@node_define {subsection}
-@node_define {subsubsec}
-@node_define {unnumbered}
-@node_define {unnumberedsec}
-@node_define {unnumberedsubsec}
-@node_define {unnumberedsubsubsec}
-
-@c The italicized analogues.
-@node_define {iappendix}
-@node_define {iappendixsec}
-@node_define {iappendixsubsec}
-@node_define {iappendixsubsubsec}
-@node_define {ichapter}
-@node_define {isection}
-@node_define {isubsection}
-@node_define {isubsubsec}
-@node_define {iunnumbered}
-@node_define {iunnumberedsec}
-@node_define {iunnumberedsubsec}
-@node_define {iunnumberedsubsubsec}
-
-@c Manual starter:
-@c
-@c Pass arguments of TITLE, AUTHOR, and a short DESCRIPTION.
-@c Immediately following, insert the Top node's menu.
-@c
-@c Typical usage:
-@c
-@c @document{Makeinfo, Brian J. Fox, This file documents the use of the
-@c @code{makeinfo} program\, versions 1.58 and later.}
-@c
-@c @menu
-@c * What is @makeinfo{}?::
-@c @end menu
-
-@macro document{title, author, description}
-@ifinfo
-\description\
-
-Copyright @copyright{} 1994 \author\
-Copyright @copyright{} 1994 Free Software Foundation, Inc.
-
-Permission is granted to make and distribute verbatim copies of
-this manual provided the copyright notice and this permission notice
-are preserved on all copies.
-
-Permission is granted to process this file through TeX and print the
-results, provided the printed document carries copying permission
-notice identical to this one except for the removal of this paragraph
-(this paragraph not being relevant to the printed manual).
-
-Permission is granted to copy and distribute modified versions of this
-manual under the conditions for verbatim copying, provided that the entire
-resulting derived work is distributed under the terms of a permission
-notice identical to this one.
-
-Permission is granted to copy and distribute translations of this manual
-into another language, under the above conditions for modified versions,
-except that this permission notice may be stated in a translation approved
-by the copyright holders.
-@end ifinfo
-
-@titlepage
-@title \title\
-@author \author\
-
-@page
-@vskip 0pt plus 1filll
-Copyright @copyright{} 1994 \author\
-Copyright @copyright{} 1994 Free Software Foundation, Inc.
-
-Permission is granted to make and distribute verbatim copies of
-this manual provided the copyright notice and this permission notice
-are preserved on all copies.
-
-Permission is granted to copy and distribute modified versions of this
-manual under the conditions for verbatim copying, provided that the entire
-resulting derived work is distributed under the terms of a permission
-notice identical to this one.
-
-Permission is granted to copy and distribute translations of this manual
-into another language, under the above conditions for modified versions,
-except that this permission notice may be stated in a translation approved
-by the copyright holders.
-@end titlepage
-
-@top{\title\}
-
-\description\
-@end macro
diff --git a/texinfo/po/ChangeLog b/texinfo/po/ChangeLog
deleted file mode 100644
index e69de29bb2d..00000000000
--- a/texinfo/po/ChangeLog
+++ /dev/null
diff --git a/texinfo/po/Makefile.in.in b/texinfo/po/Makefile.in.in
deleted file mode 100644
index 2bcfa31b94b..00000000000
--- a/texinfo/po/Makefile.in.in
+++ /dev/null
@@ -1,247 +0,0 @@
-# Makefile for program source directory in GNU NLS utilities package.
-# Copyright (C) 1995, 1996, 1997 by Ulrich Drepper <drepper@gnu.ai.mit.edu>
-#
-# This file can be copied and used freely without restrictions. It can
-# be used in projects which are not available under the GNU Public License
-# but which still want to provide support for the GNU gettext functionality.
-# Please note that the actual code is *not* freely available.
-
-PACKAGE = @PACKAGE@
-VERSION = @VERSION@
-
-SHELL = /bin/sh
-@SET_MAKE@
-
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
-VPATH = @srcdir@
-
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-datadir = $(prefix)/@DATADIRNAME@
-localedir = $(datadir)/locale
-gnulocaledir = $(prefix)/share/locale
-gettextsrcdir = $(prefix)/share/gettext/po
-subdir = po
-
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-MKINSTALLDIRS = $(top_srcdir)/@MKINSTALLDIRS@
-
-CC = @CC@
-GENCAT = @GENCAT@
-GMSGFMT = PATH=../src:$$PATH @GMSGFMT@
-MSGFMT = @MSGFMT@
-XGETTEXT = PATH=../src:$$PATH @XGETTEXT@
-MSGMERGE = PATH=../src:$$PATH msgmerge
-
-DEFS = @DEFS@
-CFLAGS = @CFLAGS@
-CPPFLAGS = @CPPFLAGS@
-
-INCLUDES = -I.. -I$(top_srcdir)/intl
-
-COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS)
-
-SOURCES = cat-id-tbl.c
-POFILES = @POFILES@
-GMOFILES = @GMOFILES@
-DISTFILES = ChangeLog Makefile.in.in POTFILES.in $(PACKAGE).pot \
-stamp-cat-id $(POFILES) $(GMOFILES) $(SOURCES)
-
-POTFILES = \
-
-CATALOGS = @CATALOGS@
-CATOBJEXT = @CATOBJEXT@
-INSTOBJEXT = @INSTOBJEXT@
-
-.SUFFIXES:
-.SUFFIXES: .c .o .po .pox .gmo .mo .msg .cat
-
-.c.o:
- $(COMPILE) $<
-
-.po.pox:
- $(MAKE) $(PACKAGE).pot
- $(MSGMERGE) $< $(srcdir)/$(PACKAGE).pot -o $*.pox
-
-.po.mo:
- $(MSGFMT) -o $@ $<
-
-.po.gmo:
- file=$(srcdir)/`echo $* | sed 's,.*/,,'`.gmo \
- && rm -f $$file && $(GMSGFMT) -o $$file $<
-
-.po.cat:
- sed -f ../intl/po2msg.sed < $< > $*.msg \
- && rm -f $@ && $(GENCAT) $@ $*.msg
-
-
-all: all-@USE_NLS@
-
-all-yes: cat-id-tbl.c $(CATALOGS)
-all-no:
-
-$(srcdir)/$(PACKAGE).pot: $(POTFILES)
- $(XGETTEXT) --default-domain=$(PACKAGE) --directory=$(top_srcdir) \
- --add-comments --keyword=_ --keyword=N_ \
- --files-from=$(srcdir)/POTFILES.in
- rm -f $(srcdir)/$(PACKAGE).pot
- mv $(PACKAGE).po $(srcdir)/$(PACKAGE).pot
-
-$(srcdir)/cat-id-tbl.c: stamp-cat-id; @:
-$(srcdir)/stamp-cat-id: $(PACKAGE).pot
- rm -f cat-id-tbl.tmp
- sed -f ../intl/po2tbl.sed $(srcdir)/$(PACKAGE).pot \
- | sed -e "s/@PACKAGE NAME@/$(PACKAGE)/" > cat-id-tbl.tmp
- if cmp -s cat-id-tbl.tmp $(srcdir)/cat-id-tbl.c; then \
- rm cat-id-tbl.tmp; \
- else \
- echo cat-id-tbl.c changed; \
- rm -f $(srcdir)/cat-id-tbl.c; \
- mv cat-id-tbl.tmp $(srcdir)/cat-id-tbl.c; \
- fi
- cd $(srcdir) && rm -f stamp-cat-id && echo timestamp > stamp-cat-id
-
-
-install: install-exec install-data
-install-exec:
-install-data: install-data-@USE_NLS@
-install-data-no: all
-install-data-yes: all
- if test -r $(MKINSTALLDIRS); then \
- $(MKINSTALLDIRS) $(datadir); \
- else \
- $(top_srcdir)/mkinstalldirs $(datadir); \
- fi
- @catalogs='$(CATALOGS)'; \
- for cat in $$catalogs; do \
- cat=`basename $$cat`; \
- case "$$cat" in \
- *.gmo) destdir=$(gnulocaledir);; \
- *) destdir=$(localedir);; \
- esac; \
- lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \
- dir=$$destdir/$$lang/LC_MESSAGES; \
- if test -r $(MKINSTALLDIRS); then \
- $(MKINSTALLDIRS) $$dir; \
- else \
- $(top_srcdir)/mkinstalldirs $$dir; \
- fi; \
- if test -r $$cat; then \
- $(INSTALL_DATA) $$cat $$dir/$(PACKAGE)$(INSTOBJEXT); \
- echo "installing $$cat as $$dir/$(PACKAGE)$(INSTOBJEXT)"; \
- else \
- $(INSTALL_DATA) $(srcdir)/$$cat $$dir/$(PACKAGE)$(INSTOBJEXT); \
- echo "installing $(srcdir)/$$cat as" \
- "$$dir/$(PACKAGE)$(INSTOBJEXT)"; \
- fi; \
- if test -r $$cat.m; then \
- $(INSTALL_DATA) $$cat.m $$dir/$(PACKAGE)$(INSTOBJEXT).m; \
- echo "installing $$cat.m as $$dir/$(PACKAGE)$(INSTOBJEXT).m"; \
- else \
- if test -r $(srcdir)/$$cat.m ; then \
- $(INSTALL_DATA) $(srcdir)/$$cat.m \
- $$dir/$(PACKAGE)$(INSTOBJEXT).m; \
- echo "installing $(srcdir)/$$cat as" \
- "$$dir/$(PACKAGE)$(INSTOBJEXT).m"; \
- else \
- true; \
- fi; \
- fi; \
- done
- if test "$(PACKAGE)" = "gettext"; then \
- if test -r $(MKINSTALLDIRS); then \
- $(MKINSTALLDIRS) $(gettextsrcdir); \
- else \
- $(top_srcdir)/mkinstalldirs $(gettextsrcdir); \
- fi; \
- $(INSTALL_DATA) $(srcdir)/Makefile.in.in \
- $(gettextsrcdir)/Makefile.in.in; \
- else \
- : ; \
- fi
-
-# Define this as empty until I found a useful application.
-installcheck:
-
-uninstall:
- catalogs='$(CATALOGS)'; \
- for cat in $$catalogs; do \
- cat=`basename $$cat`; \
- lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \
- rm -f $(localedir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT); \
- rm -f $(localedir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT).m; \
- rm -f $(gnulocaledir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT); \
- rm -f $(gnulocaledir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT).m; \
- done
- rm -f $(gettextsrcdir)/po-Makefile.in.in
-
-check: all
-
-cat-id-tbl.o: ../intl/libgettext.h
-
-dvi info tags TAGS ID:
-
-mostlyclean:
- rm -f core core.* *.pox $(PACKAGE).po *.old.po cat-id-tbl.tmp
- rm -fr *.o
-
-clean: mostlyclean
-
-distclean: clean
- rm -f Makefile Makefile.in POTFILES *.mo *.msg *.cat *.cat.m
-
-maintainer-clean: distclean
- @echo "This command is intended for maintainers to use;"
- @echo "it deletes files that may require special tools to rebuild."
- rm -f $(GMOFILES)
-
-distdir = ../$(PACKAGE)-$(VERSION)/$(subdir)
-dist distdir: update-po $(DISTFILES)
- dists="$(DISTFILES)"; \
- for file in $$dists; do \
- ln $(srcdir)/$$file $(distdir) 2> /dev/null \
- || cp -p $(srcdir)/$$file $(distdir); \
- done
-
-update-po: Makefile
- $(MAKE) $(PACKAGE).pot
- PATH=`pwd`/../src:$$PATH; \
- cd $(srcdir); \
- catalogs='$(CATALOGS)'; \
- for cat in $$catalogs; do \
- cat=`basename $$cat`; \
- lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \
- mv $$lang.po $$lang.old.po; \
- echo "$$lang:"; \
- if $(MSGMERGE) $$lang.old.po $(PACKAGE).pot -o $$lang.po; then \
- rm -f $$lang.old.po; \
- else \
- echo "msgmerge for $$cat failed!"; \
- rm -f $$lang.po; \
- mv $$lang.old.po $$lang.po; \
- fi; \
- done
-
-POTFILES: POTFILES.in
- ( if test 'x$(srcdir)' != 'x.'; then \
- posrcprefix='$(top_srcdir)/'; \
- else \
- posrcprefix="../"; \
- fi; \
- rm -f $@-t $@ \
- && (sed -e '/^#/d' -e '/^[ ]*$$/d' \
- -e "s@.*@ $$posrcprefix& \\\\@" < $(srcdir)/$@.in \
- | sed -e '$$s/\\$$//') > $@-t \
- && chmod a-w $@-t \
- && mv $@-t $@ )
-
-Makefile: Makefile.in.in ../config.status POTFILES
- cd .. \
- && CONFIG_FILES=$(subdir)/$@.in CONFIG_HEADERS= \
- $(SHELL) ./config.status
-
-# Tell versions [3.59,3.63) of GNU make not to export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/texinfo/po/POTFILES.in b/texinfo/po/POTFILES.in
deleted file mode 100644
index 8debb07e931..00000000000
--- a/texinfo/po/POTFILES.in
+++ /dev/null
@@ -1,22 +0,0 @@
-# List of source files containing translatable strings.
-# The last line must not be a comment.
-
-info/echo-area.c
-info/footnotes.c
-info/footnotes.h
-info/indices.c
-info/info.c
-info/info.h
-info/infodoc.c
-info/m-x.c
-info/makedoc.c
-info/nodemenu.c
-info/session.c
-info/tilde.c
-info/variables.c
-info/window.c
-lib/getopt.c
-makeinfo/makeinfo.c
-makeinfo/multi.c
-util/install-info.c
-util/texindex.c
diff --git a/texinfo/po/cat-id-tbl.c b/texinfo/po/cat-id-tbl.c
deleted file mode 100644
index f40dc22b199..00000000000
--- a/texinfo/po/cat-id-tbl.c
+++ /dev/null
@@ -1,502 +0,0 @@
-/* Automatically generated by po2tbl.sed from texinfo.pot. */
-
-#if HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include "libgettext.h"
-
-const struct _msg_ent _msg_tbl[] = {
- {"", 1},
- {"Move down to the next line", 2},
- {"Move up to the previous line", 3},
- {"Move to the end of the line", 4},
- {"Move to the start of the line", 5},
- {"Move forward a character", 6},
- {"Move backward a character", 7},
- {"Move forward a word", 8},
- {"Move backward a word", 9},
- {"Move forwards or down through node structure", 10},
- {"Move backwards or up through node structure", 11},
- {"Scroll forward in this window", 12},
- {"Scroll backward in this window", 13},
- {"Move to the start of this node", 14},
- {"Move to the end of this node", 15},
- {"Select the next window", 16},
- {"Select the previous window", 17},
- {"Split the current window", 18},
- {"Delete the current window", 19},
- {"Delete all other windows", 20},
- {"Scroll the other window", 21},
- {"Grow (or shrink) this window", 22},
- {"Divide the available screen space among the visible windows", 23},
- {"Toggle the state of line wrapping in the current window", 24},
- {"Select the `Next' node", 25},
- {"Select the `Prev' node", 26},
- {"Select the `Up' node", 27},
- {"Select the last node in this file", 28},
- {"Select the first node in this file", 29},
- {"Select the most recently selected node", 30},
- {"Select the last item in this node's menu", 31},
- {"Select this menu item", 32},
- {"Read a menu item and select its node", 33},
- {"Read a footnote or cross reference and select its node", 34},
- {"Move to the start of this node's menu", 35},
- {"Visit as many menu items at once as possible", 36},
- {"Read a node name and select it", 37},
- {"Read a manpage reference and select it", 38},
- {"Select the node `Top' in this file", 39},
- {"Select the node `(dir)'", 40},
- {"Kill this node", 41},
- {"Read the name of a file and select it", 42},
- {"Pipe the contents of this node through INFO_PRINT_COMMAND", 43},
- {"Read a string and search for it", 44},
- {"Search interactively for a string as you type it", 45},
- {"Move to the previous cross reference", 46},
- {"Move to the next cross reference", 47},
- {"Select reference or menu item appearing on this line", 48},
- {"Cancel current operation", 49},
- {"Move to the cursor to a specific line of the window", 50},
- {"Redraw the display", 51},
- {"Quit using Info", 52},
- {"Add this digit to the current numeric argument", 53},
- {"universal-argument", 54},
- {"Start (or multiply by 4) the current numeric argument", 55},
- {"Internally used by \\[universal-argument]", 56},
- {"Move to the start of this line", 57},
- {"Move to the end of this line", 58},
- {"Delete the character under the cursor", 59},
- {"Delete the character behind the cursor", 60},
- {"Cancel or quit operation", 61},
- {"Accept (or force completion of) this line", 62},
- {"Insert next character verbatim", 63},
- {"Insert this character", 64},
- {"Insert a TAB character", 65},
- {"Transpose characters at point", 66},
- {"Yank back the contents of the last kill", 67},
- {"Yank back a previous kill", 68},
- {"Kill to the end of the line", 69},
- {"Kill to the beginning of the line", 70},
- {"Kill the word following the cursor", 71},
- {"Kill the word preceding the cursor", 72},
- {"List possible completions", 73},
- {"Insert completion", 74},
- {"Scroll the completions window", 75},
- {"Display help message", 76},
- {"Visit Info node `(info)Help'", 77},
- {"Print documentation for KEY", 78},
- {"Show what to type to execute a given command", 79},
- {"Read the name of an Info command and describe it", 80},
- {"Read a command name in the echo area and execute it", 81},
- {"Set the height of the displayed window", 82},
- {"Look up a string in the index for this file", 83},
- {"\
-Go to the next matching index item from the last `\\[index-search]' command", 84},
- {"Grovel all known info file's indices for a string and build a menu", 85},
- {"Make a window containing a menu of all of the currently visited nodes", 86},
- {"Select a node which has been previously visited in a visible window", 87},
- {"Show the footnotes associated with this node in another window", 88},
- {"Explain the use of a variable", 89},
- {"Set the value of an Info variable", 90},
- {"Kill ring is empty", 91},
- {"Not complete", 92},
- {"No completions", 93},
- {"Sole completion", 94},
- {"There %s %d ", 95},
- {"is", 96},
- {"are", 97},
- {"completion%s:\n", 98},
- {"Building completions...", 99},
- {"Footnotes could not be displayed", 100},
- {"Finding index entries...", 101},
- {"No indices found.", 102},
- {"Index entry: ", 103},
- {"No previous index search string.", 104},
- {"No index entries.", 105},
- {"No %sindex entries containing \"%s\".", 106},
- {"more ", 107},
- {"CAN'T SEE THIS", 108},
- {"Found \"%s\" in %s. (`\\[next-index-match]' tries to find next.)", 109},
- {"Scanning indices of \"%s\"...", 110},
- {"Index apropos: ", 111},
- {"\
-\n\
-* Menu: Nodes whoses indices contain \"%s\":\n", 112},
- {"no entries found\n", 113},
- {"There is no menu in this node.", 114},
- {"There is no menu item \"%s\" in this node.", 115},
- {"Unable to find the node referenced by \"%s\".", 116},
- {"\
-Usage: info [-d dir-path] [-f info-file] [-o output-file] [-n node-name]...", 117},
- {"\
- [--directory dir-path] [--file info-file] [--node node-name]...", 118},
- {" [--help] [--output output-file] [--subnodes] [--version]", 119},
- {" [--dribble dribble-file] [--restore from-file]", 120},
- {" [menu-selection ...]", 121},
- {"\
-Here is a quick description of Info's options. For a more complete\n\
-description of how to use Info, type `info info options'.\n\
-\n\
- --directory DIR Add DIR to INFOPATH.\n\
- --dribble FILENAME Remember user keystrokes in FILENAME.\n\
- --file FILENAME Specify Info file to visit.\n\
- --node NODENAME Specify nodes in first visited Info file.\n\
- --output FILENAME Output selected nodes to FILENAME.\n\
- --restore FILENAME Read initial keystrokes from FILENAME.\n\
- --subnodes Recursively output menu items.\n\
- --help Get this help message.\n\
- --version Display Info's version information.\n\
-\n\
-Remaining arguments to Info are treated as the names of menu\n\
-items in the initial node visited. You can easily move to the\n\
-node of your choice by specifying the menu names which describe\n\
-the path to that node. For example, `info emacs buffers'.\n\
-\n\
-Email bug reports to bug-texinfo@prep.ai.mit.edu.", 122},
- {"Basic Commands in Info Windows", 123},
- {"\
-The following commands can only be invoked via M-x:\n\
-\n", 124},
- {"--- Use `\\[history-node]' or `\\[kill-node]' to exit ---\n", 125},
- {"Describe key: %s", 126},
- {"ESC %s is undefined.", 127},
- {"%s is undefined.", 128},
- {"%s is defined to %s.", 129},
- {"Where is command: ", 130},
- {"`%s' is not on any keys", 131},
- {"%s can only be invoked via %s.", 132},
- {"%s can be invoked via %s.", 133},
- {"There is no function named `%s'", 134},
- {"Describe command: ", 135},
- {"Cannot execute an `echo-area' command here.", 136},
- {"Set screen height to (%d): ", 137},
- {"\
- Source files groveled to make this file include:\n\
-\n", 138},
- {"Couldn't manipulate the file %s.\n", 139},
- {"\
-\n\
-* Menu:\n\
- (File)Node Lines Size Containing File\n\
- ---------- ----- ---- ---------------", 140},
- {"\
-Here is the menu of nodes you have recently visited.\n\
-Select one from this menu, or use `\\[history-node]' in another window.\n", 141},
- {"Select visited node: ", 142},
- {"The reference disappeared! (%s).", 143},
- {"\
-Welcome to Info version %s. \"\\[get-help-window]\" for help, \
-\"\\[menu-item]\" for menu item.", 144},
- {" times", 145},
- {"%d times", 146},
- {"No \"Next\" pointer for this node.", 147},
- {"Following \"Next\" node...", 148},
- {"Next", 149},
- {"Selecting first menu item...", 150},
- {"Selecting \"Next\" node...", 151},
- {"Up", 152},
- {"No more nodes.", 153},
- {"No \"Prev\" for this node.", 154},
- {"Moving \"Prev\" in this window.", 155},
- {"Prev", 156},
- {"No \"Prev\" or \"Up\" for this node.", 157},
- {"Moving \"Up\" in this window.", 158},
- {"Moving to \"Prev\"'s last menu item.", 159},
- {"Cannot delete a permanent window", 160},
- {"This window has no additional nodes", 161},
- {"There aren't %d items in this menu.", 162},
- {"Menu item (%s): ", 163},
- {"Menu item: ", 164},
- {"Follow xref (%s): ", 165},
- {"Follow xref: ", 166},
- {"Goto Node: ", 167},
- {"Get Manpage: ", 168},
- {"Top", 169},
- {"Kill node (%s): ", 170},
- {"Cannot kill node `%s'", 171},
- {"Cannot kill the last node", 172},
- {"Find file: ", 173},
- {"Cannot find \"%s\".", 174},
- {"Could not create output file \"%s\".", 175},
- {"Done.", 176},
- {"Writing node \"(%s)%s\"...", 177},
- {"Writing node \"%s\"...", 178},
- {"Cannot open pipe to \"%s\".", 179},
- {"Printing node \"(%s)%s\"...", 180},
- {"Printing node \"%s\"...", 181},
- {"Searching subfile \"%s\"...", 182},
- {"%s for string [%s]: ", 183},
- {"Search backward", 184},
- {"Search", 185},
- {"Search failed.", 186},
- {"I-search backward: ", 187},
- {"I-search: ", 188},
- {"Failing ", 189},
- {"No cross references in this node.", 190},
- {"Quit", 191},
- {"Unknown command (%s).", 192},
- {"\"\" is invalid", 193},
- {"\"%s\" is invalid", 194},
- {"When \"On\", footnotes appear and disappear automatically", 195},
- {"When \"On\", creating or deleting a window resizes other windows", 196},
- {"When \"On\", flash the screen instead of ringing the bell", 197},
- {"When \"On\", errors cause the bell to ring", 198},
- {"When \"On\", Info garbage collects files which had to be uncompressed", 199},
- {"When \"On\", the portion of the matched search string is highlighted", 200},
- {"Controls what happens when scrolling is requested at the end of a node", 201},
- {"The number lines to scroll when the cursor moves out of the window", 202},
- {"When \"On\", Info accepts and displays ISO Latin characters", 203},
- {"Describe variable: ", 204},
- {"Set variable: ", 205},
- {"Set %s to value (%d): ", 206},
- {"Set %s to value (%s): ", 207},
- {"--*** Tags out of Date ***", 208},
- {"-----Info: (), lines ----, ", 209},
- {"-%s---Info: %s, %d lines --%s--", 210},
- {"-%s%s-Info: (%s)%s, %d lines --%s--", 211},
- {" Subfile: %s", 212},
- {"%s:%d: warning: ", 213},
- {"Too many errors! Gave up.\n", 214},
- {"%s: %s arg must be numeric, not `%s'.\n", 215},
- {"Couldn't open macro expansion output `%s'", 216},
- {"Cannot specify more than one macro expansion output", 217},
- {"%s: --paragraph-indent arg must be numeric/`none'/`asis', not `%s'.\n", 218},
- {"%s: --footnote-style arg must be `separate' or `end', not `%s'.\n", 219},
- {"\
-Copyright (C) 1996 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.", 220},
- {"%s: missing file argument.\n", 221},
- {"makeinfo (GNU %s %s) %d.%d\n", 222},
- {"Try `%s --help' for more information.\n", 223},
- {"\
-Usage: %s [OPTION]... TEXINFO-FILE...\n\
-\n\
-Translate Texinfo source documentation to a format suitable for reading\n\
-with GNU Info.\n\
-\n\
-Options:\n\
--D VAR define a variable, as with @set.\n\
--E MACRO-OFILE process macros only, output texinfo source.\n\
--I DIR append DIR to the @include directory search path.\n\
--P DIR prepend DIR to the @include directory search path.\n\
--U VAR undefine a variable, as with @clear.\n\
---error-limit NUM quit after NUM errors (default %d).\n\
---fill-column NUM break 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\n\
- the node in which they are defined (the default).\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\
---no-split suppress splitting of large files.\n\
---no-headers suppress node separators and Node: Foo headers.\n\
---output FILE, -o FILE output to FILE, and ignore any @setfilename.\n\
---paragraph-indent VAL indent paragraphs with VAL spaces (default %d).\n\
- if VAL is `none', do not indent; if VAL is `asis',\n\
- preserve any existing indentation.\n\
---reference-limit NUM complain about at most NUM references (default %d).\n\
---verbose report about what is being done.\n\
---version display version information and exit.\n\
-\n\
-Email bug reports to bug-texinfo@prep.ai.mit.edu.\n", 224},
- {"%s: getwd: %s, %s\n", 225},
- {"Expected `%s'", 226},
- {"No `%s' found in `%s'", 227},
- {"%s: Skipping macro expansion to stdout as Info output is going there.\n", 228},
- {"Making %s file `%s' from `%s'.\n", 229},
- {"This is Info file %s, produced by Makeinfo version %d.%d", 230},
- {" from the input file %s.\n", 231},
- {"\
-%s: Removing macro output file `%s' due to errors; use --force to preserve.\n", 232},
- {"%s: Removing output file `%s' due to errors; use --force to preserve.\n", 233},
- {"Misplaced %c", 234},
- {"Unknown command `%s'", 235},
- {"NO_NAME!", 236},
- {"%c%s expected `{...}'", 237},
- {"Unmatched }", 238},
- {"%c%s missing close brace", 239},
- {"Broken-Type in insertion_type_pname", 240},
- {"Enumeration stack overflow", 241},
- {"lettering overflow, restarting at %c", 242},
- {"* Menu:\n", 243},
- {"%s requires an argument: the formatter for %citem", 244},
- {"`%cend' expected `%s', but saw `%s'", 245},
- {"No matching `%cend %s'", 246},
- {"How did @%s end up in cm_special_char?\n", 247},
- {"%c%s expects `i' or `j' as argument, not `%c'", 248},
- {"%c%s expects a single character `i' or `j' as argument", 249},
- {"January", 250},
- {"February", 251},
- {"March", 252},
- {"April", 253},
- {"May", 254},
- {"June", 255},
- {"July", 256},
- {"August", 257},
- {"September", 258},
- {"October", 259},
- {"November", 260},
- {"December", 261},
- {"%d %s %d", 262},
- {"%c%s expects a single character as an argument", 263},
- {"%c%s is obsolete", 264},
- {"There already is a node having %ctop as a section", 265},
- {"Here is the %ctop node", 266},
- {"%ctop used before %cnode, defaulting to %s", 267},
- {"%c%s is obsolete; use %c%s instead", 268},
- {"Node `%s' multiply defined (line %d is first definition at)", 269},
- {"Formatting node %s...\n", 270},
- {"Node `%s' requires a sectioning command (e.g. %c%s)", 271},
- {"Node `%s''s Next field not pointed back to", 272},
- {"This node (`%s') is the one with the bad `Prev'", 273},
- {"Node `%s's Prev field not pointed back to", 274},
- {"This node (`%s') has the bad Next", 275},
- {"Node `%s' missing Up field", 276},
- {"`%s' has an Up field of `%s', but `%s' has no menu item for `%s'", 277},
- {"node `%s' has been referenced %d times", 278},
- {"unreferenced node `%s'", 279},
- {"%s reference to nonexistent node `%s'", 280},
- {"%cmenu seen before first node", 281},
- {"creating `Top' node", 282},
- {"`.' or `,' must follow cross reference, not %c", 283},
- {"@image file `%s' unreadable: %s", 284},
- {"@image missing filename argument", 285},
- {"%s requires letter or digit", 286},
- {"Unmatched `%c%s'", 287},
- {"`%c%s' needs something after it", 288},
- {"Bad argument to `%s', `%s', using `%s'", 289},
- {"{No Value For \"%s\"}", 290},
- {"%c%s requires a name", 291},
- {"Reached eof before matching @end %s", 292},
- {"The `%c%s' command is meaningless within a `@%s' block", 293},
- {"%citemx is not meaningful inside of a `%s' block", 294},
- {"%c%s found outside of an insertion block", 295},
- {"Missing `}' in %cdef arg", 296},
- {"Function", 297},
- {"Macro", 298},
- {"Special Form", 299},
- {"Variable", 300},
- {"User Option", 301},
- {"Instance Variable", 302},
- {"Method", 303},
- {"Must be in a `%s' insertion in order to use `%s'x", 304},
- {"%csp requires a positive numeric argument", 305},
- {"asis", 306},
- {"none", 307},
- {"Bad argument to %c%s", 308},
- {"Unknown index `%s'", 309},
- {"Index `%s' already exists", 310},
- {"Unknown index `%s' and/or `%s' in @synindex", 311},
- {"Unknown index `%s' in @printindex", 312},
- {"\
-* Menu:\n\
-\n", 313},
- {"`%c%s' needs an argument `{...}', not just `%s'", 314},
- {"No closing brace for footnote `%s'", 315},
- {"Footnote defined without parent node", 316},
- {"-Footnotes", 317},
- {"\
----------- Footnotes ----------\n\
-\n", 318},
- {"macro `%s' previously defined", 319},
- {"here is the previous definition of `%s'", 320},
- {"Macro `%s' called with too many args", 321},
- {"%cend macro not found", 322},
- {"%cquote-arg only useful when the macro takes a single argument", 323},
- {"ignoring stray text `%s' after @multitable", 324},
- {"Too many columns in multitable item (max %d)", 325},
- {"multitable item not in active multitable", 326},
- {"Cannot select column #%d in multitable", 327},
- {"ignoring @tab outside of multitable", 328},
- {"** Multicolumn output from last row:\n", 329},
- {"* column #%d: output = %s\n", 330},
- {"virtual memory exhausted", 331},
- {"%s: warning: ", 332},
- {" for %s", 333},
- {"\tTry `%s --help' for a complete list of options.\n", 334},
- {"\
-%s [OPTION]... [INFO-FILE [DIR-FILE]]\n\
- Install INFO-FILE in the Info directory file DIR-FILE.\n\
-\n\
-Options:\n\
---delete Delete existing entries in INFO-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\
-\n\
-Email bug reports to bug-texinfo@prep.ai.mit.edu.\n", 335},
- {"\
-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\
-File: dir Node: Top This 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", 336},
- {"%s: could not read (%s) and could not create (%s)\n", 337},
- {"%s: Specify the Info directory only once.\n", 338},
- {"%s: Specify the Info file only once.\n", 339},
- {"install-info (GNU %s) %s\n", 340},
- {"excess command line argument `%s'", 341},
- {"No input file specified; try --help for more information.", 342},
- {"No dir file specified; try --help for more information.", 343},
- {"START-INFO-DIR-ENTRY without matching END-INFO-DIR-ENTRY", 344},
- {"END-INFO-DIR-ENTRY without matching START-INFO-DIR-ENTRY", 345},
- {"no info dir entry in `%s'", 346},
- {"menu item `%s' already exists, for file `%s'", 347},
- {"no entries found for `%s'; nothing deleted", 348},
- {"keep temporary files around after processing", 349},
- {"do not keep temporary files around after processing (default)", 350},
- {"send output to FILE", 351},
- {"display version information and exit", 352},
- {"display this help and exit", 353},
- {"Usage: %s [OPTION]... FILE...\n", 354},
- {"Generate a sorted index for each TeX output FILE.\n", 355},
- {"Usually FILE... is `foo.??' for a document `foo.texi'.\n", 356},
- {"\
-\n\
-Options:\n", 357},
- {"\
-\n\
-Email bug reports to bug-texinfo@prep.ai.mit.edu.", 358},
- {"texindex (GNU %s %s) 2.1\n", 359},
- {"%s: not a texinfo index file", 360},
- {"failure reopening %s", 361},
- {"entry %s follows an entry with a secondary name", 362},
- {"%s; for file `%s'.\n", 363},
- {"Virtual memory exhausted in %s ()! Needed %d bytes.", 364},
-};
-
-int _msg_tbl_length = 364;
diff --git a/texinfo/po/de.gmo b/texinfo/po/de.gmo
deleted file mode 100644
index b99834b5e5c..00000000000
--- a/texinfo/po/de.gmo
+++ /dev/null
Binary files differ
diff --git a/texinfo/po/de.po b/texinfo/po/de.po
deleted file mode 100644
index 081cce67a6a..00000000000
--- a/texinfo/po/de.po
+++ /dev/null
@@ -1,2089 +0,0 @@
-# German messages for GNU Texinfo
-# Copyright © 1996, 1997, 1998 Free Software Foundation, Inc.
-# Karl Eichwalder <ke@ke.Central.DE>, 1996.
-# Karl Eichwalder <ke@SuSE.DE>, 1997,1998.
-#
-# 1998-02-28 14:29:49 MET
-# Revised for 3.11b
-# I refuse to translate getopt.c strings
-# -ke-
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: texinfo 3.11\n"
-"POT-Creation-Date: 1998-03-03 13:32-0500\n"
-"PO-Revision-Date: 1998-02-28 14:32+01:00\n"
-"Last-Translator: Karl Eichwalder <ke@SuSE.DE>\n"
-"Language-Team: German <de@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=ISO-8859-1\n"
-"Content-Transfer-Encoding: 8-bit\n"
-
-#. ****************************************************************
-#.
-#. Echo Area Movement Commands
-#.
-#. ****************************************************************
-#: info/echo-area.c:283 info/session.c:698
-msgid "Move forward a character"
-msgstr "Ein Zeichen vorwärts bewegen"
-
-#. Move point backward in the node.
-#: info/echo-area.c:295 info/session.c:714
-msgid "Move backward a character"
-msgstr "Ein Zeichen rückwärts bewegen"
-
-#: info/echo-area.c:307
-msgid "Move to the start of this line"
-msgstr "Zum Anfang dieser Zeile bewegen"
-
-#: info/echo-area.c:312
-msgid "Move to the end of this line"
-msgstr "Zum Ende dieser Zeile bewegen"
-
-#. Move forward a word in the input line.
-#: info/echo-area.c:320 info/session.c:732
-msgid "Move forward a word"
-msgstr "Ein Wort vorwärts bewegen"
-
-#: info/echo-area.c:360 info/session.c:781
-msgid "Move backward a word"
-msgstr "Ein Wort rückwärts bewegen"
-
-#: info/echo-area.c:400
-msgid "Delete the character under the cursor"
-msgstr "Das Zeichen unter dem Cursor löschen"
-
-# checkit
-#: info/echo-area.c:430
-msgid "Delete the character behind the cursor"
-msgstr "Das Zeichen hinter dem Cursor löschen"
-
-#: info/echo-area.c:451
-msgid "Cancel or quit operation"
-msgstr "Operation abbrechen oder beenden"
-
-#: info/echo-area.c:466
-msgid "Accept (or force completion of) this line"
-msgstr "Akzeptiere diese Zeile (oder erzwinge ihre Vervollständigung)"
-
-#: info/echo-area.c:471
-msgid "Insert next character verbatim"
-msgstr "Das nächste Zeichen wörtlich eingeben"
-
-#: info/echo-area.c:479
-msgid "Insert this character"
-msgstr "Dieses Zeichen eingeben"
-
-# checkit
-#: info/echo-area.c:497
-msgid "Insert a TAB character"
-msgstr "Ein TAB-Zeichen eingeben"
-
-#. Transpose the characters at point. If point is at the end of the line,
-#. then transpose the characters before point.
-#: info/echo-area.c:504
-msgid "Transpose characters at point"
-msgstr "Zeichen am Point umstellen"
-
-#: info/echo-area.c:555
-msgid "Yank back the contents of the last kill"
-msgstr "Füge den Inhalt des letzten Killens ein"
-
-# IMO muss "kill" auch im Folgenden wörtlich üs werden -ke-
-#: info/echo-area.c:562
-msgid "Kill ring is empty"
-msgstr "Der Kill-Ring ist leer"
-
-#. If the last command was yank, or yank_pop, and the text just before
-#. point is identical to the current kill item, then delete that text
-#. from the line, rotate the index down, and yank back some other text.
-#: info/echo-area.c:575
-msgid "Yank back a previous kill"
-msgstr "Füge ein vorangehendes Killen ein"
-
-#. Delete the text from point to end of line.
-#: info/echo-area.c:608
-msgid "Kill to the end of the line"
-msgstr "Bis zum Ende der Zeile killen"
-
-#: info/echo-area.c:621
-msgid "Kill to the beginning of the line"
-msgstr "Bis zum Anfang der Zeile killen"
-
-#. Delete from point to the end of the current word.
-#: info/echo-area.c:633
-msgid "Kill the word following the cursor"
-msgstr "Das dem Cursor folgende Wort killen"
-
-#: info/echo-area.c:652
-msgid "Kill the word preceding the cursor"
-msgstr "Das dem Cursor vorangehende Wort killen"
-
-# checkit
-#: info/echo-area.c:871
-msgid "Not complete"
-msgstr "Nicht vollständig"
-
-#: info/echo-area.c:916
-msgid "List possible completions"
-msgstr "Mögliche Vervollständigungen listen"
-
-#: info/echo-area.c:929
-msgid "No completions"
-msgstr "Keine Vervollständigungen"
-
-#: info/echo-area.c:933
-msgid "Sole completion"
-msgstr "Einzige Vervollständigung"
-
-#: info/echo-area.c:942
-msgid "One completion:\n"
-msgstr "Eine Vervollständigung:\n"
-
-#: info/echo-area.c:943
-#, c-format
-msgid "%d completions:\n"
-msgstr "%d Vervollständigungen:\n"
-
-#: info/echo-area.c:1088
-msgid "Insert completion"
-msgstr "Vervollständigung einfügen"
-
-#: info/echo-area.c:1221
-msgid "Building completions..."
-msgstr "Bilde Vervollständigungen..."
-
-# checkit
-#. Scroll the "other" window. If there is a window showing completions, scroll
-#. that one, otherwise scroll the window which was active on entering the read
-#. function.
-#: info/echo-area.c:1319
-msgid "Scroll the completions window"
-msgstr "Vervollständigungs-Fenster »scrollen«"
-
-#: info/footnotes.c:206
-msgid "Footnotes could not be displayed"
-msgstr "Fußnoten können nicht angezeigt werden"
-
-#: info/footnotes.c:232
-msgid "Show the footnotes associated with this node in another window"
-msgstr "Zeige die mit diesem Node verbundenen Fußnoten im anderen Fenster"
-
-#: info/indices.c:175
-msgid "Look up a string in the index for this file"
-msgstr "Sieh eine Zeichenkette im Index dieser Datei nach"
-
-#: info/indices.c:205
-msgid "Finding index entries..."
-msgstr "Suche Index-Einträge..."
-
-# checkit
-# oder sind "Einträge" gemeint? -ke-
-#: info/indices.c:212
-msgid "No indices found."
-msgstr "Keine Indices gefunden."
-
-#: info/indices.c:222
-msgid "Index entry: "
-msgstr "Index-Eintrag: "
-
-#: info/indices.c:332
-msgid ""
-"Go to the next matching index item from the last `\\[index-search]' command"
-msgstr ""
-"Geh zum nächsten übereinstimmenden Index-Eintrag vom letzten "
-"»\\[index-search]«-Befehl"
-
-#: info/indices.c:342
-msgid "No previous index search string."
-msgstr "Keine vorangehende zu suchende Index-Zeichenkette."
-
-#: info/indices.c:349
-msgid "No index entries."
-msgstr "Keine Index-Einträge."
-
-# checkit
-# kann im Deutschen nachgebildet werden, aber... -ke-
-#: info/indices.c:382
-#, c-format
-msgid "No %sindex entries containing \"%s\"."
-msgstr "Keine %sIndex-Einträge beinhalten »%s«."
-
-#: info/indices.c:383
-msgid "more "
-msgstr "weiteren "
-
-#: info/indices.c:393
-msgid "CAN'T SEE THIS"
-msgstr "DIES IST NICHT ZU SEHEN"
-
-#: info/indices.c:429
-#, c-format
-msgid "Found \"%s\" in %s. (`\\[next-index-match]' tries to find next.)"
-msgstr ""
-"»%s« in %s gefunden. (»\\[next-index-match]« versucht nächsten Eintrag zu "
-"finden.)"
-
-#: info/indices.c:533
-#, c-format
-msgid "Scanning indices of \"%s\"..."
-msgstr "Index von »%s« wird durchsucht..."
-
-#: info/indices.c:616
-msgid "Grovel all known info file's indices for a string and build a menu"
-msgstr ""
-"Durchsuche durch alle bekannten Info-Datei-Indices nach einer Zeichenkette "
-"und bilde ein Menü"
-
-#: info/indices.c:620
-msgid "Index apropos: "
-msgstr "Index apropos: "
-
-#: info/indices.c:650
-#, c-format
-msgid ""
-"\n"
-"* Menu: Nodes whoses indices contain \"%s\":\n"
-msgstr ""
-"\n"
-"* Menü: Nodes, deren Indices »%s« beinhalten:\n"
-
-#: info/info.c:212
-msgid "Try --help for more information."
-msgstr "»--help« gibt weitere Informationen."
-
-# Hier de-Standard-Formulierung einsetzen!
-#: info/info.c:231 makeinfo/makeinfo.c:1089 util/install-info.c:530
-#: 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"
-"Dies ist freie Software; in den Quellen befindet sich die Lizenz- und\n"
-"Kopierbedingung. Es gibt KEINERLEI Garantie, nicht einmal für die\n"
-"TAUGLICHKEIT oder die VERWENDBARKEIT ZU EINEM ANGEGEBENEN ZWECK.\n"
-
-#: info/info.c:363
-msgid "no entries found\n"
-msgstr "Keine Einträge gefunden\n"
-
-#: info/info.c:406
-msgid "There is no menu in this node."
-msgstr "Es gibt kein Menü in diesem Node."
-
-#: info/info.c:437
-#, c-format
-msgid "There is no menu item \"%s\" in this node."
-msgstr "Es gibt keinen Menüpunkt »%s« in diesem Node."
-
-#: info/info.c:501
-#, c-format
-msgid "Unable to find the node referenced by \"%s\"."
-msgstr "Kann keinen von »%s« referenzierten Node finden."
-
-#: info/info.c:602
-#, c-format
-msgid ""
-"Usage: %s [OPTION]... [INFO-FILE [MENU-ITEM...]]\n"
-"\n"
-"Read documentation in Info format.\n"
-"For more complete documentation on how to use Info, run `info info "
-"options'.\n"
-"\n"
-"Options:\n"
-"--directory DIR add DIR to INFOPATH.\n"
-"--dribble FILENAME remember user keystrokes in FILENAME.\n"
-"--file FILENAME specify Info file to visit.\n"
-"--node NODENAME specify nodes in first visited Info file.\n"
-"--output FILENAME output selected nodes to FILENAME.\n"
-"--restore FILENAME read initial keystrokes from FILENAME.\n"
-"--subnodes recursively output menu items.\n"
-"--help display this help and exit.\n"
-"--version display version information and exit.\n"
-"\n"
-"The first argument, if present, is the name of the Info file to read.\n"
-"Any remaining arguments are treated as the names of menu\n"
-"items in the initial node visited. For example, `info emacs buffers'\n"
-"moves to the node `buffers' in the info file `emacs'.\n"
-"\n"
-"Email bug reports to bug-texinfo@gnu.org."
-msgstr ""
-"Syntax: %s [OPTION]... [INFO-DATEI [MENU-EINTRAG...]]\n"
-"\n"
-"Um Dokumentation zu lesen, die im Info-Format vorliegt.\n"
-"Für eine ausführlichere Anleitung, wie Info zu benutzen ist, »info info\n"
-"options« eingeben.\n"
-"\n"
-"Optionen:\n"
-" --directory VERZ VERZ zu INFOPATH hinzufügen\n"
-" --dribble DATEI Tasteneingaben des Benutzers in DATEI merken\n"
-" --file DATEI zu besuchende Info-DATEI angeben\n"
-" --node KNOTEN Knoten in der ersten zu besuchenden Info-Datei "
-"angeben\n"
-" --output DATEI ausgewählte Knoten nach DATEI ausgeben\n"
-" --restore DATEI die beginnenden Tasteneingaben von DATEI lesen\n"
-" --subnodes Menüpunkte rekursiv ausgeben\n"
-" --help diese Hilfe anzeigen\n"
-" --version Programmversion anzeigen\n"
-"\n"
-"Verbleibende Parameter werden als Namen von Menüpunkten des zuerst "
-"besuchten\n"
-"Knotens angesehen. Man kann sich einfach zum gewünschten Knoten bewegen,\n"
-"indem man die Namen der Menüpunkte angibt, die den Weg dorthin bezeichnen;\n"
-"z. B. »info emacs buffers«.\n"
-"\n"
-"Fehler (\"bugs\") bitte an <bug-texinfo@gnu.org> melden.<\n"
-"\n"
-"Für die deutsche Übersetzung ist die Mailingliste <de@li.org> zuständig."
-
-#: info/infodoc.c:50
-msgid "Basic Commands in Info Windows"
-msgstr "Grundbefehle in Info-Fenstern"
-
-#: info/infodoc.c:211
-msgid ""
-"The following commands can only be invoked via M-x:\n"
-"\n"
-msgstr "Die folgenden Befehle können nur via M-x aufgerufen werden:\n"
-
-#: info/infodoc.c:228
-msgid "--- Use `\\[history-node]' or `\\[kill-node]' to exit ---\n"
-msgstr ""
-"--- »\\[history-node]« oder »\\[kill-node]« benutzen, um zu beenden ---\n"
-
-#. Create or move to the help window.
-#: info/infodoc.c:328
-msgid "Display help message"
-msgstr "Diesen Hilfe-Text anzeigen"
-
-#. Show the Info help node. This means that the "info" file is installed
-#. where it can easily be found on your system.
-#: info/infodoc.c:346
-msgid "Visit Info node `(info)Help'"
-msgstr "Info-Node »(info)Help« besuchen"
-
-#: info/infodoc.c:470
-msgid "Print documentation for KEY"
-msgstr "Dokumentation für KEY ausgeben"
-
-#: info/infodoc.c:483
-#, c-format
-msgid "Describe key: %s"
-msgstr "Beschreibe Taste: %s"
-
-#: info/infodoc.c:492
-#, c-format
-msgid "ESC %s is undefined."
-msgstr "ESC %s ist nicht definiert."
-
-#: info/infodoc.c:509
-#, c-format
-msgid "%s is undefined."
-msgstr "%s ist nicht definiert."
-
-#: info/infodoc.c:535
-#, c-format
-msgid "%s is defined to %s."
-msgstr "%s ist definiert als %s."
-
-#: info/infodoc.c:731
-msgid "Where is command: "
-msgstr "Wo ist der Befehl: "
-
-#: info/infodoc.c:753
-#, c-format
-msgid "`%s' is not on any keys"
-msgstr "»%s« liegt auf keiner Taste"
-
-#: info/infodoc.c:759
-#, c-format
-msgid "%s can only be invoked via %s."
-msgstr "%s kann nur via %s aufgerufen werden."
-
-#: info/infodoc.c:762
-#, c-format
-msgid "%s can be invoked via %s."
-msgstr "%s kann via %s aufgerufen werden."
-
-#: info/infodoc.c:766
-#, c-format
-msgid "There is no function named `%s'"
-msgstr "Es gibt keine Funktion mit Namen »%s«"
-
-#: info/m-x.c:69
-msgid "Read the name of an Info command and describe it"
-msgstr "Lese den Namen eines Info-Befehls und beschreibe ihn"
-
-#: info/m-x.c:73
-msgid "Describe command: "
-msgstr "Beschreibe den Befehl: "
-
-#: info/m-x.c:96
-msgid "Read a command name in the echo area and execute it"
-msgstr "Lies einen Befehlsnamen in der »Echo-Area« und führe ihn aus"
-
-#: info/m-x.c:134
-msgid "Cannot execute an `echo-area' command here."
-msgstr "Kann hier keinen »echo-area«-Befehl ausführen."
-
-#: info/m-x.c:150
-msgid "Set the height of the displayed window"
-msgstr "Setze die Höhe des angezeigten Fensters"
-
-# checkit
-#: info/m-x.c:163
-#, c-format
-msgid "Set screen height to (%d): "
-msgstr "Bildschirm-Höhe auf (%d) setzen: "
-
-# checkit
-#: info/makedoc.c:126
-msgid ""
-" Source files groveled to make this file include:\n"
-"\n"
-msgstr ""
-" Quelldatei \"groveled\", damit diese Datei enthält:\n"
-"\n"
-
-#: info/makedoc.c:450
-#, c-format
-msgid "Couldn't manipulate the file %s.\n"
-msgstr "Datei »%s« ist nicht zu verändern.\n"
-
-#: info/nodemenu.c:28
-msgid ""
-"\n"
-"* Menu:\n"
-" (File)Node Lines Size Containing File\n"
-" ---------- ----- ---- ---------------"
-msgstr ""
-"\n"
-"* Menü:\n"
-" (Datei)Knoten Zeilen Größe Beinhaltet Datei\n"
-" ------------- ------ ----- ----------------"
-
-#: info/nodemenu.c:197
-msgid ""
-"Here is the menu of nodes you have recently visited.\n"
-"Select one from this menu, or use `\\[history-node]' in another window.\n"
-msgstr ""
-"Hier ist das Menü der Knoten, die zuetzt besucht wurden.\n"
-"Einen von diesem Menü auswählen oder »\\[history-node]« im anderen Fenster\n"
-"benutzen.\n"
-
-#: info/nodemenu.c:217
-msgid "Make a window containing a menu of all of the currently visited nodes"
-msgstr ""
-"Veranlassen, dass ein Fenster ein Menü aller aktuell besuchten Knoten enthält"
-
-#: info/nodemenu.c:297
-msgid "Select a node which has been previously visited in a visible window"
-msgstr ""
-"Einen Knoten auswählen, der zuvor in einem sichtbaren Fenster besucht wurde"
-
-#: info/nodemenu.c:309
-msgid "Select visited node: "
-msgstr "Besuchten Knoten auswählen: "
-
-#: info/nodemenu.c:329 info/session.c:1996
-#, c-format
-msgid "The reference disappeared! (%s)."
-msgstr "Der Verweispunkt ist verschwunden! (%s)."
-
-#: info/session.c:162
-#, c-format
-msgid ""
-"Welcome to Info version %s. \"\\[get-help-window]\" for help, "
-"\"\\[menu-item]\" for menu item."
-msgstr ""
-"Willkommen bei Info Version %s. \"\\[get-help-window]\" um Hilfe zu "
-"bekommen,\n"
-"mit \"\\[menu-item]\" Menüpunkt anzeigen."
-
-#. Move WINDOW's point down to the next line if possible.
-#: info/session.c:629
-msgid "Move down to the next line"
-msgstr "Eine Zeile nach unten bewegen"
-
-#. Move WINDOW's point up to the previous line if possible.
-#: info/session.c:644
-msgid "Move up to the previous line"
-msgstr "Eine Zeile nach oben bewegen"
-
-#. Move WINDOW's point to the end of the true line.
-#: info/session.c:659
-msgid "Move to the end of the line"
-msgstr "Zum Ende dieser Zeile bewegen"
-
-#. Move WINDOW's point to the beginning of the true line.
-#: info/session.c:679
-msgid "Move to the start of the line"
-msgstr "Zum Anfang der Zeile bewegen"
-
-#: info/session.c:855
-msgid " times"
-msgstr "mal"
-
-#: info/session.c:857
-#, c-format
-msgid "%d times"
-msgstr "%d mal"
-
-#: info/session.c:895
-msgid "No \"Next\" pointer for this node."
-msgstr "Kein »Next«-Verweis bei diesem Knoten."
-
-#: info/session.c:898
-msgid "Following \"Next\" node..."
-msgstr "»Next«-Knoten folgend..."
-
-# checkit
-# üs? -ke-
-#: info/session.c:899 info/session.c:927 info/session.c:999
-#: info/session.c:1717
-msgid "Next"
-msgstr ""
-
-#: info/session.c:915
-msgid "Selecting first menu item..."
-msgstr "Ersten Menüpunkt auswählen..."
-
-# checkit
-#: info/session.c:926
-msgid "Selecting \"Next\" node..."
-msgstr "Den Knoten \"Next\" auswählen..."
-
-# checkit
-# üs? -ke-
-#: info/session.c:950 info/session.c:1063 info/session.c:1733
-msgid "Up"
-msgstr ""
-
-#: info/session.c:1020
-msgid "No more nodes."
-msgstr "Keine \"Nodes\" mehr"
-
-#: info/session.c:1044
-msgid "No \"Prev\" for this node."
-msgstr "Kein »Prev« bei diesem Knoten."
-
-# checkit
-#. Move to the previous node. If this node now contains a menu,
-#. and we have not inhibited movement to it, move to the node
-#. corresponding to the last menu item.
-#: info/session.c:1047 info/session.c:1100
-msgid "Moving \"Prev\" in this window."
-msgstr "Nach »Prev« in diesem Fenster bewegen."
-
-# checkit
-# üs? -ke-
-#: info/session.c:1048 info/session.c:1101 info/session.c:1725
-msgid "Prev"
-msgstr ""
-
-#: info/session.c:1059
-msgid "No \"Prev\" or \"Up\" for this node."
-msgstr "Kein »Prev« oder »Up« bei diesem Knoten."
-
-#: info/session.c:1062
-msgid "Moving \"Up\" in this window."
-msgstr "Nach »Up« in diesem Fenster bewegen."
-
-#: info/session.c:1110
-msgid "Moving to \"Prev\"'s last menu item."
-msgstr "Nach dem letzten Menüpunkt von »Prev« bewegen."
-
-#: info/session.c:1121
-msgid "Move forwards or down through node structure"
-msgstr "Vorwärts oder abwärts durch die Knotenstruktur bewegen"
-
-#: info/session.c:1137
-msgid "Move backwards or up through node structure"
-msgstr "Zurück oder aufwärts durch die Knotenstruktur bewegen"
-
-#. Show the next screen of WINDOW's node.
-#: info/session.c:1152
-msgid "Scroll forward in this window"
-msgstr "In diesem Fenster vorwärts »scrollen«"
-
-#. Show the previous screen of WINDOW's node.
-#: info/session.c:1197
-msgid "Scroll backward in this window"
-msgstr "In diesem Fenster rückwärts »scrollen«"
-
-#. Move to the beginning of the node.
-#: info/session.c:1237
-msgid "Move to the start of this node"
-msgstr "Zum Anfang dieses Knotens bewegen"
-
-#. Move to the end of the node.
-#: info/session.c:1244
-msgid "Move to the end of this node"
-msgstr "Zum Ende dieses Knotens bewegen"
-
-#. ****************************************************************
-#.
-#. Commands for Manipulating Windows
-#.
-#. ****************************************************************
-#. Make the next window in the chain be the active window.
-#: info/session.c:1257
-msgid "Select the next window"
-msgstr "Das nächste Fenster auswählen"
-
-#. Make the previous window in the chain be the active window.
-#: info/session.c:1296
-msgid "Select the previous window"
-msgstr "Das vorige Fenster auswählen"
-
-#. Split WINDOW into two windows, both showing the same node. If we
-#. are automatically tiling windows, re-tile after the split.
-#: info/session.c:1347
-msgid "Split the current window"
-msgstr "Aktuelles Fenster unterteilen"
-
-#. Delete WINDOW, forgetting the list of last visited nodes. If we are
-#. automatically displaying footnotes, show or remove the footnotes
-#. window. If we are automatically tiling windows, re-tile after the
-#. deletion.
-#: info/session.c:1428
-msgid "Delete the current window"
-msgstr "Aktuelles Fenster löschen"
-
-#: info/session.c:1436
-msgid "Cannot delete a permanent window"
-msgstr "Ein permanentes Fenster kann nicht gelöscht werden"
-
-#. Just keep WINDOW, deleting all others.
-#: info/session.c:1469
-msgid "Delete all other windows"
-msgstr "Alle anderen Fenster löschen"
-
-#. Scroll the "other" window of WINDOW.
-#: info/session.c:1515
-msgid "Scroll the other window"
-msgstr "Das andere Fenster »scrollen«"
-
-#. Change the size of WINDOW by AMOUNT.
-#: info/session.c:1535
-msgid "Grow (or shrink) this window"
-msgstr "Aktuelles Fenster vergrößern (oder verkleinern)"
-
-#: info/session.c:1546
-msgid "Divide the available screen space among the visible windows"
-msgstr ""
-"Den vorhandenen Bildschirmplatz unter allen sichtbaren Fenstern aufteilen"
-
-#: info/session.c:1553
-msgid "Toggle the state of line wrapping in the current window"
-msgstr "Den Status des Zeilenumbruchs im aktuellen Fenster umschalten"
-
-#. Make WINDOW display the "Next:" node of the node currently being
-#. displayed.
-#: info/session.c:1714
-msgid "Select the `Next' node"
-msgstr "Den »Next«-Knoten auswählen"
-
-#. Make WINDOW display the "Prev:" node of the node currently being
-#. displayed.
-#: info/session.c:1722
-msgid "Select the `Prev' node"
-msgstr "Den »Prev«-Knoten auswählen"
-
-#. Make WINDOW display the "Up:" node of the node currently being
-#. displayed.
-#: info/session.c:1730
-msgid "Select the `Up' node"
-msgstr "Den »Up«-Knoten auswählen"
-
-#. Make WINDOW display the last node of this info file.
-#: info/session.c:1737
-msgid "Select the last node in this file"
-msgstr "Den letzten Knoten dieser Datei auswählen"
-
-# checkit
-#: info/session.c:1750 info/session.c:1768
-msgid "This window has no additional nodes"
-msgstr "Dies Fenster hat keine weiteren Knoten"
-
-#. Make WINDOW display the first node of this info file.
-#: info/session.c:1759
-msgid "Select the first node in this file"
-msgstr "Den ersten Knoten dieser Datei auswählen"
-
-#: info/session.c:1778
-msgid "Select the last item in this node's menu"
-msgstr "Den letzten Punkt des Menüs dieses Knotens auswählen"
-
-#. Use KEY (a digit) to select the Nth menu item in WINDOW->node.
-#: info/session.c:1784
-msgid "Select this menu item"
-msgstr "Diesen Menüpunkt auswählen"
-
-#: info/session.c:1813
-#, c-format
-msgid "There aren't %d items in this menu."
-msgstr "Es sind keine %d Punkte in diesem Menü."
-
-#: info/session.c:1944
-#, c-format
-msgid "Menu item (%s): "
-msgstr "Menüpunkt (%s): "
-
-#: info/session.c:1946
-msgid "Menu item: "
-msgstr "Menüpunkt: "
-
-#: info/session.c:1951
-#, c-format
-msgid "Follow xref (%s): "
-msgstr "Folge xref (%s): "
-
-#: info/session.c:1953
-msgid "Follow xref: "
-msgstr "Folge xref: "
-
-#. Read a line (with completion) which is the name of a menu item,
-#. and select that item.
-#: info/session.c:2042
-msgid "Read a menu item and select its node"
-msgstr "Einen Menüpunkt lesen und seinen Knoten auswählen"
-
-#: info/session.c:2050
-msgid "Read a footnote or cross reference and select its node"
-msgstr "Fußnote oder Querverweis lesen und den Konote auswählen"
-
-#. Position the cursor at the start of this node's menu.
-#: info/session.c:2056
-msgid "Move to the start of this node's menu"
-msgstr "Zum Anfang des Menüs dieses Knotens bewegen"
-
-#: info/session.c:2080
-msgid "Visit as many menu items at once as possible"
-msgstr "So viele Menüpunkte wie möglich auf einmal besuchen"
-
-#. Read a line of input which is a node name, and go to that node.
-#: info/session.c:2108
-msgid "Read a node name and select it"
-msgstr "Den Namen eines Knotens lesen und diesen auswählen"
-
-#: info/session.c:2169 info/session.c:2173
-msgid "Goto Node: "
-msgstr "Gehe nach Knoten: "
-
-#: info/session.c:2194
-msgid "Read a manpage reference and select it"
-msgstr "Einen Verweis auf eine Manpage lesen und diese auswählen"
-
-#: info/session.c:2198
-msgid "Get Manpage: "
-msgstr "Hole Manpage: "
-
-#. Move to the "Top" node in this file.
-#: info/session.c:2228
-msgid "Select the node `Top' in this file"
-msgstr "Den Knoten »Top« dieser Datei auswählen"
-
-#. Notice that the node "Top" is special, and doesn't have to
-#. be referenced.
-#: info/session.c:2230 makeinfo/makeinfo.c:5145 makeinfo/makeinfo.c:5228
-msgid "Top"
-msgstr "Top"
-
-#. Move to the node "(dir)Top".
-#: info/session.c:2234
-msgid "Select the node `(dir)'"
-msgstr "Den Knoten »(dir)« auswählen"
-
-#: info/session.c:2254
-#, c-format
-msgid "Kill node (%s): "
-msgstr "Kille Knoten (%s): "
-
-#: info/session.c:2307
-#, c-format
-msgid "Cannot kill node `%s'"
-msgstr "Kann Knoten »%s« nicht killen"
-
-#: info/session.c:2317
-msgid "Cannot kill the last node"
-msgstr "Der letzte Knoten kann nicht gekillt werden"
-
-#: info/session.c:2401
-msgid "Select the most recently selected node"
-msgstr "Den zuletzt gewählten Knoten auswählen"
-
-#. Kill named node.
-#: info/session.c:2407
-msgid "Kill this node"
-msgstr "Diesen Knoten killen"
-
-#. Read the name of a file and select the entire file.
-#: info/session.c:2415
-msgid "Read the name of a file and select it"
-msgstr "Den Namen einer Datei lesen und diese auswählen"
-
-#: info/session.c:2419
-msgid "Find file: "
-msgstr "Datei finden: "
-
-#: info/session.c:2436
-#, c-format
-msgid "Cannot find \"%s\"."
-msgstr "Kann »%s« nicht finden."
-
-#: info/session.c:2483 info/session.c:2608
-#, c-format
-msgid "Could not create output file \"%s\"."
-msgstr "Ausgabe-Datei »%s« kann nicht angelegt werden."
-
-#: info/session.c:2496 info/session.c:2625 info/session.c:2671
-msgid "Done."
-msgstr "Fertig."
-
-#: info/session.c:2553
-#, c-format
-msgid "Writing node \"(%s)%s\"..."
-msgstr "Schreibe Knoten (%s)%s"
-
-#: info/session.c:2556
-#, c-format
-msgid "Writing node \"%s\"..."
-msgstr "Knoten »%s« schreiben..."
-
-#: info/session.c:2634
-msgid "Pipe the contents of this node through INFO_PRINT_COMMAND"
-msgstr "Den Inhalt dieses Knotens durch INFO_PRINT_COMMAND pipen"
-
-#: info/session.c:2654
-#, c-format
-msgid "Cannot open pipe to \"%s\"."
-msgstr "Kann nicht nach »%s« pipen."
-
-#: info/session.c:2661
-#, c-format
-msgid "Printing node \"(%s)%s\"..."
-msgstr "Drucke Knoten »(%s)%s«..."
-
-#: info/session.c:2664
-#, c-format
-msgid "Printing node \"%s\"..."
-msgstr "Drucke Knoten »%s«..."
-
-#: info/session.c:2896
-#, c-format
-msgid "Searching subfile \"%s\"..."
-msgstr "Unterdatei »%s« wird durchsucht..."
-
-#: info/session.c:2946
-msgid "Read a string and search for it"
-msgstr "Eine Zeichenkette einlesen und danach suchen"
-
-# checkit
-#: info/session.c:2966
-#, c-format
-msgid "%s for string [%s]: "
-msgstr "%s nach Zeichenkette [%s]: "
-
-#: info/session.c:2967
-msgid "Search backward"
-msgstr "Suche rückwärts"
-
-#: info/session.c:2967
-msgid "Search"
-msgstr "Suche"
-
-#: info/session.c:2994
-msgid "Search failed."
-msgstr "Suche fehlgeschlagen."
-
-#: info/session.c:3020 info/session.c:3026
-msgid "Search interactively for a string as you type it"
-msgstr "Interaktiv nach einer Zeichenkette während der Eingabe suchen"
-
-#: info/session.c:3120
-msgid "I-search backward: "
-msgstr "Interactive Suche rückwarts: "
-
-#: info/session.c:3122
-msgid "I-search: "
-msgstr "Interactive Suche"
-
-# checkit
-#: info/session.c:3147
-msgid "Failing "
-msgstr "Fehlgeschlagen "
-
-#: info/session.c:3512
-msgid "No cross references in this node."
-msgstr "Keine Querverweise in diesem Knoten."
-
-#: info/session.c:3579
-msgid "Move to the previous cross reference"
-msgstr "Zum vorigen Querverweis bewegen"
-
-#: info/session.c:3588
-msgid "Move to the next cross reference"
-msgstr "Zum nächsten Querverweis bewegen"
-
-#: info/session.c:3598
-msgid "Select reference or menu item appearing on this line"
-msgstr "Verweis oder Menüpunkt auswählen, der auf dieser Zeile erscheint"
-
-# checkit
-#. ****************************************************************
-#.
-#. Miscellaneous Info Commands
-#.
-#. ****************************************************************
-#. What to do when C-g is pressed in a window.
-#: info/session.c:3620
-msgid "Cancel current operation"
-msgstr "Momentane Operation abbrechen"
-
-#: info/session.c:3627
-msgid "Quit"
-msgstr "Ende"
-
-#: info/session.c:3636
-msgid "Move to the cursor to a specific line of the window"
-msgstr "Den Cursor nach einer bestimmten Zeile des Fensters bewegen"
-
-#. Clear the screen and redraw its contents. Given a numeric argument,
-#. move the line the cursor is on to the COUNT'th line of the window.
-#: info/session.c:3668
-msgid "Redraw the display"
-msgstr "Anzeige erneut darstellen"
-
-#. This command does nothing. It is the fact that a key is bound to it
-#. that has meaning. See the code at the top of info_session ().
-#: info/session.c:3705
-msgid "Quit using Info"
-msgstr "Info beenden"
-
-#: info/session.c:3728
-#, c-format
-msgid "Unknown command (%s)."
-msgstr "Unbekannter Befehl (%s)."
-
-#: info/session.c:3733
-msgid "\"\" is invalid"
-msgstr "\"\" ist ungültig"
-
-#: info/session.c:3735
-#, c-format
-msgid "\"%s\" is invalid"
-msgstr "\"%s\" ist ungültig"
-
-#: info/session.c:3958
-msgid "Add this digit to the current numeric argument"
-msgstr "Diese Zahl dem aktuellen numerischen Argument hinzufügen"
-
-#: info/session.c:3967
-msgid "Start (or multiply by 4) the current numeric argument"
-msgstr "Beginne (oder multipliziere mit 4) das aktuelle nummerische Argument"
-
-#: info/session.c:3982
-msgid "Internally used by \\[universal-argument]"
-msgstr "Intern gebraucht von \\[universal-argument]"
-
-#: info/tilde.c:362
-msgid "readline: Out of virtual memory!\n"
-msgstr "readline: Kein Speicher mehr!\n"
-
-#: info/variables.c:40
-msgid "When \"On\", footnotes appear and disappear automatically"
-msgstr "Wenn »On«, dann erscheinen und verschwinden Fußnoten automatisch"
-
-#: info/variables.c:44
-msgid "When \"On\", creating or deleting a window resizes other windows"
-msgstr ""
-"Wenn »On«, dann werden beim Anlegen oder Löschen eines Fensters die anderen "
-"Fenster angepasst"
-
-#: info/variables.c:48
-msgid "When \"On\", flash the screen instead of ringing the bell"
-msgstr "Wenn »On«, dann den Bildschirm blinken lassen, kein akustisches Signal"
-
-#: info/variables.c:52
-msgid "When \"On\", errors cause the bell to ring"
-msgstr "Wenn »On«, dann lassen Fehler ein akustisches Signal ertönen"
-
-# checkit
-#: info/variables.c:56
-msgid "When \"On\", Info garbage collects files which had to be uncompressed"
-msgstr ""
-"Wenn »On«, Info \"garbage collectet\" Dateien, die ausgepackt werden müssen"
-
-#: info/variables.c:59
-msgid "When \"On\", the portion of the matched search string is highlighted"
-msgstr ""
-"Wenn »On«, die übereinstimmende gefundene Zeichenkette wird gekennzeichnet"
-
-#: info/variables.c:63
-msgid "Controls what happens when scrolling is requested at the end of a node"
-msgstr ""
-"Kontrolliert, was passiert, wenn »scrollen« am Ende eines Knotens veranlasst "
-"wird"
-
-#: info/variables.c:67
-msgid "The number lines to scroll when the cursor moves out of the window"
-msgstr ""
-"Anzahl der Zeilen zu »scrollen«, wenn der Cursor aus dem Fenster bewegt wird"
-
-#: info/variables.c:71
-msgid "When \"On\", Info accepts and displays ISO Latin characters"
-msgstr "Wenn »On«, dann akzeptiert Info ISO-Latin-Zeichen und zeigt diese an"
-
-#: info/variables.c:77
-msgid "Explain the use of a variable"
-msgstr "Den Zweck einer Variablen erklären"
-
-#. Get the variable's name.
-#: info/variables.c:83
-msgid "Describe variable: "
-msgstr "Beschreibe Variable: "
-
-#: info/variables.c:102
-msgid "Set the value of an Info variable"
-msgstr "Den Wert einer Info-Variablen setzen"
-
-#. Get the variable's name and value.
-#: info/variables.c:108
-msgid "Set variable: "
-msgstr "Setze Variable: "
-
-#: info/variables.c:126
-#, c-format
-msgid "Set %s to value (%d): "
-msgstr "Setze %s auf den Wert (%d): "
-
-#: info/variables.c:167
-#, c-format
-msgid "Set %s to value (%s): "
-msgstr "Setze %s auf den Wert (%s): "
-
-#: info/window.c:1102
-msgid "--*** Tags out of Date ***"
-msgstr "--*** Tags veraltet ***"
-
-#. strlen (location_indicator).
-#. 10 for the decimal representation of the number of lines in this
-#. node, and the remainder of the text that can appear in the line.
-#: info/window.c:1113
-msgid "-----Info: (), lines ----, "
-msgstr "-----Info: (), Zeilen ----, "
-
-#: info/window.c:1120
-#, c-format
-msgid "-%s---Info: %s, %d lines --%s--"
-msgstr "-%s---Info: %s, %d Zeilen --%s--"
-
-#: info/window.c:1124
-#, c-format
-msgid "-%s%s-Info: (%s)%s, %d lines --%s--"
-msgstr "-%s%s-Info: (%s)%s, %d Zeilen --%s--"
-
-#: info/window.c:1131
-#, c-format
-msgid " Subfile: %s"
-msgstr " Unterdatei: %s"
-
-#: lib/getopt.c:672
-#, c-format
-msgid "%s: option `%s' is ambiguous\n"
-msgstr ""
-
-#: lib/getopt.c:696
-#, c-format
-msgid "%s: option `--%s' doesn't allow an argument\n"
-msgstr ""
-
-#: lib/getopt.c:701
-#, c-format
-msgid "%s: option `%c%s' doesn't allow an argument\n"
-msgstr ""
-
-#: lib/getopt.c:718 lib/getopt.c:891
-#, c-format
-msgid "%s: option `%s' requires an argument\n"
-msgstr ""
-
-#. --option
-#: lib/getopt.c:747
-#, c-format
-msgid "%s: unrecognized option `--%s'\n"
-msgstr ""
-
-#. +option or -option
-#: lib/getopt.c:751
-#, c-format
-msgid "%s: unrecognized option `%c%s'\n"
-msgstr ""
-
-#. 1003.2 specifies the format of this message.
-#: lib/getopt.c:777
-#, c-format
-msgid "%s: illegal option -- %c\n"
-msgstr ""
-
-#: lib/getopt.c:780
-#, c-format
-msgid "%s: invalid option -- %c\n"
-msgstr ""
-
-#. 1003.2 specifies the format of this message.
-#: lib/getopt.c:810 lib/getopt.c:940
-#, c-format
-msgid "%s: option requires an argument -- %c\n"
-msgstr ""
-
-#: lib/getopt.c:857
-#, c-format
-msgid "%s: option `-W %s' is ambiguous\n"
-msgstr ""
-
-#: lib/getopt.c:875
-#, c-format
-msgid "%s: option `-W %s' doesn't allow an argument\n"
-msgstr ""
-
-#: makeinfo/makeinfo.c:893
-#, c-format
-msgid "%s:%d: warning: "
-msgstr "%s:%d: Warnung: "
-
-#: makeinfo/makeinfo.c:916
-msgid "Too many errors! Gave up.\n"
-msgstr "Zu viele Fehler! Abbruch.\n"
-
-#: makeinfo/makeinfo.c:975 makeinfo/makeinfo.c:1000 makeinfo/makeinfo.c:1068
-#, c-format
-msgid "%s: %s arg must be numeric, not `%s'.\n"
-msgstr "%s: %s Argument muss numerisch sein, nicht »%s«.\n"
-
-# checkit
-#: makeinfo/makeinfo.c:989
-#, c-format
-msgid "Couldn't open macro expansion output `%s'"
-msgstr "Die Macro-Auflösung für »%s« kann nicht geöffnet werden"
-
-#: makeinfo/makeinfo.c:992
-msgid "Cannot specify more than one macro expansion output"
-msgstr "Mehr als eine Ausgabedatei darf nicht angegeben werden"
-
-#: makeinfo/makeinfo.c:1036
-#, c-format
-msgid "%s: --paragraph-indent arg must be numeric/`none'/`asis', not `%s'.\n"
-msgstr ""
-"%s: Arg für --paragraph-indent muss numerisch/»none«/»asis« sein, nicht "
-"»%s«.\n"
-
-#: makeinfo/makeinfo.c:1079
-#, c-format
-msgid "%s: --footnote-style arg must be `separate' or `end', not `%s'.\n"
-msgstr ""
-"%s: Argument für --footnote-style muss »separate« oder »end« sein, nicht "
-"»%s«.\n"
-
-#: makeinfo/makeinfo.c:1110
-#, c-format
-msgid "%s: missing file argument.\n"
-msgstr "%s: Datei-Angabe fehlt.\n"
-
-#: makeinfo/makeinfo.c:1163
-#, c-format
-msgid "Try `%s --help' for more information.\n"
-msgstr "»%s --help« gibt weitere Informationen.\n"
-
-# Die "." am Zeilenende habe ich entfernt. -ke-
-#: makeinfo/makeinfo.c:1165
-#, c-format
-msgid ""
-"Usage: %s [OPTION]... TEXINFO-FILE...\n"
-"\n"
-"Translate Texinfo source documentation to a format suitable for reading\n"
-"with GNU Info.\n"
-"\n"
-"Options:\n"
-"-D VAR define a variable, as with @set.\n"
-"-E MACRO-OFILE process macros only, output texinfo source.\n"
-"-I DIR append DIR to the @include directory search path.\n"
-"-P DIR prepend DIR to the @include directory search path.\n"
-"-U VAR undefine a variable, as with @clear.\n"
-"--error-limit NUM quit after NUM errors (default %d).\n"
-"--fill-column NUM break 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\n"
-" the node in which they are defined (the default).\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"
-"--no-split suppress splitting of large files.\n"
-"--no-headers suppress node separators and Node: Foo headers.\n"
-"--output FILE, -o FILE output to FILE, and ignore any @setfilename.\n"
-"--paragraph-indent VAL indent paragraphs with VAL spaces (default %d).\n"
-" if VAL is `none', do not indent; if VAL is `asis',\n"
-" preserve any existing indentation.\n"
-"--reference-limit NUM complain about at most NUM references (default %d).\n"
-"--verbose report about what is being done.\n"
-"--version display version information and exit.\n"
-"\n"
-"Email bug reports to bug-texinfo@gnu.org.\n"
-msgstr ""
-"Aufruf: %s [OPTION]... TEXINFO-DATEI...\n"
-"\n"
-"Texinfo-Quelltext in ein Format übersetzen, das mit GNU Info gelesen werden\n"
-"kann.\n"
-"\n"
-"Optionen:\n"
-"-D VAR eine Variable definieren, wie mit @set\n"
-"-E MACRO-AUSGABEDATEI nur die Macros auflösen, Texinfo-Quelltext ausgeben\n"
-"-I VERZ VERZ in die Verzeichnis-Suchliste für @include "
-"aufnehmen\n"
-"-P DIR VERZ dem @include Verzeichnis-Suchpfad voranstellen\n"
-"-U VAR eine Variable aufheben, wie mit @clear\n"
-"--error-limit ZAHL nach ZAHL Fehlern beenden (Standard %d)\n"
-"--fill-column ZAHL Zeilen nach ZAHL Zeichen umbrechen (Standard %d)\n"
-"--footnote-style STYLE Fußnoten gemäß STYLE ausgeben:\n"
-" »separate«: Fußnoten in einen eigenen Knoten "
-"plazieren;\n"
-" »end«: Fußnoten an das Ende des Knoten setzen, "
-"in\n"
-" dem sie definiert sind (Standard)\n"
-"--force Ausgabe auch bei Fehlern aufbewahren\n"
-"--help diese Hilfe zeigen\n"
-"--no-validate Überprüfen der \"node\"-Querverweise unterdrücken\n"
-"--no-warn Warnungen unterdrücken (aber keine Fehler)\n"
-"--no-split Aufteilen langer Dateien unterdrücken\n"
-"--no-headers Knoten-Unterteiler und \"Node: Foo\" Kopfzeilen\n"
-" unterdrücken\n"
-"--output DATEI, -o DATEI\n"
-" Ausgabe nach DATEI und @setfilename ignorieren\n"
-"--paragraph-indent ZAHL/»none«/»asis«\n"
-" Absätze mit ZAHL Leerräumen einziehen (Standard %d);\n"
-" »none«: keine Leerräume\n"
-" »asis«: keine Veränderung hinsichtlich der Leerräume\n"
-"--reference-limit ZAHL bei wenigstens ZAHL Verweise melden (Standard %d)\n"
-"--verbose ausführlich die Bearbeitungschritte anzeigen\n"
-"--version Programmversion anzeigen\n"
-"\n"
-"Fehlerberichte (\"bugs\") bitte an <bug-texinfo@gnu.org> schicken.\n"
-"\n"
-"Für die deutsche Übersetzung ist die Mailingliste <de@li.org> zuständig.\n"
-
-#: makeinfo/makeinfo.c:1552
-#, c-format
-msgid "%s: getwd: %s, %s\n"
-msgstr ""
-
-#: makeinfo/makeinfo.c:1748
-#, c-format
-msgid "Expected `%s'"
-msgstr "Erwartet »%s«"
-
-#: makeinfo/makeinfo.c:2082
-#, c-format
-msgid "No `%s' found in `%s'"
-msgstr "Kein »%s« in »%s« gefunden"
-
-#: makeinfo/makeinfo.c:2132
-#, c-format
-msgid "%s: Skipping macro expansion to stdout as Info output is going there.\n"
-msgstr ""
-"%s: Macro-Auflösung nach der Standard-Ausgabe, da auch die Info-Ausgabe nach "
-"dort geht.\n"
-
-#: makeinfo/makeinfo.c:2151
-#, c-format
-msgid "Making %s file `%s' from `%s'.\n"
-msgstr "Erzeuge %s Datei »%s« von »%s«.\n"
-
-#: makeinfo/makeinfo.c:2181
-#, c-format
-msgid "This is Info file %s, produced by Makeinfo version %d.%d"
-msgstr "Dies ist die Info-Datei %s, hergestellt von Makeinfo Version %d.%d"
-
-#: makeinfo/makeinfo.c:2183
-#, c-format
-msgid " from the input file %s.\n"
-msgstr " aus der Eingabe-Datei %s.\n"
-
-#: makeinfo/makeinfo.c:2202
-#, c-format
-msgid ""
-"%s: Removing macro output file `%s' due to errors; use --force to preserve.\n"
-msgstr ""
-"%s: Entferne Macro-Ausgabe-Datei »%s« wegen der Fehler; --force benutzen, um "
-"diese beizubehalten.\n"
-
-#. If there were errors, and no --force, remove the output.
-#: makeinfo/makeinfo.c:2234
-#, c-format
-msgid "%s: Removing output file `%s' due to errors; use --force to preserve.\n"
-msgstr ""
-"%s: Entferne Ausgabe-Datei »%s« wegen der Fehler; --force benutzen, um diese "
-"beizubehalten.\n"
-
-#. Special case. I'm not supposed to see this character by itself.
-#. If I do, it means there is a syntax error in the input text.
-#. Report the error here, but remember this brace on the stack so
-#. you can ignore its partner.
-#: makeinfo/makeinfo.c:2374 makeinfo/makeinfo.c:7629
-#, c-format
-msgid "Misplaced %c"
-msgstr "Fehlplazierte %c"
-
-#: makeinfo/makeinfo.c:2461
-#, c-format
-msgid "Unknown command `%s'"
-msgstr "Unbekannter Befehl »%s«"
-
-#: makeinfo/makeinfo.c:2481
-msgid "NO_NAME!"
-msgstr ""
-
-#: makeinfo/makeinfo.c:2495
-#, c-format
-msgid "%c%s expected `{...}'"
-msgstr "%c%s erwartete »{...}«"
-
-#: makeinfo/makeinfo.c:2528
-msgid "Unmatched }"
-msgstr "Nicht übereinstimmende }"
-
-#: makeinfo/makeinfo.c:2576
-#, c-format
-msgid "%c%s missing close brace"
-msgstr "%c%s fehlende schließende Klammer"
-
-# checkit
-# üs? -ke-
-#: makeinfo/makeinfo.c:3372
-msgid "Broken-Type in insertion_type_pname"
-msgstr ""
-
-#: makeinfo/makeinfo.c:3438
-msgid "Enumeration stack overflow"
-msgstr "Nummerierungsstack-Überlauf"
-
-#: makeinfo/makeinfo.c:3470
-#, c-format
-msgid "lettering overflow, restarting at %c"
-msgstr "Buchstaben-Zählungs-Überlauf, beginne wieder bei %c"
-
-# checkit
-# übersetzen? -ke-
-#: makeinfo/makeinfo.c:3509
-msgid "* Menu:\n"
-msgstr "* Menü:\n"
-
-# checkit
-#: makeinfo/makeinfo.c:3593
-#, c-format
-msgid "%s requires an argument: the formatter for %citem"
-msgstr "%s erfordert ein Argument: der Formatierer für %citem"
-
-#: makeinfo/makeinfo.c:3697
-#, c-format
-msgid "`%cend' expected `%s', but saw `%s'"
-msgstr "»%cend« erwartete »%s«, aber bekam »%s«"
-
-# checkit
-#: makeinfo/makeinfo.c:3810
-#, c-format
-msgid "No matching `%cend %s'"
-msgstr "Nicht übereinstimmende »%cend %s«"
-
-#: makeinfo/makeinfo.c:3949
-#, c-format
-msgid "How did @%s end up in cm_special_char?\n"
-msgstr "Zu was führt @%s in cm_special_char?\n"
-
-#. This error message isn't perfect if the argument is multiple
-#. characters, but it doesn't seem worth getting right.
-#: makeinfo/makeinfo.c:3963
-#, c-format
-msgid "%c%s expects `i' or `j' as argument, not `%c'"
-msgstr "%c%s erwartet »i« oder »j« als Argument, nicht »%c«"
-
-#: makeinfo/makeinfo.c:3967
-#, c-format
-msgid "%c%s expects a single character `i' or `j' as argument"
-msgstr "%c%s erwartet einen einzigen Buchstaben »i« oder »j« als Argument"
-
-#: makeinfo/makeinfo.c:3979
-msgid "January"
-msgstr "Januar"
-
-#: makeinfo/makeinfo.c:3979
-msgid "February"
-msgstr "Februar"
-
-#: makeinfo/makeinfo.c:3979
-msgid "March"
-msgstr "März"
-
-#: makeinfo/makeinfo.c:3979
-msgid "April"
-msgstr "April"
-
-#: makeinfo/makeinfo.c:3979
-msgid "May"
-msgstr "Mai"
-
-#: makeinfo/makeinfo.c:3980
-msgid "June"
-msgstr "Juni"
-
-#: makeinfo/makeinfo.c:3980
-msgid "July"
-msgstr "Juli"
-
-#: makeinfo/makeinfo.c:3980
-msgid "August"
-msgstr "August"
-
-#: makeinfo/makeinfo.c:3980
-msgid "September"
-msgstr "September"
-
-#: makeinfo/makeinfo.c:3980
-msgid "October"
-msgstr "Oktober"
-
-#: makeinfo/makeinfo.c:3981
-msgid "November"
-msgstr "November"
-
-#: makeinfo/makeinfo.c:3981
-msgid "December"
-msgstr "Dezember"
-
-#: makeinfo/makeinfo.c:4039
-#, c-format
-msgid "%c%s expects a single character as an argument"
-msgstr "%c%s erwartet einen einzigen Buchstaben als Argument"
-
-#: makeinfo/makeinfo.c:4153
-#, c-format
-msgid "%c%s is obsolete"
-msgstr "%c%s ist obsolet"
-
-#: makeinfo/makeinfo.c:4325
-#, c-format
-msgid "Node with %ctop as a section already exists"
-msgstr "Konoten mit %ctop als Abschnitt existiert bereits"
-
-#: makeinfo/makeinfo.c:4337
-#, c-format
-msgid "Here is the %ctop node"
-msgstr "Hier ist der Knoten %ctop"
-
-#: makeinfo/makeinfo.c:4356
-#, c-format
-msgid "%ctop used before %cnode, defaulting to %s"
-msgstr "%ctop vor %cnode gebraucht, als Standard %s genommen"
-
-#: makeinfo/makeinfo.c:4431
-#, c-format
-msgid "%c%s is obsolete; use %c%s instead"
-msgstr "%c%s ist obsolet; stattdessen %c%s benutzen"
-
-#: makeinfo/makeinfo.c:4680
-#, c-format
-msgid "Node `%s' multiply defined (line %d is first definition at)"
-msgstr "Knoten »%s« mehrfach definiert (in Zeile %d ist erste Definition)"
-
-#: makeinfo/makeinfo.c:4753
-#, c-format
-msgid "Formatting node %s...\n"
-msgstr "Formatiere Knoten %s...\n"
-
-#: makeinfo/makeinfo.c:4802
-#, c-format
-msgid "Node `%s' requires a sectioning command (e.g. %c%s)"
-msgstr "Knoten »%s« erfordert eine Abschnitt-Angabe (z.B. %c%s)"
-
-#: makeinfo/makeinfo.c:5085
-#, c-format
-msgid "Node `%s''s Next field not pointed back to"
-msgstr "\"Next field\" des Knotens »%s« verweist nicht zurück nach"
-
-# checkit
-#: makeinfo/makeinfo.c:5090
-#, c-format
-msgid "This node (`%s') is the one with the bad `Prev'"
-msgstr "Dieser Knoten (»%s«) hat schlechten(?) \"Prev\"-Eintrag"
-
-#: makeinfo/makeinfo.c:5130
-#, c-format
-msgid "Node `%s's Prev field not pointed back to"
-msgstr "Das \"Prev field\" des Knotens »%s« verweist nicht zurück nach"
-
-# checkit
-#: makeinfo/makeinfo.c:5134
-#, c-format
-msgid "This node (`%s') has the bad Next"
-msgstr "Dieser Knoten (»%s«) hat schlechten(?) \"Next\"-Eintrag"
-
-#: makeinfo/makeinfo.c:5146
-#, c-format
-msgid "Node `%s' missing Up field"
-msgstr "Dem Knoten »%s« fehlt ein \"Up field\""
-
-#: makeinfo/makeinfo.c:5186
-#, c-format
-msgid "`%s' has an Up field of `%s', but `%s' has no menu item for `%s'"
-msgstr ""
-"»%s« hat ein \"Up field\" von »%s«, aber »%s« hat keinen Menü-Eintrag für "
-"»%s«"
-
-#: makeinfo/makeinfo.c:5217
-#, c-format
-msgid "node `%s' has been referenced %d times"
-msgstr "auf Knoten »%s« wird %d mal verwiesen"
-
-#: makeinfo/makeinfo.c:5229
-#, c-format
-msgid "unreferenced node `%s'"
-msgstr "auf Knoten »%s« wird nicht verwiesen"
-
-# checkit
-#: makeinfo/makeinfo.c:5256
-#, c-format
-msgid "%s reference to nonexistent node `%s'"
-msgstr "Verweis %s auf den nicht existierenden Knoten »%s«"
-
-#: makeinfo/makeinfo.c:5668 makeinfo/makeinfo.c:5680
-#, c-format
-msgid "%cmenu seen before first node"
-msgstr "%cmenu festgestellt, bevor der erste Knoten definiert wurde"
-
-#: makeinfo/makeinfo.c:5669 makeinfo/makeinfo.c:5681
-msgid "creating `Top' node"
-msgstr "»Top«-Knoten wird angelegt"
-
-# checkit
-#: makeinfo/makeinfo.c:5794
-#, c-format
-msgid "`.' or `,' must follow cross reference, not %c"
-msgstr "».« or »,« muss einem Querverweis folgen, nicht %c"
-
-#: makeinfo/makeinfo.c:5962
-#, c-format
-msgid "@image file `%s' unreadable: %s"
-msgstr "@image-Datei »%s« nicht lesbar: %s"
-
-#: makeinfo/makeinfo.c:5966
-msgid "@image missing filename argument"
-msgstr "@image fehlt als Argument ein Dateiname"
-
-#: makeinfo/makeinfo.c:6067
-#, c-format
-msgid "%s requires letter or digit"
-msgstr "%s erfordert einen Buchstaben oder eine Zahl"
-
-#: makeinfo/makeinfo.c:6152
-#, c-format
-msgid "Unmatched `%c%s'"
-msgstr "Nicht übereinstimmende »%c%s«"
-
-#: makeinfo/makeinfo.c:6159
-#, c-format
-msgid "`%c%s' needs something after it"
-msgstr "»%c%s« braucht etwas Nachfolgendes"
-
-# checkit
-#: makeinfo/makeinfo.c:6165
-#, c-format
-msgid "Bad argument to `%s', `%s', using `%s'"
-msgstr "Falsches Argument für »%s«, »%s«, wenn »%s« benutzt wird"
-
-# checkit
-#: makeinfo/makeinfo.c:6338
-#, c-format
-msgid "{No Value For \"%s\"}"
-msgstr "{Kein Wert Für »%s«}"
-
-#: makeinfo/makeinfo.c:6388
-#, c-format
-msgid "%c%s requires a name"
-msgstr "%c%s erfordert einen Namen"
-
-#: makeinfo/makeinfo.c:6496
-#, c-format
-msgid "Reached eof before matching @end %s"
-msgstr "Das Ende der Datei vor dem erforderlichen @end %s erreicht"
-
-#: makeinfo/makeinfo.c:6722
-#, c-format
-msgid "The `%c%s' command is meaningless within a `@%s' block"
-msgstr "Der »%c%s«-Befehl ist sinnlos innerhalb eines »@%s«-Blocks"
-
-#: makeinfo/makeinfo.c:6731
-#, c-format
-msgid "%citemx is not meaningful inside of a `%s' block"
-msgstr "%citemx ist nicht sinnvoll innerhalb eines »@%s«-Blocks"
-
-# checkit
-#: makeinfo/makeinfo.c:6844
-#, c-format
-msgid "%c%s found outside of an insertion block"
-msgstr "%c%s außerhalb eines Einfügungsblocks gefunden"
-
-# checkit
-#: makeinfo/makeinfo.c:6935
-#, c-format
-msgid "Missing `}' in %cdef arg"
-msgstr "Fehlende »}« in »%cdef«-Argument"
-
-#: makeinfo/makeinfo.c:7144 makeinfo/makeinfo.c:7164
-msgid "Function"
-msgstr ""
-
-#: makeinfo/makeinfo.c:7148
-msgid "Macro"
-msgstr ""
-
-#: makeinfo/makeinfo.c:7152
-msgid "Special Form"
-msgstr ""
-
-#: makeinfo/makeinfo.c:7156 makeinfo/makeinfo.c:7168
-msgid "Variable"
-msgstr ""
-
-#: makeinfo/makeinfo.c:7160
-msgid "User Option"
-msgstr "Benutzer-Option"
-
-#: makeinfo/makeinfo.c:7172
-msgid "Instance Variable"
-msgstr ""
-
-#: makeinfo/makeinfo.c:7176 makeinfo/makeinfo.c:7180
-msgid "Method"
-msgstr ""
-
-# checkit
-#: makeinfo/makeinfo.c:7335
-#, c-format
-msgid "Must be in a `%s' insertion in order to use `%s'x"
-msgstr "Muss in einer »%s«-Einfügung sein, wenn »%s«x benutzt werden soll"
-
-# checkit
-#: makeinfo/makeinfo.c:7407
-#, c-format
-msgid "%csp requires a positive numeric argument"
-msgstr "»%csp« erfordert ein positives numerisches Argument"
-
-#: makeinfo/makeinfo.c:7650
-msgid "asis"
-msgstr "genau"
-
-#: makeinfo/makeinfo.c:7652
-msgid "none"
-msgstr "kein"
-
-#: makeinfo/makeinfo.c:7674
-#, c-format
-msgid "Bad argument to %c%s"
-msgstr "Falsches Argument für »%c%s«"
-
-#: makeinfo/makeinfo.c:7966
-#, c-format
-msgid "Unknown index `%s'"
-msgstr "Unbekannter Index »%s«"
-
-#: makeinfo/makeinfo.c:8031
-#, c-format
-msgid "Index `%s' already exists"
-msgstr "Index »%s« ist schon vorhanden"
-
-#: makeinfo/makeinfo.c:8062
-#, c-format
-msgid "Unknown index `%s' and/or `%s' in @synindex"
-msgstr "Unbekannter Index »%s« und /oder unbekannter »%s« in @synindex"
-
-#: makeinfo/makeinfo.c:8251
-#, c-format
-msgid "Unknown index `%s' in @printindex"
-msgstr "Unbekannter Index »%s« in @printindex"
-
-# übersetzen? -ke-
-#: makeinfo/makeinfo.c:8266
-msgid ""
-"* Menu:\n"
-"\n"
-msgstr ""
-"* Menü:\n"
-"\n"
-
-#: makeinfo/makeinfo.c:8453
-#, c-format
-msgid "`%c%s' needs an argument `{...}', not just `%s'"
-msgstr "»%c%s« braucht das Argument in der Form »{...}«, nicht nur »%s«"
-
-#: makeinfo/makeinfo.c:8468
-#, c-format
-msgid "No closing brace for footnote `%s'"
-msgstr "Keine schließende Klammer für Fußnote »%s«"
-
-# checkit
-#: makeinfo/makeinfo.c:8507
-msgid "Footnote defined without parent node"
-msgstr "Fußnote definiert ohne einen Eltern-\"node\""
-
-#: makeinfo/makeinfo.c:8539
-msgid "-Footnotes"
-msgstr "-Fußnoten"
-
-#: makeinfo/makeinfo.c:8594
-msgid ""
-"---------- Footnotes ----------\n"
-"\n"
-msgstr ""
-"----------- Fußnoten -----------\n"
-"\n"
-
-#: makeinfo/makeinfo.c:8690
-#, c-format
-msgid "macro `%s' previously defined"
-msgstr "Macro »%s« ist bereits definiert"
-
-#: makeinfo/makeinfo.c:8694
-#, c-format
-msgid "here is the previous definition of `%s'"
-msgstr "Hier ist die vorangehende Definition von »%s«"
-
-#: makeinfo/makeinfo.c:8908
-#, c-format
-msgid "Macro `%s' called with too many args"
-msgstr "Macro »%s« mit zu vielen Argumenten aufgerufen"
-
-#: makeinfo/makeinfo.c:9060
-#, c-format
-msgid "%cend macro not found"
-msgstr "»%cend«-Macro nicht gefunden"
-
-# checkit
-#: makeinfo/makeinfo.c:9100
-#, c-format
-msgid "%cquote-arg only useful when the macro takes a single argument"
-msgstr ""
-"»%cquote«-Argument ist nur sinnvoll, wenn das Macro ein einziges Argument hat"
-
-#: makeinfo/multi.c:206
-#, c-format
-msgid "ignoring stray text `%s' after @multitable"
-msgstr "irriger Text »%s« nach @multitable wird ignoriert"
-
-#: makeinfo/multi.c:277
-#, c-format
-msgid "Too many columns in multitable item (max %d)"
-msgstr "zu viele Spalten im \"multitable\"-Eintrag (maximal %d)"
-
-# checkit
-#. impossible, I think.
-#: makeinfo/multi.c:304
-msgid "multitable item not in active multitable"
-msgstr "\"multitable\"-Eintrag nicht in der aktiven \"multitable\""
-
-#: makeinfo/multi.c:313
-#, c-format
-msgid "Cannot select column #%d in multitable"
-msgstr "Spalte #%d kann in der \"multitable\" nicht ausgewählt werden"
-
-#: makeinfo/multi.c:404
-msgid "ignoring @tab outside of multitable"
-msgstr "@tab außerhalb der \"multitable\" wird übergangen"
-
-# checkit
-#: makeinfo/multi.c:428
-msgid "** Multicolumn output from last row:\n"
-msgstr "** Mehrspalten-Ausgabe von der letzten Zeile:\n"
-
-# checkit
-#: makeinfo/multi.c:431
-#, c-format
-msgid "* column #%d: output = %s\n"
-msgstr "* Spalte #%d: Ausgabe = %s\n"
-
-# checkit
-#: util/install-info.c:123 util/install-info.c:136
-msgid "virtual memory exhausted"
-msgstr "virtual memory exhausted"
-
-#: util/install-info.c:192
-#, c-format
-msgid "%s: warning: "
-msgstr "%s: Warnung: "
-
-#: util/install-info.c:213
-#, c-format
-msgid " for %s"
-msgstr " für %s"
-
-#: util/install-info.c:282
-#, c-format
-msgid "\tTry `%s --help' for a complete list of options.\n"
-msgstr "»%s --help« gibt weitere Informationen.\n"
-
-#: util/install-info.c:290
-#, c-format
-msgid ""
-"Usage: %s [OPTION]... [INFO-FILE [DIR-FILE]]\n"
-"\n"
-"Install INFO-FILE in the Info directory file DIR-FILE.\n"
-"\n"
-"Options:\n"
-"--delete Delete existing entries in INFO-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"
-"\n"
-"Email bug reports to bug-texinfo@gnu.org.\n"
-msgstr ""
-"Syntax: %s [OPTION]... [INFO-DATEI [VERZ-DATEI]]\n"
-"\n"
-"Installiere die INFO-DATEI in dem Info-Verzeichnis VERZ-DATEI.\n"
-"\n"
-"Optionen:\n"
-"--delete entferne vorhandene Einträge aus INFO-DATEI; keine neuen\n"
-" Einträge einfügen\n"
-"--dir-file=NAME Namen der Info-Verzeichnis-Datei angeben. "
-"Gleichbedeutend\n"
-" mit dem VERZ-DATEI-Argument\n"
-"--entry=TEXT TEXT als einen Info-Verzeichnis-Eintrag einfügen. TEXT "
-"soll\n"
-" die Form einer Zeile eines Info-Menüpunkts haben,\n"
-" zuzüglich Null oder mehrerer Extra-Zeilen, die mit "
-"Leerraum\n"
-" (\"whitespace\") beginnen. Wenn mehr als ein Eintrag "
-"angegeben\n"
-" wird, werden alle hinzugefügt. Wenn gar kein Eintrag\n"
-" angegeben wird, wird der Eintragstext der Info-Datei "
-"selbst\n"
-" entnommen.\n"
-"--help diese Hilfe zeigen\n"
-"--info-file=DATEI Info-Datei angeben, die im Verzeichnis zu installieren "
-"ist.\n"
-" Gleichbedeutend mit dem INFO-DATEI-Argument\n"
-"--info-dir=VERZ wie --dir-file=VERZ/dir.\n"
-"--item=TEXT wie --entry TEXT. Ein Info-Verzeichnis-Eintrag ist "
-"nämlich\n"
-" ein Menüpunkt\n"
-"--quiet Warnungen unterdrücken\n"
-"--remove wie --delete\n"
-"--section=ABSCHN stelle die Einträge dieser Datei in den Abschnitt ABSCHN\n"
-" des Verzeichnisses. Wenn mehr als ein --section "
-"angegeben\n"
-" wird, werden alle Einträge in jedem der Abschnitte\n"
-" hinzugefügt. Wenn gar kein --section angegeben wird, "
-"wird\n"
-" der Eintragstext der Info-Datei selbst entnommen.\n"
-"--version Programmversion anzeigen\n"
-"\n"
-"Fehlerberichte (\"bugs\") bitte an <bug-texinfo@gnu.org> schicken.\n"
-"\n"
-"Für die deutsche Übersetzung ist die Mailingliste <de@li.org> zuständig.\n"
-
-#: util/install-info.c:341
-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"
-"File: dir,\tNode: Top,\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 ""
-"Dies ist die Datei .../info/dir, die den obersten Knoten der\n"
-"Info-Hierarchie enthält, genannt (dir)Top.\n"
-"Beim ersten Aufruf von Info geht es bei diesem Knoten los.\n"
-"\n"
-"Date: dir Knoten: Top Dies ist »top« des INFO-Baums\n"
-"\n"
-" Dieser Verzeichnis-Knoten zeigt ein Menü aller Hauptpunkte an.\n"
-" Beenden mit \"q\", \"?\" listet alle Info-Befehle auf, \"d\" kehrt nach "
-"hierher\n"
-" zurück, \"h\" gibt eine Einsteiger-Hilfe,\n"
-" \"mEmacs<Return>\" besucht das Emacs-Manual, etc.\n"
-"\n"
-" Im Emacs kann man mit mouse-button-2 auf einen Menüpunkt oder einen\n"
-" Querverweis klicken, um einen solchen auswählen.\n"
-"\n"
-"* Menü:\n"
-
-#: util/install-info.c:364
-#, c-format
-msgid "%s: could not read (%s) and could not create (%s)\n"
-msgstr "%s: kann nicht gelesen (%s) und kann nicht angelegt werden (%s)\n"
-
-#: util/install-info.c:464 util/install-info.c:474
-#, c-format
-msgid "%s: Specify the Info directory only once.\n"
-msgstr "%s: Info-Verzeichnis nur einmal angeben.\n"
-
-#: util/install-info.c:502
-#, c-format
-msgid "%s: Specify the Info file only once.\n"
-msgstr "%s: Info-Datei nur einmal angeben.\n"
-
-# checkit
-#: util/install-info.c:550
-#, c-format
-msgid "excess command line argument `%s'"
-msgstr "Kommandozeilen-Argument »%s« wird übergangen"
-
-#: util/install-info.c:554
-msgid "No input file specified; try --help for more information."
-msgstr "Keine Eingabe-Datei angegeben; »--help« gibt weitere Informationen."
-
-#: util/install-info.c:556
-msgid "No dir file specified; try --help for more information."
-msgstr "Keine dir-Datei angegeben; »--help« gibt weitere Informationen."
-
-#: util/install-info.c:608 util/install-info.c:631
-msgid "START-INFO-DIR-ENTRY without matching END-INFO-DIR-ENTRY"
-msgstr "START-INFO-DIR-ENTRY ohne END-INFO-DIR-ENTRY"
-
-#: util/install-info.c:627
-msgid "END-INFO-DIR-ENTRY without matching START-INFO-DIR-ENTRY"
-msgstr "END-INFO-DIR-ENTRY ohne START-INFO-DIR-ENTRY"
-
-#. No need to abort here, the original info file may not have
-#. the requisite Texinfo commands. This is not something an
-#. installer should have to correct (it's a problem for the
-#. maintainer), and there's no need to cause subsequent parts of
-#. `make install' to fail.
-#: util/install-info.c:641
-#, c-format
-msgid "no info dir entry in `%s'"
-msgstr "Kein Info-Verzeichnis-Eintrag in »%s«"
-
-#: util/install-info.c:852
-#, c-format
-msgid "menu item `%s' already exists, for file `%s'"
-msgstr "Menüpunkt »%s« bereits vorhanden, für Datei »%s«"
-
-#: util/install-info.c:875
-#, c-format
-msgid "no entries found for `%s'; nothing deleted"
-msgstr "keine Einträge für »%s« gefunden; nichts entfernt"
-
-#: util/texindex.c:253
-msgid "keep temporary files around after processing"
-msgstr "temporäre Dateien bis nach der Verarbeitung aufheben"
-
-#: util/texindex.c:255
-msgid "do not keep temporary files around after processing (default)"
-msgstr "keine temporäre Dateien bis nach der Verarbeitung aufheben (Standard)"
-
-#: util/texindex.c:257
-msgid "send output to FILE"
-msgstr "Ausgabe nach DATEI schicken"
-
-#: util/texindex.c:259
-msgid "display version information and exit"
-msgstr "Programmversion anzeigen"
-
-#: util/texindex.c:261
-msgid "display this help and exit"
-msgstr "diese Hilfe anzeigen"
-
-#: util/texindex.c:272
-#, c-format
-msgid "Usage: %s [OPTION]... FILE...\n"
-msgstr "Aufruf: %s [OPTION]... DATEI...\n"
-
-#: util/texindex.c:273
-msgid "Generate a sorted index for each TeX output FILE.\n"
-msgstr "Erzeuge einen sortierten Index für jede TeX-Ausgabedatei.\n"
-
-#. Avoid trigraph nonsense.
-#: util/texindex.c:275
-msgid "Usually FILE... is `foo.??' for a document `foo.texi'.\n"
-msgstr "DATEI... ist normalerweise »foo.??« für ein Dokument »foo.texi«.\n"
-
-#: util/texindex.c:276
-msgid ""
-"\n"
-"Options:\n"
-msgstr ""
-"\n"
-"Optionen:\n"
-
-#: util/texindex.c:290
-msgid ""
-"\n"
-"Email bug reports to bug-texinfo@gnu.org."
-msgstr ""
-"\n"
-"Fehler (\"bugs\") bitte an <bug-texinfo@gnu.org> melden.\n"
-"\n"
-"Für die deutsche Übersetzung ist die Mailingliste <de@li.org> zuständig."
-
-#: util/texindex.c:917 util/texindex.c:951 util/texindex.c:1027
-#: util/texindex.c:1055
-#, c-format
-msgid "%s: not a texinfo index file"
-msgstr "%s: keine Texinfo-Indexdatei"
-
-#: util/texindex.c:1012
-#, c-format
-msgid "failure reopening %s"
-msgstr "Fehler beim Wiederöffnen von »%s«"
-
-# checkit
-#: util/texindex.c:1325
-#, c-format
-msgid "entry %s follows an entry with a secondary name"
-msgstr "Eintrag »%s« folgt einem Eintrag mit einem Zweitnamen"
-
-#: util/texindex.c:1663
-#, c-format
-msgid "%s; for file `%s'.\n"
-msgstr "%s; für Datei »%s«.\n"
-
-# checkit
-#: util/texindex.c:1724
-#, c-format
-msgid "Virtual memory exhausted in %s ()! Needed %d bytes."
-msgstr "Virtual memory exhausted in %s ()! Needed %d bytes."
diff --git a/texinfo/po/fr.gmo b/texinfo/po/fr.gmo
deleted file mode 100644
index bc0f11cb69b..00000000000
--- a/texinfo/po/fr.gmo
+++ /dev/null
Binary files differ
diff --git a/texinfo/po/fr.po b/texinfo/po/fr.po
deleted file mode 100644
index a1a2abc7a22..00000000000
--- a/texinfo/po/fr.po
+++ /dev/null
@@ -1,2091 +0,0 @@
-# Version française du progiciel Texinfo-3.11.
-# Copyright © 1996, 1997 Free Software Foundation, Inc.
-# Laurent Bourbeau <bourbeau@progiciels-bpi.ca>, 1997.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: texinfo 3.11\n"
-"POT-Creation-Date: 1998-03-03 13:32-0500\n"
-"PO-Revision-Date: 1997-09-16 12:28-04:00\n"
-"Last-Translator: Laurent Bourbeau <bourbeau@progiciels-bpi.ca>\n"
-"Language-Team: French <fr@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=8859-1\n"
-"Content-Transfer-Encoding: 8-bit\n"
-
-#. ****************************************************************
-#.
-#. Echo Area Movement Commands
-#.
-#. ****************************************************************
-#: info/echo-area.c:283 info/session.c:698
-msgid "Move forward a character"
-msgstr "Avancer d'un caractère"
-
-#. Move point backward in the node.
-#: info/echo-area.c:295 info/session.c:714
-msgid "Move backward a character"
-msgstr "Reculer d'un caractère"
-
-#: info/echo-area.c:307
-msgid "Move to the start of this line"
-msgstr "Se déplacer au début de cette ligne"
-
-#: info/echo-area.c:312
-msgid "Move to the end of this line"
-msgstr "Se déplacer à la fin de cette ligne"
-
-#. Move forward a word in the input line.
-#: info/echo-area.c:320 info/session.c:732
-msgid "Move forward a word"
-msgstr "Avancer d'un mot"
-
-#: info/echo-area.c:360 info/session.c:781
-msgid "Move backward a word"
-msgstr "Reculer d'un mot"
-
-#: info/echo-area.c:400
-msgid "Delete the character under the cursor"
-msgstr "Éliminer le caractère sous le curseur"
-
-#: info/echo-area.c:430
-msgid "Delete the character behind the cursor"
-msgstr "Éliminer le caractère précédent le curseur"
-
-#: info/echo-area.c:451
-msgid "Cancel or quit operation"
-msgstr "Annuler ou opération de quitter"
-
-#: info/echo-area.c:466
-msgid "Accept (or force completion of) this line"
-msgstr "Accepter cette ligne (ou en forcer la complétion)"
-
-#: info/echo-area.c:471
-msgid "Insert next character verbatim"
-msgstr "Insérer le prochain caractère textuellement"
-
-#: info/echo-area.c:479
-msgid "Insert this character"
-msgstr "Insérer ce caractère"
-
-#: info/echo-area.c:497
-msgid "Insert a TAB character"
-msgstr "Insérer un caractère de tabulation"
-
-#. Transpose the characters at point. If point is at the end of the line,
-#. then transpose the characters before point.
-#: info/echo-area.c:504
-msgid "Transpose characters at point"
-msgstr "Transposer les caractères en position du point courant"
-
-#: info/echo-area.c:555
-msgid "Yank back the contents of the last kill"
-msgstr "Recoller le contenu du dernier effacement"
-
-#: info/echo-area.c:562
-msgid "Kill ring is empty"
-msgstr "L'anneau des effacements temporaires est vide"
-
-#. If the last command was yank, or yank_pop, and the text just before
-#. point is identical to the current kill item, then delete that text
-#. from the line, rotate the index down, and yank back some other text.
-#: info/echo-area.c:575
-msgid "Yank back a previous kill"
-msgstr "Recoller un effacement antérieur"
-
-#. Delete the text from point to end of line.
-#: info/echo-area.c:608
-msgid "Kill to the end of the line"
-msgstr "Effacer du point courant jusqu'à la fin de la ligne"
-
-#: info/echo-area.c:621
-msgid "Kill to the beginning of the line"
-msgstr "Effacer du point courant jusqu'au début de la ligne"
-
-#. Delete from point to the end of the current word.
-#: info/echo-area.c:633
-msgid "Kill the word following the cursor"
-msgstr "Effacer le mot suivant le curseur"
-
-#: info/echo-area.c:652
-msgid "Kill the word preceding the cursor"
-msgstr "Effacer le mot précédent le curseur"
-
-#: info/echo-area.c:871
-msgid "Not complete"
-msgstr "Non complet"
-
-#: info/echo-area.c:916
-msgid "List possible completions"
-msgstr "Énumérer les complétions possibles"
-
-#: info/echo-area.c:929
-msgid "No completions"
-msgstr "Aucune complétion"
-
-#: info/echo-area.c:933
-msgid "Sole completion"
-msgstr "Une seule complétion"
-
-#: info/echo-area.c:942
-#, fuzzy
-msgid "One completion:\n"
-msgstr "la complétion %s:\n"
-
-#: info/echo-area.c:943
-#, fuzzy, c-format
-msgid "%d completions:\n"
-msgstr "la complétion %s:\n"
-
-#: info/echo-area.c:1088
-msgid "Insert completion"
-msgstr "Insérer la complétion"
-
-#: info/echo-area.c:1221
-msgid "Building completions..."
-msgstr "Construction des complétions..."
-
-#. Scroll the "other" window. If there is a window showing completions, scroll
-#. that one, otherwise scroll the window which was active on entering the read
-#. function.
-#: info/echo-area.c:1319
-msgid "Scroll the completions window"
-msgstr "Dérouler la fenêtre des complétions"
-
-#: info/footnotes.c:206
-msgid "Footnotes could not be displayed"
-msgstr "Les notes en bas de page ne peuvent pas être affichées"
-
-#: info/footnotes.c:232
-msgid "Show the footnotes associated with this node in another window"
-msgstr ""
-"Montrer les notes en bas de page associées à ce noeud dans une autre fenêtre"
-
-#: info/indices.c:175
-msgid "Look up a string in the index for this file"
-msgstr "Rechercher une chaîne dans l'index pour ce fichier"
-
-#: info/indices.c:205
-msgid "Finding index entries..."
-msgstr "Recherche des entrées d'index..."
-
-#: info/indices.c:212
-msgid "No indices found."
-msgstr "Aucun indice retrouvé."
-
-#: info/indices.c:222
-msgid "Index entry: "
-msgstr "Entrée d'index: "
-
-#: info/indices.c:332
-msgid ""
-"Go to the next matching index item from the last `\\[index-search]' command"
-msgstr ""
-"Passer à la référence suivante de la dernière commande «\\[index-search]»"
-
-#: info/indices.c:342
-msgid "No previous index search string."
-msgstr "Aucune autre chaîne de fouille d'index."
-
-#: info/indices.c:349
-msgid "No index entries."
-msgstr "Aucune entrée d'index."
-
-#: info/indices.c:382
-#, c-format
-msgid "No %sindex entries containing \"%s\"."
-msgstr "Aucune entrée %sindex contenant «%s»."
-
-#: info/indices.c:383
-msgid "more "
-msgstr "plus "
-
-#: info/indices.c:393
-msgid "CAN'T SEE THIS"
-msgstr "NE PEUT PAS VOIR CECI"
-
-#: info/indices.c:429
-#, c-format
-msgid "Found \"%s\" in %s. (`\\[next-index-match]' tries to find next.)"
-msgstr "Trouver «%s» dans %s. («\\[next-index-match]» cherchera le prochain.)"
-
-#: info/indices.c:533
-#, c-format
-msgid "Scanning indices of \"%s\"..."
-msgstr "Fouille des indices de «%s»..."
-
-#: info/indices.c:616
-msgid "Grovel all known info file's indices for a string and build a menu"
-msgstr ""
-"Aplatir tous les indices de fichier info connus pour une chaîne et "
-"construire un menu"
-
-#: info/indices.c:620
-msgid "Index apropos: "
-msgstr "Index à-propos: "
-
-#: info/indices.c:650
-#, c-format
-msgid ""
-"\n"
-"* Menu: Nodes whoses indices contain \"%s\":\n"
-msgstr ""
-"\n"
-"* Menu: Noeuds dont les indices contiennent «%s»:\n"
-
-#: info/info.c:212
-#, fuzzy
-msgid "Try --help for more information."
-msgstr "Pour en savoir davantage, faites: «%s --help».\n"
-
-#: info/info.c:231 makeinfo/makeinfo.c:1089 util/install-info.c:530
-#: util/texindex.c:338
-#, fuzzy, 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 © 1996 Free Software Foundation, Inc.\n"
-"AUCUNE garantie n'est donnée; tant pour des raisons COMMERCIALES que\n"
-"pour RÉPONDRE À UN BESOIN PARTICULIER. Vous pouvez redistribuer des copies\n"
-"de ce logiciel selon les termes de la licence GNU General Public License.\n"
-"Pour plus d'informations, consultez le fichier COPYING."
-
-#: info/info.c:363
-msgid "no entries found\n"
-msgstr "aucune entrée retrouvée\n"
-
-#: info/info.c:406
-msgid "There is no menu in this node."
-msgstr "Il n'y a pas de menu dans ce noeud."
-
-#: info/info.c:437
-#, c-format
-msgid "There is no menu item \"%s\" in this node."
-msgstr "Il n'y a pas d'item menu «%s» dans ce noeud."
-
-#: info/info.c:501
-#, c-format
-msgid "Unable to find the node referenced by \"%s\"."
-msgstr "Incappable de trouver le noeud référencé par «%s»."
-
-#: info/info.c:602
-#, fuzzy, c-format
-msgid ""
-"Usage: %s [OPTION]... [INFO-FILE [MENU-ITEM...]]\n"
-"\n"
-"Read documentation in Info format.\n"
-"For more complete documentation on how to use Info, run `info info "
-"options'.\n"
-"\n"
-"Options:\n"
-"--directory DIR add DIR to INFOPATH.\n"
-"--dribble FILENAME remember user keystrokes in FILENAME.\n"
-"--file FILENAME specify Info file to visit.\n"
-"--node NODENAME specify nodes in first visited Info file.\n"
-"--output FILENAME output selected nodes to FILENAME.\n"
-"--restore FILENAME read initial keystrokes from FILENAME.\n"
-"--subnodes recursively output menu items.\n"
-"--help display this help and exit.\n"
-"--version display version information and exit.\n"
-"\n"
-"The first argument, if present, is the name of the Info file to read.\n"
-"Any remaining arguments are treated as the names of menu\n"
-"items in the initial node visited. For example, `info emacs buffers'\n"
-"moves to the node `buffers' in the info file `emacs'.\n"
-"\n"
-"Email bug reports to bug-texinfo@gnu.org."
-msgstr ""
-"Voici une brève description des options en mode Info.\n"
-"Pour une description plus détaillée sur le comment utiliser le mode Info,\n"
-"tapper «info info options».\n"
-"\n"
-" --directory RÉP Ajouter le RÉPertoire à INFOPATH.\n"
-" --dribble FICHIER Mémoriser les touches de l'usager dans FICHIER.\n"
-" --file FICHIER Spécifier le FICHIER Info à visiter.\n"
-" --node NOEUD Spécifier les noms de NOEUD à visiter en premier.\n"
-" --output FICHIER Sortir les noeuds sélectionnés dans FICHIER.\n"
-" --restore FICHIER Lire les touches initiales à partir de FICHIER.\n"
-" --subnodes Sortir récursivement les items menu.\n"
-" --help Afficher cet aide-mémoire.\n"
-" --version Afficher le nom et la version du logiciel.\n"
-"\n"
-"Les arguments résiduels à Info sont traités comme étant les noms des items\n"
-"menu dans le noeud initial visité. Vous pouvez aisément rejoindre le\n"
-"noeud de votre choix en spécifiant les noms de menu lesquels décrivent\n"
-"le chemin de ce noeud. Par exemple, «info emacs buffers».\n"
-"\n"
-"Rapporter toute anomalie à bug-texinfo@prep.ai.mit.edu."
-
-#: info/infodoc.c:50
-msgid "Basic Commands in Info Windows"
-msgstr "Commandes de base en Info Windows"
-
-#: info/infodoc.c:211
-msgid ""
-"The following commands can only be invoked via M-x:\n"
-"\n"
-msgstr ""
-"Les commandes suivantes peuvent être invoquées seulement via M-x:\n"
-"\n"
-
-#: info/infodoc.c:228
-msgid "--- Use `\\[history-node]' or `\\[kill-node]' to exit ---\n"
-msgstr "--- Utiliser «\\[history-node]» ou «\\[kill-node]» pour sortir ---\n"
-
-#. Create or move to the help window.
-#: info/infodoc.c:328
-msgid "Display help message"
-msgstr "Afficher le message d'aide"
-
-#. Show the Info help node. This means that the "info" file is installed
-#. where it can easily be found on your system.
-#: info/infodoc.c:346
-msgid "Visit Info node `(info)Help'"
-msgstr "Visiter le noeud Info «(info)Aide»"
-
-#: info/infodoc.c:470
-msgid "Print documentation for KEY"
-msgstr "Imprimer la documentation relative à KEY"
-
-#: info/infodoc.c:483
-#, c-format
-msgid "Describe key: %s"
-msgstr "Décrire la clé: %s"
-
-#: info/infodoc.c:492
-#, c-format
-msgid "ESC %s is undefined."
-msgstr "ESC %s est non défini."
-
-#: info/infodoc.c:509
-#, c-format
-msgid "%s is undefined."
-msgstr "%s est non défini."
-
-#: info/infodoc.c:535
-#, c-format
-msgid "%s is defined to %s."
-msgstr "%s est défini à %s."
-
-#: info/infodoc.c:731
-msgid "Where is command: "
-msgstr "Où se trouve la commande: "
-
-#: info/infodoc.c:753
-#, c-format
-msgid "`%s' is not on any keys"
-msgstr "«%s» ne se trouve pas sur une quelconque clé"
-
-#: info/infodoc.c:759
-#, c-format
-msgid "%s can only be invoked via %s."
-msgstr "%s peut être invoqué seulement via %s."
-
-#: info/infodoc.c:762
-#, c-format
-msgid "%s can be invoked via %s."
-msgstr "%s peut être invoqué via %s."
-
-#: info/infodoc.c:766
-#, c-format
-msgid "There is no function named `%s'"
-msgstr "Il n'y a pas de fonction nommée «%s»"
-
-#: info/m-x.c:69
-msgid "Read the name of an Info command and describe it"
-msgstr "Lire le nom d'une commande Info et la décrire"
-
-#: info/m-x.c:73
-msgid "Describe command: "
-msgstr "Décrire la commande: "
-
-#: info/m-x.c:96
-msgid "Read a command name in the echo area and execute it"
-msgstr "Lire le nom d'une commande dans la zone écho et l'exécuter"
-
-#: info/m-x.c:134
-msgid "Cannot execute an `echo-area' command here."
-msgstr "Ne peut pas exécuter une commande «echo-area» en cet endroit."
-
-#: info/m-x.c:150
-msgid "Set the height of the displayed window"
-msgstr "Ajuster la hauteur de la fenêtre affichée"
-
-#: info/m-x.c:163
-#, c-format
-msgid "Set screen height to (%d): "
-msgstr "Ajuster la hauteur de l'écran à (%d): "
-
-#: info/makedoc.c:126
-msgid ""
-" Source files groveled to make this file include:\n"
-"\n"
-msgstr ""
-" Les fichiers sources aplatis pour faire ce fichier incluent:\n"
-"\n"
-
-#: info/makedoc.c:450
-#, c-format
-msgid "Couldn't manipulate the file %s.\n"
-msgstr "Ne peut pas manipuler le fichier %s.\n"
-
-#: info/nodemenu.c:28
-msgid ""
-"\n"
-"* Menu:\n"
-" (File)Node Lines Size Containing File\n"
-" ---------- ----- ---- ---------------"
-msgstr ""
-"\n"
-"* Menu:\n"
-" (Fichier)Noeud Lignes Taille Contenant Fichier(s)\n"
-" -------------- ------ ------ --------------------"
-
-#: info/nodemenu.c:197
-msgid ""
-"Here is the menu of nodes you have recently visited.\n"
-"Select one from this menu, or use `\\[history-node]' in another window.\n"
-msgstr ""
-"Voici le menu de noeuds que vous avez visité récemment.\n"
-"Sélectionner un noeud de ce menu, ou utiliser «\\[history-node]» dans une\n"
-"autre fenêtre.\n"
-
-#: info/nodemenu.c:217
-msgid "Make a window containing a menu of all of the currently visited nodes"
-msgstr ""
-"Faire une fenêtre contenant un menu de tous les noeuds actuellement visités"
-
-#: info/nodemenu.c:297
-msgid "Select a node which has been previously visited in a visible window"
-msgstr "Sélectionner un noeud qui a déjà été visité dans une fenêtre visible"
-
-#: info/nodemenu.c:309
-msgid "Select visited node: "
-msgstr "Sélectionner un noeud visité: "
-
-#: info/nodemenu.c:329 info/session.c:1996
-#, c-format
-msgid "The reference disappeared! (%s)."
-msgstr "La référence est disparue! (%s)."
-
-#: info/session.c:162
-#, c-format
-msgid ""
-"Welcome to Info version %s. \"\\[get-help-window]\" for help, "
-"\"\\[menu-item]\" for menu item."
-msgstr ""
-"Bienvenue au mode Info version %s.\n"
-" «\\[get-help-window]» pour obtenir de l'aide,\n"
-" «\\[menu-item]» pour obtenir l'item menu."
-
-#. Move WINDOW's point down to the next line if possible.
-#: info/session.c:629
-msgid "Move down to the next line"
-msgstr "Descendre à la ligne suivante"
-
-#. Move WINDOW's point up to the previous line if possible.
-#: info/session.c:644
-msgid "Move up to the previous line"
-msgstr "Monter à la ligne précédente"
-
-#. Move WINDOW's point to the end of the true line.
-#: info/session.c:659
-msgid "Move to the end of the line"
-msgstr "Aller à la fin de la ligne"
-
-#. Move WINDOW's point to the beginning of the true line.
-#: info/session.c:679
-msgid "Move to the start of the line"
-msgstr "Aller au début de la ligne"
-
-#: info/session.c:855
-msgid " times"
-msgstr " fois"
-
-#: info/session.c:857
-#, c-format
-msgid "%d times"
-msgstr "%d fois"
-
-#: info/session.c:895
-msgid "No \"Next\" pointer for this node."
-msgstr "Aucun pointeur «Next» pour ce noeud."
-
-#: info/session.c:898
-msgid "Following \"Next\" node..."
-msgstr "En suivant le noeud «Next»..."
-
-#: info/session.c:899 info/session.c:927 info/session.c:999
-#: info/session.c:1717
-msgid "Next"
-msgstr "Noeud «Next»"
-
-#: info/session.c:915
-msgid "Selecting first menu item..."
-msgstr "Sélection du premier item menu..."
-
-#: info/session.c:926
-msgid "Selecting \"Next\" node..."
-msgstr "Sélection du noeud «Next»..."
-
-# Est-ce vraiment un message à traduire?
-#: info/session.c:950 info/session.c:1063 info/session.c:1733
-msgid "Up"
-msgstr "Noeud «Up»"
-
-#: info/session.c:1020
-msgid "No more nodes."
-msgstr "Aucun autre noeud."
-
-#: info/session.c:1044
-msgid "No \"Prev\" for this node."
-msgstr "Aucun noeud «Prev» pour ce noeud."
-
-#. Move to the previous node. If this node now contains a menu,
-#. and we have not inhibited movement to it, move to the node
-#. corresponding to the last menu item.
-#: info/session.c:1047 info/session.c:1100
-msgid "Moving \"Prev\" in this window."
-msgstr "Monter au noeud «Prev» dans cette fenêtre."
-
-# Est-ce vraiment un message à traduire?
-#: info/session.c:1048 info/session.c:1101 info/session.c:1725
-msgid "Prev"
-msgstr "Noeud «Prev»"
-
-#: info/session.c:1059
-msgid "No \"Prev\" or \"Up\" for this node."
-msgstr "Aucun noeud «Prev» ou «Up» pour ce noeud."
-
-#: info/session.c:1062
-msgid "Moving \"Up\" in this window."
-msgstr "Aller au noeud «Up» dans cette fenêtre."
-
-#: info/session.c:1110
-msgid "Moving to \"Prev\"'s last menu item."
-msgstr "Aller au dernier item menu du noeud «Prev»."
-
-#: info/session.c:1121
-msgid "Move forwards or down through node structure"
-msgstr "Avancer ou descendre à travers la structure de noeuds"
-
-#: info/session.c:1137
-msgid "Move backwards or up through node structure"
-msgstr "Reculer ou monter à travers la structure de noeuds"
-
-#. Show the next screen of WINDOW's node.
-#: info/session.c:1152
-msgid "Scroll forward in this window"
-msgstr "Défiler vers l'avant dans cette fenêtre"
-
-#. Show the previous screen of WINDOW's node.
-#: info/session.c:1197
-msgid "Scroll backward in this window"
-msgstr "Défiler vers l'arrière dans cette fenêtre"
-
-#. Move to the beginning of the node.
-#: info/session.c:1237
-msgid "Move to the start of this node"
-msgstr "Aller au point de départ de ce noeud"
-
-#. Move to the end of the node.
-#: info/session.c:1244
-msgid "Move to the end of this node"
-msgstr "Aller au point terminal de ce noeud"
-
-#. ****************************************************************
-#.
-#. Commands for Manipulating Windows
-#.
-#. ****************************************************************
-#. Make the next window in the chain be the active window.
-#: info/session.c:1257
-msgid "Select the next window"
-msgstr "Sélectionner la fenêtre suivante"
-
-#. Make the previous window in the chain be the active window.
-#: info/session.c:1296
-msgid "Select the previous window"
-msgstr "Sélectionner la fenêtre précédente"
-
-#. Split WINDOW into two windows, both showing the same node. If we
-#. are automatically tiling windows, re-tile after the split.
-#: info/session.c:1347
-msgid "Split the current window"
-msgstr "Diviser en deux la fenêtre courante"
-
-#. Delete WINDOW, forgetting the list of last visited nodes. If we are
-#. automatically displaying footnotes, show or remove the footnotes
-#. window. If we are automatically tiling windows, re-tile after the
-#. deletion.
-#: info/session.c:1428
-msgid "Delete the current window"
-msgstr "Éliminer la fenêtre courante"
-
-#: info/session.c:1436
-msgid "Cannot delete a permanent window"
-msgstr "Ne peut pas éliminer une fenêtre permanente"
-
-#. Just keep WINDOW, deleting all others.
-#: info/session.c:1469
-msgid "Delete all other windows"
-msgstr "Éliminer toutes les autres fenêtres"
-
-#. Scroll the "other" window of WINDOW.
-#: info/session.c:1515
-msgid "Scroll the other window"
-msgstr "Défiler l'autre fenêtre"
-
-#. Change the size of WINDOW by AMOUNT.
-#: info/session.c:1535
-msgid "Grow (or shrink) this window"
-msgstr "Agrandir (ou réduire) cette fenêtre"
-
-#: info/session.c:1546
-msgid "Divide the available screen space among the visible windows"
-msgstr "Répartir l'espace écran disponible parmi les fenêtres visibles"
-
-#: info/session.c:1553
-msgid "Toggle the state of line wrapping in the current window"
-msgstr "Basculer l'état du remplissage de ligne dans la fenêtre courante"
-
-#. Make WINDOW display the "Next:" node of the node currently being
-#. displayed.
-#: info/session.c:1714
-msgid "Select the `Next' node"
-msgstr "Sélectionner le noeud «Next»"
-
-#. Make WINDOW display the "Prev:" node of the node currently being
-#. displayed.
-#: info/session.c:1722
-msgid "Select the `Prev' node"
-msgstr "Sélectionner le noeud «Prev»"
-
-#. Make WINDOW display the "Up:" node of the node currently being
-#. displayed.
-#: info/session.c:1730
-msgid "Select the `Up' node"
-msgstr "Sélectionner le noeud «Up»"
-
-#. Make WINDOW display the last node of this info file.
-#: info/session.c:1737
-msgid "Select the last node in this file"
-msgstr "Sélectionner le dernier noeud dans ce fichier"
-
-#: info/session.c:1750 info/session.c:1768
-msgid "This window has no additional nodes"
-msgstr "Cette fenêtre a aucun noeud additionnel"
-
-#. Make WINDOW display the first node of this info file.
-#: info/session.c:1759
-msgid "Select the first node in this file"
-msgstr "Sélectionner le premier noeud dans ce fichier"
-
-#: info/session.c:1778
-msgid "Select the last item in this node's menu"
-msgstr "Sélectionner le dernier item dans ce menu de noeuds"
-
-#. Use KEY (a digit) to select the Nth menu item in WINDOW->node.
-#: info/session.c:1784
-msgid "Select this menu item"
-msgstr "Sélectionner cet item menu"
-
-#: info/session.c:1813
-#, c-format
-msgid "There aren't %d items in this menu."
-msgstr "Il n'y a pas %d items dans ce menu."
-
-#: info/session.c:1944
-#, c-format
-msgid "Menu item (%s): "
-msgstr "Item menu (%s): "
-
-#: info/session.c:1946
-msgid "Menu item: "
-msgstr "Item menu: "
-
-#: info/session.c:1951
-#, c-format
-msgid "Follow xref (%s): "
-msgstr "Suivre xref (%s): "
-
-#: info/session.c:1953
-msgid "Follow xref: "
-msgstr "Suivre xref: "
-
-#. Read a line (with completion) which is the name of a menu item,
-#. and select that item.
-#: info/session.c:2042
-msgid "Read a menu item and select its node"
-msgstr "Lire un item menu et sélectionner son noeud"
-
-#: info/session.c:2050
-msgid "Read a footnote or cross reference and select its node"
-msgstr ""
-"Lire une note en bas de page ou une référence croisée et sélectionner son "
-"noeud"
-
-#. Position the cursor at the start of this node's menu.
-#: info/session.c:2056
-msgid "Move to the start of this node's menu"
-msgstr "Aller au point de départ de ce menu de noeud"
-
-#: info/session.c:2080
-msgid "Visit as many menu items at once as possible"
-msgstr "Visiter d'un seul coup autant d'items menu que possible"
-
-#. Read a line of input which is a node name, and go to that node.
-#: info/session.c:2108
-msgid "Read a node name and select it"
-msgstr "Lire un nom de noeud et sélectionner ce noeud"
-
-#: info/session.c:2169 info/session.c:2173
-msgid "Goto Node: "
-msgstr "Aller au Noeud: "
-
-#: info/session.c:2194
-msgid "Read a manpage reference and select it"
-msgstr "Lire une référence de page-manuel et la sélectionner"
-
-#: info/session.c:2198
-msgid "Get Manpage: "
-msgstr "Obtenir la Page-manuel: "
-
-#. Move to the "Top" node in this file.
-#: info/session.c:2228
-msgid "Select the node `Top' in this file"
-msgstr "Sélectionner le noeud «Top» dans ce fichier"
-
-#. Notice that the node "Top" is special, and doesn't have to
-#. be referenced.
-#: info/session.c:2230 makeinfo/makeinfo.c:5145 makeinfo/makeinfo.c:5228
-msgid "Top"
-msgstr "Noeud «Top»"
-
-#. Move to the node "(dir)Top".
-#: info/session.c:2234
-msgid "Select the node `(dir)'"
-msgstr "Sélectionner le noeud «(dir)»"
-
-#: info/session.c:2254
-#, c-format
-msgid "Kill node (%s): "
-msgstr "Effacer le noeud (%s): "
-
-#: info/session.c:2307
-#, c-format
-msgid "Cannot kill node `%s'"
-msgstr "Ne peut pas effacer le noeud «%s»"
-
-#: info/session.c:2317
-msgid "Cannot kill the last node"
-msgstr "Ne peut pas effacer le dernier noeud"
-
-#: info/session.c:2401
-msgid "Select the most recently selected node"
-msgstr "Choisir le noeud qui a été le plus récemment sélectionné"
-
-#. Kill named node.
-#: info/session.c:2407
-msgid "Kill this node"
-msgstr "Effacer ce noeud"
-
-#. Read the name of a file and select the entire file.
-#: info/session.c:2415
-msgid "Read the name of a file and select it"
-msgstr "Lire le nom d'un fichier et le sélectionner"
-
-#: info/session.c:2419
-msgid "Find file: "
-msgstr "Trouver le fichier: "
-
-#: info/session.c:2436
-#, c-format
-msgid "Cannot find \"%s\"."
-msgstr "Ne peut pas trouver «%s»."
-
-#: info/session.c:2483 info/session.c:2608
-#, c-format
-msgid "Could not create output file \"%s\"."
-msgstr "Ne peut pas créer le fichier de sortie «%s»."
-
-#: info/session.c:2496 info/session.c:2625 info/session.c:2671
-msgid "Done."
-msgstr "Terminé."
-
-#: info/session.c:2553
-#, c-format
-msgid "Writing node \"(%s)%s\"..."
-msgstr "Écriture du noeud «(%s)%s»..."
-
-#: info/session.c:2556
-#, c-format
-msgid "Writing node \"%s\"..."
-msgstr "Écriture du noeud «%s»..."
-
-#: info/session.c:2634
-msgid "Pipe the contents of this node through INFO_PRINT_COMMAND"
-msgstr "Acheminer les contenus de ce noeud à travers INFO_PRINT_COMMAND"
-
-#: info/session.c:2654
-#, c-format
-msgid "Cannot open pipe to \"%s\"."
-msgstr "Ne peut pas ouvrir un tube de communication à «%s»."
-
-#: info/session.c:2661
-#, c-format
-msgid "Printing node \"(%s)%s\"..."
-msgstr "Impression du noeud «(%s)%s»..."
-
-#: info/session.c:2664
-#, c-format
-msgid "Printing node \"%s\"..."
-msgstr "Impression du noeud «%s»..."
-
-#: info/session.c:2896
-#, c-format
-msgid "Searching subfile \"%s\"..."
-msgstr "Fouille du sous-fichier «%s»..."
-
-#: info/session.c:2946
-msgid "Read a string and search for it"
-msgstr "Lire une chaîne et en faire la fouille"
-
-#: info/session.c:2966
-#, c-format
-msgid "%s for string [%s]: "
-msgstr "%s pour la chaîne [%s]: "
-
-#: info/session.c:2967
-msgid "Search backward"
-msgstr "Fouiller vers l'arrière"
-
-#: info/session.c:2967
-msgid "Search"
-msgstr "Fouiller"
-
-#: info/session.c:2994
-msgid "Search failed."
-msgstr "Fouille infructueuse."
-
-#: info/session.c:3020 info/session.c:3026
-msgid "Search interactively for a string as you type it"
-msgstr "Fouiller interactivement pour une chaîne telle que vous la tapez"
-
-#: info/session.c:3120
-msgid "I-search backward: "
-msgstr "Fouille I-search vers l'arrière: "
-
-#: info/session.c:3122
-msgid "I-search: "
-msgstr "Fouille I-search: "
-
-#: info/session.c:3147
-msgid "Failing "
-msgstr "Échec "
-
-#: info/session.c:3512
-msgid "No cross references in this node."
-msgstr "Aucune référence croisée dans ce noeud."
-
-#: info/session.c:3579
-msgid "Move to the previous cross reference"
-msgstr "Aller à la référence croisée précédente"
-
-#: info/session.c:3588
-msgid "Move to the next cross reference"
-msgstr "Aller à la prochaine référence croisée"
-
-#: info/session.c:3598
-msgid "Select reference or menu item appearing on this line"
-msgstr "Sélectionner la référence ou l'item menu apparaissant sur cette ligne"
-
-#. ****************************************************************
-#.
-#. Miscellaneous Info Commands
-#.
-#. ****************************************************************
-#. What to do when C-g is pressed in a window.
-#: info/session.c:3620
-msgid "Cancel current operation"
-msgstr "Annuler l'opération courante"
-
-#: info/session.c:3627
-msgid "Quit"
-msgstr "Quitter"
-
-#: info/session.c:3636
-msgid "Move to the cursor to a specific line of the window"
-msgstr "Déplacer le curseur sur une ligne spécifique de la fenêtre"
-
-#. Clear the screen and redraw its contents. Given a numeric argument,
-#. move the line the cursor is on to the COUNT'th line of the window.
-#: info/session.c:3668
-msgid "Redraw the display"
-msgstr "Redessiner l'affichage écran"
-
-#. This command does nothing. It is the fact that a key is bound to it
-#. that has meaning. See the code at the top of info_session ().
-#: info/session.c:3705
-msgid "Quit using Info"
-msgstr "Quitter en utilisant Info"
-
-#: info/session.c:3728
-#, c-format
-msgid "Unknown command (%s)."
-msgstr "Commande inconnue (%s)."
-
-# Est-ce que c'est " " ou « » comme caractères?
-#: info/session.c:3733
-msgid "\"\" is invalid"
-msgstr "\"\" est invalide"
-
-#: info/session.c:3735
-#, c-format
-msgid "\"%s\" is invalid"
-msgstr "«%s» est invalide"
-
-#: info/session.c:3958
-msgid "Add this digit to the current numeric argument"
-msgstr "Ajouter ce chiffre à l'argument numérique courant"
-
-#: info/session.c:3967
-msgid "Start (or multiply by 4) the current numeric argument"
-msgstr "Enclencher (ou multipler par 4) l'argument numérique courant"
-
-#: info/session.c:3982
-msgid "Internally used by \\[universal-argument]"
-msgstr "Utilisé internement par \\[universal-argument]"
-
-#: info/tilde.c:362
-msgid "readline: Out of virtual memory!\n"
-msgstr ""
-
-#: info/variables.c:40
-msgid "When \"On\", footnotes appear and disappear automatically"
-msgstr ""
-"Lorsque «On» est en fonction, les notes en bas de page apparaissent\n"
-"et disparaissent automatiquement"
-
-#: info/variables.c:44
-msgid "When \"On\", creating or deleting a window resizes other windows"
-msgstr ""
-"Lorsque «On» est en fonction, la création ou l'effacement d'une fenêtre\n"
-"réajuste la dimension des autres fenêtres"
-
-#: info/variables.c:48
-msgid "When \"On\", flash the screen instead of ringing the bell"
-msgstr ""
-"Lorsque «On» est en fonction, un clignotement d'écran est utilisé plutôt\n"
-"qu'un bruit de cloche"
-
-#: info/variables.c:52
-msgid "When \"On\", errors cause the bell to ring"
-msgstr ""
-"Lorsque «On» est en fonction, les erreurs sont signalées par un\n"
-"bruit de cloche"
-
-#: info/variables.c:56
-msgid "When \"On\", Info garbage collects files which had to be uncompressed"
-msgstr ""
-"Lorsque «On» est en fonction, le ramasse-miette Info récolte les fichiers\n"
-"qui devaient être décomprimés"
-
-#: info/variables.c:59
-msgid "When \"On\", the portion of the matched search string is highlighted"
-msgstr ""
-"Lorsque «On» est en fonction, la portion de la chaîne de fouille appariée\n"
-"est mise en surbrillance"
-
-#: info/variables.c:63
-msgid "Controls what happens when scrolling is requested at the end of a node"
-msgstr ""
-"Contrôler ce qui arrive lorsqu'un défilement est requis à la fin d'un noeud"
-
-#: info/variables.c:67
-msgid "The number lines to scroll when the cursor moves out of the window"
-msgstr "Le nombre de lignes à défiler quand le curseur va hors de la fenêtre"
-
-#: info/variables.c:71
-msgid "When \"On\", Info accepts and displays ISO Latin characters"
-msgstr ""
-"Lorsque «On» est en fonction, Info accepte et affiche les caractères ISO "
-"Latin"
-
-#: info/variables.c:77
-msgid "Explain the use of a variable"
-msgstr "Expliquer l'usage d'une variable"
-
-#. Get the variable's name.
-#: info/variables.c:83
-msgid "Describe variable: "
-msgstr "Décrire la variable: "
-
-#: info/variables.c:102
-msgid "Set the value of an Info variable"
-msgstr "Fixer la valeur d'une variable Info"
-
-#. Get the variable's name and value.
-#: info/variables.c:108
-msgid "Set variable: "
-msgstr "Fixer la variable: "
-
-#: info/variables.c:126
-#, c-format
-msgid "Set %s to value (%d): "
-msgstr "Fixer %s à la valeur (%d): "
-
-#: info/variables.c:167
-#, c-format
-msgid "Set %s to value (%s): "
-msgstr "Fixer %s à la valeur (%s): "
-
-# Est-ce vraiment un message à traduire?
-#: info/window.c:1102
-msgid "--*** Tags out of Date ***"
-msgstr "--*** Étiquettes passées Date ***"
-
-#. strlen (location_indicator).
-#. 10 for the decimal representation of the number of lines in this
-#. node, and the remainder of the text that can appear in the line.
-#: info/window.c:1113
-msgid "-----Info: (), lines ----, "
-msgstr "-----Info: (), lignes ----, "
-
-#: info/window.c:1120
-#, c-format
-msgid "-%s---Info: %s, %d lines --%s--"
-msgstr "-%s---Info: %s, %d lignes --%s--"
-
-#: info/window.c:1124
-#, c-format
-msgid "-%s%s-Info: (%s)%s, %d lines --%s--"
-msgstr "-%s%s-Info: (%s)%s, %d lignes --%s--"
-
-#: info/window.c:1131
-#, c-format
-msgid " Subfile: %s"
-msgstr " Sous-fichier: %s"
-
-#: lib/getopt.c:672
-#, c-format
-msgid "%s: option `%s' is ambiguous\n"
-msgstr ""
-
-#: lib/getopt.c:696
-#, c-format
-msgid "%s: option `--%s' doesn't allow an argument\n"
-msgstr ""
-
-#: lib/getopt.c:701
-#, c-format
-msgid "%s: option `%c%s' doesn't allow an argument\n"
-msgstr ""
-
-#: lib/getopt.c:718 lib/getopt.c:891
-#, fuzzy, c-format
-msgid "%s: option `%s' requires an argument\n"
-msgstr "%c%s nécessite un nom"
-
-#. --option
-#: lib/getopt.c:747
-#, c-format
-msgid "%s: unrecognized option `--%s'\n"
-msgstr ""
-
-#. +option or -option
-#: lib/getopt.c:751
-#, c-format
-msgid "%s: unrecognized option `%c%s'\n"
-msgstr ""
-
-#. 1003.2 specifies the format of this message.
-#: lib/getopt.c:777
-#, c-format
-msgid "%s: illegal option -- %c\n"
-msgstr ""
-
-#: lib/getopt.c:780
-#, c-format
-msgid "%s: invalid option -- %c\n"
-msgstr ""
-
-#. 1003.2 specifies the format of this message.
-#: lib/getopt.c:810 lib/getopt.c:940
-#, fuzzy, c-format
-msgid "%s: option requires an argument -- %c\n"
-msgstr "%s exige un argument: le formateur pour %citem"
-
-#: lib/getopt.c:857
-#, c-format
-msgid "%s: option `-W %s' is ambiguous\n"
-msgstr ""
-
-#: lib/getopt.c:875
-#, c-format
-msgid "%s: option `-W %s' doesn't allow an argument\n"
-msgstr ""
-
-#: makeinfo/makeinfo.c:893
-#, c-format
-msgid "%s:%d: warning: "
-msgstr "%s:%d: AVERTISSEMENT: "
-
-#: makeinfo/makeinfo.c:916
-msgid "Too many errors! Gave up.\n"
-msgstr "Beaucoup trop d'erreurs! Abandon.\n"
-
-#: makeinfo/makeinfo.c:975 makeinfo/makeinfo.c:1000 makeinfo/makeinfo.c:1068
-#, c-format
-msgid "%s: %s arg must be numeric, not `%s'.\n"
-msgstr "%s: l'argument %s doit être numérique, non pas «%s».\n"
-
-#: makeinfo/makeinfo.c:989
-#, c-format
-msgid "Couldn't open macro expansion output `%s'"
-msgstr "Ne peut ouvrir la sortie d'expansion de macro «%s»"
-
-#: makeinfo/makeinfo.c:992
-msgid "Cannot specify more than one macro expansion output"
-msgstr "Ne peut spécifier plus d'une sortie d'expansion de macro"
-
-#: makeinfo/makeinfo.c:1036
-#, c-format
-msgid "%s: --paragraph-indent arg must be numeric/`none'/`asis', not `%s'.\n"
-msgstr ""
-"%s: l'argument de l'option --paragraph-indent doit être numérique, «none» "
-"ou\n"
-"«asis», non pas «%s».\n"
-
-#: makeinfo/makeinfo.c:1079
-#, c-format
-msgid "%s: --footnote-style arg must be `separate' or `end', not `%s'.\n"
-msgstr ""
-"%s: l'argument de l'option --footnote-style doit être «separate» ou\n"
-"«end», non pas «%s».\n"
-
-#: makeinfo/makeinfo.c:1110
-#, c-format
-msgid "%s: missing file argument.\n"
-msgstr "%s: absence d'un argument fichier.\n"
-
-#: makeinfo/makeinfo.c:1163
-#, c-format
-msgid "Try `%s --help' for more information.\n"
-msgstr "Pour en savoir davantage, faites: «%s --help».\n"
-
-#: makeinfo/makeinfo.c:1165
-#, fuzzy, c-format
-msgid ""
-"Usage: %s [OPTION]... TEXINFO-FILE...\n"
-"\n"
-"Translate Texinfo source documentation to a format suitable for reading\n"
-"with GNU Info.\n"
-"\n"
-"Options:\n"
-"-D VAR define a variable, as with @set.\n"
-"-E MACRO-OFILE process macros only, output texinfo source.\n"
-"-I DIR append DIR to the @include directory search path.\n"
-"-P DIR prepend DIR to the @include directory search path.\n"
-"-U VAR undefine a variable, as with @clear.\n"
-"--error-limit NUM quit after NUM errors (default %d).\n"
-"--fill-column NUM break 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\n"
-" the node in which they are defined (the default).\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"
-"--no-split suppress splitting of large files.\n"
-"--no-headers suppress node separators and Node: Foo headers.\n"
-"--output FILE, -o FILE output to FILE, and ignore any @setfilename.\n"
-"--paragraph-indent VAL indent paragraphs with VAL spaces (default %d).\n"
-" if VAL is `none', do not indent; if VAL is `asis',\n"
-" preserve any existing indentation.\n"
-"--reference-limit NUM complain about at most NUM references (default %d).\n"
-"--verbose report about what is being done.\n"
-"--version display version information and exit.\n"
-"\n"
-"Email bug reports to bug-texinfo@gnu.org.\n"
-msgstr ""
-"Usage: %s [OPTION]... FICHIER-TEXINFO...\n"
-"\n"
-"Traduire une documentation source en format Texinfo vers un format "
-"approprié\n"
-"pour une lecture avec GNU Info.\n"
-"\n"
-"Options:\n"
-"-D VAR Définir une variable, comme avec @set.\n"
-"-E MACRO-OFILE Exécuter les macros seulement, sortir un source "
-"texinfo.\n"
-"-I DIR Ajouter à la fin DIR dans la fouille de répertoires\n"
-" pour @include.\n"
-"-P DIR Ajouter au début DIR dans la fouille de répertoires\n"
-" pour @include.\n"
-"-U VAR Rendre indéfinie une variable, comme avec @clear.\n"
-"--error-limit NUM Quitter après NUM erreurs (par défaut %d).\n"
-"--fill-column NUM Tronquer les lignes à NUM caractères (par défaut "
-"%d).\n"
-"--footnote-style STYLE Sortir les notes en bas de page selon l'option "
-"STYLE:\n"
-" «separate» pour placer les notes dans leur propre "
-"noeud,\n"
-" «end» pour les placer à la fin du noeud dans lequel\n"
-" elles ont été définies (valeur par défaut).\n"
-"--force Conserver la sortie même s'il y a des erreurs.\n"
-"--help Afficher l'aide-mémoire.\n"
-"--no-validate Supprimer la validation de la table de référence\n"
-" des noeuds.\n"
-"--no-warn Supprimer les avertissements (mais pas les erreurs).\n"
-"--no-split Supprimer la troncation de fichiers volumineux.\n"
-"--no-headers Supprimer les séparateurs de noeud et Node: Foo "
-"headers.\n"
-"--output FICHIER, -o FICHIER Écrire dans le FICHIER, et ignorer tous\n"
-" les @setfilename.\n"
-"--paragraph-indent VAL Indenter les paragraphes de VAL espaces (%d par "
-"défaut).\n"
-" Si VAL est «none», ne pas indenter; si VAL est "
-"«asis»,\n"
-" conserver toute valeur d'indentation existante.\n"
-"--reference-limit NUM Avertir après plus de NUM références (%d par "
-"défaut).\n"
-"--verbose Utiliser le mode bavard et indiquer ce qui a été "
-"fait.\n"
-"--version Afficher le nom et la version du logiciel.\n"
-"\n"
-"Rapporter toute anomalie à bug-texinfo@prep.ai.mit.edu.\n"
-
-#: makeinfo/makeinfo.c:1552
-#, c-format
-msgid "%s: getwd: %s, %s\n"
-msgstr "%s: getwd: %s, %s\n"
-
-#: makeinfo/makeinfo.c:1748
-#, c-format
-msgid "Expected `%s'"
-msgstr "«%s» attendue"
-
-#: makeinfo/makeinfo.c:2082
-#, c-format
-msgid "No `%s' found in `%s'"
-msgstr "Aucun «%s» trouvé dans «%s»"
-
-#: makeinfo/makeinfo.c:2132
-#, c-format
-msgid "%s: Skipping macro expansion to stdout as Info output is going there.\n"
-msgstr ""
-"%s: Sauter l'expansion de macro qui irait sur stdout comme la sortie Info.\n"
-
-#: makeinfo/makeinfo.c:2151
-#, c-format
-msgid "Making %s file `%s' from `%s'.\n"
-msgstr "Fabrication du fichier %s «%s» à partir de «%s».\n"
-
-#: makeinfo/makeinfo.c:2181
-#, c-format
-msgid "This is Info file %s, produced by Makeinfo version %d.%d"
-msgstr "Ceci est le fichier Info %s, produit par Makeinfo version %d.%d"
-
-#: makeinfo/makeinfo.c:2183
-#, c-format
-msgid " from the input file %s.\n"
-msgstr "à partir du fichier d'entrée «%s».\n"
-
-#: makeinfo/makeinfo.c:2202
-#, c-format
-msgid ""
-"%s: Removing macro output file `%s' due to errors; use --force to preserve.\n"
-msgstr ""
-"%s: Enlèvement du fichier de sortie de macro «%s» à cause d'erreurs;\n"
-"utiliser l'option --force pour préserver.\n"
-
-#. If there were errors, and no --force, remove the output.
-#: makeinfo/makeinfo.c:2234
-#, c-format
-msgid "%s: Removing output file `%s' due to errors; use --force to preserve.\n"
-msgstr ""
-"%s: Enlèvement du fichier de sortie «%s» à cause d'erreurs;\n"
-"utiliser l'option --force pour préserver.\n"
-
-#. Special case. I'm not supposed to see this character by itself.
-#. If I do, it means there is a syntax error in the input text.
-#. Report the error here, but remember this brace on the stack so
-#. you can ignore its partner.
-#: makeinfo/makeinfo.c:2374 makeinfo/makeinfo.c:7629
-#, c-format
-msgid "Misplaced %c"
-msgstr "%c égarée ou mal placée"
-
-#: makeinfo/makeinfo.c:2461
-#, c-format
-msgid "Unknown command `%s'"
-msgstr "Commande inconnue «%s»."
-
-#: makeinfo/makeinfo.c:2481
-msgid "NO_NAME!"
-msgstr "NOM_INCONNU!"
-
-#: makeinfo/makeinfo.c:2495
-#, c-format
-msgid "%c%s expected `{...}'"
-msgstr "%c%s exigeant des accolades «{...}»"
-
-#: makeinfo/makeinfo.c:2528
-msgid "Unmatched }"
-msgstr "Accolade «}» non appariée"
-
-#: makeinfo/makeinfo.c:2576
-#, c-format
-msgid "%c%s missing close brace"
-msgstr "%c%s sans accolade fermante"
-
-#: makeinfo/makeinfo.c:3372
-msgid "Broken-Type in insertion_type_pname"
-msgstr "Type impossible dans la fonction insertion_type_pname"
-
-#: makeinfo/makeinfo.c:3438
-msgid "Enumeration stack overflow"
-msgstr "Débordement de la pile d'énumérations"
-
-#: makeinfo/makeinfo.c:3470
-#, c-format
-msgid "lettering overflow, restarting at %c"
-msgstr "débordement du lettrage, reprise à partir de %c"
-
-#: makeinfo/makeinfo.c:3509
-msgid "* Menu:\n"
-msgstr "* Menu:\n"
-
-#: makeinfo/makeinfo.c:3593
-#, c-format
-msgid "%s requires an argument: the formatter for %citem"
-msgstr "%s exige un argument: le formateur pour %citem"
-
-#: makeinfo/makeinfo.c:3697
-#, c-format
-msgid "`%cend' expected `%s', but saw `%s'"
-msgstr "«%cend» attendait «%s», mais a vu «%s»"
-
-#: makeinfo/makeinfo.c:3810
-#, c-format
-msgid "No matching `%cend %s'"
-msgstr "«%cend %s» non apparié"
-
-#: makeinfo/makeinfo.c:3949
-#, c-format
-msgid "How did @%s end up in cm_special_char?\n"
-msgstr "Comment le caractère @%s a-t-il pu aboutir dans cm_special_char?\n"
-
-#. This error message isn't perfect if the argument is multiple
-#. characters, but it doesn't seem worth getting right.
-#: makeinfo/makeinfo.c:3963
-#, c-format
-msgid "%c%s expects `i' or `j' as argument, not `%c'"
-msgstr "%c%s s'attend à argument «i» ou «j», non pas «%c»"
-
-#: makeinfo/makeinfo.c:3967
-#, c-format
-msgid "%c%s expects a single character `i' or `j' as argument"
-msgstr "%c%s attend un argument d'un seul caractère «i» ou «j»"
-
-#: makeinfo/makeinfo.c:3979
-msgid "January"
-msgstr "janvier"
-
-#: makeinfo/makeinfo.c:3979
-msgid "February"
-msgstr "février"
-
-#: makeinfo/makeinfo.c:3979
-msgid "March"
-msgstr "mars"
-
-#: makeinfo/makeinfo.c:3979
-msgid "April"
-msgstr "avril"
-
-#: makeinfo/makeinfo.c:3979
-msgid "May"
-msgstr "mai"
-
-#: makeinfo/makeinfo.c:3980
-msgid "June"
-msgstr "juin"
-
-#: makeinfo/makeinfo.c:3980
-msgid "July"
-msgstr "juillet"
-
-#: makeinfo/makeinfo.c:3980
-msgid "August"
-msgstr "août"
-
-#: makeinfo/makeinfo.c:3980
-msgid "September"
-msgstr "septembre"
-
-#: makeinfo/makeinfo.c:3980
-msgid "October"
-msgstr "octobre"
-
-#: makeinfo/makeinfo.c:3981
-msgid "November"
-msgstr "novembre"
-
-#: makeinfo/makeinfo.c:3981
-msgid "December"
-msgstr "décembre"
-
-#: makeinfo/makeinfo.c:4039
-#, c-format
-msgid "%c%s expects a single character as an argument"
-msgstr "%c%s s'attend à un seul caractère comme argument"
-
-#: makeinfo/makeinfo.c:4153
-#, c-format
-msgid "%c%s is obsolete"
-msgstr "%c%s est périmé"
-
-#: makeinfo/makeinfo.c:4325
-#, c-format
-msgid "Node with %ctop as a section already exists"
-msgstr ""
-
-#: makeinfo/makeinfo.c:4337
-#, c-format
-msgid "Here is the %ctop node"
-msgstr "Le noeud %ctop se trouve ici"
-
-#: makeinfo/makeinfo.c:4356
-#, c-format
-msgid "%ctop used before %cnode, defaulting to %s"
-msgstr "noeud %ctop utilisé avant %cnode, %s implicitement"
-
-#: makeinfo/makeinfo.c:4431
-#, c-format
-msgid "%c%s is obsolete; use %c%s instead"
-msgstr "%c%s est périmé; utiliser %c%s à la place"
-
-#: makeinfo/makeinfo.c:4680
-#, c-format
-msgid "Node `%s' multiply defined (line %d is first definition at)"
-msgstr "Noeud «%s» ayant plusieurs définitions (ligne %d étant la première)"
-
-#: makeinfo/makeinfo.c:4753
-#, c-format
-msgid "Formatting node %s...\n"
-msgstr "Écriture du noeud «%s»...\n"
-
-#: makeinfo/makeinfo.c:4802
-#, c-format
-msgid "Node `%s' requires a sectioning command (e.g. %c%s)"
-msgstr "Le noeud «%s» exige une commande de subdivision (e.g. %c%s)"
-
-#: makeinfo/makeinfo.c:5085
-#, c-format
-msgid "Node `%s''s Next field not pointed back to"
-msgstr "Le champ Next du noeud «%s» n'a pas de pointeur de retour en amont"
-
-#: makeinfo/makeinfo.c:5090
-#, c-format
-msgid "This node (`%s') is the one with the bad `Prev'"
-msgstr "Ce noeud («%s») est celui dont le champ «Prev» est erroné"
-
-#: makeinfo/makeinfo.c:5130
-#, c-format
-msgid "Node `%s's Prev field not pointed back to"
-msgstr "Le champ Prev du noeud «%s» n'a pas de pointeur de retour en amont"
-
-#: makeinfo/makeinfo.c:5134
-#, c-format
-msgid "This node (`%s') has the bad Next"
-msgstr "Ce noeud («%s») est celui dont le champ «Next» est erroné"
-
-#: makeinfo/makeinfo.c:5146
-#, c-format
-msgid "Node `%s' missing Up field"
-msgstr "Le noeud «%s» a un champ «Up» manquant"
-
-#: makeinfo/makeinfo.c:5186
-#, c-format
-msgid "`%s' has an Up field of `%s', but `%s' has no menu item for `%s'"
-msgstr ""
-"Le noeud «%s» a un champ Up de «%s», mais «%s» n'a aucun item menu pour «%s»"
-
-#: makeinfo/makeinfo.c:5217
-#, c-format
-msgid "node `%s' has been referenced %d times"
-msgstr "Le noeud «%s» a été référencé %d fois"
-
-#: makeinfo/makeinfo.c:5229
-#, c-format
-msgid "unreferenced node `%s'"
-msgstr "noeud «%s» non référencé"
-
-#: makeinfo/makeinfo.c:5256
-#, c-format
-msgid "%s reference to nonexistent node `%s'"
-msgstr "%s réfère au noeud «%s» non existant"
-
-#: makeinfo/makeinfo.c:5668 makeinfo/makeinfo.c:5680
-#, c-format
-msgid "%cmenu seen before first node"
-msgstr "%cmenu avant même le premier noeud"
-
-#: makeinfo/makeinfo.c:5669 makeinfo/makeinfo.c:5681
-msgid "creating `Top' node"
-msgstr "création du noeud «TOP»"
-
-#: makeinfo/makeinfo.c:5794
-#, c-format
-msgid "`.' or `,' must follow cross reference, not %c"
-msgstr "«.» ou «,» doit suivre une référence croisée, non pas %c"
-
-#: makeinfo/makeinfo.c:5962
-#, c-format
-msgid "@image file `%s' unreadable: %s"
-msgstr "fichier «%s» dans la commande @image est illisible: %s"
-
-#: makeinfo/makeinfo.c:5966
-msgid "@image missing filename argument"
-msgstr "absence d'un argument fichier dans la commande @image"
-
-#: makeinfo/makeinfo.c:6067
-#, c-format
-msgid "%s requires letter or digit"
-msgstr "%s exige une lettre ou un chiffre"
-
-#: makeinfo/makeinfo.c:6152
-#, c-format
-msgid "Unmatched `%c%s'"
-msgstr "«%c%s» non apparié"
-
-#: makeinfo/makeinfo.c:6159
-#, c-format
-msgid "`%c%s' needs something after it"
-msgstr "«%c%s» a besoin de quelque chose après lui"
-
-#: makeinfo/makeinfo.c:6165
-#, c-format
-msgid "Bad argument to `%s', `%s', using `%s'"
-msgstr "Mauvais argument à «%s», «%s», utilisant «%s»"
-
-#: makeinfo/makeinfo.c:6338
-#, c-format
-msgid "{No Value For \"%s\"}"
-msgstr "{Aucune Valeur Pour «%s»}"
-
-#: makeinfo/makeinfo.c:6388
-#, c-format
-msgid "%c%s requires a name"
-msgstr "%c%s nécessite un nom"
-
-#: makeinfo/makeinfo.c:6496
-#, c-format
-msgid "Reached eof before matching @end %s"
-msgstr "Fin de fichier rencontré avant l'appariement de @end %s"
-
-#: makeinfo/makeinfo.c:6722
-#, c-format
-msgid "The `%c%s' command is meaningless within a `@%s' block"
-msgstr "La commande «%c%s» est inactive dans un bloc «@%s»"
-
-#: makeinfo/makeinfo.c:6731
-#, c-format
-msgid "%citemx is not meaningful inside of a `%s' block"
-msgstr "%citemx est inactif à l'intérieur d'un bloc «%s»"
-
-#: makeinfo/makeinfo.c:6844
-#, c-format
-msgid "%c%s found outside of an insertion block"
-msgstr "%c%s est trouvé à l'extérieur d'un bloc d'insertion"
-
-#: makeinfo/makeinfo.c:6935
-#, c-format
-msgid "Missing `}' in %cdef arg"
-msgstr "Accolade «}» manquante dans le paramètre %cdef"
-
-#: makeinfo/makeinfo.c:7144 makeinfo/makeinfo.c:7164
-msgid "Function"
-msgstr "Fonction"
-
-#: makeinfo/makeinfo.c:7148
-msgid "Macro"
-msgstr "Macro"
-
-#: makeinfo/makeinfo.c:7152
-msgid "Special Form"
-msgstr "Forme Spéciale"
-
-#: makeinfo/makeinfo.c:7156 makeinfo/makeinfo.c:7168
-msgid "Variable"
-msgstr "Variable"
-
-#: makeinfo/makeinfo.c:7160
-msgid "User Option"
-msgstr "Option de l'Usager"
-
-#: makeinfo/makeinfo.c:7172
-msgid "Instance Variable"
-msgstr "Variable d'Instance"
-
-#: makeinfo/makeinfo.c:7176 makeinfo/makeinfo.c:7180
-msgid "Method"
-msgstr "Méthode"
-
-#: makeinfo/makeinfo.c:7335
-#, c-format
-msgid "Must be in a `%s' insertion in order to use `%s'x"
-msgstr "Doit être dans une insertion «%s» afin d'utiliser «%s»x."
-
-#: makeinfo/makeinfo.c:7407
-#, c-format
-msgid "%csp requires a positive numeric argument"
-msgstr "%csp exige un argument numérique positif"
-
-#: makeinfo/makeinfo.c:7650
-msgid "asis"
-msgstr "«asis»"
-
-#: makeinfo/makeinfo.c:7652
-msgid "none"
-msgstr "«none»"
-
-#: makeinfo/makeinfo.c:7674
-#, c-format
-msgid "Bad argument to %c%s"
-msgstr "Mauvais argument à %c%s"
-
-#: makeinfo/makeinfo.c:7966
-#, c-format
-msgid "Unknown index `%s'"
-msgstr "Nom d'index inconnu «%s»"
-
-#: makeinfo/makeinfo.c:8031
-#, c-format
-msgid "Index `%s' already exists"
-msgstr "L'index «%s» existe toujours"
-
-#: makeinfo/makeinfo.c:8062
-#, c-format
-msgid "Unknown index `%s' and/or `%s' in @synindex"
-msgstr "Nom d'index «%s» inconnu et/ou «%s» dans @synindex"
-
-#: makeinfo/makeinfo.c:8251
-#, c-format
-msgid "Unknown index `%s' in @printindex"
-msgstr "Nom d'index «%s» inconnu dans @printindex"
-
-#: makeinfo/makeinfo.c:8266
-msgid ""
-"* Menu:\n"
-"\n"
-msgstr ""
-"* Menu:\n"
-"\n"
-
-#: makeinfo/makeinfo.c:8453
-#, c-format
-msgid "`%c%s' needs an argument `{...}', not just `%s'"
-msgstr "«%c%s» nécessite un argument «{...}», non pas «%s» seulement"
-
-#: makeinfo/makeinfo.c:8468
-#, c-format
-msgid "No closing brace for footnote `%s'"
-msgstr "Accolade fermante «}» manquante pour la note en bas de page «%s»"
-
-#: makeinfo/makeinfo.c:8507
-msgid "Footnote defined without parent node"
-msgstr "La note en bas de page est définie sans noeud parent"
-
-# Est-ce vraiement un message à traduire?
-#: makeinfo/makeinfo.c:8539
-msgid "-Footnotes"
-msgstr "-Footnotes"
-
-# Est-ce vraiment un message à traduire? NON.
-#: makeinfo/makeinfo.c:8594
-msgid ""
-"---------- Footnotes ----------\n"
-"\n"
-msgstr ""
-"--------- Notes en bas de page ---------\n"
-"\n"
-
-#: makeinfo/makeinfo.c:8690
-#, c-format
-msgid "macro `%s' previously defined"
-msgstr "macro «%s» déjà définie précédemment"
-
-#: makeinfo/makeinfo.c:8694
-#, c-format
-msgid "here is the previous definition of `%s'"
-msgstr "ici se trouve la définition précédente de «%s»"
-
-#: makeinfo/makeinfo.c:8908
-#, c-format
-msgid "Macro `%s' called with too many args"
-msgstr "Macro «%s» appelée avec trop d'arguments"
-
-#: makeinfo/makeinfo.c:9060
-#, c-format
-msgid "%cend macro not found"
-msgstr "macro %cend non trouvée"
-
-#: makeinfo/makeinfo.c:9100
-#, c-format
-msgid "%cquote-arg only useful when the macro takes a single argument"
-msgstr "%cquote-arg utile seulement lorsque la macro prend un seul argument"
-
-#: makeinfo/multi.c:206
-#, c-format
-msgid "ignoring stray text `%s' after @multitable"
-msgstr "abandon du texte orphelin «%s» après la commande @multitable"
-
-#: makeinfo/multi.c:277
-#, c-format
-msgid "Too many columns in multitable item (max %d)"
-msgstr "Trop de colonnes dans un item de multitable (%d max)"
-
-#. impossible, I think.
-#: makeinfo/multi.c:304
-msgid "multitable item not in active multitable"
-msgstr "item de multitable qui n'est pas dans une multitable active"
-
-#: makeinfo/multi.c:313
-#, c-format
-msgid "Cannot select column #%d in multitable"
-msgstr "Ne peut pas sélectionner la colonne #%d dans une multitable."
-
-#: makeinfo/multi.c:404
-msgid "ignoring @tab outside of multitable"
-msgstr "inhibition d'une commande @tab à l'extérieur d'une multitable"
-
-#: makeinfo/multi.c:428
-msgid "** Multicolumn output from last row:\n"
-msgstr "** Sortie en multicolonnes à partir de la dernière rangée:\n"
-
-#: makeinfo/multi.c:431
-#, c-format
-msgid "* column #%d: output = %s\n"
-msgstr "* colonne #%d: sortie = %s\n"
-
-#: util/install-info.c:123 util/install-info.c:136
-msgid "virtual memory exhausted"
-msgstr "mémoire virtuelle épuisée"
-
-#: util/install-info.c:192
-#, c-format
-msgid "%s: warning: "
-msgstr "%s: AVERTISSEMENT: "
-
-#: util/install-info.c:213
-#, c-format
-msgid " for %s"
-msgstr " pour %s"
-
-#: util/install-info.c:282
-#, c-format
-msgid "\tTry `%s --help' for a complete list of options.\n"
-msgstr "Pour avoir la liste complète des options, faites «%s --help».\n"
-
-#: util/install-info.c:290
-#, fuzzy, c-format
-msgid ""
-"Usage: %s [OPTION]... [INFO-FILE [DIR-FILE]]\n"
-"\n"
-"Install INFO-FILE in the Info directory file DIR-FILE.\n"
-"\n"
-"Options:\n"
-"--delete Delete existing entries in INFO-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"
-"\n"
-"Email bug reports to bug-texinfo@gnu.org.\n"
-msgstr ""
-"%s [OPTION]... [INFO-FICHIER [DIR-FICHIER]]\n"
-" Installer INFO-FICHIER dans le répertoire DIR-FICHIER de fichiers Info.\n"
-"\n"
-"Options:\n"
-"--delete Éliminer les entrées existantes dans INFO-FICHIER;\n"
-" ne pas insérer une quelconque nouvelle entrée.\n"
-"--dir-file=NOM Spécifier le NOM du répertoire de fichiers Info.\n"
-" Ceci équivaut à utiliser l'argument DIR-FICHIER.\n"
-"--entry=TEXTE Insérer TEXTE comme une entrée du répertoire Info.\n"
-" TEXTE doit avoir la forme d'une ligne d'item de menu\n"
-" Info avec zéro ou plusieurs lignes en extra commençant\n"
-" par un blanc. Si plus d'une entrée est spécifiée,\n"
-" elles seront toutes ajoutées. Si aucune entrée n'est\n"
-" spécifiée, elles seront déterminées à partir de\n"
-" l'information dans le fichier Info lui-même.\n"
-"--help Afficher l'aide-mémoire.\n"
-"--info-file=FICHIER Spécifier le FICHIER Info à installer dans le\n"
-" répertoire de fichiers Info. Ceci équivaut à utiliser\n"
-" l'argument INFO-FICHIER.\n"
-"--info-dir=RÉP Identique à l'option --dir-file=RÉP/dir.\n"
-"--item=TEXTE Identique à l'option --entry=TEXTE\n"
-" Une entrée de répertoire Info est en fait un item menu.\n"
-"--quiet Supprimer les avertissements.\n"
-"--remove Identique à l'option --delete.\n"
-"--section=SEC Mettre cette entrée de fichier dans la section SEC du\n"
-" répertoire. Si plus d'une section est spécifiée,\n"
-" toutes les entrées sont ajoutées dans chacune des\n"
-" sections. Si aucune section n'est spécifiée, elles\n"
-" seront déterminées à partir de l'information dans\n"
-" le fichier Info lui-même.\n"
-"--version Afficher le nom et la version du logiciel.\n"
-"\n"
-"Rapporter toute anomalie à bug-texinfo@prep.ai.mit.edu.\n"
-
-#: util/install-info.c:341
-#, fuzzy
-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"
-"File: dir,\tNode: Top,\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 ""
-"Ceci est le fichier .../info/dir, lequel contient le noeud \n"
-"le plus haut dans la hiérarchie Info, noeud appelé (dir)Top.\n"
-"La première fois que Info est invoqué, vous démarrez la recherche \n"
-"à partir de ce noeud.\n"
-"\n"
-"Fichier: dir Noeud: Top Ceci est le haut de l'arborescence INFO\n"
-"\n"
-" Ceci (le noeud Répertoire) fournit un menu des sujets majeurs.\n"
-" Taper «q» pour quitter, «?» pour lister toutes les commandes Info,\n"
-" «d» pour revenir à cet endroit,\n"
-" «h» fournit un guide d'initiation pour les nouveaux venus,\n"
-" «mEmacs<Return>» démarre une consultation du manuel Emacs, etc.\n"
-"\n"
-" En Emacs, vous pouvez cliquer le bouton 2 de la souris sur un item menu "
-"ou\n"
-" sur une référence croisée pour le sélectionner.\n"
-"\n"
-"* Menu:\n"
-
-#: util/install-info.c:364
-#, c-format
-msgid "%s: could not read (%s) and could not create (%s)\n"
-msgstr "%s: ne peut pas lire (%s) et ne peut pas créer (%s)\n"
-
-#: util/install-info.c:464 util/install-info.c:474
-#, c-format
-msgid "%s: Specify the Info directory only once.\n"
-msgstr "%s: Spécifier le répertoire Info une seule fois seulement.\n"
-
-#: util/install-info.c:502
-#, c-format
-msgid "%s: Specify the Info file only once.\n"
-msgstr "%s: Spécifier le fichier Info une seule fois seulement.\n"
-
-#: util/install-info.c:550
-#, c-format
-msgid "excess command line argument `%s'"
-msgstr "excédent d'argument de ligne de commande `%s'"
-
-#: util/install-info.c:554
-msgid "No input file specified; try --help for more information."
-msgstr ""
-"Aucun fichier d'entrée spécifié; essayer --help pour plus d'informations."
-
-#: util/install-info.c:556
-msgid "No dir file specified; try --help for more information."
-msgstr "Aucun fichier dir spécifié; essayer --help pour plus d'informations."
-
-#: util/install-info.c:608 util/install-info.c:631
-msgid "START-INFO-DIR-ENTRY without matching END-INFO-DIR-ENTRY"
-msgstr "START-INFO-DIR-ENTRY non apparié avec END-INFO-DIR-ENTRY"
-
-#: util/install-info.c:627
-msgid "END-INFO-DIR-ENTRY without matching START-INFO-DIR-ENTRY"
-msgstr "END-INFO-DIR-ENTRY non apparié avec START-INFO-DIR-ENTRY"
-
-#. No need to abort here, the original info file may not have
-#. the requisite Texinfo commands. This is not something an
-#. installer should have to correct (it's a problem for the
-#. maintainer), and there's no need to cause subsequent parts of
-#. `make install' to fail.
-#: util/install-info.c:641
-#, c-format
-msgid "no info dir entry in `%s'"
-msgstr "aucune entrée répertoire Info dans «%s»"
-
-#: util/install-info.c:852
-#, c-format
-msgid "menu item `%s' already exists, for file `%s'"
-msgstr "item menu «%s» déjà existant, pour le fichier «%s»"
-
-#: util/install-info.c:875
-#, c-format
-msgid "no entries found for `%s'; nothing deleted"
-msgstr "aucune entrée trouvée pour «%s»; rien n'a été éliminé"
-
-#: util/texindex.c:253
-msgid "keep temporary files around after processing"
-msgstr "conserver les fichiers temporaires après le traitement"
-
-#: util/texindex.c:255
-msgid "do not keep temporary files around after processing (default)"
-msgstr "ne pas conserver les fichiers temporaires après le traitement (défaut)"
-
-#: util/texindex.c:257
-msgid "send output to FILE"
-msgstr "envoyer la sortie dans FICHIER"
-
-#: util/texindex.c:259
-msgid "display version information and exit"
-msgstr "afficher la version en usage et quitter"
-
-#: util/texindex.c:261
-msgid "display this help and exit"
-msgstr "afficher cet aide-mémoire et quitter"
-
-#: util/texindex.c:272
-#, c-format
-msgid "Usage: %s [OPTION]... FILE...\n"
-msgstr "Usage: %s [OPTION]... FICHIER...\n"
-
-#: util/texindex.c:273
-msgid "Generate a sorted index for each TeX output FILE.\n"
-msgstr "Générer un index trié pour chaque FICHIER de sortie TeX.\n"
-
-#. Avoid trigraph nonsense.
-#: util/texindex.c:275
-msgid "Usually FILE... is `foo.??' for a document `foo.texi'.\n"
-msgstr "Habituellement FICHIER... est «foo.??» pour un document «foo.texi».\n"
-
-#: util/texindex.c:276
-msgid ""
-"\n"
-"Options:\n"
-msgstr ""
-"\n"
-"Options:\n"
-
-#: util/texindex.c:290
-#, fuzzy
-msgid ""
-"\n"
-"Email bug reports to bug-texinfo@gnu.org."
-msgstr ""
-"\n"
-"Rapporter toute anomalie à bug-texinfo@prep.ai.mit.edu."
-
-#: util/texindex.c:917 util/texindex.c:951 util/texindex.c:1027
-#: util/texindex.c:1055
-#, c-format
-msgid "%s: not a texinfo index file"
-msgstr "%s: pas un fichier index en format Texinfo"
-
-#: util/texindex.c:1012
-#, c-format
-msgid "failure reopening %s"
-msgstr "échec lors de la réouverture de %s"
-
-#: util/texindex.c:1325
-#, c-format
-msgid "entry %s follows an entry with a secondary name"
-msgstr "l'entrée %s suit une entrée ayant un nom secondaire"
-
-#: util/texindex.c:1663
-#, c-format
-msgid "%s; for file `%s'.\n"
-msgstr "%s; pour le fichier «%s».\n"
-
-#: util/texindex.c:1724
-#, c-format
-msgid "Virtual memory exhausted in %s ()! Needed %d bytes."
-msgstr "Mémoire virtuelle épuisée dans %s ()! Besoin de %d octets."
-
-#~ msgid "install-info (GNU %s) %s\n"
-#~ msgstr "install-info (GNU %s) %s\n"
-
-#~ msgid "universal-argument"
-#~ msgstr "universal-argument"
-
-#~ msgid "Show what to type to execute a given command"
-#~ msgstr "Montrer quoi écrire afin d'exécuter une commande donnée"
-
-#~ msgid "There %s %d "
-#~ msgstr "Comme complétion(s) %s %d "
-
-#~ msgid "is"
-#~ msgstr "il y a"
-
-#~ msgid "are"
-#~ msgstr "il y a"
-
-# Est-ce vraiment un message à traduire? NON.
-#~ msgid ""
-#~ "Usage: info [-d dir-path] [-f info-file] [-o output-file] [-n node-name]..."
-#~ msgstr ""
-#~ "Usage: info [-d dir-path] [-f info-file] [-o output-file] [-n node-name]..."
-
-# Est-ce vraiment un message à traduire? NON.
-#~ msgid ""
-#~ " [--directory dir-path] [--file info-file] [--node node-name]..."
-#~ msgstr ""
-#~ " [--directory dir-path] [--file info-file] [--node node-name]..."
-
-# Est-ce vraiment un message à traduire? NON.
-#~ msgid " [--help] [--output output-file] [--subnodes] [--version]"
-#~ msgstr ""
-#~ " [--help] [--output output-file] [--subnodes] [--version]"
-
-# Est-ce vraiment un message à traduire? NON.
-#~ msgid " [--dribble dribble-file] [--restore from-file]"
-#~ msgstr " [--dribble dribble-file] [--restore from-file]"
-
-# Est-ce vraiment un message à traduire? NON.
-#~ msgid " [menu-selection ...]"
-#~ msgstr " [menu-selection ...]"
-
-#~ msgid "makeinfo (GNU %s %s) %d.%d\n"
-#~ msgstr "makeinfo (GNU %s %s) %d.%d\n"
-
-#~ msgid "%d %s %d"
-#~ msgstr "%d %s %d"
-
-#~ msgid "There already is a node having %ctop as a section"
-#~ msgstr "Il y a déjà un noeud ayant %ctop en tant que section"
-
-#~ msgid "texindex (GNU %s %s) 2.1\n"
-#~ msgstr "texindex (GNU %s %s) 2.1\n"
diff --git a/texinfo/po/stamp-cat-id b/texinfo/po/stamp-cat-id
deleted file mode 100644
index 9788f70238c..00000000000
--- a/texinfo/po/stamp-cat-id
+++ /dev/null
@@ -1 +0,0 @@
-timestamp
diff --git a/texinfo/po/texinfo.pot b/texinfo/po/texinfo.pot
deleted file mode 100644
index 503c3bf949d..00000000000
--- a/texinfo/po/texinfo.pot
+++ /dev/null
@@ -1,1832 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR Free Software Foundation, Inc.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 1997-07-31 17:43-0400\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=CHARSET\n"
-"Content-Transfer-Encoding: ENCODING\n"
-
-#. Commands found in "./session.c".
-#: info/doc.c:27 info/session.c:629
-msgid "Move down to the next line"
-msgstr ""
-
-#. Move WINDOW's point up to the previous line if possible.
-#: info/doc.c:28 info/session.c:644
-msgid "Move up to the previous line"
-msgstr ""
-
-#. Move WINDOW's point to the end of the true line.
-#: info/doc.c:29 info/session.c:659
-msgid "Move to the end of the line"
-msgstr ""
-
-#. Move WINDOW's point to the beginning of the true line.
-#: info/doc.c:30 info/session.c:679
-msgid "Move to the start of the line"
-msgstr ""
-
-#. Commands found in "./echo-area.c".
-#: info/doc.c:31 info/doc.c:84 info/echo-area.c:283 info/session.c:698
-msgid "Move forward a character"
-msgstr ""
-
-#. Move point backward in the node.
-#: info/doc.c:32 info/doc.c:85 info/echo-area.c:295 info/session.c:714
-msgid "Move backward a character"
-msgstr ""
-
-#. Move forward a word in the input line.
-#: info/doc.c:33 info/doc.c:88 info/echo-area.c:320 info/session.c:732
-msgid "Move forward a word"
-msgstr ""
-
-#: info/doc.c:34 info/doc.c:89 info/echo-area.c:360 info/session.c:781
-msgid "Move backward a word"
-msgstr ""
-
-#: info/doc.c:35 info/session.c:1121
-msgid "Move forwards or down through node structure"
-msgstr ""
-
-#: info/doc.c:36 info/session.c:1137
-msgid "Move backwards or up through node structure"
-msgstr ""
-
-#. Show the next screen of WINDOW's node.
-#: info/doc.c:37 info/session.c:1152
-msgid "Scroll forward in this window"
-msgstr ""
-
-#. Show the previous screen of WINDOW's node.
-#: info/doc.c:38 info/session.c:1197
-msgid "Scroll backward in this window"
-msgstr ""
-
-#. Move to the beginning of the node.
-#: info/doc.c:39 info/session.c:1237
-msgid "Move to the start of this node"
-msgstr ""
-
-#. Move to the end of the node.
-#: info/doc.c:40 info/session.c:1244
-msgid "Move to the end of this node"
-msgstr ""
-
-#. ****************************************************************
-#.
-#. Commands for Manipulating Windows
-#.
-#. ****************************************************************
-#. Make the next window in the chain be the active window.
-#: info/doc.c:41 info/session.c:1257
-msgid "Select the next window"
-msgstr ""
-
-#. Make the previous window in the chain be the active window.
-#: info/doc.c:42 info/session.c:1296
-msgid "Select the previous window"
-msgstr ""
-
-#. Split WINDOW into two windows, both showing the same node. If we
-#. are automatically tiling windows, re-tile after the split.
-#: info/doc.c:43 info/session.c:1347
-msgid "Split the current window"
-msgstr ""
-
-#. Delete WINDOW, forgetting the list of last visited nodes. If we are
-#. automatically displaying footnotes, show or remove the footnotes
-#. window. If we are automatically tiling windows, re-tile after the
-#. deletion.
-#: info/doc.c:44 info/session.c:1428
-msgid "Delete the current window"
-msgstr ""
-
-#. Just keep WINDOW, deleting all others.
-#: info/doc.c:45 info/session.c:1469
-msgid "Delete all other windows"
-msgstr ""
-
-#. Scroll the "other" window of WINDOW.
-#: info/doc.c:46 info/session.c:1515
-msgid "Scroll the other window"
-msgstr ""
-
-#. Change the size of WINDOW by AMOUNT.
-#: info/doc.c:47 info/session.c:1535
-msgid "Grow (or shrink) this window"
-msgstr ""
-
-#: info/doc.c:48 info/session.c:1546
-msgid "Divide the available screen space among the visible windows"
-msgstr ""
-
-#: info/doc.c:49 info/session.c:1553
-msgid "Toggle the state of line wrapping in the current window"
-msgstr ""
-
-#. Make WINDOW display the "Next:" node of the node currently being
-#. displayed.
-#: info/doc.c:50 info/session.c:1714
-msgid "Select the `Next' node"
-msgstr ""
-
-#. Make WINDOW display the "Prev:" node of the node currently being
-#. displayed.
-#: info/doc.c:51 info/session.c:1722
-msgid "Select the `Prev' node"
-msgstr ""
-
-#. Make WINDOW display the "Up:" node of the node currently being
-#. displayed.
-#: info/doc.c:52 info/session.c:1730
-msgid "Select the `Up' node"
-msgstr ""
-
-#. Make WINDOW display the last node of this info file.
-#: info/doc.c:53 info/session.c:1737
-msgid "Select the last node in this file"
-msgstr ""
-
-#. Make WINDOW display the first node of this info file.
-#: info/doc.c:54 info/session.c:1759
-msgid "Select the first node in this file"
-msgstr ""
-
-#: info/doc.c:55 info/session.c:2401
-msgid "Select the most recently selected node"
-msgstr ""
-
-#: info/doc.c:56 info/session.c:1778
-msgid "Select the last item in this node's menu"
-msgstr ""
-
-#. Use KEY (a digit) to select the Nth menu item in WINDOW->node.
-#: info/doc.c:57 info/session.c:1784
-msgid "Select this menu item"
-msgstr ""
-
-#. Read a line (with completion) which is the name of a menu item,
-#. and select that item.
-#: info/doc.c:58 info/session.c:2042
-msgid "Read a menu item and select its node"
-msgstr ""
-
-#: info/doc.c:59 info/session.c:2050
-msgid "Read a footnote or cross reference and select its node"
-msgstr ""
-
-#. Position the cursor at the start of this node's menu.
-#: info/doc.c:60 info/session.c:2056
-msgid "Move to the start of this node's menu"
-msgstr ""
-
-#: info/doc.c:61 info/session.c:2080
-msgid "Visit as many menu items at once as possible"
-msgstr ""
-
-#. Read a line of input which is a node name, and go to that node.
-#: info/doc.c:62 info/session.c:2108
-msgid "Read a node name and select it"
-msgstr ""
-
-#: info/doc.c:63 info/session.c:2194
-msgid "Read a manpage reference and select it"
-msgstr ""
-
-#. Move to the "Top" node in this file.
-#: info/doc.c:64 info/session.c:2228
-msgid "Select the node `Top' in this file"
-msgstr ""
-
-#. Move to the node "(dir)Top".
-#: info/doc.c:65 info/session.c:2234
-msgid "Select the node `(dir)'"
-msgstr ""
-
-#. Kill named node.
-#: info/doc.c:66 info/session.c:2407
-msgid "Kill this node"
-msgstr ""
-
-#. Read the name of a file and select the entire file.
-#: info/doc.c:67 info/session.c:2415
-msgid "Read the name of a file and select it"
-msgstr ""
-
-#: info/doc.c:68 info/session.c:2634
-msgid "Pipe the contents of this node through INFO_PRINT_COMMAND"
-msgstr ""
-
-#: info/doc.c:69 info/session.c:2946
-msgid "Read a string and search for it"
-msgstr ""
-
-#: info/doc.c:70 info/doc.c:71 info/session.c:3020 info/session.c:3026
-msgid "Search interactively for a string as you type it"
-msgstr ""
-
-#: info/doc.c:72 info/session.c:3579
-msgid "Move to the previous cross reference"
-msgstr ""
-
-#: info/doc.c:73 info/session.c:3588
-msgid "Move to the next cross reference"
-msgstr ""
-
-#: info/doc.c:74 info/session.c:3598
-msgid "Select reference or menu item appearing on this line"
-msgstr ""
-
-#. ****************************************************************
-#.
-#. Miscellaneous Info Commands
-#.
-#. ****************************************************************
-#. What to do when C-g is pressed in a window.
-#: info/doc.c:75 info/session.c:3620
-msgid "Cancel current operation"
-msgstr ""
-
-#: info/doc.c:76 info/session.c:3636
-msgid "Move to the cursor to a specific line of the window"
-msgstr ""
-
-#. Clear the screen and redraw its contents. Given a numeric argument,
-#. move the line the cursor is on to the COUNT'th line of the window.
-#: info/doc.c:77 info/session.c:3668
-msgid "Redraw the display"
-msgstr ""
-
-#. This command does nothing. It is the fact that a key is bound to it
-#. that has meaning. See the code at the top of info_session ().
-#: info/doc.c:78 info/session.c:3705
-msgid "Quit using Info"
-msgstr ""
-
-#: info/doc.c:80 info/session.c:3958
-msgid "Add this digit to the current numeric argument"
-msgstr ""
-
-#: info/doc.c:81
-msgid "universal-argument"
-msgstr ""
-
-#: info/doc.c:81 info/session.c:3967
-msgid "Start (or multiply by 4) the current numeric argument"
-msgstr ""
-
-#: info/doc.c:82 info/session.c:3982
-msgid "Internally used by \\[universal-argument]"
-msgstr ""
-
-#: info/doc.c:86 info/echo-area.c:307
-msgid "Move to the start of this line"
-msgstr ""
-
-#: info/doc.c:87 info/echo-area.c:312
-msgid "Move to the end of this line"
-msgstr ""
-
-#: info/doc.c:90 info/echo-area.c:400
-msgid "Delete the character under the cursor"
-msgstr ""
-
-#: info/doc.c:91 info/echo-area.c:430
-msgid "Delete the character behind the cursor"
-msgstr ""
-
-#: info/doc.c:92 info/echo-area.c:451
-msgid "Cancel or quit operation"
-msgstr ""
-
-#: info/doc.c:93 info/echo-area.c:466
-msgid "Accept (or force completion of) this line"
-msgstr ""
-
-#: info/doc.c:94 info/echo-area.c:471
-msgid "Insert next character verbatim"
-msgstr ""
-
-#: info/doc.c:95 info/echo-area.c:479
-msgid "Insert this character"
-msgstr ""
-
-#: info/doc.c:96 info/echo-area.c:497
-msgid "Insert a TAB character"
-msgstr ""
-
-#. Transpose the characters at point. If point is at the end of the line,
-#. then transpose the characters before point.
-#: info/doc.c:97 info/echo-area.c:504
-msgid "Transpose characters at point"
-msgstr ""
-
-#: info/doc.c:98 info/echo-area.c:555
-msgid "Yank back the contents of the last kill"
-msgstr ""
-
-#. If the last command was yank, or yank_pop, and the text just before
-#. point is identical to the current kill item, then delete that text
-#. from the line, rotate the index down, and yank back some other text.
-#: info/doc.c:99 info/echo-area.c:575
-msgid "Yank back a previous kill"
-msgstr ""
-
-#. Delete the text from point to end of line.
-#: info/doc.c:100 info/echo-area.c:608
-msgid "Kill to the end of the line"
-msgstr ""
-
-#: info/doc.c:101 info/echo-area.c:621
-msgid "Kill to the beginning of the line"
-msgstr ""
-
-#. Delete from point to the end of the current word.
-#: info/doc.c:102 info/echo-area.c:633
-msgid "Kill the word following the cursor"
-msgstr ""
-
-#: info/doc.c:103 info/echo-area.c:652
-msgid "Kill the word preceding the cursor"
-msgstr ""
-
-#: info/doc.c:104 info/echo-area.c:916
-msgid "List possible completions"
-msgstr ""
-
-#: info/doc.c:105 info/echo-area.c:1090
-msgid "Insert completion"
-msgstr ""
-
-#. Scroll the "other" window. If there is a window showing completions, scroll
-#. that one, otherwise scroll the window which was active on entering the read
-#. function.
-#: info/doc.c:106 info/echo-area.c:1321
-msgid "Scroll the completions window"
-msgstr ""
-
-#. Commands found in "./infodoc.c".
-#: info/doc.c:108 info/infodoc.c:328
-msgid "Display help message"
-msgstr ""
-
-#. Show the Info help node. This means that the "info" file is installed
-#. where it can easily be found on your system.
-#: info/doc.c:109 info/infodoc.c:346
-msgid "Visit Info node `(info)Help'"
-msgstr ""
-
-#: info/doc.c:110 info/infodoc.c:470
-msgid "Print documentation for KEY"
-msgstr ""
-
-#: info/doc.c:111
-msgid "Show what to type to execute a given command"
-msgstr ""
-
-#. Commands found in "./m-x.c".
-#: info/doc.c:113 info/m-x.c:69
-msgid "Read the name of an Info command and describe it"
-msgstr ""
-
-#: info/doc.c:114 info/m-x.c:96
-msgid "Read a command name in the echo area and execute it"
-msgstr ""
-
-#: info/doc.c:115 info/m-x.c:150
-msgid "Set the height of the displayed window"
-msgstr ""
-
-#. Commands found in "./indices.c".
-#: info/doc.c:117 info/indices.c:175
-msgid "Look up a string in the index for this file"
-msgstr ""
-
-#: info/doc.c:118 info/indices.c:332
-msgid ""
-"Go to the next matching index item from the last `\\[index-search]' command"
-msgstr ""
-
-#: info/doc.c:119 info/indices.c:616
-msgid "Grovel all known info file's indices for a string and build a menu"
-msgstr ""
-
-#. Commands found in "./nodemenu.c".
-#: info/doc.c:121 info/nodemenu.c:217
-msgid "Make a window containing a menu of all of the currently visited nodes"
-msgstr ""
-
-#: info/doc.c:122 info/nodemenu.c:297
-msgid "Select a node which has been previously visited in a visible window"
-msgstr ""
-
-#. Commands found in "./footnotes.c".
-#: info/doc.c:124 info/footnotes.c:232
-msgid "Show the footnotes associated with this node in another window"
-msgstr ""
-
-#. Commands found in "./variables.c".
-#: info/doc.c:126 info/variables.c:77
-msgid "Explain the use of a variable"
-msgstr ""
-
-#: info/doc.c:127 info/variables.c:102
-msgid "Set the value of an Info variable"
-msgstr ""
-
-#: info/echo-area.c:562
-msgid "Kill ring is empty"
-msgstr ""
-
-#: info/echo-area.c:871
-msgid "Not complete"
-msgstr ""
-
-#: info/echo-area.c:929
-msgid "No completions"
-msgstr ""
-
-#: info/echo-area.c:933
-msgid "Sole completion"
-msgstr ""
-
-#: info/echo-area.c:942
-#, c-format
-msgid "There %s %d "
-msgstr ""
-
-#: info/echo-area.c:942
-msgid "is"
-msgstr ""
-
-#: info/echo-area.c:942
-msgid "are"
-msgstr ""
-
-#: info/echo-area.c:945
-#, c-format
-msgid "completion%s:\n"
-msgstr ""
-
-#: info/echo-area.c:1223
-msgid "Building completions..."
-msgstr ""
-
-#: info/footnotes.c:206
-msgid "Footnotes could not be displayed"
-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: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 ""
-
-#: 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 ""
-
-#: info/indices.c:533
-#, c-format
-msgid "Scanning indices of \"%s\"..."
-msgstr ""
-
-#: info/indices.c:620
-msgid "Index apropos: "
-msgstr ""
-
-#: info/indices.c:650
-#, c-format
-msgid ""
-"\n"
-"* Menu: Nodes whoses indices contain \"%s\":\n"
-msgstr ""
-
-#: info/info.c:347
-msgid "no entries found\n"
-msgstr ""
-
-#: info/info.c:390
-msgid "There is no menu in this node."
-msgstr ""
-
-#: info/info.c:421
-#, c-format
-msgid "There is no menu item \"%s\" in this node."
-msgstr ""
-
-#: info/info.c:485
-#, c-format
-msgid "Unable to find the node referenced by \"%s\"."
-msgstr ""
-
-#: info/info.c:595
-msgid ""
-"Usage: info [-d dir-path] [-f info-file] [-o output-file] [-n node-name]..."
-msgstr ""
-
-#: info/info.c:596
-msgid ""
-" [--directory dir-path] [--file info-file] [--node node-name]..."
-msgstr ""
-
-#: info/info.c:597
-msgid " [--help] [--output output-file] [--subnodes] [--version]"
-msgstr ""
-
-#: info/info.c:598
-msgid " [--dribble dribble-file] [--restore from-file]"
-msgstr ""
-
-#: info/info.c:599
-msgid " [menu-selection ...]"
-msgstr ""
-
-#: info/info.c:607
-msgid ""
-"Here is a quick description of Info's options. For a more complete\n"
-"description of how to use Info, type `info info options'.\n"
-"\n"
-" --directory DIR Add DIR to INFOPATH.\n"
-" --dribble FILENAME Remember user keystrokes in FILENAME.\n"
-" --file FILENAME Specify Info file to visit.\n"
-" --node NODENAME Specify nodes in first visited Info file.\n"
-" --output FILENAME Output selected nodes to FILENAME.\n"
-" --restore FILENAME Read initial keystrokes from FILENAME.\n"
-" --subnodes Recursively output menu items.\n"
-" --help Get this help message.\n"
-" --version Display Info's version information.\n"
-"\n"
-"Remaining arguments to Info are treated as the names of menu\n"
-"items in the initial node visited. You can easily move to the\n"
-"node of your choice by specifying the menu names which describe\n"
-"the path to that node. For example, `info emacs buffers'.\n"
-"\n"
-"Email bug reports to bug-texinfo@prep.ai.mit.edu."
-msgstr ""
-
-#: info/infodoc.c:50
-msgid "Basic Commands in Info Windows"
-msgstr ""
-
-#: info/infodoc.c:211
-msgid ""
-"The following commands can only be invoked via M-x:\n"
-"\n"
-msgstr ""
-
-#: info/infodoc.c:228
-msgid "--- Use `\\[history-node]' or `\\[kill-node]' to exit ---\n"
-msgstr ""
-
-#: info/infodoc.c:483
-#, c-format
-msgid "Describe key: %s"
-msgstr ""
-
-#: info/infodoc.c:492
-#, c-format
-msgid "ESC %s is undefined."
-msgstr ""
-
-#: info/infodoc.c:509
-#, c-format
-msgid "%s is undefined."
-msgstr ""
-
-#: info/infodoc.c:535
-#, c-format
-msgid "%s is defined to %s."
-msgstr ""
-
-#: info/infodoc.c:731
-msgid "Where is command: "
-msgstr ""
-
-#: info/infodoc.c:753
-#, c-format
-msgid "`%s' is not on any keys"
-msgstr ""
-
-#: info/infodoc.c:759
-#, c-format
-msgid "%s can only be invoked via %s."
-msgstr ""
-
-#: info/infodoc.c:762
-#, c-format
-msgid "%s can be invoked via %s."
-msgstr ""
-
-#: info/infodoc.c:766
-#, c-format
-msgid "There is no function named `%s'"
-msgstr ""
-
-#: info/m-x.c:73
-msgid "Describe command: "
-msgstr ""
-
-#: info/m-x.c:134
-msgid "Cannot execute an `echo-area' command here."
-msgstr ""
-
-#: info/m-x.c:163
-#, c-format
-msgid "Set screen height to (%d): "
-msgstr ""
-
-#: info/makedoc.c:126
-msgid ""
-" Source files groveled to make this file include:\n"
-"\n"
-msgstr ""
-
-#: info/makedoc.c:450
-#, c-format
-msgid "Couldn't manipulate the file %s.\n"
-msgstr ""
-
-#: info/nodemenu.c:28
-msgid ""
-"\n"
-"* Menu:\n"
-" (File)Node Lines Size Containing File\n"
-" ---------- ----- ---- ---------------"
-msgstr ""
-
-#: info/nodemenu.c:197
-msgid ""
-"Here is the menu of nodes you have recently visited.\n"
-"Select one from this menu, or use `\\[history-node]' in another window.\n"
-msgstr ""
-
-#: info/nodemenu.c:309
-msgid "Select visited node: "
-msgstr ""
-
-#: info/nodemenu.c:329 info/session.c:1996
-#, c-format
-msgid "The reference disappeared! (%s)."
-msgstr ""
-
-#: info/session.c:162
-#, c-format
-msgid ""
-"Welcome to Info version %s. \"\\[get-help-window]\" for help, "
-"\"\\[menu-item]\" for menu item."
-msgstr ""
-
-#: info/session.c:855
-msgid " times"
-msgstr ""
-
-#: info/session.c:857
-#, c-format
-msgid "%d times"
-msgstr ""
-
-#: info/session.c:895
-msgid "No \"Next\" pointer for this node."
-msgstr ""
-
-#: info/session.c:898
-msgid "Following \"Next\" node..."
-msgstr ""
-
-#: info/session.c:899 info/session.c:927 info/session.c:999
-#: info/session.c:1717
-msgid "Next"
-msgstr ""
-
-#: info/session.c:915
-msgid "Selecting first menu item..."
-msgstr ""
-
-#: info/session.c:926
-msgid "Selecting \"Next\" node..."
-msgstr ""
-
-#: info/session.c:950 info/session.c:1063 info/session.c:1733
-msgid "Up"
-msgstr ""
-
-#: info/session.c:1020
-msgid "No more nodes."
-msgstr ""
-
-#: info/session.c:1044
-msgid "No \"Prev\" for this node."
-msgstr ""
-
-#. Move to the previous node. If this node now contains a menu,
-#. and we have not inhibited movement to it, move to the node
-#. corresponding to the last menu item.
-#: info/session.c:1047 info/session.c:1100
-msgid "Moving \"Prev\" in this window."
-msgstr ""
-
-#: info/session.c:1048 info/session.c:1101 info/session.c:1725
-msgid "Prev"
-msgstr ""
-
-#: info/session.c:1059
-msgid "No \"Prev\" or \"Up\" for this node."
-msgstr ""
-
-#: info/session.c:1062
-msgid "Moving \"Up\" in this window."
-msgstr ""
-
-#: info/session.c:1110
-msgid "Moving to \"Prev\"'s last menu item."
-msgstr ""
-
-#: info/session.c:1436
-msgid "Cannot delete a permanent window"
-msgstr ""
-
-#: info/session.c:1750 info/session.c:1768
-msgid "This window has no additional nodes"
-msgstr ""
-
-#: info/session.c:1813
-#, c-format
-msgid "There aren't %d items in this menu."
-msgstr ""
-
-#: info/session.c:1944
-#, c-format
-msgid "Menu item (%s): "
-msgstr ""
-
-#: info/session.c:1946
-msgid "Menu item: "
-msgstr ""
-
-#: info/session.c:1951
-#, c-format
-msgid "Follow xref (%s): "
-msgstr ""
-
-#: info/session.c:1953
-msgid "Follow xref: "
-msgstr ""
-
-#: info/session.c:2169 info/session.c:2173
-msgid "Goto Node: "
-msgstr ""
-
-#: info/session.c:2198
-msgid "Get Manpage: "
-msgstr ""
-
-#. Notice that the node "Top" is special, and doesn't have to
-#. be referenced.
-#: info/session.c:2230 makeinfo/makeinfo.c:5135 makeinfo/makeinfo.c:5218
-msgid "Top"
-msgstr ""
-
-#: info/session.c:2254
-#, c-format
-msgid "Kill node (%s): "
-msgstr ""
-
-#: info/session.c:2307
-#, c-format
-msgid "Cannot kill node `%s'"
-msgstr ""
-
-#: info/session.c:2317
-msgid "Cannot kill the last node"
-msgstr ""
-
-#: info/session.c:2419
-msgid "Find file: "
-msgstr ""
-
-#: info/session.c:2436
-#, c-format
-msgid "Cannot find \"%s\"."
-msgstr ""
-
-#: info/session.c:2483 info/session.c:2608
-#, c-format
-msgid "Could not create output file \"%s\"."
-msgstr ""
-
-#: info/session.c:2496 info/session.c:2625 info/session.c:2671
-msgid "Done."
-msgstr ""
-
-#: info/session.c:2553
-#, c-format
-msgid "Writing node \"(%s)%s\"..."
-msgstr ""
-
-#: info/session.c:2556
-#, c-format
-msgid "Writing node \"%s\"..."
-msgstr ""
-
-#: info/session.c:2654
-#, c-format
-msgid "Cannot open pipe to \"%s\"."
-msgstr ""
-
-#: info/session.c:2661
-#, c-format
-msgid "Printing node \"(%s)%s\"..."
-msgstr ""
-
-#: info/session.c:2664
-#, c-format
-msgid "Printing node \"%s\"..."
-msgstr ""
-
-#: info/session.c:2896
-#, c-format
-msgid "Searching subfile \"%s\"..."
-msgstr ""
-
-#: info/session.c:2966
-#, c-format
-msgid "%s for string [%s]: "
-msgstr ""
-
-#: info/session.c:2967
-msgid "Search backward"
-msgstr ""
-
-#: info/session.c:2967
-msgid "Search"
-msgstr ""
-
-#: info/session.c:2994
-msgid "Search failed."
-msgstr ""
-
-#: info/session.c:3120
-msgid "I-search backward: "
-msgstr ""
-
-#: info/session.c:3122
-msgid "I-search: "
-msgstr ""
-
-#: info/session.c:3147
-msgid "Failing "
-msgstr ""
-
-#: info/session.c:3512
-msgid "No cross references in this node."
-msgstr ""
-
-#: info/session.c:3627
-msgid "Quit"
-msgstr ""
-
-#: info/session.c:3728
-#, c-format
-msgid "Unknown command (%s)."
-msgstr ""
-
-#: info/session.c:3733
-msgid "\"\" is invalid"
-msgstr ""
-
-#: info/session.c:3735
-#, c-format
-msgid "\"%s\" is invalid"
-msgstr ""
-
-#: info/variables.c:40
-msgid "When \"On\", footnotes appear and disappear automatically"
-msgstr ""
-
-#: info/variables.c:44
-msgid "When \"On\", creating or deleting a window resizes other windows"
-msgstr ""
-
-#: info/variables.c:48
-msgid "When \"On\", flash the screen instead of ringing the bell"
-msgstr ""
-
-#: info/variables.c:52
-msgid "When \"On\", errors cause the bell to ring"
-msgstr ""
-
-#: info/variables.c:56
-msgid "When \"On\", Info garbage collects files which had to be uncompressed"
-msgstr ""
-
-#: info/variables.c:59
-msgid "When \"On\", the portion of the matched search string is highlighted"
-msgstr ""
-
-#: info/variables.c:63
-msgid "Controls what happens when scrolling is requested at the end of a node"
-msgstr ""
-
-#: info/variables.c:67
-msgid "The number lines to scroll when the cursor moves out of the window"
-msgstr ""
-
-#: info/variables.c:71
-msgid "When \"On\", Info accepts and displays ISO Latin characters"
-msgstr ""
-
-#. Get the variable's name.
-#: info/variables.c:83
-msgid "Describe variable: "
-msgstr ""
-
-#. Get the variable's name and value.
-#: info/variables.c:108
-msgid "Set variable: "
-msgstr ""
-
-#: info/variables.c:126
-#, c-format
-msgid "Set %s to value (%d): "
-msgstr ""
-
-#: info/variables.c:167
-#, c-format
-msgid "Set %s to value (%s): "
-msgstr ""
-
-#: info/window.c:1102
-msgid "--*** Tags out of Date ***"
-msgstr ""
-
-#. strlen (location_indicator).
-#. 10 for the decimal representation of the number of lines in this
-#. node, and the remainder of the text that can appear in the line.
-#: info/window.c:1113
-msgid "-----Info: (), lines ----, "
-msgstr ""
-
-#: info/window.c:1120
-#, c-format
-msgid "-%s---Info: %s, %d lines --%s--"
-msgstr ""
-
-#: info/window.c:1124
-#, c-format
-msgid "-%s%s-Info: (%s)%s, %d lines --%s--"
-msgstr ""
-
-#: info/window.c:1131
-#, c-format
-msgid " Subfile: %s"
-msgstr ""
-
-#: makeinfo/makeinfo.c:889
-#, c-format
-msgid "%s:%d: warning: "
-msgstr ""
-
-#: makeinfo/makeinfo.c:912
-msgid "Too many errors! Gave up.\n"
-msgstr ""
-
-#: makeinfo/makeinfo.c:971 makeinfo/makeinfo.c:996 makeinfo/makeinfo.c:1064
-#, c-format
-msgid "%s: %s arg must be numeric, not `%s'.\n"
-msgstr ""
-
-#: makeinfo/makeinfo.c:985
-#, c-format
-msgid "Couldn't open macro expansion output `%s'"
-msgstr ""
-
-#: makeinfo/makeinfo.c:988
-msgid "Cannot specify more than one macro expansion output"
-msgstr ""
-
-#: makeinfo/makeinfo.c:1032
-#, c-format
-msgid "%s: --paragraph-indent arg must be numeric/`none'/`asis', not `%s'.\n"
-msgstr ""
-
-#: makeinfo/makeinfo.c:1075
-#, c-format
-msgid "%s: --footnote-style arg must be `separate' or `end', not `%s'.\n"
-msgstr ""
-
-#: makeinfo/makeinfo.c:1085 util/install-info.c:522 util/texindex.c:348
-msgid ""
-"Copyright (C) 1996 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."
-msgstr ""
-
-#: makeinfo/makeinfo.c:1105
-#, c-format
-msgid "%s: missing file argument.\n"
-msgstr ""
-
-#: makeinfo/makeinfo.c:1146
-#, c-format
-msgid "makeinfo (GNU %s %s) %d.%d\n"
-msgstr ""
-
-#: makeinfo/makeinfo.c:1158
-#, c-format
-msgid "Try `%s --help' for more information.\n"
-msgstr ""
-
-#: makeinfo/makeinfo.c:1160
-#, c-format
-msgid ""
-"Usage: %s [OPTION]... TEXINFO-FILE...\n"
-"\n"
-"Translate Texinfo source documentation to a format suitable for reading\n"
-"with GNU Info.\n"
-"\n"
-"Options:\n"
-"-D VAR define a variable, as with @set.\n"
-"-E MACRO-OFILE process macros only, output texinfo source.\n"
-"-I DIR append DIR to the @include directory search path.\n"
-"-P DIR prepend DIR to the @include directory search path.\n"
-"-U VAR undefine a variable, as with @clear.\n"
-"--error-limit NUM quit after NUM errors (default %d).\n"
-"--fill-column NUM break 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\n"
-" the node in which they are defined (the default).\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"
-"--no-split suppress splitting of large files.\n"
-"--no-headers suppress node separators and Node: Foo headers.\n"
-"--output FILE, -o FILE output to FILE, and ignore any @setfilename.\n"
-"--paragraph-indent VAL indent paragraphs with VAL spaces (default %d).\n"
-" if VAL is `none', do not indent; if VAL is `asis',\n"
-" preserve any existing indentation.\n"
-"--reference-limit NUM complain about at most NUM references (default %d).\n"
-"--verbose report about what is being done.\n"
-"--version display version information and exit.\n"
-"\n"
-"Email bug reports to bug-texinfo@prep.ai.mit.edu.\n"
-msgstr ""
-
-#: makeinfo/makeinfo.c:1545
-#, c-format
-msgid "%s: getwd: %s, %s\n"
-msgstr ""
-
-#: makeinfo/makeinfo.c:1741
-#, c-format
-msgid "Expected `%s'"
-msgstr ""
-
-#: makeinfo/makeinfo.c:2072
-#, c-format
-msgid "No `%s' found in `%s'"
-msgstr ""
-
-#: makeinfo/makeinfo.c:2122
-#, c-format
-msgid "%s: Skipping macro expansion to stdout as Info output is going there.\n"
-msgstr ""
-
-#: makeinfo/makeinfo.c:2141
-#, c-format
-msgid "Making %s file `%s' from `%s'.\n"
-msgstr ""
-
-#: makeinfo/makeinfo.c:2171
-#, c-format
-msgid "This is Info file %s, produced by Makeinfo version %d.%d"
-msgstr ""
-
-#: makeinfo/makeinfo.c:2173
-#, c-format
-msgid " from the input file %s.\n"
-msgstr ""
-
-#: makeinfo/makeinfo.c:2192
-#, c-format
-msgid ""
-"%s: Removing macro output file `%s' due to errors; use --force to preserve.\n"
-msgstr ""
-
-#. If there were errors, and no --force, remove the output.
-#: makeinfo/makeinfo.c:2224
-#, c-format
-msgid "%s: Removing output file `%s' due to errors; use --force to preserve.\n"
-msgstr ""
-
-#. Special case. I'm not supposed to see this character by itself.
-#. If I do, it means there is a syntax error in the input text.
-#. Report the error here, but remember this brace on the stack so
-#. you can ignore its partner.
-#: makeinfo/makeinfo.c:2364 makeinfo/makeinfo.c:7624
-#, c-format
-msgid "Misplaced %c"
-msgstr ""
-
-#: makeinfo/makeinfo.c:2451
-#, c-format
-msgid "Unknown command `%s'"
-msgstr ""
-
-#: makeinfo/makeinfo.c:2471
-msgid "NO_NAME!"
-msgstr ""
-
-#: makeinfo/makeinfo.c:2485
-#, c-format
-msgid "%c%s expected `{...}'"
-msgstr ""
-
-#: makeinfo/makeinfo.c:2518
-msgid "Unmatched }"
-msgstr ""
-
-#: makeinfo/makeinfo.c:2566
-#, c-format
-msgid "%c%s missing close brace"
-msgstr ""
-
-#: makeinfo/makeinfo.c:3362
-msgid "Broken-Type in insertion_type_pname"
-msgstr ""
-
-#: makeinfo/makeinfo.c:3428
-msgid "Enumeration stack overflow"
-msgstr ""
-
-#: makeinfo/makeinfo.c:3460
-#, c-format
-msgid "lettering overflow, restarting at %c"
-msgstr ""
-
-#: makeinfo/makeinfo.c:3499
-msgid "* Menu:\n"
-msgstr ""
-
-#: makeinfo/makeinfo.c:3583
-#, c-format
-msgid "%s requires an argument: the formatter for %citem"
-msgstr ""
-
-#: makeinfo/makeinfo.c:3687
-#, c-format
-msgid "`%cend' expected `%s', but saw `%s'"
-msgstr ""
-
-#: makeinfo/makeinfo.c:3800
-#, c-format
-msgid "No matching `%cend %s'"
-msgstr ""
-
-#: makeinfo/makeinfo.c:3939
-#, c-format
-msgid "How did @%s end up in cm_special_char?\n"
-msgstr ""
-
-#. This error message isn't perfect if the argument is multiple
-#. characters, but it doesn't seem worth getting right.
-#: makeinfo/makeinfo.c:3953
-#, c-format
-msgid "%c%s expects `i' or `j' as argument, not `%c'"
-msgstr ""
-
-#: makeinfo/makeinfo.c:3957
-#, c-format
-msgid "%c%s expects a single character `i' or `j' as argument"
-msgstr ""
-
-#: makeinfo/makeinfo.c:3969
-msgid "January"
-msgstr ""
-
-#: makeinfo/makeinfo.c:3969
-msgid "February"
-msgstr ""
-
-#: makeinfo/makeinfo.c:3969
-msgid "March"
-msgstr ""
-
-#: makeinfo/makeinfo.c:3969
-msgid "April"
-msgstr ""
-
-#: makeinfo/makeinfo.c:3969
-msgid "May"
-msgstr ""
-
-#: makeinfo/makeinfo.c:3970
-msgid "June"
-msgstr ""
-
-#: makeinfo/makeinfo.c:3970
-msgid "July"
-msgstr ""
-
-#: makeinfo/makeinfo.c:3970
-msgid "August"
-msgstr ""
-
-#: makeinfo/makeinfo.c:3970
-msgid "September"
-msgstr ""
-
-#: makeinfo/makeinfo.c:3970
-msgid "October"
-msgstr ""
-
-#: makeinfo/makeinfo.c:3971
-msgid "November"
-msgstr ""
-
-#: makeinfo/makeinfo.c:3971
-msgid "December"
-msgstr ""
-
-#: makeinfo/makeinfo.c:3976
-#, c-format
-msgid "%d %s %d"
-msgstr ""
-
-#: makeinfo/makeinfo.c:4029
-#, c-format
-msgid "%c%s expects a single character as an argument"
-msgstr ""
-
-#: makeinfo/makeinfo.c:4143
-#, c-format
-msgid "%c%s is obsolete"
-msgstr ""
-
-#: makeinfo/makeinfo.c:4315
-#, c-format
-msgid "There already is a node having %ctop as a section"
-msgstr ""
-
-#: makeinfo/makeinfo.c:4327
-#, c-format
-msgid "Here is the %ctop node"
-msgstr ""
-
-#: makeinfo/makeinfo.c:4346
-#, c-format
-msgid "%ctop used before %cnode, defaulting to %s"
-msgstr ""
-
-#: makeinfo/makeinfo.c:4421
-#, c-format
-msgid "%c%s is obsolete; use %c%s instead"
-msgstr ""
-
-#: makeinfo/makeinfo.c:4670
-#, c-format
-msgid "Node `%s' multiply defined (line %d is first definition at)"
-msgstr ""
-
-#: makeinfo/makeinfo.c:4743
-#, c-format
-msgid "Formatting node %s...\n"
-msgstr ""
-
-#: makeinfo/makeinfo.c:4792
-#, c-format
-msgid "Node `%s' requires a sectioning command (e.g. %c%s)"
-msgstr ""
-
-#: makeinfo/makeinfo.c:5075
-#, c-format
-msgid "Node `%s''s Next field not pointed back to"
-msgstr ""
-
-#: makeinfo/makeinfo.c:5080
-#, c-format
-msgid "This node (`%s') is the one with the bad `Prev'"
-msgstr ""
-
-#: makeinfo/makeinfo.c:5120
-#, c-format
-msgid "Node `%s's Prev field not pointed back to"
-msgstr ""
-
-#: makeinfo/makeinfo.c:5124
-#, c-format
-msgid "This node (`%s') has the bad Next"
-msgstr ""
-
-#: makeinfo/makeinfo.c:5136
-#, c-format
-msgid "Node `%s' missing Up field"
-msgstr ""
-
-#: makeinfo/makeinfo.c:5176
-#, c-format
-msgid "`%s' has an Up field of `%s', but `%s' has no menu item for `%s'"
-msgstr ""
-
-#: makeinfo/makeinfo.c:5207
-#, c-format
-msgid "node `%s' has been referenced %d times"
-msgstr ""
-
-#: makeinfo/makeinfo.c:5219
-#, c-format
-msgid "unreferenced node `%s'"
-msgstr ""
-
-#: makeinfo/makeinfo.c:5246
-#, c-format
-msgid "%s reference to nonexistent node `%s'"
-msgstr ""
-
-#: makeinfo/makeinfo.c:5658 makeinfo/makeinfo.c:5670
-#, c-format
-msgid "%cmenu seen before first node"
-msgstr ""
-
-#: makeinfo/makeinfo.c:5659 makeinfo/makeinfo.c:5671
-msgid "creating `Top' node"
-msgstr ""
-
-#: makeinfo/makeinfo.c:5784
-#, c-format
-msgid "`.' or `,' must follow cross reference, not %c"
-msgstr ""
-
-#: makeinfo/makeinfo.c:5952
-#, c-format
-msgid "@image file `%s' unreadable: %s"
-msgstr ""
-
-#: makeinfo/makeinfo.c:5956
-msgid "@image missing filename argument"
-msgstr ""
-
-#: makeinfo/makeinfo.c:6057
-#, c-format
-msgid "%s requires letter or digit"
-msgstr ""
-
-#: makeinfo/makeinfo.c:6142
-#, c-format
-msgid "Unmatched `%c%s'"
-msgstr ""
-
-#: makeinfo/makeinfo.c:6149
-#, c-format
-msgid "`%c%s' needs something after it"
-msgstr ""
-
-#: makeinfo/makeinfo.c:6155
-#, c-format
-msgid "Bad argument to `%s', `%s', using `%s'"
-msgstr ""
-
-#: makeinfo/makeinfo.c:6328
-#, c-format
-msgid "{No Value For \"%s\"}"
-msgstr ""
-
-#: makeinfo/makeinfo.c:6378
-#, c-format
-msgid "%c%s requires a name"
-msgstr ""
-
-#: makeinfo/makeinfo.c:6486
-#, c-format
-msgid "Reached eof before matching @end %s"
-msgstr ""
-
-#: makeinfo/makeinfo.c:6715
-#, c-format
-msgid "The `%c%s' command is meaningless within a `@%s' block"
-msgstr ""
-
-#: makeinfo/makeinfo.c:6724
-#, c-format
-msgid "%citemx is not meaningful inside of a `%s' block"
-msgstr ""
-
-#: makeinfo/makeinfo.c:6837
-#, c-format
-msgid "%c%s found outside of an insertion block"
-msgstr ""
-
-#: makeinfo/makeinfo.c:6928
-#, c-format
-msgid "Missing `}' in %cdef arg"
-msgstr ""
-
-#: makeinfo/makeinfo.c:7137 makeinfo/makeinfo.c:7157
-msgid "Function"
-msgstr ""
-
-#: makeinfo/makeinfo.c:7141
-msgid "Macro"
-msgstr ""
-
-#: makeinfo/makeinfo.c:7145
-msgid "Special Form"
-msgstr ""
-
-#: makeinfo/makeinfo.c:7149 makeinfo/makeinfo.c:7161
-msgid "Variable"
-msgstr ""
-
-#: makeinfo/makeinfo.c:7153
-msgid "User Option"
-msgstr ""
-
-#: makeinfo/makeinfo.c:7165
-msgid "Instance Variable"
-msgstr ""
-
-#: makeinfo/makeinfo.c:7169 makeinfo/makeinfo.c:7173
-msgid "Method"
-msgstr ""
-
-#: makeinfo/makeinfo.c:7330
-#, c-format
-msgid "Must be in a `%s' insertion in order to use `%s'x"
-msgstr ""
-
-#: makeinfo/makeinfo.c:7402
-#, c-format
-msgid "%csp requires a positive numeric argument"
-msgstr ""
-
-#: makeinfo/makeinfo.c:7645
-msgid "asis"
-msgstr ""
-
-#: makeinfo/makeinfo.c:7647
-msgid "none"
-msgstr ""
-
-#: makeinfo/makeinfo.c:7669
-#, c-format
-msgid "Bad argument to %c%s"
-msgstr ""
-
-#: makeinfo/makeinfo.c:7961
-#, c-format
-msgid "Unknown index `%s'"
-msgstr ""
-
-#: makeinfo/makeinfo.c:8026
-#, c-format
-msgid "Index `%s' already exists"
-msgstr ""
-
-#: makeinfo/makeinfo.c:8057
-#, c-format
-msgid "Unknown index `%s' and/or `%s' in @synindex"
-msgstr ""
-
-#: makeinfo/makeinfo.c:8246
-#, c-format
-msgid "Unknown index `%s' in @printindex"
-msgstr ""
-
-#: makeinfo/makeinfo.c:8261
-msgid ""
-"* Menu:\n"
-"\n"
-msgstr ""
-
-#: makeinfo/makeinfo.c:8448
-#, c-format
-msgid "`%c%s' needs an argument `{...}', not just `%s'"
-msgstr ""
-
-#: makeinfo/makeinfo.c:8463
-#, c-format
-msgid "No closing brace for footnote `%s'"
-msgstr ""
-
-#: makeinfo/makeinfo.c:8502
-msgid "Footnote defined without parent node"
-msgstr ""
-
-#: makeinfo/makeinfo.c:8534
-msgid "-Footnotes"
-msgstr ""
-
-#: makeinfo/makeinfo.c:8589
-msgid ""
-"---------- Footnotes ----------\n"
-"\n"
-msgstr ""
-
-#: makeinfo/makeinfo.c:8685
-#, c-format
-msgid "macro `%s' previously defined"
-msgstr ""
-
-#: makeinfo/makeinfo.c:8689
-#, c-format
-msgid "here is the previous definition of `%s'"
-msgstr ""
-
-#: makeinfo/makeinfo.c:8903
-#, c-format
-msgid "Macro `%s' called with too many args"
-msgstr ""
-
-#: makeinfo/makeinfo.c:9055
-#, c-format
-msgid "%cend macro not found"
-msgstr ""
-
-#: makeinfo/makeinfo.c:9095
-#, c-format
-msgid "%cquote-arg only useful when the macro takes a single argument"
-msgstr ""
-
-#: makeinfo/multi.c:206
-#, c-format
-msgid "ignoring stray text `%s' after @multitable"
-msgstr ""
-
-#: makeinfo/multi.c:277
-#, c-format
-msgid "Too many columns in multitable item (max %d)"
-msgstr ""
-
-#. impossible, I think.
-#: makeinfo/multi.c:304
-msgid "multitable item not in active multitable"
-msgstr ""
-
-#: makeinfo/multi.c:313
-#, c-format
-msgid "Cannot select column #%d in multitable"
-msgstr ""
-
-#: makeinfo/multi.c:404
-msgid "ignoring @tab outside of multitable"
-msgstr ""
-
-#: makeinfo/multi.c:428
-msgid "** Multicolumn output from last row:\n"
-msgstr ""
-
-#: makeinfo/multi.c:431
-#, c-format
-msgid "* column #%d: output = %s\n"
-msgstr ""
-
-#: util/install-info.c:119 util/install-info.c:132
-msgid "virtual memory exhausted"
-msgstr ""
-
-#: util/install-info.c:188
-#, c-format
-msgid "%s: warning: "
-msgstr ""
-
-#: util/install-info.c:209
-#, c-format
-msgid " for %s"
-msgstr ""
-
-#: util/install-info.c:278
-#, c-format
-msgid "\tTry `%s --help' for a complete list of options.\n"
-msgstr ""
-
-#: util/install-info.c:286
-#, c-format
-msgid ""
-"%s [OPTION]... [INFO-FILE [DIR-FILE]]\n"
-" Install INFO-FILE in the Info directory file DIR-FILE.\n"
-"\n"
-"Options:\n"
-"--delete Delete existing entries in INFO-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"
-"\n"
-"Email bug reports to bug-texinfo@prep.ai.mit.edu.\n"
-msgstr ""
-
-#: util/install-info.c:334
-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"
-"File: dir Node: Top This 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:357
-#, c-format
-msgid "%s: could not read (%s) and could not create (%s)\n"
-msgstr ""
-
-#: util/install-info.c:456 util/install-info.c:466
-#, c-format
-msgid "%s: Specify the Info directory only once.\n"
-msgstr ""
-
-#: util/install-info.c:494
-#, c-format
-msgid "%s: Specify the Info file only once.\n"
-msgstr ""
-
-#: util/install-info.c:521
-#, c-format
-msgid "install-info (GNU %s) %s\n"
-msgstr ""
-
-#: util/install-info.c:541
-#, c-format
-msgid "excess command line argument `%s'"
-msgstr ""
-
-#: util/install-info.c:545
-msgid "No input file specified; try --help for more information."
-msgstr ""
-
-#: util/install-info.c:547
-msgid "No dir file specified; try --help for more information."
-msgstr ""
-
-#: util/install-info.c:599 util/install-info.c:622
-msgid "START-INFO-DIR-ENTRY without matching END-INFO-DIR-ENTRY"
-msgstr ""
-
-#: util/install-info.c:618
-msgid "END-INFO-DIR-ENTRY without matching START-INFO-DIR-ENTRY"
-msgstr ""
-
-#. No need to abort here, the original info file may not have
-#. the requisite Texinfo commands. This is not something an
-#. installer should have to correct (it's a problem for the
-#. maintainer), and there's no need to cause subsequent parts of
-#. `make install' to fail.
-#: util/install-info.c:632
-#, c-format
-msgid "no info dir entry in `%s'"
-msgstr ""
-
-#: util/install-info.c:843
-#, c-format
-msgid "menu item `%s' already exists, for file `%s'"
-msgstr ""
-
-#: util/install-info.c:866
-#, c-format
-msgid "no entries found for `%s'; nothing deleted"
-msgstr ""
-
-#: util/texindex.c:263
-msgid "keep temporary files around after processing"
-msgstr ""
-
-#: util/texindex.c:265
-msgid "do not keep temporary files around after processing (default)"
-msgstr ""
-
-#: util/texindex.c:267
-msgid "send output to FILE"
-msgstr ""
-
-#: util/texindex.c:269
-msgid "display version information and exit"
-msgstr ""
-
-#: util/texindex.c:271
-msgid "display this help and exit"
-msgstr ""
-
-#: util/texindex.c:282
-#, c-format
-msgid "Usage: %s [OPTION]... FILE...\n"
-msgstr ""
-
-#: util/texindex.c:283
-msgid "Generate a sorted index for each TeX output FILE.\n"
-msgstr ""
-
-#. Avoid trigraph nonsense.
-#: util/texindex.c:285
-msgid "Usually FILE... is `foo.??' for a document `foo.texi'.\n"
-msgstr ""
-
-#: util/texindex.c:286
-msgid ""
-"\n"
-"Options:\n"
-msgstr ""
-
-#: util/texindex.c:300
-msgid ""
-"\n"
-"Email bug reports to bug-texinfo@prep.ai.mit.edu."
-msgstr ""
-
-#: util/texindex.c:347
-#, c-format
-msgid "texindex (GNU %s %s) 2.1\n"
-msgstr ""
-
-#: util/texindex.c:926 util/texindex.c:960 util/texindex.c:1036
-#: util/texindex.c:1064
-#, c-format
-msgid "%s: not a texinfo index file"
-msgstr ""
-
-#: util/texindex.c:1021
-#, c-format
-msgid "failure reopening %s"
-msgstr ""
-
-#: util/texindex.c:1334
-#, c-format
-msgid "entry %s follows an entry with a secondary name"
-msgstr ""
-
-#: util/texindex.c:1672
-#, c-format
-msgid "%s; for file `%s'.\n"
-msgstr ""
-
-#: util/texindex.c:1733
-#, c-format
-msgid "Virtual memory exhausted in %s ()! Needed %d bytes."
-msgstr ""
diff --git a/texinfo/testsuite/ChangeLog b/texinfo/testsuite/ChangeLog
deleted file mode 100644
index 72366e2db68..00000000000
--- a/texinfo/testsuite/ChangeLog
+++ /dev/null
@@ -1,37 +0,0 @@
-Thu Oct 3 15:31:09 1996 Jason Molenda (crash@godzilla.cygnus.co.jp)
-
- * Makefile.in (clean): Move config.log to distclean.
-
-Wed Oct 2 16:01:58 1996 Jason Molenda (crash@godzilla.cygnus.co.jp)
-
- * configure.in: Switch to autoconf configure.in
- * configure: New.
- * Makefile.in: Use autoconf-substituted values.
- (clean): Remove config.log.
- (distclean): Remove config.cache.
-
-Tue May 17 15:49:09 1994 Bill Cox (bill@rtl.cygnus.com)
-
- * config/unix.exp: Replace error proc calls with perror calls.
-
-Mon Apr 11 17:37:09 1994 Bill Cox (bill@rtl.cygnus.com)
-
- * Makefile.in (EXPECT, RUNTEST): Set these for the check goal.
-
-Mon Apr 11 10:31:00 1994 Bill Cox (bill@rtl.cygnus.com)
-
- * Makefile.in (check): Set TCL_LIBRARY for runtest.
-
-Fri Jun 18 23:16:04 1993 Jim Kingdon (kingdon@lioth.cygnus.com)
-
- * makeinfo.0/atnode.exp, text/atnode.texi: Add test for at sign
- in node name.
-
-Wed May 19 13:02:59 1993 Jim Kingdon (kingdon@cygnus.com)
-
- * makeinfo.0/conditions.exp, text/conditions.texi: Add test for bug
- currently being worked around in GDB manual.
-
-May 1993 Roland Pesch (pesch@cygnus.com)
-
- * New directory.
diff --git a/texinfo/testsuite/Makefile.in b/texinfo/testsuite/Makefile.in
deleted file mode 100644
index 4920a6290c0..00000000000
--- a/texinfo/testsuite/Makefile.in
+++ /dev/null
@@ -1,100 +0,0 @@
-# Makefile for regression testing GNU texinfo.
-# Copyright (C) 1987, 88, 90, 91, 92, 93, 1994 Free Software Foundation, Inc.
-
-#This file is part of GNU texinfo.
-
-#texinfo is free software; you can redistribute it and/or modify
-#it under the terms of the GNU General Public License as published by
-#the Free Software Foundation; either version 2, or (at your option)
-#any later version.
-
-#texinfo is distributed in the hope that it will be useful,
-#but WITHOUT ANY WARRANTY; without even the implied warranty of
-#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-#GNU General Public License for more details.
-
-#You should have received a copy of the GNU General Public License
-#along with GNU CC; see the file COPYING. If not, write to
-#the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-srcdir = @srcdir@
-VPATH = @srcdir@
-
-prefix = @prefix@
-
-exec_prefix = @exec_prefix@
-bindir = @bindir@
-libdir = @libdir@
-tooldir = $(libdir)/$(target_alias)
-
-datadir = @datadir@/deja-gnu
-
-EXPECT = `if [ -f $${rootme}/../../expect/expect ] ; \
- then echo $${rootme}/../../expect/expect ; \
- else echo expect; fi`
-
-RUNTEST = `if [ -f ${srcdir}/../../dejagnu/runtest ] ; \
- then echo ${srcdir}/../../dejagnu/runtest ; \
- else echo runtest ; fi`
-RUNTESTFLAGS =
-FLAGS_TO_PASS =
-
-#### host, target, and site specific Makefile frags come in here.
-
-all:
-
-info:
-
-install-info:
-
-check: site.exp all
- rootme=`pwd`; export rootme; \
- srcdir=${srcdir} ; export srcdir ; \
- EXPECT=${EXPECT} ; export EXPECT ; \
- if [ -f $${rootme}/../../expect/expect ] ; then \
- TCL_LIBRARY=$${srcdir}/../../tcl/library ; \
- export TCL_LIBRARY ; fi ; \
- $(RUNTEST) $(RUNTESTFLAGS) $(FLAGS_TO_PASS) --tool makeinfo \
- --srcdir $(srcdir) --target $(target_canonical)
-
-site.exp: ./config.status Makefile
- @echo "Making a new config file..."
- -@rm -f ./tmp?
- @touch site.exp
-
- -@mv site.exp site.bak
- @echo "## these variables are automatically generated by make ##" > ./tmp0
- @echo "# Do not edit here. If you wish to override these values" >> ./tmp0
- @echo "# add them to the last section" >> ./tmp0
- @echo "set host_os ${host_os}" >> ./tmp0
- @echo "set host_alias ${host_alias}" >> ./tmp0
- @echo "set host_cpu ${host_cpu}" >> ./tmp0
- @echo "set host_vendor ${host_vendor}" >> ./tmp0
- @echo "set target_os ${target_os}" >> ./tmp0
- @echo "set target_alias ${target_alias}" >> ./tmp0
- @echo "set target_cpu ${target_cpu}" >> ./tmp0
- @echo "set target_vendor ${target_vendor}" >> ./tmp0
- @echo "set host_triplet ${host_canonical}" >> ./tmp0
- @echo "set target_triplet ${target_canonical}" >> ./tmp0
- @echo "set tool binutils" >> ./tmp0
- @echo "set srcdir ${srcdir}" >> ./tmp0
- @echo "set objdir `pwd`" >> ./tmp0
- @echo "set MAKEINFO makeinfo" >> ./tmp0
- @echo "## All variables above are generated by configure. Do Not Edit ##" >> ./tmp0
- @cat ./tmp0 > site.exp
- @cat site.bak | sed \
- -e '1,/^## All variables above are.*##/ d' >> site.exp
- -@rm -f ./tmp?
-
-install:
-uninstall:
-
-clean:
- -rm -f *~ */*~ core *.info* *.log *.sum *.plog *.psum
-
-distclean: clean
- -rm -f Makefile config.status site.exp config.cache config.log
-
-Makefile : $(srcdir)/Makefile.in $(host_makefile_frag) $(target_makefile_frag)
- $(SHELL) ./config.status
-
diff --git a/texinfo/testsuite/config/unix.exp b/texinfo/testsuite/config/unix.exp
deleted file mode 100644
index 12b38ba0ec6..00000000000
--- a/texinfo/testsuite/config/unix.exp
+++ /dev/null
@@ -1,29 +0,0 @@
-load_lib utils.exp ;# Get the file of utilities for Texinfo tests
-
-default MAKEINFO makeinfo ;# ensure Tcl var MAKEINFO has value
-
-# Ensure we can execute this tool
-if [is_executable $MAKEINFO] then {
- verbose "$MAKEINFO is executable\n" 1
-} else {
- perror "$MAKEINFO: cannot execute\n"
- exit 1 ;# no point in running any makeinfo tests
-}
-
-# makeinfo_start undefined by choice;
-# 1) it makes it clearer where the output is to start
-# $MAKEINFO directly with `catch' from each test case,
-# and
-# 2) this takes no more lines than it would to call makeinfo_start
-
-proc makeinfo_exit {} {}
-
-proc makeinfo_version {} {
- global MAKEINFO
- set tmp [ exec $MAKEINFO --version ]
- regexp "version.*$" $tmp vn ;# "vn" undef if pattern not found
- if [info exists vn] then {
- clone_output "[which $MAKEINFO] $vn\n"
- }
-}
-
diff --git a/texinfo/testsuite/configure b/texinfo/testsuite/configure
deleted file mode 100755
index 48290d071e2..00000000000
--- a/texinfo/testsuite/configure
+++ /dev/null
@@ -1,772 +0,0 @@
-#! /bin/sh
-
-# Guess values for system-dependent variables and create Makefiles.
-# Generated automatically using autoconf version 2.12.1
-# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc.
-#
-# This configure script is free software; the Free Software Foundation
-# gives unlimited permission to copy, distribute and modify it.
-
-# Defaults:
-ac_help=
-ac_default_prefix=/usr/local
-# Any additions from configure.in:
-
-# Initialize some variables set by options.
-# The variables have the same names as the options, with
-# dashes changed to underlines.
-build=NONE
-cache_file=./config.cache
-exec_prefix=NONE
-host=NONE
-no_create=
-nonopt=NONE
-no_recursion=
-prefix=NONE
-program_prefix=NONE
-program_suffix=NONE
-program_transform_name=s,x,x,
-silent=
-site=
-srcdir=
-target=NONE
-verbose=
-x_includes=NONE
-x_libraries=NONE
-bindir='${exec_prefix}/bin'
-sbindir='${exec_prefix}/sbin'
-libexecdir='${exec_prefix}/libexec'
-datadir='${prefix}/share'
-sysconfdir='${prefix}/etc'
-sharedstatedir='${prefix}/com'
-localstatedir='${prefix}/var'
-libdir='${exec_prefix}/lib'
-includedir='${prefix}/include'
-oldincludedir='/usr/include'
-infodir='${prefix}/info'
-mandir='${prefix}/man'
-
-# Initialize some other variables.
-subdirs=
-MFLAGS= MAKEFLAGS=
-SHELL=${CONFIG_SHELL-/bin/sh}
-# Maximum number of lines to put in a shell here document.
-ac_max_here_lines=12
-
-ac_prev=
-for ac_option
-do
-
- # If the previous option needs an argument, assign it.
- if test -n "$ac_prev"; then
- eval "$ac_prev=\$ac_option"
- ac_prev=
- continue
- fi
-
- case "$ac_option" in
- -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
- *) ac_optarg= ;;
- esac
-
- # Accept the important Cygnus configure options, so we can diagnose typos.
-
- case "$ac_option" in
-
- -bindir | --bindir | --bindi | --bind | --bin | --bi)
- ac_prev=bindir ;;
- -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
- bindir="$ac_optarg" ;;
-
- -build | --build | --buil | --bui | --bu)
- ac_prev=build ;;
- -build=* | --build=* | --buil=* | --bui=* | --bu=*)
- build="$ac_optarg" ;;
-
- -cache-file | --cache-file | --cache-fil | --cache-fi \
- | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
- ac_prev=cache_file ;;
- -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
- | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
- cache_file="$ac_optarg" ;;
-
- -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
- ac_prev=datadir ;;
- -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
- | --da=*)
- datadir="$ac_optarg" ;;
-
- -disable-* | --disable-*)
- ac_feature=`echo $ac_option|sed -e 's/-*disable-//'`
- # Reject names that are not valid shell variable names.
- if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then
- { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
- fi
- ac_feature=`echo $ac_feature| sed 's/-/_/g'`
- eval "enable_${ac_feature}=no" ;;
-
- -enable-* | --enable-*)
- ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'`
- # Reject names that are not valid shell variable names.
- if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then
- { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
- fi
- ac_feature=`echo $ac_feature| sed 's/-/_/g'`
- case "$ac_option" in
- *=*) ;;
- *) ac_optarg=yes ;;
- esac
- eval "enable_${ac_feature}='$ac_optarg'" ;;
-
- -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
- | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
- | --exec | --exe | --ex)
- ac_prev=exec_prefix ;;
- -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
- | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
- | --exec=* | --exe=* | --ex=*)
- exec_prefix="$ac_optarg" ;;
-
- -gas | --gas | --ga | --g)
- # Obsolete; use --with-gas.
- with_gas=yes ;;
-
- -help | --help | --hel | --he)
- # Omit some internal or obsolete options to make the list less imposing.
- # This message is too long to be a string in the A/UX 3.1 sh.
- cat << EOF
-Usage: configure [options] [host]
-Options: [defaults in brackets after descriptions]
-Configuration:
- --cache-file=FILE cache test results in FILE
- --help print this message
- --no-create do not create output files
- --quiet, --silent do not print \`checking...' messages
- --version print the version of autoconf that created configure
-Directory and file names:
- --prefix=PREFIX install architecture-independent files in PREFIX
- [$ac_default_prefix]
- --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
- [same as prefix]
- --bindir=DIR user executables in DIR [EPREFIX/bin]
- --sbindir=DIR system admin executables in DIR [EPREFIX/sbin]
- --libexecdir=DIR program executables in DIR [EPREFIX/libexec]
- --datadir=DIR read-only architecture-independent data in DIR
- [PREFIX/share]
- --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc]
- --sharedstatedir=DIR modifiable architecture-independent data in DIR
- [PREFIX/com]
- --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var]
- --libdir=DIR object code libraries in DIR [EPREFIX/lib]
- --includedir=DIR C header files in DIR [PREFIX/include]
- --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include]
- --infodir=DIR info documentation in DIR [PREFIX/info]
- --mandir=DIR man documentation in DIR [PREFIX/man]
- --srcdir=DIR find the sources in DIR [configure dir or ..]
- --program-prefix=PREFIX prepend PREFIX to installed program names
- --program-suffix=SUFFIX append SUFFIX to installed program names
- --program-transform-name=PROGRAM
- run sed PROGRAM on installed program names
-EOF
- cat << EOF
-Host type:
- --build=BUILD configure for building on BUILD [BUILD=HOST]
- --host=HOST configure for HOST [guessed]
- --target=TARGET configure for TARGET [TARGET=HOST]
-Features and packages:
- --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
- --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
- --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
- --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
- --x-includes=DIR X include files are in DIR
- --x-libraries=DIR X library files are in DIR
-EOF
- if test -n "$ac_help"; then
- echo "--enable and --with options recognized:$ac_help"
- fi
- exit 0 ;;
-
- -host | --host | --hos | --ho)
- ac_prev=host ;;
- -host=* | --host=* | --hos=* | --ho=*)
- host="$ac_optarg" ;;
-
- -includedir | --includedir | --includedi | --included | --include \
- | --includ | --inclu | --incl | --inc)
- ac_prev=includedir ;;
- -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
- | --includ=* | --inclu=* | --incl=* | --inc=*)
- includedir="$ac_optarg" ;;
-
- -infodir | --infodir | --infodi | --infod | --info | --inf)
- ac_prev=infodir ;;
- -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
- infodir="$ac_optarg" ;;
-
- -libdir | --libdir | --libdi | --libd)
- ac_prev=libdir ;;
- -libdir=* | --libdir=* | --libdi=* | --libd=*)
- libdir="$ac_optarg" ;;
-
- -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
- | --libexe | --libex | --libe)
- ac_prev=libexecdir ;;
- -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
- | --libexe=* | --libex=* | --libe=*)
- libexecdir="$ac_optarg" ;;
-
- -localstatedir | --localstatedir | --localstatedi | --localstated \
- | --localstate | --localstat | --localsta | --localst \
- | --locals | --local | --loca | --loc | --lo)
- ac_prev=localstatedir ;;
- -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
- | --localstate=* | --localstat=* | --localsta=* | --localst=* \
- | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
- localstatedir="$ac_optarg" ;;
-
- -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
- ac_prev=mandir ;;
- -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
- mandir="$ac_optarg" ;;
-
- -nfp | --nfp | --nf)
- # Obsolete; use --without-fp.
- with_fp=no ;;
-
- -no-create | --no-create | --no-creat | --no-crea | --no-cre \
- | --no-cr | --no-c)
- no_create=yes ;;
-
- -no-recursion | --no-recursion | --no-recursio | --no-recursi \
- | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
- no_recursion=yes ;;
-
- -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
- | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
- | --oldin | --oldi | --old | --ol | --o)
- ac_prev=oldincludedir ;;
- -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
- | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
- | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
- oldincludedir="$ac_optarg" ;;
-
- -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
- ac_prev=prefix ;;
- -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
- prefix="$ac_optarg" ;;
-
- -program-prefix | --program-prefix | --program-prefi | --program-pref \
- | --program-pre | --program-pr | --program-p)
- ac_prev=program_prefix ;;
- -program-prefix=* | --program-prefix=* | --program-prefi=* \
- | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
- program_prefix="$ac_optarg" ;;
-
- -program-suffix | --program-suffix | --program-suffi | --program-suff \
- | --program-suf | --program-su | --program-s)
- ac_prev=program_suffix ;;
- -program-suffix=* | --program-suffix=* | --program-suffi=* \
- | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
- program_suffix="$ac_optarg" ;;
-
- -program-transform-name | --program-transform-name \
- | --program-transform-nam | --program-transform-na \
- | --program-transform-n | --program-transform- \
- | --program-transform | --program-transfor \
- | --program-transfo | --program-transf \
- | --program-trans | --program-tran \
- | --progr-tra | --program-tr | --program-t)
- ac_prev=program_transform_name ;;
- -program-transform-name=* | --program-transform-name=* \
- | --program-transform-nam=* | --program-transform-na=* \
- | --program-transform-n=* | --program-transform-=* \
- | --program-transform=* | --program-transfor=* \
- | --program-transfo=* | --program-transf=* \
- | --program-trans=* | --program-tran=* \
- | --progr-tra=* | --program-tr=* | --program-t=*)
- program_transform_name="$ac_optarg" ;;
-
- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
- | -silent | --silent | --silen | --sile | --sil)
- silent=yes ;;
-
- -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
- ac_prev=sbindir ;;
- -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
- | --sbi=* | --sb=*)
- sbindir="$ac_optarg" ;;
-
- -sharedstatedir | --sharedstatedir | --sharedstatedi \
- | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
- | --sharedst | --shareds | --shared | --share | --shar \
- | --sha | --sh)
- ac_prev=sharedstatedir ;;
- -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
- | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
- | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
- | --sha=* | --sh=*)
- sharedstatedir="$ac_optarg" ;;
-
- -site | --site | --sit)
- ac_prev=site ;;
- -site=* | --site=* | --sit=*)
- site="$ac_optarg" ;;
-
- -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
- ac_prev=srcdir ;;
- -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
- srcdir="$ac_optarg" ;;
-
- -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
- | --syscon | --sysco | --sysc | --sys | --sy)
- ac_prev=sysconfdir ;;
- -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
- | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
- sysconfdir="$ac_optarg" ;;
-
- -target | --target | --targe | --targ | --tar | --ta | --t)
- ac_prev=target ;;
- -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
- target="$ac_optarg" ;;
-
- -v | -verbose | --verbose | --verbos | --verbo | --verb)
- verbose=yes ;;
-
- -version | --version | --versio | --versi | --vers)
- echo "configure generated by autoconf version 2.12.1"
- exit 0 ;;
-
- -with-* | --with-*)
- ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'`
- # Reject names that are not valid shell variable names.
- if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then
- { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
- fi
- ac_package=`echo $ac_package| sed 's/-/_/g'`
- case "$ac_option" in
- *=*) ;;
- *) ac_optarg=yes ;;
- esac
- eval "with_${ac_package}='$ac_optarg'" ;;
-
- -without-* | --without-*)
- ac_package=`echo $ac_option|sed -e 's/-*without-//'`
- # Reject names that are not valid shell variable names.
- if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then
- { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
- fi
- ac_package=`echo $ac_package| sed 's/-/_/g'`
- eval "with_${ac_package}=no" ;;
-
- --x)
- # Obsolete; use --with-x.
- with_x=yes ;;
-
- -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
- | --x-incl | --x-inc | --x-in | --x-i)
- ac_prev=x_includes ;;
- -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
- | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
- x_includes="$ac_optarg" ;;
-
- -x-libraries | --x-libraries | --x-librarie | --x-librari \
- | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
- ac_prev=x_libraries ;;
- -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
- | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
- x_libraries="$ac_optarg" ;;
-
- -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; }
- ;;
-
- *)
- if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then
- echo "configure: warning: $ac_option: invalid host type" 1>&2
- fi
- if test "x$nonopt" != xNONE; then
- { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; }
- fi
- nonopt="$ac_option"
- ;;
-
- esac
-done
-
-if test -n "$ac_prev"; then
- { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; }
-fi
-
-trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
-
-# File descriptor usage:
-# 0 standard input
-# 1 file creation
-# 2 errors and warnings
-# 3 some systems may open it to /dev/tty
-# 4 used on the Kubota Titan
-# 6 checking for... messages and results
-# 5 compiler messages saved in config.log
-if test "$silent" = yes; then
- exec 6>/dev/null
-else
- exec 6>&1
-fi
-exec 5>./config.log
-
-echo "\
-This file contains any messages produced by compilers while
-running configure, to aid debugging if configure makes a mistake.
-" 1>&5
-
-# Strip out --no-create and --no-recursion so they do not pile up.
-# Also quote any args containing shell metacharacters.
-ac_configure_args=
-for ac_arg
-do
- case "$ac_arg" in
- -no-create | --no-create | --no-creat | --no-crea | --no-cre \
- | --no-cr | --no-c) ;;
- -no-recursion | --no-recursion | --no-recursio | --no-recursi \
- | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;;
- *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*)
- ac_configure_args="$ac_configure_args '$ac_arg'" ;;
- *) ac_configure_args="$ac_configure_args $ac_arg" ;;
- esac
-done
-
-# NLS nuisances.
-# Only set these to C if already set. These must not be set unconditionally
-# because not all systems understand e.g. LANG=C (notably SCO).
-# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'!
-# Non-C LC_CTYPE values break the ctype check.
-if test "${LANG+set}" = set; then LANG=C; export LANG; fi
-if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
-if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi
-if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi
-
-# confdefs.h avoids OS command line length limits that DEFS can exceed.
-rm -rf conftest* confdefs.h
-# AIX cpp loses on an empty file, so make sure it contains at least a newline.
-echo > confdefs.h
-
-# A filename unique to this package, relative to the directory that
-# configure is in, which we can look for to find out if srcdir is correct.
-ac_unique_file=makeinfo.0/atnode.exp
-
-# Find the source files, if location was not specified.
-if test -z "$srcdir"; then
- ac_srcdir_defaulted=yes
- # Try the directory containing this script, then its parent.
- ac_prog=$0
- ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'`
- test "x$ac_confdir" = "x$ac_prog" && ac_confdir=.
- srcdir=$ac_confdir
- if test ! -r $srcdir/$ac_unique_file; then
- srcdir=..
- fi
-else
- ac_srcdir_defaulted=no
-fi
-if test ! -r $srcdir/$ac_unique_file; then
- if test "$ac_srcdir_defaulted" = yes; then
- { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; }
- else
- { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; }
- fi
-fi
-srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'`
-
-# Prefer explicitly selected file to automatically selected ones.
-if test -z "$CONFIG_SITE"; then
- if test "x$prefix" != xNONE; then
- CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
- else
- CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
- fi
-fi
-for ac_site_file in $CONFIG_SITE; do
- if test -r "$ac_site_file"; then
- echo "loading site script $ac_site_file"
- . "$ac_site_file"
- fi
-done
-
-if test -r "$cache_file"; then
- echo "loading cache $cache_file"
- . $cache_file
-else
- echo "creating cache $cache_file"
- > $cache_file
-fi
-
-ac_ext=c
-# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
-ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-cross_compiling=$ac_cv_prog_cc_cross
-
-if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
- # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
- if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
- ac_n= ac_c='
-' ac_t=' '
- else
- ac_n=-n ac_c= ac_t=
- fi
-else
- ac_n= ac_c='\c' ac_t=
-fi
-
-
-
-trap '' 1 2 15
-cat > confcache <<\EOF
-# This file is a shell script that caches the results of configure
-# tests run on this system so they can be shared between configure
-# scripts and configure runs. It is not useful on other systems.
-# If it contains results you don't want to keep, you may remove or edit it.
-#
-# By default, configure uses ./config.cache as the cache file,
-# creating it if it does not exist already. You can give configure
-# the --cache-file=FILE option to use a different cache file; that is
-# what configure does when it calls configure scripts in
-# subdirectories, so they share the cache.
-# Giving --cache-file=/dev/null disables caching, for debugging configure.
-# config.status only pays attention to the cache file if you give it the
-# --recheck option to rerun configure.
-#
-EOF
-# The following way of writing the cache mishandles newlines in values,
-# but we know of no workaround that is simple, portable, and efficient.
-# So, don't put newlines in cache variables' values.
-# Ultrix sh set writes to stderr and can't be redirected directly,
-# and sets the high bit in the cache file unless we assign to the vars.
-(set) 2>&1 |
- case `(ac_space=' '; set) 2>&1 | grep ac_space` in
- *ac_space=\ *)
- # `set' does not quote correctly, so add quotes (double-quote substitution
- # turns \\\\ into \\, and sed turns \\ into \).
- sed -n \
- -e "s/'/'\\\\''/g" \
- -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p"
- ;;
- *)
- # `set' quotes correctly as required by POSIX, so do not add quotes.
- sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p'
- ;;
- esac >> confcache
-if cmp -s $cache_file confcache; then
- :
-else
- if test -w $cache_file; then
- echo "updating cache $cache_file"
- cat confcache > $cache_file
- else
- echo "not updating unwritable cache $cache_file"
- fi
-fi
-rm -f confcache
-
-trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
-
-test "x$prefix" = xNONE && prefix=$ac_default_prefix
-# Let make expand exec_prefix.
-test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
-
-# Any assignment to VPATH causes Sun make to only execute
-# the first set of double-colon rules, so remove it if not needed.
-# If there is a colon in the path, we need to keep it.
-if test "x$srcdir" = x.; then
- ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d'
-fi
-
-trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15
-
-# Transform confdefs.h into DEFS.
-# Protect against shell expansion while executing Makefile rules.
-# Protect against Makefile macro expansion.
-cat > conftest.defs <<\EOF
-s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g
-s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g
-s%\[%\\&%g
-s%\]%\\&%g
-s%\$%$$%g
-EOF
-DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '`
-rm -f conftest.defs
-
-
-# Without the "./", some shells look in PATH for config.status.
-: ${CONFIG_STATUS=./config.status}
-
-echo creating $CONFIG_STATUS
-rm -f $CONFIG_STATUS
-cat > $CONFIG_STATUS <<EOF
-#! /bin/sh
-# Generated automatically by configure.
-# Run this file to recreate the current configuration.
-# This directory was configured as follows,
-# on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
-#
-# $0 $ac_configure_args
-#
-# Compiler output produced by configure, useful for debugging
-# configure, is in ./config.log if it exists.
-
-ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]"
-for ac_option
-do
- case "\$ac_option" in
- -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
- echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion"
- exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;;
- -version | --version | --versio | --versi | --vers | --ver | --ve | --v)
- echo "$CONFIG_STATUS generated by autoconf version 2.12.1"
- exit 0 ;;
- -help | --help | --hel | --he | --h)
- echo "\$ac_cs_usage"; exit 0 ;;
- *) echo "\$ac_cs_usage"; exit 1 ;;
- esac
-done
-
-ac_given_srcdir=$srcdir
-
-trap 'rm -fr `echo "Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
-EOF
-cat >> $CONFIG_STATUS <<EOF
-
-# Protect against being on the right side of a sed subst in config.status.
-sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g;
- s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF
-$ac_vpsub
-$extrasub
-s%@SHELL@%$SHELL%g
-s%@CFLAGS@%$CFLAGS%g
-s%@CPPFLAGS@%$CPPFLAGS%g
-s%@CXXFLAGS@%$CXXFLAGS%g
-s%@DEFS@%$DEFS%g
-s%@LDFLAGS@%$LDFLAGS%g
-s%@LIBS@%$LIBS%g
-s%@exec_prefix@%$exec_prefix%g
-s%@prefix@%$prefix%g
-s%@program_transform_name@%$program_transform_name%g
-s%@bindir@%$bindir%g
-s%@sbindir@%$sbindir%g
-s%@libexecdir@%$libexecdir%g
-s%@datadir@%$datadir%g
-s%@sysconfdir@%$sysconfdir%g
-s%@sharedstatedir@%$sharedstatedir%g
-s%@localstatedir@%$localstatedir%g
-s%@libdir@%$libdir%g
-s%@includedir@%$includedir%g
-s%@oldincludedir@%$oldincludedir%g
-s%@infodir@%$infodir%g
-s%@mandir@%$mandir%g
-
-CEOF
-EOF
-
-cat >> $CONFIG_STATUS <<\EOF
-
-# Split the substitutions into bite-sized pieces for seds with
-# small command number limits, like on Digital OSF/1 and HP-UX.
-ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script.
-ac_file=1 # Number of current file.
-ac_beg=1 # First line for current file.
-ac_end=$ac_max_sed_cmds # Line after last line for current file.
-ac_more_lines=:
-ac_sed_cmds=""
-while $ac_more_lines; do
- if test $ac_beg -gt 1; then
- sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file
- else
- sed "${ac_end}q" conftest.subs > conftest.s$ac_file
- fi
- if test ! -s conftest.s$ac_file; then
- ac_more_lines=false
- rm -f conftest.s$ac_file
- else
- if test -z "$ac_sed_cmds"; then
- ac_sed_cmds="sed -f conftest.s$ac_file"
- else
- ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file"
- fi
- ac_file=`expr $ac_file + 1`
- ac_beg=$ac_end
- ac_end=`expr $ac_end + $ac_max_sed_cmds`
- fi
-done
-if test -z "$ac_sed_cmds"; then
- ac_sed_cmds=cat
-fi
-EOF
-
-cat >> $CONFIG_STATUS <<EOF
-
-CONFIG_FILES=\${CONFIG_FILES-"Makefile"}
-EOF
-cat >> $CONFIG_STATUS <<\EOF
-for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
- # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
- case "$ac_file" in
- *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'`
- ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
- *) ac_file_in="${ac_file}.in" ;;
- esac
-
- # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories.
-
- # Remove last slash and all that follows it. Not all systems have dirname.
- ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
- if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
- # The file is in a subdirectory.
- test ! -d "$ac_dir" && mkdir "$ac_dir"
- ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`"
- # A "../" for each directory in $ac_dir_suffix.
- ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'`
- else
- ac_dir_suffix= ac_dots=
- fi
-
- case "$ac_given_srcdir" in
- .) srcdir=.
- if test -z "$ac_dots"; then top_srcdir=.
- else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;;
- /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;;
- *) # Relative path.
- srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix"
- top_srcdir="$ac_dots$ac_given_srcdir" ;;
- esac
-
-
- echo creating "$ac_file"
- rm -f "$ac_file"
- configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure."
- case "$ac_file" in
- *Makefile*) ac_comsub="1i\\
-# $configure_input" ;;
- *) ac_comsub= ;;
- esac
-
- ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"`
- sed -e "$ac_comsub
-s%@configure_input@%$configure_input%g
-s%@srcdir@%$srcdir%g
-s%@top_srcdir@%$top_srcdir%g
-" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file
-fi; done
-rm -f conftest.s*
-
-EOF
-cat >> $CONFIG_STATUS <<EOF
-
-EOF
-cat >> $CONFIG_STATUS <<\EOF
-
-exit 0
-EOF
-chmod +x $CONFIG_STATUS
-rm -fr confdefs* $ac_clean_files
-test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1
-
diff --git a/texinfo/testsuite/configure.in b/texinfo/testsuite/configure.in
deleted file mode 100644
index 8cf18763df0..00000000000
--- a/texinfo/testsuite/configure.in
+++ /dev/null
@@ -1,5 +0,0 @@
-dnl Process this file with autoconf to produce a configure script.
-AC_PREREQ(2.5)
-AC_INIT(makeinfo.0/atnode.exp)
-
-AC_OUTPUT(Makefile)
diff --git a/texinfo/testsuite/lib/utils.exp b/texinfo/testsuite/lib/utils.exp
deleted file mode 100644
index 713e9f2332a..00000000000
--- a/texinfo/testsuite/lib/utils.exp
+++ /dev/null
@@ -1,31 +0,0 @@
-# utils.exp, a collection of Tcl/Expect utilities for texinfo tests.
-
-# ----------default--------------------------------------------
-# default VAR VALUE
-# Check whether VAR exists and has a nonempty value;
-# if not, use VALUE as the default
-# -------------------------------------------------------------
-proc default {varname varval} {
- upvar $varname outervar
- if { ![info exists outervar] || [string match {} $outervar] } then {
- verbose "Defaulting $varname to $varval\n" 1
- set outervar $varval
- } else {
- verbose "$varname retains existing value $outervar\n" 1
- }
- return
-}
-
-
-# ----------is_executable--------------------------------------
-# is_executable NAME
-# Boolean predicate: is NAME an executable file
-# somewhere on our PATH?
-# -------------------------------------------------------------
-proc is_executable {name} {
- if [ file executable [which $name] ] then {
- return 1
- } else {
- return 0
- }
-}
diff --git a/texinfo/testsuite/makeinfo.0/atnode.exp b/texinfo/testsuite/makeinfo.0/atnode.exp
deleted file mode 100644
index 19724347cbb..00000000000
--- a/texinfo/testsuite/makeinfo.0/atnode.exp
+++ /dev/null
@@ -1,19 +0,0 @@
-# Lessons:
-# 1) may use \ to continue long lines
-# 2) Careful in specifying string end on string match, to be sure
-# to exclude errors! (cf output from nonsense.exp)
-
-catch "exec $MAKEINFO -o ./atnode.info $srcdir/text/atnode.texi" maki_out
-
-verbose "Makeinfo output: $maki_out" 1
-
-setup_xfail "*-*-*"
-if [string match \
- "Making*file*atnode*from*atnode.texi'." \
- "$maki_out" \
- ] then {
- pass "at sign in node name"
-} else {
- fail "at sign in node name"
-}
-clear_xfail "*-*-*"
diff --git a/texinfo/testsuite/makeinfo.0/conditions.exp b/texinfo/testsuite/makeinfo.0/conditions.exp
deleted file mode 100644
index c62c66a2a04..00000000000
--- a/texinfo/testsuite/makeinfo.0/conditions.exp
+++ /dev/null
@@ -1,21 +0,0 @@
-# Lessons:
-# 1) may use \ to continue long lines
-# 2) Careful in specifying string end on string match, to be sure
-# to exclude errors! (cf output from nonsense.exp)
-
-catch "exec $MAKEINFO -o ./conditions.info $srcdir/text/conditions.texi" maki_out
-
-verbose "Makeinfo output: $maki_out" 1
-
-# The gdb manual works around this by putting a blank line after the pair of
-# @end if* commands.
-setup_xfail "*-*-*"
-if [string match \
- "Making*file*conditions*from*conditions.texi'." \
- "$maki_out" \
- ] then {
- pass "texinfo conditions"
-} else {
- fail "texinfo conditions"
-}
-clear_xfail "*-*-*"
diff --git a/texinfo/testsuite/makeinfo.0/mini.exp b/texinfo/testsuite/makeinfo.0/mini.exp
deleted file mode 100644
index 17d48bdee61..00000000000
--- a/texinfo/testsuite/makeinfo.0/mini.exp
+++ /dev/null
@@ -1,17 +0,0 @@
-# Lessons:
-# 1) may use \ to continue long lines
-# 2) Careful in specifying string end on string match, to be sure
-# to exclude errors! (cf output from nonsense.exp)
-
-catch "exec $MAKEINFO -o ./mini.info $srcdir/text/minimal.texi" maki_out
-
-verbose "Makeinfo output: $maki_out" 1
-
-if [string match \
- "Making*file*mini*from*minimal.texi'." \
- "$maki_out" \
- ] then {
- pass "minimal source file"
-} else {
- fail "minimal source file"
-}
diff --git a/texinfo/testsuite/makeinfo.0/missnode.exp b/texinfo/testsuite/makeinfo.0/missnode.exp
deleted file mode 100644
index fb278f08cfb..00000000000
--- a/texinfo/testsuite/makeinfo.0/missnode.exp
+++ /dev/null
@@ -1,25 +0,0 @@
-#set real_verbose [set verbose]
-#set verbose 2
-catch "exec $MAKEINFO -o ./missnode.info $srcdir/text/missnode.texi" maki_out
-
-verbose "Makeinfo output: $maki_out" 1
-
-if [string match \
- "*Validation error*Next*doesn't exist*" \
- "$maki_out" \
- ] then {
- pass "missing Next detection"
-} else {
- fail "missing Next detection"
-}
-
-if [string match \
- "*Validation error*Menu*doesn't exist*" \
- "$maki_out" \
- ] then {
- pass "missing menu entry detection"
-} else {
- fail "missing menu entry detection"
-}
-
-#set verbose [set real_verbose]
diff --git a/texinfo/testsuite/makeinfo.0/nonsense.exp b/texinfo/testsuite/makeinfo.0/nonsense.exp
deleted file mode 100644
index 3b19f2680fc..00000000000
--- a/texinfo/testsuite/makeinfo.0/nonsense.exp
+++ /dev/null
@@ -1,12 +0,0 @@
-catch "exec $MAKEINFO -o ./nonsense.info $srcdir/text/nonsense.texi" maki_out
-
-verbose "Makeinfo output: $maki_out" 1
-
-if [string match \
- "*Unknown info command*" \
- "$maki_out" \
- ] then {
- pass "unknown command detection"
-} else {
- fail "unknown command detection"
-}
diff --git a/texinfo/testsuite/makeinfo.0/not.exp b/texinfo/testsuite/makeinfo.0/not.exp
deleted file mode 100644
index 3c5ac5a5964..00000000000
--- a/texinfo/testsuite/makeinfo.0/not.exp
+++ /dev/null
@@ -1,15 +0,0 @@
-# lessons:
-# 1) ALL expected args to a cmd on one line!
-# 2) `*' at end of string match pattern essential---match *complete* string!
-# 3) $srcdir (at least when .) expanded in dir where runtest invoked---
-# NOT dir where test lives!
-# 4) stderr already folded into stdout; no need for 2>&1 or such things
-
-catch "exec $MAKEINFO $srcdir/text/not.texi" maki_out
-verbose "Makeinfo output: $maki_out" 1
-
-if [string match "No*setfilename*found*in*" "$maki_out"] then {
- pass "@setfilename required"
-} else {
- fail "@setfilename required"
-}
diff --git a/texinfo/testsuite/makeinfo.0/smstruct.exp b/texinfo/testsuite/makeinfo.0/smstruct.exp
deleted file mode 100644
index 1a0c00f275c..00000000000
--- a/texinfo/testsuite/makeinfo.0/smstruct.exp
+++ /dev/null
@@ -1,14 +0,0 @@
-catch "exec $MAKEINFO -o ./smstruct.info $srcdir/text/smstruct.texi" maki_out
-
-verbose "Makeinfo output: $maki_out" 1
-
-if [string match \
- "Making*file*smstruct*from*smstruct.texi'." \
- "$maki_out" \
- ] then {
- pass "structured source file"
-} else {
- fail "structured source file"
-}
-
-
diff --git a/texinfo/testsuite/text/atnode.texi b/texinfo/testsuite/text/atnode.texi
deleted file mode 100644
index 443738d19aa..00000000000
--- a/texinfo/testsuite/text/atnode.texi
+++ /dev/null
@@ -1,21 +0,0 @@
-@setfilename atnode
-
-@node Top
-@c @top Toity
-
-@menu
-* @@string:: A node with an at sign in its name
-* Joke:: A node without an at sign in its name
-@end menu
-
-@node @@string
-@chapter On the Nature of Strings
-
-They can be thick or thin.
-
-@node Joke
-@chapter Stop me if You've Heard this One
-
-These three strings (@pxref{@@string}), walked into a bar, and...
-
-@bye
diff --git a/texinfo/testsuite/text/conditions.texi b/texinfo/testsuite/text/conditions.texi
deleted file mode 100644
index 5c4a3209720..00000000000
--- a/texinfo/testsuite/text/conditions.texi
+++ /dev/null
@@ -1,26 +0,0 @@
-@setfilename conditions
-@set foo1
-@clear foo2
-@clear bar
-@node Top
-@top Test of conditions
-@menu
-@ifclear bar
-@ifset foo1
-* Foo1:: This text should be included.
-@end ifset
-@ifset foo2
-* Foo2:: This text should not be included.
-@end ifset
-@end ifclear
-* Foo3:: And we have no blank line here.
-@end menu
-@node Foo1
-@chapter Foo1
-@ifset foo2
-@node Foo2
-@chapter Foo2
-@end ifset
-@node Foo3
-@chapter Foo3
-@bye
diff --git a/texinfo/testsuite/text/dfltnode.texi b/texinfo/testsuite/text/dfltnode.texi
deleted file mode 100644
index 3800f42d853..00000000000
--- a/texinfo/testsuite/text/dfltnode.texi
+++ /dev/null
@@ -1,21 +0,0 @@
-@setfilename smstruct
-
-@node Top
-@top Hoity
-
-@menu
-* First:: The Very First Node
-* Second:: Another Whole Node
-@end menu
-
-@node First
-@chapter The Very First Node
-
-This node is a real node, yes indeed.
-
-@node Second
-@chapter Another Whole Node
-
-Will wonders never cease?
-
-@bye
diff --git a/texinfo/testsuite/text/minimal.texi b/texinfo/testsuite/text/minimal.texi
deleted file mode 100644
index 682881d4fd3..00000000000
--- a/texinfo/testsuite/text/minimal.texi
+++ /dev/null
@@ -1,2 +0,0 @@
-@setfilename mini
-@bye
diff --git a/texinfo/testsuite/text/missnode.texi b/texinfo/testsuite/text/missnode.texi
deleted file mode 100644
index db997de8632..00000000000
--- a/texinfo/testsuite/text/missnode.texi
+++ /dev/null
@@ -1,22 +0,0 @@
-@setfilename missingnode
-
-@node Top, First,,
-@top Hoity
-
-@menu
-* First:: The very first node
-* Second:: Another whole node
-* Third:: No such thing
-@end menu
-
-@node First, Second, Top, Top
-@chapter The Very First Node
-
-This node is a real node, yes indeed.
-
-@node Second, Third, First, Top
-@chapter Another Whole Node
-
-Will wonders never cease?
-
-@bye
diff --git a/texinfo/testsuite/text/nonsense.texi b/texinfo/testsuite/text/nonsense.texi
deleted file mode 100644
index b84fb3d7080..00000000000
--- a/texinfo/testsuite/text/nonsense.texi
+++ /dev/null
@@ -1,3 +0,0 @@
-@setfilename mini
-@nonsense
-@bye
diff --git a/texinfo/testsuite/text/not.texi b/texinfo/testsuite/text/not.texi
deleted file mode 100644
index a8d29b95088..00000000000
--- a/texinfo/testsuite/text/not.texi
+++ /dev/null
@@ -1 +0,0 @@
-Ceci n'est pas un fichier Texinfo.
diff --git a/texinfo/testsuite/text/smstruct.texi b/texinfo/testsuite/text/smstruct.texi
deleted file mode 100644
index 64f98ea2337..00000000000
--- a/texinfo/testsuite/text/smstruct.texi
+++ /dev/null
@@ -1,21 +0,0 @@
-@setfilename smstruct
-
-@node Top, First,,
-@top Hoity
-
-@menu
-* First:: The Very First Node
-* Second:: Another Whole Node
-@end menu
-
-@node First, Second, Top, Top
-@chapter The Very First Node
-
-This node is a real node, yes indeed.
-
-@node Second,,First,Top
-@chapter Another Whole Node
-
-Will wonders never cease?
-
-@bye