diff options
| author | Paul Eggert | 2016-06-13 10:04:11 -0700 |
|---|---|---|
| committer | Paul Eggert | 2016-06-13 10:05:00 -0700 |
| commit | 37887dd0f078ca02487251ec71ff04e21c7c3ab0 (patch) | |
| tree | 6a312c486a47bccb32b8f2b690c449ad952cbcf9 | |
| parent | ab182c624868fcc0ed97597db669911099d4bd28 (diff) | |
| download | emacs-37887dd0f078ca02487251ec71ff04e21c7c3ab0.tar.gz emacs-37887dd0f078ca02487251ec71ff04e21c7c3ab0.zip | |
Update texinfo.tex
* doc/misc/texinfo.tex: Update from gnulib.
| -rw-r--r-- | doc/misc/texinfo.tex | 84 |
1 files changed, 63 insertions, 21 deletions
diff --git a/doc/misc/texinfo.tex b/doc/misc/texinfo.tex index 85846f4da41..e60dd170190 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-05-28.16} | 6 | \def\texinfoversion{2016-06-07.21} |
| 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, |
| @@ -1192,6 +1192,7 @@ where each line of input produces a line of output.} | |||
| 1192 | \ifx\pdfescapestring\thisisundefined | 1192 | \ifx\pdfescapestring\thisisundefined |
| 1193 | % No primitive available; should we give a warning or log? | 1193 | % No primitive available; should we give a warning or log? |
| 1194 | % Many times it won't matter. | 1194 | % Many times it won't matter. |
| 1195 | \xdef#1{#1}% | ||
| 1195 | \else | 1196 | \else |
| 1196 | % The expandable \pdfescapestring primitive escapes parentheses, | 1197 | % The expandable \pdfescapestring primitive escapes parentheses, |
| 1197 | % backslashes, and other special chars. | 1198 | % backslashes, and other special chars. |
| @@ -1311,8 +1312,10 @@ output) for that.)} | |||
| 1311 | % We have to set dummies so commands such as @code, and characters | 1312 | % We have to set dummies so commands such as @code, and characters |
| 1312 | % such as \, aren't expanded when present in a section title. | 1313 | % such as \, aren't expanded when present in a section title. |
| 1313 | \indexnofonts | 1314 | \indexnofonts |
| 1314 | \turnoffactive | ||
| 1315 | \makevalueexpandable | 1315 | \makevalueexpandable |
| 1316 | \turnoffactive | ||
| 1317 | % Use ASCII approximations in destination names. | ||
| 1318 | \passthroughcharsfalse | ||
| 1316 | \def\pdfdestname{#1}% | 1319 | \def\pdfdestname{#1}% |
| 1317 | \txiescapepdf\pdfdestname | 1320 | \txiescapepdf\pdfdestname |
| 1318 | \safewhatsit{\pdfdest name{\pdfdestname} xyz}% | 1321 | \safewhatsit{\pdfdest name{\pdfdestname} xyz}% |
| @@ -1357,8 +1360,21 @@ output) for that.)} | |||
| 1357 | \fi | 1360 | \fi |
| 1358 | % | 1361 | % |
| 1359 | % Also escape PDF chars in the display string. | 1362 | % Also escape PDF chars in the display string. |
| 1360 | \edef\pdfoutlinetext{#1}% | 1363 | \bgroup |
| 1361 | \txiescapepdf\pdfoutlinetext | 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 | ||
| 1362 | % | 1378 | % |
| 1363 | \pdfoutline goto name{\pdfmkpgn{\pdfoutlinedest}}#2{\pdfoutlinetext}% | 1379 | \pdfoutline goto name{\pdfmkpgn{\pdfoutlinedest}}#2{\pdfoutlinetext}% |
| 1364 | } | 1380 | } |
| @@ -10250,7 +10266,7 @@ directory should work if nowhere else does.} | |||
| 10250 | \countUTFx = "80 | 10266 | \countUTFx = "80 |
| 10251 | \countUTFy = "C2 | 10267 | \countUTFy = "C2 |
| 10252 | \def\UTFviiiTmp{% | 10268 | \def\UTFviiiTmp{% |
| 10253 | \gdef~{ | 10269 | \gdef~{% |
| 10254 | \ifpassthroughchars $\fi}}% | 10270 | \ifpassthroughchars $\fi}}% |
| 10255 | \UTFviiiLoop | 10271 | \UTFviiiLoop |
| 10256 | 10272 | ||
| @@ -10301,6 +10317,15 @@ directory should work if nowhere else does.} | |||
| 10301 | \fi | 10317 | \fi |
| 10302 | } | 10318 | } |
| 10303 | 10319 | ||
| 10320 | % These macros are used here to construct the name of a control | ||
| 10321 | % sequence to be defined. | ||
| 10322 | \def\UTFviiiTwoOctetsName#1#2{% | ||
| 10323 | \csname u8:#1\string #2\endcsname}% | ||
| 10324 | \def\UTFviiiThreeOctetsName#1#2#3{% | ||
| 10325 | \csname u8:#1\string #2\string #3\endcsname}% | ||
| 10326 | \def\UTFviiiFourOctetsName#1#2#3#4{% | ||
| 10327 | \csname u8:#1\string #2\string #3\string #4\endcsname}% | ||
| 10328 | |||
| 10304 | % For UTF-8 byte sequence (TeX, e-TeX and pdfTeX) | 10329 | % For UTF-8 byte sequence (TeX, e-TeX and pdfTeX) |
| 10305 | % Definition macro to replace the Unicode character | 10330 | % Definition macro to replace the Unicode character |
| 10306 | % Definition macro that is used by @U command | 10331 | % Definition macro that is used by @U command |
| @@ -10317,17 +10342,18 @@ directory should work if nowhere else does.} | |||
| 10317 | \countUTFz = "#1\relax | 10342 | \countUTFz = "#1\relax |
| 10318 | \begingroup | 10343 | \begingroup |
| 10319 | \parseXMLCharref | 10344 | \parseXMLCharref |
| 10345 | |||
| 10346 | % Give \u8:... its definition. The sequence of seven \expandafter's | ||
| 10347 | % expands after the \gdef three times, e.g. | ||
| 10320 | % | 10348 | % |
| 10321 | % Access definitions of characters given UTF-8 sequences | 10349 | % 1. \UTFviiTwoOctetsName B1 B2 |
| 10322 | \def\UTFviiiTwoOctets##1##2{% | 10350 | % 2. \csname u8:B1 \string B2 \endcsname |
| 10323 | \csname u8:##1\string ##2\endcsname}% | 10351 | % 3. \u8: B1 B2 (a single control sequence token) |
| 10324 | \def\UTFviiiThreeOctets##1##2##3{% | 10352 | % |
| 10325 | \csname u8:##1\string ##2\string ##3\endcsname}% | 10353 | \expandafter\expandafter |
| 10326 | \def\UTFviiiFourOctets##1##2##3##4{% | 10354 | \expandafter\expandafter |
| 10327 | \csname u8:##1\string ##2\string ##3\string ##4\endcsname}% | 10355 | \expandafter\expandafter |
| 10328 | \expandafter\expandafter\expandafter\expandafter | 10356 | \expandafter\gdef \UTFviiiTmp{#2}% |
| 10329 | \expandafter\expandafter\expandafter | ||
| 10330 | \gdef\UTFviiiTmp{#2}% | ||
| 10331 | % | 10357 | % |
| 10332 | \expandafter\ifx\csname uni:#1\endcsname \relax \else | 10358 | \expandafter\ifx\csname uni:#1\endcsname \relax \else |
| 10333 | \message{Internal error, already defined: #1}% | 10359 | \message{Internal error, already defined: #1}% |
| @@ -10337,37 +10363,53 @@ directory should work if nowhere else does.} | |||
| 10337 | \expandafter\globallet\csname uni:#1\endcsname \UTFviiiTmp | 10363 | \expandafter\globallet\csname uni:#1\endcsname \UTFviiiTmp |
| 10338 | \endgroup} | 10364 | \endgroup} |
| 10339 | % | 10365 | % |
| 10340 | % Given the value in \countUTFz as a Unicode code point, set \UTFviiiTmp. | 10366 | % Given the value in \countUTFz as a Unicode code point, set \UTFviiiTmp |
| 10367 | % to the corresponding UTF-8 sequence. | ||
| 10341 | \gdef\parseXMLCharref{% | 10368 | \gdef\parseXMLCharref{% |
| 10342 | \ifnum\countUTFz < "A0\relax | 10369 | \ifnum\countUTFz < "A0\relax |
| 10343 | \errhelp = \EMsimple | 10370 | \errhelp = \EMsimple |
| 10344 | \errmessage{Cannot define Unicode char value < 00A0}% | 10371 | \errmessage{Cannot define Unicode char value < 00A0}% |
| 10345 | \else\ifnum\countUTFz < "800\relax | 10372 | \else\ifnum\countUTFz < "800\relax |
| 10346 | \parseUTFviiiA,% | 10373 | \parseUTFviiiA,% |
| 10347 | \parseUTFviiiB C\UTFviiiTwoOctets.,% | 10374 | \parseUTFviiiB C\UTFviiiTwoOctetsName.,% |
| 10348 | \else\ifnum\countUTFz < "10000\relax | 10375 | \else\ifnum\countUTFz < "10000\relax |
| 10349 | \parseUTFviiiA;% | 10376 | \parseUTFviiiA;% |
| 10350 | \parseUTFviiiA,% | 10377 | \parseUTFviiiA,% |
| 10351 | \parseUTFviiiB E\UTFviiiThreeOctets.{,;}% | 10378 | \parseUTFviiiB E\UTFviiiThreeOctetsName.{,;}% |
| 10352 | \else | 10379 | \else |
| 10353 | \parseUTFviiiA;% | 10380 | \parseUTFviiiA;% |
| 10354 | \parseUTFviiiA,% | 10381 | \parseUTFviiiA,% |
| 10355 | \parseUTFviiiA!% | 10382 | \parseUTFviiiA!% |
| 10356 | \parseUTFviiiB F\UTFviiiFourOctets.{!,;}% | 10383 | \parseUTFviiiB F\UTFviiiFourOctetsName.{!,;}% |
| 10357 | \fi\fi\fi | 10384 | \fi\fi\fi |
| 10358 | } | 10385 | } |
| 10359 | 10386 | ||
| 10387 | % Extract a byte from the end of the UTF-8 representation of \countUTFx. | ||
| 10388 | % It must be a non-initial byte in the sequence. | ||
| 10389 | % Change \uccode of #1 for it to be used in \parseUTFviiiB as one | ||
| 10390 | % of the bytes. | ||
| 10360 | \gdef\parseUTFviiiA#1{% | 10391 | \gdef\parseUTFviiiA#1{% |
| 10361 | \countUTFx = \countUTFz | 10392 | \countUTFx = \countUTFz |
| 10362 | \divide\countUTFz by 64 | 10393 | \divide\countUTFz by 64 |
| 10363 | \countUTFy = \countUTFz | 10394 | \countUTFy = \countUTFz % Save to be the future value of \countUTFz. |
| 10364 | \multiply\countUTFz by 64 | 10395 | \multiply\countUTFz by 64 |
| 10396 | |||
| 10397 | % \countUTFz is now \countUTFx with the last 5 bits cleared. Subtract | ||
| 10398 | % in order to get the last five bits. | ||
| 10365 | \advance\countUTFx by -\countUTFz | 10399 | \advance\countUTFx by -\countUTFz |
| 10400 | |||
| 10401 | % Convert this to the byte in the UTF-8 sequence. | ||
| 10366 | \advance\countUTFx by 128 | 10402 | \advance\countUTFx by 128 |
| 10367 | \uccode `#1\countUTFx | 10403 | \uccode `#1\countUTFx |
| 10368 | \countUTFz = \countUTFy} | 10404 | \countUTFz = \countUTFy} |
| 10369 | 10405 | ||
| 10370 | % Used to set \UTFviiiTmp to a UTF-8 byte sequence | 10406 | % Used to put a UTF-8 byte sequence into \UTFviiiTmp |
| 10407 | % #1 is the increment for \countUTFz to yield a the first byte of the UTF-8 | ||
| 10408 | % sequence. | ||
| 10409 | % #2 is one of the \UTFviii*OctetsName macros. | ||
| 10410 | % #3 is always a full stop (.) | ||
| 10411 | % #4 is a template for the other bytes in the sequence. The values for these | ||
| 10412 | % bytes is substituted in here with \uppercase using the \uccode's. | ||
| 10371 | \gdef\parseUTFviiiB#1#2#3#4{% | 10413 | \gdef\parseUTFviiiB#1#2#3#4{% |
| 10372 | \advance\countUTFz by "#10\relax | 10414 | \advance\countUTFz by "#10\relax |
| 10373 | \uccode `#3\countUTFz | 10415 | \uccode `#3\countUTFz |