mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2025-01-21 18:23:59 +00:00
Update from gnulib
This incorporates: 2016-08-17 maint: preprocessor changes to support z/OS 2016-08-17 string: rename to avoid '__string' * doc/misc/texinfo.tex, lib/alloca.in.h, lib/string.in.h: Copy from gnulib.
This commit is contained in:
parent
886b9ed80c
commit
1f7302563a
@ -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{2016-08-03.13}
|
\def\texinfoversion{2016-08-16.20}
|
||||||
%
|
%
|
||||||
% 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,
|
||||||
@ -1108,9 +1108,14 @@
|
|||||||
% For LuaTeX
|
% For LuaTeX
|
||||||
%
|
%
|
||||||
|
|
||||||
|
\newif\iftxiuseunicodedestname
|
||||||
|
\txiuseunicodedestnamefalse % For pdfTeX etc.
|
||||||
|
|
||||||
\ifx\luatexversion\thisisundefined
|
\ifx\luatexversion\thisisundefined
|
||||||
\else
|
\else
|
||||||
% Escape PDF strings UTF-8 to UTF-16
|
% Use Unicode destination names
|
||||||
|
\txiuseunicodedestnametrue
|
||||||
|
% Escape PDF strings with converting UTF-16 from UTF-8
|
||||||
\begingroup
|
\begingroup
|
||||||
\catcode`\%=12
|
\catcode`\%=12
|
||||||
\directlua{
|
\directlua{
|
||||||
@ -1138,7 +1143,24 @@
|
|||||||
end
|
end
|
||||||
}
|
}
|
||||||
\endgroup
|
\endgroup
|
||||||
\def\pdfescapestring#1{\directlua{UTF16oct('\luaescapestring{#1}')}}
|
\def\pdfescapestrutfsixteen#1{\directlua{UTF16oct('\luaescapestring{#1}')}}
|
||||||
|
% Escape PDF strings without converting
|
||||||
|
\begingroup
|
||||||
|
\directlua{
|
||||||
|
function PDFescstr(str)
|
||||||
|
for c in string.bytes(str) do
|
||||||
|
if c <= 0x20 or c >= 0x80 or c == 0x28 or c == 0x29 or c == 0x5c then
|
||||||
|
tex.sprint(
|
||||||
|
string.format(string.char(0x5c) .. string.char(0x25) .. '03o',
|
||||||
|
c))
|
||||||
|
else
|
||||||
|
tex.sprint(string.char(c))
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
}
|
||||||
|
\endgroup
|
||||||
|
\def\pdfescapestring#1{\directlua{PDFescstr('\luaescapestring{#1}')}}
|
||||||
\ifnum\luatexversion>84
|
\ifnum\luatexversion>84
|
||||||
% For LuaTeX >= 0.85
|
% For LuaTeX >= 0.85
|
||||||
\def\pdfdest{\pdfextension dest}
|
\def\pdfdest{\pdfextension dest}
|
||||||
@ -1199,6 +1221,14 @@
|
|||||||
\xdef#1{\pdfescapestring{#1}}%
|
\xdef#1{\pdfescapestring{#1}}%
|
||||||
\fi
|
\fi
|
||||||
}
|
}
|
||||||
|
\def\txiescapepdfutfsixteen#1{%
|
||||||
|
\ifx\pdfescapestrutfsixteen\thisisundefined
|
||||||
|
% No UTF-16 converting macro available.
|
||||||
|
\txiescapepdf{#1}%
|
||||||
|
\else
|
||||||
|
\xdef#1{\pdfescapestrutfsixteen{#1}}%
|
||||||
|
\fi
|
||||||
|
}
|
||||||
|
|
||||||
\newhelp\nopdfimagehelp{Texinfo supports .png, .jpg, .jpeg, and .pdf images
|
\newhelp\nopdfimagehelp{Texinfo supports .png, .jpg, .jpeg, and .pdf images
|
||||||
with PDF output, and none of those formats could be found. (.eps cannot
|
with PDF output, and none of those formats could be found. (.eps cannot
|
||||||
@ -1308,19 +1338,77 @@
|
|||||||
\pdfrefximage \pdflastximage
|
\pdfrefximage \pdflastximage
|
||||||
\fi}
|
\fi}
|
||||||
%
|
%
|
||||||
\def\pdfmkdest#1{{%
|
\def\setpdfdestname#1{{%
|
||||||
% We have to set dummies so commands such as @code, and characters
|
% We have to set dummies so commands such as @code, and characters
|
||||||
% such as \, aren't expanded when present in a section title.
|
% such as \, aren't expanded when present in a section title.
|
||||||
\indexnofonts
|
\indexnofonts
|
||||||
\makevalueexpandable
|
\makevalueexpandable
|
||||||
\turnoffactive
|
\turnoffactive
|
||||||
% Use ASCII approximations in destination names.
|
\iftxiuseunicodedestname
|
||||||
\passthroughcharsfalse
|
\ifx \declaredencoding \latone
|
||||||
|
% Pass through Latin-1 characters.
|
||||||
|
% LuaTeX with byte wise I/O converts Latin-1 characters to Unicode.
|
||||||
|
\else
|
||||||
|
\ifx \declaredencoding \utfeight
|
||||||
|
% Pass through Unicode characters.
|
||||||
|
\else
|
||||||
|
% Use ASCII approximations in destination names.
|
||||||
|
\passthroughcharsfalse
|
||||||
|
\fi
|
||||||
|
\fi
|
||||||
|
\else
|
||||||
|
% Use ASCII approximations in destination names.
|
||||||
|
\passthroughcharsfalse
|
||||||
|
\fi
|
||||||
\def\pdfdestname{#1}%
|
\def\pdfdestname{#1}%
|
||||||
\txiescapepdf\pdfdestname
|
\txiescapepdf\pdfdestname
|
||||||
\safewhatsit{\pdfdest name{\pdfdestname} xyz}%
|
|
||||||
}}
|
}}
|
||||||
%
|
%
|
||||||
|
\def\setpdfoutlinetext#1{{%
|
||||||
|
\indexnofonts
|
||||||
|
\makevalueexpandable
|
||||||
|
\turnoffactive
|
||||||
|
\ifx \declaredencoding \latone
|
||||||
|
% The PDF format can use an extended form of Latin-1 in bookmark
|
||||||
|
% strings. See Appendix D of the PDF Reference, Sixth Edition, for
|
||||||
|
% the "PDFDocEncoding".
|
||||||
|
\passthroughcharstrue
|
||||||
|
% Pass through Latin-1 characters.
|
||||||
|
% LuaTeX: Convert to Unicode
|
||||||
|
% pdfTeX: Use Latin-1 as PDFDocEncoding
|
||||||
|
\def\pdfoutlinetext{#1}%
|
||||||
|
\else
|
||||||
|
\ifx \declaredencoding \utfeight
|
||||||
|
\ifx\luatexversion\thisisundefined
|
||||||
|
% For pdfTeX with UTF-8.
|
||||||
|
% TODO: the PDF format can use UTF-16 in bookmark strings,
|
||||||
|
% but the code for this isn't done yet.
|
||||||
|
% Use ASCII approximations.
|
||||||
|
\passthroughcharsfalse
|
||||||
|
\def\pdfoutlinetext{#1}%
|
||||||
|
\else
|
||||||
|
% For LuaTeX with UTF-8.
|
||||||
|
% Pass through Unicode characters for title texts.
|
||||||
|
\passthroughcharstrue
|
||||||
|
\def\pdfoutlinetext{#1}%
|
||||||
|
\fi
|
||||||
|
\else
|
||||||
|
% For non-Latin-1 or non-UTF-8 encodings.
|
||||||
|
% Use ASCII approximations.
|
||||||
|
\passthroughcharsfalse
|
||||||
|
\def\pdfoutlinetext{#1}%
|
||||||
|
\fi
|
||||||
|
\fi
|
||||||
|
% LuaTeX: Convert to UTF-16
|
||||||
|
% pdfTeX: Use Latin-1 as PDFDocEncoding
|
||||||
|
\txiescapepdfutfsixteen\pdfoutlinetext
|
||||||
|
}}
|
||||||
|
%
|
||||||
|
\def\pdfmkdest#1{%
|
||||||
|
\setpdfdestname{#1}%
|
||||||
|
\safewhatsit{\pdfdest name{\pdfdestname} xyz}%
|
||||||
|
}
|
||||||
|
%
|
||||||
% used to mark target names; must be expandable.
|
% used to mark target names; must be expandable.
|
||||||
\def\pdfmkpgn#1{#1}
|
\def\pdfmkpgn#1{#1}
|
||||||
%
|
%
|
||||||
@ -1348,36 +1436,13 @@
|
|||||||
% page number. We could generate a destination for the section
|
% page number. We could generate a destination for the section
|
||||||
% text in the case where a section has no node, but it doesn't
|
% text in the case where a section has no node, but it doesn't
|
||||||
% seem worth the trouble, since most documents are normally structured.
|
% seem worth the trouble, since most documents are normally structured.
|
||||||
{
|
\setpdfoutlinetext{#1}
|
||||||
\ifx\luatexversion\thisisundefined \else
|
\setpdfdestname{#3}
|
||||||
\turnoffactive % LuaTeX can use Unicode strings for PDF
|
\ifx\pdfdestname\empty
|
||||||
\fi
|
\def\pdfdestname{#4}%
|
||||||
\edef\pdfoutlinedest{#3}%
|
\fi
|
||||||
\ifx\pdfoutlinedest\empty
|
%
|
||||||
\def\pdfoutlinedest{#4}%
|
\pdfoutline goto name{\pdfmkpgn{\pdfdestname}}#2{\pdfoutlinetext}%
|
||||||
\else
|
|
||||||
\txiescapepdf\pdfoutlinedest
|
|
||||||
\fi
|
|
||||||
%
|
|
||||||
% Also escape PDF chars in the display string.
|
|
||||||
\bgroup
|
|
||||||
\ifx \declaredencoding \latone
|
|
||||||
% The PDF format can use an extended form of Latin-1 in bookmark
|
|
||||||
% strings. See Appendix D of the PDF Reference, Sixth Edition, for
|
|
||||||
% the "PDFDocEncoding".
|
|
||||||
\passthroughcharstrue
|
|
||||||
\fi
|
|
||||||
\ifx \declaredencoding \utfeight
|
|
||||||
% TODO: the PDF format can use UTF-16 in bookmark strings, but the
|
|
||||||
% code for this isn't done yet.
|
|
||||||
\fi
|
|
||||||
\globaldefs=1
|
|
||||||
\edef\pdfoutlinetext{#1}%
|
|
||||||
\txiescapepdf\pdfoutlinetext
|
|
||||||
\egroup
|
|
||||||
%
|
|
||||||
\pdfoutline goto name{\pdfmkpgn{\pdfoutlinedest}}#2{\pdfoutlinetext}%
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
%
|
%
|
||||||
\def\pdfmakeoutlines{%
|
\def\pdfmakeoutlines{%
|
||||||
@ -1535,7 +1600,6 @@
|
|||||||
%
|
%
|
||||||
% For XeTeX
|
% For XeTeX
|
||||||
%
|
%
|
||||||
\newif\iftxiuseunicodedestname
|
|
||||||
\ifx\XeTeXrevision\thisisundefined
|
\ifx\XeTeXrevision\thisisundefined
|
||||||
\else
|
\else
|
||||||
%
|
%
|
||||||
@ -1608,44 +1672,51 @@
|
|||||||
\def\pdfdest name#1 xyz{%
|
\def\pdfdest name#1 xyz{%
|
||||||
\special{pdf:dest (#1) [@thispage /XYZ @xpos @ypos null]}%
|
\special{pdf:dest (#1) [@thispage /XYZ @xpos @ypos null]}%
|
||||||
}
|
}
|
||||||
\def\pdfmkdest#1{{%
|
%
|
||||||
|
\def\setpdfdestname#1{{%
|
||||||
% We have to set dummies so commands such as @code, and characters
|
% We have to set dummies so commands such as @code, and characters
|
||||||
% such as \, aren't expanded when present in a section title.
|
% such as \, aren't expanded when present in a section title.
|
||||||
\indexnofonts
|
\indexnofonts
|
||||||
\iftxiuseunicodedestname
|
|
||||||
\def\pdfdestname{#1}% Pass through Unicode characters.
|
|
||||||
\else
|
|
||||||
\edef\pdfdestname{#1}% Replace Unicode characters with ASCII.
|
|
||||||
\fi
|
|
||||||
\turnoffactive
|
|
||||||
\makevalueexpandable
|
\makevalueexpandable
|
||||||
|
\turnoffactive
|
||||||
|
\iftxiuseunicodedestname
|
||||||
|
% Pass through Unicode characters.
|
||||||
|
\else
|
||||||
|
% Use ASCII approximations in destination names.
|
||||||
|
\passthroughcharsfalse
|
||||||
|
\fi
|
||||||
|
\def\pdfdestname{#1}%
|
||||||
\txiescapepdf\pdfdestname
|
\txiescapepdf\pdfdestname
|
||||||
\safewhatsit{\pdfdest name{\pdfdestname} xyz}%
|
|
||||||
}}
|
}}
|
||||||
%
|
%
|
||||||
|
\def\setpdfoutlinetext#1{{%
|
||||||
|
\turnoffactive
|
||||||
|
% Always use Unicode characters in title texts.
|
||||||
|
\def\pdfoutlinetext{#1}%
|
||||||
|
% For XeTeX, xdvipdfmx converts to UTF-16.
|
||||||
|
% So we do not convert.
|
||||||
|
\txiescapepdf\pdfoutlinetext
|
||||||
|
}}
|
||||||
|
%
|
||||||
|
\def\pdfmkdest#1{%
|
||||||
|
\setpdfdestname{#1}%
|
||||||
|
\safewhatsit{\pdfdest name{\pdfdestname} xyz}%
|
||||||
|
}
|
||||||
|
%
|
||||||
% by default, use black for everything.
|
% by default, use black for everything.
|
||||||
\def\urlcolor{\rgbBlack}
|
\def\urlcolor{\rgbBlack}
|
||||||
\def\linkcolor{\rgbBlack}
|
\def\linkcolor{\rgbBlack}
|
||||||
\def\endlink{\setcolor{\maincolor}\pdfendlink}
|
\def\endlink{\setcolor{\maincolor}\pdfendlink}
|
||||||
%
|
%
|
||||||
\def\dopdfoutline#1#2#3#4{%
|
\def\dopdfoutline#1#2#3#4{%
|
||||||
\iftxiuseunicodedestname
|
\setpdfoutlinetext{#1}
|
||||||
\def\pdfoutlinedest{#3}% Pass through Unicode characters.
|
\setpdfdestname{#3}
|
||||||
\else
|
\ifx\pdfdestname\empty
|
||||||
\edef\pdfoutlinedest{#3}% Replace Unicode characters with ASCII.
|
\def\pdfdestname{#4}%
|
||||||
\fi
|
\fi
|
||||||
\ifx\pdfoutlinedest\empty
|
%
|
||||||
\def\pdfoutlinedest{#4}%
|
\special{pdf:out [-] #2 << /Title (\pdfoutlinetext) /A
|
||||||
\fi
|
<< /S /GoTo /D (\pdfdestname) >> >> }%
|
||||||
{
|
|
||||||
\turnoffactive
|
|
||||||
\txiescapepdf\pdfoutlinedest
|
|
||||||
\edef\pdfoutlinetext{#1}%
|
|
||||||
\txiescapepdf\pdfoutlinetext
|
|
||||||
%
|
|
||||||
\special{pdf:out [-] #2 << /Title (\pdfoutlinetext) /A
|
|
||||||
<< /S /GoTo /D (\pdfoutlinedest) >> >> }%
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
%
|
%
|
||||||
\def\pdfmakeoutlines{%
|
\def\pdfmakeoutlines{%
|
||||||
@ -4842,8 +4913,8 @@
|
|||||||
\definedummyletter\ %
|
\definedummyletter\ %
|
||||||
%
|
%
|
||||||
% For texindex which always views { and } as separators.
|
% For texindex which always views { and } as separators.
|
||||||
\def\{{\lbracechar}%
|
\def\{{\lbracechar{}}%
|
||||||
\def\}{\rbracechar}%
|
\def\}{\rbracechar{}}%
|
||||||
%
|
%
|
||||||
% Do the redefinitions.
|
% Do the redefinitions.
|
||||||
\definedummies
|
\definedummies
|
||||||
@ -4927,6 +4998,7 @@
|
|||||||
\definedummyword\TeX
|
\definedummyword\TeX
|
||||||
%
|
%
|
||||||
% Assorted special characters.
|
% Assorted special characters.
|
||||||
|
\definedummyword\atchar
|
||||||
\definedummyword\arrow
|
\definedummyword\arrow
|
||||||
\definedummyword\bullet
|
\definedummyword\bullet
|
||||||
\definedummyword\comma
|
\definedummyword\comma
|
||||||
@ -5143,37 +5215,40 @@
|
|||||||
\def\LaTeX{LaTeX}%
|
\def\LaTeX{LaTeX}%
|
||||||
\def\TeX{TeX}%
|
\def\TeX{TeX}%
|
||||||
%
|
%
|
||||||
% Assorted special characters.
|
% Assorted special characters. \defglyph gives the control sequence a
|
||||||
% (The following {} will end up in the sort string, but that's ok.)
|
% definition that removes the {} that follows its use.
|
||||||
\def\arrow{->}%
|
\defglyph\atchar{@}%
|
||||||
\def\bullet{bullet}%
|
\defglyph\arrow{->}%
|
||||||
\def\comma{,}%
|
\defglyph\bullet{bullet}%
|
||||||
\def\copyright{copyright}%
|
\defglyph\comma{,}%
|
||||||
\def\dots{...}%
|
\defglyph\copyright{copyright}%
|
||||||
\def\enddots{...}%
|
\defglyph\dots{...}%
|
||||||
\def\equiv{==}%
|
\defglyph\enddots{...}%
|
||||||
\def\error{error}%
|
\defglyph\equiv{==}%
|
||||||
\def\euro{euro}%
|
\defglyph\error{error}%
|
||||||
\def\expansion{==>}%
|
\defglyph\euro{euro}%
|
||||||
\def\geq{>=}%
|
\defglyph\expansion{==>}%
|
||||||
\def\guillemetleft{<<}%
|
\defglyph\geq{>=}%
|
||||||
\def\guillemetright{>>}%
|
\defglyph\guillemetleft{<<}%
|
||||||
\def\guilsinglleft{<}%
|
\defglyph\guillemetright{>>}%
|
||||||
\def\guilsinglright{>}%
|
\defglyph\guilsinglleft{<}%
|
||||||
\def\leq{<=}%
|
\defglyph\guilsinglright{>}%
|
||||||
\def\minus{-}%
|
\defglyph\leq{<=}%
|
||||||
\def\point{.}%
|
\defglyph\lbracechar{\{}%
|
||||||
\def\pounds{pounds}%
|
\defglyph\minus{-}%
|
||||||
\def\print{-|}%
|
\defglyph\point{.}%
|
||||||
\def\quotedblbase{"}%
|
\defglyph\pounds{pounds}%
|
||||||
\def\quotedblleft{"}%
|
\defglyph\print{-|}%
|
||||||
\def\quotedblright{"}%
|
\defglyph\quotedblbase{"}%
|
||||||
\def\quoteleft{`}%
|
\defglyph\quotedblleft{"}%
|
||||||
\def\quoteright{'}%
|
\defglyph\quotedblright{"}%
|
||||||
\def\quotesinglbase{,}%
|
\defglyph\quoteleft{`}%
|
||||||
\def\registeredsymbol{R}%
|
\defglyph\quoteright{'}%
|
||||||
\def\result{=>}%
|
\defglyph\quotesinglbase{,}%
|
||||||
\def\textdegree{o}%
|
\defglyph\rbracechar{\}}%
|
||||||
|
\defglyph\registeredsymbol{R}%
|
||||||
|
\defglyph\result{=>}%
|
||||||
|
\defglyph\textdegree{o}%
|
||||||
%
|
%
|
||||||
% We need to get rid of all macros, leaving only the arguments (if present).
|
% We need to get rid of all macros, leaving only the arguments (if present).
|
||||||
% Of course this is not nearly correct, but it is the best we can do for now.
|
% Of course this is not nearly correct, but it is the best we can do for now.
|
||||||
@ -5188,6 +5263,7 @@
|
|||||||
\macrolist
|
\macrolist
|
||||||
\let\value\indexnofontsvalue
|
\let\value\indexnofontsvalue
|
||||||
}
|
}
|
||||||
|
\def\defglyph#1#2{\def#1##1{#2}} % see above
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -5465,7 +5541,7 @@
|
|||||||
\let\indexlbrace\{ % Likewise, set these sequences for braces
|
\let\indexlbrace\{ % Likewise, set these sequences for braces
|
||||||
\let\indexrbrace\} % used in the sort key.
|
\let\indexrbrace\} % used in the sort key.
|
||||||
\begindoublecolumns
|
\begindoublecolumns
|
||||||
\let\entryorphanpenalty=\indexorphanpenalty
|
\let\entrywidowpenalty=\indexwidowpenalty
|
||||||
%
|
%
|
||||||
% Read input from the index file line by line.
|
% Read input from the index file line by line.
|
||||||
\loopdo
|
\loopdo
|
||||||
@ -5565,6 +5641,12 @@
|
|||||||
%
|
%
|
||||||
\def\entry{%
|
\def\entry{%
|
||||||
\begingroup
|
\begingroup
|
||||||
|
%
|
||||||
|
% For pdfTeX and XeTeX.
|
||||||
|
% The redefinition of \domark stops marks being added in \pdflink to
|
||||||
|
% preserve coloured links across page boundaries. Otherwise the marks
|
||||||
|
% would get in the way of \lastbox in \insertindexentrybox.
|
||||||
|
\let\domark\relax
|
||||||
%
|
%
|
||||||
% Start a new paragraph if necessary, so our assignments below can't
|
% Start a new paragraph if necessary, so our assignments below can't
|
||||||
% affect previous text.
|
% affect previous text.
|
||||||
@ -5579,10 +5661,6 @@
|
|||||||
\def\*{\unskip\space\ignorespaces}%
|
\def\*{\unskip\space\ignorespaces}%
|
||||||
\def\entrybreak{\hfil\break}% An undocumented command
|
\def\entrybreak{\hfil\break}% An undocumented command
|
||||||
%
|
%
|
||||||
% A bit of stretch before each entry for the benefit of balancing
|
|
||||||
% columns.
|
|
||||||
\vskip 0pt plus0.5pt
|
|
||||||
%
|
|
||||||
% Swallow the left brace of the text (first parameter):
|
% Swallow the left brace of the text (first parameter):
|
||||||
\afterassignment\doentry
|
\afterassignment\doentry
|
||||||
\let\temp =
|
\let\temp =
|
||||||
@ -5616,20 +5694,13 @@
|
|||||||
%
|
%
|
||||||
\ifpdf
|
\ifpdf
|
||||||
\pdfgettoks#1.%
|
\pdfgettoks#1.%
|
||||||
\bgroup\let\domark\relax
|
\hskip\skip\thinshrinkable\the\toksA
|
||||||
\hskip\skip\thinshrinkable\the\toksA
|
|
||||||
\egroup
|
|
||||||
% The redefinion of \domark stops marks being added in \pdflink to
|
|
||||||
% preserve coloured links across page boundaries. Otherwise the marks
|
|
||||||
% would get in the way of \lastbox in \insertindexentrybox.
|
|
||||||
\else
|
\else
|
||||||
\ifx\XeTeXrevision\thisisundefined
|
\ifx\XeTeXrevision\thisisundefined
|
||||||
\hskip\skip\thinshrinkable #1%
|
\hskip\skip\thinshrinkable #1%
|
||||||
\else
|
\else
|
||||||
\pdfgettoks#1.%
|
\pdfgettoks#1.%
|
||||||
\bgroup\let\domark\relax
|
\hskip\skip\thinshrinkable\the\toksA
|
||||||
\hskip\skip\thinshrinkable\the\toksA
|
|
||||||
\egroup
|
|
||||||
\fi
|
\fi
|
||||||
\fi
|
\fi
|
||||||
\fi
|
\fi
|
||||||
@ -5638,11 +5709,10 @@
|
|||||||
\global\setbox\entryindexbox=\vbox{\unhbox\boxA}%
|
\global\setbox\entryindexbox=\vbox{\unhbox\boxA}%
|
||||||
\else
|
\else
|
||||||
\global\setbox\entryindexbox=\vbox\bgroup
|
\global\setbox\entryindexbox=\vbox\bgroup
|
||||||
\prevdepth=\entrylinedepth
|
|
||||||
\noindent
|
|
||||||
% We want the text of the entries to be aligned to the left, and the
|
% We want the text of the entries to be aligned to the left, and the
|
||||||
% page numbers to be aligned to the right.
|
% page numbers to be aligned to the right.
|
||||||
%
|
%
|
||||||
|
\parindent = 0pt
|
||||||
\advance\leftskip by 0pt plus 1fil
|
\advance\leftskip by 0pt plus 1fil
|
||||||
\advance\leftskip by 0pt plus -1fill
|
\advance\leftskip by 0pt plus -1fill
|
||||||
\rightskip = 0pt plus -1fil
|
\rightskip = 0pt plus -1fil
|
||||||
@ -5651,8 +5721,6 @@
|
|||||||
% if the list of page numbers is long, to be aligned to the right.
|
% if the list of page numbers is long, to be aligned to the right.
|
||||||
\parfillskip=0pt plus -1fill
|
\parfillskip=0pt plus -1fill
|
||||||
%
|
%
|
||||||
\hangindent=1em
|
|
||||||
%
|
|
||||||
\advance\rightskip by \entryrightmargin
|
\advance\rightskip by \entryrightmargin
|
||||||
% Determine how far we can stretch into the margin.
|
% Determine how far we can stretch into the margin.
|
||||||
% This allows, e.g., "Appendix H GNU Free Documentation License" to
|
% This allows, e.g., "Appendix H GNU Free Documentation License" to
|
||||||
@ -5672,17 +5740,21 @@
|
|||||||
\ifdim\dimen@ > 0.8\dimen@ii % due to long index text
|
\ifdim\dimen@ > 0.8\dimen@ii % due to long index text
|
||||||
\dimen@ = 0.7\dimen@ % Try to split the text roughly evenly
|
\dimen@ = 0.7\dimen@ % Try to split the text roughly evenly
|
||||||
\dimen@ii = \hsize
|
\dimen@ii = \hsize
|
||||||
\advance \dimen@ii by -1em
|
|
||||||
\ifnum\dimen@>\dimen@ii
|
\ifnum\dimen@>\dimen@ii
|
||||||
% If the entry is too long, use the whole line
|
% If the entry is too long, use the whole line
|
||||||
\dimen@ = \dimen@ii
|
\dimen@ = \dimen@ii
|
||||||
\fi
|
\fi
|
||||||
\advance\leftskip by 0pt plus 1fill % ragged right
|
\advance\leftskip by 0pt plus 1fill % ragged right
|
||||||
\advance \dimen@ by 1\rightskip
|
\advance \dimen@ by 1\rightskip
|
||||||
\parshape = 2 0pt \dimen@ 1em \dimen@ii
|
\parshape = 2 0pt \dimen@ 0em \dimen@ii
|
||||||
% Ideally we'd add a finite glue at the end of the first line only, but
|
% Ideally we'd add a finite glue at the end of the first line only,
|
||||||
% TeX doesn't seem to provide a way to do such a thing.
|
% instead of using \parshape with explicit line lengths, but TeX
|
||||||
|
% doesn't seem to provide a way to do such a thing.
|
||||||
|
%
|
||||||
|
\leftskip = 1em
|
||||||
|
\parindent = -1em
|
||||||
\fi\fi
|
\fi\fi
|
||||||
|
\indent % start paragraph
|
||||||
\unhbox\boxA
|
\unhbox\boxA
|
||||||
%
|
%
|
||||||
% Do not prefer a separate line ending with a hyphen to fewer lines.
|
% Do not prefer a separate line ending with a hyphen to fewer lines.
|
||||||
@ -5700,7 +5772,7 @@
|
|||||||
\endgroup
|
\endgroup
|
||||||
% delay text of entry until after penalty
|
% delay text of entry until after penalty
|
||||||
\bgroup\aftergroup\insertindexentrybox
|
\bgroup\aftergroup\insertindexentrybox
|
||||||
\entryorphanpenalty
|
\entrywidowpenalty
|
||||||
}}
|
}}
|
||||||
|
|
||||||
\newskip\thinshrinkable
|
\newskip\thinshrinkable
|
||||||
@ -5708,40 +5780,43 @@
|
|||||||
|
|
||||||
\newbox\entryindexbox
|
\newbox\entryindexbox
|
||||||
\def\insertindexentrybox{%
|
\def\insertindexentrybox{%
|
||||||
\copy\entryindexbox
|
\ourunvbox\entryindexbox
|
||||||
% The following gets the depth of the last box. This is for even
|
|
||||||
% line spacing when entries span several lines.
|
|
||||||
\setbox\dummybox\vbox{%
|
|
||||||
\unvbox\entryindexbox
|
|
||||||
\nointerlineskip
|
|
||||||
\lastbox
|
|
||||||
\global\entrylinedepth=\prevdepth
|
|
||||||
}%
|
|
||||||
% Note that we couldn't simply \unvbox\entryindexbox followed by
|
|
||||||
% \nointerlineskip\lastbox to remove the last box and then reinstate it,
|
|
||||||
% because this resets how far the box has been \moveleft'ed to 0. \unvbox
|
|
||||||
% doesn't affect \prevdepth either.
|
|
||||||
}
|
}
|
||||||
\newdimen\entrylinedepth
|
|
||||||
|
% Use \lastbox to take apart vbox box by box, and add each sub-box
|
||||||
|
% to the current vertical list.
|
||||||
|
\def\ourunvbox#1{%
|
||||||
|
\bgroup % for local binding of \delayedbox
|
||||||
|
% Remove the last box from box #1
|
||||||
|
\global\setbox#1=\vbox{%
|
||||||
|
\unvbox#1%
|
||||||
|
\unskip % remove any glue
|
||||||
|
\unpenalty
|
||||||
|
\global\setbox\interbox=\lastbox
|
||||||
|
}%
|
||||||
|
\setbox\delayedbox=\box\interbox
|
||||||
|
\ifdim\ht#1=0pt\else
|
||||||
|
\ourunvbox#1 % Repeat on what's left of the box
|
||||||
|
\nobreak
|
||||||
|
\fi
|
||||||
|
\box\delayedbox
|
||||||
|
\egroup
|
||||||
|
}
|
||||||
|
\newbox\delayedbox
|
||||||
|
\newbox\interbox
|
||||||
|
|
||||||
% Default is no penalty
|
% Default is no penalty
|
||||||
\let\entryorphanpenalty\egroup
|
\let\entrywidowpenalty\egroup
|
||||||
|
|
||||||
% Used from \printindex. \firsttoken should be the first token
|
% Used from \printindex. \firsttoken should be the first token
|
||||||
% after the \entry. If it's not another \entry, we are at the last
|
% after the \entry. If it's not another \entry, we are at the last
|
||||||
% line of a group of index entries, so insert a penalty to discourage
|
% line of a group of index entries, so insert a penalty to discourage
|
||||||
% orphaned index entries.
|
% widowed index entries.
|
||||||
\long\def\indexorphanpenalty{%
|
\long\def\indexwidowpenalty{%
|
||||||
\def\isentry{\entry}%
|
\def\isentry{\entry}%
|
||||||
\ifx\firsttoken\isentry
|
\ifx\firsttoken\isentry
|
||||||
\else
|
\else
|
||||||
\unskip\penalty 9000
|
\penalty 9000
|
||||||
% The \unskip here stops breaking before the glue. It relies on the
|
|
||||||
% \vskip above being there, otherwise there is an error
|
|
||||||
% "You can't use `\unskip' in vertical mode". There has to be glue
|
|
||||||
% in the current vertical list that hasn't been added to the
|
|
||||||
% "current page". See Chapter 24 of the TeXbook. This contradicts
|
|
||||||
% Section 8.3.7 in "TeX by Topic," though.
|
|
||||||
\fi
|
\fi
|
||||||
\egroup % now comes the box added with \aftergroup
|
\egroup % now comes the box added with \aftergroup
|
||||||
}
|
}
|
||||||
@ -5781,8 +5856,6 @@
|
|||||||
|
|
||||||
\newbox\partialpage
|
\newbox\partialpage
|
||||||
\newdimen\doublecolumnhsize
|
\newdimen\doublecolumnhsize
|
||||||
\newdimen\doublecolumntopgap
|
|
||||||
\doublecolumntopgap = 0pt
|
|
||||||
|
|
||||||
% Use inside an output routine to save \topmark and \firstmark
|
% Use inside an output routine to save \topmark and \firstmark
|
||||||
\def\savemarks{%
|
\def\savemarks{%
|
||||||
@ -5865,12 +5938,10 @@
|
|||||||
%
|
%
|
||||||
% Double the \vsize as well. (We don't need a separate register here,
|
% Double the \vsize as well. (We don't need a separate register here,
|
||||||
% since nobody clobbers \vsize.)
|
% since nobody clobbers \vsize.)
|
||||||
\global\doublecolumntopgap = \topskip
|
|
||||||
\global\advance\doublecolumntopgap by -1\baselineskip
|
|
||||||
\advance\vsize by -1\doublecolumntopgap
|
|
||||||
\vsize = 2\vsize
|
\vsize = 2\vsize
|
||||||
\topskip=0pt
|
%
|
||||||
\global\entrylinedepth=0pt\relax
|
% For the benefit of balancing columns
|
||||||
|
\advance\baselineskip by 0pt plus 0.5pt
|
||||||
}
|
}
|
||||||
|
|
||||||
% The double-column output routine for all double-column pages except
|
% The double-column output routine for all double-column pages except
|
||||||
@ -5900,9 +5971,7 @@
|
|||||||
%
|
%
|
||||||
\hsize = \doublecolumnhsize
|
\hsize = \doublecolumnhsize
|
||||||
\wd0=\hsize \wd2=\hsize
|
\wd0=\hsize \wd2=\hsize
|
||||||
\vbox{%
|
\hbox to\txipagewidth{\box0\hfil\box2}%
|
||||||
\vskip\doublecolumntopgap
|
|
||||||
\hbox to\txipagewidth{\box0\hfil\box2}}%
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -5982,10 +6051,6 @@
|
|||||||
\loop
|
\loop
|
||||||
\global\setbox3 = \copy0
|
\global\setbox3 = \copy0
|
||||||
\global\setbox1 = \vsplit3 to \dimen@
|
\global\setbox1 = \vsplit3 to \dimen@
|
||||||
% Remove glue from bottom of columns to compare
|
|
||||||
% apparent heights.
|
|
||||||
\global\setbox1 = \vbox{\unvbox1\unpenalty\unskip}%
|
|
||||||
\global\setbox3 = \vbox{\unvbox3\unpenalty\unskip}%
|
|
||||||
\ifdim\ht1<\ht3
|
\ifdim\ht1<\ht3
|
||||||
\global\advance\dimen@ by 1pt
|
\global\advance\dimen@ by 1pt
|
||||||
\repeat
|
\repeat
|
||||||
@ -5998,8 +6063,8 @@
|
|||||||
% Just split the last of the double column material roughly in half.
|
% Just split the last of the double column material roughly in half.
|
||||||
\setbox2=\box0
|
\setbox2=\box0
|
||||||
\setbox0 = \vsplit2 to \dimen@ii
|
\setbox0 = \vsplit2 to \dimen@ii
|
||||||
\setbox0=\vbox to\dimen@ii{\unvbox0}%
|
\setbox0=\vbox to \dimen@ii {\unvbox0\vfill}%
|
||||||
\setbox2=\vbox to\dimen@ii{\unvbox2}%
|
\setbox2=\vbox to \dimen@ii {\unvbox2\vfill}%
|
||||||
\else
|
\else
|
||||||
% Compare the heights of the two columns.
|
% Compare the heights of the two columns.
|
||||||
\ifdim4\ht1>5\ht3
|
\ifdim4\ht1>5\ht3
|
||||||
@ -6009,8 +6074,8 @@
|
|||||||
\setbox0=\vbox to \ht1 {\unvbox1\vfill}%
|
\setbox0=\vbox to \ht1 {\unvbox1\vfill}%
|
||||||
\else
|
\else
|
||||||
% Make column bottoms flush with each other.
|
% Make column bottoms flush with each other.
|
||||||
\setbox0=\vbox to\dimen@{\unvbox1}%
|
\setbox2=\vbox to\ht1{\unvbox3\unskip}%
|
||||||
\setbox2=\vbox to\dimen@{\unvbox3}%
|
\setbox0=\vbox to\ht1{\unvbox1\unskip}%
|
||||||
\fi
|
\fi
|
||||||
\fi
|
\fi
|
||||||
\fi
|
\fi
|
||||||
@ -8846,32 +8911,26 @@
|
|||||||
% For pdfTeX and LuaTeX
|
% For pdfTeX and LuaTeX
|
||||||
{\indexnofonts
|
{\indexnofonts
|
||||||
\makevalueexpandable
|
\makevalueexpandable
|
||||||
%
|
|
||||||
% This (wrongly) does not take account of leading or trailing
|
|
||||||
% spaces in #1, which should be ignored.
|
|
||||||
\ifx\luatexversion\thisisundefined
|
|
||||||
\edef\pdfxrefdest{#1}% pdfTeX: Replace Unicode characters with ASCII.
|
|
||||||
\else
|
|
||||||
\def\pdfxrefdest{#1}% LuaTeX: Pass through Unicode characters.
|
|
||||||
\fi
|
|
||||||
\turnoffactive
|
\turnoffactive
|
||||||
% This expands tokens, so do it after making catcode changes, so _
|
% This expands tokens, so do it after making catcode changes, so _
|
||||||
% etc. don't get their TeX definitions. This ignores all spaces in
|
% etc. don't get their TeX definitions. This ignores all spaces in
|
||||||
% #4, including (wrongly) those in the middle of the filename.
|
% #4, including (wrongly) those in the middle of the filename.
|
||||||
\getfilename{#4}%
|
\getfilename{#4}%
|
||||||
%
|
%
|
||||||
\ifx\pdfxrefdest\empty
|
% This (wrongly) does not take account of leading or trailing
|
||||||
\def\pdfxrefdest{Top}% no empty targets
|
% spaces in #1, which should be ignored.
|
||||||
\else
|
\setpdfdestname{#1}%
|
||||||
\txiescapepdf\pdfxrefdest % escape PDF special chars
|
%
|
||||||
|
\ifx\pdfdestname\empty
|
||||||
|
\def\pdfdestname{Top}% no empty targets
|
||||||
\fi
|
\fi
|
||||||
%
|
%
|
||||||
\leavevmode
|
\leavevmode
|
||||||
\startlink attr{/Border [0 0 0]}%
|
\startlink attr{/Border [0 0 0]}%
|
||||||
\ifnum\filenamelength>0
|
\ifnum\filenamelength>0
|
||||||
goto file{\the\filename.pdf} name{\pdfxrefdest}%
|
goto file{\the\filename.pdf} name{\pdfdestname}%
|
||||||
\else
|
\else
|
||||||
goto name{\pdfmkpgn{\pdfxrefdest}}%
|
goto name{\pdfmkpgn{\pdfdestname}}%
|
||||||
\fi
|
\fi
|
||||||
}%
|
}%
|
||||||
\setcolor{\linkcolor}%
|
\setcolor{\linkcolor}%
|
||||||
@ -8881,24 +8940,18 @@
|
|||||||
% For XeTeX
|
% For XeTeX
|
||||||
{\indexnofonts
|
{\indexnofonts
|
||||||
\makevalueexpandable
|
\makevalueexpandable
|
||||||
%
|
|
||||||
% This (wrongly) does not take account of leading or trailing
|
|
||||||
% spaces in #1, which should be ignored.
|
|
||||||
\iftxiuseunicodedestname
|
|
||||||
\def\pdfxrefdest{#1}% Pass through Unicode characters.
|
|
||||||
\else
|
|
||||||
\edef\pdfxrefdest{#1}% Replace Unicode characters with ASCII.
|
|
||||||
\fi
|
|
||||||
\turnoffactive
|
\turnoffactive
|
||||||
% This expands tokens, so do it after making catcode changes, so _
|
% This expands tokens, so do it after making catcode changes, so _
|
||||||
% etc. don't get their TeX definitions. This ignores all spaces in
|
% etc. don't get their TeX definitions. This ignores all spaces in
|
||||||
% #4, including (wrongly) those in the middle of the filename.
|
% #4, including (wrongly) those in the middle of the filename.
|
||||||
\getfilename{#4}%
|
\getfilename{#4}%
|
||||||
%
|
%
|
||||||
\ifx\pdfxrefdest\empty
|
% This (wrongly) does not take account of leading or trailing
|
||||||
\def\pdfxrefdest{Top}% no empty targets
|
% spaces in #1, which should be ignored.
|
||||||
\else
|
\setpdfdestname{#1}%
|
||||||
\txiescapepdf\pdfxrefdest % escape PDF special chars
|
%
|
||||||
|
\ifx\pdfdestname\empty
|
||||||
|
\def\pdfdestname{Top}% no empty targets
|
||||||
\fi
|
\fi
|
||||||
%
|
%
|
||||||
\leavevmode
|
\leavevmode
|
||||||
@ -8912,10 +8965,10 @@
|
|||||||
% this command line option is no longer necessary
|
% this command line option is no longer necessary
|
||||||
% because we can use the `dvipdfmx:config' special.
|
% because we can use the `dvipdfmx:config' special.
|
||||||
\special{pdf:bann << /Border [0 0 0] /Type /Annot /Subtype /Link /A
|
\special{pdf:bann << /Border [0 0 0] /Type /Annot /Subtype /Link /A
|
||||||
<< /S /GoToR /F (\the\filename.pdf) /D (\pdfxrefdest) >> >>}%
|
<< /S /GoToR /F (\the\filename.pdf) /D (\pdfdestname) >> >>}%
|
||||||
\else
|
\else
|
||||||
\special{pdf:bann << /Border [0 0 0] /Type /Annot /Subtype /Link /A
|
\special{pdf:bann << /Border [0 0 0] /Type /Annot /Subtype /Link /A
|
||||||
<< /S /GoTo /D (\pdfxrefdest) >> >>}%
|
<< /S /GoTo /D (\pdfdestname) >> >>}%
|
||||||
\fi
|
\fi
|
||||||
}%
|
}%
|
||||||
\setcolor{\linkcolor}%
|
\setcolor{\linkcolor}%
|
||||||
@ -9975,7 +10028,7 @@
|
|||||||
\ifx \declaredencoding \ascii
|
\ifx \declaredencoding \ascii
|
||||||
\else
|
\else
|
||||||
\message{Warning: XeTeX with non-UTF-8 encodings cannot handle %
|
\message{Warning: XeTeX with non-UTF-8 encodings cannot handle %
|
||||||
non-ASCII characters in auxiallity files.}%
|
non-ASCII characters in auxiliary files.}%
|
||||||
\fi
|
\fi
|
||||||
\fi
|
\fi
|
||||||
\fi
|
\fi
|
||||||
|
@ -51,6 +51,8 @@ extern "C"
|
|||||||
void *_alloca (unsigned short);
|
void *_alloca (unsigned short);
|
||||||
# pragma intrinsic (_alloca)
|
# pragma intrinsic (_alloca)
|
||||||
# define alloca _alloca
|
# define alloca _alloca
|
||||||
|
# elif defined __MVS__
|
||||||
|
# include <stdlib.h>
|
||||||
# else
|
# else
|
||||||
# include <stddef.h>
|
# include <stddef.h>
|
||||||
# ifdef __cplusplus
|
# ifdef __cplusplus
|
||||||
|
@ -416,15 +416,15 @@ _GL_WARN_ON_USE (strncat, "strncat is unportable - "
|
|||||||
# undef strndup
|
# undef strndup
|
||||||
# define strndup rpl_strndup
|
# define strndup rpl_strndup
|
||||||
# endif
|
# endif
|
||||||
_GL_FUNCDECL_RPL (strndup, char *, (char const *__string, size_t __n)
|
_GL_FUNCDECL_RPL (strndup, char *, (char const *__s, size_t __n)
|
||||||
_GL_ARG_NONNULL ((1)));
|
_GL_ARG_NONNULL ((1)));
|
||||||
_GL_CXXALIAS_RPL (strndup, char *, (char const *__string, size_t __n));
|
_GL_CXXALIAS_RPL (strndup, char *, (char const *__s, size_t __n));
|
||||||
# else
|
# else
|
||||||
# if ! @HAVE_DECL_STRNDUP@
|
# if ! @HAVE_DECL_STRNDUP@
|
||||||
_GL_FUNCDECL_SYS (strndup, char *, (char const *__string, size_t __n)
|
_GL_FUNCDECL_SYS (strndup, char *, (char const *__s, size_t __n)
|
||||||
_GL_ARG_NONNULL ((1)));
|
_GL_ARG_NONNULL ((1)));
|
||||||
# endif
|
# endif
|
||||||
_GL_CXXALIAS_SYS (strndup, char *, (char const *__string, size_t __n));
|
_GL_CXXALIAS_SYS (strndup, char *, (char const *__s, size_t __n));
|
||||||
# endif
|
# endif
|
||||||
_GL_CXXALIASWARN (strndup);
|
_GL_CXXALIASWARN (strndup);
|
||||||
#elif defined GNULIB_POSIXCHECK
|
#elif defined GNULIB_POSIXCHECK
|
||||||
@ -444,17 +444,17 @@ _GL_WARN_ON_USE (strndup, "strndup is unportable - "
|
|||||||
# undef strnlen
|
# undef strnlen
|
||||||
# define strnlen rpl_strnlen
|
# define strnlen rpl_strnlen
|
||||||
# endif
|
# endif
|
||||||
_GL_FUNCDECL_RPL (strnlen, size_t, (char const *__string, size_t __maxlen)
|
_GL_FUNCDECL_RPL (strnlen, size_t, (char const *__s, size_t __maxlen)
|
||||||
_GL_ATTRIBUTE_PURE
|
_GL_ATTRIBUTE_PURE
|
||||||
_GL_ARG_NONNULL ((1)));
|
_GL_ARG_NONNULL ((1)));
|
||||||
_GL_CXXALIAS_RPL (strnlen, size_t, (char const *__string, size_t __maxlen));
|
_GL_CXXALIAS_RPL (strnlen, size_t, (char const *__s, size_t __maxlen));
|
||||||
# else
|
# else
|
||||||
# if ! @HAVE_DECL_STRNLEN@
|
# if ! @HAVE_DECL_STRNLEN@
|
||||||
_GL_FUNCDECL_SYS (strnlen, size_t, (char const *__string, size_t __maxlen)
|
_GL_FUNCDECL_SYS (strnlen, size_t, (char const *__s, size_t __maxlen)
|
||||||
_GL_ATTRIBUTE_PURE
|
_GL_ATTRIBUTE_PURE
|
||||||
_GL_ARG_NONNULL ((1)));
|
_GL_ARG_NONNULL ((1)));
|
||||||
# endif
|
# endif
|
||||||
_GL_CXXALIAS_SYS (strnlen, size_t, (char const *__string, size_t __maxlen));
|
_GL_CXXALIAS_SYS (strnlen, size_t, (char const *__s, size_t __maxlen));
|
||||||
# endif
|
# endif
|
||||||
_GL_CXXALIASWARN (strnlen);
|
_GL_CXXALIASWARN (strnlen);
|
||||||
#elif defined GNULIB_POSIXCHECK
|
#elif defined GNULIB_POSIXCHECK
|
||||||
|
Loading…
Reference in New Issue
Block a user