diff options
Diffstat (limited to 'macros/latex/base/ltfiles.dtx')
-rw-r--r-- | macros/latex/base/ltfiles.dtx | 83 |
1 files changed, 78 insertions, 5 deletions
diff --git a/macros/latex/base/ltfiles.dtx b/macros/latex/base/ltfiles.dtx index 4c24716df6..d99dfdcd48 100644 --- a/macros/latex/base/ltfiles.dtx +++ b/macros/latex/base/ltfiles.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2021 +% Copyright (C) 1993-2022 % The LaTeX Project and any individual authors listed elsewhere % in this file. % @@ -32,7 +32,7 @@ %<*driver> % \fi \ProvidesFile{ltfiles.dtx} - [2021/10/14 v1.2p LaTeX Kernel (File Handling)] + [2022/05/27 v1.2r LaTeX Kernel (File Handling)] % \iffalse \documentclass{ltxdoc} \GetFileInfo{ltfiles.dtx} @@ -106,7 +106,7 @@ % If the file exists on the system, execute \emph{then} and input % \emph{NAME} otherwise execute \emph{else}. % -% \StopEventually{} +% \MaybeStop{} % % \changes{v1.0a}{1994/03/07}{Initial version, split from latex.dtx} % \changes{v1.0a}{1994/03/07}{Long lines wrapped to 72 columns} @@ -817,7 +817,7 @@ % \begin{macrocode} %</2ekernel> %<*2ekernel|latexrelease> -%<latexrelease>\IncludeInRelease{2020/10/01}% +%<latexrelease>\IncludeInRelease{2022/06/01}% %<latexrelease> {\@include}{Spaces in file names and hooks}% % \end{macrocode} % @@ -899,6 +899,16 @@ % \begin{macrocode} \deadcycles\z@ \@nameuse{cp@#1}% +% \end{macrocode} +% We also execute a hook in this case, first a general used for +% every include file that is exclude and then a specific one that +% contains the name of the include file. +% \changes{v1.2q}{2022/04/01}{Process some hooks is an include file is bypassed} +% \begin{macrocode} +%----------------------------------------- + \UseHook{include/excluded}% + \UseOneTimeHook{include/#1/excluded}% +%----------------------------------------- \fi \let\@auxout\@mainaux % \end{macrocode} @@ -917,13 +927,66 @@ \NewHook{include/before} \NewReversedHook{include/end} \NewReversedHook{include/after} +\NewHook{include/excluded} %<latexrelease>\EndIncludeInRelease %</2ekernel|latexrelease> % \end{macrocode} % % \begin{macrocode} +%<latexrelease>\IncludeInRelease{2020/10/01}% +%<latexrelease> {\@include}{Spaces in file names and hooks}% +%<latexrelease>\EndIncludeInRelease +%<latexrelease>\def\@include#1 {% +%<latexrelease>\ifx\@nodocument\relax +%<latexrelease> \clearpage +%<latexrelease> \if@filesw +%<latexrelease> \immediate\write\@mainaux{\string\@input{#1.aux}}% +%<latexrelease> \fi +%<latexrelease> \@tempswatrue +%<latexrelease> \if@partsw +%<latexrelease> \@tempswafalse +%<latexrelease> \edef\reserved@b{#1}% +%<latexrelease> \@for\reserved@a:=\@partlist\do +%<latexrelease> {\ifx\reserved@a\reserved@b\@tempswatrue\fi}% +%<latexrelease> \fi +%<latexrelease> \if@tempswa +%<latexrelease> \let\@auxout\@partaux +%<latexrelease> \if@filesw +%<latexrelease> \immediate\openout\@partaux "#1.aux" +%<latexrelease> \immediate\write\@partaux{\relax}% +%<latexrelease> \fi +%<latexrelease> \@filehook@set@CurrentFile +%<latexrelease> \UseHook{include/before}% +%<latexrelease> \UseOneTimeHook{include/#1/before}% +%<latexrelease> \@input@{#1.tex}% +%<latexrelease> \UseOneTimeHook{include/#1/end}% +%<latexrelease> \UseHook{include/end}% +%<latexrelease> \clearpage +%<latexrelease> \UseOneTimeHook{include/#1/after}% +%<latexrelease> \UseHook{include/after}% +%<latexrelease> \clearpage +%<latexrelease> \@writeckpt{#1}% +%<latexrelease> \if@filesw +%<latexrelease> \immediate\closeout\@partaux +%<latexrelease> \fi +%<latexrelease> \else +%<latexrelease> \deadcycles\z@ +%<latexrelease> \@nameuse{cp@#1}% +%<latexrelease> \fi +%<latexrelease> \let\@auxout\@mainaux +%<latexrelease>\else +%<latexrelease>\@latex@warning{% +%<latexrelease> \noexpand\include should only be used after \string\begin{document}}% +%<latexrelease>\@input@{#1}% +%<latexrelease>\fi} +%<latexrelease>\NewHook{include/before} +%<latexrelease>\NewReversedHook{include/end} +%<latexrelease>\NewReversedHook{include/after} +% \end{macrocode} +% +% \begin{macrocode} %<latexrelease>\IncludeInRelease{0000/00/00}% -%<latexrelease> {\@include}{Spaces in file names}% +%<latexrelease> {\@include}{Spaces in file names and hooks}% %<latexrelease>\def\@include#1 {% %<latexrelease> \clearpage %<latexrelease> \if@filesw @@ -1577,6 +1640,7 @@ % % \changes{v1.0o}{1994/11/30} % {Use \cs{@dofilelist}} +% \changes{v1.2r}{2022/05/27}{Try saved version string, if ver@.. is \cs{relax} (gh/825)} % \begin{macrocode} \def\@dofilelist{% \typeout{^^J *File List*}% @@ -1587,6 +1651,15 @@ \ifx\filename@ext\relax tex\else\filename@ext\fi}% \expandafter\let\expandafter\reserved@b \csname ver@\reserved@a\endcsname +% \end{macrocode} +% Packages that \cs{relax} their \cs{ver@...} string to allow for +% multiple loading (e.g., \pkg{fontenc}) can use \cs{ver@@...} to +% store the version information instead. +% \begin{macrocode} + \ifx\reserved@b\relax + \expandafter\let\expandafter\reserved@b + \csname ver@@\reserved@a\endcsname + \fi \expandafter\expandafter\expandafter\@listfiles\expandafter \filename@area\filename@base\\\\\\\\\\\\\\\\\\\@@ \typeout{% |