From f5311448f83eada5c5cabf55aae2619dcb1869c0 Mon Sep 17 00:00:00 2001
From: Karl Berry <karl@gnu.org>
Date: Tue, 5 Nov 1996 19:52:23 +0000
Subject: (see ChangeLog for Oct 29.)

---
 manual/texinfo.tex | 34 ++++++++++++++++++++++++++--------
 1 file changed, 26 insertions(+), 8 deletions(-)

(limited to 'manual/texinfo.tex')

diff --git a/manual/texinfo.tex b/manual/texinfo.tex
index 6bd494b..782c47e 100644
--- a/manual/texinfo.tex
+++ b/manual/texinfo.tex
@@ -1,5 +1,5 @@
 %% TeX macros to handle Texinfo files.
-%% $Id: texinfo.tex,v 2.186 1996/11/05 19:51:16 karl Exp $
+%% $Id: texinfo.tex,v 2.187 1996/11/05 19:52:23 karl Exp $
 
 %  Copyright (C) 1985, 86, 88, 90, 91, 92, 93,
 %                94, 95, 1996 Free Software Foundation, Inc.
@@ -36,7 +36,7 @@
 
 % This automatically updates the version number based on RCS.
 \def\deftexinfoversion$#1: #2 ${\def\texinfoversion{#2}}
-\deftexinfoversion$Revision: 2.186 $
+\deftexinfoversion$Revision: 2.187 $
 \message{Loading texinfo package [Version \texinfoversion]:}
 
 % If in a .fmt file, print the version number
@@ -137,24 +137,39 @@
 %
 %---------------------End change-----------------------
 
+% Main output routine.
+\chardef\PAGE = 255
+\output = {\onepageout{\pagecontents\PAGE}}
+
+\newbox\headlinebox  \newbox\footlinebox
+
 % \onepageout takes a vbox as an argument.  Note that \pagecontents
 % does insertions, but you have to call it yourself.
-\chardef\PAGE=255  \output={\onepageout{\pagecontents\PAGE}}
 \def\onepageout#1{%
   \hoffset=\normaloffset
   \ifodd\pageno  \advance\hoffset by \bindingoffset
   \else \advance\hoffset by -\bindingoffset\fi
+  %
+  % Do this outside of the \shipout so @code etc. will be expanded in
+  % the headline as they should be, not taken literally (outputting ''code).
+  \setbox\headlinebox = \vbox{\let\hsize=\pagewidth \makeheadline}%
+  \setbox\footlinebox = \vbox{\let\hsize=\pagewidth \makefootline}%
+  %
   {%
+    % Have to do this stuff outside the \shipout because we want it to
+    % take effect in \write's, yet the group defined by the \vbox ends
+    % before the \shipout runs.
+    %
     \escapechar = `\\     % use backslash in output files.
     \indexdummies         % don't expand commands in the output.
     \normalturnoffactive  % \ in index entries must not stay \, e.g., if
                    % the page break happens to be in the middle of an example.
     \shipout\vbox{%
-      {\let\hsize=\pagewidth \makeheadline}%
+      \unvbox\headlinebox
       \pagebody{#1}%
-      {\let\hsize=\pagewidth \makefootline}%
+      \unvbox\footlinebox
+    }%
     }%
-  }%
   \advancepageno
   \ifnum\outputpenalty>-20000 \else\dosupereject\fi
 }
@@ -2045,7 +2060,10 @@ July\or August\or September\or October\or November\or December\fi
  % The table preamble
  % looks at the current \colcount to find the correct column width.
 \global\everycr{\noalign{%
-\filbreak%% keeps underfull box messages off when table breaks over pages.
+% \filbreak%% keeps underfull box messages off when table breaks over pages.
+% Maybe so, but it also creates really weird page breaks when the table
+% breaks over pages Wouldn't \vfil be better?  Wait until the problem
+% manifests itself, so it can be fixed for real --karl.
 \global\colcount=0\relax}}
 }
 
@@ -2299,7 +2317,7 @@ width0pt\relax} \fi
       \indexdummies % Must do this here, since \bf, etc expand at this stage
       \escapechar=`\\
       {%
-        \let\folio=0 % We will expand all macros now EXCEPT \folio.
+        \let\folio=0% We will expand all macros now EXCEPT \folio.
         \def\rawbackslashxx{\indexbackslash}% \indexbackslash isn't defined now
         % so it will be output as is; and it will print as backslash.
         %
-- 
cgit v1.1

