% \iffalse
%%
%% (C) Copyright 1999-2000 Frank Mittelbach, David Carlisle, Chris Rowley
%% All rights reserved.
%%
%% Not for general distribution. In its present form it is not allowed
%% to put this package onto CD or an archive without consulting the
%% the authors.
%% 
% \fi
%
%    \begin{macrocode}
\def\@tempa#1: #2.dtx,v #3 #4 #5 #6 #7${
  \ProvidesPackage{#2}[#4 #3 #5 #6]}
\@tempa$Id: xo-alloc.dtx,v 1.4 2000/08/11 07:13:34 latex3 Exp $
%    \end{macrocode}
%
%
% Ignore white space in this package.
%    \begin{macrocode}
\IgnoreWhiteSpace
%    \end{macrocode}
%
% |\footins| is FD, should probably move to FE
%
% |\@footins| is FE, should probably go and be replaced by a box and skip allocation
% they don't need to be same number, except for compatibility reasons.
%
% |\@kludgeins| was EA maybe can go, depending on how enlargethispage to be implemented.
%               for now, move to FC (which was bx@A
%    \begin{macrocode}
\chardef\@kludgeins="FC\relax
\global\dimen\@kludgeins \maxdimen
\global\count\@kludgeins 1000
\global\dimen\@kludgeins\z@
\global\skip\@kludgeins\z@
\global\setbox\@kludgeins\box\voidb@x
%    \end{macrocode}
%
%    \begin{macrocode}
\insc@unt"FC\relax
%    \end{macrocode}
%
% count dimen skip  no longer bounded by insertion allocation.
% toks now bounded by insertions.
%    \begin{macrocode}
\def\newcount{\alloc@0\count\countdef\@kludgeins}
\def\newdimen{\alloc@1\dimen\dimendef\@kludgeins}
\def\newskip{\alloc@2\skip\skipdef\@kludgeins}
\def\newtoks{\alloc@5\toks\toksdef\insc@unt}
%    \end{macrocode}
%
%    \begin{macrocode}
\def\newinsert#1{\global\advance\insc@unt \m@ne
  \ch@ck4\insc@unt\box
  \ch@ck5\insc@unt\toks
  \allocationnumber\insc@unt
  \global\chardef#1\allocationnumber
  \wlog{\string#1=\string\insert\the\allocationnumber}}
%    \end{macrocode}
%
%    \begin{macrocode}
\newinsert\bx@A
\newinsert\bx@B
\newinsert\bx@C
\newinsert\bx@D
\newinsert\bx@E
\newinsert\bx@F
\newinsert\bx@G
\newinsert\bx@H
\newinsert\bx@I
\newinsert\bx@J
\newinsert\bx@K
\newinsert\bx@L
\newinsert\bx@M
\newinsert\bx@N
\newinsert\bx@O
\newinsert\bx@P
\newinsert\bx@Q
\newinsert\bx@R
%    \end{macrocode}
%
% like |\@next| but allocates to list if empty (so doesn't have the
% 4th argument) There is a hidden 3rd argument, picked up by |\@xnext|.
%    \begin{macrocode}
\def\@allocating@next#1#2{
  \ifx#2\@empty
    \xdef#2{\noexpand\@elt\csname bx@\the\insc@unt\endcsname}
    \expandafter\newinsert\csname bx@\the\insc@unt\endcsname
  \fi
  \expandafter\@xnext #2\@@#1#2}
%    \end{macrocode}
%
%    \begin{macrocode}
%    \end{macrocode}
%
%    \begin{macrocode}
%    \end{macrocode}
%
%    \begin{macrocode}
%    \end{macrocode}
%
%    \begin{macrocode}
%    \end{macrocode}
%
%    \begin{macrocode}
%    \end{macrocode}

%
% \endinput
\endinput
%
% $Log: xo-alloc.dtx,v $
% Revision 1.4  2000/08/11 07:13:34  latex3
% added header
%
% Revision 1.3  2000/06/13 20:54:46  latex3
% made this a dtx file
%
% Revision 1.2  2000/02/22 01:03:55  david
% *** empty log message ***
%
% Revision 1.1  2000/02/22 00:52:52  david
% Initial revision
%
