libmicrohttpd

HTTP/1.x server C library (MHD 1.x, stable)
Log | Files | Refs | Submodules | README | LICENSE

commit cc8a80bf848d6cb7d1f78ce8d534df4aa4df32e3
parent ed960f50c88620fc54a81fb2035173ea2a48b8f0
Author: Christian Grothoff <christian@grothoff.org>
Date:   Sat, 18 May 2013 20:33:10 +0000

-fix build issues on MinGW (#2885)

Diffstat:
MINSTALL | 8++++----
Mconfig.sub | 11+----------
Mdoc/texinfo.tex | 441+++++++++++++++++++++++++++----------------------------------------------------
Msrc/examples/Makefile.am | 2+-
Msrc/examples/demo.c | 5++++-
Msrc/examples/spdy_event_loop.c | 16++++++++++------
Msrc/examples/spdy_fileserver.c | 2+-
Msrc/examples/spdy_response_with_callback.c | 6+++---
Msrc/microspdy/applicationlayer.c | 2+-
Msrc/microspdy/compression.c | 2+-
Msrc/microspdy/session.c | 2+-
Msrc/microspdy/structures.c | 18+++++++++---------
Msrc/microspdy/structures.h | 2+-
Msrc/spdy2http/Makefile.am | 2+-
Msrc/testspdy/Makefile.am | 2+-
Msrc/testspdy/test_daemon_start_stop.c | 4++--
Msrc/testspdy/test_daemon_start_stop_many.c | 4++--
Msrc/testspdy/test_misc.c | 4++--
Msrc/testspdy/test_new_connection.c | 4++--
Msrc/testspdy/test_request_response.c | 4++--
Msrc/testspdy/test_request_response_with_callback.c | 10+++++-----
Msrc/testspdy/test_requests_with_assets.c | 4++--
Msrc/testspdy/test_session_timeout.c | 4++--
23 files changed, 209 insertions(+), 350 deletions(-)

diff --git a/INSTALL b/INSTALL @@ -1,7 +1,7 @@ Installation Instructions ************************* -Copyright (C) 1994-1996, 1999-2002, 2004-2012 Free Software Foundation, +Copyright (C) 1994-1996, 1999-2002, 2004-2011 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, @@ -309,10 +309,9 @@ causes the specified `gcc' to be used as the C compiler (unless it is overridden in the site shell script). Unfortunately, this technique does not work for `CONFIG_SHELL' due to -an Autoconf limitation. Until the limitation is lifted, you can use -this workaround: +an Autoconf bug. Until the bug is fixed you can use this workaround: - CONFIG_SHELL=/bin/bash ./configure CONFIG_SHELL=/bin/bash + CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash `configure' Invocation ====================== @@ -368,3 +367,4 @@ operates. `configure' also accepts some other, not widely useful, options. Run `configure --help' for more details. + diff --git a/config.sub b/config.sub @@ -4,7 +4,7 @@ # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, # 2011, 2012 Free Software Foundation, Inc. -timestamp='2012-04-18' +timestamp='2012-02-10' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software @@ -225,12 +225,6 @@ case $os in -isc*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; - -lynx*178) - os=-lynxos178 - ;; - -lynx*5) - os=-lynxos5 - ;; -lynx*) os=-lynxos ;; @@ -1543,9 +1537,6 @@ case $basic_machine in c4x-* | tic4x-*) os=-coff ;; - hexagon-*) - os=-elf - ;; tic54x-*) os=-coff ;; diff --git a/doc/texinfo.tex b/doc/texinfo.tex @@ -3,11 +3,11 @@ % Load plain if necessary, i.e., if running under initex. \expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi % -\def\texinfoversion{2012-09-05.06} +\def\texinfoversion{2012-01-03.09} % % Copyright 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995, % 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, -% 2007, 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. +% 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc. % % This texinfo.tex file is free software: you can redistribute it and/or % modify it under the terms of the GNU General Public License as @@ -28,9 +28,9 @@ % % Please try the latest version of texinfo.tex before submitting bug % reports; you can get the latest version from: -% http://ftp.gnu.org/gnu/texinfo/ (the Texinfo release area), or -% http://ftpmirror.gnu.org/texinfo/ (same, via a mirror), or -% http://www.gnu.org/software/texinfo/ (the Texinfo home page) +% http://www.gnu.org/software/texinfo/ (the Texinfo home page), or +% ftp://tug.org/tex/texinfo.tex +% (and all CTAN mirrors, see http://www.ctan.org). % The texinfo.tex in any given distribution could well be out % of date, so if that's what you're using, please check. % @@ -594,7 +594,7 @@ \def\:{\spacefactor=1000 } % @* forces a line break. -\def\*{\unskip\hfil\break\hbox{}\ignorespaces} +\def\*{\hfil\break\hbox{}\ignorespaces} % @/ allows a line break. \let\/=\allowbreak @@ -887,7 +887,7 @@ where each line of input produces a line of output.} \def\popthisfilestack{\errthisfilestackempty} \def\errthisfilestackempty{\errmessage{Internal error: the stack of filenames is empty.}} -% + \def\thisfile{} % @center line @@ -895,46 +895,36 @@ where each line of input produces a line of output.} % \parseargdef\center{% \ifhmode - \let\centersub\centerH + \let\next\centerH \else - \let\centersub\centerV + \let\next\centerV \fi - \centersub{\hfil \ignorespaces#1\unskip \hfil}% - \let\centersub\relax % don't let the definition persist, just in case + \next{\hfil \ignorespaces#1\unskip \hfil}% } -\def\centerH#1{{% - \hfil\break - \advance\hsize by -\leftskip - \advance\hsize by -\rightskip - \line{#1}% - \break -}} -% -\newcount\centerpenalty -\def\centerV#1{% - % The idea here is the same as in \startdefun, \cartouche, etc.: if - % @center is the first thing after a section heading, we need to wipe - % out the negative parskip inserted by \sectionheading, but still - % prevent a page break here. - \centerpenalty = \lastpenalty - \ifnum\centerpenalty>10000 \vskip\parskip \fi - \ifnum\centerpenalty>9999 \penalty\centerpenalty \fi - \line{\kern\leftskip #1\kern\rightskip}% +\def\centerH#1{% + {% + \hfil\break + \advance\hsize by -\leftskip + \advance\hsize by -\rightskip + \line{#1}% + \break + }% } +\def\centerV#1{\line{\kern\leftskip #1\kern\rightskip}} % @sp n outputs n lines of vertical space -% + \parseargdef\sp{\vskip #1\baselineskip} % @comment ...line which is ignored... % @c is the same as @comment % @ignore ... @end ignore is another way to write a comment -% + \def\comment{\begingroup \catcode`\^^M=\other% \catcode`\@=\other \catcode`\{=\other \catcode`\}=\other% \commentxxx} {\catcode`\^^M=\other \gdef\commentxxx#1^^M{\endgroup}} -% + \let\c=\comment % @paragraphindent NCHARS @@ -1117,7 +1107,7 @@ where each line of input produces a line of output.} % #1 is a control sequence in which to do the replacements, % which we \xdef. \def\txiescapepdf#1{% - \ifx\pdfescapestring\thisisundefined + \ifx\pdfescapestring\relax % No primitive available; should we give a warning or log? % Many times it won't matter. \else @@ -1183,8 +1173,8 @@ output) for that.)} % % #1 is image name, #2 width (might be empty/whitespace), #3 height (ditto). \def\dopdfimage#1#2#3{% - \def\pdfimagewidth{#2}\setbox0 = \hbox{\ignorespaces #2}% - \def\pdfimageheight{#3}\setbox2 = \hbox{\ignorespaces #3}% + \def\imagewidth{#2}\setbox0 = \hbox{\ignorespaces #2}% + \def\imageheight{#3}\setbox2 = \hbox{\ignorespaces #3}% % % pdftex (and the PDF format) support .pdf, .png, .jpg (among % others). Let's try in that order, PDF first since if @@ -1222,8 +1212,8 @@ output) for that.)} \else \immediate\pdfximage \fi - \ifdim \wd0 >0pt width \pdfimagewidth \fi - \ifdim \wd2 >0pt height \pdfimageheight \fi + \ifdim \wd0 >0pt width \imagewidth \fi + \ifdim \wd2 >0pt height \imageheight \fi \ifnum\pdftexversion<13 #1.\pdfimgext \else @@ -1367,17 +1357,12 @@ output) for that.)} \def\skipspaces#1{\def\PP{#1}\def\D{|}% \ifx\PP\D\let\nextsp\relax \else\let\nextsp\skipspaces - \addtokens{\filename}{\PP}% - \advance\filenamelength by 1 + \ifx\p\space\else\addtokens{\filename}{\PP}% + \advance\filenamelength by 1 + \fi \fi \nextsp} - \def\getfilename#1{% - \filenamelength=0 - % If we don't expand the argument now, \skipspaces will get - % snagged on things like "@value{foo}". - \edef\temp{#1}% - \expandafter\skipspaces\temp|\relax - } + \def\getfilename#1{\filenamelength=0\expandafter\skipspaces#1|\relax} \ifnum\pdftexversion < 14 \let \startlink \pdfannotlink \else @@ -1474,6 +1459,9 @@ output) for that.)} \def\ttsl{\setfontstyle{ttsl}} +% Default leading. +\newdimen\textleading \textleading = 13.2pt + % Set the baselineskip to #1, and the lineskip and strut size % correspondingly. There is no deep meaning behind these magic numbers % used as factors; they just match (closely enough) what Knuth defined. @@ -1485,7 +1473,6 @@ output) for that.)} % can get a sort of poor man's double spacing by redefining this. \def\baselinefactor{1} % -\newdimen\textleading \def\setleading#1{% \dimen0 = #1\relax \normalbaselineskip = \baselinefactor\dimen0 @@ -1758,24 +1745,18 @@ end \fi\fi -% Set the font macro #1 to the font named \fontprefix#2. +% Set the font macro #1 to the font named #2, adding on the +% specified font prefix (normally `cm'). % #3 is the font's design size, #4 is a scale factor, #5 is the CMap -% encoding (only OT1, OT1IT and OT1TT are allowed, or empty to omit). -% Example: -% #1 = \textrm -% #2 = \rmshape -% #3 = 10 -% #4 = \mainmagstep -% #5 = OT1 -% +% encoding (currently only OT1, OT1IT and OT1TT are allowed, pass +% empty to omit). \def\setfont#1#2#3#4#5{% \font#1=\fontprefix#2#3 scaled #4 \csname cmap#5\endcsname#1% } % This is what gets called when #5 of \setfont is empty. \let\cmap\gobble -% -% (end of cmaps) +% emacs-page end of cmaps % Use cm as the default font prefix. % To specify the font prefix, you must define \fontprefix @@ -1785,7 +1766,7 @@ end \fi % Support font families that don't use the same naming scheme as CM. \def\rmshape{r} -\def\rmbshape{bx} % where the normal face is bold +\def\rmbshape{bx} %where the normal face is bold \def\bfshape{b} \def\bxshape{bx} \def\ttshape{tt} @@ -1800,7 +1781,8 @@ end \def\scshape{csc} \def\scbshape{csc} -% Definitions for a main text size of 11pt. (The default in Texinfo.) +% Definitions for a main text size of 11pt. This is the default in +% Texinfo. % \def\definetextfontsizexi{% % Text fonts (11.2pt, magstep1). @@ -1925,7 +1907,7 @@ end \textleading = 13.2pt % line spacing for 11pt CM \textfonts % reset the current fonts \rm -} % end of 11pt text font size definitions, \definetextfontsizexi +} % end of 11pt text font size definitions % Definitions to make the main text be 10pt Computer Modern, with @@ -2057,7 +2039,7 @@ end \textleading = 12pt % line spacing for 10pt CM \textfonts % reset the current fonts \rm -} % end of 10pt text font size definitions, \definetextfontsizex +} % end of 10pt text font size definitions % We provide the user-level command @@ -2448,12 +2430,34 @@ end % @samp. \def\samp#1{{\setupmarkupstyle{samp}\lq\tclose{#1}\rq\null}} -% @indicateurl is \samp, that is, with quotes. -\let\indicateurl=\samp +% definition of @key that produces a lozenge. Doesn't adjust to text size. +%\setfont\keyrm\rmshape{8}{1000}{OT1} +%\font\keysy=cmsy9 +%\def\key#1{{\keyrm\textfont2=\keysy \leavevmode\hbox{% +% \raise0.4pt\hbox{\angleleft}\kern-.08em\vtop{% +% \vbox{\hrule\kern-0.4pt +% \hbox{\raise0.4pt\hbox{\vphantom{\angleleft}}#1}}% +% \kern-0.4pt\hrule}% +% \kern-.06em\raise0.4pt\hbox{\angleright}}}} -% @code (and similar) prints in typewriter, but with spaces the same -% size as normal in the surrounding text, without hyphenation, etc. -% This is a subroutine for that. +% definition of @key with no lozenge. If the current font is already +% monospace, don't change it; that way, we respect @kbdinputstyle. But +% if it isn't monospace, then use \tt. +% +\def\key#1{{\setupmarkupstyle{key}% + \nohyphenation + \ifmonospace\else\tt\fi + #1}\null} + +% ctrl is no longer a Texinfo command. +\def\ctrl #1{{\tt \rawbackslash \hat}#1} + +% @file, @option are the same as @samp. +\let\file=\samp +\let\option=\samp + +% @code is a modification of @t, +% which makes spaces the same size as normal in the surrounding text. \def\tclose#1{% {% % Change normal interword space to be same as for the current font. @@ -2478,7 +2482,7 @@ end % We *must* turn on hyphenation at `-' and `_' in @code. % Otherwise, it is too hard to avoid overfull hboxes % in the Emacs manual, the Library manual, etc. -% + % Unfortunately, TeX uses one parameter (\hyphenchar) to control % both hyphenation at - and hyphenation within words. % We must therefore turn them both off (\tclose does that) @@ -2542,13 +2546,6 @@ end \fi\fi } -% For @command, @env, @file, @option quotes seem unnecessary, -% so use \code rather than \samp. -\let\command=\code -\let\env=\code -\let\file=\code -\let\option=\code - % @uref (abbreviation for `urlref') takes an optional (comma-separated) % second argument specifying the text to display and an optional third % arg as text to display instead of (rather than in addition to) the url @@ -2728,24 +2725,10 @@ end \else{\tclose{\kbdfont\setupmarkupstyle{kbd}\look}}\fi \else{\tclose{\kbdfont\setupmarkupstyle{kbd}\look}}\fi} -% definition of @key that produces a lozenge. Doesn't adjust to text size. -%\setfont\keyrm\rmshape{8}{1000}{OT1} -%\font\keysy=cmsy9 -%\def\key#1{{\keyrm\textfont2=\keysy \leavevmode\hbox{% -% \raise0.4pt\hbox{\angleleft}\kern-.08em\vtop{% -% \vbox{\hrule\kern-0.4pt -% \hbox{\raise0.4pt\hbox{\vphantom{\angleleft}}#1}}% -% \kern-0.4pt\hrule}% -% \kern-.06em\raise0.4pt\hbox{\angleright}}}} - -% definition of @key with no lozenge. If the current font is already -% monospace, don't change it; that way, we respect @kbdinputstyle. But -% if it isn't monospace, then use \tt. -% -\def\key#1{{\setupmarkupstyle{key}% - \nohyphenation - \ifmonospace\else\tt\fi - #1}\null} +% For @indicateurl, @env, @command quotes seem unnecessary, so use \code. +\let\indicateurl=\code +\let\env=\code +\let\command=\code % @clicksequence{File @click{} Open ...} \def\clicksequence#1{\begingroup #1\endgroup} @@ -2853,17 +2836,14 @@ end } } -% ctrl is no longer a Texinfo command, but leave this definition for fun. -\def\ctrl #1{{\tt \rawbackslash \hat}#1} - % @inlinefmt{FMTNAME,PROCESSED-TEXT} and @inlineraw{FMTNAME,RAW-TEXT}. % Ignore unless FMTNAME == tex; then it is like @iftex and @tex, % except specified as a normal braced arg, so no newlines to worry about. % \def\outfmtnametex{tex} % -\long\def\inlinefmt#1{\doinlinefmt #1,\finish} -\long\def\doinlinefmt#1,#2,\finish{% +\def\inlinefmt#1{\doinlinefmt #1,\finish} +\def\doinlinefmt#1,#2,\finish{% \def\inlinefmtname{#1}% \ifx\inlinefmtname\outfmtnametex \ignorespaces #2\fi } @@ -2875,8 +2855,8 @@ end % well use a command to get a left brace too. We could re-use the % delimiter character idea from \verb, but it seems like overkill. % -\long\def\inlineraw{\tex \doinlineraw} -\long\def\doinlineraw#1{\doinlinerawtwo #1,\finish} +\def\inlineraw{\tex \doinlineraw} +\def\doinlineraw#1{\doinlinerawtwo #1,\finish} \def\doinlinerawtwo#1,#2,\finish{% \def\inlinerawname{#1}% \ifx\inlinerawname\outfmtnametex \ignorespaces #2\fi @@ -3146,17 +3126,12 @@ end % hopefully nobody will notice/care. \edef\ecsize{\csname\curfontsize ecsize\endcsname}% \edef\nominalsize{\csname\curfontsize nominalsize\endcsname}% - \ifmonospace - % typewriter: - \font\thisecfont = ectt\ecsize \space at \nominalsize + \ifx\curfontstyle\bfstylename + % bold: + \font\thisecfont = ecb\ifusingit{i}{x}\ecsize \space at \nominalsize \else - \ifx\curfontstyle\bfstylename - % bold: - \font\thisecfont = ecb\ifusingit{i}{x}\ecsize \space at \nominalsize - \else - % regular: - \font\thisecfont = ec\ifusingit{ti}{rm}\ecsize \space at \nominalsize - \fi + % regular: + \font\thisecfont = ec\ifusingit{ti}{rm}\ecsize \space at \nominalsize \fi \thisecfont } @@ -3269,20 +3244,6 @@ end \finishedtitlepagetrue } -% Settings used for typesetting titles: no hyphenation, no indentation, -% don't worry much about spacing, ragged right. This should be used -% inside a \vbox, and fonts need to be set appropriately first. Because -% it is always used for titles, nothing else, we call \rmisbold. \par -% should be specified before the end of the \vbox, since a vbox is a group. -% -\def\raggedtitlesettings{% - \rmisbold - \hyphenpenalty=10000 - \parindent=0pt - \tolerance=5000 - \ptexraggedright -} - % Macros to be used within @titlepage: \let\subtitlerm=\tenrm @@ -3290,7 +3251,7 @@ end \parseargdef\title{% \checkenv\titlepage - \vbox{\titlefonts \raggedtitlesettings #1\par}% + \leftline{\titlefonts\rmisbold #1} % print a rule at the page bottom also. \finishedtitlepagefalse \vskip4pt \hrule height 4pt width \hsize \vskip4pt @@ -4227,7 +4188,7 @@ end } \def\ifsetfail{\doignore{ifset}} -% @ifclear VAR ... @end executes the `...' iff VAR has never been +% @ifclear VAR ... @end ifclear reads the `...' iff VAR has never been % defined with @set, or has been undefined with @clear. % % The `\else' inside the `\doifset' parameter is a trick to reuse the @@ -4238,35 +4199,6 @@ end \def\ifclear{\parsearg{\doifset{\else \let\next=\ifclearfail}}} \def\ifclearfail{\doignore{ifclear}} -% @ifcommandisdefined CMD ... @end executes the `...' if CMD (written -% without the @) is in fact defined. We can only feasibly check at the -% TeX level, so something like `mathcode' is going to considered -% defined even though it is not a Texinfo command. -% -\makecond{ifcommanddefined} -\def\ifcommanddefined{\parsearg{\doifcmddefined{\let\next=\ifcmddefinedfail}}} -% -\def\doifcmddefined#1#2{{% - \makevalueexpandable - \let\next=\empty - \expandafter\ifx\csname #2\endcsname\relax - #1% If not defined, \let\next as above. - \fi - \expandafter - }\next -} -\def\ifcmddefinedfail{\doignore{ifcommanddefined}} - -% @ifcommandnotdefined CMD ... handlded similar to @ifclear above. -\makecond{ifcommandnotdefined} -\def\ifcommandnotdefined{% - \parsearg{\doifcmddefined{\else \let\next=\ifcmdnotdefinedfail}}} -\def\ifcmdnotdefinedfail{\doignore{ifcommandnotdefined}} - -% Set the `txicommandconditionals' variable, so documents have a way to -% test if the @ifcommand...defined conditionals are available. -\set txicommandconditionals - % @dircategory CATEGORY -- specify a category of the dir file % which this file should belong to. Ignore this in TeX. \let\dircategory=\comment @@ -4503,7 +4435,6 @@ end \definedummyword\guillemetright \definedummyword\guilsinglleft \definedummyword\guilsinglright - \definedummyword\lbracechar \definedummyword\leq \definedummyword\minus \definedummyword\ogonek @@ -4516,7 +4447,6 @@ end \definedummyword\quoteleft \definedummyword\quoteright \definedummyword\quotesinglbase - \definedummyword\rbracechar \definedummyword\result \definedummyword\textdegree % @@ -4568,7 +4498,6 @@ end \definedummyword\t % % Commands that take arguments. - \definedummyword\abbr \definedummyword\acronym \definedummyword\anchor \definedummyword\cite @@ -4580,9 +4509,7 @@ end \definedummyword\emph \definedummyword\env \definedummyword\file - \definedummyword\image \definedummyword\indicateurl - \definedummyword\inforef \definedummyword\kbd \definedummyword\key \definedummyword\math @@ -4629,10 +4556,7 @@ end % content at all. So for index sorting, we map @{ and @} to strings % starting with |, since that ASCII character is between ASCII { and }. \def\{{|a}% - \def\lbracechar{|a}% - % \def\}{|b}% - \def\rbracechar{|b}% % % Non-English letters. \def\AA{AA}% @@ -4808,9 +4732,10 @@ end % % ..., ready, GO: % -\def\safewhatsit#1{\ifhmode +\def\safewhatsit#1{% +\ifhmode #1% - \else +\else % \lastskip and \lastpenalty cannot both be nonzero simultaneously. \whatsitskip = \lastskip \edef\lastskipmacro{\the\lastskip}% @@ -4834,6 +4759,7 @@ end % to re-insert the same penalty (values >10000 are used for various % signals); since we just inserted a non-discardable item, any % following glue (such as a \parskip) would be a breakpoint. For example: + % % @deffn deffn-whatever % @vindex index-whatever % Description. @@ -4846,7 +4772,8 @@ end % (the whatsit from the \write), so we must insert a \nobreak. \nobreak\vskip\whatsitskip \fi -\fi} +\fi +} % The index entry written in the file actually looks like % \entry {sortstring}{page}{topic} @@ -5593,6 +5520,14 @@ end % Define @majorheading, @heading and @subheading +% NOTE on use of \vbox for chapter headings, section headings, and such: +% 1) We use \vbox rather than the earlier \line to permit +% overlong headings to fold. +% 2) \hyphenpenalty is set to 10000 because hyphenation in a +% heading is obnoxious; this forbids it. +% 3) Likewise, headings look best if no \parindent is used, and +% if justification is not attempted. Hence \raggedright. + \def\majorheading{% {\advance\chapheadingskip by 10pt \chapbreak }% \parsearg\chapheadingzzz @@ -5600,8 +5535,10 @@ end \def\chapheading{\chapbreak \parsearg\chapheadingzzz} \def\chapheadingzzz#1{% - \vbox{\chapfonts \raggedtitlesettings #1\par}% - \nobreak\bigskip \nobreak + {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000 + \parindent=0pt\ptexraggedright + \rmisbold #1\hfill}}% + \bigskip \par\penalty 200\relax \suppressfirstparagraphindent } @@ -5760,7 +5697,8 @@ end % % Typeset the actual heading. \nobreak % Avoid page breaks at the interline glue. - \vbox{\raggedtitlesettings \hangindent=\wd0 \centerparametersmaybe + \vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \ptexraggedright + \hangindent=\wd0 \centerparametersmaybe \unhbox0 #1\par}% }% \nobreak\bigskip % no page break after a chapter title @@ -5782,18 +5720,18 @@ end \def\setchapterstyle #1 {\csname CHAPF#1\endcsname} % \def\unnchfopen #1{% - \chapoddpage - \vbox{\chapfonts \raggedtitlesettings #1\par}% - \nobreak\bigskip\nobreak +\chapoddpage {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000 + \parindent=0pt\ptexraggedright + \rmisbold #1\hfill}}\bigskip \par\nobreak } \def\chfopen #1#2{\chapoddpage {\chapfonts \vbox to 3in{\vfil \hbox to\hsize{\hfil #2} \hbox to\hsize{\hfil #1} \vfil}}% \par\penalty 5000 % } \def\centerchfopen #1{% - \chapoddpage - \vbox{\chapfonts \raggedtitlesettings \hfill #1\hfill}% - \nobreak\bigskip \nobreak +\chapoddpage {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000 + \parindent=0pt + \hfill {\rmisbold #1}\hfill}}\bigskip \par\nobreak } \def\CHAPFopen{% \global\let\chapmacro=\chfopen @@ -5938,15 +5876,14 @@ end % % We'll almost certainly start a paragraph next, so don't let that % glue accumulate. (Not a breakpoint because it's preceded by a - % discardable item.) However, when a paragraph is not started next - % (\startdefun, \cartouche, \center, etc.), this needs to be wiped out - % or the negative glue will cause weirdly wrong output, typically - % obscuring the section heading with something else. + % discardable item.) \vskip-\parskip % - % This is so the last item on the main vertical list is a known - % \penalty > 10000, so \startdefun, etc., can recognize the situation - % and do the needful. + % This is purely so the last item on the list is a known \penalty > + % 10000. This is so \startdefun can avoid allowing breakpoints after + % section headings. Otherwise, it would insert a valid breakpoint between: + % @section sec-whatever + % @deffn def-whatever \penalty 10001 } @@ -6366,7 +6303,7 @@ end % If this cartouche directly follows a sectioning command, we need the % \parskip glue (backspaced over by default) or the cartouche can % collide with the section heading. - \ifnum\lastpenalty>10000 \vskip\parskip \penalty\lastpenalty \fi + \ifnum\lastpenalty>10000 \vskip\parskip \fi % \vbox\bgroup \baselineskip=0pt\parskip=0pt\lineskip=0pt @@ -7856,7 +7793,7 @@ end \fi\fi } -% + % @xref, @pxref, and @ref generate cross-references. For \xrefX, #1 is % the node name, #2 the name of the Info cross-reference, #3 the printed % node name, #4 the name of the Info file, #5 the name of the printed @@ -7865,41 +7802,26 @@ end \def\pxref#1{\putwordsee{} \xrefX[#1,,,,,,,]} \def\xref#1{\putwordSee{} \xrefX[#1,,,,,,,]} \def\ref#1{\xrefX[#1,,,,,,,]} -% -\newbox\toprefbox -\newbox\printedrefnamebox -\newbox\infofilenamebox -\newbox\printedmanualbox -% \def\xrefX[#1,#2,#3,#4,#5,#6]{\begingroup \unsepspaces - % - % Get args without leading/trailing spaces. - \def\printedrefname{\ignorespaces #3}% - \setbox\printedrefnamebox = \hbox{\printedrefname\unskip}% - % - \def\infofilename{\ignorespaces #4}% - \setbox\infofilenamebox = \hbox{\infofilename\unskip}% - % \def\printedmanual{\ignorespaces #5}% - \setbox\printedmanualbox = \hbox{\printedmanual\unskip}% - % - % If the printed reference name (arg #3) was not explicitly given in - % the @xref, figure out what we want to use. - \ifdim \wd\printedrefnamebox = 0pt + \def\printedrefname{\ignorespaces #3}% + \setbox1=\hbox{\printedmanual\unskip}% + \setbox0=\hbox{\printedrefname\unskip}% + \ifdim \wd0 = 0pt % No printed node name was explicitly given. \expandafter\ifx\csname SETxref-automatic-section-title\endcsname \relax - % Not auto section-title: use node name inside the square brackets. + % Use the node name inside the square brackets. \def\printedrefname{\ignorespaces #1}% \else - % Auto section-title: use chapter/section title inside - % the square brackets if we have it. - \ifdim \wd\printedmanualbox > 0pt - % It is in another manual, so we don't have it; use node name. + % Use the actual chapter/section title appear inside + % the square brackets. Use the real section title if we have it. + \ifdim \wd1 > 0pt + % It is in another manual, so we don't have it. \def\printedrefname{\ignorespaces #1}% \else \ifhavexrefs - % We (should) know the real title if we have the xref values. + % We know the real title if we have the xref values. \def\printedrefname{\refx{#1-title}{}}% \else % Otherwise just copy the Info node name. @@ -7913,20 +7835,12 @@ end \ifpdf {\indexnofonts \turnoffactive - \makevalueexpandable % This expands tokens, so do it after making catcode changes, so _ - % etc. don't get their TeX definitions. This ignores all spaces in - % #4, including (wrongly) those in the middle of the filename. + % etc. don't get their TeX definitions. \getfilename{#4}% % - % This (wrongly) does not take account of leading or trailing - % spaces in #1, which should be ignored. \edef\pdfxrefdest{#1}% - \ifx\pdfxrefdest\empty - \def\pdfxrefdest{Top}% no empty targets - \else - \txiescapepdf\pdfxrefdest % escape PDF special chars - \fi + \txiescapepdf\pdfxrefdest % \leavevmode \startlink attr{/Border [0 0 0]}% @@ -7953,42 +7867,29 @@ end \iffloat\Xthisreftitle % If the user specified the print name (third arg) to the ref, % print it instead of our usual "Figure 1.2". - \ifdim\wd\printedrefnamebox = 0pt + \ifdim\wd0 = 0pt \refx{#1-snt}{}% \else \printedrefname \fi % - % If the user also gave the printed manual name (fifth arg), append + % if the user also gave the printed manual name (fifth arg), append % "in MANUALNAME". - \ifdim \wd\printedmanualbox > 0pt + \ifdim \wd1 > 0pt \space \putwordin{} \cite{\printedmanual}% \fi \else % node/anchor (non-float) references. - % - % If we use \unhbox to print the node names, TeX does not insert - % empty discretionaries after hyphens, which means that it will not - % find a line break at a hyphen in a node names. Since some manuals - % are best written with fairly long node names, containing hyphens, - % this is a loss. Therefore, we give the text of the node name - % again, so it is as if TeX is seeing it for the first time. - % - \ifdim \wd\printedmanualbox > 0pt - % Cross-manual reference with a printed manual name. - % - \crossmanualxref{\cite{\printedmanual\unskip}}% - % - \else\ifdim \wd\infofilenamebox > 0pt - % Cross-manual reference with only an info filename (arg 4), no - % printed manual name (arg 5). This is essentially the same as - % the case above; we output the filename, since we have nothing else. - % - \crossmanualxref{\code{\infofilename\unskip}}% % + % If we use \unhbox0 and \unhbox1 to print the node names, TeX does not + % insert empty discretionaries after hyphens, which means that it will + % not find a line break at a hyphen in a node names. Since some manuals + % are best written with fairly long node names, containing hyphens, this + % is a loss. Therefore, we give the text of the node name again, so it + % is as if TeX is seeing it for the first time. + \ifdim \wd1 > 0pt + \putwordSection{} ``\printedrefname'' \putwordin{} \cite{\printedmanual}% \else - % Reference within this manual. - % % _ (for example) has to be the character _ for the purposes of the % control sequence corresponding to the node, but it has to expand % into the usual \leavevmode...\vrule stuff for purposes of @@ -8000,7 +7901,7 @@ end \setbox2 = \hbox{\ignorespaces \refx{#1-snt}{}}% \ifdim \wd2 > 0pt \refx{#1-snt}\space\fi }% - % output the `[mynode]' via the macro below so it can be overridden. + % output the `[mynode]' via a macro so it can be overridden. \xrefprintnodename\printedrefname % % But we always want a comma and a space: @@ -8008,37 +7909,11 @@ end % % output the `page 3'. \turnoffactive \putwordpage\tie\refx{#1-pg}{}% - \fi\fi + \fi \fi \endlink \endgroup} -% Output a cross-manual xref to #1. Used just above (twice). -% -% Only include the text "Section ``foo'' in" if the foo is neither -% missing or Top. Thus, @xref{,,,foo,The Foo Manual} outputs simply -% "see The Foo Manual", the idea being to refer to the whole manual. -% -% But, this being TeX, we can't easily compare our node name against the -% string "Top" while ignoring the possible spaces before and after in -% the input. By adding the arbitrary 7sp below, we make it much less -% likely that a real node name would have the same width as "Top" (e.g., -% in a monospaced font). Hopefully it will never happen in practice. -% -% For the same basic reason, we retypeset the "Top" at every -% reference, since the current font is indeterminate. -% -\def\crossmanualxref#1{% - \setbox\toprefbox = \hbox{Top\kern7sp}% - \setbox2 = \hbox{\ignorespaces \printedrefname \unskip \kern7sp}% - \ifdim \wd2 > 7sp % nonempty? - \ifdim \wd2 = \wd\toprefbox \else % same as Top? - \putwordSection{} ``\printedrefname'' \putwordin{}\space - \fi - \fi - #1% -} - % This macro is called from \xrefX for the `[nodename]' part of xref % output. It's a separate macro only so it can be changed more easily, % since square brackets don't work well in some documents. Particularly @@ -8406,7 +8281,7 @@ end it from ftp://tug.org/tex/epsf.tex.} % \def\image#1{% - \ifx\epsfbox\thisisundefined + \ifx\epsfbox\thisiundefined \ifwarnednoepsf \else \errhelp = \noepsfhelp \errmessage{epsf.tex not found, images will be ignored}% @@ -8430,13 +8305,6 @@ end % If the image is by itself, center it. \ifvmode \imagevmodetrue - \else \ifx\centersub\centerV - % for @center @image, we need a vbox so we can have our vertical space - \imagevmodetrue - \vbox\bgroup % vbox has better behavior than vtop herev - \fi\fi - % - \ifimagevmode \nobreak\medskip % Usually we'll have text after the image which will insert % \parskip glue, so insert it here too to equalize the space @@ -8446,13 +8314,9 @@ end \fi % % Leave vertical mode so that indentation from an enclosing - % environment such as @quotation is respected. - % However, if we're at the top level, we don't want the - % normal paragraph indentation. - % On the other hand, if we are in the case of @center @image, we don't - % want to start a paragraph, which will create a hsize-width box and - % eradicate the centering. - \ifx\centersub\centerV\else \noindent \fi + % environment such as @quotation is respected. On the other hand, if + % it's at the top level, we don't want the normal paragraph indentation. + \noindent % % Output the image. \ifpdf @@ -8464,10 +8328,7 @@ end \epsfbox{#1.eps}% \fi % - \ifimagevmode - \medskip % space after a standalone image - \fi - \ifx\centersub\centerV \egroup \fi + \ifimagevmode \medskip \fi % space after the standalone image \endgroup} diff --git a/src/examples/Makefile.am b/src/examples/Makefile.am @@ -9,7 +9,7 @@ AM_CPPFLAGS = \ -I$(top_srcdir)/src/include \ @LIBGCRYPT_CFLAGS@ -AM_CFLAGS = -DDATADIR=\"$(top_srcdir)/src/datadir/\" +AM_CFLAGS = -DDATA_DIR=\"$(top_srcdir)/src/datadir/\" if USE_COVERAGE AM_CFLAGS += --coverage diff --git a/src/examples/demo.c b/src/examples/demo.c @@ -796,6 +796,7 @@ catcher (int sig) /** * setup handlers to ignore SIGPIPE. */ +#ifndef MINGW static void ignore_sigpipe () { @@ -813,7 +814,7 @@ ignore_sigpipe () fprintf (stderr, "Failed to install SIGPIPE handler: %s\n", strerror (errno)); } - +#endif /** * Entry point to demo. Note: this HTTP server will make all @@ -838,7 +839,9 @@ main (int argc, char *const *argv) "%s PORT\n", argv[0]); return 1; } + #ifndef MINGW ignore_sigpipe (); + #endif magic = magic_open (MAGIC_MIME_TYPE); (void) magic_load (magic, NULL); diff --git a/src/examples/spdy_event_loop.c b/src/examples/spdy_event_loop.c @@ -35,7 +35,9 @@ #include "microspdy.h" #include <sys/time.h> #include <time.h> +#ifndef MINGW #include <arpa/inet.h> +#endif //#include "../framinglayer/structures.h" //#include "../applicationlayer/alstructures.h" @@ -259,8 +261,10 @@ main (int argc, char *const *argv) { if(argc != 2) return 1; - if (signal(SIGPIPE, sig_handler) == SIG_ERR) - printf("\ncan't catch SIGPIPE\n"); + #ifndef MINGW + if (signal(SIGPIPE, sig_handler) == SIG_ERR) + printf("\ncan't catch SIGPIPE\n"); + #endif SPDY_init(); @@ -272,8 +276,8 @@ main (int argc, char *const *argv) addr4.sin_port = htons(atoi(argv[1])); struct SPDY_Daemon *daemon = SPDY_start_daemon(atoi(argv[1]), - DATADIR "cert-and-key.pem", - DATADIR "cert-and-key.pem", + DATA_DIR "cert-and-key.pem", + DATA_DIR "cert-and-key.pem", &new_session_callback,&session_closed_handler,&standard_request_handler,NULL,NULL, SPDY_DAEMON_OPTION_SESSION_TIMEOUT, 10, //SPDY_DAEMON_OPTION_SOCK_ADDR, (struct sockaddr *)&addr4, @@ -290,8 +294,8 @@ main (int argc, char *const *argv) addr6.sin6_port = htons(atoi(argv[1]) + 1); struct SPDY_Daemon *daemon2 = SPDY_start_daemon(atoi(argv[1]) + 1, - DATADIR "cert-and-key.pem", - DATADIR "cert-and-key.pem", + DATA_DIR "cert-and-key.pem", + DATA_DIR "cert-and-key.pem", &new_session_callback,NULL,&standard_request_handler,NULL,&main, //SPDY_DAEMON_OPTION_SESSION_TIMEOUT, 0, //SPDY_DAEMON_OPTION_SOCK_ADDR, (struct sockaddr *)&addr6, diff --git a/src/examples/spdy_fileserver.c b/src/examples/spdy_fileserver.c @@ -40,7 +40,7 @@ char* basedir; #define GET_MIME_TYPE(fname, mime) do {\ - uint __len = strlen(fname);\ + unsigned int __len = strlen(fname);\ if (__len < 4 || '.' != (fname)[__len - 4]) break;\ const char * __ext = &(fname)[__len - 3];\ if(0 == strcmp(__ext, "jpg")) (mime) = strdup("image/jpeg");\ diff --git a/src/examples/spdy_response_with_callback.c b/src/examples/spdy_response_with_callback.c @@ -92,7 +92,7 @@ standard_request_handler(void *cls, printf("received request for '%s %s %s'\n", method, path, version); if(strcmp(path,"/spdy-draft.txt")==0) { - FILE *fd = fopen(DATADIR "spdy-draft.txt","r"); + FILE *fd = fopen(DATA_DIR "spdy-draft.txt","r"); if(NULL == (resp_headers = SPDY_name_value_create())) { @@ -161,8 +161,8 @@ main (int argc, char *const *argv) SPDY_init(); daemon = SPDY_start_daemon(atoi(argv[1]), - DATADIR "cert-and-key.pem", - DATADIR "cert-and-key.pem", + DATA_DIR "cert-and-key.pem", + DATA_DIR "cert-and-key.pem", NULL, NULL, &standard_request_handler, diff --git a/src/microspdy/applicationlayer.c b/src/microspdy/applicationlayer.c @@ -44,7 +44,7 @@ spdy_handler_new_stream (void *cls, struct SPDYF_Stream * stream) { (void)cls; - uint i; + unsigned int i; char *method = NULL; char *path = NULL; char *version = NULL; diff --git a/src/microspdy/compression.c b/src/microspdy/compression.c @@ -256,7 +256,7 @@ SPDYF_zlib_deflate(z_stream *strm, { int ret; int flush; - uint have; + unsigned int have; Bytef out[SPDYF_ZLIB_CHUNK]; *dest = NULL; diff --git a/src/microspdy/session.c b/src/microspdy/session.c @@ -44,7 +44,7 @@ static void spdyf_handler_read_syn_stream (struct SPDY_Session *session) { size_t name_value_strm_size = 0; - uint compressed_data_size; + unsigned int compressed_data_size; int ret; void *name_value_strm = NULL; struct SPDYF_Control_Frame *frame; diff --git a/src/microspdy/structures.c b/src/microspdy/structures.c @@ -48,8 +48,8 @@ SPDY_name_value_add (struct SPDY_NameValue *container, const char *name, const char *value) { - uint i; - uint len; + unsigned int i; + unsigned int len; struct SPDY_NameValue *pair; struct SPDY_NameValue *temp; char **temp_value; @@ -202,7 +202,7 @@ SPDY_name_value_lookup (struct SPDY_NameValue *container, void SPDY_name_value_destroy (struct SPDY_NameValue *container) { - uint i; + unsigned int i; struct SPDY_NameValue *temp = container; while(NULL != temp) @@ -286,7 +286,7 @@ SPDYF_response_queue_create(bool is_data, struct SPDYF_Response_Queue *response_to_queue; struct SPDYF_Control_Frame *control_frame; struct SPDYF_Data_Frame *data_frame; - uint i; + unsigned int i; bool is_last; SPDYF_ASSERT(!is_data @@ -444,9 +444,9 @@ SPDYF_name_value_to_stream(struct SPDY_NameValue * container[], int32_t value_size; int32_t name_size; int32_t temp; - uint i; - uint offset; - uint value_offset; + unsigned int i; + unsigned int offset; + unsigned int value_offset; struct SPDY_NameValue * iterator; int j; @@ -533,8 +533,8 @@ SPDYF_name_value_from_stream(void *stream, int32_t value_size; int32_t name_size; int i; - uint offset = 0; - uint value_end_offset; + unsigned int offset = 0; + unsigned int value_end_offset; char *name; char *value; diff --git a/src/microspdy/structures.h b/src/microspdy/structures.h @@ -487,7 +487,7 @@ struct SPDY_NameValue /** * Number of values, this is >= 0. */ - uint num_values; + unsigned int num_values; }; diff --git a/src/spdy2http/Makefile.am b/src/spdy2http/Makefile.am @@ -1,6 +1,6 @@ SUBDIRS = . -AM_CFLAGS = -DDATADIR=\"$(top_srcdir)/src/datadir/\" +AM_CFLAGS = -DDATA_DIR=\"$(top_srcdir)/src/datadir/\" if USE_COVERAGE AM_CFLAGS += -fprofile-arcs -ftest-coverage diff --git a/src/testspdy/Makefile.am b/src/testspdy/Makefile.am @@ -1,6 +1,6 @@ SUBDIRS = . -AM_CFLAGS = -DDATADIR=\"$(top_srcdir)/src/datadir/\" +AM_CFLAGS = -DDATA_DIR=\"$(top_srcdir)/src/datadir/\" if USE_COVERAGE AM_CFLAGS += -fprofile-arcs -ftest-coverage diff --git a/src/testspdy/test_daemon_start_stop.c b/src/testspdy/test_daemon_start_stop.c @@ -32,8 +32,8 @@ main() SPDY_init(); struct SPDY_Daemon *daemon = SPDY_start_daemon(get_port(16123), - DATADIR "cert-and-key.pem", - DATADIR "cert-and-key.pem", + DATA_DIR "cert-and-key.pem", + DATA_DIR "cert-and-key.pem", NULL,NULL,NULL,NULL,NULL,SPDY_DAEMON_OPTION_END); if(NULL==daemon){ diff --git a/src/testspdy/test_daemon_start_stop_many.c b/src/testspdy/test_daemon_start_stop_many.c @@ -43,8 +43,8 @@ main() for(j=0;j<num_daemons;++j) { daemon[j] = SPDY_start_daemon(port + j, - DATADIR "cert-and-key.pem", - DATADIR "cert-and-key.pem", + DATA_DIR "cert-and-key.pem", + DATA_DIR "cert-and-key.pem", NULL,NULL,NULL,NULL,NULL,SPDY_DAEMON_OPTION_END); if(NULL==daemon[j]){ diff --git a/src/testspdy/test_misc.c b/src/testspdy/test_misc.c @@ -196,8 +196,8 @@ parentproc() SPDY_init(); daemon = SPDY_start_daemon(port, - DATADIR "cert-and-key.pem", - DATADIR "cert-and-key.pem", + DATA_DIR "cert-and-key.pem", + DATA_DIR "cert-and-key.pem", NULL, NULL, &standard_request_handler, diff --git a/src/testspdy/test_new_connection.c b/src/testspdy/test_new_connection.c @@ -889,8 +889,8 @@ parentproc(int child) SPDY_init(); daemon = SPDY_start_daemon(port, - DATADIR "cert-and-key.pem", - DATADIR "cert-and-key.pem", + DATA_DIR "cert-and-key.pem", + DATA_DIR "cert-and-key.pem", &new_session_callback,NULL,NULL,NULL,CLS,SPDY_DAEMON_OPTION_END); if(NULL==daemon){ diff --git a/src/testspdy/test_request_response.c b/src/testspdy/test_request_response.c @@ -900,8 +900,8 @@ parentproc( int port) SPDY_init(); daemon = SPDY_start_daemon(port, - DATADIR "cert-and-key.pem", - DATADIR "cert-and-key.pem", + DATA_DIR "cert-and-key.pem", + DATA_DIR "cert-and-key.pem", NULL,&session_closed_handler,&standard_request_handler,NULL,CLS,SPDY_DAEMON_OPTION_END); if(NULL==daemon){ diff --git a/src/testspdy/test_request_response_with_callback.c b/src/testspdy/test_request_response_with_callback.c @@ -114,7 +114,7 @@ standard_request_handler(void *cls, printf("received request for '%s %s %s'\n", method, path, version); - FILE *fd = fopen(DATADIR "spdy-draft.txt","r"); + FILE *fd = fopen(DATA_DIR "spdy-draft.txt","r"); if(NULL == (resp_headers = SPDY_name_value_create())) { @@ -161,8 +161,8 @@ parentproc() SPDY_init(); daemon = SPDY_start_daemon(port, - DATADIR "cert-and-key.pem", - DATADIR "cert-and-key.pem", + DATA_DIR "cert-and-key.pem", + DATA_DIR "cert-and-key.pem", NULL, NULL, &standard_request_handler, @@ -257,7 +257,7 @@ childproc() uint64_t usecs; asprintf(&cmd1, "spdycat https://127.0.0.1:%i/ | md5sum",port); - asprintf(&cmd2, "md5sum " DATADIR "spdy-draft.txt"); + asprintf(&cmd2, "md5sum " DATA_DIR "spdy-draft.txt"); gettimeofday(&tv1, NULL); md5(cmd1,md5_sum1); @@ -268,7 +268,7 @@ childproc() printf("original file md5: %s\n", md5_sum2); ret = strcmp(md5_sum1, md5_sum2); - if(0 == ret && 0 == stat(DATADIR "spdy-draft.txt", &st)) + if(0 == ret && 0 == stat(DATA_DIR "spdy-draft.txt", &st)) { usecs = (uint64_t)1000000 * (uint64_t)(tv2.tv_sec - tv1.tv_sec) + tv2.tv_usec - tv1.tv_usec; printf("%i bytes read in %i usecs\n", st.st_size, usecs); diff --git a/src/testspdy/test_requests_with_assets.c b/src/testspdy/test_requests_with_assets.c @@ -213,8 +213,8 @@ parentproc() SPDY_init(); daemon = SPDY_start_daemon(port, - DATADIR "cert-and-key.pem", - DATADIR "cert-and-key.pem", + DATA_DIR "cert-and-key.pem", + DATA_DIR "cert-and-key.pem", NULL, NULL, &standard_request_handler, diff --git a/src/testspdy/test_session_timeout.c b/src/testspdy/test_session_timeout.c @@ -105,8 +105,8 @@ parentproc() SPDY_init(); daemon = SPDY_start_daemon(port, - DATADIR "cert-and-key.pem", - DATADIR "cert-and-key.pem", + DATA_DIR "cert-and-key.pem", + DATA_DIR "cert-and-key.pem", &new_session_cb, &closed_session_cb, NULL,