aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Eggert2016-08-21 04:25:24 -0700
committerPaul Eggert2016-08-21 04:26:53 -0700
commit1f7302563ae03e20e0a2f90a950c164f8bc17941 (patch)
tree28806818138913e060af655464eecd7f60d68f75
parent886b9ed80c88b8f729ea9760f904b8c0ef63664f (diff)
downloademacs-1f7302563ae03e20e0a2f90a950c164f8bc17941.tar.gz
emacs-1f7302563ae03e20e0a2f90a950c164f8bc17941.zip
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.
-rw-r--r--doc/misc/texinfo.tex425
-rw-r--r--lib/alloca.in.h2
-rw-r--r--lib/string.in.h16
3 files changed, 249 insertions, 194 deletions
diff --git a/doc/misc/texinfo.tex b/doc/misc/texinfo.tex
index 5a1f728da48..5e260ed8f9c 100644
--- a/doc/misc/texinfo.tex
+++ b/doc/misc/texinfo.tex
@@ -3,7 +3,7 @@
3% Load plain if necessary, i.e., if running under initex. 3% Load plain if necessary, i.e., if running under initex.
4\expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi 4\expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
5% 5%
6\def\texinfoversion{2016-08-03.13} 6\def\texinfoversion{2016-08-16.20}
7% 7%
8% Copyright 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995, 8% Copyright 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995,
9% 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 9% 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
@@ -1108,9 +1108,14 @@ where each line of input produces a line of output.}
1108% For LuaTeX 1108% For LuaTeX
1109% 1109%
1110 1110
1111\newif\iftxiuseunicodedestname
1112\txiuseunicodedestnamefalse % For pdfTeX etc.
1113
1111\ifx\luatexversion\thisisundefined 1114\ifx\luatexversion\thisisundefined
1112\else 1115\else
1113 % Escape PDF strings UTF-8 to UTF-16 1116 % Use Unicode destination names
1117 \txiuseunicodedestnametrue
1118 % Escape PDF strings with converting UTF-16 from UTF-8
1114 \begingroup 1119 \begingroup
1115 \catcode`\%=12 1120 \catcode`\%=12
1116 \directlua{ 1121 \directlua{
@@ -1138,7 +1143,24 @@ where each line of input produces a line of output.}
1138 end 1143 end
1139 } 1144 }
1140 \endgroup 1145 \endgroup
1141 \def\pdfescapestring#1{\directlua{UTF16oct('\luaescapestring{#1}')}} 1146 \def\pdfescapestrutfsixteen#1{\directlua{UTF16oct('\luaescapestring{#1}')}}
1147 % Escape PDF strings without converting
1148 \begingroup
1149 \directlua{
1150 function PDFescstr(str)
1151 for c in string.bytes(str) do
1152 if c <= 0x20 or c >= 0x80 or c == 0x28 or c == 0x29 or c == 0x5c then
1153 tex.sprint(
1154 string.format(string.char(0x5c) .. string.char(0x25) .. '03o',
1155 c))
1156 else
1157 tex.sprint(string.char(c))
1158 end
1159 end
1160 end
1161 }
1162 \endgroup
1163 \def\pdfescapestring#1{\directlua{PDFescstr('\luaescapestring{#1}')}}
1142 \ifnum\luatexversion>84 1164 \ifnum\luatexversion>84
1143 % For LuaTeX >= 0.85 1165 % For LuaTeX >= 0.85
1144 \def\pdfdest{\pdfextension dest} 1166 \def\pdfdest{\pdfextension dest}
@@ -1199,6 +1221,14 @@ where each line of input produces a line of output.}
1199 \xdef#1{\pdfescapestring{#1}}% 1221 \xdef#1{\pdfescapestring{#1}}%
1200 \fi 1222 \fi
1201} 1223}
1224\def\txiescapepdfutfsixteen#1{%
1225 \ifx\pdfescapestrutfsixteen\thisisundefined
1226 % No UTF-16 converting macro available.
1227 \txiescapepdf{#1}%
1228 \else
1229 \xdef#1{\pdfescapestrutfsixteen{#1}}%
1230 \fi
1231}
1202 1232
1203\newhelp\nopdfimagehelp{Texinfo supports .png, .jpg, .jpeg, and .pdf images 1233\newhelp\nopdfimagehelp{Texinfo supports .png, .jpg, .jpeg, and .pdf images
1204with PDF output, and none of those formats could be found. (.eps cannot 1234with PDF output, and none of those formats could be found. (.eps cannot
@@ -1308,19 +1338,77 @@ output) for that.)}
1308 \pdfrefximage \pdflastximage 1338 \pdfrefximage \pdflastximage
1309 \fi} 1339 \fi}
1310 % 1340 %
1311 \def\pdfmkdest#1{{% 1341 \def\setpdfdestname#1{{%
1312 % We have to set dummies so commands such as @code, and characters 1342 % We have to set dummies so commands such as @code, and characters
1313 % such as \, aren't expanded when present in a section title. 1343 % such as \, aren't expanded when present in a section title.
1314 \indexnofonts 1344 \indexnofonts
1315 \makevalueexpandable 1345 \makevalueexpandable
1316 \turnoffactive 1346 \turnoffactive
1317 % Use ASCII approximations in destination names. 1347 \iftxiuseunicodedestname
1318 \passthroughcharsfalse 1348 \ifx \declaredencoding \latone
1349 % Pass through Latin-1 characters.
1350 % LuaTeX with byte wise I/O converts Latin-1 characters to Unicode.
1351 \else
1352 \ifx \declaredencoding \utfeight
1353 % Pass through Unicode characters.
1354 \else
1355 % Use ASCII approximations in destination names.
1356 \passthroughcharsfalse
1357 \fi
1358 \fi
1359 \else
1360 % Use ASCII approximations in destination names.
1361 \passthroughcharsfalse
1362 \fi
1319 \def\pdfdestname{#1}% 1363 \def\pdfdestname{#1}%
1320 \txiescapepdf\pdfdestname 1364 \txiescapepdf\pdfdestname
1321 \safewhatsit{\pdfdest name{\pdfdestname} xyz}%
1322 }} 1365 }}
1323 % 1366 %
1367 \def\setpdfoutlinetext#1{{%
1368 \indexnofonts
1369 \makevalueexpandable
1370 \turnoffactive
1371 \ifx \declaredencoding \latone
1372 % The PDF format can use an extended form of Latin-1 in bookmark
1373 % strings. See Appendix D of the PDF Reference, Sixth Edition, for
1374 % the "PDFDocEncoding".
1375 \passthroughcharstrue
1376 % Pass through Latin-1 characters.
1377 % LuaTeX: Convert to Unicode
1378 % pdfTeX: Use Latin-1 as PDFDocEncoding
1379 \def\pdfoutlinetext{#1}%
1380 \else
1381 \ifx \declaredencoding \utfeight
1382 \ifx\luatexversion\thisisundefined
1383 % For pdfTeX with UTF-8.
1384 % TODO: the PDF format can use UTF-16 in bookmark strings,
1385 % but the code for this isn't done yet.
1386 % Use ASCII approximations.
1387 \passthroughcharsfalse
1388 \def\pdfoutlinetext{#1}%
1389 \else
1390 % For LuaTeX with UTF-8.
1391 % Pass through Unicode characters for title texts.
1392 \passthroughcharstrue
1393 \def\pdfoutlinetext{#1}%
1394 \fi
1395 \else
1396 % For non-Latin-1 or non-UTF-8 encodings.
1397 % Use ASCII approximations.
1398 \passthroughcharsfalse
1399 \def\pdfoutlinetext{#1}%
1400 \fi
1401 \fi
1402 % LuaTeX: Convert to UTF-16
1403 % pdfTeX: Use Latin-1 as PDFDocEncoding
1404 \txiescapepdfutfsixteen\pdfoutlinetext
1405 }}
1406 %
1407 \def\pdfmkdest#1{%
1408 \setpdfdestname{#1}%
1409 \safewhatsit{\pdfdest name{\pdfdestname} xyz}%
1410 }
1411 %
1324 % used to mark target names; must be expandable. 1412 % used to mark target names; must be expandable.
1325 \def\pdfmkpgn#1{#1} 1413 \def\pdfmkpgn#1{#1}
1326 % 1414 %
@@ -1348,36 +1436,13 @@ output) for that.)}
1348 % page number. We could generate a destination for the section 1436 % page number. We could generate a destination for the section
1349 % text in the case where a section has no node, but it doesn't 1437 % text in the case where a section has no node, but it doesn't
1350 % seem worth the trouble, since most documents are normally structured. 1438 % seem worth the trouble, since most documents are normally structured.
1351 { 1439 \setpdfoutlinetext{#1}
1352 \ifx\luatexversion\thisisundefined \else 1440 \setpdfdestname{#3}
1353 \turnoffactive % LuaTeX can use Unicode strings for PDF 1441 \ifx\pdfdestname\empty
1354 \fi 1442 \def\pdfdestname{#4}%
1355 \edef\pdfoutlinedest{#3}% 1443 \fi
1356 \ifx\pdfoutlinedest\empty 1444 %
1357 \def\pdfoutlinedest{#4}% 1445 \pdfoutline goto name{\pdfmkpgn{\pdfdestname}}#2{\pdfoutlinetext}%
1358 \else
1359 \txiescapepdf\pdfoutlinedest
1360 \fi
1361 %
1362 % Also escape PDF chars in the display string.
1363 \bgroup
1364 \ifx \declaredencoding \latone
1365 % The PDF format can use an extended form of Latin-1 in bookmark
1366 % strings. See Appendix D of the PDF Reference, Sixth Edition, for
1367 % the "PDFDocEncoding".
1368 \passthroughcharstrue
1369 \fi
1370 \ifx \declaredencoding \utfeight
1371 % TODO: the PDF format can use UTF-16 in bookmark strings, but the
1372 % code for this isn't done yet.
1373 \fi
1374 \globaldefs=1
1375 \edef\pdfoutlinetext{#1}%
1376 \txiescapepdf\pdfoutlinetext
1377 \egroup
1378 %
1379 \pdfoutline goto name{\pdfmkpgn{\pdfoutlinedest}}#2{\pdfoutlinetext}%
1380 }
1381 } 1446 }
1382 % 1447 %
1383 \def\pdfmakeoutlines{% 1448 \def\pdfmakeoutlines{%
@@ -1535,7 +1600,6 @@ output) for that.)}
1535% 1600%
1536% For XeTeX 1601% For XeTeX
1537% 1602%
1538\newif\iftxiuseunicodedestname
1539\ifx\XeTeXrevision\thisisundefined 1603\ifx\XeTeXrevision\thisisundefined
1540\else 1604\else
1541 % 1605 %
@@ -1608,44 +1672,51 @@ output) for that.)}
1608 \def\pdfdest name#1 xyz{% 1672 \def\pdfdest name#1 xyz{%
1609 \special{pdf:dest (#1) [@thispage /XYZ @xpos @ypos null]}% 1673 \special{pdf:dest (#1) [@thispage /XYZ @xpos @ypos null]}%
1610 } 1674 }
1611 \def\pdfmkdest#1{{% 1675 %
1676 \def\setpdfdestname#1{{%
1612 % We have to set dummies so commands such as @code, and characters 1677 % We have to set dummies so commands such as @code, and characters
1613 % such as \, aren't expanded when present in a section title. 1678 % such as \, aren't expanded when present in a section title.
1614 \indexnofonts 1679 \indexnofonts
1680 \makevalueexpandable
1681 \turnoffactive
1615 \iftxiuseunicodedestname 1682 \iftxiuseunicodedestname
1616 \def\pdfdestname{#1}% Pass through Unicode characters. 1683 % Pass through Unicode characters.
1617 \else 1684 \else
1618 \edef\pdfdestname{#1}% Replace Unicode characters with ASCII. 1685 % Use ASCII approximations in destination names.
1686 \passthroughcharsfalse
1619 \fi 1687 \fi
1620 \turnoffactive 1688 \def\pdfdestname{#1}%
1621 \makevalueexpandable
1622 \txiescapepdf\pdfdestname 1689 \txiescapepdf\pdfdestname
1623 \safewhatsit{\pdfdest name{\pdfdestname} xyz}%
1624 }} 1690 }}
1625 % 1691 %
1692 \def\setpdfoutlinetext#1{{%
1693 \turnoffactive
1694 % Always use Unicode characters in title texts.
1695 \def\pdfoutlinetext{#1}%
1696 % For XeTeX, xdvipdfmx converts to UTF-16.
1697 % So we do not convert.
1698 \txiescapepdf\pdfoutlinetext
1699 }}
1700 %
1701 \def\pdfmkdest#1{%
1702 \setpdfdestname{#1}%
1703 \safewhatsit{\pdfdest name{\pdfdestname} xyz}%
1704 }
1705 %
1626 % by default, use black for everything. 1706 % by default, use black for everything.
1627 \def\urlcolor{\rgbBlack} 1707 \def\urlcolor{\rgbBlack}
1628 \def\linkcolor{\rgbBlack} 1708 \def\linkcolor{\rgbBlack}
1629 \def\endlink{\setcolor{\maincolor}\pdfendlink} 1709 \def\endlink{\setcolor{\maincolor}\pdfendlink}
1630 % 1710 %
1631 \def\dopdfoutline#1#2#3#4{% 1711 \def\dopdfoutline#1#2#3#4{%
1632 \iftxiuseunicodedestname 1712 \setpdfoutlinetext{#1}
1633 \def\pdfoutlinedest{#3}% Pass through Unicode characters. 1713 \setpdfdestname{#3}
1634 \else 1714 \ifx\pdfdestname\empty
1635 \edef\pdfoutlinedest{#3}% Replace Unicode characters with ASCII. 1715 \def\pdfdestname{#4}%
1636 \fi 1716 \fi
1637 \ifx\pdfoutlinedest\empty 1717 %
1638 \def\pdfoutlinedest{#4}% 1718 \special{pdf:out [-] #2 << /Title (\pdfoutlinetext) /A
1639 \fi 1719 << /S /GoTo /D (\pdfdestname) >> >> }%
1640 {
1641 \turnoffactive
1642 \txiescapepdf\pdfoutlinedest
1643 \edef\pdfoutlinetext{#1}%
1644 \txiescapepdf\pdfoutlinetext
1645 %
1646 \special{pdf:out [-] #2 << /Title (\pdfoutlinetext) /A
1647 << /S /GoTo /D (\pdfoutlinedest) >> >> }%
1648 }
1649 } 1720 }
1650 % 1721 %
1651 \def\pdfmakeoutlines{% 1722 \def\pdfmakeoutlines{%
@@ -4842,8 +4913,8 @@ end
4842 \definedummyletter\ % 4913 \definedummyletter\ %
4843 % 4914 %
4844 % For texindex which always views { and } as separators. 4915 % For texindex which always views { and } as separators.
4845 \def\{{\lbracechar}% 4916 \def\{{\lbracechar{}}%
4846 \def\}{\rbracechar}% 4917 \def\}{\rbracechar{}}%
4847 % 4918 %
4848 % Do the redefinitions. 4919 % Do the redefinitions.
4849 \definedummies 4920 \definedummies
@@ -4927,6 +4998,7 @@ end
4927 \definedummyword\TeX 4998 \definedummyword\TeX
4928 % 4999 %
4929 % Assorted special characters. 5000 % Assorted special characters.
5001 \definedummyword\atchar
4930 \definedummyword\arrow 5002 \definedummyword\arrow
4931 \definedummyword\bullet 5003 \definedummyword\bullet
4932 \definedummyword\comma 5004 \definedummyword\comma
@@ -5143,37 +5215,40 @@ end
5143 \def\LaTeX{LaTeX}% 5215 \def\LaTeX{LaTeX}%
5144 \def\TeX{TeX}% 5216 \def\TeX{TeX}%
5145 % 5217 %
5146 % Assorted special characters. 5218 % Assorted special characters. \defglyph gives the control sequence a
5147 % (The following {} will end up in the sort string, but that's ok.) 5219 % definition that removes the {} that follows its use.
5148 \def\arrow{->}% 5220 \defglyph\atchar{@}%
5149 \def\bullet{bullet}% 5221 \defglyph\arrow{->}%
5150 \def\comma{,}% 5222 \defglyph\bullet{bullet}%
5151 \def\copyright{copyright}% 5223 \defglyph\comma{,}%
5152 \def\dots{...}% 5224 \defglyph\copyright{copyright}%
5153 \def\enddots{...}% 5225 \defglyph\dots{...}%
5154 \def\equiv{==}% 5226 \defglyph\enddots{...}%
5155 \def\error{error}% 5227 \defglyph\equiv{==}%
5156 \def\euro{euro}% 5228 \defglyph\error{error}%
5157 \def\expansion{==>}% 5229 \defglyph\euro{euro}%
5158 \def\geq{>=}% 5230 \defglyph\expansion{==>}%
5159 \def\guillemetleft{<<}% 5231 \defglyph\geq{>=}%
5160 \def\guillemetright{>>}% 5232 \defglyph\guillemetleft{<<}%
5161 \def\guilsinglleft{<}% 5233 \defglyph\guillemetright{>>}%
5162 \def\guilsinglright{>}% 5234 \defglyph\guilsinglleft{<}%
5163 \def\leq{<=}% 5235 \defglyph\guilsinglright{>}%
5164 \def\minus{-}% 5236 \defglyph\leq{<=}%
5165 \def\point{.}% 5237 \defglyph\lbracechar{\{}%
5166 \def\pounds{pounds}% 5238 \defglyph\minus{-}%
5167 \def\print{-|}% 5239 \defglyph\point{.}%
5168 \def\quotedblbase{"}% 5240 \defglyph\pounds{pounds}%
5169 \def\quotedblleft{"}% 5241 \defglyph\print{-|}%
5170 \def\quotedblright{"}% 5242 \defglyph\quotedblbase{"}%
5171 \def\quoteleft{`}% 5243 \defglyph\quotedblleft{"}%
5172 \def\quoteright{'}% 5244 \defglyph\quotedblright{"}%
5173 \def\quotesinglbase{,}% 5245 \defglyph\quoteleft{`}%
5174 \def\registeredsymbol{R}% 5246 \defglyph\quoteright{'}%
5175 \def\result{=>}% 5247 \defglyph\quotesinglbase{,}%
5176 \def\textdegree{o}% 5248 \defglyph\rbracechar{\}}%
5249 \defglyph\registeredsymbol{R}%
5250 \defglyph\result{=>}%
5251 \defglyph\textdegree{o}%
5177 % 5252 %
5178 % We need to get rid of all macros, leaving only the arguments (if present). 5253 % We need to get rid of all macros, leaving only the arguments (if present).
5179 % Of course this is not nearly correct, but it is the best we can do for now. 5254 % Of course this is not nearly correct, but it is the best we can do for now.
@@ -5188,6 +5263,7 @@ end
5188 \macrolist 5263 \macrolist
5189 \let\value\indexnofontsvalue 5264 \let\value\indexnofontsvalue
5190} 5265}
5266\def\defglyph#1#2{\def#1##1{#2}} % see above
5191 5267
5192 5268
5193 5269
@@ -5465,7 +5541,7 @@ end
5465 \let\indexlbrace\{ % Likewise, set these sequences for braces 5541 \let\indexlbrace\{ % Likewise, set these sequences for braces
5466 \let\indexrbrace\} % used in the sort key. 5542 \let\indexrbrace\} % used in the sort key.
5467 \begindoublecolumns 5543 \begindoublecolumns
5468 \let\entryorphanpenalty=\indexorphanpenalty 5544 \let\entrywidowpenalty=\indexwidowpenalty
5469 % 5545 %
5470 % Read input from the index file line by line. 5546 % Read input from the index file line by line.
5471 \loopdo 5547 \loopdo
@@ -5566,6 +5642,12 @@ end
5566\def\entry{% 5642\def\entry{%
5567 \begingroup 5643 \begingroup
5568 % 5644 %
5645 % For pdfTeX and XeTeX.
5646 % The redefinition of \domark stops marks being added in \pdflink to
5647 % preserve coloured links across page boundaries. Otherwise the marks
5648 % would get in the way of \lastbox in \insertindexentrybox.
5649 \let\domark\relax
5650 %
5569 % Start a new paragraph if necessary, so our assignments below can't 5651 % Start a new paragraph if necessary, so our assignments below can't
5570 % affect previous text. 5652 % affect previous text.
5571 \par 5653 \par
@@ -5579,10 +5661,6 @@ end
5579 \def\*{\unskip\space\ignorespaces}% 5661 \def\*{\unskip\space\ignorespaces}%
5580 \def\entrybreak{\hfil\break}% An undocumented command 5662 \def\entrybreak{\hfil\break}% An undocumented command
5581 % 5663 %
5582 % A bit of stretch before each entry for the benefit of balancing
5583 % columns.
5584 \vskip 0pt plus0.5pt
5585 %
5586 % Swallow the left brace of the text (first parameter): 5664 % Swallow the left brace of the text (first parameter):
5587 \afterassignment\doentry 5665 \afterassignment\doentry
5588 \let\temp = 5666 \let\temp =
@@ -5616,20 +5694,13 @@ end
5616 % 5694 %
5617 \ifpdf 5695 \ifpdf
5618 \pdfgettoks#1.% 5696 \pdfgettoks#1.%
5619 \bgroup\let\domark\relax 5697 \hskip\skip\thinshrinkable\the\toksA
5620 \hskip\skip\thinshrinkable\the\toksA
5621 \egroup
5622 % The redefinion of \domark stops marks being added in \pdflink to
5623 % preserve coloured links across page boundaries. Otherwise the marks
5624 % would get in the way of \lastbox in \insertindexentrybox.
5625 \else 5698 \else
5626 \ifx\XeTeXrevision\thisisundefined 5699 \ifx\XeTeXrevision\thisisundefined
5627 \hskip\skip\thinshrinkable #1% 5700 \hskip\skip\thinshrinkable #1%
5628 \else 5701 \else
5629 \pdfgettoks#1.% 5702 \pdfgettoks#1.%
5630 \bgroup\let\domark\relax 5703 \hskip\skip\thinshrinkable\the\toksA
5631 \hskip\skip\thinshrinkable\the\toksA
5632 \egroup
5633 \fi 5704 \fi
5634 \fi 5705 \fi
5635 \fi 5706 \fi
@@ -5638,11 +5709,10 @@ end
5638 \global\setbox\entryindexbox=\vbox{\unhbox\boxA}% 5709 \global\setbox\entryindexbox=\vbox{\unhbox\boxA}%
5639 \else 5710 \else
5640 \global\setbox\entryindexbox=\vbox\bgroup 5711 \global\setbox\entryindexbox=\vbox\bgroup
5641 \prevdepth=\entrylinedepth
5642 \noindent
5643 % We want the text of the entries to be aligned to the left, and the 5712 % We want the text of the entries to be aligned to the left, and the
5644 % page numbers to be aligned to the right. 5713 % page numbers to be aligned to the right.
5645 % 5714 %
5715 \parindent = 0pt
5646 \advance\leftskip by 0pt plus 1fil 5716 \advance\leftskip by 0pt plus 1fil
5647 \advance\leftskip by 0pt plus -1fill 5717 \advance\leftskip by 0pt plus -1fill
5648 \rightskip = 0pt plus -1fil 5718 \rightskip = 0pt plus -1fil
@@ -5651,8 +5721,6 @@ end
5651 % if the list of page numbers is long, to be aligned to the right. 5721 % if the list of page numbers is long, to be aligned to the right.
5652 \parfillskip=0pt plus -1fill 5722 \parfillskip=0pt plus -1fill
5653 % 5723 %
5654 \hangindent=1em
5655 %
5656 \advance\rightskip by \entryrightmargin 5724 \advance\rightskip by \entryrightmargin
5657 % Determine how far we can stretch into the margin. 5725 % Determine how far we can stretch into the margin.
5658 % This allows, e.g., "Appendix H GNU Free Documentation License" to 5726 % This allows, e.g., "Appendix H GNU Free Documentation License" to
@@ -5672,17 +5740,21 @@ end
5672 \ifdim\dimen@ > 0.8\dimen@ii % due to long index text 5740 \ifdim\dimen@ > 0.8\dimen@ii % due to long index text
5673 \dimen@ = 0.7\dimen@ % Try to split the text roughly evenly 5741 \dimen@ = 0.7\dimen@ % Try to split the text roughly evenly
5674 \dimen@ii = \hsize 5742 \dimen@ii = \hsize
5675 \advance \dimen@ii by -1em
5676 \ifnum\dimen@>\dimen@ii 5743 \ifnum\dimen@>\dimen@ii
5677 % If the entry is too long, use the whole line 5744 % If the entry is too long, use the whole line
5678 \dimen@ = \dimen@ii 5745 \dimen@ = \dimen@ii
5679 \fi 5746 \fi
5680 \advance\leftskip by 0pt plus 1fill % ragged right 5747 \advance\leftskip by 0pt plus 1fill % ragged right
5681 \advance \dimen@ by 1\rightskip 5748 \advance \dimen@ by 1\rightskip
5682 \parshape = 2 0pt \dimen@ 1em \dimen@ii 5749 \parshape = 2 0pt \dimen@ 0em \dimen@ii
5683 % Ideally we'd add a finite glue at the end of the first line only, but 5750 % Ideally we'd add a finite glue at the end of the first line only,
5684 % TeX doesn't seem to provide a way to do such a thing. 5751 % instead of using \parshape with explicit line lengths, but TeX
5752 % doesn't seem to provide a way to do such a thing.
5753 %
5754 \leftskip = 1em
5755 \parindent = -1em
5685 \fi\fi 5756 \fi\fi
5757 \indent % start paragraph
5686 \unhbox\boxA 5758 \unhbox\boxA
5687 % 5759 %
5688 % Do not prefer a separate line ending with a hyphen to fewer lines. 5760 % Do not prefer a separate line ending with a hyphen to fewer lines.
@@ -5700,7 +5772,7 @@ end
5700 \endgroup 5772 \endgroup
5701 % delay text of entry until after penalty 5773 % delay text of entry until after penalty
5702 \bgroup\aftergroup\insertindexentrybox 5774 \bgroup\aftergroup\insertindexentrybox
5703 \entryorphanpenalty 5775 \entrywidowpenalty
5704}} 5776}}
5705 5777
5706\newskip\thinshrinkable 5778\newskip\thinshrinkable
@@ -5708,40 +5780,43 @@ end
5708 5780
5709\newbox\entryindexbox 5781\newbox\entryindexbox
5710\def\insertindexentrybox{% 5782\def\insertindexentrybox{%
5711 \copy\entryindexbox 5783 \ourunvbox\entryindexbox
5712 % The following gets the depth of the last box. This is for even 5784}
5713 % line spacing when entries span several lines. 5785
5714 \setbox\dummybox\vbox{% 5786% Use \lastbox to take apart vbox box by box, and add each sub-box
5715 \unvbox\entryindexbox 5787% to the current vertical list.
5716 \nointerlineskip 5788\def\ourunvbox#1{%
5717 \lastbox 5789\bgroup % for local binding of \delayedbox
5718 \global\entrylinedepth=\prevdepth 5790 % Remove the last box from box #1
5791 \global\setbox#1=\vbox{%
5792 \unvbox#1%
5793 \unskip % remove any glue
5794 \unpenalty
5795 \global\setbox\interbox=\lastbox
5719 }% 5796 }%
5720 % Note that we couldn't simply \unvbox\entryindexbox followed by 5797 \setbox\delayedbox=\box\interbox
5721 % \nointerlineskip\lastbox to remove the last box and then reinstate it, 5798 \ifdim\ht#1=0pt\else
5722 % because this resets how far the box has been \moveleft'ed to 0. \unvbox 5799 \ourunvbox#1 % Repeat on what's left of the box
5723 % doesn't affect \prevdepth either. 5800 \nobreak
5801 \fi
5802 \box\delayedbox
5803\egroup
5724} 5804}
5725\newdimen\entrylinedepth 5805\newbox\delayedbox
5806\newbox\interbox
5726 5807
5727% Default is no penalty 5808% Default is no penalty
5728\let\entryorphanpenalty\egroup 5809\let\entrywidowpenalty\egroup
5729 5810
5730% Used from \printindex. \firsttoken should be the first token 5811% Used from \printindex. \firsttoken should be the first token
5731% after the \entry. If it's not another \entry, we are at the last 5812% after the \entry. If it's not another \entry, we are at the last
5732% line of a group of index entries, so insert a penalty to discourage 5813% line of a group of index entries, so insert a penalty to discourage
5733% orphaned index entries. 5814% widowed index entries.
5734\long\def\indexorphanpenalty{% 5815\long\def\indexwidowpenalty{%
5735 \def\isentry{\entry}% 5816 \def\isentry{\entry}%
5736 \ifx\firsttoken\isentry 5817 \ifx\firsttoken\isentry
5737 \else 5818 \else
5738 \unskip\penalty 9000 5819 \penalty 9000
5739 % The \unskip here stops breaking before the glue. It relies on the
5740 % \vskip above being there, otherwise there is an error
5741 % "You can't use `\unskip' in vertical mode". There has to be glue
5742 % in the current vertical list that hasn't been added to the
5743 % "current page". See Chapter 24 of the TeXbook. This contradicts
5744 % Section 8.3.7 in "TeX by Topic," though.
5745 \fi 5820 \fi
5746 \egroup % now comes the box added with \aftergroup 5821 \egroup % now comes the box added with \aftergroup
5747} 5822}
@@ -5781,8 +5856,6 @@ end
5781 5856
5782\newbox\partialpage 5857\newbox\partialpage
5783\newdimen\doublecolumnhsize 5858\newdimen\doublecolumnhsize
5784\newdimen\doublecolumntopgap
5785\doublecolumntopgap = 0pt
5786 5859
5787% Use inside an output routine to save \topmark and \firstmark 5860% Use inside an output routine to save \topmark and \firstmark
5788\def\savemarks{% 5861\def\savemarks{%
@@ -5865,12 +5938,10 @@ end
5865 % 5938 %
5866 % Double the \vsize as well. (We don't need a separate register here, 5939 % Double the \vsize as well. (We don't need a separate register here,
5867 % since nobody clobbers \vsize.) 5940 % since nobody clobbers \vsize.)
5868 \global\doublecolumntopgap = \topskip
5869 \global\advance\doublecolumntopgap by -1\baselineskip
5870 \advance\vsize by -1\doublecolumntopgap
5871 \vsize = 2\vsize 5941 \vsize = 2\vsize
5872 \topskip=0pt 5942 %
5873 \global\entrylinedepth=0pt\relax 5943 % For the benefit of balancing columns
5944 \advance\baselineskip by 0pt plus 0.5pt
5874} 5945}
5875 5946
5876% The double-column output routine for all double-column pages except 5947% The double-column output routine for all double-column pages except
@@ -5900,9 +5971,7 @@ end
5900 % 5971 %
5901 \hsize = \doublecolumnhsize 5972 \hsize = \doublecolumnhsize
5902 \wd0=\hsize \wd2=\hsize 5973 \wd0=\hsize \wd2=\hsize
5903 \vbox{% 5974 \hbox to\txipagewidth{\box0\hfil\box2}%
5904 \vskip\doublecolumntopgap
5905 \hbox to\txipagewidth{\box0\hfil\box2}}%
5906} 5975}
5907 5976
5908 5977
@@ -5982,10 +6051,6 @@ end
5982 \loop 6051 \loop
5983 \global\setbox3 = \copy0 6052 \global\setbox3 = \copy0
5984 \global\setbox1 = \vsplit3 to \dimen@ 6053 \global\setbox1 = \vsplit3 to \dimen@
5985 % Remove glue from bottom of columns to compare
5986 % apparent heights.
5987 \global\setbox1 = \vbox{\unvbox1\unpenalty\unskip}%
5988 \global\setbox3 = \vbox{\unvbox3\unpenalty\unskip}%
5989 \ifdim\ht1<\ht3 6054 \ifdim\ht1<\ht3
5990 \global\advance\dimen@ by 1pt 6055 \global\advance\dimen@ by 1pt
5991 \repeat 6056 \repeat
@@ -5998,8 +6063,8 @@ end
5998 % Just split the last of the double column material roughly in half. 6063 % Just split the last of the double column material roughly in half.
5999 \setbox2=\box0 6064 \setbox2=\box0
6000 \setbox0 = \vsplit2 to \dimen@ii 6065 \setbox0 = \vsplit2 to \dimen@ii
6001 \setbox0=\vbox to\dimen@ii{\unvbox0}% 6066 \setbox0=\vbox to \dimen@ii {\unvbox0\vfill}%
6002 \setbox2=\vbox to\dimen@ii{\unvbox2}% 6067 \setbox2=\vbox to \dimen@ii {\unvbox2\vfill}%
6003 \else 6068 \else
6004 % Compare the heights of the two columns. 6069 % Compare the heights of the two columns.
6005 \ifdim4\ht1>5\ht3 6070 \ifdim4\ht1>5\ht3
@@ -6009,8 +6074,8 @@ end
6009 \setbox0=\vbox to \ht1 {\unvbox1\vfill}% 6074 \setbox0=\vbox to \ht1 {\unvbox1\vfill}%
6010 \else 6075 \else
6011 % Make column bottoms flush with each other. 6076 % Make column bottoms flush with each other.
6012 \setbox0=\vbox to\dimen@{\unvbox1}% 6077 \setbox2=\vbox to\ht1{\unvbox3\unskip}%
6013 \setbox2=\vbox to\dimen@{\unvbox3}% 6078 \setbox0=\vbox to\ht1{\unvbox1\unskip}%
6014 \fi 6079 \fi
6015 \fi 6080 \fi
6016 \fi 6081 \fi
@@ -8846,32 +8911,26 @@ end
8846 % For pdfTeX and LuaTeX 8911 % For pdfTeX and LuaTeX
8847 {\indexnofonts 8912 {\indexnofonts
8848 \makevalueexpandable 8913 \makevalueexpandable
8849 %
8850 % This (wrongly) does not take account of leading or trailing
8851 % spaces in #1, which should be ignored.
8852 \ifx\luatexversion\thisisundefined
8853 \edef\pdfxrefdest{#1}% pdfTeX: Replace Unicode characters with ASCII.
8854 \else
8855 \def\pdfxrefdest{#1}% LuaTeX: Pass through Unicode characters.
8856 \fi
8857 \turnoffactive 8914 \turnoffactive
8858 % This expands tokens, so do it after making catcode changes, so _ 8915 % This expands tokens, so do it after making catcode changes, so _
8859 % etc. don't get their TeX definitions. This ignores all spaces in 8916 % etc. don't get their TeX definitions. This ignores all spaces in
8860 % #4, including (wrongly) those in the middle of the filename. 8917 % #4, including (wrongly) those in the middle of the filename.
8861 \getfilename{#4}% 8918 \getfilename{#4}%
8862 % 8919 %
8863 \ifx\pdfxrefdest\empty 8920 % This (wrongly) does not take account of leading or trailing
8864 \def\pdfxrefdest{Top}% no empty targets 8921 % spaces in #1, which should be ignored.
8865 \else 8922 \setpdfdestname{#1}%
8866 \txiescapepdf\pdfxrefdest % escape PDF special chars 8923 %
8924 \ifx\pdfdestname\empty
8925 \def\pdfdestname{Top}% no empty targets
8867 \fi 8926 \fi
8868 % 8927 %
8869 \leavevmode 8928 \leavevmode
8870 \startlink attr{/Border [0 0 0]}% 8929 \startlink attr{/Border [0 0 0]}%
8871 \ifnum\filenamelength>0 8930 \ifnum\filenamelength>0
8872 goto file{\the\filename.pdf} name{\pdfxrefdest}% 8931 goto file{\the\filename.pdf} name{\pdfdestname}%
8873 \else 8932 \else
8874 goto name{\pdfmkpgn{\pdfxrefdest}}% 8933 goto name{\pdfmkpgn{\pdfdestname}}%
8875 \fi 8934 \fi
8876 }% 8935 }%
8877 \setcolor{\linkcolor}% 8936 \setcolor{\linkcolor}%
@@ -8881,24 +8940,18 @@ end
8881 % For XeTeX 8940 % For XeTeX
8882 {\indexnofonts 8941 {\indexnofonts
8883 \makevalueexpandable 8942 \makevalueexpandable
8884 %
8885 % This (wrongly) does not take account of leading or trailing
8886 % spaces in #1, which should be ignored.
8887 \iftxiuseunicodedestname
8888 \def\pdfxrefdest{#1}% Pass through Unicode characters.
8889 \else
8890 \edef\pdfxrefdest{#1}% Replace Unicode characters with ASCII.
8891 \fi
8892 \turnoffactive 8943 \turnoffactive
8893 % This expands tokens, so do it after making catcode changes, so _ 8944 % This expands tokens, so do it after making catcode changes, so _
8894 % etc. don't get their TeX definitions. This ignores all spaces in 8945 % etc. don't get their TeX definitions. This ignores all spaces in
8895 % #4, including (wrongly) those in the middle of the filename. 8946 % #4, including (wrongly) those in the middle of the filename.
8896 \getfilename{#4}% 8947 \getfilename{#4}%
8897 % 8948 %
8898 \ifx\pdfxrefdest\empty 8949 % This (wrongly) does not take account of leading or trailing
8899 \def\pdfxrefdest{Top}% no empty targets 8950 % spaces in #1, which should be ignored.
8900 \else 8951 \setpdfdestname{#1}%
8901 \txiescapepdf\pdfxrefdest % escape PDF special chars 8952 %
8953 \ifx\pdfdestname\empty
8954 \def\pdfdestname{Top}% no empty targets
8902 \fi 8955 \fi
8903 % 8956 %
8904 \leavevmode 8957 \leavevmode
@@ -8912,10 +8965,10 @@ end
8912 % this command line option is no longer necessary 8965 % this command line option is no longer necessary
8913 % because we can use the `dvipdfmx:config' special. 8966 % because we can use the `dvipdfmx:config' special.
8914 \special{pdf:bann << /Border [0 0 0] /Type /Annot /Subtype /Link /A 8967 \special{pdf:bann << /Border [0 0 0] /Type /Annot /Subtype /Link /A
8915 << /S /GoToR /F (\the\filename.pdf) /D (\pdfxrefdest) >> >>}% 8968 << /S /GoToR /F (\the\filename.pdf) /D (\pdfdestname) >> >>}%
8916 \else 8969 \else
8917 \special{pdf:bann << /Border [0 0 0] /Type /Annot /Subtype /Link /A 8970 \special{pdf:bann << /Border [0 0 0] /Type /Annot /Subtype /Link /A
8918 << /S /GoTo /D (\pdfxrefdest) >> >>}% 8971 << /S /GoTo /D (\pdfdestname) >> >>}%
8919 \fi 8972 \fi
8920 }% 8973 }%
8921 \setcolor{\linkcolor}% 8974 \setcolor{\linkcolor}%
@@ -9975,7 +10028,7 @@ directory should work if nowhere else does.}
9975 \ifx \declaredencoding \ascii 10028 \ifx \declaredencoding \ascii
9976 \else 10029 \else
9977 \message{Warning: XeTeX with non-UTF-8 encodings cannot handle % 10030 \message{Warning: XeTeX with non-UTF-8 encodings cannot handle %
9978 non-ASCII characters in auxiallity files.}% 10031 non-ASCII characters in auxiliary files.}%
9979 \fi 10032 \fi
9980 \fi 10033 \fi
9981 \fi 10034 \fi
diff --git a/lib/alloca.in.h b/lib/alloca.in.h
index d457ebb4761..6a25ecdb7b7 100644
--- a/lib/alloca.in.h
+++ b/lib/alloca.in.h
@@ -51,6 +51,8 @@ extern "C"
51void *_alloca (unsigned short); 51void *_alloca (unsigned short);
52# pragma intrinsic (_alloca) 52# pragma intrinsic (_alloca)
53# define alloca _alloca 53# define alloca _alloca
54# elif defined __MVS__
55# include <stdlib.h>
54# else 56# else
55# include <stddef.h> 57# include <stddef.h>
56# ifdef __cplusplus 58# ifdef __cplusplus
diff --git a/lib/string.in.h b/lib/string.in.h
index 7fb00c1c539..b3213c4c1ab 100644
--- a/lib/string.in.h
+++ b/lib/string.in.h
@@ -416,15 +416,15 @@ _GL_WARN_ON_USE (strncat, "strncat is unportable - "
416# undef strndup 416# undef strndup
417# define strndup rpl_strndup 417# define strndup rpl_strndup
418# endif 418# endif
419_GL_FUNCDECL_RPL (strndup, char *, (char const *__string, size_t __n) 419_GL_FUNCDECL_RPL (strndup, char *, (char const *__s, size_t __n)
420 _GL_ARG_NONNULL ((1))); 420 _GL_ARG_NONNULL ((1)));
421_GL_CXXALIAS_RPL (strndup, char *, (char const *__string, size_t __n)); 421_GL_CXXALIAS_RPL (strndup, char *, (char const *__s, size_t __n));
422# else 422# else
423# if ! @HAVE_DECL_STRNDUP@ 423# if ! @HAVE_DECL_STRNDUP@
424_GL_FUNCDECL_SYS (strndup, char *, (char const *__string, size_t __n) 424_GL_FUNCDECL_SYS (strndup, char *, (char const *__s, size_t __n)
425 _GL_ARG_NONNULL ((1))); 425 _GL_ARG_NONNULL ((1)));
426# endif 426# endif
427_GL_CXXALIAS_SYS (strndup, char *, (char const *__string, size_t __n)); 427_GL_CXXALIAS_SYS (strndup, char *, (char const *__s, size_t __n));
428# endif 428# endif
429_GL_CXXALIASWARN (strndup); 429_GL_CXXALIASWARN (strndup);
430#elif defined GNULIB_POSIXCHECK 430#elif defined GNULIB_POSIXCHECK
@@ -444,17 +444,17 @@ _GL_WARN_ON_USE (strndup, "strndup is unportable - "
444# undef strnlen 444# undef strnlen
445# define strnlen rpl_strnlen 445# define strnlen rpl_strnlen
446# endif 446# endif
447_GL_FUNCDECL_RPL (strnlen, size_t, (char const *__string, size_t __maxlen) 447_GL_FUNCDECL_RPL (strnlen, size_t, (char const *__s, size_t __maxlen)
448 _GL_ATTRIBUTE_PURE 448 _GL_ATTRIBUTE_PURE
449 _GL_ARG_NONNULL ((1))); 449 _GL_ARG_NONNULL ((1)));
450_GL_CXXALIAS_RPL (strnlen, size_t, (char const *__string, size_t __maxlen)); 450_GL_CXXALIAS_RPL (strnlen, size_t, (char const *__s, size_t __maxlen));
451# else 451# else
452# if ! @HAVE_DECL_STRNLEN@ 452# if ! @HAVE_DECL_STRNLEN@
453_GL_FUNCDECL_SYS (strnlen, size_t, (char const *__string, size_t __maxlen) 453_GL_FUNCDECL_SYS (strnlen, size_t, (char const *__s, size_t __maxlen)
454 _GL_ATTRIBUTE_PURE 454 _GL_ATTRIBUTE_PURE
455 _GL_ARG_NONNULL ((1))); 455 _GL_ARG_NONNULL ((1)));
456# endif 456# endif
457_GL_CXXALIAS_SYS (strnlen, size_t, (char const *__string, size_t __maxlen)); 457_GL_CXXALIAS_SYS (strnlen, size_t, (char const *__s, size_t __maxlen));
458# endif 458# endif
459_GL_CXXALIASWARN (strnlen); 459_GL_CXXALIASWARN (strnlen);
460#elif defined GNULIB_POSIXCHECK 460#elif defined GNULIB_POSIXCHECK