aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2013-02-06 00:52:27 +0000
committerChristian Grothoff <christian@grothoff.org>2013-02-06 00:52:27 +0000
commit5d9bc9ead9d0b5c4ef99e9c1df8a67a522a92f94 (patch)
tree5018602217116c8e7b4d18a0d5d48d9146bf2ce9
parentfe480ef1ad1befbb1582d48dacd69e9f635ffc10 (diff)
downloadlibmicrohttpd-5d9bc9ead9d0b5c4ef99e9c1df8a67a522a92f94.tar.gz
libmicrohttpd-5d9bc9ead9d0b5c4ef99e9c1df8a67a522a92f94.zip
-releasing 0.9.25
-rw-r--r--ChangeLog3
-rw-r--r--INSTALL8
-rw-r--r--config.sub11
-rw-r--r--configure.ac6
-rw-r--r--doc/texinfo.tex441
-rw-r--r--src/include/microhttpd.h2
6 files changed, 311 insertions, 160 deletions
diff --git a/ChangeLog b/ChangeLog
index 88e02cd4..b6789256 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,6 @@
1Wed Feb 6 01:51:52 CET 2013
2 Releasing libmicrohttpd 0.9.25. -CG
3
1Fri Feb 1 10:19:44 CET 2013 4Fri 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
diff --git a/INSTALL b/INSTALL
index a1e89e18..6e90e07d 100644
--- a/INSTALL
+++ b/INSTALL
@@ -1,7 +1,7 @@
1Installation Instructions 1Installation Instructions
2************************* 2*************************
3 3
4Copyright (C) 1994-1996, 1999-2002, 2004-2011 Free Software Foundation, 4Copyright (C) 1994-1996, 1999-2002, 2004-2012 Free Software Foundation,
5Inc. 5Inc.
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
309overridden in the site shell script). 309overridden in the site shell script).
310 310
311Unfortunately, this technique does not work for `CONFIG_SHELL' due to 311Unfortunately, this technique does not work for `CONFIG_SHELL' due to
312an Autoconf bug. Until the bug is fixed you can use this workaround: 312an Autoconf limitation. Until the limitation is lifted, you can use
313this 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
diff --git a/config.sub b/config.sub
index c894da45..6205f842 100644
--- a/config.sub
+++ b/config.sub
@@ -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
7timestamp='2012-02-10' 7timestamp='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#
23AC_PREREQ(2.57) 23AC_PREREQ(2.57)
24AC_INIT([libmicrohttpd], [0.9.24],[libmicrohttpd@gnu.org]) 24AC_INIT([libmicrohttpd], [0.9.25],[libmicrohttpd@gnu.org])
25AM_INIT_AUTOMAKE([silent-rules]) 25AM_INIT_AUTOMAKE([silent-rules])
26AM_CONFIG_HEADER([MHD_config.h]) 26AM_CONFIG_HEADER([MHD_config.h])
27AC_CONFIG_MACRO_DIR([m4]) 27AC_CONFIG_MACRO_DIR([m4])
28AH_TOP([#define _GNU_SOURCE 1]) 28AH_TOP([#define _GNU_SOURCE 1])
29 29
30LIB_VERSION_CURRENT=26 30LIB_VERSION_CURRENT=26
31LIB_VERSION_REVISION=2 31LIB_VERSION_REVISION=3
32LIB_VERSION_AGE=16 32LIB_VERSION_AGE=16
33AC_SUBST(LIB_VERSION_CURRENT) 33AC_SUBST(LIB_VERSION_CURRENT)
34AC_SUBST(LIB_VERSION_REVISION) 34AC_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".