Commit 90b750f4 authored by Paul Eggert's avatar Paul Eggert
Browse files

* texinfo.tex: Update to version 2011-02-01.10

parent 36941b32
2011-02-03 Paul Eggert <eggert@cs.ucla.edu>
* texinfo.tex: Update to version 2011-02-01.10 from gnulib,
which in turn is copied from ftp://tug.org/tex/.
2011-02-03 Glenn Morris <rgm@gnu.org> 2011-02-03 Glenn Morris <rgm@gnu.org>
* faq.texi (Contacting the FSF): Mainly just refer to the web-site. * faq.texi (Contacting the FSF): Mainly just refer to the web-site.
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
% Load plain if necessary, i.e., if running under initex. % Load plain if necessary, i.e., if running under initex.
\expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi \expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
% %
\def\texinfoversion{2011-01-15.17} \def\texinfoversion{2011-02-01.10}
% %
% Copyright 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995, % Copyright 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995,
% 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, % 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
...@@ -118,8 +118,8 @@ ...@@ -118,8 +118,8 @@
\ifx\putwordChapter\undefined \gdef\putwordChapter{Chapter}\fi \ifx\putwordChapter\undefined \gdef\putwordChapter{Chapter}\fi
\ifx\putwordfile\undefined \gdef\putwordfile{file}\fi \ifx\putwordfile\undefined \gdef\putwordfile{file}\fi
\ifx\putwordin\undefined \gdef\putwordin{in}\fi \ifx\putwordin\undefined \gdef\putwordin{in}\fi
\ifx\putwordIndexIsEmpty\undefined \gdef\putwordIndexIsEmpty{(Index is empty)}\fi \ifx\putwordIndexIsEmpty\undefined \gdef\putwordIndexIsEmpty{(Index is empty)}\fi
\ifx\putwordIndexNonexistent\undefined \gdef\putwordIndexNonexistent{(Index is nonexistent)}\fi \ifx\putwordIndexNonexistent\undefined \gdef\putwordIndexNonexistent{(Index is nonexistent)}\fi
\ifx\putwordInfo\undefined \gdef\putwordInfo{Info}\fi \ifx\putwordInfo\undefined \gdef\putwordInfo{Info}\fi
\ifx\putwordInstanceVariableof\undefined \gdef\putwordInstanceVariableof{Instance Variable of}\fi \ifx\putwordInstanceVariableof\undefined \gdef\putwordInstanceVariableof{Instance Variable of}\fi
\ifx\putwordMethodon\undefined \gdef\putwordMethodon{Method on}\fi \ifx\putwordMethodon\undefined \gdef\putwordMethodon{Method on}\fi
...@@ -163,10 +163,12 @@ ...@@ -163,10 +163,12 @@
\chardef\dashChar = `\- \chardef\dashChar = `\-
\chardef\dotChar = `\. \chardef\dotChar = `\.
\chardef\exclamChar= `\! \chardef\exclamChar= `\!
\chardef\hashChar = `\#
\chardef\lquoteChar= `\` \chardef\lquoteChar= `\`
\chardef\questChar = `\? \chardef\questChar = `\?
\chardef\rquoteChar= `\' \chardef\rquoteChar= `\'
\chardef\semiChar = `\; \chardef\semiChar = `\;
\chardef\slashChar = `\/
\chardef\underChar = `\_ \chardef\underChar = `\_
% Ignore a token. % Ignore a token.
...@@ -557,7 +559,7 @@ ...@@ -557,7 +559,7 @@
\parseargdef\end{% \parseargdef\end{%
\if 1\csname iscond.#1\endcsname \if 1\csname iscond.#1\endcsname
\else \else
% The general wording of \badenverr may not be ideal, but... --kasal, 06nov03 % The general wording of \badenverr may not be ideal.
\expandafter\checkenv\csname#1\endcsname \expandafter\checkenv\csname#1\endcsname
\csname E#1\endcsname \csname E#1\endcsname
\endgroup \endgroup
...@@ -2253,12 +2255,14 @@ ...@@ -2253,12 +2255,14 @@
% Markup style setup for left and right quotes. % Markup style setup for left and right quotes.
\defmarkupstylesetup\markupsetuplq{% \defmarkupstylesetup\markupsetuplq{%
\expandafter\let\expandafter \temp \csname markupsetuplq\currentmarkupstyle\endcsname \expandafter\let\expandafter \temp
\csname markupsetuplq\currentmarkupstyle\endcsname
\ifx\temp\relax \markupsetuplqdefault \else \temp \fi \ifx\temp\relax \markupsetuplqdefault \else \temp \fi
} }
\defmarkupstylesetup\markupsetuprq{% \defmarkupstylesetup\markupsetuprq{%
\expandafter\let\expandafter \temp \csname markupsetuprq\currentmarkupstyle\endcsname \expandafter\let\expandafter \temp
\csname markupsetuprq\currentmarkupstyle\endcsname
\ifx\temp\relax \markupsetuprqdefault \else \temp \fi \ifx\temp\relax \markupsetuprqdefault \else \temp \fi
} }
...@@ -2487,6 +2491,22 @@ ...@@ -2487,6 +2491,22 @@
\codex \codex
} }
} }
% Handle @url similarly to \code, but allows line breaks after .#?/ (only).
{
\catcode`\.=\active \catcode`\#=\active
\catcode`\?=\active \catcode`\/=\active
%
\global\def\urefcode{\begingroup
\setupmarkupstyle{code}%
\catcode\dotChar=\active \catcode\hashChar=\active
\catcode\questChar=\active \catcode\slashChar=\active
\let.\urefcodedot
\let#\urefcodehash
\let?\urefcodequestion
\let/\urefcodeslash
\codex
}
}
\def\realdash{-} \def\realdash{-}
\def\codedash{-\discretionary{}{}{}} \def\codedash{-\discretionary{}{}{}}
...@@ -2501,6 +2521,24 @@ ...@@ -2501,6 +2521,24 @@
\discretionary{}{}{}}% \discretionary{}{}{}}%
{\_}% {\_}%
} }
% we put a little stretch before and after the breakable chars, to help
% line breaking of long url's. The unequal skips make look better in
% cmtt at least, especially for dots.
\def\urefprestretch{\nobreak \hskip0pt plus.13em }
\def\urefpoststretch{\allowbreak \hskip0pt plus.1em }
\def\urefcodedot{\urefprestretch .\urefpoststretch}
\def\urefcodehash{\urefprestretch \#\urefpoststretch}
\def\urefcodequestion{\urefprestretch ?\urefpoststretch}
\def\urefcodeslash{\futurelet\next\urefcodeslashfinish}
{
\catcode`\/=\active
\global\def\urefcodeslashfinish{%
\urefprestretch \slashChar
% Allow line break only after the final / in a sequence of
% slashes, to avoid line break between the slashes in http://.
\ifx\next/\else \urefpoststretch \fi
}
}
\def\codex #1{\tclose{#1}\endgroup} \def\codex #1{\tclose{#1}\endgroup}
% An additional complication: the above will allow breaks after, e.g., % An additional complication: the above will allow breaks after, e.g.,
...@@ -2598,6 +2636,30 @@ ...@@ -2598,6 +2636,30 @@
\endlink \endlink
\endgroup} \endgroup}
\def\nouref#1,#2,#3,#4\finish{\begingroup % doesn't work in @example
\unsepspaces
\pdfurl{#1}%
\setbox0 = \hbox{\ignorespaces #3}%
\ifdim\wd0 > 0pt
\unhbox0 % third arg given, show only that
\else
\setbox0 = \hbox{\ignorespaces #2}%
\ifdim\wd0 > 0pt
\ifpdf
\unhbox0 % PDF: 2nd arg given, show only it
\else
% \empty at the end of \scantokens arg gets rid of
% trailing newline (and ultimate spurious whitespace).
\unhbox0\ (\urefcode{\scantokens{#1\empty}})% DVI: 2nd arg given,
% show both it and url
\fi
\else
\urefcode{\scantokens{#1\empty}}% only url given, so show it
\fi
\fi
\endlink
\endgroup}
% @url synonym for @uref, since that's how everyone uses it. % @url synonym for @uref, since that's how everyone uses it.
% %
\let\url=\uref \let\url=\uref
...@@ -3034,8 +3096,9 @@ ...@@ -3034,8 +3096,9 @@
\newif\ifsetshortcontentsaftertitlepage \newif\ifsetshortcontentsaftertitlepage
\let\setshortcontentsaftertitlepage = \setshortcontentsaftertitlepagetrue \let\setshortcontentsaftertitlepage = \setshortcontentsaftertitlepagetrue
\parseargdef\shorttitlepage{\begingroup\hbox{}\vskip 1.5in \chaprm \centerline{#1}% \parseargdef\shorttitlepage{%
\endgroup\page\hbox{}\page} \begingroup \hbox{}\vskip 1.5in \chaprm \centerline{#1}%
\endgroup\page\hbox{}\page}
\envdef\titlepage{% \envdef\titlepage{%
% Open one extra group, as we want to close it in the middle of \Etitlepage. % Open one extra group, as we want to close it in the middle of \Etitlepage.
...@@ -5243,7 +5306,8 @@ ...@@ -5243,7 +5306,8 @@
\global\let\subsubsection = \appendixsubsubsec \global\let\subsubsection = \appendixsubsubsec
} }
\outer\parseargdef\unnumbered{\unnmhead0{#1}} % normally unnmhead0 calls unnumberedzzz % normally unnmhead0 calls unnumberedzzz:
\outer\parseargdef\unnumbered{\unnmhead0{#1}}
\def\unnumberedzzz#1{% \def\unnumberedzzz#1{%
\global\secno=0 \global\subsecno=0 \global\subsubsecno=0 \global\secno=0 \global\subsecno=0 \global\subsubsecno=0
\global\advance\unnumberedno by 1 \global\advance\unnumberedno by 1
...@@ -5287,40 +5351,47 @@ ...@@ -5287,40 +5351,47 @@
\let\top\unnumbered \let\top\unnumbered
% Sections. % Sections.
%
\outer\parseargdef\numberedsec{\numhead1{#1}} % normally calls seczzz \outer\parseargdef\numberedsec{\numhead1{#1}} % normally calls seczzz
\def\seczzz#1{% \def\seczzz#1{%
\global\subsecno=0 \global\subsubsecno=0 \global\advance\secno by 1 \global\subsecno=0 \global\subsubsecno=0 \global\advance\secno by 1
\sectionheading{#1}{sec}{Ynumbered}{\the\chapno.\the\secno}% \sectionheading{#1}{sec}{Ynumbered}{\the\chapno.\the\secno}%
} }
\outer\parseargdef\appendixsection{\apphead1{#1}} % normally calls appendixsectionzzz % normally calls appendixsectionzzz:
\outer\parseargdef\appendixsection{\apphead1{#1}}
\def\appendixsectionzzz#1{% \def\appendixsectionzzz#1{%
\global\subsecno=0 \global\subsubsecno=0 \global\advance\secno by 1 \global\subsecno=0 \global\subsubsecno=0 \global\advance\secno by 1
\sectionheading{#1}{sec}{Yappendix}{\appendixletter.\the\secno}% \sectionheading{#1}{sec}{Yappendix}{\appendixletter.\the\secno}%
} }
\let\appendixsec\appendixsection \let\appendixsec\appendixsection
\outer\parseargdef\unnumberedsec{\unnmhead1{#1}} % normally calls unnumberedseczzz % normally calls unnumberedseczzz:
\outer\parseargdef\unnumberedsec{\unnmhead1{#1}}
\def\unnumberedseczzz#1{% \def\unnumberedseczzz#1{%
\global\subsecno=0 \global\subsubsecno=0 \global\advance\secno by 1 \global\subsecno=0 \global\subsubsecno=0 \global\advance\secno by 1
\sectionheading{#1}{sec}{Ynothing}{\the\unnumberedno.\the\secno}% \sectionheading{#1}{sec}{Ynothing}{\the\unnumberedno.\the\secno}%
} }
% Subsections. % Subsections.
\outer\parseargdef\numberedsubsec{\numhead2{#1}} % normally calls numberedsubseczzz %
% normally calls numberedsubseczzz:
\outer\parseargdef\numberedsubsec{\numhead2{#1}}
\def\numberedsubseczzz#1{% \def\numberedsubseczzz#1{%
\global\subsubsecno=0 \global\advance\subsecno by 1 \global\subsubsecno=0 \global\advance\subsecno by 1
\sectionheading{#1}{subsec}{Ynumbered}{\the\chapno.\the\secno.\the\subsecno}% \sectionheading{#1}{subsec}{Ynumbered}{\the\chapno.\the\secno.\the\subsecno}%
} }
\outer\parseargdef\appendixsubsec{\apphead2{#1}} % normally calls appendixsubseczzz % normally calls appendixsubseczzz:
\outer\parseargdef\appendixsubsec{\apphead2{#1}}
\def\appendixsubseczzz#1{% \def\appendixsubseczzz#1{%
\global\subsubsecno=0 \global\advance\subsecno by 1 \global\subsubsecno=0 \global\advance\subsecno by 1
\sectionheading{#1}{subsec}{Yappendix}% \sectionheading{#1}{subsec}{Yappendix}%
{\appendixletter.\the\secno.\the\subsecno}% {\appendixletter.\the\secno.\the\subsecno}%
} }
\outer\parseargdef\unnumberedsubsec{\unnmhead2{#1}} %normally calls unnumberedsubseczzz % normally calls unnumberedsubseczzz:
\outer\parseargdef\unnumberedsubsec{\unnmhead2{#1}}
\def\unnumberedsubseczzz#1{% \def\unnumberedsubseczzz#1{%
\global\subsubsecno=0 \global\advance\subsecno by 1 \global\subsubsecno=0 \global\advance\subsecno by 1
\sectionheading{#1}{subsec}{Ynothing}% \sectionheading{#1}{subsec}{Ynothing}%
...@@ -5328,21 +5399,25 @@ ...@@ -5328,21 +5399,25 @@
} }
% Subsubsections. % Subsubsections.
\outer\parseargdef\numberedsubsubsec{\numhead3{#1}} % normally numberedsubsubseczzz %
% normally numberedsubsubseczzz:
\outer\parseargdef\numberedsubsubsec{\numhead3{#1}}
\def\numberedsubsubseczzz#1{% \def\numberedsubsubseczzz#1{%
\global\advance\subsubsecno by 1 \global\advance\subsubsecno by 1
\sectionheading{#1}{subsubsec}{Ynumbered}% \sectionheading{#1}{subsubsec}{Ynumbered}%
{\the\chapno.\the\secno.\the\subsecno.\the\subsubsecno}% {\the\chapno.\the\secno.\the\subsecno.\the\subsubsecno}%
} }
\outer\parseargdef\appendixsubsubsec{\apphead3{#1}} % normally appendixsubsubseczzz % normally appendixsubsubseczzz:
\outer\parseargdef\appendixsubsubsec{\apphead3{#1}}
\def\appendixsubsubseczzz#1{% \def\appendixsubsubseczzz#1{%
\global\advance\subsubsecno by 1 \global\advance\subsubsecno by 1
\sectionheading{#1}{subsubsec}{Yappendix}% \sectionheading{#1}{subsubsec}{Yappendix}%
{\appendixletter.\the\secno.\the\subsecno.\the\subsubsecno}% {\appendixletter.\the\secno.\the\subsecno.\the\subsubsecno}%
} }
\outer\parseargdef\unnumberedsubsubsec{\unnmhead3{#1}} %normally unnumberedsubsubseczzz % normally unnumberedsubsubseczzz:
\outer\parseargdef\unnumberedsubsubsec{\unnmhead3{#1}}
\def\unnumberedsubsubseczzz#1{% \def\unnumberedsubsubseczzz#1{%
\global\advance\subsubsecno by 1 \global\advance\subsubsecno by 1
\sectionheading{#1}{subsubsec}{Ynothing}% \sectionheading{#1}{subsubsec}{Ynothing}%
...@@ -7237,7 +7312,8 @@ ...@@ -7237,7 +7312,8 @@
% @inforef is relatively simple. % @inforef is relatively simple.
\def\inforef #1{\inforefzzz #1,,,,**} \def\inforef #1{\inforefzzz #1,,,,**}
\def\inforefzzz #1,#2,#3,#4**{\putwordSee{} \putwordInfo{} \putwordfile{} \file{\ignorespaces #3{}}, \def\inforefzzz #1,#2,#3,#4**{%
\putwordSee{} \putwordInfo{} \putwordfile{} \file{\ignorespaces #3{}},
node \samp{\ignorespaces#1{}}} node \samp{\ignorespaces#1{}}}
% @node's only job in TeX is to define \lastnode, which is used in % @node's only job in TeX is to define \lastnode, which is used in
...@@ -7298,7 +7374,7 @@ ...@@ -7298,7 +7374,7 @@
\toks0 = \expandafter{\lastsection}% \toks0 = \expandafter{\lastsection}%
\immediate \writexrdef{title}{\the\toks0 }% \immediate \writexrdef{title}{\the\toks0 }%
\immediate \writexrdef{snt}{\csname #2\endcsname}% \Ynumbered etc. \immediate \writexrdef{snt}{\csname #2\endcsname}% \Ynumbered etc.
\safewhatsit{\writexrdef{pg}{\folio}}% will be written later, during \shipout \safewhatsit{\writexrdef{pg}{\folio}}% will be written later, at \shipout
}% }%
\fi \fi
} }
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment