aboutsummaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2013-04-26 09:00:01 +0000
committerChristian Grothoff <christian@grothoff.org>2013-04-26 09:00:01 +0000
commit888e39055f2067a6a45c21926dc32bf6b9cd3e50 (patch)
treebcc595b4b9574c3dfeab8a30f62fe12adc7b091c /doc
parent671706e9e5aa90b95f483c36fd9b6cc7ab5d0646 (diff)
downloadlibmicrohttpd-888e39055f2067a6a45c21926dc32bf6b9cd3e50.tar.gz
libmicrohttpd-888e39055f2067a6a45c21926dc32bf6b9cd3e50.zip
adding support for quiesce
Diffstat (limited to 'doc')
-rw-r--r--doc/libmicrohttpd.texi19
-rw-r--r--doc/texinfo.tex293
2 files changed, 128 insertions, 184 deletions
diff --git a/doc/libmicrohttpd.texi b/doc/libmicrohttpd.texi
index d82ebeb3..f3950e39 100644
--- a/doc/libmicrohttpd.texi
+++ b/doc/libmicrohttpd.texi
@@ -1086,6 +1086,25 @@ Return @code{NULL} on error, handle to daemon on success.
1086@end deftypefun 1086@end deftypefun
1087 1087
1088 1088
1089@deftypefun int MHD_quiesce_daemon (struct MHD_Daemon *daemon)
1090Stop accepting connections from the listening socket. Allows clients
1091to continue processing, but stops accepting new connections. Note
1092that the caller is responsible for closing the returned socket;
1093however, if MHD is run using threads (anything but external select
1094mode), it must not be closed until AFTER @code{MHD_stop_daemon} has
1095been called (as it is theoretically possible that an existing thread
1096is still using it).
1097
1098This function is useful in the special case that a listen socket
1099is to be migrated to another process (i.e. a newer version of the
1100HTTP server) while existing connections should continue to be
1101processed until they are finished.
1102
1103Return @code{-1} on error (daemon not listening), the handle to the
1104listen socket otherwise.
1105@end deftypefun
1106
1107
1089@deftypefun void MHD_stop_daemon (struct MHD_Daemon *daemon) 1108@deftypefun void MHD_stop_daemon (struct MHD_Daemon *daemon)
1090Shutdown an HTTP daemon. 1109Shutdown an HTTP daemon.
1091@end deftypefun 1110@end deftypefun
diff --git a/doc/texinfo.tex b/doc/texinfo.tex
index 9a2439c8..85b68e79 100644
--- a/doc/texinfo.tex
+++ b/doc/texinfo.tex
@@ -3,7 +3,7 @@
3% Load plain if necessary, i.e., if running under initex. 3% Load plain if necessary, i.e., if running under initex.
4\expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi 4\expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
5% 5%
6\def\texinfoversion{2012-09-05.06} 6\def\texinfoversion{2012-03-11.15}
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,
@@ -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://ftp.gnu.org/gnu/texinfo/ (the Texinfo release area), or 31% http://www.gnu.org/software/texinfo/ (the Texinfo home page), or
32% http://ftpmirror.gnu.org/texinfo/ (same, via a mirror), or 32% ftp://tug.org/tex/texinfo.tex
33% http://www.gnu.org/software/texinfo/ (the Texinfo home page) 33% (and all CTAN mirrors, see http://www.ctan.org).
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\*{\unskip\hfil\break\hbox{}\ignorespaces} 597\def\*{\hfil\break\hbox{}\ignorespaces}
598 598
599% @/ allows a line break. 599% @/ allows a line break.
600\let\/=\allowbreak 600\let\/=\allowbreak
@@ -1117,7 +1117,7 @@ where each line of input produces a line of output.}
1117% #1 is a control sequence in which to do the replacements, 1117% #1 is a control sequence in which to do the replacements,
1118% which we \xdef. 1118% which we \xdef.
1119\def\txiescapepdf#1{% 1119\def\txiescapepdf#1{%
1120 \ifx\pdfescapestring\thisisundefined 1120 \ifx\pdfescapestring\relax
1121 % No primitive available; should we give a warning or log? 1121 % No primitive available; should we give a warning or log?
1122 % Many times it won't matter. 1122 % Many times it won't matter.
1123 \else 1123 \else
@@ -1367,8 +1367,9 @@ output) for that.)}
1367 \def\skipspaces#1{\def\PP{#1}\def\D{|}% 1367 \def\skipspaces#1{\def\PP{#1}\def\D{|}%
1368 \ifx\PP\D\let\nextsp\relax 1368 \ifx\PP\D\let\nextsp\relax
1369 \else\let\nextsp\skipspaces 1369 \else\let\nextsp\skipspaces
1370 \addtokens{\filename}{\PP}% 1370 \ifx\p\space\else\addtokens{\filename}{\PP}%
1371 \advance\filenamelength by 1 1371 \advance\filenamelength by 1
1372 \fi
1372 \fi 1373 \fi
1373 \nextsp} 1374 \nextsp}
1374 \def\getfilename#1{% 1375 \def\getfilename#1{%
@@ -1474,6 +1475,9 @@ output) for that.)}
1474\def\ttsl{\setfontstyle{ttsl}} 1475\def\ttsl{\setfontstyle{ttsl}}
1475 1476
1476 1477
1478% Default leading.
1479\newdimen\textleading \textleading = 13.2pt
1480
1477% Set the baselineskip to #1, and the lineskip and strut size 1481% Set the baselineskip to #1, and the lineskip and strut size
1478% correspondingly. There is no deep meaning behind these magic numbers 1482% correspondingly. There is no deep meaning behind these magic numbers
1479% used as factors; they just match (closely enough) what Knuth defined. 1483% used as factors; they just match (closely enough) what Knuth defined.
@@ -1485,7 +1489,6 @@ output) for that.)}
1485% can get a sort of poor man's double spacing by redefining this. 1489% can get a sort of poor man's double spacing by redefining this.
1486\def\baselinefactor{1} 1490\def\baselinefactor{1}
1487% 1491%
1488\newdimen\textleading
1489\def\setleading#1{% 1492\def\setleading#1{%
1490 \dimen0 = #1\relax 1493 \dimen0 = #1\relax
1491 \normalbaselineskip = \baselinefactor\dimen0 1494 \normalbaselineskip = \baselinefactor\dimen0
@@ -1758,24 +1761,18 @@ end
1758\fi\fi 1761\fi\fi
1759 1762
1760 1763
1761% Set the font macro #1 to the font named \fontprefix#2. 1764% Set the font macro #1 to the font named #2, adding on the
1765% specified font prefix (normally `cm').
1762% #3 is the font's design size, #4 is a scale factor, #5 is the CMap 1766% #3 is the font's design size, #4 is a scale factor, #5 is the CMap
1763% encoding (only OT1, OT1IT and OT1TT are allowed, or empty to omit). 1767% encoding (currently only OT1, OT1IT and OT1TT are allowed, pass
1764% Example: 1768% empty to omit).
1765% #1 = \textrm
1766% #2 = \rmshape
1767% #3 = 10
1768% #4 = \mainmagstep
1769% #5 = OT1
1770%
1771\def\setfont#1#2#3#4#5{% 1769\def\setfont#1#2#3#4#5{%
1772 \font#1=\fontprefix#2#3 scaled #4 1770 \font#1=\fontprefix#2#3 scaled #4
1773 \csname cmap#5\endcsname#1% 1771 \csname cmap#5\endcsname#1%
1774} 1772}
1775% This is what gets called when #5 of \setfont is empty. 1773% This is what gets called when #5 of \setfont is empty.
1776\let\cmap\gobble 1774\let\cmap\gobble
1777% 1775% emacs-page end of cmaps
1778% (end of cmaps)
1779 1776
1780% Use cm as the default font prefix. 1777% Use cm as the default font prefix.
1781% To specify the font prefix, you must define \fontprefix 1778% To specify the font prefix, you must define \fontprefix
@@ -1785,7 +1782,7 @@ end
1785\fi 1782\fi
1786% Support font families that don't use the same naming scheme as CM. 1783% Support font families that don't use the same naming scheme as CM.
1787\def\rmshape{r} 1784\def\rmshape{r}
1788\def\rmbshape{bx} % where the normal face is bold 1785\def\rmbshape{bx} %where the normal face is bold
1789\def\bfshape{b} 1786\def\bfshape{b}
1790\def\bxshape{bx} 1787\def\bxshape{bx}
1791\def\ttshape{tt} 1788\def\ttshape{tt}
@@ -1800,7 +1797,8 @@ end
1800\def\scshape{csc} 1797\def\scshape{csc}
1801\def\scbshape{csc} 1798\def\scbshape{csc}
1802 1799
1803% Definitions for a main text size of 11pt. (The default in Texinfo.) 1800% Definitions for a main text size of 11pt. This is the default in
1801% Texinfo.
1804% 1802%
1805\def\definetextfontsizexi{% 1803\def\definetextfontsizexi{%
1806% Text fonts (11.2pt, magstep1). 1804% Text fonts (11.2pt, magstep1).
@@ -1925,7 +1923,7 @@ end
1925\textleading = 13.2pt % line spacing for 11pt CM 1923\textleading = 13.2pt % line spacing for 11pt CM
1926\textfonts % reset the current fonts 1924\textfonts % reset the current fonts
1927\rm 1925\rm
1928} % end of 11pt text font size definitions, \definetextfontsizexi 1926} % end of 11pt text font size definitions
1929 1927
1930 1928
1931% Definitions to make the main text be 10pt Computer Modern, with 1929% Definitions to make the main text be 10pt Computer Modern, with
@@ -2057,7 +2055,7 @@ end
2057\textleading = 12pt % line spacing for 10pt CM 2055\textleading = 12pt % line spacing for 10pt CM
2058\textfonts % reset the current fonts 2056\textfonts % reset the current fonts
2059\rm 2057\rm
2060} % end of 10pt text font size definitions, \definetextfontsizex 2058} % end of 10pt text font size definitions
2061 2059
2062 2060
2063% We provide the user-level command 2061% We provide the user-level command
@@ -2448,12 +2446,34 @@ end
2448% @samp. 2446% @samp.
2449\def\samp#1{{\setupmarkupstyle{samp}\lq\tclose{#1}\rq\null}} 2447\def\samp#1{{\setupmarkupstyle{samp}\lq\tclose{#1}\rq\null}}
2450 2448
2451% @indicateurl is \samp, that is, with quotes. 2449% definition of @key that produces a lozenge. Doesn't adjust to text size.
2452\let\indicateurl=\samp 2450%\setfont\keyrm\rmshape{8}{1000}{OT1}
2451%\font\keysy=cmsy9
2452%\def\key#1{{\keyrm\textfont2=\keysy \leavevmode\hbox{%
2453% \raise0.4pt\hbox{\angleleft}\kern-.08em\vtop{%
2454% \vbox{\hrule\kern-0.4pt
2455% \hbox{\raise0.4pt\hbox{\vphantom{\angleleft}}#1}}%
2456% \kern-0.4pt\hrule}%
2457% \kern-.06em\raise0.4pt\hbox{\angleright}}}}
2458
2459% definition of @key with no lozenge. If the current font is already
2460% monospace, don't change it; that way, we respect @kbdinputstyle. But
2461% if it isn't monospace, then use \tt.
2462%
2463\def\key#1{{\setupmarkupstyle{key}%
2464 \nohyphenation
2465 \ifmonospace\else\tt\fi
2466 #1}\null}
2467
2468% ctrl is no longer a Texinfo command.
2469\def\ctrl #1{{\tt \rawbackslash \hat}#1}
2470
2471% @file, @option are the same as @samp.
2472\let\file=\samp
2473\let\option=\samp
2453 2474
2454% @code (and similar) prints in typewriter, but with spaces the same 2475% @code is a modification of @t,
2455% size as normal in the surrounding text, without hyphenation, etc. 2476% which makes spaces the same size as normal in the surrounding text.
2456% This is a subroutine for that.
2457\def\tclose#1{% 2477\def\tclose#1{%
2458 {% 2478 {%
2459 % Change normal interword space to be same as for the current font. 2479 % Change normal interword space to be same as for the current font.
@@ -2478,7 +2498,7 @@ end
2478% We *must* turn on hyphenation at `-' and `_' in @code. 2498% We *must* turn on hyphenation at `-' and `_' in @code.
2479% Otherwise, it is too hard to avoid overfull hboxes 2499% Otherwise, it is too hard to avoid overfull hboxes
2480% in the Emacs manual, the Library manual, etc. 2500% in the Emacs manual, the Library manual, etc.
2481% 2501
2482% Unfortunately, TeX uses one parameter (\hyphenchar) to control 2502% Unfortunately, TeX uses one parameter (\hyphenchar) to control
2483% both hyphenation at - and hyphenation within words. 2503% both hyphenation at - and hyphenation within words.
2484% We must therefore turn them both off (\tclose does that) 2504% We must therefore turn them both off (\tclose does that)
@@ -2542,13 +2562,6 @@ end
2542 \fi\fi 2562 \fi\fi
2543} 2563}
2544 2564
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
2552% @uref (abbreviation for `urlref') takes an optional (comma-separated) 2565% @uref (abbreviation for `urlref') takes an optional (comma-separated)
2553% second argument specifying the text to display and an optional third 2566% second argument specifying the text to display and an optional third
2554% arg as text to display instead of (rather than in addition to) the url 2567% arg as text to display instead of (rather than in addition to) the url
@@ -2728,24 +2741,10 @@ end
2728\else{\tclose{\kbdfont\setupmarkupstyle{kbd}\look}}\fi 2741\else{\tclose{\kbdfont\setupmarkupstyle{kbd}\look}}\fi
2729\else{\tclose{\kbdfont\setupmarkupstyle{kbd}\look}}\fi} 2742\else{\tclose{\kbdfont\setupmarkupstyle{kbd}\look}}\fi}
2730 2743
2731% definition of @key that produces a lozenge. Doesn't adjust to text size. 2744% For @indicateurl, @env, @command quotes seem unnecessary, so use \code.
2732%\setfont\keyrm\rmshape{8}{1000}{OT1} 2745\let\indicateurl=\code
2733%\font\keysy=cmsy9 2746\let\env=\code
2734%\def\key#1{{\keyrm\textfont2=\keysy \leavevmode\hbox{% 2747\let\command=\code
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}
2749 2748
2750% @clicksequence{File @click{} Open ...} 2749% @clicksequence{File @click{} Open ...}
2751\def\clicksequence#1{\begingroup #1\endgroup} 2750\def\clicksequence#1{\begingroup #1\endgroup}
@@ -2853,9 +2852,6 @@ end
2853 } 2852 }
2854} 2853}
2855 2854
2856% ctrl is no longer a Texinfo command, but leave this definition for fun.
2857\def\ctrl #1{{\tt \rawbackslash \hat}#1}
2858
2859% @inlinefmt{FMTNAME,PROCESSED-TEXT} and @inlineraw{FMTNAME,RAW-TEXT}. 2855% @inlinefmt{FMTNAME,PROCESSED-TEXT} and @inlineraw{FMTNAME,RAW-TEXT}.
2860% Ignore unless FMTNAME == tex; then it is like @iftex and @tex, 2856% Ignore unless FMTNAME == tex; then it is like @iftex and @tex,
2861% except specified as a normal braced arg, so no newlines to worry about. 2857% except specified as a normal braced arg, so no newlines to worry about.
@@ -3146,17 +3142,12 @@ end
3146 % hopefully nobody will notice/care. 3142 % hopefully nobody will notice/care.
3147 \edef\ecsize{\csname\curfontsize ecsize\endcsname}% 3143 \edef\ecsize{\csname\curfontsize ecsize\endcsname}%
3148 \edef\nominalsize{\csname\curfontsize nominalsize\endcsname}% 3144 \edef\nominalsize{\csname\curfontsize nominalsize\endcsname}%
3149 \ifmonospace 3145 \ifx\curfontstyle\bfstylename
3150 % typewriter: 3146 % bold:
3151 \font\thisecfont = ectt\ecsize \space at \nominalsize 3147 \font\thisecfont = ecb\ifusingit{i}{x}\ecsize \space at \nominalsize
3152 \else 3148 \else
3153 \ifx\curfontstyle\bfstylename 3149 % regular:
3154 % bold: 3150 \font\thisecfont = ec\ifusingit{ti}{rm}\ecsize \space at \nominalsize
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
3160 \fi 3151 \fi
3161 \thisecfont 3152 \thisecfont
3162} 3153}
@@ -3269,20 +3260,6 @@ end
3269 \finishedtitlepagetrue 3260 \finishedtitlepagetrue
3270} 3261}
3271 3262
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
3286% Macros to be used within @titlepage: 3263% Macros to be used within @titlepage:
3287 3264
3288\let\subtitlerm=\tenrm 3265\let\subtitlerm=\tenrm
@@ -3290,7 +3267,7 @@ end
3290 3267
3291\parseargdef\title{% 3268\parseargdef\title{%
3292 \checkenv\titlepage 3269 \checkenv\titlepage
3293 \vbox{\titlefonts \raggedtitlesettings #1\par}% 3270 \leftline{\titlefonts\rmisbold #1}
3294 % print a rule at the page bottom also. 3271 % print a rule at the page bottom also.
3295 \finishedtitlepagefalse 3272 \finishedtitlepagefalse
3296 \vskip4pt \hrule height 4pt width \hsize \vskip4pt 3273 \vskip4pt \hrule height 4pt width \hsize \vskip4pt
@@ -4227,7 +4204,7 @@ end
4227} 4204}
4228\def\ifsetfail{\doignore{ifset}} 4205\def\ifsetfail{\doignore{ifset}}
4229 4206
4230% @ifclear VAR ... @end executes the `...' iff VAR has never been 4207% @ifclear VAR ... @end ifclear reads the `...' iff VAR has never been
4231% defined with @set, or has been undefined with @clear. 4208% defined with @set, or has been undefined with @clear.
4232% 4209%
4233% The `\else' inside the `\doifset' parameter is a trick to reuse the 4210% The `\else' inside the `\doifset' parameter is a trick to reuse the
@@ -4238,35 +4215,6 @@ end
4238\def\ifclear{\parsearg{\doifset{\else \let\next=\ifclearfail}}} 4215\def\ifclear{\parsearg{\doifset{\else \let\next=\ifclearfail}}}
4239\def\ifclearfail{\doignore{ifclear}} 4216\def\ifclearfail{\doignore{ifclear}}
4240 4217
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
4270% @dircategory CATEGORY -- specify a category of the dir file 4218% @dircategory CATEGORY -- specify a category of the dir file
4271% which this file should belong to. Ignore this in TeX. 4219% which this file should belong to. Ignore this in TeX.
4272\let\dircategory=\comment 4220\let\dircategory=\comment
@@ -4503,7 +4451,6 @@ end
4503 \definedummyword\guillemetright 4451 \definedummyword\guillemetright
4504 \definedummyword\guilsinglleft 4452 \definedummyword\guilsinglleft
4505 \definedummyword\guilsinglright 4453 \definedummyword\guilsinglright
4506 \definedummyword\lbracechar
4507 \definedummyword\leq 4454 \definedummyword\leq
4508 \definedummyword\minus 4455 \definedummyword\minus
4509 \definedummyword\ogonek 4456 \definedummyword\ogonek
@@ -4516,7 +4463,6 @@ end
4516 \definedummyword\quoteleft 4463 \definedummyword\quoteleft
4517 \definedummyword\quoteright 4464 \definedummyword\quoteright
4518 \definedummyword\quotesinglbase 4465 \definedummyword\quotesinglbase
4519 \definedummyword\rbracechar
4520 \definedummyword\result 4466 \definedummyword\result
4521 \definedummyword\textdegree 4467 \definedummyword\textdegree
4522 % 4468 %
@@ -4568,7 +4514,6 @@ end
4568 \definedummyword\t 4514 \definedummyword\t
4569 % 4515 %
4570 % Commands that take arguments. 4516 % Commands that take arguments.
4571 \definedummyword\abbr
4572 \definedummyword\acronym 4517 \definedummyword\acronym
4573 \definedummyword\anchor 4518 \definedummyword\anchor
4574 \definedummyword\cite 4519 \definedummyword\cite
@@ -4580,9 +4525,7 @@ end
4580 \definedummyword\emph 4525 \definedummyword\emph
4581 \definedummyword\env 4526 \definedummyword\env
4582 \definedummyword\file 4527 \definedummyword\file
4583 \definedummyword\image
4584 \definedummyword\indicateurl 4528 \definedummyword\indicateurl
4585 \definedummyword\inforef
4586 \definedummyword\kbd 4529 \definedummyword\kbd
4587 \definedummyword\key 4530 \definedummyword\key
4588 \definedummyword\math 4531 \definedummyword\math
@@ -4629,10 +4572,7 @@ end
4629 % content at all. So for index sorting, we map @{ and @} to strings 4572 % content at all. So for index sorting, we map @{ and @} to strings
4630 % starting with |, since that ASCII character is between ASCII { and }. 4573 % starting with |, since that ASCII character is between ASCII { and }.
4631 \def\{{|a}% 4574 \def\{{|a}%
4632 \def\lbracechar{|a}%
4633 %
4634 \def\}{|b}% 4575 \def\}{|b}%
4635 \def\rbracechar{|b}%
4636 % 4576 %
4637 % Non-English letters. 4577 % Non-English letters.
4638 \def\AA{AA}% 4578 \def\AA{AA}%
@@ -5593,6 +5533,14 @@ end
5593 5533
5594% Define @majorheading, @heading and @subheading 5534% Define @majorheading, @heading and @subheading
5595 5535
5536% NOTE on use of \vbox for chapter headings, section headings, and such:
5537% 1) We use \vbox rather than the earlier \line to permit
5538% overlong headings to fold.
5539% 2) \hyphenpenalty is set to 10000 because hyphenation in a
5540% heading is obnoxious; this forbids it.
5541% 3) Likewise, headings look best if no \parindent is used, and
5542% if justification is not attempted. Hence \raggedright.
5543
5596\def\majorheading{% 5544\def\majorheading{%
5597 {\advance\chapheadingskip by 10pt \chapbreak }% 5545 {\advance\chapheadingskip by 10pt \chapbreak }%
5598 \parsearg\chapheadingzzz 5546 \parsearg\chapheadingzzz
@@ -5600,8 +5548,10 @@ end
5600 5548
5601\def\chapheading{\chapbreak \parsearg\chapheadingzzz} 5549\def\chapheading{\chapbreak \parsearg\chapheadingzzz}
5602\def\chapheadingzzz#1{% 5550\def\chapheadingzzz#1{%
5603 \vbox{\chapfonts \raggedtitlesettings #1\par}% 5551 {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
5604 \nobreak\bigskip \nobreak 5552 \parindent=0pt\ptexraggedright
5553 \rmisbold #1\hfill}}%
5554 \bigskip \par\penalty 200\relax
5605 \suppressfirstparagraphindent 5555 \suppressfirstparagraphindent
5606} 5556}
5607 5557
@@ -5760,7 +5710,8 @@ end
5760 % 5710 %
5761 % Typeset the actual heading. 5711 % Typeset the actual heading.
5762 \nobreak % Avoid page breaks at the interline glue. 5712 \nobreak % Avoid page breaks at the interline glue.
5763 \vbox{\raggedtitlesettings \hangindent=\wd0 \centerparametersmaybe 5713 \vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \ptexraggedright
5714 \hangindent=\wd0 \centerparametersmaybe
5764 \unhbox0 #1\par}% 5715 \unhbox0 #1\par}%
5765 }% 5716 }%
5766 \nobreak\bigskip % no page break after a chapter title 5717 \nobreak\bigskip % no page break after a chapter title
@@ -5782,18 +5733,18 @@ end
5782\def\setchapterstyle #1 {\csname CHAPF#1\endcsname} 5733\def\setchapterstyle #1 {\csname CHAPF#1\endcsname}
5783% 5734%
5784\def\unnchfopen #1{% 5735\def\unnchfopen #1{%
5785 \chapoddpage 5736\chapoddpage {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
5786 \vbox{\chapfonts \raggedtitlesettings #1\par}% 5737 \parindent=0pt\ptexraggedright
5787 \nobreak\bigskip\nobreak 5738 \rmisbold #1\hfill}}\bigskip \par\nobreak
5788} 5739}
5789\def\chfopen #1#2{\chapoddpage {\chapfonts 5740\def\chfopen #1#2{\chapoddpage {\chapfonts
5790\vbox to 3in{\vfil \hbox to\hsize{\hfil #2} \hbox to\hsize{\hfil #1} \vfil}}% 5741\vbox to 3in{\vfil \hbox to\hsize{\hfil #2} \hbox to\hsize{\hfil #1} \vfil}}%
5791\par\penalty 5000 % 5742\par\penalty 5000 %
5792} 5743}
5793\def\centerchfopen #1{% 5744\def\centerchfopen #1{%
5794 \chapoddpage 5745\chapoddpage {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
5795 \vbox{\chapfonts \raggedtitlesettings \hfill #1\hfill}% 5746 \parindent=0pt
5796 \nobreak\bigskip \nobreak 5747 \hfill {\rmisbold #1}\hfill}}\bigskip \par\nobreak
5797} 5748}
5798\def\CHAPFopen{% 5749\def\CHAPFopen{%
5799 \global\let\chapmacro=\chfopen 5750 \global\let\chapmacro=\chfopen
@@ -7856,7 +7807,7 @@ end
7856 \fi\fi 7807 \fi\fi
7857} 7808}
7858 7809
7859% 7810
7860% @xref, @pxref, and @ref generate cross-references. For \xrefX, #1 is 7811% @xref, @pxref, and @ref generate cross-references. For \xrefX, #1 is
7861% the node name, #2 the name of the Info cross-reference, #3 the printed 7812% the node name, #2 the name of the Info cross-reference, #3 the printed
7862% node name, #4 the name of the Info file, #5 the name of the printed 7813% node name, #4 the name of the Info file, #5 the name of the printed
@@ -7866,21 +7817,16 @@ end
7866\def\xref#1{\putwordSee{} \xrefX[#1,,,,,,,]} 7817\def\xref#1{\putwordSee{} \xrefX[#1,,,,,,,]}
7867\def\ref#1{\xrefX[#1,,,,,,,]} 7818\def\ref#1{\xrefX[#1,,,,,,,]}
7868% 7819%
7869\newbox\toprefbox 7820\newbox\topbox
7870\newbox\printedrefnamebox 7821\newbox\printedrefnamebox
7871\newbox\infofilenamebox
7872\newbox\printedmanualbox 7822\newbox\printedmanualbox
7873% 7823%
7874\def\xrefX[#1,#2,#3,#4,#5,#6]{\begingroup 7824\def\xrefX[#1,#2,#3,#4,#5,#6]{\begingroup
7875 \unsepspaces 7825 \unsepspaces
7876 % 7826 %
7877 % Get args without leading/trailing spaces.
7878 \def\printedrefname{\ignorespaces #3}% 7827 \def\printedrefname{\ignorespaces #3}%
7879 \setbox\printedrefnamebox = \hbox{\printedrefname\unskip}% 7828 \setbox\printedrefnamebox = \hbox{\printedrefname\unskip}%
7880 % 7829 %
7881 \def\infofilename{\ignorespaces #4}%
7882 \setbox\infofilenamebox = \hbox{\infofilename\unskip}%
7883 %
7884 \def\printedmanual{\ignorespaces #5}% 7830 \def\printedmanual{\ignorespaces #5}%
7885 \setbox\printedmanualbox = \hbox{\printedmanual\unskip}% 7831 \setbox\printedmanualbox = \hbox{\printedmanual\unskip}%
7886 % 7832 %
@@ -7915,18 +7861,11 @@ end
7915 \turnoffactive 7861 \turnoffactive
7916 \makevalueexpandable 7862 \makevalueexpandable
7917 % This expands tokens, so do it after making catcode changes, so _ 7863 % This expands tokens, so do it after making catcode changes, so _
7918 % etc. don't get their TeX definitions. This ignores all spaces in 7864 % etc. don't get their TeX definitions.
7919 % #4, including (wrongly) those in the middle of the filename.
7920 \getfilename{#4}% 7865 \getfilename{#4}%
7921 % 7866 %
7922 % This (wrongly) does not take account of leading or trailing
7923 % spaces in #1, which should be ignored.
7924 \edef\pdfxrefdest{#1}% 7867 \edef\pdfxrefdest{#1}%
7925 \ifx\pdfxrefdest\empty 7868 \txiescapepdf\pdfxrefdest
7926 \def\pdfxrefdest{Top}% no empty targets
7927 \else
7928 \txiescapepdf\pdfxrefdest % escape PDF special chars
7929 \fi
7930 % 7869 %
7931 \leavevmode 7870 \leavevmode
7932 \startlink attr{/Border [0 0 0]}% 7871 \startlink attr{/Border [0 0 0]}%
@@ -7959,7 +7898,7 @@ end
7959 \printedrefname 7898 \printedrefname
7960 \fi 7899 \fi
7961 % 7900 %
7962 % If the user also gave the printed manual name (fifth arg), append 7901 % if the user also gave the printed manual name (fifth arg), append
7963 % "in MANUALNAME". 7902 % "in MANUALNAME".
7964 \ifdim \wd\printedmanualbox > 0pt 7903 \ifdim \wd\printedmanualbox > 0pt
7965 \space \putwordin{} \cite{\printedmanual}% 7904 \space \putwordin{} \cite{\printedmanual}%
@@ -7974,20 +7913,32 @@ end
7974 % this is a loss. Therefore, we give the text of the node name 7913 % 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. 7914 % again, so it is as if TeX is seeing it for the first time.
7976 % 7915 %
7916 % Cross-manual reference. Only include the "Section ``foo'' in" if
7917 % the foo is neither missing or Top. Thus, @xref{,,,foo,The Foo Manual}
7918 % outputs simply "see The Foo Manual".
7977 \ifdim \wd\printedmanualbox > 0pt 7919 \ifdim \wd\printedmanualbox > 0pt
7978 % Cross-manual reference with a printed manual name. 7920 % What is the 7sp about? The idea is that we also want to omit
7921 % the Section part if we would be printing "Top", since they are
7922 % clearly trying to refer to the whole manual. But, this being
7923 % TeX, we can't easily compare strings while ignoring the possible
7924 % spaces before and after in the input. By adding the arbitrary
7925 % 7sp, we make it much less likely that a real node name would
7926 % happen to have the same width as "Top" (e.g., in a monospaced font).
7927 % I hope it will never happen in practice.
7979 % 7928 %
7980 \crossmanualxref{\cite{\printedmanual\unskip}}% 7929 % For the same basic reason, we retypeset the "Top" at every
7981 % 7930 % reference, since the current font is indeterminate.
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 % 7931 %
7987 \crossmanualxref{\code{\infofilename\unskip}}% 7932 \setbox\topbox = \hbox{Top\kern7sp}%
7988 % 7933 \setbox2 = \hbox{\ignorespaces \printedrefname \unskip \kern7sp}%
7934 \ifdim \wd2 > 7sp
7935 \ifdim \wd2 = \wd\topbox \else
7936 \putwordSection{} ``\printedrefname'' \putwordin{}\space
7937 \fi
7938 \fi
7939 \cite{\printedmanual}%
7989 \else 7940 \else
7990 % Reference within this manual. 7941 % Reference in this manual.
7991 % 7942 %
7992 % _ (for example) has to be the character _ for the purposes of the 7943 % _ (for example) has to be the character _ for the purposes of the
7993 % control sequence corresponding to the node, but it has to expand 7944 % control sequence corresponding to the node, but it has to expand
@@ -8008,37 +7959,11 @@ end
8008 % 7959 %
8009 % output the `page 3'. 7960 % output the `page 3'.
8010 \turnoffactive \putwordpage\tie\refx{#1-pg}{}% 7961 \turnoffactive \putwordpage\tie\refx{#1-pg}{}%
8011 \fi\fi 7962 \fi
8012 \fi 7963 \fi
8013 \endlink 7964 \endlink
8014\endgroup} 7965\endgroup}
8015 7966
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
8042% This macro is called from \xrefX for the `[nodename]' part of xref 7967% This macro is called from \xrefX for the `[nodename]' part of xref
8043% output. It's a separate macro only so it can be changed more easily, 7968% output. It's a separate macro only so it can be changed more easily,
8044% since square brackets don't work well in some documents. Particularly 7969% since square brackets don't work well in some documents. Particularly