source: patches/glibc-2.7-branch_update-1A.patch@ ea28a5ea

clfs-1.2 clfs-2.1 clfs-3.0.0-systemd clfs-3.0.0-sysvinit systemd sysvinit
Last change on this file since ea28a5ea was 9e76341, checked in by Ken Moffat <zarniwhoop@…>, 17 years ago

Working version of glibc branch update for ppc/ppc64

  • Property mode set to 100644
File size: 63.8 KB
  • ChangeLog

    Submitted By: Jim Gifford (jim at linuxfromscratch dot org)
    Date: 10-25-2007
     Altered to omit changes to nptl/sysdeps/powerpc/tcb-offsets.sym which don't compile
     and are no longer in recent snapshots: Ken Moffat
    Initial Package Version: 2.7
    Origin: Upstream
    Upstream Status: Applied
    Description: This is a branch update for Glibc-2.7, and should be
                 rechecked periodically. See the 'Changelog' and 'localedata/ChangeLog'
                 for specific details.
    
    diff -Naur glibc-2.7.orig/ChangeLog glibc-2.7/ChangeLog
    old new  
     12007-10-21  Andreas Jaeger  <aj@suse.de>
     2
     3        * manual/texinfo.tex: Update to latest version.
     4
     5        * manual/sysinfo.texi (System Parameters): Fix Formatting.
     6
     7        * manual/arith.texi (Status bit operations): Fix formatting.
     8
     9        * manual/errno.texi (Error Messages): Fix formatting.
     10
     11        * manual/sysinfo.texi (System Parameters): Fix formatting.
     12
     13        * manual/libc.texinfo: Update VERSION and UPDATED.
     14
    1152007-10-17  Jakub Jelinek  <jakub@redhat.com>
    216
    317        * sysdeps/x86_64/memset.S (bzero): Renamed to __bzero.  Add
  • manual/arith.texi

    diff -Naur glibc-2.7.orig/manual/arith.texi glibc-2.7/manual/arith.texi
    old new  
    778778
    779779@comment fenv.h
    780780@comment ISO
    781 @deftypefun int fesetexceptflag (const fexcept_t *@var{flagp}, int
    782 @var{excepts})
     781@deftypefun int fesetexceptflag (const fexcept_t *@var{flagp}, int @var{excepts})
    783782This function restores the flags for the exceptions indicated by
    784783@var{excepts} to the values stored in the variable pointed to by
    785784@var{flagp}.
  • manual/errno.texi

    diff -Naur glibc-2.7.orig/manual/errno.texi glibc-2.7/manual/errno.texi
    old new  
    14941494
    14951495@comment error.h
    14961496@comment GNU
    1497 @deftypevar {void (*} error_print_progname ) (void)
     1497@deftypevar {void (*) error_print_progname } (void)
    14981498If the @code{error_print_progname} variable is defined to a non-zero
    14991499value the function pointed to is called by @code{error} or
    15001500@code{error_at_line}.  It is expected to print the program name or do
  • manual/libc.texinfo

    diff -Naur glibc-2.7.orig/manual/libc.texinfo glibc-2.7/manual/libc.texinfo
    old new  
    1919
    2020@c sold 0.06/1.09, print run out 21may96
    2121@set EDITION 0.11
    22 @set VERSION 2.6
    23 @set UPDATED 2006-12-03
     22@set VERSION 2.7
     23@set UPDATED 2007-09-09
    2424@set ISBN 1-882114-55-8
    2525
    2626@copying
  • manual/sysinfo.texi

    diff -Naur glibc-2.7.orig/manual/sysinfo.texi glibc-2.7/manual/sysinfo.texi
    old new  
    10661066
    10671067@comment sysctl.h
    10681068@comment BSD
    1069 @deftypefun int sysctl (int *@var{names}, int @var{nlen}, void *@var{oldval},
    1070         size_t *@var{oldlenp}, void *@var{newval}, size_t @var{newlen})
     1069@deftypefun int sysctl (int *@var{names}, int @var{nlen}, void *@var{oldval}, size_t *@var{oldlenp}, void *@var{newval}, size_t @var{newlen})
    10711070
    10721071@code{sysctl} gets or sets a specified system parameter.  There are so
    10731072many of these parameters that it is not practical to list them all here,
  • manual/texinfo.tex

    diff -Naur glibc-2.7.orig/manual/texinfo.tex glibc-2.7/manual/texinfo.tex
    old new  
    33% Load plain if necessary, i.e., if running under initex.
    44\expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
    55%
    6 \def\texinfoversion{2004-11-25.16}
     6\def\texinfoversion{2006-11-08.17}
    77%
    88% Copyright (C) 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995,
    9 % 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software
    10 % Foundation, Inc.
     9% 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free
     10% Software Foundation, Inc.
    1111%
    1212% This texinfo.tex file is free software; you can redistribute it and/or
    1313% modify it under the terms of the GNU General Public License as
     
    2121%
    2222% You should have received a copy of the GNU General Public License
    2323% along with this texinfo.tex file; see the file COPYING.  If not, write
    24 % to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
    25 % Boston, MA 02111-1307, USA.
     24% to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
     25% Boston, MA 02110-1301, USA.
    2626%
    2727% As a special exception, when this file is read by TeX when processing
    2828% a Texinfo source document, you may use the result without
     
    153153\ifx\putwordDefopt\undefined    \gdef\putwordDefopt{User Option}\fi
    154154\ifx\putwordDeffunc\undefined   \gdef\putwordDeffunc{Function}\fi
    155155
    156 % In some macros, we cannot use the `\? notation---the left quote is
    157 % in some cases the escape char.
     156% Since the category of space is not known, we have to be careful.
     157\chardef\spacecat = 10
     158\def\spaceisspace{\catcode`\ =\spacecat}
     159
     160% sometimes characters are active, so we need control sequences.
    158161\chardef\colonChar = `\:
    159162\chardef\commaChar = `\,
     163\chardef\dashChar  = `\-
    160164\chardef\dotChar   = `\.
    161165\chardef\exclamChar= `\!
     166\chardef\lquoteChar= `\`
    162167\chardef\questChar = `\?
     168\chardef\rquoteChar= `\'
    163169\chardef\semiChar  = `\;
    164170\chardef\underChar = `\_
    165171
    166 \chardef\spaceChar = `\ %
    167 \chardef\spacecat = 10
    168 \def\spaceisspace{\catcode\spaceChar=\spacecat}
    169 
    170172% Ignore a token.
    171173%
    172174\def\gobble#1{}
     
    302304    % take effect in \write's, yet the group defined by the \vbox ends
    303305    % before the \shipout runs.
    304306    %
    305     \escapechar = `\\     % use backslash in output files.
    306307    \indexdummies         % don't expand commands in the output.
    307308    \normalturnoffactive  % \ in index entries must not stay \, e.g., if
    308                    % the page break happens to be in the middle of an example.
     309               % the page break happens to be in the middle of an example.
     310               % We don't want .vr (or whatever) entries like this:
     311               % \entry{{\tt \indexbackslash }acronym}{32}{\code {\acronym}}
     312               % "\acronym" won't work when it's read back in;
     313               % it needs to be
     314               % {\code {{\tt \backslashcurfont }acronym}
    309315    \shipout\vbox{%
    310316      % Do this early so pdf references go to the beginning of the page.
    311317      \ifpdfmakepagedest \pdfdest name{\the\pageno} xyz\fi
     
    333339      \pagebody{#1}%
    334340      \ifdim\ht\footlinebox > 0pt
    335341        % Only leave this space if the footline is nonempty.
    336         % (We lessened \vsize for it in \oddfootingxxx.)
     342        % (We lessened \vsize for it in \oddfootingyyy.)
    337343        % The \baselineskip=24pt in plain's \makefootline has no effect.
    338         \vskip 2\baselineskip
     344        \vskip 24pt
    339345        \unvbox\footlinebox
    340346      \fi
    341347      %
     
    356362      \egroup % \vbox from first cropmarks clause
    357363      \fi
    358364    }% end of \shipout\vbox
    359   }% end of group with \normalturnoffactive
     365  }% end of group with \indexdummies
    360366  \advancepageno
    361367  \ifnum\outputpenalty>-20000 \else\dosupereject\fi
    362368}
     
    391397%
    392398\def\parsearg{\parseargusing{}}
    393399\def\parseargusing#1#2{%
    394   \def\next{#2}%
     400  \def\argtorun{#2}%
    395401  \begingroup
    396402    \obeylines
    397403    \spaceisspace
     
    422428\def\argcheckspacesY#1\^^M#2\^^M#3\ArgTerm{%
    423429  \def\temp{#3}%
    424430  \ifx\temp\empty
    425     % We cannot use \next here, as it holds the macro to run;
    426     % thus we reuse \temp.
     431    % Do not use \next, perhaps the caller of \parsearg uses it; reuse \temp:
    427432    \let\temp\finishparsearg
    428433  \else
    429434    \let\temp\argcheckspaces
     
    435440% If a _delimited_ argument is enclosed in braces, they get stripped; so
    436441% to get _exactly_ the rest of the line, we had to prevent such situation.
    437442% We prepended an \empty token at the very beginning and we expand it now,
    438 % just before passing the control to \next.
     443% just before passing the control to \argtorun.
    439444% (Similarily, we have to think about #3 of \argcheckspacesY above: it is
    440445% either the null string, or it ends with \^^M---thus there is no danger
    441446% that a pair of braces would be stripped.
    442447%
    443448% But first, we have to remove the trailing space token.
    444449%
    445 \def\finishparsearg#1 \ArgTerm{\expandafter\next\expandafter{#1}}
     450\def\finishparsearg#1 \ArgTerm{\expandafter\argtorun\expandafter{#1}}
    446451
    447452% \parseargdef\foo{...}
    448453%       is roughly equivalent to
     
    566571\let\}=\myrbrace
    567572\begingroup
    568573  % Definitions to produce \{ and \} commands for indices,
    569   % and @{ and @} for the aux file.
     574  % and @{ and @} for the aux/toc files.
    570575  \catcode`\{ = \other \catcode`\} = \other
    571576  \catcode`\[ = 1 \catcode`\] = 2
    572577  \catcode`\! = 0 \catcode`\\ = \other
     
    647652\let\/=\allowbreak
    648653
    649654% @. is an end-of-sentence period.
    650 \def\.{.\spacefactor=3000 }
     655\def\.{.\spacefactor=\endofsentencespacefactor\space}
    651656
    652657% @! is an end-of-sentence bang.
    653 \def\!{!\spacefactor=3000 }
     658\def\!{!\spacefactor=\endofsentencespacefactor\space}
    654659
    655660% @? is an end-of-sentence query.
    656 \def\?{?\spacefactor=3000 }
     661\def\?{?\spacefactor=\endofsentencespacefactor\space}
     662
     663% @frenchspacing on|off  says whether to put extra space after punctuation.
     664%
     665\def\onword{on}
     666\def\offword{off}
     667%
     668\parseargdef\frenchspacing{%
     669  \def\temp{#1}%
     670  \ifx\temp\onword \plainfrenchspacing
     671  \else\ifx\temp\offword \plainnonfrenchspacing
     672  \else
     673    \errhelp = \EMsimple
     674    \errmessage{Unknown @frenchspacing option `\temp', must be on/off}%
     675  \fi\fi
     676}
    657677
    658678% @w prevents a word break.  Without the \leavevmode, @w at the
    659679% beginning of a paragraph, when TeX is still in vertical mode, would
     
    10311051% _ active, and distinguish by seeing if the current family is \slfam,
    10321052% which is what @var uses.
    10331053{
    1034   \catcode\underChar = \active
     1054  \catcode`\_ = \active
    10351055  \gdef\mathunderscore{%
    1036     \catcode\underChar=\active
     1056    \catcode`\_=\active
    10371057    \def_{\ifnum\fam=\slfam \_\else\sb\fi}%
    10381058  }
    10391059}
     
    10761096\def\minus{$-$}
    10771097
    10781098% @dots{} outputs an ellipsis using the current font.
    1079 % We do .5em per period so that it has the same spacing in a typewriter
    1080 % font as three actual period characters.
     1099% We do .5em per period so that it has the same spacing in the cm
     1100% typewriter fonts as three actual period characters; on the other hand,
     1101% in other typewriter fonts three periods are wider than 1.5em.  So do
     1102% whichever is larger.
    10811103%
    10821104\def\dots{%
    10831105  \leavevmode
    1084   \hbox to 1.5em{%
    1085     \hskip 0pt plus 0.25fil
    1086     .\hfil.\hfil.%
    1087     \hskip 0pt plus 0.5fil
     1106  \setbox0=\hbox{...}% get width of three periods
     1107  \ifdim\wd0 > 1.5em
     1108    \dimen0 = \wd0
     1109  \else
     1110    \dimen0 = 1.5em
     1111  \fi
     1112  \hbox to \dimen0{%
     1113    \hskip 0pt plus.25fil
     1114    .\hskip 0pt plus1fil
     1115    .\hskip 0pt plus1fil
     1116    .\hskip 0pt plus.5fil
    10881117  }%
    10891118}
    10901119
     
    10921121%
    10931122\def\enddots{%
    10941123  \dots
    1095   \spacefactor=3000
     1124  \spacefactor=\endofsentencespacefactor
    10961125}
    10971126
    10981127% @comma{} is so commas can be inserted into text without messing up
     
    11761205    \fi
    11771206  \fi
    11781207\fi
    1179 %
     1208
     1209% PDF uses PostScript string constants for the names of xref targets,
     1210% for display in the outlines, and in other places.  Thus, we have to
     1211% double any backslashes.  Otherwise, a name like "\node" will be
     1212% interpreted as a newline (\n), followed by o, d, e.  Not good.
     1213% http://www.ntg.nl/pipermail/ntg-pdftex/2004-July/000654.html
     1214% (and related messages, the final outcome is that it is up to the TeX
     1215% user to double the backslashes and otherwise make the string valid, so
     1216% that's what we do).
     1217
     1218% double active backslashes.
     1219%
     1220{\catcode`\@=0 \catcode`\\=\active
     1221 @gdef@activebackslashdouble{%
     1222   @catcode`@\=@active
     1223   @let\=@doublebackslash}
     1224}
     1225
     1226% To handle parens, we must adopt a different approach, since parens are
     1227% not active characters.  hyperref.dtx (which has the same problem as
     1228% us) handles it with this amazing macro to replace tokens.  I've
     1229% tinkered with it a little for texinfo, but it's definitely from there.
     1230%
     1231% #1 is the tokens to replace.
     1232% #2 is the replacement.
     1233% #3 is the control sequence with the string.
     1234%
     1235\def\HyPsdSubst#1#2#3{%
     1236  \def\HyPsdReplace##1#1##2\END{%
     1237    ##1%
     1238    \ifx\\##2\\%
     1239    \else
     1240      #2%
     1241      \HyReturnAfterFi{%
     1242        \HyPsdReplace##2\END
     1243      }%
     1244    \fi
     1245  }%
     1246  \xdef#3{\expandafter\HyPsdReplace#3#1\END}%
     1247}
     1248\long\def\HyReturnAfterFi#1\fi{\fi#1}
     1249
     1250% #1 is a control sequence in which to do the replacements.
     1251\def\backslashparens#1{%
     1252  \xdef#1{#1}% redefine it as its expansion; the definition is simply
     1253             % \lastnode when called from \setref -> \pdfmkdest.
     1254  \HyPsdSubst{(}{\realbackslash(}{#1}%
     1255  \HyPsdSubst{)}{\realbackslash)}{#1}%
     1256}
     1257
     1258\newhelp\nopdfimagehelp{Texinfo supports .png, .jpg, .jpeg, and .pdf images
     1259with PDF output, and none of those formats could be found.  (.eps cannot
     1260be supported due to the design of the PDF format; use regular TeX (DVI
     1261output) for that.)}
     1262
    11801263\ifpdf
    11811264  \input pdfcolor
    11821265  \pdfcatalog{/PageMode /UseOutlines}%
     1266  % #1 is image name, #2 width (might be empty/whitespace), #3 height (ditto).
    11831267  \def\dopdfimage#1#2#3{%
    1184     \def\imagewidth{#2}%
    1185     \def\imageheight{#3}%
     1268    \def\imagewidth{#2}\setbox0 = \hbox{\ignorespaces #2}%
     1269    \def\imageheight{#3}\setbox2 = \hbox{\ignorespaces #3}%
     1270    %
     1271    % pdftex (and the PDF format) support .png, .jpg, .pdf (among
     1272    % others).  Let's try in that order.
     1273    \let\pdfimgext=\empty
     1274    \begingroup
     1275      \openin 1 #1.png \ifeof 1
     1276        \openin 1 #1.jpg \ifeof 1
     1277          \openin 1 #1.jpeg \ifeof 1
     1278            \openin 1 #1.JPG \ifeof 1
     1279              \openin 1 #1.pdf \ifeof 1
     1280                \errhelp = \nopdfimagehelp
     1281                \errmessage{Could not find image file #1 for pdf}%
     1282              \else
     1283                \gdef\pdfimgext{pdf}%
     1284              \fi
     1285            \else
     1286              \gdef\pdfimgext{JPG}%
     1287            \fi
     1288          \else
     1289            \gdef\pdfimgext{jpeg}%
     1290          \fi
     1291        \else
     1292          \gdef\pdfimgext{jpg}%
     1293        \fi
     1294      \else
     1295        \gdef\pdfimgext{png}%
     1296      \fi
     1297      \closein 1
     1298    \endgroup
     1299    %
    11861300    % without \immediate, pdftex seg faults when the same image is
    11871301    % included twice.  (Version 3.14159-pre-1.0-unofficial-20010704.)
    11881302    \ifnum\pdftexversion < 14
     
    11901304    \else
    11911305      \immediate\pdfximage
    11921306    \fi
    1193       \ifx\empty\imagewidth\else width \imagewidth \fi
    1194       \ifx\empty\imageheight\else height \imageheight \fi
     1307      \ifdim \wd0 >0pt width \imagewidth \fi
     1308      \ifdim \wd2 >0pt height \imageheight \fi
    11951309      \ifnum\pdftexversion<13
    1196          #1.pdf%
     1310         #1.\pdfimgext
    11971311       \else
    1198          {#1.pdf}%
     1312         {#1.\pdfimgext}%
    11991313       \fi
    12001314    \ifnum\pdftexversion < 14 \else
    12011315      \pdfrefximage \pdflastximage
    12021316    \fi}
    12031317  \def\pdfmkdest#1{{%
    1204     % We have to set dummies so commands such as @code in a section title
    1205     % aren't expanded.
     1318    % We have to set dummies so commands such as @code, and characters
     1319    % such as \, aren't expanded when present in a section title.
    12061320    \atdummies
    1207     \normalturnoffactive
    1208     \pdfdest name{#1} xyz%
    1209   }}
    1210   \def\pdfmkpgn#1{#1}
     1321    \activebackslashdouble
     1322    \def\pdfdestname{#1}%
     1323    \backslashparens\pdfdestname
     1324    \pdfdest name{\pdfdestname} xyz%
     1325  }}%
     1326  %
     1327  % used to mark target names; must be expandable.
     1328  \def\pdfmkpgn#1{#1}%
     1329  %
    12111330  \let\linkcolor = \Blue  % was Cyan, but that seems light?
    12121331  \def\endlink{\Black\pdfendlink}
    12131332  % Adding outlines to PDF; macros for calculating structure of outlines
     
    12181337    \advance\tempnum by 1
    12191338    \expandafter\xdef\csname#1\endcsname{\the\tempnum}}
    12201339  %
    1221   % #1 is the section text.  #2 is the pdf expression for the number
    1222   % of subentries (or empty, for subsubsections).  #3 is the node
    1223   % text, which might be empty if this toc entry had no
    1224   % corresponding node.  #4 is the page number.
     1340  % #1 is the section text, which is what will be displayed in the
     1341  % outline by the pdf viewer.  #2 is the pdf expression for the number
     1342  % of subentries (or empty, for subsubsections).  #3 is the node text,
     1343  % which might be empty if this toc entry had no corresponding node.
     1344  % #4 is the page number
    12251345  %
    12261346  \def\dopdfoutline#1#2#3#4{%
    12271347    % Generate a link to the node text if that exists; else, use the
    12281348    % page number.  We could generate a destination for the section
    12291349    % text in the case where a section has no node, but it doesn't
    1230     % seem worthwhile, since most documents are normally structured.
     1350    % seem worth the trouble, since most documents are normally structured.
    12311351    \def\pdfoutlinedest{#3}%
    1232     \ifx\pdfoutlinedest\empty \def\pdfoutlinedest{#4}\fi
     1352    \ifx\pdfoutlinedest\empty
     1353      \def\pdfoutlinedest{#4}%
     1354    \else
     1355      % Doubled backslashes in the name.
     1356      {\activebackslashdouble \xdef\pdfoutlinedest{#3}%
     1357       \backslashparens\pdfoutlinedest}%
     1358    \fi
    12331359    %
    1234     \pdfoutline goto name{\pdfmkpgn{\pdfoutlinedest}}#2{#1}%
     1360    % Also double the backslashes in the display string.
     1361    {\activebackslashdouble \xdef\pdfoutlinetext{#1}%
     1362     \backslashparens\pdfoutlinetext}%
     1363    %
     1364    \pdfoutline goto name{\pdfmkpgn{\pdfoutlinedest}}#2{\pdfoutlinetext}%
    12351365  }
    12361366  %
    12371367  \def\pdfmakeoutlines{%
     
    12721402      \def\unnsecentry{\numsecentry}%
    12731403      \def\unnsubsecentry{\numsubsecentry}%
    12741404      \def\unnsubsubsecentry{\numsubsubsecentry}%
    1275       \input \jobname.toc
     1405      \readdatafile{toc}%
    12761406      %
    12771407      % Read toc second time, this time actually producing the outlines.
    12781408      % The `-' means take the \expnumber as the absolute number of
     
    12981428      % their "best" equivalent, based on the @documentencoding.  Right
    12991429      % now, I guess we'll just let the pdf reader have its way.
    13001430      \indexnofonts
    1301       \turnoffactive
     1431      \setupdatafile
     1432      \catcode`\\=\active \otherbackslash
    13021433      \input \jobname.toc
    13031434    \endgroup
    13041435  }
    13051436  %
    1306   \def\makelinks #1,{%
    1307     \def\params{#1}\def\E{END}%
    1308     \ifx\params\E
    1309       \let\nextmakelinks=\relax
    1310     \else
    1311       \let\nextmakelinks=\makelinks
    1312       \ifnum\lnkcount>0,\fi
    1313       \picknum{#1}%
    1314       \startlink attr{/Border [0 0 0]}
    1315         goto name{\pdfmkpgn{\the\pgn}}%
    1316       \linkcolor #1%
    1317       \advance\lnkcount by 1%
    1318       \endlink
    1319     \fi
    1320     \nextmakelinks
    1321   }
    1322   \def\picknum#1{\expandafter\pn#1}
    1323   \def\pn#1{%
    1324     \def\p{#1}%
    1325     \ifx\p\lbrace
    1326       \let\nextpn=\ppn
    1327     \else
    1328       \let\nextpn=\ppnn
    1329       \def\first{#1}
    1330     \fi
    1331     \nextpn
    1332   }
    1333   \def\ppn#1{\pgn=#1\gobble}
    1334   \def\ppnn{\pgn=\first}
    1335   \def\pdfmklnk#1{\lnkcount=0\makelinks #1,END,}
    13361437  \def\skipspaces#1{\def\PP{#1}\def\D{|}%
    13371438    \ifx\PP\D\let\nextsp\relax
    13381439    \else\let\nextsp\skipspaces
     
    13471448  \else
    13481449    \let \startlink \pdfstartlink
    13491450  \fi
     1451  % make a live url in pdf output.
    13501452  \def\pdfurl#1{%
    13511453    \begingroup
    1352       \normalturnoffactive\def\@{@}%
     1454      % it seems we really need yet another set of dummies; have not
     1455      % tried to figure out what each command should do in the context
     1456      % of @url.  for now, just make @/ a no-op, that's the only one
     1457      % people have actually reported a problem with.
     1458      %
     1459      \normalturnoffactive
     1460      \def\@{@}%
     1461      \let\/=\empty
    13531462      \makevalueexpandable
    13541463      \leavevmode\Red
    13551464      \startlink attr{/Border [0 0 0]}%
     
    14191528% We don't need math for this font style.
    14201529\def\ttsl{\setfontstyle{ttsl}}
    14211530
     1531
    14221532% Default leading.
    14231533\newdimen\textleading  \textleading = 13.2pt
    14241534
     
    14401550  }%
    14411551}
    14421552
     1553
    14431554% Set the font macro #1 to the font named #2, adding on the
    14441555% specified font prefix (normally `cm').
    14451556% #3 is the font's design size, #4 is a scale factor
    14461557\def\setfont#1#2#3#4{\font#1=\fontprefix#2#3 scaled #4}
    14471558
     1559
    14481560% Use cm as the default font prefix.
    14491561% To specify the font prefix, you must define \fontprefix
    14501562% before you read in texinfo.tex.
     
    14681580\def\scshape{csc}
    14691581\def\scbshape{csc}
    14701582
     1583% Definitions for a main text size of 11pt.  This is the default in
     1584% Texinfo.
     1585%
     1586\def\definetextfontsizexi{
    14711587% Text fonts (11.2pt, magstep1).
    14721588\def\textnominalsize{11pt}
    14731589\edef\mainmagstep{\magstephalf}
     
    15811697\font\reducedi=cmmi10
    15821698\font\reducedsy=cmsy10
    15831699
     1700% reset the current fonts
     1701\textfonts
     1702\rm
     1703} % end of 11pt text font size definitions
     1704
     1705
     1706% Definitions to make the main text be 10pt Computer Modern, with
     1707% section, chapter, etc., sizes following suit.  This is for the GNU
     1708% Press printing of the Emacs 22 manual.  Maybe other manuals in the
     1709% future.  Used with @smallbook, which sets the leading to 12pt.
     1710%
     1711\def\definetextfontsizex{%
     1712% Text fonts (10pt).
     1713\def\textnominalsize{10pt}
     1714\edef\mainmagstep{1000}
     1715\setfont\textrm\rmshape{10}{\mainmagstep}
     1716\setfont\texttt\ttshape{10}{\mainmagstep}
     1717\setfont\textbf\bfshape{10}{\mainmagstep}
     1718\setfont\textit\itshape{10}{\mainmagstep}
     1719\setfont\textsl\slshape{10}{\mainmagstep}
     1720\setfont\textsf\sfshape{10}{\mainmagstep}
     1721\setfont\textsc\scshape{10}{\mainmagstep}
     1722\setfont\textttsl\ttslshape{10}{\mainmagstep}
     1723\font\texti=cmmi10 scaled \mainmagstep
     1724\font\textsy=cmsy10 scaled \mainmagstep
     1725
     1726% A few fonts for @defun names and args.
     1727\setfont\defbf\bfshape{10}{\magstephalf}
     1728\setfont\deftt\ttshape{10}{\magstephalf}
     1729\setfont\defttsl\ttslshape{10}{\magstephalf}
     1730\def\df{\let\tentt=\deftt \let\tenbf = \defbf \let\tenttsl=\defttsl \bf}
     1731
     1732% Fonts for indices, footnotes, small examples (9pt).
     1733\def\smallnominalsize{9pt}
     1734\setfont\smallrm\rmshape{9}{1000}
     1735\setfont\smalltt\ttshape{9}{1000}
     1736\setfont\smallbf\bfshape{10}{900}
     1737\setfont\smallit\itshape{9}{1000}
     1738\setfont\smallsl\slshape{9}{1000}
     1739\setfont\smallsf\sfshape{9}{1000}
     1740\setfont\smallsc\scshape{10}{900}
     1741\setfont\smallttsl\ttslshape{10}{900}
     1742\font\smalli=cmmi9
     1743\font\smallsy=cmsy9
     1744
     1745% Fonts for small examples (8pt).
     1746\def\smallernominalsize{8pt}
     1747\setfont\smallerrm\rmshape{8}{1000}
     1748\setfont\smallertt\ttshape{8}{1000}
     1749\setfont\smallerbf\bfshape{10}{800}
     1750\setfont\smallerit\itshape{8}{1000}
     1751\setfont\smallersl\slshape{8}{1000}
     1752\setfont\smallersf\sfshape{8}{1000}
     1753\setfont\smallersc\scshape{10}{800}
     1754\setfont\smallerttsl\ttslshape{10}{800}
     1755\font\smalleri=cmmi8
     1756\font\smallersy=cmsy8
     1757
     1758% Fonts for title page (20.4pt):
     1759\def\titlenominalsize{20pt}
     1760\setfont\titlerm\rmbshape{12}{\magstep3}
     1761\setfont\titleit\itbshape{10}{\magstep4}
     1762\setfont\titlesl\slbshape{10}{\magstep4}
     1763\setfont\titlett\ttbshape{12}{\magstep3}
     1764\setfont\titlettsl\ttslshape{10}{\magstep4}
     1765\setfont\titlesf\sfbshape{17}{\magstep1}
     1766\let\titlebf=\titlerm
     1767\setfont\titlesc\scbshape{10}{\magstep4}
     1768\font\titlei=cmmi12 scaled \magstep3
     1769\font\titlesy=cmsy10 scaled \magstep4
     1770\def\authorrm{\secrm}
     1771\def\authortt{\sectt}
     1772
     1773% Chapter fonts (14.4pt).
     1774\def\chapnominalsize{14pt}
     1775\setfont\chaprm\rmbshape{12}{\magstep1}
     1776\setfont\chapit\itbshape{10}{\magstep2}
     1777\setfont\chapsl\slbshape{10}{\magstep2}
     1778\setfont\chaptt\ttbshape{12}{\magstep1}
     1779\setfont\chapttsl\ttslshape{10}{\magstep2}
     1780\setfont\chapsf\sfbshape{12}{\magstep1}
     1781\let\chapbf\chaprm
     1782\setfont\chapsc\scbshape{10}{\magstep2}
     1783\font\chapi=cmmi12 scaled \magstep1
     1784\font\chapsy=cmsy10 scaled \magstep2
     1785
     1786% Section fonts (12pt).
     1787\def\secnominalsize{12pt}
     1788\setfont\secrm\rmbshape{12}{1000}
     1789\setfont\secit\itbshape{10}{\magstep1}
     1790\setfont\secsl\slbshape{10}{\magstep1}
     1791\setfont\sectt\ttbshape{12}{1000}
     1792\setfont\secttsl\ttslshape{10}{\magstep1}
     1793\setfont\secsf\sfbshape{12}{1000}
     1794\let\secbf\secrm
     1795\setfont\secsc\scbshape{10}{\magstep1}
     1796\font\seci=cmmi12
     1797\font\secsy=cmsy10 scaled \magstep1
     1798
     1799% Subsection fonts (10pt).
     1800\def\ssecnominalsize{10pt}
     1801\setfont\ssecrm\rmbshape{10}{1000}
     1802\setfont\ssecit\itbshape{10}{1000}
     1803\setfont\ssecsl\slbshape{10}{1000}
     1804\setfont\ssectt\ttbshape{10}{1000}
     1805\setfont\ssecttsl\ttslshape{10}{1000}
     1806\setfont\ssecsf\sfbshape{10}{1000}
     1807\let\ssecbf\ssecrm
     1808\setfont\ssecsc\scbshape{10}{1000}
     1809\font\sseci=cmmi10
     1810\font\ssecsy=cmsy10
     1811
     1812% Reduced fonts for @acro in text (9pt).
     1813\def\reducednominalsize{9pt}
     1814\setfont\reducedrm\rmshape{9}{1000}
     1815\setfont\reducedtt\ttshape{9}{1000}
     1816\setfont\reducedbf\bfshape{10}{900}
     1817\setfont\reducedit\itshape{9}{1000}
     1818\setfont\reducedsl\slshape{9}{1000}
     1819\setfont\reducedsf\sfshape{9}{1000}
     1820\setfont\reducedsc\scshape{10}{900}
     1821\setfont\reducedttsl\ttslshape{10}{900}
     1822\font\reducedi=cmmi9
     1823\font\reducedsy=cmsy9
     1824
     1825% reduce space between paragraphs
     1826\divide\parskip by 2
     1827
     1828% reset the current fonts
     1829\textfonts
     1830\rm
     1831} % end of 10pt text font size definitions
     1832
     1833
     1834% We provide the user-level command
     1835%   @fonttextsize 10
     1836% (or 11) to redefine the text font size.  pt is assumed.
     1837%
     1838\def\xword{10}
     1839\def\xiword{11}
     1840%
     1841\parseargdef\fonttextsize{%
     1842  \def\textsizearg{#1}%
     1843  \wlog{doing @fonttextsize \textsizearg}%
     1844  %
     1845  % Set \globaldefs so that documents can use this inside @tex, since
     1846  % makeinfo 4.8 does not support it, but we need it nonetheless.
     1847  %
     1848 \begingroup \globaldefs=1
     1849  \ifx\textsizearg\xword \definetextfontsizex
     1850  \else \ifx\textsizearg\xiword \definetextfontsizexi
     1851  \else
     1852    \errhelp=\EMsimple
     1853    \errmessage{@fonttextsize only supports `10' or `11', not `\textsizearg'}
     1854  \fi\fi
     1855 \endgroup
     1856}
     1857
     1858
    15841859% In order for the font changes to affect most math symbols and letters,
    15851860% we have to define the \textfont of the standard families.  Since
    15861861% texinfo doesn't allow for producing subscripts and superscripts except
     
    16911966
    16921967% Set up the default fonts, so we can use them for creating boxes.
    16931968%
    1694 \textfonts \rm
     1969\definetextfontsizexi
    16951970
    16961971% Define these so they can be easily changed for other fonts.
    16971972\def\angleleft{$\langle$}
     
    17492024% sometimes \x has an active definition that messes things up.
    17502025%
    17512026\catcode`@=11
    1752   \def\frenchspacing{%
     2027  \def\plainfrenchspacing{%
    17532028    \sfcode\dotChar  =\@m \sfcode\questChar=\@m \sfcode\exclamChar=\@m
    17542029    \sfcode\colonChar=\@m \sfcode\semiChar =\@m \sfcode\commaChar =\@m
     2030    \def\endofsentencespacefactor{1000}% for @. and friends
     2031  }
     2032  \def\plainnonfrenchspacing{%
     2033    \sfcode`\.3000\sfcode`\?3000\sfcode`\!3000
     2034    \sfcode`\:2000\sfcode`\;1500\sfcode`\,1250
     2035    \def\endofsentencespacefactor{3000}% for @. and friends
    17552036  }
    17562037\catcode`@=\other
     2038\def\endofsentencespacefactor{3000}% default
    17572039
    17582040\def\t#1{%
    1759   {\tt \rawbackslash \frenchspacing #1}%
     2041  {\tt \rawbackslash \plainfrenchspacing #1}%
    17602042  \null
    17612043}
    17622044\def\samp#1{`\tclose{#1}'\null}
     
    17682050     \hbox{\raise0.4pt\hbox{\vphantom{\angleleft}}#1}}%
    17692051    \kern-0.4pt\hrule}%
    17702052  \kern-.06em\raise0.4pt\hbox{\angleright}}}}
     2053\def\key #1{{\nohyphenation \uppercase{#1}}\null}
    17712054% The old definition, with no lozenge:
    17722055%\def\key #1{{\ttsl \nohyphenation \uppercase{#1}}\null}
    17732056\def\ctrl #1{{\tt \rawbackslash \hat}#1}
     
    17932076    \nohyphenation
    17942077    %
    17952078    \rawbackslash
    1796     \frenchspacing
     2079    \plainfrenchspacing
    17972080    #1%
    17982081  }%
    17992082  \null
     
    18092092% and arrange explicitly to hyphenate at a dash.
    18102093%  -- rms.
    18112094{
    1812   \catcode`\-=\active
    1813   \catcode`\_=\active
     2095  \catcode`\-=\active \catcode`\_=\active
     2096  \catcode`\'=\active \catcode`\`=\active
    18142097  %
    18152098  \global\def\code{\begingroup
    1816     \catcode`\-=\active \let-\codedash
    1817     \catcode`\_=\active \let_\codeunder
     2099    \catcode\rquoteChar=\active \catcode\lquoteChar=\active
     2100    \let'\codequoteright \let`\codequoteleft
     2101    %
     2102    \catcode\dashChar=\active  \catcode\underChar=\active
     2103    \ifallowcodebreaks
     2104     \let-\codedash
     2105     \let_\codeunder
     2106    \else
     2107     \let-\realdash
     2108     \let_\realunder
     2109    \fi
    18182110    \codex
    18192111  }
    18202112}
     
    18342126}
    18352127\def\codex #1{\tclose{#1}\endgroup}
    18362128
     2129% An additional complication: the above will allow breaks after, e.g.,
     2130% each of the four underscores in __typeof__.  This is undesirable in
     2131% some manuals, especially if they don't have long identifiers in
     2132% general.  @allowcodebreaks provides a way to control this.
     2133%
     2134\newif\ifallowcodebreaks  \allowcodebreakstrue
     2135
     2136\def\keywordtrue{true}
     2137\def\keywordfalse{false}
     2138
     2139\parseargdef\allowcodebreaks{%
     2140  \def\txiarg{#1}%
     2141  \ifx\txiarg\keywordtrue
     2142    \allowcodebreakstrue
     2143  \else\ifx\txiarg\keywordfalse
     2144    \allowcodebreaksfalse
     2145  \else
     2146    \errhelp = \EMsimple
     2147    \errmessage{Unknown @allowcodebreaks option `\txiarg'}%
     2148  \fi\fi
     2149}
     2150
    18372151% @kbd is like @code, except that if the argument is just one @key command,
    18382152% then @kbd has no effect.
    18392153
     
    18412155%   `example' (@kbd uses ttsl only inside of @example and friends),
    18422156%   or `code' (@kbd uses normal tty font always).
    18432157\parseargdef\kbdinputstyle{%
    1844   \def\arg{#1}%
    1845   \ifx\arg\worddistinct
     2158  \def\txiarg{#1}%
     2159  \ifx\txiarg\worddistinct
    18462160    \gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\ttsl}%
    1847   \else\ifx\arg\wordexample
     2161  \else\ifx\txiarg\wordexample
    18482162    \gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\tt}%
    1849   \else\ifx\arg\wordcode
     2163  \else\ifx\txiarg\wordcode
    18502164    \gdef\kbdexamplefont{\tt}\gdef\kbdfont{\tt}%
    18512165  \else
    18522166    \errhelp = \EMsimple
    1853     \errmessage{Unknown @kbdinputstyle option `\arg'}%
     2167    \errmessage{Unknown @kbdinputstyle option `\txiarg'}%
    18542168  \fi\fi\fi
    18552169}
    18562170\def\worddistinct{distinct}
     
    19622276%
    19632277\def\abbr#1{\doabbr #1,,\finish}
    19642278\def\doabbr#1,#2,#3\finish{%
    1965   {\frenchspacing #1}%
     2279  {\plainfrenchspacing #1}%
    19662280  \def\temp{#2}%
    19672281  \ifx\temp\empty \else
    19682282    \space ({\unsepspaces \ignorespaces \temp \unskip})%
     
    20002314\def\eurofont{%
    20012315  % We set the font at each command, rather than predefining it in
    20022316  % \textfonts and the other font-switching commands, so that
    2003   % installations which never need the symbold don't have to have the
     2317  % installations which never need the symbol don't have to have the
    20042318  % font installed.
    20052319  %
    20062320  % There is only one designed size (nominal 10pt), so we always scale
     
    20312345    }$%
    20322346}
    20332347
     2348% @textdegree - the normal degrees sign.
     2349%
     2350\def\textdegree{$^\circ$}
     2351
    20342352% Laurent Siebenmann reports \Orb undefined with:
    20352353%  Textures 1.7.7 (preloaded format=plain 93.10.14)  (68K)  16 APR 2004 02:38
    20362354% so we'll define it if necessary.
     
    22022520  %
    22032521  % Leave some space for the footline.  Hopefully ok to assume
    22042522  % @evenfooting will not be used by itself.
    2205   \global\advance\pageheight by -\baselineskip
    2206   \global\advance\vsize by -\baselineskip
     2523  \global\advance\pageheight by -12pt
     2524  \global\advance\vsize by -12pt
    22072525}
    22082526
    22092527\parseargdef\everyfooting{\oddfootingxxx{#1}\evenfootingxxx{#1}}
     
    28623180
    28633181\def\doignore#1{\begingroup
    28643182  % Scan in ``verbatim'' mode:
     3183  \obeylines
    28653184  \catcode`\@ = \other
    28663185  \catcode`\{ = \other
    28673186  \catcode`\} = \other
     
    28823201  \gdef\dodoignore#1{%
    28833202    % #1 contains the command name as a string, e.g., `ifinfo'.
    28843203    %
    2885     % Define a command to find the next `@end #1', which must be on a line
    2886     % by itself.
    2887     \long\def\doignoretext##1^^M@end #1{\doignoretextyyy##1^^M@#1\_STOP_}%
     3204    % Define a command to find the next `@end #1'.
     3205    \long\def\doignoretext##1^^M@end #1{%
     3206      \doignoretextyyy##1^^M@#1\_STOP_}%
     3207    %
    28883208    % And this command to find another #1 command, at the beginning of a
    28893209    % line.  (Otherwise, we would consider a line `@c @ifset', for
    28903210    % example, to count as an @ifset for nesting.)
    28913211    \long\def\doignoretextyyy##1^^M@#1##2\_STOP_{\doignoreyyy{##2}\_STOP_}%
    28923212    %
    28933213    % And now expand that command.
    2894     \obeylines %
    28953214    \doignoretext ^^M%
    28963215  }%
    28973216}
     
    29213240}
    29223241
    29233242% Finish off ignored text.
    2924 \def\enddoignore{\endgroup\ignorespaces}
     3243{ \obeylines%
     3244  % Ignore anything after the last `@end #1'; this matters in verbatim
     3245  % environments, where otherwise the newline after an ignored conditional
     3246  % would result in a blank line in the output.
     3247  \gdef\enddoignore#1^^M{\endgroup\ignorespaces}%
     3248}
    29253249
    29263250
    29273251% @set VAR sets the variable VAR to an empty value.
     
    31213445% we have to laboriously prevent expansion for those that we don't.
    31223446%
    31233447\def\indexdummies{%
     3448  \escapechar = `\\     % use backslash in output files.
    31243449  \def\@{@}% change to @@ when we switch to @ as escape char in index files.
    31253450  \def\ {\realbackslash\space }%
     3451  %
    31263452  % Need these in case \tex is in effect and \{ is a \delimiter again.
    31273453  % But can't use \lbracecmd and \rbracecmd because texindex assumes
    31283454  % braces and backslashes are used only as delimiters.
    31293455  \let\{ = \mylbrace
    31303456  \let\} = \myrbrace
    31313457  %
    3132   % \definedummyword defines \#1 as \realbackslash #1\space, thus
    3133   % effectively preventing its expansion.  This is used only for control
    3134   % words, not control letters, because the \space would be incorrect
    3135   % for control characters, but is needed to separate the control word
    3136   % from whatever follows.
    3137   %
    3138   % For control letters, we have \definedummyletter, which omits the
    3139   % space.
    3140   %
    3141   % These can be used both for control words that take an argument and
    3142   % those that do not.  If it is followed by {arg} in the input, then
    3143   % that will dutifully get written to the index (or wherever).
    3144   %
    3145   \def\definedummyword##1{%
    3146     \expandafter\def\csname ##1\endcsname{\realbackslash ##1\space}%
    3147   }%
    3148   \def\definedummyletter##1{%
    3149     \expandafter\def\csname ##1\endcsname{\realbackslash ##1}%
    3150   }%
    3151   \let\definedummyaccent\definedummyletter
     3458  % I don't entirely understand this, but when an index entry is
     3459  % generated from a macro call, the \endinput which \scanmacro inserts
     3460  % causes processing to be prematurely terminated.  This is,
     3461  % apparently, because \indexsorttmp is fully expanded, and \endinput
     3462  % is an expandable command.  The redefinition below makes \endinput
     3463  % disappear altogether for that purpose -- although logging shows that
     3464  % processing continues to some further point.  On the other hand, it
     3465  % seems \endinput does not hurt in the printed index arg, since that
     3466  % is still getting written without apparent harm.
     3467  %
     3468  % Sample source (mac-idx3.tex, reported by Graham Percival to
     3469  % help-texinfo, 22may06):
     3470  % @macro funindex {WORD}
     3471  % @findex xyz
     3472  % @end macro
     3473  % ...
     3474  % @funindex commtest
     3475  %
     3476  % The above is not enough to reproduce the bug, but it gives the flavor.
     3477  %
     3478  % Sample whatsit resulting:
     3479  % .@write3{\entry{xyz}{@folio }{@code {xyz@endinput }}}
     3480  %
     3481  % So:
     3482  \let\endinput = \empty
    31523483  %
    31533484  % Do the redefinitions.
    31543485  \commondummies
    31553486}
    31563487
    3157 % For the aux file, @ is the escape character.  So we want to redefine
    3158 % everything using @ instead of \realbackslash.  When everything uses
    3159 % @, this will be simpler.
     3488% For the aux and toc files, @ is the escape character.  So we want to
     3489% redefine everything using @ as the escape character (instead of
     3490% \realbackslash, still used for index files).  When everything uses @,
     3491% this will be simpler.
    31603492%
    31613493\def\atdummies{%
    31623494  \def\@{@@}%
     
    31643496  \let\{ = \lbraceatcmd
    31653497  \let\} = \rbraceatcmd
    31663498  %
    3167   % (See comments in \indexdummies.)
    3168   \def\definedummyword##1{%
    3169     \expandafter\def\csname ##1\endcsname{@##1\space}%
    3170   }%
    3171   \def\definedummyletter##1{%
    3172     \expandafter\def\csname ##1\endcsname{@##1}%
    3173   }%
    3174   \let\definedummyaccent\definedummyletter
    3175   %
    31763499  % Do the redefinitions.
    31773500  \commondummies
     3501  \otherbackslash
    31783502}
    31793503
    3180 % Called from \indexdummies and \atdummies.  \definedummyword and
    3181 % \definedummyletter must be defined first.
     3504% Called from \indexdummies and \atdummies.
    31823505%
    31833506\def\commondummies{%
    31843507  %
    3185   \normalturnoffactive
     3508  % \definedummyword defines \#1 as \string\#1\space, thus effectively
     3509  % preventing its expansion.  This is used only for control% words,
     3510  % not control letters, because the \space would be incorrect for
     3511  % control characters, but is needed to separate the control word
     3512  % from whatever follows.
     3513  %
     3514  % For control letters, we have \definedummyletter, which omits the
     3515  % space.
     3516  %
     3517  % These can be used both for control words that take an argument and
     3518  % those that do not.  If it is followed by {arg} in the input, then
     3519  % that will dutifully get written to the index (or wherever).
     3520  %
     3521  \def\definedummyword  ##1{\def##1{\string##1\space}}%
     3522  \def\definedummyletter##1{\def##1{\string##1}}%
     3523  \let\definedummyaccent\definedummyletter
    31863524  %
    31873525  \commondummiesnofonts
    31883526  %
    3189   \definedummyletter{_}%
     3527  \definedummyletter\_%
    31903528  %
    31913529  % Non-English letters.
    3192   \definedummyword{AA}%
    3193   \definedummyword{AE}%
    3194   \definedummyword{L}%
    3195   \definedummyword{OE}%
    3196   \definedummyword{O}%
    3197   \definedummyword{aa}%
    3198   \definedummyword{ae}%
    3199   \definedummyword{l}%
    3200   \definedummyword{oe}%
    3201   \definedummyword{o}%
    3202   \definedummyword{ss}%
    3203   \definedummyword{exclamdown}%
    3204   \definedummyword{questiondown}%
    3205   \definedummyword{ordf}%
    3206   \definedummyword{ordm}%
     3530  \definedummyword\AA
     3531  \definedummyword\AE
     3532  \definedummyword\L
     3533  \definedummyword\OE
     3534  \definedummyword\O
     3535  \definedummyword\aa
     3536  \definedummyword\ae
     3537  \definedummyword\l
     3538  \definedummyword\oe
     3539  \definedummyword\o
     3540  \definedummyword\ss
     3541  \definedummyword\exclamdown
     3542  \definedummyword\questiondown
     3543  \definedummyword\ordf
     3544  \definedummyword\ordm
    32073545  %
    32083546  % Although these internal commands shouldn't show up, sometimes they do.
    3209   \definedummyword{bf}%
    3210   \definedummyword{gtr}%
    3211   \definedummyword{hat}%
    3212   \definedummyword{less}%
    3213   \definedummyword{sf}%
    3214   \definedummyword{sl}%
    3215   \definedummyword{tclose}%
    3216   \definedummyword{tt}%
     3547  \definedummyword\bf
     3548  \definedummyword\gtr
     3549  \definedummyword\hat
     3550  \definedummyword\less
     3551  \definedummyword\sf
     3552  \definedummyword\sl
     3553  \definedummyword\tclose
     3554  \definedummyword\tt
    32173555  %
    3218   \definedummyword{LaTeX}%
    3219   \definedummyword{TeX}%
     3556  \definedummyword\LaTeX
     3557  \definedummyword\TeX
    32203558  %
    32213559  % Assorted special characters.
    3222   \definedummyword{bullet}%
    3223   \definedummyword{comma}%
    3224   \definedummyword{copyright}%
    3225   \definedummyword{registeredsymbol}%
    3226   \definedummyword{dots}%
    3227   \definedummyword{enddots}%
    3228   \definedummyword{equiv}%
    3229   \definedummyword{error}%
    3230   \definedummyword{euro}%
    3231   \definedummyword{expansion}%
    3232   \definedummyword{minus}%
    3233   \definedummyword{pounds}%
    3234   \definedummyword{point}%
    3235   \definedummyword{print}%
    3236   \definedummyword{result}%
     3560  \definedummyword\bullet
     3561  \definedummyword\comma
     3562  \definedummyword\copyright
     3563  \definedummyword\registeredsymbol
     3564  \definedummyword\dots
     3565  \definedummyword\enddots
     3566  \definedummyword\equiv
     3567  \definedummyword\error
     3568  \definedummyword\euro
     3569  \definedummyword\expansion
     3570  \definedummyword\minus
     3571  \definedummyword\pounds
     3572  \definedummyword\point
     3573  \definedummyword\print
     3574  \definedummyword\result
     3575  \definedummyword\textdegree
     3576  %
     3577  % We want to disable all macros so that they are not expanded by \write.
     3578  \macrolist
     3579  %
     3580  \normalturnoffactive
    32373581  %
    32383582  % Handle some cases of @value -- where it does not contain any
    32393583  % (non-fully-expandable) commands.
    32403584  \makevalueexpandable
    3241   %
    3242   % Normal spaces, not active ones.
    3243   \unsepspaces
    3244   %
    3245   % No macro expansion.
    3246   \turnoffmacros
    32473585}
    32483586
    32493587% \commondummiesnofonts: common to \commondummies and \indexnofonts.
    32503588%
    3251 % Better have this without active chars.
    3252 {
    3253   \catcode`\~=\other
    3254   \gdef\commondummiesnofonts{%
    3255     % Control letters and accents.
    3256     \definedummyletter{!}%
    3257     \definedummyaccent{"}%
    3258     \definedummyaccent{'}%
    3259     \definedummyletter{*}%
    3260     \definedummyaccent{,}%
    3261     \definedummyletter{.}%
    3262     \definedummyletter{/}%
    3263     \definedummyletter{:}%
    3264     \definedummyaccent{=}%
    3265     \definedummyletter{?}%
    3266     \definedummyaccent{^}%
    3267     \definedummyaccent{`}%
    3268     \definedummyaccent{~}%
    3269     \definedummyword{u}%
    3270     \definedummyword{v}%
    3271     \definedummyword{H}%
    3272     \definedummyword{dotaccent}%
    3273     \definedummyword{ringaccent}%
    3274     \definedummyword{tieaccent}%
    3275     \definedummyword{ubaraccent}%
    3276     \definedummyword{udotaccent}%
    3277     \definedummyword{dotless}%
    3278     %
    3279     % Texinfo font commands.
    3280     \definedummyword{b}%
    3281     \definedummyword{i}%
    3282     \definedummyword{r}%
    3283     \definedummyword{sc}%
    3284     \definedummyword{t}%
    3285     %
    3286     % Commands that take arguments.
    3287     \definedummyword{acronym}%
    3288     \definedummyword{cite}%
    3289     \definedummyword{code}%
    3290     \definedummyword{command}%
    3291     \definedummyword{dfn}%
    3292     \definedummyword{emph}%
    3293     \definedummyword{env}%
    3294     \definedummyword{file}%
    3295     \definedummyword{kbd}%
    3296     \definedummyword{key}%
    3297     \definedummyword{math}%
    3298     \definedummyword{option}%
    3299     \definedummyword{samp}%
    3300     \definedummyword{strong}%
    3301     \definedummyword{tie}%
    3302     \definedummyword{uref}%
    3303     \definedummyword{url}%
    3304     \definedummyword{var}%
    3305     \definedummyword{verb}%
    3306     \definedummyword{w}%
    3307   }
     3589\def\commondummiesnofonts{%
     3590  % Control letters and accents.
     3591  \definedummyletter\!%
     3592  \definedummyaccent\"%
     3593  \definedummyaccent\'%
     3594  \definedummyletter\*%
     3595  \definedummyaccent\,%
     3596  \definedummyletter\.%
     3597  \definedummyletter\/%
     3598  \definedummyletter\:%
     3599  \definedummyaccent\=%
     3600  \definedummyletter\?%
     3601  \definedummyaccent\^%
     3602  \definedummyaccent\`%
     3603  \definedummyaccent\~%
     3604  \definedummyword\u
     3605  \definedummyword\v
     3606  \definedummyword\H
     3607  \definedummyword\dotaccent
     3608  \definedummyword\ringaccent
     3609  \definedummyword\tieaccent
     3610  \definedummyword\ubaraccent
     3611  \definedummyword\udotaccent
     3612  \definedummyword\dotless
     3613  %
     3614  % Texinfo font commands.
     3615  \definedummyword\b
     3616  \definedummyword\i
     3617  \definedummyword\r
     3618  \definedummyword\sc
     3619  \definedummyword\t
     3620  %
     3621  % Commands that take arguments.
     3622  \definedummyword\acronym
     3623  \definedummyword\cite
     3624  \definedummyword\code
     3625  \definedummyword\command
     3626  \definedummyword\dfn
     3627  \definedummyword\emph
     3628  \definedummyword\env
     3629  \definedummyword\file
     3630  \definedummyword\kbd
     3631  \definedummyword\key
     3632  \definedummyword\math
     3633  \definedummyword\option
     3634  \definedummyword\pxref
     3635  \definedummyword\ref
     3636  \definedummyword\samp
     3637  \definedummyword\strong
     3638  \definedummyword\tie
     3639  \definedummyword\uref
     3640  \definedummyword\url
     3641  \definedummyword\var
     3642  \definedummyword\verb
     3643  \definedummyword\w
     3644  \definedummyword\xref
    33083645}
    33093646
    33103647% \indexnofonts is used when outputting the strings to sort the index
     
    33143651%
    33153652\def\indexnofonts{%
    33163653  % Accent commands should become @asis.
    3317   \def\definedummyaccent##1{%
    3318     \expandafter\let\csname ##1\endcsname\asis
    3319   }%
     3654  \def\definedummyaccent##1{\let##1\asis}%
    33203655  % We can just ignore other control letters.
    3321   \def\definedummyletter##1{%
    3322     \expandafter\def\csname ##1\endcsname{}%
    3323   }%
     3656  \def\definedummyletter##1{\let##1\empty}%
    33243657  % Hopefully, all control words can become @asis.
    33253658  \let\definedummyword\definedummyaccent
    33263659  %
     
    33733706  \def\point{.}%
    33743707  \def\print{-|}%
    33753708  \def\result{=>}%
     3709  \def\textdegree{degrees}%
    33763710  %
    3377   % Don't write macro names.
    3378   \emptyusermacros
     3711  % We need to get rid of all macros, leaving only the arguments (if present).
     3712  % Of course this is not nearly correct, but it is the best we can do for now.
     3713  % makeinfo does not expand macros in the argument to @deffn, which ends up
     3714  % writing an index entry, and texindex isn't prepared for an index sort entry
     3715  % that starts with \.
     3716  %
     3717  % Since macro invocations are followed by braces, we can just redefine them
     3718  % to take a single TeX argument.  The case of a macro invocation that
     3719  % goes to end-of-line is not handled.
     3720  %
     3721  \macrolist
    33793722}
    33803723
    33813724\let\indexbackslash=0  %overridden during \printindex.
     
    34223765  %
    34233766  % Remember, we are within a group.
    34243767  \indexdummies % Must do this here, since \bf, etc expand at this stage
    3425   \escapechar=`\\
    34263768  \def\backslashcurfont{\indexbackslash}% \indexbackslash isn't defined now
    34273769      % so it will be output as is; and it will print as backslash.
    34283770  %
     
    37134055  \endgroup
    37144056}
    37154057
    3716 % Like \dotfill except takes at least 1 em.
     4058% Like plain.tex's \dotfill, except uses up at least 1 em.
    37174059\def\indexdotfill{\cleaders
    3718   \hbox{$\mathsurround=0pt \mkern1.5mu ${\it .}$ \mkern1.5mu$}\hskip 1em plus 1fill}
     4060  \hbox{$\mathsurround=0pt \mkern1.5mu.\mkern1.5mu$}\hskip 1em plus 1fill}
    37194061
    37204062\def\primary #1{\line{#1\hfil}}
    37214063
     
    42894631    \ifx\temptype\Ynothingkeyword
    42904632      \setbox0 = \hbox{}%
    42914633      \def\toctype{unnchap}%
    4292       \def\thischapter{#1}%
     4634      \gdef\thischapternum{}%
     4635      \gdef\thischapter{#1}%
    42934636    \else\ifx\temptype\Yomitfromtockeyword
    42944637      \setbox0 = \hbox{}% contents like unnumbered, but no toc entry
    42954638      \def\toctype{omit}%
    4296       \xdef\thischapter{}%
     4639      \gdef\thischapternum{}%
     4640      \gdef\thischapter{}%
    42974641    \else\ifx\temptype\Yappendixkeyword
    42984642      \setbox0 = \hbox{\putwordAppendix{} #3\enspace}%
    42994643      \def\toctype{app}%
     4644      \xdef\thischapternum{\appendixletter}%
    43004645      % We don't substitute the actual chapter name into \thischapter
    43014646      % because we don't want its macros evaluated now.  And we don't
    43024647      % use \thissection because that changes with each section.
     
    43064651    \else
    43074652      \setbox0 = \hbox{#3\enspace}%
    43084653      \def\toctype{numchap}%
     4654      \xdef\thischapternum{\the\chapno}%
    43094655      \xdef\thischapter{\putwordChapter{} \the\chapno:
    43104656                        \noexpand\thischaptername}%
    43114657    \fi\fi\fi
     
    44174763      \gdef\thissection{#1}%
    44184764    \fi\fi\fi
    44194765    %
    4420     % Write the toc entry (before \donoderef).  See comments in \chfplain.
     4766    % Write the toc entry (before \donoderef).  See comments in \chapmacro.
    44214767    \writetocentry{\toctype\sectionlevel}{#1}{#4}%
    44224768    %
    44234769    % Write the node reference (= pdf destination for pdftex).
    4424     % Again, see comments in \chfplain.
     4770    % Again, see comments in \chapmacro.
    44254771    \donoderef{#3}%
    44264772    %
     4773    % Interline glue will be inserted when the vbox is completed.
     4774    % That glue will be a valid breakpoint for the page, since it'll be
     4775    % preceded by a whatsit (usually from the \donoderef, or from the
     4776    % \writetocentry if there was no node).  We don't want to allow that
     4777    % break, since then the whatsits could end up on page n while the
     4778    % section is on page n+1, thus toc/etc. are wrong.  Debian bug 276000.
     4779    \nobreak
     4780    %
    44274781    % Output the actual section heading.
    44284782    \vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \raggedright
    44294783          \hangindent=\wd0  % zero if no section number
     
    44824836    \fi
    44834837    %
    44844838    \iflinks
    4485       \toks0 = {#2}%
    4486       \toks2 = \expandafter{\lastnode}%
    4487       \edef\temp{\write\tocfile{\realbackslash #1entry{\the\toks0}{#3}%
    4488                                {\the\toks2}{\noexpand\folio}}}%
    4489       \temp
     4839      {\atdummies
     4840       \edef\temp{%
     4841         \write\tocfile{@#1entry{#2}{#3}{\lastnode}{\noexpand\folio}}}%
     4842       \temp
     4843      }%
    44904844    \fi
    44914845  \fi
    44924846  %
     
    44994853  \ifpdf \global\pdfmakepagedesttrue \fi
    45004854}
    45014855
     4856
     4857% These characters do not print properly in the Computer Modern roman
     4858% fonts, so we must take special care.  This is more or less redundant
     4859% with the Texinfo input format setup at the end of this file.
     4860%
     4861\def\activecatcodes{%
     4862  \catcode`\"=\active
     4863  \catcode`\$=\active
     4864  \catcode`\<=\active
     4865  \catcode`\>=\active
     4866  \catcode`\\=\active
     4867  \catcode`\^=\active
     4868  \catcode`\_=\active
     4869  \catcode`\|=\active
     4870  \catcode`\~=\active
     4871}
     4872
     4873
     4874% Read the toc file, which is essentially Texinfo input.
     4875\def\readtocfile{%
     4876  \setupdatafile
     4877  \activecatcodes
     4878  \input \jobname.toc
     4879}
     4880
    45024881\newskip\contentsrightmargin \contentsrightmargin=1in
    45034882\newcount\savepageno
    45044883\newcount\lastnegativepageno \lastnegativepageno = -1
     
    45204899  %
    45214900  \savepageno = \pageno
    45224901  \begingroup                  % Set up to handle contents files properly.
    4523     \catcode`\\=0  \catcode`\{=1  \catcode`\}=2  \catcode`\@=11
    4524     % We can't do this, because then an actual ^ in a section
    4525     % title fails, e.g., @chapter ^ -- exponentiation.  --karl, 9jul97.
    4526     %\catcode`\^=7 % to see ^^e4 as \"a etc. juha@piuha.ydi.vtt.fi
    4527     \raggedbottom             % Worry more about breakpoints than the bottom.
     4902    \raggedbottom              % Worry more about breakpoints than the bottom.
    45284903    \advance\hsize by -\contentsrightmargin % Don't use the full line length.
    45294904    %
    45304905    % Roman numerals for page numbers.
     
    45374912  \startcontents{\putwordTOC}%
    45384913    \openin 1 \jobname.toc
    45394914    \ifeof 1 \else
    4540       \input \jobname.toc
     4915      \readtocfile
    45414916    \fi
    45424917    \vfill \eject
    45434918    \contentsalignmacro % in case @setchapternewpage odd is in effect
     
    45754950    \let\unnsubsubsecentry = \numsecentry
    45764951    \openin 1 \jobname.toc
    45774952    \ifeof 1 \else
    4578       \input \jobname.toc
     4953      \readtocfile
    45794954    \fi
    45804955    \closein 1
    45814956    \vfill \eject
     
    47175092{\tentt \global\dimen0 = 3em}% Width of the box.
    47185093\dimen2 = .55pt % Thickness of rules
    47195094% The text. (`r' is open on the right, `e' somewhat less so on the left.)
    4720 \setbox0 = \hbox{\kern-.75pt \tensf error\kern-1.5pt}
     5095\setbox0 = \hbox{\kern-.75pt \reducedsf error\kern-1.5pt}
    47215096%
    47225097\setbox\errorbox=\hbox to \dimen0{\hfil
    47235098   \hsize = \dimen0 \advance\hsize by -5.8pt % Space to left+right.
     
    47655140  \let\/=\ptexslash
    47665141  \let\*=\ptexstar
    47675142  \let\t=\ptext
     5143  \let\frenchspacing=\plainfrenchspacing
    47685144  %
    47695145  \def\endldots{\mathinner{\ldots\ldots\ldots\ldots}}%
    47705146  \def\enddots{\relax\ifmmode\endldots\else$\mathsurround=0pt \endldots\,$\fi}%
     
    48105186
    48115187\let\afterenvbreak = \aboveenvbreak
    48125188
    4813 % \nonarrowing is a flag.  If "set", @lisp etc don't narrow margins.
     5189% \nonarrowing is a flag.  If "set", @lisp etc don't narrow margins; it will
     5190% also clear it, so that its embedded environments do the narrowing again.
    48145191\let\nonarrowing=\relax
    48155192
    48165193% @cartouche ... @end cartouche: draw rectangle w/rounded corners around
     
    48475224                                % each corner char, and rule thickness
    48485225  \normbskip=\baselineskip \normpskip=\parskip \normlskip=\lineskip
    48495226  % Flag to tell @lisp, etc., not to narrow margin.
    4850   \let\nonarrowing=\comment
     5227  \let\nonarrowing = t%
    48515228  \vbox\bgroup
    48525229      \baselineskip=0pt\parskip=0pt\lineskip=0pt
    48535230      \carttop
     
    48875264  \parskip = 0pt
    48885265  \parindent = 0pt
    48895266  \emergencystretch = 0pt % don't try to avoid overfull boxes
    4890   % @cartouche defines \nonarrowing to inhibit narrowing
    4891   % at next level down.
    48925267  \ifx\nonarrowing\relax
    48935268    \advance \leftskip by \lispnarrowing
    48945269    \exdentamount=\lispnarrowing
     5270  \else
     5271    \let\nonarrowing = \relax
    48955272  \fi
    48965273  \let\exdent=\nofillexdent
    48975274}
     
    49385315%
    49395316\maketwodispenvs {lisp}{example}{%
    49405317  \nonfillstart
    4941   \tt
     5318  \tt\quoteexpand
    49425319  \let\kbdfont = \kbdexamplefont % Allow @kbd to do something special.
    49435320  \gobble       % eat return
    49445321}
    4945 
    49465322% @display/@smalldisplay: same as @lisp except keep current font.
    49475323%
    49485324\makedispenv {display}{%
     
    49915367    \advance\leftskip by \lispnarrowing
    49925368    \advance\rightskip by \lispnarrowing
    49935369    \exdentamount = \lispnarrowing
     5370  \else
    49945371    \let\nonarrowing = \relax
    49955372  \fi
    49965373  \parsearg\quotationlabel
     
    50695446\newdimen\tabw \setbox0=\hbox{\tt\space} \tabw=8\wd0 % tab amount
    50705447%
    50715448\def\starttabbox{\setbox0=\hbox\bgroup}
     5449
     5450% Allow an option to not replace quotes with a regular directed right
     5451% quote/apostrophe (char 0x27), but instead use the undirected quote
     5452% from cmtt (char 0x0d).  The undirected quote is ugly, so don't make it
     5453% the default, but it works for pasting with more pdf viewers (at least
     5454% evince), the lilypond developers report.  xpdf does work with the
     5455% regular 0x27. 
     5456%
     5457\def\codequoteright{%
     5458  \expandafter\ifx\csname SETcodequoteundirected\endcsname\relax
     5459    '%
     5460  \else
     5461    \char'15
     5462  \fi
     5463}
     5464%
     5465% and a similar option for the left quote char vs. a grave accent.
     5466% Modern fonts display ASCII 0x60 as a grave accent, so some people like
     5467% the code environments to do likewise.
     5468%
     5469\def\codequoteleft{%
     5470  \expandafter\ifx\csname SETcodequotebacktick\endcsname\relax
     5471    `%
     5472  \else
     5473    \char'22
     5474  \fi
     5475}
     5476%
    50725477\begingroup
    50735478  \catcode`\^^I=\active
    50745479  \gdef\tabexpand{%
     
    50815486      \wd0=\dimen0 \box0 \starttabbox
    50825487    }%
    50835488  }
     5489  \catcode`\'=\active
     5490  \gdef\rquoteexpand{\catcode\rquoteChar=\active \def'{\codequoteright}}%
     5491  %
     5492  \catcode`\`=\active
     5493  \gdef\lquoteexpand{\catcode\lquoteChar=\active \def`{\codequoteleft}}%
     5494  %
     5495  \gdef\quoteexpand{\rquoteexpand \lquoteexpand}%
    50845496\endgroup
     5497
     5498% start the verbatim environment.
    50855499\def\setupverbatim{%
     5500  \let\nonarrowing = t%
    50865501  \nonfillstart
    5087   \advance\leftskip by -\defbodyindent
    50885502  % Easiest (and conventionally used) font for verbatim
    50895503  \tt
    50905504  \def\par{\leavevmode\egroup\box0\endgraf}%
    50915505  \catcode`\`=\active
    50925506  \tabexpand
     5507  \quoteexpand
    50935508  % Respect line breaks,
    50945509  % print special symbols as themselves, and
    50955510  % make each space count
     
    55395954    \spaceisspace
    55405955    %
    55415956    % Append \endinput to make sure that TeX does not see the ending newline.
    5542     %
    55435957    % I've verified that it is necessary both for e-TeX and for ordinary TeX
    55445958    %                                                   --kasal, 29nov03
    55455959    \scantokens{#1\endinput}%
     
    55545968\newcount\paramno   % Count of parameters
    55555969\newtoks\macname    % Macro name
    55565970\newif\ifrecursive  % Is it recursive?
    5557 \def\macrolist{}    % List of all defined macros in the form
    5558                     % \do\macro1\do\macro2...
     5971
     5972% List of all defined macros in the form
     5973%    \definedummyword\macro1\definedummyword\macro2...
     5974% Currently is also contains all @aliases; the list can be split
     5975% if there is a need.
     5976\def\macrolist{}
     5977
     5978% Add the macro to \macrolist
     5979\def\addtomacrolist#1{\expandafter \addtomacrolistxxx \csname#1\endcsname}
     5980\def\addtomacrolistxxx#1{%
     5981     \toks0 = \expandafter{\macrolist\definedummyword#1}%
     5982     \xdef\macrolist{\the\toks0}%
     5983}
    55595984
    55605985% Utility routines.
    55615986% This does \let #1 = #2, with \csnames; that is,
     
    56536078     \else \errmessage{Macro name \the\macname\space already defined}\fi
    56546079     \global\cslet{macsave.\the\macname}{\the\macname}%
    56556080     \global\expandafter\let\csname ismacro.\the\macname\endcsname=1%
    5656      % Add the macroname to \macrolist
    5657      \toks0 = \expandafter{\macrolist\do}%
    5658      \xdef\macrolist{\the\toks0
    5659        \expandafter\noexpand\csname\the\macname\endcsname}%
     6081     \addtomacrolist{\the\macname}%
    56606082  \fi
    56616083  \begingroup \macrobodyctxt
    56626084  \ifrecursive \expandafter\parsermacbody
     
    56706092    % Remove the macro name from \macrolist:
    56716093    \begingroup
    56726094      \expandafter\let\csname#1\endcsname \relax
    5673       \let\do\unmacrodo
     6095      \let\definedummyword\unmacrodo
    56746096      \xdef\macrolist{\macrolist}%
    56756097    \endgroup
    56766098  \else
     
    56826104% macro definitions that have been changed to \relax.
    56836105%
    56846106\def\unmacrodo#1{%
    5685   \ifx#1\relax
     6107  \ifx #1\relax
    56866108    % remove this
    56876109  \else
    5688     \noexpand\do \noexpand #1%
     6110    \noexpand\definedummyword \noexpand#1%
    56896111  \fi
    56906112}
    56916113
     
    57986220% {.  If so it reads up to the closing }, if not, it reads the whole
    57996221% line.  Whatever was read is then fed to the next control sequence
    58006222% as an argument (by \parsebrace or \parsearg)
    5801 \def\braceorline#1{\let\next=#1\futurelet\nchar\braceorlinexxx}
     6223\def\braceorline#1{\let\macnamexxx=#1\futurelet\nchar\braceorlinexxx}
    58026224\def\braceorlinexxx{%
    58036225  \ifx\nchar\bgroup\else
    58046226    \expandafter\parsearg
    5805   \fi \next}
    5806 
    5807 % We want to disable all macros during \shipout so that they are not
    5808 % expanded by \write.
    5809 \def\turnoffmacros{\begingroup \def\do##1{\let\noexpand##1=\relax}%
    5810   \edef\next{\macrolist}\expandafter\endgroup\next}
    5811 
    5812 % For \indexnofonts, we need to get rid of all macros, leaving only the
    5813 % arguments (if present).  Of course this is not nearly correct, but it
    5814 % is the best we can do for now.  makeinfo does not expand macros in the
    5815 % argument to @deffn, which ends up writing an index entry, and texindex
    5816 % isn't prepared for an index sort entry that starts with \.
    5817 %
    5818 % Since macro invocations are followed by braces, we can just redefine them
    5819 % to take a single TeX argument.  The case of a macro invocation that
    5820 % goes to end-of-line is not handled.
    5821 %
    5822 \def\emptyusermacros{\begingroup
    5823   \def\do##1{\let\noexpand##1=\noexpand\asis}%
    5824   \edef\next{\macrolist}\expandafter\endgroup\next}
     6227  \fi \macnamexxx}
    58256228
    58266229
    58276230% @alias.
     
    58326235\def\aliasyyy #1=#2\relax{%
    58336236  {%
    58346237    \expandafter\let\obeyedspace=\empty
     6238    \addtomacrolist{#1}%
    58356239    \xdef\next{\global\let\makecsname{#1}=\makecsname{#2}}%
    58366240  }%
    58376241  \next
     
    59016305  \iflinks
    59026306    {%
    59036307      \atdummies  % preserve commands, but don't expand them
    5904       \turnoffactive
    5905       \otherbackslash
    59066308      \edef\writexrdef##1##2{%
    59076309        \write\auxfile{@xrdef{#1-% #1 of \setref, expanded by the \edef
    59086310          ##1}{##2}}% these are parameters of \writexrdef
     
    59566358  \ifpdf
    59576359    \leavevmode
    59586360    \getfilename{#4}%
    5959     {\turnoffactive \otherbackslash
     6361    {\turnoffactive
     6362     % See comments at \activebackslashdouble.
     6363     {\activebackslashdouble \xdef\pdfxrefdest{#1}%
     6364      \backslashparens\pdfxrefdest}%
     6365     %
    59606366     \ifnum\filenamelength>0
    59616367       \startlink attr{/Border [0 0 0]}%
    5962          goto file{\the\filename.pdf} name{#1}%
     6368         goto file{\the\filename.pdf} name{\pdfxrefdest}%
    59636369     \else
    59646370       \startlink attr{/Border [0 0 0]}%
    5965          goto name{\pdfmkpgn{#1}}%
     6371         goto name{\pdfmkpgn{\pdfxrefdest}}%
    59666372     \fi
    59676373    }%
    59686374    \linkcolor
     
    59766382    % include an _ in the xref name, etc.
    59776383    \indexnofonts
    59786384    \turnoffactive
    5979     \otherbackslash
    59806385    \expandafter\global\expandafter\let\expandafter\Xthisreftitle
    59816386      \csname XR#1-title\endcsname
    59826387  }%
     
    59846389    % If the user specified the print name (third arg) to the ref,
    59856390    % print it instead of our usual "Figure 1.2".
    59866391    \ifdim\wd0 = 0pt
    5987       \refx{#1-snt}%
     6392      \refx{#1-snt}{}%
    59886393    \else
    59896394      \printedrefname
    59906395    \fi
     
    60116416      % into the usual \leavevmode...\vrule stuff for purposes of
    60126417      % printing. So we \turnoffactive for the \refx-snt, back on for the
    60136418      % printing, back off for the \refx-pg.
    6014       {\turnoffactive \otherbackslash
     6419      {\turnoffactive
    60156420       % Only output a following space if the -snt ref is nonempty; for
    60166421       % @unnumbered and @anchor, it won't be.
    60176422       \setbox2 = \hbox{\ignorespaces \refx{#1-snt}{}}%
     
    60246429      ,\space
    60256430      %
    60266431      % output the `page 3'.
    6027       \turnoffactive \otherbackslash \putwordpage\tie\refx{#1-pg}{}%
     6432      \turnoffactive \putwordpage\tie\refx{#1-pg}{}%
    60286433    \fi
    60296434  \fi
    60306435  \endlink
     
    61276532\def\tryauxfile{%
    61286533  \openin 1 \jobname.aux
    61296534  \ifeof 1 \else
    6130     \readauxfile
     6535    \readdatafile{aux}%
    61316536    \global\havexrefstrue
    61326537  \fi
    61336538  \closein 1
    61346539}
    61356540
    6136 \def\readauxfile{\begingroup
     6541\def\setupdatafile{%
    61376542  \catcode`\^^@=\other
    61386543  \catcode`\^^A=\other
    61396544  \catcode`\^^B=\other
     
    62026607  %
    62036608  % Make the characters 128-255 be printing characters.
    62046609  {%
    6205     \count 1=128
     6610    \count1=128
    62066611    \def\loop{%
    6207       \catcode\count 1=\other
    6208       \advance\count 1 by 1
    6209       \ifnum \count 1<256 \loop \fi
     6612      \catcode\count1=\other
     6613      \advance\count1 by 1
     6614      \ifnum \count1<256 \loop \fi
    62106615    }%
    62116616  }%
    62126617  %
     
    62146619  \catcode`\{=1
    62156620  \catcode`\}=2
    62166621  \catcode`\@=0
    6217   %
    6218   \input \jobname.aux
    6219 \endgroup}
     6622}
    62206623
     6624\def\readdatafile#1{%
     6625\begingroup
     6626  \setupdatafile
     6627  \input\jobname.#1
     6628\endgroup}
    62216629
    62226630\message{insertions,}
    62236631% including footnotes.
     
    64116819    % above and below.
    64126820    \nobreak\vskip\parskip
    64136821    \nobreak
    6414     \line\bgroup\hss
     6822    \line\bgroup
    64156823  \fi
    64166824  %
    64176825  % Output the image.
     
    64246832    \epsfbox{#1.eps}%
    64256833  \fi
    64266834  %
    6427   \ifimagevmode \hss \egroup \bigbreak \fi  % space after the image
     6835  \ifimagevmode \egroup \bigbreak \fi  % space after the image
    64286836\endgroup}
    64296837
    64306838
     
    65646972      % \floatlabel-lof.  Besides \floatident, we include the short
    65656973      % caption if specified, else the full caption if specified, else nothing.
    65666974      {%
    6567         \atdummies \turnoffactive \otherbackslash
     6975        \atdummies
     6976        %
    65686977        % since we read the caption text in the macro world, where ^^M
    65696978        % is turned into a normal character, we have to scan it back, so
    65706979        % we don't write the literal three characters "^^M" into the aux file.
     
    65856994  %
    65866995  % place the captured inserts
    65876996  %
    6588   % BEWARE: when the floats start float, we have to issue warning whenever an
    6589   % insert appears inside a float which could possibly float. --kasal, 26may04
     6997  % BEWARE: when the floats start floating, we have to issue warning
     6998  % whenever an insert appears inside a float which could possibly
     6999  % float. --kasal, 26may04
    65907000  %
    65917001  \checkinserts
    65927002}
     
    67547164  \fi
    67557165}
    67567166
    6757 % Parameters in order: 1) textheight; 2) textwidth; 3) voffset;
    6758 % 4) hoffset; 5) binding offset; 6) topskip; 7) physical page height; 8)
    6759 % physical page width.
     7167% Parameters in order: 1) textheight; 2) textwidth;
     7168% 3) voffset; 4) hoffset; 5) binding offset; 6) topskip;
     7169% 7) physical page height; 8) physical page width.
    67607170%
    67617171% We also call \setleading{\textleading}, so the caller should define
    67627172% \textleading.  The caller should also set \parskip.
     
    68037213                    {11in}{8.5in}%
    68047214}}
    68057215
    6806 % Use @smallbook to reset parameters for 7x9.5 (or so) format.
     7216% Use @smallbook to reset parameters for 7x9.25 trim size.
    68077217\def\smallbook{{\globaldefs = 1
    68087218  \parskip = 2pt plus 1pt
    68097219  \textleading = 12pt
     
    68207230  \defbodyindent = .5cm
    68217231}}
    68227232
     7233% Use @smallerbook to reset parameters for 6x9 trim size.
     7234% (Just testing, parameters still in flux.)
     7235\def\smallerbook{{\globaldefs = 1
     7236  \parskip = 1.5pt plus 1pt
     7237  \textleading = 12pt
     7238  %
     7239  \internalpagesizes{7.4in}{4.8in}%
     7240                    {-.2in}{-.4in}%
     7241                    {0pt}{14pt}%
     7242                    {9in}{6in}%
     7243  %
     7244  \lispnarrowing = 0.25in
     7245  \tolerance = 700
     7246  \hfuzz = 1pt
     7247  \contentsrightmargin = 0pt
     7248  \defbodyindent = .4cm
     7249}}
     7250
    68237251% Use @afourpaper to print on European A4 paper.
    68247252\def\afourpaper{{\globaldefs = 1
    68257253  \parskip = 3pt plus 2pt minus 1pt
     
    69727400
    69737401\catcode`\_=\active
    69747402\def_{\ifusingtt\normalunderscore\_}
     7403\let\realunder=_
    69757404% Subroutine for the previous macro.
    69767405\def\_{\leavevmode \kern.07em \vbox{\hrule width.3em height.1ex}\kern .07em }
    69777406
     
    69947423% \otherifyactive is called near the end of this file.
    69957424\def\otherifyactive{\catcode`+=\other \catcode`\_=\other}
    69967425
     7426% Used sometimes to turn off (effectively) the active characters even after
     7427% parsing them.
     7428\def\turnoffactive{%
     7429  \normalturnoffactive
     7430  \otherbackslash
     7431}
     7432
    69977433\catcode`\@=0
    69987434
    69997435% \backslashcurfont outputs one backslash character in current font,
     
    70017437\global\chardef\backslashcurfont=`\\
    70027438\global\let\rawbackslashxx=\backslashcurfont  % let existing .??s files work
    70037439
     7440% \realbackslash is an actual character `\' with catcode other, and
     7441% \doublebackslash is two of them (for the pdf outlines).
     7442{\catcode`\\=\other @gdef@realbackslash{\} @gdef@doublebackslash{\\}}
     7443
     7444% In texinfo, backslash is an active character; it prints the backslash
     7445% in fixed width font.
     7446\catcode`\\=\active
     7447@def@normalbackslash{{@tt@backslashcurfont}}
     7448% On startup, @fixbackslash assigns:
     7449%  @let \ = @normalbackslash
     7450
    70047451% \rawbackslash defines an active \ to do \backslashcurfont.
    70057452% \otherbackslash defines an active \ to be a literal `\' character with
    70067453% catcode other.
    7007 {\catcode`\\=\active
    7008  @gdef@rawbackslash{@let\=@backslashcurfont}
    7009  @gdef@otherbackslash{@let\=@realbackslash}
    7010 }
    7011 
    7012 % \realbackslash is an actual character `\' with catcode other.
    7013 {\catcode`\\=\other @gdef@realbackslash{\}}
     7454@gdef@rawbackslash{@let\=@backslashcurfont}
     7455@gdef@otherbackslash{@let\=@realbackslash}
    70147456
    7015 % \normalbackslash outputs one backslash in fixed width font.
    7016 \def\normalbackslash{{\tt\backslashcurfont}}
    7017 
    7018 \catcode`\\=\active
    7019 
    7020 % Used sometimes to turn off (effectively) the active characters
    7021 % even after parsing them.
    7022 @def@turnoffactive{%
     7457% Same as @turnoffactive except outputs \ as {\tt\char`\\} instead of
     7458% the literal character `\'.
     7459%
     7460@def@normalturnoffactive{%
     7461  @let\=@normalbackslash
    70237462  @let"=@normaldoublequote
    7024   @let\=@realbackslash
    70257463  @let~=@normaltilde
    70267464  @let^=@normalcaret
    70277465  @let_=@normalunderscore
     
    70337471  @unsepspaces
    70347472}
    70357473
    7036 % Same as @turnoffactive except outputs \ as {\tt\char`\\} instead of
    7037 % the literal character `\'.  (Thus, \ is not expandable when this is in
    7038 % effect.)
    7039 %
    7040 @def@normalturnoffactive{@turnoffactive @let\=@normalbackslash}
    7041 
    70427474% Make _ and + \other characters, temporarily.
    70437475% This is canceled by @fixbackslash.
    70447476@otherifyactive
     
    70517483@global@let\ = @eatinput
    70527484
    70537485% On the other hand, perhaps the file did not have a `\input texinfo'. Then
    7054 % the first `\{ in the file would cause an error. This macro tries to fix
     7486% the first `\' in the file would cause an error. This macro tries to fix
    70557487% that, assuming it is called before the first `\' could plausibly occur.
    7056 % Also back turn on active characters that might appear in the input
     7488% Also turn back on active characters that might appear in the input
    70577489% file name, in case not using a pre-dumped format.
    70587490%
    70597491@gdef@fixbackslash{%
Note: See TracBrowser for help on using the repository browser.