diff options
author | Christian Grothoff <christian@grothoff.org> | 2013-02-06 00:52:27 +0000 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2013-02-06 00:52:27 +0000 |
commit | 5d9bc9ead9d0b5c4ef99e9c1df8a67a522a92f94 (patch) | |
tree | 5018602217116c8e7b4d18a0d5d48d9146bf2ce9 | |
parent | fe480ef1ad1befbb1582d48dacd69e9f635ffc10 (diff) | |
download | libmicrohttpd-5d9bc9ead9d0b5c4ef99e9c1df8a67a522a92f94.tar.gz libmicrohttpd-5d9bc9ead9d0b5c4ef99e9c1df8a67a522a92f94.zip |
-releasing 0.9.25
-rw-r--r-- | ChangeLog | 3 | ||||
-rw-r--r-- | INSTALL | 8 | ||||
-rw-r--r-- | config.sub | 11 | ||||
-rw-r--r-- | configure.ac | 6 | ||||
-rw-r--r-- | doc/texinfo.tex | 441 | ||||
-rw-r--r-- | src/include/microhttpd.h | 2 |
6 files changed, 311 insertions, 160 deletions
@@ -1,3 +1,6 @@ | |||
1 | Wed Feb 6 01:51:52 CET 2013 | ||
2 | Releasing libmicrohttpd 0.9.25. -CG | ||
3 | |||
1 | Fri Feb 1 10:19:44 CET 2013 | 4 | Fri Feb 1 10:19:44 CET 2013 |
2 | Handle case where POST data contains "key=" without value | 5 | Handle case where POST data contains "key=" without value |
3 | at the end and is not new-line terminated by invoking the | 6 | at the end and is not new-line terminated by invoking the |
@@ -1,7 +1,7 @@ | |||
1 | Installation Instructions | 1 | Installation Instructions |
2 | ************************* | 2 | ************************* |
3 | 3 | ||
4 | Copyright (C) 1994-1996, 1999-2002, 2004-2011 Free Software Foundation, | 4 | Copyright (C) 1994-1996, 1999-2002, 2004-2012 Free Software Foundation, |
5 | Inc. | 5 | Inc. |
6 | 6 | ||
7 | Copying and distribution of this file, with or without modification, | 7 | Copying and distribution of this file, with or without modification, |
@@ -309,9 +309,10 @@ causes the specified `gcc' to be used as the C compiler (unless it is | |||
309 | overridden in the site shell script). | 309 | overridden in the site shell script). |
310 | 310 | ||
311 | Unfortunately, this technique does not work for `CONFIG_SHELL' due to | 311 | Unfortunately, this technique does not work for `CONFIG_SHELL' due to |
312 | an Autoconf bug. Until the bug is fixed you can use this workaround: | 312 | an Autoconf limitation. Until the limitation is lifted, you can use |
313 | this workaround: | ||
313 | 314 | ||
314 | CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash | 315 | CONFIG_SHELL=/bin/bash ./configure CONFIG_SHELL=/bin/bash |
315 | 316 | ||
316 | `configure' Invocation | 317 | `configure' Invocation |
317 | ====================== | 318 | ====================== |
@@ -367,4 +368,3 @@ operates. | |||
367 | 368 | ||
368 | `configure' also accepts some other, not widely useful, options. Run | 369 | `configure' also accepts some other, not widely useful, options. Run |
369 | `configure --help' for more details. | 370 | `configure --help' for more details. |
370 | |||
@@ -4,7 +4,7 @@ | |||
4 | # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, | 4 | # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, |
5 | # 2011, 2012 Free Software Foundation, Inc. | 5 | # 2011, 2012 Free Software Foundation, Inc. |
6 | 6 | ||
7 | timestamp='2012-02-10' | 7 | timestamp='2012-04-18' |
8 | 8 | ||
9 | # This file is (in principle) common to ALL GNU software. | 9 | # This file is (in principle) common to ALL GNU software. |
10 | # The presence of a machine in this file suggests that SOME GNU software | 10 | # The presence of a machine in this file suggests that SOME GNU software |
@@ -225,6 +225,12 @@ case $os in | |||
225 | -isc*) | 225 | -isc*) |
226 | basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` | 226 | basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` |
227 | ;; | 227 | ;; |
228 | -lynx*178) | ||
229 | os=-lynxos178 | ||
230 | ;; | ||
231 | -lynx*5) | ||
232 | os=-lynxos5 | ||
233 | ;; | ||
228 | -lynx*) | 234 | -lynx*) |
229 | os=-lynxos | 235 | os=-lynxos |
230 | ;; | 236 | ;; |
@@ -1537,6 +1543,9 @@ case $basic_machine in | |||
1537 | c4x-* | tic4x-*) | 1543 | c4x-* | tic4x-*) |
1538 | os=-coff | 1544 | os=-coff |
1539 | ;; | 1545 | ;; |
1546 | hexagon-*) | ||
1547 | os=-elf | ||
1548 | ;; | ||
1540 | tic54x-*) | 1549 | tic54x-*) |
1541 | os=-coff | 1550 | os=-coff |
1542 | ;; | 1551 | ;; |
diff --git a/configure.ac b/configure.ac index 0f068b24..e5ef3b9f 100644 --- a/configure.ac +++ b/configure.ac | |||
@@ -1,5 +1,5 @@ | |||
1 | # This file is part of libmicrohttpd. | 1 | # This file is part of libmicrohttpd. |
2 | # (C) 2006-2012 Christian Grothoff (and other contributing authors) | 2 | # (C) 2006-2013 Christian Grothoff (and other contributing authors) |
3 | # | 3 | # |
4 | # libmicrohttpd is free software; you can redistribute it and/or modify | 4 | # libmicrohttpd is free software; you can redistribute it and/or modify |
5 | # it under the terms of the GNU General Public License as published | 5 | # it under the terms of the GNU General Public License as published |
@@ -21,14 +21,14 @@ | |||
21 | # | 21 | # |
22 | # | 22 | # |
23 | AC_PREREQ(2.57) | 23 | AC_PREREQ(2.57) |
24 | AC_INIT([libmicrohttpd], [0.9.24],[libmicrohttpd@gnu.org]) | 24 | AC_INIT([libmicrohttpd], [0.9.25],[libmicrohttpd@gnu.org]) |
25 | AM_INIT_AUTOMAKE([silent-rules]) | 25 | AM_INIT_AUTOMAKE([silent-rules]) |
26 | AM_CONFIG_HEADER([MHD_config.h]) | 26 | AM_CONFIG_HEADER([MHD_config.h]) |
27 | AC_CONFIG_MACRO_DIR([m4]) | 27 | AC_CONFIG_MACRO_DIR([m4]) |
28 | AH_TOP([#define _GNU_SOURCE 1]) | 28 | AH_TOP([#define _GNU_SOURCE 1]) |
29 | 29 | ||
30 | LIB_VERSION_CURRENT=26 | 30 | LIB_VERSION_CURRENT=26 |
31 | LIB_VERSION_REVISION=2 | 31 | LIB_VERSION_REVISION=3 |
32 | LIB_VERSION_AGE=16 | 32 | LIB_VERSION_AGE=16 |
33 | AC_SUBST(LIB_VERSION_CURRENT) | 33 | AC_SUBST(LIB_VERSION_CURRENT) |
34 | AC_SUBST(LIB_VERSION_REVISION) | 34 | AC_SUBST(LIB_VERSION_REVISION) |
diff --git a/doc/texinfo.tex b/doc/texinfo.tex index 2abda0f3..9a2439c8 100644 --- a/doc/texinfo.tex +++ b/doc/texinfo.tex | |||
@@ -3,11 +3,11 @@ | |||
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{2012-01-03.09} | 6 | \def\texinfoversion{2012-09-05.06} |
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, |
10 | % 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc. | 10 | % 2007, 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. |
11 | % | 11 | % |
12 | % This texinfo.tex file is free software: you can redistribute it and/or | 12 | % This texinfo.tex file is free software: you can redistribute it and/or |
13 | % modify it under the terms of the GNU General Public License as | 13 | % modify it under the terms of the GNU General Public License as |
@@ -28,9 +28,9 @@ | |||
28 | % | 28 | % |
29 | % Please try the latest version of texinfo.tex before submitting bug | 29 | % Please try the latest version of texinfo.tex before submitting bug |
30 | % reports; you can get the latest version from: | 30 | % reports; you can get the latest version from: |
31 | % http://www.gnu.org/software/texinfo/ (the Texinfo home page), or | 31 | % http://ftp.gnu.org/gnu/texinfo/ (the Texinfo release area), or |
32 | % ftp://tug.org/tex/texinfo.tex | 32 | % http://ftpmirror.gnu.org/texinfo/ (same, via a mirror), or |
33 | % (and all CTAN mirrors, see http://www.ctan.org). | 33 | % http://www.gnu.org/software/texinfo/ (the Texinfo home page) |
34 | % The texinfo.tex in any given distribution could well be out | 34 | % The texinfo.tex in any given distribution could well be out |
35 | % of date, so if that's what you're using, please check. | 35 | % of date, so if that's what you're using, please check. |
36 | % | 36 | % |
@@ -594,7 +594,7 @@ | |||
594 | \def\:{\spacefactor=1000 } | 594 | \def\:{\spacefactor=1000 } |
595 | 595 | ||
596 | % @* forces a line break. | 596 | % @* forces a line break. |
597 | \def\*{\hfil\break\hbox{}\ignorespaces} | 597 | \def\*{\unskip\hfil\break\hbox{}\ignorespaces} |
598 | 598 | ||
599 | % @/ allows a line break. | 599 | % @/ allows a line break. |
600 | \let\/=\allowbreak | 600 | \let\/=\allowbreak |
@@ -887,7 +887,7 @@ where each line of input produces a line of output.} | |||
887 | \def\popthisfilestack{\errthisfilestackempty} | 887 | \def\popthisfilestack{\errthisfilestackempty} |
888 | \def\errthisfilestackempty{\errmessage{Internal error: | 888 | \def\errthisfilestackempty{\errmessage{Internal error: |
889 | the stack of filenames is empty.}} | 889 | the stack of filenames is empty.}} |
890 | 890 | % | |
891 | \def\thisfile{} | 891 | \def\thisfile{} |
892 | 892 | ||
893 | % @center line | 893 | % @center line |
@@ -895,36 +895,46 @@ where each line of input produces a line of output.} | |||
895 | % | 895 | % |
896 | \parseargdef\center{% | 896 | \parseargdef\center{% |
897 | \ifhmode | 897 | \ifhmode |
898 | \let\next\centerH | 898 | \let\centersub\centerH |
899 | \else | 899 | \else |
900 | \let\next\centerV | 900 | \let\centersub\centerV |
901 | \fi | 901 | \fi |
902 | \next{\hfil \ignorespaces#1\unskip \hfil}% | 902 | \centersub{\hfil \ignorespaces#1\unskip \hfil}% |
903 | \let\centersub\relax % don't let the definition persist, just in case | ||
903 | } | 904 | } |
904 | \def\centerH#1{% | 905 | \def\centerH#1{{% |
905 | {% | 906 | \hfil\break |
906 | \hfil\break | 907 | \advance\hsize by -\leftskip |
907 | \advance\hsize by -\leftskip | 908 | \advance\hsize by -\rightskip |
908 | \advance\hsize by -\rightskip | 909 | \line{#1}% |
909 | \line{#1}% | 910 | \break |
910 | \break | 911 | }} |
911 | }% | 912 | % |
913 | \newcount\centerpenalty | ||
914 | \def\centerV#1{% | ||
915 | % The idea here is the same as in \startdefun, \cartouche, etc.: if | ||
916 | % @center is the first thing after a section heading, we need to wipe | ||
917 | % out the negative parskip inserted by \sectionheading, but still | ||
918 | % prevent a page break here. | ||
919 | \centerpenalty = \lastpenalty | ||
920 | \ifnum\centerpenalty>10000 \vskip\parskip \fi | ||
921 | \ifnum\centerpenalty>9999 \penalty\centerpenalty \fi | ||
922 | \line{\kern\leftskip #1\kern\rightskip}% | ||
912 | } | 923 | } |
913 | \def\centerV#1{\line{\kern\leftskip #1\kern\rightskip}} | ||
914 | 924 | ||
915 | % @sp n outputs n lines of vertical space | 925 | % @sp n outputs n lines of vertical space |
916 | 926 | % | |
917 | \parseargdef\sp{\vskip #1\baselineskip} | 927 | \parseargdef\sp{\vskip #1\baselineskip} |
918 | 928 | ||
919 | % @comment ...line which is ignored... | 929 | % @comment ...line which is ignored... |
920 | % @c is the same as @comment | 930 | % @c is the same as @comment |
921 | % @ignore ... @end ignore is another way to write a comment | 931 | % @ignore ... @end ignore is another way to write a comment |
922 | 932 | % | |
923 | \def\comment{\begingroup \catcode`\^^M=\other% | 933 | \def\comment{\begingroup \catcode`\^^M=\other% |
924 | \catcode`\@=\other \catcode`\{=\other \catcode`\}=\other% | 934 | \catcode`\@=\other \catcode`\{=\other \catcode`\}=\other% |
925 | \commentxxx} | 935 | \commentxxx} |
926 | {\catcode`\^^M=\other \gdef\commentxxx#1^^M{\endgroup}} | 936 | {\catcode`\^^M=\other \gdef\commentxxx#1^^M{\endgroup}} |
927 | 937 | % | |
928 | \let\c=\comment | 938 | \let\c=\comment |
929 | 939 | ||
930 | % @paragraphindent NCHARS | 940 | % @paragraphindent NCHARS |
@@ -1107,7 +1117,7 @@ where each line of input produces a line of output.} | |||
1107 | % #1 is a control sequence in which to do the replacements, | 1117 | % #1 is a control sequence in which to do the replacements, |
1108 | % which we \xdef. | 1118 | % which we \xdef. |
1109 | \def\txiescapepdf#1{% | 1119 | \def\txiescapepdf#1{% |
1110 | \ifx\pdfescapestring\relax | 1120 | \ifx\pdfescapestring\thisisundefined |
1111 | % No primitive available; should we give a warning or log? | 1121 | % No primitive available; should we give a warning or log? |
1112 | % Many times it won't matter. | 1122 | % Many times it won't matter. |
1113 | \else | 1123 | \else |
@@ -1173,8 +1183,8 @@ output) for that.)} | |||
1173 | % | 1183 | % |
1174 | % #1 is image name, #2 width (might be empty/whitespace), #3 height (ditto). | 1184 | % #1 is image name, #2 width (might be empty/whitespace), #3 height (ditto). |
1175 | \def\dopdfimage#1#2#3{% | 1185 | \def\dopdfimage#1#2#3{% |
1176 | \def\imagewidth{#2}\setbox0 = \hbox{\ignorespaces #2}% | 1186 | \def\pdfimagewidth{#2}\setbox0 = \hbox{\ignorespaces #2}% |
1177 | \def\imageheight{#3}\setbox2 = \hbox{\ignorespaces #3}% | 1187 | \def\pdfimageheight{#3}\setbox2 = \hbox{\ignorespaces #3}% |
1178 | % | 1188 | % |
1179 | % pdftex (and the PDF format) support .pdf, .png, .jpg (among | 1189 | % pdftex (and the PDF format) support .pdf, .png, .jpg (among |
1180 | % others). Let's try in that order, PDF first since if | 1190 | % others). Let's try in that order, PDF first since if |
@@ -1212,8 +1222,8 @@ output) for that.)} | |||
1212 | \else | 1222 | \else |
1213 | \immediate\pdfximage | 1223 | \immediate\pdfximage |
1214 | \fi | 1224 | \fi |
1215 | \ifdim \wd0 >0pt width \imagewidth \fi | 1225 | \ifdim \wd0 >0pt width \pdfimagewidth \fi |
1216 | \ifdim \wd2 >0pt height \imageheight \fi | 1226 | \ifdim \wd2 >0pt height \pdfimageheight \fi |
1217 | \ifnum\pdftexversion<13 | 1227 | \ifnum\pdftexversion<13 |
1218 | #1.\pdfimgext | 1228 | #1.\pdfimgext |
1219 | \else | 1229 | \else |
@@ -1357,12 +1367,17 @@ output) for that.)} | |||
1357 | \def\skipspaces#1{\def\PP{#1}\def\D{|}% | 1367 | \def\skipspaces#1{\def\PP{#1}\def\D{|}% |
1358 | \ifx\PP\D\let\nextsp\relax | 1368 | \ifx\PP\D\let\nextsp\relax |
1359 | \else\let\nextsp\skipspaces | 1369 | \else\let\nextsp\skipspaces |
1360 | \ifx\p\space\else\addtokens{\filename}{\PP}% | 1370 | \addtokens{\filename}{\PP}% |
1361 | \advance\filenamelength by 1 | 1371 | \advance\filenamelength by 1 |
1362 | \fi | ||
1363 | \fi | 1372 | \fi |
1364 | \nextsp} | 1373 | \nextsp} |
1365 | \def\getfilename#1{\filenamelength=0\expandafter\skipspaces#1|\relax} | 1374 | \def\getfilename#1{% |
1375 | \filenamelength=0 | ||
1376 | % If we don't expand the argument now, \skipspaces will get | ||
1377 | % snagged on things like "@value{foo}". | ||
1378 | \edef\temp{#1}% | ||
1379 | \expandafter\skipspaces\temp|\relax | ||
1380 | } | ||
1366 | \ifnum\pdftexversion < 14 | 1381 | \ifnum\pdftexversion < 14 |
1367 | \let \startlink \pdfannotlink | 1382 | \let \startlink \pdfannotlink |
1368 | \else | 1383 | \else |
@@ -1459,9 +1474,6 @@ output) for that.)} | |||
1459 | \def\ttsl{\setfontstyle{ttsl}} | 1474 | \def\ttsl{\setfontstyle{ttsl}} |
1460 | 1475 | ||
1461 | 1476 | ||
1462 | % Default leading. | ||
1463 | \newdimen\textleading \textleading = 13.2pt | ||
1464 | |||
1465 | % Set the baselineskip to #1, and the lineskip and strut size | 1477 | % Set the baselineskip to #1, and the lineskip and strut size |
1466 | % correspondingly. There is no deep meaning behind these magic numbers | 1478 | % correspondingly. There is no deep meaning behind these magic numbers |
1467 | % used as factors; they just match (closely enough) what Knuth defined. | 1479 | % used as factors; they just match (closely enough) what Knuth defined. |
@@ -1473,6 +1485,7 @@ output) for that.)} | |||
1473 | % can get a sort of poor man's double spacing by redefining this. | 1485 | % can get a sort of poor man's double spacing by redefining this. |
1474 | \def\baselinefactor{1} | 1486 | \def\baselinefactor{1} |
1475 | % | 1487 | % |
1488 | \newdimen\textleading | ||
1476 | \def\setleading#1{% | 1489 | \def\setleading#1{% |
1477 | \dimen0 = #1\relax | 1490 | \dimen0 = #1\relax |
1478 | \normalbaselineskip = \baselinefactor\dimen0 | 1491 | \normalbaselineskip = \baselinefactor\dimen0 |
@@ -1745,18 +1758,24 @@ end | |||
1745 | \fi\fi | 1758 | \fi\fi |
1746 | 1759 | ||
1747 | 1760 | ||
1748 | % Set the font macro #1 to the font named #2, adding on the | 1761 | % Set the font macro #1 to the font named \fontprefix#2. |
1749 | % specified font prefix (normally `cm'). | ||
1750 | % #3 is the font's design size, #4 is a scale factor, #5 is the CMap | 1762 | % #3 is the font's design size, #4 is a scale factor, #5 is the CMap |
1751 | % encoding (currently only OT1, OT1IT and OT1TT are allowed, pass | 1763 | % encoding (only OT1, OT1IT and OT1TT are allowed, or empty to omit). |
1752 | % empty to omit). | 1764 | % Example: |
1765 | % #1 = \textrm | ||
1766 | % #2 = \rmshape | ||
1767 | % #3 = 10 | ||
1768 | % #4 = \mainmagstep | ||
1769 | % #5 = OT1 | ||
1770 | % | ||
1753 | \def\setfont#1#2#3#4#5{% | 1771 | \def\setfont#1#2#3#4#5{% |
1754 | \font#1=\fontprefix#2#3 scaled #4 | 1772 | \font#1=\fontprefix#2#3 scaled #4 |
1755 | \csname cmap#5\endcsname#1% | 1773 | \csname cmap#5\endcsname#1% |
1756 | } | 1774 | } |
1757 | % This is what gets called when #5 of \setfont is empty. | 1775 | % This is what gets called when #5 of \setfont is empty. |
1758 | \let\cmap\gobble | 1776 | \let\cmap\gobble |
1759 | % emacs-page end of cmaps | 1777 | % |
1778 | % (end of cmaps) | ||
1760 | 1779 | ||
1761 | % Use cm as the default font prefix. | 1780 | % Use cm as the default font prefix. |
1762 | % To specify the font prefix, you must define \fontprefix | 1781 | % To specify the font prefix, you must define \fontprefix |
@@ -1766,7 +1785,7 @@ end | |||
1766 | \fi | 1785 | \fi |
1767 | % Support font families that don't use the same naming scheme as CM. | 1786 | % Support font families that don't use the same naming scheme as CM. |
1768 | \def\rmshape{r} | 1787 | \def\rmshape{r} |
1769 | \def\rmbshape{bx} %where the normal face is bold | 1788 | \def\rmbshape{bx} % where the normal face is bold |
1770 | \def\bfshape{b} | 1789 | \def\bfshape{b} |
1771 | \def\bxshape{bx} | 1790 | \def\bxshape{bx} |
1772 | \def\ttshape{tt} | 1791 | \def\ttshape{tt} |
@@ -1781,8 +1800,7 @@ end | |||
1781 | \def\scshape{csc} | 1800 | \def\scshape{csc} |
1782 | \def\scbshape{csc} | 1801 | \def\scbshape{csc} |
1783 | 1802 | ||
1784 | % Definitions for a main text size of 11pt. This is the default in | 1803 | % Definitions for a main text size of 11pt. (The default in Texinfo.) |
1785 | % Texinfo. | ||
1786 | % | 1804 | % |
1787 | \def\definetextfontsizexi{% | 1805 | \def\definetextfontsizexi{% |
1788 | % Text fonts (11.2pt, magstep1). | 1806 | % Text fonts (11.2pt, magstep1). |
@@ -1907,7 +1925,7 @@ end | |||
1907 | \textleading = 13.2pt % line spacing for 11pt CM | 1925 | \textleading = 13.2pt % line spacing for 11pt CM |
1908 | \textfonts % reset the current fonts | 1926 | \textfonts % reset the current fonts |
1909 | \rm | 1927 | \rm |
1910 | } % end of 11pt text font size definitions | 1928 | } % end of 11pt text font size definitions, \definetextfontsizexi |
1911 | 1929 | ||
1912 | 1930 | ||
1913 | % Definitions to make the main text be 10pt Computer Modern, with | 1931 | % Definitions to make the main text be 10pt Computer Modern, with |
@@ -2039,7 +2057,7 @@ end | |||
2039 | \textleading = 12pt % line spacing for 10pt CM | 2057 | \textleading = 12pt % line spacing for 10pt CM |
2040 | \textfonts % reset the current fonts | 2058 | \textfonts % reset the current fonts |
2041 | \rm | 2059 | \rm |
2042 | } % end of 10pt text font size definitions | 2060 | } % end of 10pt text font size definitions, \definetextfontsizex |
2043 | 2061 | ||
2044 | 2062 | ||
2045 | % We provide the user-level command | 2063 | % We provide the user-level command |
@@ -2430,34 +2448,12 @@ end | |||
2430 | % @samp. | 2448 | % @samp. |
2431 | \def\samp#1{{\setupmarkupstyle{samp}\lq\tclose{#1}\rq\null}} | 2449 | \def\samp#1{{\setupmarkupstyle{samp}\lq\tclose{#1}\rq\null}} |
2432 | 2450 | ||
2433 | % definition of @key that produces a lozenge. Doesn't adjust to text size. | 2451 | % @indicateurl is \samp, that is, with quotes. |
2434 | %\setfont\keyrm\rmshape{8}{1000}{OT1} | 2452 | \let\indicateurl=\samp |
2435 | %\font\keysy=cmsy9 | ||
2436 | %\def\key#1{{\keyrm\textfont2=\keysy \leavevmode\hbox{% | ||
2437 | % \raise0.4pt\hbox{\angleleft}\kern-.08em\vtop{% | ||
2438 | % \vbox{\hrule\kern-0.4pt | ||
2439 | % \hbox{\raise0.4pt\hbox{\vphantom{\angleleft}}#1}}% | ||
2440 | % \kern-0.4pt\hrule}% | ||
2441 | % \kern-.06em\raise0.4pt\hbox{\angleright}}}} | ||
2442 | 2453 | ||
2443 | % definition of @key with no lozenge. If the current font is already | 2454 | % @code (and similar) prints in typewriter, but with spaces the same |
2444 | % monospace, don't change it; that way, we respect @kbdinputstyle. But | 2455 | % size as normal in the surrounding text, without hyphenation, etc. |
2445 | % if it isn't monospace, then use \tt. | 2456 | % This is a subroutine for that. |
2446 | % | ||
2447 | \def\key#1{{\setupmarkupstyle{key}% | ||
2448 | \nohyphenation | ||
2449 | \ifmonospace\else\tt\fi | ||
2450 | #1}\null} | ||
2451 | |||
2452 | % ctrl is no longer a Texinfo command. | ||
2453 | \def\ctrl #1{{\tt \rawbackslash \hat}#1} | ||
2454 | |||
2455 | % @file, @option are the same as @samp. | ||
2456 | \let\file=\samp | ||
2457 | \let\option=\samp | ||
2458 | |||
2459 | % @code is a modification of @t, | ||
2460 | % which makes spaces the same size as normal in the surrounding text. | ||
2461 | \def\tclose#1{% | 2457 | \def\tclose#1{% |
2462 | {% | 2458 | {% |
2463 | % Change normal interword space to be same as for the current font. | 2459 | % Change normal interword space to be same as for the current font. |
@@ -2482,7 +2478,7 @@ end | |||
2482 | % We *must* turn on hyphenation at `-' and `_' in @code. | 2478 | % We *must* turn on hyphenation at `-' and `_' in @code. |
2483 | % Otherwise, it is too hard to avoid overfull hboxes | 2479 | % Otherwise, it is too hard to avoid overfull hboxes |
2484 | % in the Emacs manual, the Library manual, etc. | 2480 | % in the Emacs manual, the Library manual, etc. |
2485 | 2481 | % | |
2486 | % Unfortunately, TeX uses one parameter (\hyphenchar) to control | 2482 | % Unfortunately, TeX uses one parameter (\hyphenchar) to control |
2487 | % both hyphenation at - and hyphenation within words. | 2483 | % both hyphenation at - and hyphenation within words. |
2488 | % We must therefore turn them both off (\tclose does that) | 2484 | % We must therefore turn them both off (\tclose does that) |
@@ -2546,6 +2542,13 @@ end | |||
2546 | \fi\fi | 2542 | \fi\fi |
2547 | } | 2543 | } |
2548 | 2544 | ||
2545 | % For @command, @env, @file, @option quotes seem unnecessary, | ||
2546 | % so use \code rather than \samp. | ||
2547 | \let\command=\code | ||
2548 | \let\env=\code | ||
2549 | \let\file=\code | ||
2550 | \let\option=\code | ||
2551 | |||
2549 | % @uref (abbreviation for `urlref') takes an optional (comma-separated) | 2552 | % @uref (abbreviation for `urlref') takes an optional (comma-separated) |
2550 | % second argument specifying the text to display and an optional third | 2553 | % second argument specifying the text to display and an optional third |
2551 | % arg as text to display instead of (rather than in addition to) the url | 2554 | % arg as text to display instead of (rather than in addition to) the url |
@@ -2725,10 +2728,24 @@ end | |||
2725 | \else{\tclose{\kbdfont\setupmarkupstyle{kbd}\look}}\fi | 2728 | \else{\tclose{\kbdfont\setupmarkupstyle{kbd}\look}}\fi |
2726 | \else{\tclose{\kbdfont\setupmarkupstyle{kbd}\look}}\fi} | 2729 | \else{\tclose{\kbdfont\setupmarkupstyle{kbd}\look}}\fi} |
2727 | 2730 | ||
2728 | % For @indicateurl, @env, @command quotes seem unnecessary, so use \code. | 2731 | % definition of @key that produces a lozenge. Doesn't adjust to text size. |
2729 | \let\indicateurl=\code | 2732 | %\setfont\keyrm\rmshape{8}{1000}{OT1} |
2730 | \let\env=\code | 2733 | %\font\keysy=cmsy9 |
2731 | \let\command=\code | 2734 | %\def\key#1{{\keyrm\textfont2=\keysy \leavevmode\hbox{% |
2735 | % \raise0.4pt\hbox{\angleleft}\kern-.08em\vtop{% | ||
2736 | % \vbox{\hrule\kern-0.4pt | ||
2737 | % \hbox{\raise0.4pt\hbox{\vphantom{\angleleft}}#1}}% | ||
2738 | % \kern-0.4pt\hrule}% | ||
2739 | % \kern-.06em\raise0.4pt\hbox{\angleright}}}} | ||
2740 | |||
2741 | % definition of @key with no lozenge. If the current font is already | ||
2742 | % monospace, don't change it; that way, we respect @kbdinputstyle. But | ||
2743 | % if it isn't monospace, then use \tt. | ||
2744 | % | ||
2745 | \def\key#1{{\setupmarkupstyle{key}% | ||
2746 | \nohyphenation | ||
2747 | \ifmonospace\else\tt\fi | ||
2748 | #1}\null} | ||
2732 | 2749 | ||
2733 | % @clicksequence{File @click{} Open ...} | 2750 | % @clicksequence{File @click{} Open ...} |
2734 | \def\clicksequence#1{\begingroup #1\endgroup} | 2751 | \def\clicksequence#1{\begingroup #1\endgroup} |
@@ -2836,14 +2853,17 @@ end | |||
2836 | } | 2853 | } |
2837 | } | 2854 | } |
2838 | 2855 | ||
2856 | % ctrl is no longer a Texinfo command, but leave this definition for fun. | ||
2857 | \def\ctrl #1{{\tt \rawbackslash \hat}#1} | ||
2858 | |||
2839 | % @inlinefmt{FMTNAME,PROCESSED-TEXT} and @inlineraw{FMTNAME,RAW-TEXT}. | 2859 | % @inlinefmt{FMTNAME,PROCESSED-TEXT} and @inlineraw{FMTNAME,RAW-TEXT}. |
2840 | % Ignore unless FMTNAME == tex; then it is like @iftex and @tex, | 2860 | % Ignore unless FMTNAME == tex; then it is like @iftex and @tex, |
2841 | % except specified as a normal braced arg, so no newlines to worry about. | 2861 | % except specified as a normal braced arg, so no newlines to worry about. |
2842 | % | 2862 | % |
2843 | \def\outfmtnametex{tex} | 2863 | \def\outfmtnametex{tex} |
2844 | % | 2864 | % |
2845 | \def\inlinefmt#1{\doinlinefmt #1,\finish} | 2865 | \long\def\inlinefmt#1{\doinlinefmt #1,\finish} |
2846 | \def\doinlinefmt#1,#2,\finish{% | 2866 | \long\def\doinlinefmt#1,#2,\finish{% |
2847 | \def\inlinefmtname{#1}% | 2867 | \def\inlinefmtname{#1}% |
2848 | \ifx\inlinefmtname\outfmtnametex \ignorespaces #2\fi | 2868 | \ifx\inlinefmtname\outfmtnametex \ignorespaces #2\fi |
2849 | } | 2869 | } |
@@ -2855,8 +2875,8 @@ end | |||
2855 | % well use a command to get a left brace too. We could re-use the | 2875 | % well use a command to get a left brace too. We could re-use the |
2856 | % delimiter character idea from \verb, but it seems like overkill. | 2876 | % delimiter character idea from \verb, but it seems like overkill. |
2857 | % | 2877 | % |
2858 | \def\inlineraw{\tex \doinlineraw} | 2878 | \long\def\inlineraw{\tex \doinlineraw} |
2859 | \def\doinlineraw#1{\doinlinerawtwo #1,\finish} | 2879 | \long\def\doinlineraw#1{\doinlinerawtwo #1,\finish} |
2860 | \def\doinlinerawtwo#1,#2,\finish{% | 2880 | \def\doinlinerawtwo#1,#2,\finish{% |
2861 | \def\inlinerawname{#1}% | 2881 | \def\inlinerawname{#1}% |
2862 | \ifx\inlinerawname\outfmtnametex \ignorespaces #2\fi | 2882 | \ifx\inlinerawname\outfmtnametex \ignorespaces #2\fi |
@@ -3126,12 +3146,17 @@ end | |||
3126 | % hopefully nobody will notice/care. | 3146 | % hopefully nobody will notice/care. |
3127 | \edef\ecsize{\csname\curfontsize ecsize\endcsname}% | 3147 | \edef\ecsize{\csname\curfontsize ecsize\endcsname}% |
3128 | \edef\nominalsize{\csname\curfontsize nominalsize\endcsname}% | 3148 | \edef\nominalsize{\csname\curfontsize nominalsize\endcsname}% |
3129 | \ifx\curfontstyle\bfstylename | 3149 | \ifmonospace |
3130 | % bold: | 3150 | % typewriter: |
3131 | \font\thisecfont = ecb\ifusingit{i}{x}\ecsize \space at \nominalsize | 3151 | \font\thisecfont = ectt\ecsize \space at \nominalsize |
3132 | \else | 3152 | \else |
3133 | % regular: | 3153 | \ifx\curfontstyle\bfstylename |
3134 | \font\thisecfont = ec\ifusingit{ti}{rm}\ecsize \space at \nominalsize | 3154 | % bold: |
3155 | \font\thisecfont = ecb\ifusingit{i}{x}\ecsize \space at \nominalsize | ||
3156 | \else | ||
3157 | % regular: | ||
3158 | \font\thisecfont = ec\ifusingit{ti}{rm}\ecsize \space at \nominalsize | ||
3159 | \fi | ||
3135 | \fi | 3160 | \fi |
3136 | \thisecfont | 3161 | \thisecfont |
3137 | } | 3162 | } |
@@ -3244,6 +3269,20 @@ end | |||
3244 | \finishedtitlepagetrue | 3269 | \finishedtitlepagetrue |
3245 | } | 3270 | } |
3246 | 3271 | ||
3272 | % Settings used for typesetting titles: no hyphenation, no indentation, | ||
3273 | % don't worry much about spacing, ragged right. This should be used | ||
3274 | % inside a \vbox, and fonts need to be set appropriately first. Because | ||
3275 | % it is always used for titles, nothing else, we call \rmisbold. \par | ||
3276 | % should be specified before the end of the \vbox, since a vbox is a group. | ||
3277 | % | ||
3278 | \def\raggedtitlesettings{% | ||
3279 | \rmisbold | ||
3280 | \hyphenpenalty=10000 | ||
3281 | \parindent=0pt | ||
3282 | \tolerance=5000 | ||
3283 | \ptexraggedright | ||
3284 | } | ||
3285 | |||
3247 | % Macros to be used within @titlepage: | 3286 | % Macros to be used within @titlepage: |
3248 | 3287 | ||
3249 | \let\subtitlerm=\tenrm | 3288 | \let\subtitlerm=\tenrm |
@@ -3251,7 +3290,7 @@ end | |||
3251 | 3290 | ||
3252 | \parseargdef\title{% | 3291 | \parseargdef\title{% |
3253 | \checkenv\titlepage | 3292 | \checkenv\titlepage |
3254 | \leftline{\titlefonts\rmisbold #1} | 3293 | \vbox{\titlefonts \raggedtitlesettings #1\par}% |
3255 | % print a rule at the page bottom also. | 3294 | % print a rule at the page bottom also. |
3256 | \finishedtitlepagefalse | 3295 | \finishedtitlepagefalse |
3257 | \vskip4pt \hrule height 4pt width \hsize \vskip4pt | 3296 | \vskip4pt \hrule height 4pt width \hsize \vskip4pt |
@@ -4188,7 +4227,7 @@ end | |||
4188 | } | 4227 | } |
4189 | \def\ifsetfail{\doignore{ifset}} | 4228 | \def\ifsetfail{\doignore{ifset}} |
4190 | 4229 | ||
4191 | % @ifclear VAR ... @end ifclear reads the `...' iff VAR has never been | 4230 | % @ifclear VAR ... @end executes the `...' iff VAR has never been |
4192 | % defined with @set, or has been undefined with @clear. | 4231 | % defined with @set, or has been undefined with @clear. |
4193 | % | 4232 | % |
4194 | % The `\else' inside the `\doifset' parameter is a trick to reuse the | 4233 | % The `\else' inside the `\doifset' parameter is a trick to reuse the |
@@ -4199,6 +4238,35 @@ end | |||
4199 | \def\ifclear{\parsearg{\doifset{\else \let\next=\ifclearfail}}} | 4238 | \def\ifclear{\parsearg{\doifset{\else \let\next=\ifclearfail}}} |
4200 | \def\ifclearfail{\doignore{ifclear}} | 4239 | \def\ifclearfail{\doignore{ifclear}} |
4201 | 4240 | ||
4241 | % @ifcommandisdefined CMD ... @end executes the `...' if CMD (written | ||
4242 | % without the @) is in fact defined. We can only feasibly check at the | ||
4243 | % TeX level, so something like `mathcode' is going to considered | ||
4244 | % defined even though it is not a Texinfo command. | ||
4245 | % | ||
4246 | \makecond{ifcommanddefined} | ||
4247 | \def\ifcommanddefined{\parsearg{\doifcmddefined{\let\next=\ifcmddefinedfail}}} | ||
4248 | % | ||
4249 | \def\doifcmddefined#1#2{{% | ||
4250 | \makevalueexpandable | ||
4251 | \let\next=\empty | ||
4252 | \expandafter\ifx\csname #2\endcsname\relax | ||
4253 | #1% If not defined, \let\next as above. | ||
4254 | \fi | ||
4255 | \expandafter | ||
4256 | }\next | ||
4257 | } | ||
4258 | \def\ifcmddefinedfail{\doignore{ifcommanddefined}} | ||
4259 | |||
4260 | % @ifcommandnotdefined CMD ... handlded similar to @ifclear above. | ||
4261 | \makecond{ifcommandnotdefined} | ||
4262 | \def\ifcommandnotdefined{% | ||
4263 | \parsearg{\doifcmddefined{\else \let\next=\ifcmdnotdefinedfail}}} | ||
4264 | \def\ifcmdnotdefinedfail{\doignore{ifcommandnotdefined}} | ||
4265 | |||
4266 | % Set the `txicommandconditionals' variable, so documents have a way to | ||
4267 | % test if the @ifcommand...defined conditionals are available. | ||
4268 | \set txicommandconditionals | ||
4269 | |||
4202 | % @dircategory CATEGORY -- specify a category of the dir file | 4270 | % @dircategory CATEGORY -- specify a category of the dir file |
4203 | % which this file should belong to. Ignore this in TeX. | 4271 | % which this file should belong to. Ignore this in TeX. |
4204 | \let\dircategory=\comment | 4272 | \let\dircategory=\comment |
@@ -4435,6 +4503,7 @@ end | |||
4435 | \definedummyword\guillemetright | 4503 | \definedummyword\guillemetright |
4436 | \definedummyword\guilsinglleft | 4504 | \definedummyword\guilsinglleft |
4437 | \definedummyword\guilsinglright | 4505 | \definedummyword\guilsinglright |
4506 | \definedummyword\lbracechar | ||
4438 | \definedummyword\leq | 4507 | \definedummyword\leq |
4439 | \definedummyword\minus | 4508 | \definedummyword\minus |
4440 | \definedummyword\ogonek | 4509 | \definedummyword\ogonek |
@@ -4447,6 +4516,7 @@ end | |||
4447 | \definedummyword\quoteleft | 4516 | \definedummyword\quoteleft |
4448 | \definedummyword\quoteright | 4517 | \definedummyword\quoteright |
4449 | \definedummyword\quotesinglbase | 4518 | \definedummyword\quotesinglbase |
4519 | \definedummyword\rbracechar | ||
4450 | \definedummyword\result | 4520 | \definedummyword\result |
4451 | \definedummyword\textdegree | 4521 | \definedummyword\textdegree |
4452 | % | 4522 | % |
@@ -4498,6 +4568,7 @@ end | |||
4498 | \definedummyword\t | 4568 | \definedummyword\t |
4499 | % | 4569 | % |
4500 | % Commands that take arguments. | 4570 | % Commands that take arguments. |
4571 | \definedummyword\abbr | ||
4501 | \definedummyword\acronym | 4572 | \definedummyword\acronym |
4502 | \definedummyword\anchor | 4573 | \definedummyword\anchor |
4503 | \definedummyword\cite | 4574 | \definedummyword\cite |
@@ -4509,7 +4580,9 @@ end | |||
4509 | \definedummyword\emph | 4580 | \definedummyword\emph |
4510 | \definedummyword\env | 4581 | \definedummyword\env |
4511 | \definedummyword\file | 4582 | \definedummyword\file |
4583 | \definedummyword\image | ||
4512 | \definedummyword\indicateurl | 4584 | \definedummyword\indicateurl |
4585 | \definedummyword\inforef | ||
4513 | \definedummyword\kbd | 4586 | \definedummyword\kbd |
4514 | \definedummyword\key | 4587 | \definedummyword\key |
4515 | \definedummyword\math | 4588 | \definedummyword\math |
@@ -4556,7 +4629,10 @@ end | |||
4556 | % content at all. So for index sorting, we map @{ and @} to strings | 4629 | % content at all. So for index sorting, we map @{ and @} to strings |
4557 | % starting with |, since that ASCII character is between ASCII { and }. | 4630 | % starting with |, since that ASCII character is between ASCII { and }. |
4558 | \def\{{|a}% | 4631 | \def\{{|a}% |
4632 | \def\lbracechar{|a}% | ||
4633 | % | ||
4559 | \def\}{|b}% | 4634 | \def\}{|b}% |
4635 | \def\rbracechar{|b}% | ||
4560 | % | 4636 | % |
4561 | % Non-English letters. | 4637 | % Non-English letters. |
4562 | \def\AA{AA}% | 4638 | \def\AA{AA}% |
@@ -4732,10 +4808,9 @@ end | |||
4732 | % | 4808 | % |
4733 | % ..., ready, GO: | 4809 | % ..., ready, GO: |
4734 | % | 4810 | % |
4735 | \def\safewhatsit#1{% | 4811 | \def\safewhatsit#1{\ifhmode |
4736 | \ifhmode | ||
4737 | #1% | 4812 | #1% |
4738 | \else | 4813 | \else |
4739 | % \lastskip and \lastpenalty cannot both be nonzero simultaneously. | 4814 | % \lastskip and \lastpenalty cannot both be nonzero simultaneously. |
4740 | \whatsitskip = \lastskip | 4815 | \whatsitskip = \lastskip |
4741 | \edef\lastskipmacro{\the\lastskip}% | 4816 | \edef\lastskipmacro{\the\lastskip}% |
@@ -4759,7 +4834,6 @@ end | |||
4759 | % to re-insert the same penalty (values >10000 are used for various | 4834 | % to re-insert the same penalty (values >10000 are used for various |
4760 | % signals); since we just inserted a non-discardable item, any | 4835 | % signals); since we just inserted a non-discardable item, any |
4761 | % following glue (such as a \parskip) would be a breakpoint. For example: | 4836 | % following glue (such as a \parskip) would be a breakpoint. For example: |
4762 | % | ||
4763 | % @deffn deffn-whatever | 4837 | % @deffn deffn-whatever |
4764 | % @vindex index-whatever | 4838 | % @vindex index-whatever |
4765 | % Description. | 4839 | % Description. |
@@ -4772,8 +4846,7 @@ end | |||
4772 | % (the whatsit from the \write), so we must insert a \nobreak. | 4846 | % (the whatsit from the \write), so we must insert a \nobreak. |
4773 | \nobreak\vskip\whatsitskip | 4847 | \nobreak\vskip\whatsitskip |
4774 | \fi | 4848 | \fi |
4775 | \fi | 4849 | \fi} |
4776 | } | ||
4777 | 4850 | ||
4778 | % The index entry written in the file actually looks like | 4851 | % The index entry written in the file actually looks like |
4779 | % \entry {sortstring}{page}{topic} | 4852 | % \entry {sortstring}{page}{topic} |
@@ -5520,14 +5593,6 @@ end | |||
5520 | 5593 | ||
5521 | % Define @majorheading, @heading and @subheading | 5594 | % Define @majorheading, @heading and @subheading |
5522 | 5595 | ||
5523 | % NOTE on use of \vbox for chapter headings, section headings, and such: | ||
5524 | % 1) We use \vbox rather than the earlier \line to permit | ||
5525 | % overlong headings to fold. | ||
5526 | % 2) \hyphenpenalty is set to 10000 because hyphenation in a | ||
5527 | % heading is obnoxious; this forbids it. | ||
5528 | % 3) Likewise, headings look best if no \parindent is used, and | ||
5529 | % if justification is not attempted. Hence \raggedright. | ||
5530 | |||
5531 | \def\majorheading{% | 5596 | \def\majorheading{% |
5532 | {\advance\chapheadingskip by 10pt \chapbreak }% | 5597 | {\advance\chapheadingskip by 10pt \chapbreak }% |
5533 | \parsearg\chapheadingzzz | 5598 | \parsearg\chapheadingzzz |
@@ -5535,10 +5600,8 @@ end | |||
5535 | 5600 | ||
5536 | \def\chapheading{\chapbreak \parsearg\chapheadingzzz} | 5601 | \def\chapheading{\chapbreak \parsearg\chapheadingzzz} |
5537 | \def\chapheadingzzz#1{% | 5602 | \def\chapheadingzzz#1{% |
5538 | {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000 | 5603 | \vbox{\chapfonts \raggedtitlesettings #1\par}% |
5539 | \parindent=0pt\ptexraggedright | 5604 | \nobreak\bigskip \nobreak |
5540 | \rmisbold #1\hfill}}% | ||
5541 | \bigskip \par\penalty 200\relax | ||
5542 | \suppressfirstparagraphindent | 5605 | \suppressfirstparagraphindent |
5543 | } | 5606 | } |
5544 | 5607 | ||
@@ -5697,8 +5760,7 @@ end | |||
5697 | % | 5760 | % |
5698 | % Typeset the actual heading. | 5761 | % Typeset the actual heading. |
5699 | \nobreak % Avoid page breaks at the interline glue. | 5762 | \nobreak % Avoid page breaks at the interline glue. |
5700 | \vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \ptexraggedright | 5763 | \vbox{\raggedtitlesettings \hangindent=\wd0 \centerparametersmaybe |
5701 | \hangindent=\wd0 \centerparametersmaybe | ||
5702 | \unhbox0 #1\par}% | 5764 | \unhbox0 #1\par}% |
5703 | }% | 5765 | }% |
5704 | \nobreak\bigskip % no page break after a chapter title | 5766 | \nobreak\bigskip % no page break after a chapter title |
@@ -5720,18 +5782,18 @@ end | |||
5720 | \def\setchapterstyle #1 {\csname CHAPF#1\endcsname} | 5782 | \def\setchapterstyle #1 {\csname CHAPF#1\endcsname} |
5721 | % | 5783 | % |
5722 | \def\unnchfopen #1{% | 5784 | \def\unnchfopen #1{% |
5723 | \chapoddpage {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000 | 5785 | \chapoddpage |
5724 | \parindent=0pt\ptexraggedright | 5786 | \vbox{\chapfonts \raggedtitlesettings #1\par}% |
5725 | \rmisbold #1\hfill}}\bigskip \par\nobreak | 5787 | \nobreak\bigskip\nobreak |
5726 | } | 5788 | } |
5727 | \def\chfopen #1#2{\chapoddpage {\chapfonts | 5789 | \def\chfopen #1#2{\chapoddpage {\chapfonts |
5728 | \vbox to 3in{\vfil \hbox to\hsize{\hfil #2} \hbox to\hsize{\hfil #1} \vfil}}% | 5790 | \vbox to 3in{\vfil \hbox to\hsize{\hfil #2} \hbox to\hsize{\hfil #1} \vfil}}% |
5729 | \par\penalty 5000 % | 5791 | \par\penalty 5000 % |
5730 | } | 5792 | } |
5731 | \def\centerchfopen #1{% | 5793 | \def\centerchfopen #1{% |
5732 | \chapoddpage {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000 | 5794 | \chapoddpage |
5733 | \parindent=0pt | 5795 | \vbox{\chapfonts \raggedtitlesettings \hfill #1\hfill}% |
5734 | \hfill {\rmisbold #1}\hfill}}\bigskip \par\nobreak | 5796 | \nobreak\bigskip \nobreak |
5735 | } | 5797 | } |
5736 | \def\CHAPFopen{% | 5798 | \def\CHAPFopen{% |
5737 | \global\let\chapmacro=\chfopen | 5799 | \global\let\chapmacro=\chfopen |
@@ -5876,14 +5938,15 @@ end | |||
5876 | % | 5938 | % |
5877 | % We'll almost certainly start a paragraph next, so don't let that | 5939 | % We'll almost certainly start a paragraph next, so don't let that |
5878 | % glue accumulate. (Not a breakpoint because it's preceded by a | 5940 | % glue accumulate. (Not a breakpoint because it's preceded by a |
5879 | % discardable item.) | 5941 | % discardable item.) However, when a paragraph is not started next |
5942 | % (\startdefun, \cartouche, \center, etc.), this needs to be wiped out | ||
5943 | % or the negative glue will cause weirdly wrong output, typically | ||
5944 | % obscuring the section heading with something else. | ||
5880 | \vskip-\parskip | 5945 | \vskip-\parskip |
5881 | % | 5946 | % |
5882 | % This is purely so the last item on the list is a known \penalty > | 5947 | % This is so the last item on the main vertical list is a known |
5883 | % 10000. This is so \startdefun can avoid allowing breakpoints after | 5948 | % \penalty > 10000, so \startdefun, etc., can recognize the situation |
5884 | % section headings. Otherwise, it would insert a valid breakpoint between: | 5949 | % and do the needful. |
5885 | % @section sec-whatever | ||
5886 | % @deffn def-whatever | ||
5887 | \penalty 10001 | 5950 | \penalty 10001 |
5888 | } | 5951 | } |
5889 | 5952 | ||
@@ -6303,7 +6366,7 @@ end | |||
6303 | % If this cartouche directly follows a sectioning command, we need the | 6366 | % If this cartouche directly follows a sectioning command, we need the |
6304 | % \parskip glue (backspaced over by default) or the cartouche can | 6367 | % \parskip glue (backspaced over by default) or the cartouche can |
6305 | % collide with the section heading. | 6368 | % collide with the section heading. |
6306 | \ifnum\lastpenalty>10000 \vskip\parskip \fi | 6369 | \ifnum\lastpenalty>10000 \vskip\parskip \penalty\lastpenalty \fi |
6307 | % | 6370 | % |
6308 | \vbox\bgroup | 6371 | \vbox\bgroup |
6309 | \baselineskip=0pt\parskip=0pt\lineskip=0pt | 6372 | \baselineskip=0pt\parskip=0pt\lineskip=0pt |
@@ -7793,7 +7856,7 @@ end | |||
7793 | \fi\fi | 7856 | \fi\fi |
7794 | } | 7857 | } |
7795 | 7858 | ||
7796 | 7859 | % | |
7797 | % @xref, @pxref, and @ref generate cross-references. For \xrefX, #1 is | 7860 | % @xref, @pxref, and @ref generate cross-references. For \xrefX, #1 is |
7798 | % the node name, #2 the name of the Info cross-reference, #3 the printed | 7861 | % the node name, #2 the name of the Info cross-reference, #3 the printed |
7799 | % node name, #4 the name of the Info file, #5 the name of the printed | 7862 | % node name, #4 the name of the Info file, #5 the name of the printed |
@@ -7802,26 +7865,41 @@ end | |||
7802 | \def\pxref#1{\putwordsee{} \xrefX[#1,,,,,,,]} | 7865 | \def\pxref#1{\putwordsee{} \xrefX[#1,,,,,,,]} |
7803 | \def\xref#1{\putwordSee{} \xrefX[#1,,,,,,,]} | 7866 | \def\xref#1{\putwordSee{} \xrefX[#1,,,,,,,]} |
7804 | \def\ref#1{\xrefX[#1,,,,,,,]} | 7867 | \def\ref#1{\xrefX[#1,,,,,,,]} |
7868 | % | ||
7869 | \newbox\toprefbox | ||
7870 | \newbox\printedrefnamebox | ||
7871 | \newbox\infofilenamebox | ||
7872 | \newbox\printedmanualbox | ||
7873 | % | ||
7805 | \def\xrefX[#1,#2,#3,#4,#5,#6]{\begingroup | 7874 | \def\xrefX[#1,#2,#3,#4,#5,#6]{\begingroup |
7806 | \unsepspaces | 7875 | \unsepspaces |
7807 | \def\printedmanual{\ignorespaces #5}% | 7876 | % |
7877 | % Get args without leading/trailing spaces. | ||
7808 | \def\printedrefname{\ignorespaces #3}% | 7878 | \def\printedrefname{\ignorespaces #3}% |
7809 | \setbox1=\hbox{\printedmanual\unskip}% | 7879 | \setbox\printedrefnamebox = \hbox{\printedrefname\unskip}% |
7810 | \setbox0=\hbox{\printedrefname\unskip}% | 7880 | % |
7811 | \ifdim \wd0 = 0pt | 7881 | \def\infofilename{\ignorespaces #4}% |
7882 | \setbox\infofilenamebox = \hbox{\infofilename\unskip}% | ||
7883 | % | ||
7884 | \def\printedmanual{\ignorespaces #5}% | ||
7885 | \setbox\printedmanualbox = \hbox{\printedmanual\unskip}% | ||
7886 | % | ||
7887 | % If the printed reference name (arg #3) was not explicitly given in | ||
7888 | % the @xref, figure out what we want to use. | ||
7889 | \ifdim \wd\printedrefnamebox = 0pt | ||
7812 | % No printed node name was explicitly given. | 7890 | % No printed node name was explicitly given. |
7813 | \expandafter\ifx\csname SETxref-automatic-section-title\endcsname \relax | 7891 | \expandafter\ifx\csname SETxref-automatic-section-title\endcsname \relax |
7814 | % Use the node name inside the square brackets. | 7892 | % Not auto section-title: use node name inside the square brackets. |
7815 | \def\printedrefname{\ignorespaces #1}% | 7893 | \def\printedrefname{\ignorespaces #1}% |
7816 | \else | 7894 | \else |
7817 | % Use the actual chapter/section title appear inside | 7895 | % Auto section-title: use chapter/section title inside |
7818 | % the square brackets. Use the real section title if we have it. | 7896 | % the square brackets if we have it. |
7819 | \ifdim \wd1 > 0pt | 7897 | \ifdim \wd\printedmanualbox > 0pt |
7820 | % It is in another manual, so we don't have it. | 7898 | % It is in another manual, so we don't have it; use node name. |
7821 | \def\printedrefname{\ignorespaces #1}% | 7899 | \def\printedrefname{\ignorespaces #1}% |
7822 | \else | 7900 | \else |
7823 | \ifhavexrefs | 7901 | \ifhavexrefs |
7824 | % We know the real title if we have the xref values. | 7902 | % We (should) know the real title if we have the xref values. |
7825 | \def\printedrefname{\refx{#1-title}{}}% | 7903 | \def\printedrefname{\refx{#1-title}{}}% |
7826 | \else | 7904 | \else |
7827 | % Otherwise just copy the Info node name. | 7905 | % Otherwise just copy the Info node name. |
@@ -7835,12 +7913,20 @@ end | |||
7835 | \ifpdf | 7913 | \ifpdf |
7836 | {\indexnofonts | 7914 | {\indexnofonts |
7837 | \turnoffactive | 7915 | \turnoffactive |
7916 | \makevalueexpandable | ||
7838 | % This expands tokens, so do it after making catcode changes, so _ | 7917 | % This expands tokens, so do it after making catcode changes, so _ |
7839 | % etc. don't get their TeX definitions. | 7918 | % etc. don't get their TeX definitions. This ignores all spaces in |
7919 | % #4, including (wrongly) those in the middle of the filename. | ||
7840 | \getfilename{#4}% | 7920 | \getfilename{#4}% |
7841 | % | 7921 | % |
7922 | % This (wrongly) does not take account of leading or trailing | ||
7923 | % spaces in #1, which should be ignored. | ||
7842 | \edef\pdfxrefdest{#1}% | 7924 | \edef\pdfxrefdest{#1}% |
7843 | \txiescapepdf\pdfxrefdest | 7925 | \ifx\pdfxrefdest\empty |
7926 | \def\pdfxrefdest{Top}% no empty targets | ||
7927 | \else | ||
7928 | \txiescapepdf\pdfxrefdest % escape PDF special chars | ||
7929 | \fi | ||
7844 | % | 7930 | % |
7845 | \leavevmode | 7931 | \leavevmode |
7846 | \startlink attr{/Border [0 0 0]}% | 7932 | \startlink attr{/Border [0 0 0]}% |
@@ -7867,29 +7953,42 @@ end | |||
7867 | \iffloat\Xthisreftitle | 7953 | \iffloat\Xthisreftitle |
7868 | % If the user specified the print name (third arg) to the ref, | 7954 | % If the user specified the print name (third arg) to the ref, |
7869 | % print it instead of our usual "Figure 1.2". | 7955 | % print it instead of our usual "Figure 1.2". |
7870 | \ifdim\wd0 = 0pt | 7956 | \ifdim\wd\printedrefnamebox = 0pt |
7871 | \refx{#1-snt}{}% | 7957 | \refx{#1-snt}{}% |
7872 | \else | 7958 | \else |
7873 | \printedrefname | 7959 | \printedrefname |
7874 | \fi | 7960 | \fi |
7875 | % | 7961 | % |
7876 | % if the user also gave the printed manual name (fifth arg), append | 7962 | % If the user also gave the printed manual name (fifth arg), append |
7877 | % "in MANUALNAME". | 7963 | % "in MANUALNAME". |
7878 | \ifdim \wd1 > 0pt | 7964 | \ifdim \wd\printedmanualbox > 0pt |
7879 | \space \putwordin{} \cite{\printedmanual}% | 7965 | \space \putwordin{} \cite{\printedmanual}% |
7880 | \fi | 7966 | \fi |
7881 | \else | 7967 | \else |
7882 | % node/anchor (non-float) references. | 7968 | % node/anchor (non-float) references. |
7969 | % | ||
7970 | % If we use \unhbox to print the node names, TeX does not insert | ||
7971 | % empty discretionaries after hyphens, which means that it will not | ||
7972 | % find a line break at a hyphen in a node names. Since some manuals | ||
7973 | % are best written with fairly long node names, containing hyphens, | ||
7974 | % this is a loss. Therefore, we give the text of the node name | ||
7975 | % again, so it is as if TeX is seeing it for the first time. | ||
7976 | % | ||
7977 | \ifdim \wd\printedmanualbox > 0pt | ||
7978 | % Cross-manual reference with a printed manual name. | ||
7979 | % | ||
7980 | \crossmanualxref{\cite{\printedmanual\unskip}}% | ||
7981 | % | ||
7982 | \else\ifdim \wd\infofilenamebox > 0pt | ||
7983 | % Cross-manual reference with only an info filename (arg 4), no | ||
7984 | % printed manual name (arg 5). This is essentially the same as | ||
7985 | % the case above; we output the filename, since we have nothing else. | ||
7986 | % | ||
7987 | \crossmanualxref{\code{\infofilename\unskip}}% | ||
7883 | % | 7988 | % |
7884 | % If we use \unhbox0 and \unhbox1 to print the node names, TeX does not | ||
7885 | % insert empty discretionaries after hyphens, which means that it will | ||
7886 | % not find a line break at a hyphen in a node names. Since some manuals | ||
7887 | % are best written with fairly long node names, containing hyphens, this | ||
7888 | % is a loss. Therefore, we give the text of the node name again, so it | ||
7889 | % is as if TeX is seeing it for the first time. | ||
7890 | \ifdim \wd1 > 0pt | ||
7891 | \putwordSection{} ``\printedrefname'' \putwordin{} \cite{\printedmanual}% | ||
7892 | \else | 7989 | \else |
7990 | % Reference within this manual. | ||
7991 | % | ||
7893 | % _ (for example) has to be the character _ for the purposes of the | 7992 | % _ (for example) has to be the character _ for the purposes of the |
7894 | % control sequence corresponding to the node, but it has to expand | 7993 | % control sequence corresponding to the node, but it has to expand |
7895 | % into the usual \leavevmode...\vrule stuff for purposes of | 7994 | % into the usual \leavevmode...\vrule stuff for purposes of |
@@ -7901,7 +8000,7 @@ end | |||
7901 | \setbox2 = \hbox{\ignorespaces \refx{#1-snt}{}}% | 8000 | \setbox2 = \hbox{\ignorespaces \refx{#1-snt}{}}% |
7902 | \ifdim \wd2 > 0pt \refx{#1-snt}\space\fi | 8001 | \ifdim \wd2 > 0pt \refx{#1-snt}\space\fi |
7903 | }% | 8002 | }% |
7904 | % output the `[mynode]' via a macro so it can be overridden. | 8003 | % output the `[mynode]' via the macro below so it can be overridden. |
7905 | \xrefprintnodename\printedrefname | 8004 | \xrefprintnodename\printedrefname |
7906 | % | 8005 | % |
7907 | % But we always want a comma and a space: | 8006 | % But we always want a comma and a space: |
@@ -7909,11 +8008,37 @@ end | |||
7909 | % | 8008 | % |
7910 | % output the `page 3'. | 8009 | % output the `page 3'. |
7911 | \turnoffactive \putwordpage\tie\refx{#1-pg}{}% | 8010 | \turnoffactive \putwordpage\tie\refx{#1-pg}{}% |
7912 | \fi | 8011 | \fi\fi |
7913 | \fi | 8012 | \fi |
7914 | \endlink | 8013 | \endlink |
7915 | \endgroup} | 8014 | \endgroup} |
7916 | 8015 | ||
8016 | % Output a cross-manual xref to #1. Used just above (twice). | ||
8017 | % | ||
8018 | % Only include the text "Section ``foo'' in" if the foo is neither | ||
8019 | % missing or Top. Thus, @xref{,,,foo,The Foo Manual} outputs simply | ||
8020 | % "see The Foo Manual", the idea being to refer to the whole manual. | ||
8021 | % | ||
8022 | % But, this being TeX, we can't easily compare our node name against the | ||
8023 | % string "Top" while ignoring the possible spaces before and after in | ||
8024 | % the input. By adding the arbitrary 7sp below, we make it much less | ||
8025 | % likely that a real node name would have the same width as "Top" (e.g., | ||
8026 | % in a monospaced font). Hopefully it will never happen in practice. | ||
8027 | % | ||
8028 | % For the same basic reason, we retypeset the "Top" at every | ||
8029 | % reference, since the current font is indeterminate. | ||
8030 | % | ||
8031 | \def\crossmanualxref#1{% | ||
8032 | \setbox\toprefbox = \hbox{Top\kern7sp}% | ||
8033 | \setbox2 = \hbox{\ignorespaces \printedrefname \unskip \kern7sp}% | ||
8034 | \ifdim \wd2 > 7sp % nonempty? | ||
8035 | \ifdim \wd2 = \wd\toprefbox \else % same as Top? | ||
8036 | \putwordSection{} ``\printedrefname'' \putwordin{}\space | ||
8037 | \fi | ||
8038 | \fi | ||
8039 | #1% | ||
8040 | } | ||
8041 | |||
7917 | % This macro is called from \xrefX for the `[nodename]' part of xref | 8042 | % This macro is called from \xrefX for the `[nodename]' part of xref |
7918 | % output. It's a separate macro only so it can be changed more easily, | 8043 | % output. It's a separate macro only so it can be changed more easily, |
7919 | % since square brackets don't work well in some documents. Particularly | 8044 | % since square brackets don't work well in some documents. Particularly |
@@ -8281,7 +8406,7 @@ end | |||
8281 | it from ftp://tug.org/tex/epsf.tex.} | 8406 | it from ftp://tug.org/tex/epsf.tex.} |
8282 | % | 8407 | % |
8283 | \def\image#1{% | 8408 | \def\image#1{% |
8284 | \ifx\epsfbox\thisiundefined | 8409 | \ifx\epsfbox\thisisundefined |
8285 | \ifwarnednoepsf \else | 8410 | \ifwarnednoepsf \else |
8286 | \errhelp = \noepsfhelp | 8411 | \errhelp = \noepsfhelp |
8287 | \errmessage{epsf.tex not found, images will be ignored}% | 8412 | \errmessage{epsf.tex not found, images will be ignored}% |
@@ -8305,6 +8430,13 @@ end | |||
8305 | % If the image is by itself, center it. | 8430 | % If the image is by itself, center it. |
8306 | \ifvmode | 8431 | \ifvmode |
8307 | \imagevmodetrue | 8432 | \imagevmodetrue |
8433 | \else \ifx\centersub\centerV | ||
8434 | % for @center @image, we need a vbox so we can have our vertical space | ||
8435 | \imagevmodetrue | ||
8436 | \vbox\bgroup % vbox has better behavior than vtop herev | ||
8437 | \fi\fi | ||
8438 | % | ||
8439 | \ifimagevmode | ||
8308 | \nobreak\medskip | 8440 | \nobreak\medskip |
8309 | % Usually we'll have text after the image which will insert | 8441 | % Usually we'll have text after the image which will insert |
8310 | % \parskip glue, so insert it here too to equalize the space | 8442 | % \parskip glue, so insert it here too to equalize the space |
@@ -8314,9 +8446,13 @@ end | |||
8314 | \fi | 8446 | \fi |
8315 | % | 8447 | % |
8316 | % Leave vertical mode so that indentation from an enclosing | 8448 | % Leave vertical mode so that indentation from an enclosing |
8317 | % environment such as @quotation is respected. On the other hand, if | 8449 | % environment such as @quotation is respected. |
8318 | % it's at the top level, we don't want the normal paragraph indentation. | 8450 | % However, if we're at the top level, we don't want the |
8319 | \noindent | 8451 | % normal paragraph indentation. |
8452 | % On the other hand, if we are in the case of @center @image, we don't | ||
8453 | % want to start a paragraph, which will create a hsize-width box and | ||
8454 | % eradicate the centering. | ||
8455 | \ifx\centersub\centerV\else \noindent \fi | ||
8320 | % | 8456 | % |
8321 | % Output the image. | 8457 | % Output the image. |
8322 | \ifpdf | 8458 | \ifpdf |
@@ -8328,7 +8464,10 @@ end | |||
8328 | \epsfbox{#1.eps}% | 8464 | \epsfbox{#1.eps}% |
8329 | \fi | 8465 | \fi |
8330 | % | 8466 | % |
8331 | \ifimagevmode \medskip \fi % space after the standalone image | 8467 | \ifimagevmode |
8468 | \medskip % space after a standalone image | ||
8469 | \fi | ||
8470 | \ifx\centersub\centerV \egroup \fi | ||
8332 | \endgroup} | 8471 | \endgroup} |
8333 | 8472 | ||
8334 | 8473 | ||
diff --git a/src/include/microhttpd.h b/src/include/microhttpd.h index 4323837e..ff7e2785 100644 --- a/src/include/microhttpd.h +++ b/src/include/microhttpd.h | |||
@@ -106,7 +106,7 @@ extern "C" | |||
106 | /** | 106 | /** |
107 | * Current version of the library. | 107 | * Current version of the library. |
108 | */ | 108 | */ |
109 | #define MHD_VERSION 0x00091803 | 109 | #define MHD_VERSION 0x00091900 |
110 | 110 | ||
111 | /** | 111 | /** |
112 | * MHD-internal return code for "YES". | 112 | * MHD-internal return code for "YES". |