diff options
| author | Paul Eggert | 2016-08-03 15:10:58 -0700 |
|---|---|---|
| committer | Paul Eggert | 2016-08-03 15:12:06 -0700 |
| commit | 7f9721d3990155bae83e4e4840f0ff4913868d50 (patch) | |
| tree | 6c7283459b89571444694523e3431834b1952f92 | |
| parent | 967e2ef61dab8d2046f3285eefa71f3dcb9d9b60 (diff) | |
| download | emacs-7f9721d3990155bae83e4e4840f0ff4913868d50.tar.gz emacs-7f9721d3990155bae83e4e4840f0ff4913868d50.zip | |
Update from gnulib
This incorporates:
2016-07-03 mktime: call tzset as per POSIX
* doc/misc/texinfo.tex, lib/mktime.c, m4/mktime.m4:
Copy from gnulib.
| -rw-r--r-- | doc/misc/texinfo.tex | 424 | ||||
| -rw-r--r-- | lib/mktime.c | 2 | ||||
| -rw-r--r-- | m4/mktime.m4 | 3 |
3 files changed, 217 insertions, 212 deletions
diff --git a/doc/misc/texinfo.tex b/doc/misc/texinfo.tex index daa7055bbbc..5a1f728da48 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-06-18.21} | 6 | \def\texinfoversion{2016-08-03.13} |
| 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, |
| @@ -1541,22 +1541,72 @@ output) for that.)} | |||
| 1541 | % | 1541 | % |
| 1542 | % XeTeX version check | 1542 | % XeTeX version check |
| 1543 | % | 1543 | % |
| 1544 | \ifnum\strcmp{\the\XeTeXversion\XeTeXrevision}{0.99995}>-1 | 1544 | \ifnum\strcmp{\the\XeTeXversion\XeTeXrevision}{0.99996}>-1 |
| 1545 | % XeTeX 0.99995+ contains xdvipdfmx 20160307+. | 1545 | % TeX Live 2016 contains XeTeX 0.99996 and xdvipdfmx 20160307. |
| 1546 | % It can handle Unicode destination name for PDF. | 1546 | % It can use the `dvipdfmx:config' special (from TeX Live SVN r40941). |
| 1547 | % For avoiding PDF destination name replacement, we use this special | ||
| 1548 | % instead of xdvipdfmx's command line option `-C 0x0010'. | ||
| 1549 | \special{dvipdfmx:config C 0x0010} | ||
| 1550 | % XeTeX 0.99995+ comes with xdvipdfmx 20160307+. | ||
| 1551 | % It can handle Unicode destination names for PDF. | ||
| 1547 | \txiuseunicodedestnametrue | 1552 | \txiuseunicodedestnametrue |
| 1548 | \else | 1553 | \else |
| 1549 | % XeTeX < 0.99995 can not handle Unicode destination name for PDF | 1554 | % XeTeX < 0.99996 (TeX Live < 2016) cannot use the |
| 1550 | % because xdvipdfmx 20150315 has UTF-16 convert issue. | 1555 | % `dvipdfmx:config' special. |
| 1551 | % It fixed by xdvipdfmx 20160106 (TeX Live SVN r39753). | 1556 | % So for avoiding PDF destination name replacement, |
| 1557 | % xdvipdfmx's command line option `-C 0x0010' is necessary. | ||
| 1558 | % | ||
| 1559 | % XeTeX < 0.99995 can not handle Unicode destination names for PDF | ||
| 1560 | % because xdvipdfmx 20150315 has a UTF-16 conversion issue. | ||
| 1561 | % It is fixed by xdvipdfmx 20160106 (TeX Live SVN r39753). | ||
| 1552 | \txiuseunicodedestnamefalse | 1562 | \txiuseunicodedestnamefalse |
| 1553 | \fi | 1563 | \fi |
| 1554 | % | 1564 | % |
| 1565 | % Color support | ||
| 1566 | % | ||
| 1567 | \def\rgbDarkRed{0.50 0.09 0.12} | ||
| 1568 | \def\rgbBlack{0 0 0} | ||
| 1569 | % | ||
| 1570 | \def\pdfsetcolor#1{\special{pdf:scolor [#1]}} | ||
| 1571 | % | ||
| 1572 | % Set color, and create a mark which defines \thiscolor accordingly, | ||
| 1573 | % so that \makeheadline knows which color to restore. | ||
| 1574 | \def\setcolor#1{% | ||
| 1575 | \xdef\lastcolordefs{\gdef\noexpand\thiscolor{#1}}% | ||
| 1576 | \domark | ||
| 1577 | \pdfsetcolor{#1}% | ||
| 1578 | } | ||
| 1579 | % | ||
| 1580 | \def\maincolor{\rgbBlack} | ||
| 1581 | \pdfsetcolor{\maincolor} | ||
| 1582 | \edef\thiscolor{\maincolor} | ||
| 1583 | \def\lastcolordefs{} | ||
| 1584 | % | ||
| 1585 | \def\makefootline{% | ||
| 1586 | \baselineskip24pt | ||
| 1587 | \line{\pdfsetcolor{\maincolor}\the\footline}% | ||
| 1588 | } | ||
| 1589 | % | ||
| 1590 | \def\makeheadline{% | ||
| 1591 | \vbox to 0pt{% | ||
| 1592 | \vskip-22.5pt | ||
| 1593 | \line{% | ||
| 1594 | \vbox to8.5pt{}% | ||
| 1595 | % Extract \thiscolor definition from the marks. | ||
| 1596 | \getcolormarks | ||
| 1597 | % Typeset the headline with \maincolor, then restore the color. | ||
| 1598 | \pdfsetcolor{\maincolor}\the\headline\pdfsetcolor{\thiscolor}% | ||
| 1599 | }% | ||
| 1600 | \vss | ||
| 1601 | }% | ||
| 1602 | \nointerlineskip | ||
| 1603 | } | ||
| 1604 | % | ||
| 1555 | % PDF outline support | 1605 | % PDF outline support |
| 1556 | % | 1606 | % |
| 1557 | % Emulate the primitive of pdfTeX | 1607 | % Emulate pdfTeX primitive |
| 1558 | \def\pdfdest name#1 xyz{% | 1608 | \def\pdfdest name#1 xyz{% |
| 1559 | \special{pdf:dest (name#1) [@thispage /XYZ @xpos @ypos]}% | 1609 | \special{pdf:dest (#1) [@thispage /XYZ @xpos @ypos null]}% |
| 1560 | } | 1610 | } |
| 1561 | \def\pdfmkdest#1{{% | 1611 | \def\pdfmkdest#1{{% |
| 1562 | % We have to set dummies so commands such as @code, and characters | 1612 | % We have to set dummies so commands such as @code, and characters |
| @@ -1565,7 +1615,7 @@ output) for that.)} | |||
| 1565 | \iftxiuseunicodedestname | 1615 | \iftxiuseunicodedestname |
| 1566 | \def\pdfdestname{#1}% Pass through Unicode characters. | 1616 | \def\pdfdestname{#1}% Pass through Unicode characters. |
| 1567 | \else | 1617 | \else |
| 1568 | \edef\pdfdestname{#1}% Replace Unicode characters to ASCII. | 1618 | \edef\pdfdestname{#1}% Replace Unicode characters with ASCII. |
| 1569 | \fi | 1619 | \fi |
| 1570 | \turnoffactive | 1620 | \turnoffactive |
| 1571 | \makevalueexpandable | 1621 | \makevalueexpandable |
| @@ -1573,11 +1623,16 @@ output) for that.)} | |||
| 1573 | \safewhatsit{\pdfdest name{\pdfdestname} xyz}% | 1623 | \safewhatsit{\pdfdest name{\pdfdestname} xyz}% |
| 1574 | }} | 1624 | }} |
| 1575 | % | 1625 | % |
| 1626 | % by default, use black for everything. | ||
| 1627 | \def\urlcolor{\rgbBlack} | ||
| 1628 | \def\linkcolor{\rgbBlack} | ||
| 1629 | \def\endlink{\setcolor{\maincolor}\pdfendlink} | ||
| 1630 | % | ||
| 1576 | \def\dopdfoutline#1#2#3#4{% | 1631 | \def\dopdfoutline#1#2#3#4{% |
| 1577 | \iftxiuseunicodedestname | 1632 | \iftxiuseunicodedestname |
| 1578 | \def\pdfoutlinedest{#3}% Pass through Unicode characters. | 1633 | \def\pdfoutlinedest{#3}% Pass through Unicode characters. |
| 1579 | \else | 1634 | \else |
| 1580 | \edef\pdfoutlinedest{#3}% Replace Unicode characters to ASCII. | 1635 | \edef\pdfoutlinedest{#3}% Replace Unicode characters with ASCII. |
| 1581 | \fi | 1636 | \fi |
| 1582 | \ifx\pdfoutlinedest\empty | 1637 | \ifx\pdfoutlinedest\empty |
| 1583 | \def\pdfoutlinedest{#4}% | 1638 | \def\pdfoutlinedest{#4}% |
| @@ -1589,17 +1644,17 @@ output) for that.)} | |||
| 1589 | \txiescapepdf\pdfoutlinetext | 1644 | \txiescapepdf\pdfoutlinetext |
| 1590 | % | 1645 | % |
| 1591 | \special{pdf:out [-] #2 << /Title (\pdfoutlinetext) /A | 1646 | \special{pdf:out [-] #2 << /Title (\pdfoutlinetext) /A |
| 1592 | << /S /GoTo /D (name\pdfoutlinedest) >> >> }% | 1647 | << /S /GoTo /D (\pdfoutlinedest) >> >> }% |
| 1593 | } | 1648 | } |
| 1594 | } | 1649 | } |
| 1595 | % | 1650 | % |
| 1596 | \def\pdfmakeoutlines{% | 1651 | \def\pdfmakeoutlines{% |
| 1597 | \begingroup | 1652 | \begingroup |
| 1598 | % | 1653 | % |
| 1599 | % In the case of XeTeX, counts of subentries is not necesary. | 1654 | % For XeTeX, counts of subentries are not necessary. |
| 1600 | % Therefore, read toc only once. | 1655 | % Therefore, we read toc only once. |
| 1601 | % | 1656 | % |
| 1602 | % We use the node names as the destinations. | 1657 | % We use node names as destinations. |
| 1603 | \def\partentry##1##2##3##4{}% ignore parts in the outlines | 1658 | \def\partentry##1##2##3##4{}% ignore parts in the outlines |
| 1604 | \def\numchapentry##1##2##3##4{% | 1659 | \def\numchapentry##1##2##3##4{% |
| 1605 | \dopdfoutline{##1}{1}{##3}{##4}}% | 1660 | \dopdfoutline{##1}{1}{##3}{##4}}% |
| @@ -1619,7 +1674,7 @@ output) for that.)} | |||
| 1619 | \let\unnsubsecentry\numsubsecentry% | 1674 | \let\unnsubsecentry\numsubsecentry% |
| 1620 | \let\unnsubsubsecentry\numsubsubsecentry% | 1675 | \let\unnsubsubsecentry\numsubsubsecentry% |
| 1621 | % | 1676 | % |
| 1622 | % In the case of XeTeX, xdvipdfmx converts strings to UTF-16. | 1677 | % For XeTeX, xdvipdfmx converts strings to UTF-16. |
| 1623 | % Therefore, the encoding and the language may not be considered. | 1678 | % Therefore, the encoding and the language may not be considered. |
| 1624 | % | 1679 | % |
| 1625 | \indexnofonts | 1680 | \indexnofonts |
| @@ -1641,9 +1696,9 @@ output) for that.)} | |||
| 1641 | \special{pdf:docview << /PageMode /UseOutlines >> } | 1696 | \special{pdf:docview << /PageMode /UseOutlines >> } |
| 1642 | % ``\special{pdf:tounicode ...}'' is not necessary | 1697 | % ``\special{pdf:tounicode ...}'' is not necessary |
| 1643 | % because xdvipdfmx converts strings from UTF-8 to UTF-16 without it. | 1698 | % because xdvipdfmx converts strings from UTF-8 to UTF-16 without it. |
| 1644 | % However, due to UTF-16 convert issue of xdvipdfmx 20150315, | 1699 | % However, due to a UTF-16 conversion issue of xdvipdfmx 20150315, |
| 1645 | % ``\special{pdf:dest ...}'' can not handle non-ASCII strings. | 1700 | % ``\special{pdf:dest ...}'' cannot handle non-ASCII strings. |
| 1646 | % It fixed by xdvipdfmx 20160106 (TeX Live SVN r39753). | 1701 | % It is fixed by xdvipdfmx 20160106 (TeX Live SVN r39753). |
| 1647 | % | 1702 | % |
| 1648 | \def\skipspaces#1{\def\PP{#1}\def\D{|}% | 1703 | \def\skipspaces#1{\def\PP{#1}\def\D{|}% |
| 1649 | \ifx\PP\D\let\nextsp\relax | 1704 | \ifx\PP\D\let\nextsp\relax |
| @@ -1703,7 +1758,7 @@ output) for that.)} | |||
| 1703 | {\noexpand\pdflink{\the\toksC}}\toksC={}\global\countA=0} | 1758 | {\noexpand\pdflink{\the\toksC}}\toksC={}\global\countA=0} |
| 1704 | \def\pdflink#1{% | 1759 | \def\pdflink#1{% |
| 1705 | \special{pdf:bann << /Border [0 0 0] | 1760 | \special{pdf:bann << /Border [0 0 0] |
| 1706 | /Type /Annot /Subtype /Link /A << /S /GoTo /D (name#1) >> >>}% | 1761 | /Type /Annot /Subtype /Link /A << /S /GoTo /D (#1) >> >>}% |
| 1707 | \setcolor{\linkcolor}#1\endlink} | 1762 | \setcolor{\linkcolor}#1\endlink} |
| 1708 | \def\done{\edef\st{\global\noexpand\toksA={\the\toksB}}\st} | 1763 | \def\done{\edef\st{\global\noexpand\toksA={\the\toksB}}\st} |
| 1709 | % | 1764 | % |
| @@ -1715,7 +1770,7 @@ output) for that.)} | |||
| 1715 | \def\xeteximagewidth{#2}\setbox0 = \hbox{\ignorespaces #2}% | 1770 | \def\xeteximagewidth{#2}\setbox0 = \hbox{\ignorespaces #2}% |
| 1716 | \def\xeteximageheight{#3}\setbox2 = \hbox{\ignorespaces #3}% | 1771 | \def\xeteximageheight{#3}\setbox2 = \hbox{\ignorespaces #3}% |
| 1717 | % | 1772 | % |
| 1718 | % XeTeX (and the PDF format) support .pdf, .png, .jpg (among | 1773 | % XeTeX (and the PDF format) supports .pdf, .png, .jpg (among |
| 1719 | % others). Let's try in that order, PDF first since if | 1774 | % others). Let's try in that order, PDF first since if |
| 1720 | % someone has a scalable image, presumably better to use that than a | 1775 | % someone has a scalable image, presumably better to use that than a |
| 1721 | % bitmap. | 1776 | % bitmap. |
| @@ -3287,23 +3342,10 @@ end | |||
| 3287 | \let\atchar=\@ | 3342 | \let\atchar=\@ |
| 3288 | 3343 | ||
| 3289 | % @{ @} @lbracechar{} @rbracechar{} all generate brace characters. | 3344 | % @{ @} @lbracechar{} @rbracechar{} all generate brace characters. |
| 3290 | % Unless we're in typewriter, use \ecfont because the CM text fonts do | 3345 | \def\lbracechar{{\ifmonospace\char123\else\ensuremath\lbrace\fi}} |
| 3291 | % not have braces, and we don't want to switch into math. | 3346 | \def\rbracechar{{\ifmonospace\char125\else\ensuremath\rbrace\fi}} |
| 3292 | \def\mylbrace{{\ifmonospace\char123\else\ensuremath\lbrace\fi}} | 3347 | \let\{=\lbracechar |
| 3293 | \def\myrbrace{{\ifmonospace\char125\else\ensuremath\rbrace\fi}} | 3348 | \let\}=\rbracechar |
| 3294 | \let\{=\mylbrace \let\lbracechar=\{ | ||
| 3295 | \let\}=\myrbrace \let\rbracechar=\} | ||
| 3296 | \begingroup | ||
| 3297 | % Definitions to produce \{ and \} commands for indices, | ||
| 3298 | % and @{ and @} for the aux/toc files. | ||
| 3299 | \catcode`\{ = \other \catcode`\} = \other | ||
| 3300 | \catcode`\[ = 1 \catcode`\] = 2 | ||
| 3301 | \catcode`\! = 0 \catcode`\\ = \other | ||
| 3302 | !gdef!lbracecmd[\{]% | ||
| 3303 | !gdef!rbracecmd[\}]% | ||
| 3304 | !gdef!lbraceatcmd[@{]% | ||
| 3305 | !gdef!rbraceatcmd[@}]% | ||
| 3306 | !endgroup | ||
| 3307 | 3349 | ||
| 3308 | % @comma{} to avoid , parsing problems. | 3350 | % @comma{} to avoid , parsing problems. |
| 3309 | \let\comma = , | 3351 | \let\comma = , |
| @@ -4771,14 +4813,7 @@ end | |||
| 4771 | % #1 is \doindex or \docodeindex, #2 the index getting redefined (foo), | 4813 | % #1 is \doindex or \docodeindex, #2 the index getting redefined (foo), |
| 4772 | % #3 the target index (bar). | 4814 | % #3 the target index (bar). |
| 4773 | \def\dosynindex#1#2#3{% | 4815 | \def\dosynindex#1#2#3{% |
| 4774 | % Only do \closeout if we haven't already done it, else we'll end up | 4816 | \requireopenindexfile{#3}% |
| 4775 | % closing the target index. | ||
| 4776 | \expandafter \ifx\csname donesynindex#2\endcsname \relax | ||
| 4777 | % The \closeout helps reduce unnecessary open files; the limit on the | ||
| 4778 | % Acorn RISC OS is a mere 16 files. | ||
| 4779 | \expandafter\closeout\csname#2indfile\endcsname | ||
| 4780 | \expandafter\let\csname donesynindex#2\endcsname = 1 | ||
| 4781 | \fi | ||
| 4782 | % redefine \fooindfile: | 4817 | % redefine \fooindfile: |
| 4783 | \expandafter\let\expandafter\temp\expandafter=\csname#3indfile\endcsname | 4818 | \expandafter\let\expandafter\temp\expandafter=\csname#3indfile\endcsname |
| 4784 | \expandafter\let\csname#2indfile\endcsname=\temp | 4819 | \expandafter\let\csname#2indfile\endcsname=\temp |
| @@ -4803,17 +4838,12 @@ end | |||
| 4803 | % | 4838 | % |
| 4804 | \def\indexdummies{% | 4839 | \def\indexdummies{% |
| 4805 | \escapechar = `\\ % use backslash in output files. | 4840 | \escapechar = `\\ % use backslash in output files. |
| 4806 | \def\@{@}% change to @@ when we switch to @ as escape char in index files. | 4841 | \definedummyletter\@% |
| 4807 | \def\ {\realbackslash\space }% | 4842 | \definedummyletter\ % |
| 4808 | % | 4843 | % |
| 4809 | % Need these unexpandable (because we define \tt as a dummy) | 4844 | % For texindex which always views { and } as separators. |
| 4810 | % definitions when @{ or @} appear in index entry text. Also, more | 4845 | \def\{{\lbracechar}% |
| 4811 | % complicated, when \tex is in effect and \{ is a \delimiter again. | 4846 | \def\}{\rbracechar}% |
| 4812 | % We can't use \lbracecmd and \rbracecmd because texindex assumes | ||
| 4813 | % braces and backslashes are used only as delimiters. Perhaps we | ||
| 4814 | % should use @lbracechar and @rbracechar? | ||
| 4815 | \def\{{{\tt\char123}}% | ||
| 4816 | \def\}{{\tt\char125}}% | ||
| 4817 | % | 4847 | % |
| 4818 | % Do the redefinitions. | 4848 | % Do the redefinitions. |
| 4819 | \definedummies | 4849 | \definedummies |
| @@ -4821,16 +4851,11 @@ end | |||
| 4821 | 4851 | ||
| 4822 | % Used for the aux and toc files, where @ is the escape character. | 4852 | % Used for the aux and toc files, where @ is the escape character. |
| 4823 | % | 4853 | % |
| 4824 | % For the aux and toc files, @ is the escape character. So we want to | ||
| 4825 | % redefine everything using @ as the escape character (instead of | ||
| 4826 | % \realbackslash, still used for index files). When everything uses @, | ||
| 4827 | % this will be simpler. | ||
| 4828 | % | ||
| 4829 | \def\atdummies{% | 4854 | \def\atdummies{% |
| 4830 | \def\@{@@}% | 4855 | \definedummyletter\@% |
| 4831 | \def\ {@ }% | 4856 | \definedummyletter\ % |
| 4832 | \let\{ = \lbraceatcmd | 4857 | \definedummyletter\{% |
| 4833 | \let\} = \rbraceatcmd | 4858 | \definedummyletter\}% |
| 4834 | % | 4859 | % |
| 4835 | % Do the redefinitions. | 4860 | % Do the redefinitions. |
| 4836 | \definedummies | 4861 | \definedummies |
| @@ -5412,7 +5437,7 @@ end | |||
| 5412 | % \initial {@} | 5437 | % \initial {@} |
| 5413 | % as its first line, TeX doesn't complain about mismatched braces | 5438 | % as its first line, TeX doesn't complain about mismatched braces |
| 5414 | % (because it thinks @} is a control sequence). | 5439 | % (because it thinks @} is a control sequence). |
| 5415 | \catcode`\@ = 11 | 5440 | \catcode`\@ = 12 |
| 5416 | % See comment in \requireopenindexfile. | 5441 | % See comment in \requireopenindexfile. |
| 5417 | \def\indexname{#1}\ifx\indexname\indexisfl\def\indexname{f1}\fi | 5442 | \def\indexname{#1}\ifx\indexname\indexisfl\def\indexname{f1}\fi |
| 5418 | \openin 1 \jobname.\indexname s | 5443 | \openin 1 \jobname.\indexname s |
| @@ -5944,49 +5969,46 @@ end | |||
| 5944 | \dimen@ = \ht0 | 5969 | \dimen@ = \ht0 |
| 5945 | \advance\dimen@ by \topskip | 5970 | \advance\dimen@ by \topskip |
| 5946 | \advance\dimen@ by-\baselineskip | 5971 | \advance\dimen@ by-\baselineskip |
| 5947 | \ifdim\dimen@<14\baselineskip | 5972 | \ifdim\dimen@<5\baselineskip |
| 5948 | % Don't split a short final column in two. | 5973 | % Don't split a short final column in two. |
| 5949 | \setbox2=\vbox{}% | 5974 | \setbox2=\vbox{}% |
| 5950 | \else | 5975 | \else |
| 5951 | \divide\dimen@ by 2 % target to split to | 5976 | \divide\dimen@ by 2 % target to split to |
| 5952 | \dimen@ii = \dimen@ | 5977 | \dimen@ii = \dimen@ |
| 5953 | \splittopskip = \topskip | 5978 | \splittopskip = \topskip |
| 5954 | % Loop until the second column is no higher than the first | 5979 | % Loop until left column is at least as high as the right column. |
| 5955 | {% | 5980 | {% |
| 5956 | \vbadness = 10000 | 5981 | \vbadness = 10000 |
| 5957 | \loop | 5982 | \loop |
| 5958 | \global\setbox3 = \copy0 | 5983 | \global\setbox3 = \copy0 |
| 5959 | \global\setbox1 = \vsplit3 to \dimen@ | 5984 | \global\setbox1 = \vsplit3 to \dimen@ |
| 5960 | % Remove glue from bottom of first column to | 5985 | % Remove glue from bottom of columns to compare |
| 5961 | % make sure it is higher than the second. | 5986 | % apparent heights. |
| 5962 | \global\setbox1 = \vbox{\unvbox1\unpenalty\unskip}% | 5987 | \global\setbox1 = \vbox{\unvbox1\unpenalty\unskip}% |
| 5963 | \ifdim\ht3>\ht1 | 5988 | \global\setbox3 = \vbox{\unvbox3\unpenalty\unskip}% |
| 5989 | \ifdim\ht1<\ht3 | ||
| 5964 | \global\advance\dimen@ by 1pt | 5990 | \global\advance\dimen@ by 1pt |
| 5965 | \repeat | 5991 | \repeat |
| 5966 | }% | 5992 | }% |
| 5993 | % Now the left column is in box 1, and the right column in box 3. | ||
| 5994 | % Check whether the left column has come out higher than the page itself. | ||
| 5995 | % (Note that we have doubled \vsize for the double columns, so | ||
| 5996 | % the actual height of the page is 0.5\vsize). | ||
| 5967 | \ifdim2\ht1>\vsize | 5997 | \ifdim2\ht1>\vsize |
| 5968 | % The left column has come out longer than the page itself. (Note | 5998 | % Just split the last of the double column material roughly in half. |
| 5969 | % that we have doubled \vsize for the double columns, so | ||
| 5970 | % the actual height of the page is 0.5\vsize). Just split the last | ||
| 5971 | % of the double column material roughly in half. | ||
| 5972 | \setbox2=\box0 | 5999 | \setbox2=\box0 |
| 5973 | \setbox0 = \vsplit2 to \dimen@ii | 6000 | \setbox0 = \vsplit2 to \dimen@ii |
| 5974 | \setbox0=\vbox to\dimen@ii{\unvbox0}% | 6001 | \setbox0=\vbox to\dimen@ii{\unvbox0}% |
| 5975 | \setbox2=\vbox to\dimen@ii{\unvbox2}% | 6002 | \setbox2=\vbox to\dimen@ii{\unvbox2}% |
| 5976 | \else | 6003 | \else |
| 5977 | \multiply\dimen@ii by 5 | 6004 | % Compare the heights of the two columns. |
| 5978 | \divide\dimen@ii by 4 | 6005 | \ifdim4\ht1>5\ht3 |
| 5979 | \global\setbox3 = \copy0 | ||
| 5980 | \global\setbox1 = \vsplit3 to \dimen@ii | ||
| 5981 | \global\setbox\balancedcolumns=\vbox{\pagesofar}% | ||
| 5982 | \ifdim\ht3<\dimen@ii | ||
| 5983 | % Column heights are too different, so don't make their bottoms | 6006 | % Column heights are too different, so don't make their bottoms |
| 5984 | % flush with each other. The glue at the end of the second column | 6007 | % flush with each other. |
| 5985 | % allows a second column to stretch, reducing the difference in | 6008 | \setbox2=\vbox to \ht1 {\unvbox3\vfill}% |
| 5986 | % height between the two. | 6009 | \setbox0=\vbox to \ht1 {\unvbox1\vfill}% |
| 5987 | \setbox0=\vbox to\dimen@{\unvbox1\vfill}% | ||
| 5988 | \setbox2=\vbox to\dimen@{\unvbox3\vskip 0pt plus 0.3\ht0}% | ||
| 5989 | \else | 6010 | \else |
| 6011 | % Make column bottoms flush with each other. | ||
| 5990 | \setbox0=\vbox to\dimen@{\unvbox1}% | 6012 | \setbox0=\vbox to\dimen@{\unvbox1}% |
| 5991 | \setbox2=\vbox to\dimen@{\unvbox3}% | 6013 | \setbox2=\vbox to\dimen@{\unvbox3}% |
| 5992 | \fi | 6014 | \fi |
| @@ -8038,7 +8060,7 @@ end | |||
| 8038 | \newif\ifrecursive % Is it recursive? | 8060 | \newif\ifrecursive % Is it recursive? |
| 8039 | 8061 | ||
| 8040 | % List of all defined macros in the form | 8062 | % List of all defined macros in the form |
| 8041 | % \definedummyword\macro1\definedummyword\macro2... | 8063 | % \commondummyword\macro1\commondummyword\macro2... |
| 8042 | % Currently is also contains all @aliases; the list can be split | 8064 | % Currently is also contains all @aliases; the list can be split |
| 8043 | % if there is a need. | 8065 | % if there is a need. |
| 8044 | \def\macrolist{} | 8066 | \def\macrolist{} |
| @@ -8046,7 +8068,7 @@ end | |||
| 8046 | % Add the macro to \macrolist | 8068 | % Add the macro to \macrolist |
| 8047 | \def\addtomacrolist#1{\expandafter \addtomacrolistxxx \csname#1\endcsname} | 8069 | \def\addtomacrolist#1{\expandafter \addtomacrolistxxx \csname#1\endcsname} |
| 8048 | \def\addtomacrolistxxx#1{% | 8070 | \def\addtomacrolistxxx#1{% |
| 8049 | \toks0 = \expandafter{\macrolist\definedummyword#1}% | 8071 | \toks0 = \expandafter{\macrolist\commondummyword#1}% |
| 8050 | \xdef\macrolist{\the\toks0}% | 8072 | \xdef\macrolist{\the\toks0}% |
| 8051 | } | 8073 | } |
| 8052 | 8074 | ||
| @@ -8187,7 +8209,7 @@ end | |||
| 8187 | % Remove the macro name from \macrolist: | 8209 | % Remove the macro name from \macrolist: |
| 8188 | \begingroup | 8210 | \begingroup |
| 8189 | \expandafter\let\csname#1\endcsname \relax | 8211 | \expandafter\let\csname#1\endcsname \relax |
| 8190 | \let\definedummyword\unmacrodo | 8212 | \let\commondummyword\unmacrodo |
| 8191 | \xdef\macrolist{\macrolist}% | 8213 | \xdef\macrolist{\macrolist}% |
| 8192 | \endgroup | 8214 | \endgroup |
| 8193 | \else | 8215 | \else |
| @@ -8202,7 +8224,7 @@ end | |||
| 8202 | \ifx #1\relax | 8224 | \ifx #1\relax |
| 8203 | % remove this | 8225 | % remove this |
| 8204 | \else | 8226 | \else |
| 8205 | \noexpand\definedummyword \noexpand#1% | 8227 | \noexpand\commondummyword \noexpand#1% |
| 8206 | \fi | 8228 | \fi |
| 8207 | } | 8229 | } |
| 8208 | 8230 | ||
| @@ -8477,8 +8499,7 @@ end | |||
| 8477 | % its parameters, looking like "\xeatspaces{\hash 1}". | 8499 | % its parameters, looking like "\xeatspaces{\hash 1}". |
| 8478 | % \paramno is the number of parameters | 8500 | % \paramno is the number of parameters |
| 8479 | % \paramlist is a TeX parameter text, e.g. "#1,#2,#3," | 8501 | % \paramlist is a TeX parameter text, e.g. "#1,#2,#3," |
| 8480 | % There are eight cases: recursive and nonrecursive macros of zero, one, | 8502 | % There are four cases: macros of zero, one, up to nine, and many arguments. |
| 8481 | % up to nine, and many arguments. | ||
| 8482 | % \xdef is used so that macro definitions will survive the file | 8503 | % \xdef is used so that macro definitions will survive the file |
| 8483 | % they're defined in: @include reads the file inside a group. | 8504 | % they're defined in: @include reads the file inside a group. |
| 8484 | % | 8505 | % |
| @@ -8493,91 +8514,48 @@ end | |||
| 8493 | \else | 8514 | \else |
| 8494 | \let\xeatspaces\relax % suppress expansion | 8515 | \let\xeatspaces\relax % suppress expansion |
| 8495 | \fi | 8516 | \fi |
| 8496 | \ifrecursive %%%%%%%%%%%%%% Recursive %%%%%%%%%%%%%%%%%%%%%%%%%%%%% | 8517 | \ifcase\paramno |
| 8497 | \ifcase\paramno | 8518 | % 0 |
| 8498 | % 0 | 8519 | \expandafter\xdef\csname\the\macname\endcsname{% |
| 8499 | \expandafter\xdef\csname\the\macname\endcsname{% | 8520 | \noexpand\scanmacro{\macrobody}}% |
| 8500 | \noexpand\scanmacro{\macrobody}}% | 8521 | \or % 1 |
| 8501 | \or % 1 | 8522 | \expandafter\xdef\csname\the\macname\endcsname{% |
| 8523 | \bgroup | ||
| 8524 | \noexpand\braceorline | ||
| 8525 | \expandafter\noexpand\csname\the\macname @@@\endcsname}% | ||
| 8526 | \expandafter\xdef\csname\the\macname @@@\endcsname##1{% | ||
| 8527 | \egroup | ||
| 8528 | \noexpand\scanmacro{\macrobody}% | ||
| 8529 | }% | ||
| 8530 | \else % at most 9 | ||
| 8531 | \ifnum\paramno<10\relax | ||
| 8532 | % @MACNAME sets the context for reading the macro argument | ||
| 8533 | % @MACNAME@@ gets the argument, processes backslashes and appends a | ||
| 8534 | % comma. | ||
| 8535 | % @MACNAME@@@ removes braces surrounding the argument list. | ||
| 8536 | % @MACNAME@@@@ scans the macro body with arguments substituted. | ||
| 8502 | \expandafter\xdef\csname\the\macname\endcsname{% | 8537 | \expandafter\xdef\csname\the\macname\endcsname{% |
| 8503 | \bgroup | 8538 | \bgroup |
| 8504 | \noexpand\braceorline | 8539 | \noexpand\expandafter % This \expandafter skip any spaces after the |
| 8505 | \expandafter\noexpand\csname\the\macname @@@\endcsname}% | 8540 | \noexpand\macroargctxt % macro before we change the catcode of space. |
| 8541 | \noexpand\expandafter | ||
| 8542 | \expandafter\noexpand\csname\the\macname @@\endcsname}% | ||
| 8543 | \expandafter\xdef\csname\the\macname @@\endcsname##1{% | ||
| 8544 | \noexpand\passargtomacro | ||
| 8545 | \expandafter\noexpand\csname\the\macname @@@\endcsname{##1,}}% | ||
| 8506 | \expandafter\xdef\csname\the\macname @@@\endcsname##1{% | 8546 | \expandafter\xdef\csname\the\macname @@@\endcsname##1{% |
| 8507 | \egroup | 8547 | \expandafter\noexpand\csname\the\macname @@@@\endcsname ##1}% |
| 8508 | \noexpand\scanmacro{\macrobody}% | 8548 | \expandafter\expandafter |
| 8509 | }% | 8549 | \expandafter\xdef |
| 8510 | \else | 8550 | \expandafter\expandafter |
| 8511 | \ifnum\paramno<10\relax % at most 9 | 8551 | \csname\the\macname @@@@\endcsname\paramlist{% |
| 8512 | % See non-recursive section below for comments | 8552 | \egroup\noexpand\scanmacro{\macrobody}}% |
| 8513 | \expandafter\xdef\csname\the\macname\endcsname{% | 8553 | \else % 10 or more: |
| 8514 | \bgroup | ||
| 8515 | \noexpand\expandafter | ||
| 8516 | \noexpand\macroargctxt | ||
| 8517 | \noexpand\expandafter | ||
| 8518 | \expandafter\noexpand\csname\the\macname @@\endcsname}% | ||
| 8519 | \expandafter\xdef\csname\the\macname @@\endcsname##1{% | ||
| 8520 | \noexpand\passargtomacro | ||
| 8521 | \expandafter\noexpand\csname\the\macname @@@\endcsname{##1,}}% | ||
| 8522 | \expandafter\xdef\csname\the\macname @@@\endcsname##1{% | ||
| 8523 | \expandafter\noexpand\csname\the\macname @@@@\endcsname ##1}% | ||
| 8524 | \expandafter\expandafter | ||
| 8525 | \expandafter\xdef | ||
| 8526 | \expandafter\expandafter | ||
| 8527 | \csname\the\macname @@@@\endcsname\paramlist{% | ||
| 8528 | \egroup\noexpand\scanmacro{\macrobody}}% | ||
| 8529 | \else % 10 or more | ||
| 8530 | \expandafter\xdef\csname\the\macname\endcsname{% | ||
| 8531 | \noexpand\getargvals@{\the\macname}{\argl}% | ||
| 8532 | }% | ||
| 8533 | \global\expandafter\let\csname mac.\the\macname .body\endcsname\macrobody | ||
| 8534 | \global\expandafter\let\csname mac.\the\macname .recurse\endcsname\gobble | ||
| 8535 | \fi | ||
| 8536 | \fi | ||
| 8537 | \else %%%%%%%%%%%%%%%%%%%%%% Non-recursive %%%%%%%%%%%%%%%%%%%%%%%%%% | ||
| 8538 | \ifcase\paramno | ||
| 8539 | % 0 | ||
| 8540 | \expandafter\xdef\csname\the\macname\endcsname{% | ||
| 8541 | \noexpand\scanmacro{\macrobody}}% | ||
| 8542 | \or % 1 | ||
| 8543 | \expandafter\xdef\csname\the\macname\endcsname{% | 8554 | \expandafter\xdef\csname\the\macname\endcsname{% |
| 8544 | \bgroup | 8555 | \noexpand\getargvals@{\the\macname}{\argl}% |
| 8545 | \noexpand\braceorline | 8556 | }% |
| 8546 | \expandafter\noexpand\csname\the\macname @@@\endcsname}% | 8557 | \global\expandafter\let\csname mac.\the\macname .body\endcsname\macrobody |
| 8547 | \expandafter\xdef\csname\the\macname @@@\endcsname##1{% | 8558 | \global\expandafter\let\csname mac.\the\macname .recurse\endcsname\gobble |
| 8548 | \egroup | ||
| 8549 | \noexpand\scanmacro{\macrobody}% | ||
| 8550 | }% | ||
| 8551 | \else % at most 9 | ||
| 8552 | \ifnum\paramno<10\relax | ||
| 8553 | % @MACNAME sets the context for reading the macro argument | ||
| 8554 | % @MACNAME@@ gets the argument, processes backslashes and appends a | ||
| 8555 | % comma. | ||
| 8556 | % @MACNAME@@@ removes braces surrounding the argument list. | ||
| 8557 | % @MACNAME@@@@ scans the macro body with arguments substituted. | ||
| 8558 | \expandafter\xdef\csname\the\macname\endcsname{% | ||
| 8559 | \bgroup | ||
| 8560 | \noexpand\expandafter % This \expandafter skip any spaces after the | ||
| 8561 | \noexpand\macroargctxt % macro before we change the catcode of space. | ||
| 8562 | \noexpand\expandafter | ||
| 8563 | \expandafter\noexpand\csname\the\macname @@\endcsname}% | ||
| 8564 | \expandafter\xdef\csname\the\macname @@\endcsname##1{% | ||
| 8565 | \noexpand\passargtomacro | ||
| 8566 | \expandafter\noexpand\csname\the\macname @@@\endcsname{##1,}}% | ||
| 8567 | \expandafter\xdef\csname\the\macname @@@\endcsname##1{% | ||
| 8568 | \expandafter\noexpand\csname\the\macname @@@@\endcsname ##1}% | ||
| 8569 | \expandafter\expandafter | ||
| 8570 | \expandafter\xdef | ||
| 8571 | \expandafter\expandafter | ||
| 8572 | \csname\the\macname @@@@\endcsname\paramlist{% | ||
| 8573 | \egroup\noexpand\scanmacro{\macrobody}}% | ||
| 8574 | \else % 10 or more: | ||
| 8575 | \expandafter\xdef\csname\the\macname\endcsname{% | ||
| 8576 | \noexpand\getargvals@{\the\macname}{\argl}% | ||
| 8577 | }% | ||
| 8578 | \global\expandafter\let\csname mac.\the\macname .body\endcsname\macrobody | ||
| 8579 | \global\expandafter\let\csname mac.\the\macname .recurse\endcsname\norecurse | ||
| 8580 | \fi | ||
| 8581 | \fi | 8559 | \fi |
| 8582 | \fi} | 8560 | \fi} |
| 8583 | 8561 | ||
| @@ -8867,16 +8845,21 @@ end | |||
| 8867 | \ifpdf | 8845 | \ifpdf |
| 8868 | % For pdfTeX and LuaTeX | 8846 | % For pdfTeX and LuaTeX |
| 8869 | {\indexnofonts | 8847 | {\indexnofonts |
| 8870 | \turnoffactive | ||
| 8871 | \makevalueexpandable | 8848 | \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 | ||
| 8872 | % This expands tokens, so do it after making catcode changes, so _ | 8858 | % This expands tokens, so do it after making catcode changes, so _ |
| 8873 | % etc. don't get their TeX definitions. This ignores all spaces in | 8859 | % etc. don't get their TeX definitions. This ignores all spaces in |
| 8874 | % #4, including (wrongly) those in the middle of the filename. | 8860 | % #4, including (wrongly) those in the middle of the filename. |
| 8875 | \getfilename{#4}% | 8861 | \getfilename{#4}% |
| 8876 | % | 8862 | % |
| 8877 | % This (wrongly) does not take account of leading or trailing | ||
| 8878 | % spaces in #1, which should be ignored. | ||
| 8879 | \edef\pdfxrefdest{#1}% | ||
| 8880 | \ifx\pdfxrefdest\empty | 8863 | \ifx\pdfxrefdest\empty |
| 8881 | \def\pdfxrefdest{Top}% no empty targets | 8864 | \def\pdfxrefdest{Top}% no empty targets |
| 8882 | \else | 8865 | \else |
| @@ -8897,20 +8880,21 @@ end | |||
| 8897 | \else | 8880 | \else |
| 8898 | % For XeTeX | 8881 | % For XeTeX |
| 8899 | {\indexnofonts | 8882 | {\indexnofonts |
| 8900 | \turnoffactive | ||
| 8901 | \makevalueexpandable | 8883 | \makevalueexpandable |
| 8902 | % This expands tokens, so do it after making catcode changes, so _ | ||
| 8903 | % etc. don't get their TeX definitions. This ignores all spaces in | ||
| 8904 | % #4, including (wrongly) those in the middle of the filename. | ||
| 8905 | \getfilename{#4}% | ||
| 8906 | % | 8884 | % |
| 8907 | % This (wrongly) does not take account of leading or trailing | 8885 | % This (wrongly) does not take account of leading or trailing |
| 8908 | % spaces in #1, which should be ignored. | 8886 | % spaces in #1, which should be ignored. |
| 8909 | \iftxiuseunicodedestname | 8887 | \iftxiuseunicodedestname |
| 8910 | \def\pdfxrefdest{#1}% Pass through Unicode characters. | 8888 | \def\pdfxrefdest{#1}% Pass through Unicode characters. |
| 8911 | \else | 8889 | \else |
| 8912 | \edef\pdfxrefdest{#1}% Replace Unicode characters to ASCII. | 8890 | \edef\pdfxrefdest{#1}% Replace Unicode characters with ASCII. |
| 8913 | \fi | 8891 | \fi |
| 8892 | \turnoffactive | ||
| 8893 | % This expands tokens, so do it after making catcode changes, so _ | ||
| 8894 | % etc. don't get their TeX definitions. This ignores all spaces in | ||
| 8895 | % #4, including (wrongly) those in the middle of the filename. | ||
| 8896 | \getfilename{#4}% | ||
| 8897 | % | ||
| 8914 | \ifx\pdfxrefdest\empty | 8898 | \ifx\pdfxrefdest\empty |
| 8915 | \def\pdfxrefdest{Top}% no empty targets | 8899 | \def\pdfxrefdest{Top}% no empty targets |
| 8916 | \else | 8900 | \else |
| @@ -8919,16 +8903,19 @@ end | |||
| 8919 | % | 8903 | % |
| 8920 | \leavevmode | 8904 | \leavevmode |
| 8921 | \ifnum\filenamelength>0 | 8905 | \ifnum\filenamelength>0 |
| 8922 | % By the default settings, | 8906 | % With default settings, |
| 8923 | % XeTeX (xdvipdfmx) replaces link destination names with integers. | 8907 | % XeTeX (xdvipdfmx) replaces link destination names with integers. |
| 8924 | % In this case, the replaced destination names of | 8908 | % In this case, the replaced destination names of |
| 8925 | % remote PDF cannot be known. In order to avoid replacement, | 8909 | % remote PDFs are no longer known. In order to avoid a replacement, |
| 8926 | % you can use commandline option `-C 0x0010' for xdvipdfmx. | 8910 | % you can use xdvipdfmx's command line option `-C 0x0010'. |
| 8911 | % If you use XeTeX 0.99996+ (TeX Live 2016+), | ||
| 8912 | % this command line option is no longer necessary | ||
| 8913 | % because we can use the `dvipdfmx:config' special. | ||
| 8927 | \special{pdf:bann << /Border [0 0 0] /Type /Annot /Subtype /Link /A | 8914 | \special{pdf:bann << /Border [0 0 0] /Type /Annot /Subtype /Link /A |
| 8928 | << /S /GoToR /F (\the\filename.pdf) /D (name\pdfxrefdest) >> >>}% | 8915 | << /S /GoToR /F (\the\filename.pdf) /D (\pdfxrefdest) >> >>}% |
| 8929 | \else | 8916 | \else |
| 8930 | \special{pdf:bann << /Border [0 0 0] /Type /Annot /Subtype /Link /A | 8917 | \special{pdf:bann << /Border [0 0 0] /Type /Annot /Subtype /Link /A |
| 8931 | << /S /GoTo /D (name\pdfxrefdest) >> >>}% | 8918 | << /S /GoTo /D (\pdfxrefdest) >> >>}% |
| 8932 | \fi | 8919 | \fi |
| 8933 | }% | 8920 | }% |
| 8934 | \setcolor{\linkcolor}% | 8921 | \setcolor{\linkcolor}% |
| @@ -9835,9 +9822,9 @@ directory should work if nowhere else does.} | |||
| 9835 | \global\righthyphenmin = #3\relax | 9822 | \global\righthyphenmin = #3\relax |
| 9836 | } | 9823 | } |
| 9837 | 9824 | ||
| 9838 | % XeTeX and LuaTeX can handle native Unicode. | 9825 | % XeTeX and LuaTeX can handle Unicode natively. |
| 9839 | % Their default I/O is UTF-8 sequence instead of byte-wise. | 9826 | % Their default I/O uses UTF-8 sequences instead of a byte-wise operation. |
| 9840 | % Other TeX engine (pdfTeX etc.) I/O is byte-wise. | 9827 | % Other TeX engines' I/O (pdfTeX, etc.) is byte-wise. |
| 9841 | % | 9828 | % |
| 9842 | \newif\iftxinativeunicodecapable | 9829 | \newif\iftxinativeunicodecapable |
| 9843 | \newif\iftxiusebytewiseio | 9830 | \newif\iftxiusebytewiseio |
| @@ -9961,14 +9948,15 @@ directory should work if nowhere else does.} | |||
| 9961 | % | 9948 | % |
| 9962 | \else \ifx \declaredencoding \utfeight | 9949 | \else \ifx \declaredencoding \utfeight |
| 9963 | \iftxinativeunicodecapable | 9950 | \iftxinativeunicodecapable |
| 9964 | % For native Unicode (XeTeX and LuaTeX) | 9951 | % For native Unicode handling (XeTeX and LuaTeX) |
| 9965 | \nativeunicodechardefs | 9952 | \nativeunicodechardefs |
| 9966 | \else | 9953 | \else |
| 9967 | % For UTF-8 byte sequence (TeX, eTeX and pdfTeX) | 9954 | % For treating UTF-8 as byte sequences (TeX, eTeX and pdfTeX) |
| 9968 | \setnonasciicharscatcode\active | 9955 | \setnonasciicharscatcode\active |
| 9969 | % since we already invoked \utfeightchardefs at the top level | 9956 | % since we already invoked \utfeightchardefs at the top level |
| 9970 | % (below), do not re-invoke it, then our check for duplicated | 9957 | % (below), do not re-invoke it, otherwise our check for duplicated |
| 9971 | % definitions triggers. Making non-ascii chars active is enough. | 9958 | % definitions gets triggered. Making non-ascii chars active is |
| 9959 | % sufficient. | ||
| 9972 | \fi | 9960 | \fi |
| 9973 | % | 9961 | % |
| 9974 | \else | 9962 | \else |
| @@ -9979,6 +9967,18 @@ directory should work if nowhere else does.} | |||
| 9979 | \fi % latone | 9967 | \fi % latone |
| 9980 | \fi % lattwo | 9968 | \fi % lattwo |
| 9981 | \fi % ascii | 9969 | \fi % ascii |
| 9970 | % | ||
| 9971 | \ifx\XeTeXrevision\thisisundefined | ||
| 9972 | \else | ||
| 9973 | \ifx \declaredencoding \utfeight | ||
| 9974 | \else | ||
| 9975 | \ifx \declaredencoding \ascii | ||
| 9976 | \else | ||
| 9977 | \message{Warning: XeTeX with non-UTF-8 encodings cannot handle % | ||
| 9978 | non-ASCII characters in auxiallity files.}% | ||
| 9979 | \fi | ||
| 9980 | \fi | ||
| 9981 | \fi | ||
| 9982 | } | 9982 | } |
| 9983 | 9983 | ||
| 9984 | % emacs-page | 9984 | % emacs-page |
| @@ -10316,8 +10316,9 @@ directory should work if nowhere else does.} | |||
| 10316 | \def\U#1{% | 10316 | \def\U#1{% |
| 10317 | \expandafter\ifx\csname uni:#1\endcsname \relax | 10317 | \expandafter\ifx\csname uni:#1\endcsname \relax |
| 10318 | \iftxinativeunicodecapable | 10318 | \iftxinativeunicodecapable |
| 10319 | % Any Unicode characters can be used by native Unicode. | 10319 | % All Unicode characters can be used if native Unicode handling is |
| 10320 | % However, if the font does not have the glyph, the letter will miss. | 10320 | % active. However, if the font does not have the glyph, |
| 10321 | % letters are missing. | ||
| 10321 | \begingroup | 10322 | \begingroup |
| 10322 | \uccode`\.="#1\relax | 10323 | \uccode`\.="#1\relax |
| 10323 | \uppercase{.} | 10324 | \uppercase{.} |
| @@ -10340,9 +10341,9 @@ directory should work if nowhere else does.} | |||
| 10340 | \def\UTFviiiFourOctetsName#1#2#3#4{% | 10341 | \def\UTFviiiFourOctetsName#1#2#3#4{% |
| 10341 | \csname u8:#1\string #2\string #3\string #4\endcsname}% | 10342 | \csname u8:#1\string #2\string #3\string #4\endcsname}% |
| 10342 | 10343 | ||
| 10343 | % For UTF-8 byte sequence (TeX, e-TeX and pdfTeX) | 10344 | % For UTF-8 byte sequences (TeX, e-TeX and pdfTeX), |
| 10344 | % Definition macro to replace the Unicode character | 10345 | % provide a definition macro to replace a Unicode character; |
| 10345 | % Definition macro that is used by @U command | 10346 | % this gets used by the @U command |
| 10346 | % | 10347 | % |
| 10347 | \begingroup | 10348 | \begingroup |
| 10348 | \catcode`\"=12 | 10349 | \catcode`\"=12 |
| @@ -10430,8 +10431,8 @@ directory should work if nowhere else does.} | |||
| 10430 | \uppercase{\gdef\UTFviiiTmp{#2#3#4}}} | 10431 | \uppercase{\gdef\UTFviiiTmp{#2#3#4}}} |
| 10431 | \endgroup | 10432 | \endgroup |
| 10432 | 10433 | ||
| 10433 | % For native Unicode (XeTeX and LuaTeX) | 10434 | % For native Unicode handling (XeTeX and LuaTeX), |
| 10434 | % Definition macro that is set catcode other non global | 10435 | % provide a definition macro that sets a catcode to `other' non-globally |
| 10435 | % | 10436 | % |
| 10436 | \def\DeclareUnicodeCharacterNativeOther#1#2{% | 10437 | \def\DeclareUnicodeCharacterNativeOther#1#2{% |
| 10437 | \catcode"#1=\other | 10438 | \catcode"#1=\other |
| @@ -11137,8 +11138,8 @@ directory should work if nowhere else does.} | |||
| 11137 | \newif\ifpassthroughchars | 11138 | \newif\ifpassthroughchars |
| 11138 | \passthroughcharsfalse | 11139 | \passthroughcharsfalse |
| 11139 | 11140 | ||
| 11140 | % For native Unicode (XeTeX and LuaTeX) | 11141 | % For native Unicode handling (XeTeX and LuaTeX), |
| 11141 | % Definition macro to replace / pass-through the Unicode character | 11142 | % provide a definition macro to replace/pass-through a Unicode character |
| 11142 | % | 11143 | % |
| 11143 | \def\DeclareUnicodeCharacterNative#1#2{% | 11144 | \def\DeclareUnicodeCharacterNative#1#2{% |
| 11144 | \catcode"#1=\active | 11145 | \catcode"#1=\active |
| @@ -11161,21 +11162,22 @@ directory should work if nowhere else does.} | |||
| 11161 | \endgroup | 11162 | \endgroup |
| 11162 | } | 11163 | } |
| 11163 | 11164 | ||
| 11164 | % Native Unicode (XeTeX and LuaTeX) character replacing definitions | 11165 | % Native Unicode handling (XeTeX and LuaTeX) character replacing definition. |
| 11165 | % It makes the setting that replace the Unicode characters. | 11166 | % It activates the setting that replaces Unicode characters. |
| 11166 | \def\nativeunicodechardefs{% | 11167 | \def\nativeunicodechardefs{% |
| 11167 | \let\DeclareUnicodeCharacter\DeclareUnicodeCharacterNative | 11168 | \let\DeclareUnicodeCharacter\DeclareUnicodeCharacterNative |
| 11168 | \unicodechardefs | 11169 | \unicodechardefs |
| 11169 | } | 11170 | } |
| 11170 | 11171 | ||
| 11171 | % For native Unicode (XeTeX and LuaTeX). Make the character token expand | 11172 | % For native Unicode handling (XeTeX and LuaTeX), |
| 11173 | % make the character token expand | ||
| 11172 | % to the sequences given in \unicodechardefs for printing. | 11174 | % to the sequences given in \unicodechardefs for printing. |
| 11173 | \def\DeclareUnicodeCharacterNativeAtU#1#2{% | 11175 | \def\DeclareUnicodeCharacterNativeAtU#1#2{% |
| 11174 | \def\UTFAtUTmp{#2} | 11176 | \def\UTFAtUTmp{#2} |
| 11175 | \expandafter\globallet\csname uni:#1\endcsname \UTFAtUTmp | 11177 | \expandafter\globallet\csname uni:#1\endcsname \UTFAtUTmp |
| 11176 | } | 11178 | } |
| 11177 | 11179 | ||
| 11178 | % Native Unicode (XeTeX and LuaTeX) @U command definitions | 11180 | % @U command definitions for native Unicode handling (XeTeX and LuaTeX). |
| 11179 | \def\nativeunicodechardefsatu{% | 11181 | \def\nativeunicodechardefsatu{% |
| 11180 | \let\DeclareUnicodeCharacter\DeclareUnicodeCharacterNativeAtU | 11182 | \let\DeclareUnicodeCharacter\DeclareUnicodeCharacterNativeAtU |
| 11181 | \unicodechardefs | 11183 | \unicodechardefs |
| @@ -11186,7 +11188,7 @@ directory should work if nowhere else does.} | |||
| 11186 | \relax | 11188 | \relax |
| 11187 | } | 11189 | } |
| 11188 | 11190 | ||
| 11189 | % define all the unicode characters we know about, for the sake of @U. | 11191 | % define all Unicode characters we know about, for the sake of @U. |
| 11190 | \iftxinativeunicodecapable | 11192 | \iftxinativeunicodecapable |
| 11191 | \nativeunicodechardefsatu | 11193 | \nativeunicodechardefsatu |
| 11192 | \else | 11194 | \else |
diff --git a/lib/mktime.c b/lib/mktime.c index 40bc2a38a21..8ee4e5ecab4 100644 --- a/lib/mktime.c +++ b/lib/mktime.c | |||
| @@ -470,6 +470,8 @@ mktime (struct tm *tp) | |||
| 470 | time zone names contained in the external variable 'tzname' shall | 470 | time zone names contained in the external variable 'tzname' shall |
| 471 | be set as if the tzset() function had been called. */ | 471 | be set as if the tzset() function had been called. */ |
| 472 | __tzset (); | 472 | __tzset (); |
| 473 | #elif HAVE_TZSET | ||
| 474 | tzset (); | ||
| 473 | #endif | 475 | #endif |
| 474 | 476 | ||
| 475 | return __mktime_internal (tp, __localtime_r, &localtime_offset); | 477 | return __mktime_internal (tp, __localtime_r, &localtime_offset); |
diff --git a/m4/mktime.m4 b/m4/mktime.m4 index 5a0f2d88ab0..23cad732ff4 100644 --- a/m4/mktime.m4 +++ b/m4/mktime.m4 | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | # serial 26 | 1 | # serial 27 |
| 2 | dnl Copyright (C) 2002-2003, 2005-2007, 2009-2016 Free Software Foundation, | 2 | dnl Copyright (C) 2002-2003, 2005-2007, 2009-2016 Free Software Foundation, |
| 3 | dnl Inc. | 3 | dnl Inc. |
| 4 | dnl This file is free software; the Free Software Foundation | 4 | dnl This file is free software; the Free Software Foundation |
| @@ -30,6 +30,7 @@ AC_DEFUN([gl_FUNC_MKTIME], | |||
| 30 | dnl in Autoconf and because it invokes AC_LIBOBJ. | 30 | dnl in Autoconf and because it invokes AC_LIBOBJ. |
| 31 | AC_CHECK_HEADERS_ONCE([unistd.h]) | 31 | AC_CHECK_HEADERS_ONCE([unistd.h]) |
| 32 | AC_CHECK_DECLS_ONCE([alarm]) | 32 | AC_CHECK_DECLS_ONCE([alarm]) |
| 33 | AC_CHECK_FUNCS_ONCE([tzset]) | ||
| 33 | AC_REQUIRE([gl_MULTIARCH]) | 34 | AC_REQUIRE([gl_MULTIARCH]) |
| 34 | if test $APPLE_UNIVERSAL_BUILD = 1; then | 35 | if test $APPLE_UNIVERSAL_BUILD = 1; then |
| 35 | # A universal build on Apple Mac OS X platforms. | 36 | # A universal build on Apple Mac OS X platforms. |