summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/base/ltplain.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/source/latex/base/ltplain.dtx')
-rw-r--r--Master/texmf-dist/source/latex/base/ltplain.dtx113
1 files changed, 105 insertions, 8 deletions
diff --git a/Master/texmf-dist/source/latex/base/ltplain.dtx b/Master/texmf-dist/source/latex/base/ltplain.dtx
index f14969b31d0..7f1f5a8eaee 100644
--- a/Master/texmf-dist/source/latex/base/ltplain.dtx
+++ b/Master/texmf-dist/source/latex/base/ltplain.dtx
@@ -32,7 +32,7 @@
%<*driver>
% \fi
\ProvidesFile{ltplain.dtx}
- [2015/06/19 v2.0h LaTeX Kernel (Plain TeX)]
+ [2015/08/30 v2.1a LaTeX Kernel (Plain TeX)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{ltplain.dtx}
@@ -50,7 +50,7 @@
%</driver>
% \fi
%
-% \CheckSum{1204}
+% \CheckSum{1343}
%
% \changes{v1.0a}{1994/03/08}
% {Remove need for a driver file.}
@@ -533,7 +533,8 @@
% \begin{macrocode}
%</2ekernel>
%<*2ekernel|latexrelease>
-%<latexrelease>\IncludeInRelease{2015/01/01}{\e@ch@ck}{Extended Allocation}%
+%<latexrelease>\IncludeInRelease{2015/10/01}
+%<latexrelease> {\e@ch@ck}{Extended Allocation (checking)}%
% \end{macrocode}
%
% \begin{macrocode}
@@ -551,13 +552,38 @@
\fi
% \end{macrocode}
% Check we are below the extended limit.
+% \changes{v2.0i}{2015/08/06}
+% {Add \cs{string} in case argument is not an unexpandable primitive}
% \begin{macrocode}
\ifnum#1<#3\relax
\else
- \errmessage{No room for a new #4}%
+ \errmessage{No room for a new \string#4}%
\fi
\fi}%
-
+%<latexrelease>\EndIncludeInRelease
+%<latexrelease>\IncludeInRelease{2015/01/01}%
+%<latexrelease> {\e@ch@ck}{Extended Allocation (checking)}%
+%<latexrelease>\gdef\e@ch@ck#1#2#3#4{%
+%<latexrelease> \ifnum#1<#2\else
+%<latexrelease> \ifnum#1=#2\relax
+%<latexrelease> #1\@cclvi
+%<latexrelease> \ifx\count#4\advance#1 10 \fi
+%<latexrelease> \fi
+%<latexrelease> \ifnum#1<#3\relax
+%<latexrelease> \else
+%<latexrelease> \errmessage{No room for a new #4}%
+%<latexrelease> \fi
+%<latexrelease> \fi}%
+%<latexrelease>\EndIncludeInRelease
+%<latexrelease>\IncludeInRelease{0000/00/00}%
+%<latexrelease> {\e@ch@ck}{Extended Allocation (checking)}%
+%<latexrelease>\let\e@ch@ck\@undefined
+%<latexrelease>\EndIncludeInRelease
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<latexrelease>\IncludeInRelease{2015/01/01}%
+%<latexrelease> {\extrafloats}{Extra floats}%
% \end{macrocode}
% \end{macro}
%
@@ -614,18 +640,17 @@
%</2ekernel|latexrelease>
%<latexrelease>\EndIncludeInRelease
%<latexrelease>\IncludeInRelease{0000/00/00}%
-%<latexrelease> {\e@ch@ck}{Extended Allocation}%
-%<latexrelease>\let\e@ch@ck\@undefined
+%<latexrelease> {\extrafloats}{Extra floats}%
%<latexrelease>\let\float@count\@undefined
%<latexrelease>\let\extrafloats\@undefined
%<latexrelease>\EndIncludeInRelease
+%<*2ekernel>
% \end{macrocode}
% \end{macro}
% \end{macro}
%
% \begin{macro}{\alloc@}
% \begin{macrocode}
-%<*2ekernel>
\def\alloc@#1#2#3#4#5{\global\advance\count1#1\@ne
\ch@ck#1#4#2% make sure there's still room
\allocationnumber\count1#1%
@@ -635,6 +660,18 @@
% \end{macro}
%
% \begin{macro}{\newinsert}
+% \changes{v2.1a}{2015/08/30}{new \cs{newinsert} implementation}
+% \begin{macrocode}
+%</2ekernel>
+%<*2ekernel|latexrelease>
+%<latexrelease>\IncludeInRelease{2015/10/01}
+%<latexrelease> {\newinsert}{Extended \newinsert}%
+% \end{macrocode}
+% \begin{macrocode}
+\ifx\numexpr\@undefined
+% \end{macrocode}
+% If e-\TeX\ is not available use the original plain \TeX\
+% definition of |\newinsert|.
% \begin{macrocode}
\def\newinsert#1{\global\advance\insc@unt \m@ne
\ch@ck0\insc@unt\count
@@ -645,6 +682,66 @@
\global\chardef#1\allocationnumber
\wlog{\string#1=\string\insert\the\allocationnumber}}
% \end{macrocode}
+% \begin{macrocode}
+\else
+% \end{macrocode}
+% The highest register allowed with |\insert|.
+% \begin{macrocode}
+\ifx\directlua\@undefined
+ \chardef\e@insert@top255
+\else
+ \chardef\e@insert@top\e@alloc@top
+\fi
+% \end{macrocode}
+% If the classic registers are exausted, take an insert from the free float list
+% and use |\extrafloats| to add a new float to that list.
+% \begin{macrocode}
+\def\newinsert#1{%
+\@tempswafalse
+\ifnum\count10<\insc@unt
+\ifnum\count11<\insc@unt
+\ifnum\count12<\insc@unt
+\ifnum\count14<\insc@unt
+ \@tempswatrue
+\fi\fi\fi\fi
+\if@tempswa
+\global\advance\insc@unt\m@ne
+\allocationnumber\insc@unt
+\else
+ \extrafloats\@ne
+ \@next\@currbox\@freelist
+ {\ifnum\@currbox<\e@insert@top
+ \allocationnumber\@currbox
+ \else
+ \ch@ck0\m@ne\insert
+ \fi}%
+ {\ch@ck0\m@ne\insert}%
+\fi
+\global\chardef#1\allocationnumber
+\wlog{\string#1=\string\insert\the\allocationnumber}%
+}
+% \end{macrocode}
+% \begin{macrocode}
+\fi
+%</2ekernel|latexrelease>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<latexrelease>\EndIncludeInRelease
+%<latexrelease>\IncludeInRelease{0000/00/00}%
+%<latexrelease> {\newinsert}{Extended \newinsert}%
+%<latexrelease>\let\e@insert@top\@undefined
+%<latexrelease>\def\newinsert#1{\global\advance\insc@unt \m@ne
+%<latexrelease> \ch@ck0\insc@unt\count
+%<latexrelease> \ch@ck1\insc@unt\dimen
+%<latexrelease> \ch@ck2\insc@unt\skip
+%<latexrelease> \ch@ck4\insc@unt\box
+%<latexrelease> \allocationnumber\insc@unt
+%<latexrelease> \global\chardef#1\allocationnumber
+%<latexrelease> \wlog{\string#1=\string\insert\the\allocationnumber}}
+%<latexrelease>\EndIncludeInRelease
+%<*2ekernel>
+% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\ch@ck}