[latex3-commits] [git/LaTeX3-latex3-latex2e] lthooks2: renamed a few internals and turned some of them to expl3 syntax; fixed rollack in several places (hope it is ok now); changed "normalise" to "normalize" as that is what is used elsewhere (b754de49)
Frank Mittelbach
frank.mittelbach at latex-project.org
Tue Aug 25 00:12:25 CEST 2020
Repository : https://github.com/latex3/latex2e
On branch : lthooks2
Link : https://github.com/latex3/latex2e/commit/b754de49d5e3f65c5da38120e6c2f621eb5a5799
>---------------------------------------------------------------
commit b754de49d5e3f65c5da38120e6c2f621eb5a5799
Author: Frank Mittelbach <frank.mittelbach at latex-project.org>
Date: Tue Aug 25 00:12:25 2020 +0200
renamed a few internals and turned some of them to expl3 syntax;
fixed rollack in several places (hope it is ok now);
changed "normalise" to "normalize" as that is what is used elsewhere
>---------------------------------------------------------------
b754de49d5e3f65c5da38120e6c2f621eb5a5799
base/ltclass.dtx | 6 +-
base/ltfilehook.dtx | 277 ++++++++++++++++-----
base/lthooks.dtx | 12 +-
base/ltshipout.dtx | 37 ++-
base/testfiles-lthooks/lthooks-errors.lvt | 2 +-
base/testfiles-lthooks/lthooks-errors.tlg | 2 +-
.../tlb-latexrelease-rollback-003-often.luatex.tlg | 18 ++
.../tlb-latexrelease-rollback-003-often.tlg | 18 ++
.../tlb-latexrelease-rollback-003-often.xetex.tlg | 18 ++
base/testfiles/tlb-rollback-004-often.luatex.tlg | 9 +
base/testfiles/tlb-rollback-004-often.tlg | 9 +
base/testfiles/tlb-rollback-004-often.xetex.tlg | 9 +
12 files changed, 333 insertions(+), 84 deletions(-)
diff --git a/base/ltclass.dtx b/base/ltclass.dtx
index 91ebb480..056632e6 100644
--- a/base/ltclass.dtx
+++ b/base/ltclass.dtx
@@ -33,7 +33,7 @@
%<*driver>
% \fi
\ProvidesFile{ltclass.dtx}
- [2020/08/21 v1.3o LaTeX Kernel (Class & Package Interface)]
+ [2020/08/25 v1.3o LaTeX Kernel (Class & Package Interface)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{ltclass.dtx}
@@ -1729,14 +1729,14 @@
% \cs{load at onefile@withoptions}.
% \begin{macrocode}
\@disable at packageload@do{\@currname.\@currext}%
- {\@filehook at file@push
+ {\@expl@@@filehook at file@push@@
\set at curr@file{\@currname.\@currext}%
\@filehook at set@CurrentFile
\load at onefile@withoptions{#2}%
% \end{macrocode}
% Now just clean up and exit.
% \begin{macrocode}
- \@filehook at file@pop}%
+ \@expl@@@filehook at file@pop@@}%
\@reset at ptions
\expandafter\@firstofone
\fi}%
diff --git a/base/ltfilehook.dtx b/base/ltfilehook.dtx
index c02d2b08..02156ebb 100644
--- a/base/ltfilehook.dtx
+++ b/base/ltfilehook.dtx
@@ -32,7 +32,7 @@
%
% \begin{macrocode}
\providecommand\ltfilehookversion{v1.0a}
-\providecommand\ltfilehookdate{2020/08/21}
+\providecommand\ltfilehookdate{2020/08/25}
% \end{macrocode}
%
%<*driver>
@@ -456,7 +456,6 @@
%
% \begin{macrocode}
%<@@=filehook>
-\ExplSyntaxOn
% \end{macrocode}
%
%
@@ -478,10 +477,12 @@
%<*2ekernel|latexrelease>
%<latexrelease>\IncludeInRelease{2020/10/01}%
%<latexrelease> {\CurrentFile}{Hook management file}%
+\ExplSyntaxOn
\tl_new:N \CurrentFile
\tl_new:N \CurrentFilePath
\tl_new:N \CurrentFileUsed
\tl_new:N \CurrentFilePathUsed
+\ExplSyntaxOff
%</2ekernel|latexrelease>
%<latexrelease>\EndIncludeInRelease
% \end{macrocode}
@@ -505,17 +506,26 @@
%
% \subsection{\pkg{expl3} helpers}
%
+% \begin{macrocode}
+%</2ekernel>
+%<*2ekernel|latexrelease>
+%<latexrelease>\IncludeInRelease{2020/10/01}%
+%<latexrelease> {\@@_file_parse_full_name:nN}{File helpers}%
+\ExplSyntaxOn
+% \end{macrocode}
+%
% \begin{macro}{
% \@@_file_parse_full_name:nN,
% \@@_full_name:nn,
% \@@_set_curr_file_assign:nnnNN
% }
% A utility macro to trigger \pkg{expl3}'s file-parsing and lookup,
-% and return a normalised representation of the file name. If the
+% and return a normalized representation of the file name. If the
% queried file doesn't exist, no normalisation takes place.
% The output of \cs{@@_file_parse_full_name:nN} is passed on to the
% |#2|---a 3-argument macro that takes the \meta{path}, \meta{base},
% and \meta{ext} parts of the file name.
+%
% \begin{macrocode}
\cs_new:Npn \@@_file_parse_full_name:nN #1
{
@@ -535,20 +545,20 @@
% \end{macro}
%
% \begin{macro}{
-% \@filehook at if@no at extensionTF,
-% \@filehook at drop@extension
+% \@@_if_no_extension:nTF,
+% \@@_drop_extension:N
% }
% Some actions depend on whether the file extension was explicitly
% given, and sometimes the extension has to be removed. The macros
% below use \cs{@@_file_parse_full_name:nN} to split up the file name
% and either check if \meta{ext} (|#3|) is empty, or discard it.
% \begin{macrocode}
-\cs_new:Npn \@filehook at if@no at extensionTF #1
+\cs_new:Npn \@@_if_no_extension:nTF #1
{
\exp_args:Ne \tl_if_empty:nTF
{ \file_parse_full_name_apply:nN {#1} \use_iii:nnn }
}
-\cs_new_protected:Npn \@filehook at drop@extension #1
+\cs_new_protected:Npn \@@_drop_extension:N #1
{
\tl_gset:Nx #1
{
@@ -557,12 +567,12 @@
}
}
\cs_new:Npn \@@_drop_extension_aux:nnn #1 #2 #3
- { \tl_if_empty:nF {#1} { #1 / } #2 }
+ { \tl_if_empty:nF {#1} { #1 / } #2 }
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\g_@@_input_file_seq,\l_@@_internal_tl}
-% \begin{macro}{\@filehook at file@push,\@filehook at file@pop}
+% \begin{macro}{\@@_file_push:,\@@_file_pop:}
% \begin{macro}{\@@_file_pop_assign:nnnn}
% Yet another stack, to keep track of \cs{CurrentFile} and
% \cs{CurrentFilePath} with nested \cs{input}s. At the beginning of
@@ -575,7 +585,7 @@
% \begin{macrocode}
\tl_new:N \l_@@_internal_tl
\seq_new:N \g_@@_input_file_seq
-\cs_new_protected:Npn \@filehook at file@push
+\cs_new_protected:Npn \@@_file_push:
{
\seq_gpush:Nx \g_@@_input_file_seq
{
@@ -583,29 +593,35 @@
{ \CurrentFilePath } { \CurrentFile }
}
}
-\cs_new_protected:Npn \@filehook at file@pop
+\cs_new_protected:Npn \@@_file_pop:
{
\seq_gpop:NNTF \g_@@_input_file_seq \l_@@_internal_tl
- { \exp_after:wN \@filehook at file@pop at assign \l_@@_internal_tl }
+ { \exp_after:wN \@@_file_pop_assign:nnnn \l_@@_internal_tl }
{
\msg_error:nnn { hooks } { should-not-happen }
{ Tried~to~pop~from~an~empty~file~name~stack. }
}
}
-\cs_new_protected:Npn \@filehook at file@pop at assign #1 #2 #3 #4
+\cs_new_protected:Npn \@@_file_pop_assign:nnnn #1 #2 #3 #4
{
\tl_set:Nn \CurrentFilePathUsed {#1}
\tl_set:Nn \CurrentFileUsed {#2}
\tl_set:Nn \CurrentFilePath {#3}
\tl_set:Nn \CurrentFile {#4}
}
+\ExplSyntaxOff
% \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
%
% \begin{macrocode}
-\ExplSyntaxOff
+%</2ekernel|latexrelease>
+%<latexrelease>\EndIncludeInRelease
+%<*2ekernel>
+% \end{macrocode}
+%
+% \begin{macrocode}
%<@@=>
% \end{macrocode}
%
@@ -646,7 +662,7 @@
\DeclareRobustCommand \InputIfFileExists[2]{%
\IfFileExists{#1}%
{%
- \@filehook at file@push
+ \@expl@@@filehook at file@push@@
\@filehook at set@CurrentFile
% \end{macrocode}
% If the file exists then \cs{CurrentFile} holds its name. But we
@@ -659,7 +675,7 @@
% is \emph{always} loaded for \cs{CurrentFile} which usually is the
% same as \cs{CurrentFileUsed}. In the case of a file replacement,
% the \cs{CurrentFileUsed} holds the actual file loaded. In any case
-% the file names are normalised so that the hooks work on the real
+% the file names are normalized so that the hooks work on the real
% file name, rather than what the user typed in.
%
% \pkg{expl3}'s \cs{file_full_name:n} normalizes the file
@@ -671,7 +687,7 @@
% returned in \cs{CurrentFilePath}.
% \begin{macrocode}
\edef\reserved at a{\@filef at und
- \@filehook at file@pop at assign
+ \@expl@@@filehook at file@pop at assign@@nnnn
{\CurrentFilePathUsed}%
{\CurrentFileUsed}%
{\CurrentFilePath}%
@@ -694,7 +710,7 @@
% \begin{macrocode}
\UseHook{file/after/\CurrentFile}%
\UseHook{file/after}%
- \@filehook at file@pop
+ \@expl@@@filehook at file@pop@@
}%
}
%<latexrelease>\EndIncludeInRelease
@@ -746,26 +762,24 @@
% \subsection{Declaring a file substitution}
%
% \begin{macrocode}
-\ExplSyntaxOn
%<@@=filehook>
% \end{macrocode}
%
-% \begin{macro}[int]{\use_ii_iii:nnn}
-% A variant of \cs[no-index]{use_...} to discard the first of three
-% arguments.
% \begin{macrocode}
-\cs_gset:Npn \use_ii_iii:nnn #1 #2 #3 {#2 #3}
+%</2ekernel>
+%<*2ekernel|latexrelease>
+%<latexrelease>\IncludeInRelease{2020/10/01}%
+%<latexrelease> {\@@_subst_add:nn}{Declaring file substitution}%
+\ExplSyntaxOn
% \end{macrocode}
-% \end{macro}
-%
%
%
% \begin{macro}{\@@_subst_add:nn,\@@_subst_remove:n,
-% \@@_subst_file_normalise:n,\@@_subst_empty_name_chk:NN}
-% \cs{@@_substitution_add:nn} declares a file substitution by
+% \@@_subst_file_normalize:n,\@@_subst_empty_name_chk:NN}
+% \cs{@@_substitution_lthooadd:nn} declares a file substitution by
% doing a (global) definition of the form
% |\def|\cs{@file-subst@\meta{file}}|{|\meta{replacement}|}|.
-% The file names are properly sanitised, and normalised with the same
+% The file names are properly sanitised, and normalized with the same
% treatment done for the file hooks. That is, a file replacement is
% declared by using the file name (and extension, if any) only, and
% the file path should not be given. If a file name is empty it is
@@ -776,8 +790,8 @@
\group_begin:
\cs_set:cpx { } { \exp_not:o { \cs:w\cs_end: } }
\int_set:Nn \tex_escapechar:D { -1 }
- \cs_gset:cpx { @file-subst@ \@@_subst_file_normalise:n {#1} }
- { \@@_subst_file_normalise:n {#2} }
+ \cs_gset:cpx { @file-subst@ \@@_subst_file_normalize:n {#1} }
+ { \@@_subst_file_normalize:n {#2} }
\group_end:
}
\cs_new_protected:Npn \@@_subst_remove:n #1
@@ -785,10 +799,10 @@
\group_begin:
\cs_set:cpx { } { \exp_not:o { \cs:w\cs_end: } }
\int_set:Nn \tex_escapechar:D { -1 }
- \cs_undefine:c { @file-subst@ \@@_subst_file_normalise:n {#1} }
+ \cs_undefine:c { @file-subst@ \@@_subst_file_normalize:n {#1} }
\group_end:
}
-\cs_new:Npn \@@_subst_file_normalise:n #1
+\cs_new:Npn \@@_subst_file_normalize:n #1
{
\exp_after:wN \@@_subst_empty_name_chk:NN
\cs:w \exp_after:wN \cs_end:
@@ -799,6 +813,23 @@
% \end{macrocode}
% \end{macro}
%
+% \begin{macro}[int]{\use_ii_iii:nnn}
+% A variant of \cs[no-index]{use_...} to discard the first of three
+% arguments.
+% \fmi{this should move to \pkg{expl3}}
+% \begin{macrocode}
+\cs_gset:Npn \use_ii_iii:nnn #1 #2 #3 {#2 #3}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macrocode}
+\ExplSyntaxOff
+%</2ekernel|latexrelease>
+%<latexrelease>\EndIncludeInRelease
+%<*2ekernel>
+% \end{macrocode}
+%
%
%
% \begin{macro}{\declare at file@substitution}
@@ -811,8 +842,10 @@
%<*2ekernel|latexrelease>
%<latexrelease>\IncludeInRelease{2020/10/01}%
%<latexrelease> {\declare at file@substitution}{File substitution}%
+\ExplSyntaxOn
\cs_new_eq:NN \declare at file@substitution \@@_subst_add:nn
\cs_new_eq:NN \undeclare at file@substitution \@@_subst_remove:n
+\ExplSyntaxOff
%</2ekernel|latexrelease>
%<latexrelease>\EndIncludeInRelease
% \end{macrocode}
@@ -842,7 +875,7 @@
%
% \begin{macro}{\set at curr@file,\@curr at file,\@curr at file@reqd}
% Now we hook into \cs{set at curr@file} to resolve a possible file
-% substitution, and add \cs{@filehook at set@curr at file} at the end, after
+% substitution, and add \cs{@expl@@@filehook at set@curr at file@@N} at the end, after
% \cs{@curr at file} is set.
%
% A file name is built using
@@ -877,27 +910,27 @@
% except when we have a file substitution, in which case it holds the
% actual loaded file. \cs{@curr at file} is resolved first, to check if
% a substitution happens. If it doesn't,
-% \cs{@kernel at if@file at replacedTF} short-cuts and just copies
+% \cs{@expl@@@filehook at if@file at replaced@@TF} short-cuts and just copies
% \cs{@curr at file}, otherwise the full normalisation procedure is
% executed.
%
-% At this stage the file name is parsed and normalised, but if the
+% At this stage the file name is parsed and normalized, but if the
% input doesn't have an extension, the default |.tex| is \emph{not}
% added to \cs{@curr at file} because for applications other than
% \cs{input} (graphics, for example) the default extension may not
% be |.tex|. First check if the input has an extension, then if the
-% input had no extension, call \cs{@filehook at drop@extension}. In case
+% input had no extension, call \cs{@expl@@@filehook at drop@extension@@N}. In case
% of a file substitution, \cs{@curr at file} will have an extension.
% \begin{macrocode}
- \@filehook at if@no at extensionTF{#1}%
+ \@expl@@@filehook at if@no at extension@@nTF{#1}%
{\@tempswatrue}{\@tempswafalse}%
\@kernel at make@file at csname\@curr at file
- \@kernel at resolve@file at subst{#1}%
- \@kernel at if@file at replacedTF
+ \@expl@@@filehook at resolve@file at subst@@w {#1}%
+ \@expl@@@filehook at if@file at replaced@@TF
{\@kernel at make@file at csname\@curr at file@reqd
- \@kernel at normalise@file at name{#1}%
- \if at tempswa \@filehook at drop@extension\@curr at file@reqd \fi}%
- {\if at tempswa \@filehook at drop@extension\@curr at file \fi
+ \@expl@@@filehook at normalize@file at name@@w{#1}%
+ \if at tempswa \@expl@@@filehook at drop@extension@@N\@curr at file@reqd \fi}%
+ {\if at tempswa \@expl@@@filehook at drop@extension@@N\@curr at file \fi
\global\let\@curr at file@reqd\@curr at file}%
\endgroup}
%</2ekernel|latexrelease>
@@ -934,6 +967,15 @@
%
% \begin{macro}{\@filehook at set@CurrentFile}
% \begin{macro}{\@kernel at make@file at csname,\@set at curr@file at aux}
+%
+% \fmi{This should get internalized using \texttt{@expl@} names}
+% \begin{macrocode}
+%</2ekernel>
+%<*2ekernel|latexrelease>
+%<latexrelease>\IncludeInRelease{2020/10/01}%
+%<latexrelease> {\@kernel at make@file at csname}{Make file csname}%
+% \end{macrocode}
+%
% \begin{macrocode}
\def\@kernel at make@file at csname#1#2#3{%
\xdef#1{\expandafter\@set at curr@file at aux
@@ -948,35 +990,36 @@
.tex\else\string#1\fi}
% \end{macrocode}
%
-% \begin{macrocode}
-% \end{macrocode}
-%
-%
-% Then we call \cs{@filehook at set@curr at file} once for \cs{@curr at file}
+% Then we call \cs{@expl@@@filehook at set@curr at file@@N} once for \cs{@curr at file}
% to set \cs[no-index]{CurrentFile(Path)Used} and once for
% \cs{@curr at file@reqd} to set \cs[no-index]{CurrentFile(Path)}.
% Here too the slower route is only used if a substitution happened,
-% but here \cs{@kernel at if@file at replacedTF} can't be used because the
+% but here \cs{@expl@@@filehook at if@file at replaced@@TF} can't be used because the
% flag is reset at the \cs{endgroup} above, so we check if
% \cs{@curr at file} and \cs{@curr at file@reqd} differ. This macro is
% issued separate from \cs{set at curr@file} because it changes
% \cs{CurrentFile}, and side-effects would quickly get out of control.
% \begin{macrocode}
\def\@filehook at set@CurrentFile{%
- \@filehook at set@curr at file{\@curr at file}%
+ \@expl@@@filehook at set@curr at file@@N{\@curr at file}%
\CurrentFileUsed\CurrentFilePathUsed
\ifx\@curr at file@reqd\@curr at file
\let\CurrentFile\CurrentFileUsed
\let\CurrentFilePath\CurrentFilePathUsed
\else
- \@filehook at set@curr at file{\@curr at file@reqd}%
+ \@expl@@@filehook at set@curr at file@@N{\@curr at file@reqd}%
\CurrentFile\CurrentFilePath
\fi}
+%</2ekernel|latexrelease>
+%<latexrelease>\EndIncludeInRelease
+%<*2ekernel>
% \end{macrocode}
% \end{macro}
% \end{macro}
%
-% \begin{macro}{\@filehook at set@curr at file,
+%
+%
+% \begin{macro}{\@@_set_curr_file:N,
% \@@_set_curr_file:nNN,
% \@@_set_curr_file_assign:nnnNN}
% When inputting a file, \cs{set at curr@file} does a file lookup
@@ -989,10 +1032,17 @@
% \texttt{file.tex} end up as \texttt{file.tex} in \cs{CurrentFile}).
% The path is returned in \cs{CurrentFilePath}, in case it's needed.
% \begin{macrocode}
+%</2ekernel>
+%<*2ekernel|latexrelease>
+%<latexrelease>\IncludeInRelease{2020/10/01}%
+%<latexrelease> {@@_set_curr_file:N}{Set curr file}%
\ExplSyntaxOn
%<@@=filehook>
-\cs_new_protected:Npn \@filehook at set@curr at file #1
- { \exp_args:NV \@@_set_curr_file:nNN #1 }
+\cs_new_protected:Npn \@@_set_curr_file:N #1
+ { \exp_args:NV \@@_set_curr_file:nNN #1 }
+% \end{macrocode}
+%
+% \begin{macrocode}
\cs_new_protected:Npn \@@_set_curr_file:nNN #1
{
\@@_file_parse_full_name:nN {#1}
@@ -1003,20 +1053,32 @@
\str_set:Nn #5 {#1}
\str_set:Nn #4 {#2#3}
}
+\ExplSyntaxOff
+%</2ekernel|latexrelease>
+%<latexrelease>\EndIncludeInRelease
+%<*2ekernel>
% \end{macrocode}
% \end{macro}
%
+%
+%
+%
% \subsection{Replacing a file and detecting loops}
%
-% \begin{macro}{\@kernel at resolve@file at subst}
-% \begin{macro}{\@kernel at normalise@file at name}
+% \begin{macro}{\@@_resolve_file_subst:w}
+% \begin{macro}{\@@_normalize_file_name:w}
% \begin{macro}{\@@_file_name_compose:nnn}
% Start by sanitising the file with \cs{@@_file_parse_full_name:nN}
% then do \cs{@@_file_subst_begin:nnn}\Arg{path}\Arg{name}\Arg{ext}.
% \begin{macrocode}
-\cs_new:Npn \@kernel at resolve@file at subst #1 \@nil
+%</2ekernel>
+%<*2ekernel|latexrelease>
+%<latexrelease>\IncludeInRelease{2020/10/01}%
+%<latexrelease> {\@@_resolve_file_subst:w}{Replace files detect loops}%
+\ExplSyntaxOn
+\cs_new:Npn \@@_resolve_file_subst:w #1 \@nil
{ \@@_file_parse_full_name:nN {#1} \@@_file_subst_begin:nnn }
-\cs_new:Npn \@kernel at normalise@file at name #1 \@nil
+\cs_new:Npn \@@_normalize_file_name:w #1 \@nil
{ \@@_file_parse_full_name:nN {#1} \@@_file_name_compose:nnn }
\cs_new:Npn \@@_file_name_compose:nnn #1 #2 #3
{ \tl_if_empty:nF {#1} { #1 / } #2#3 }
@@ -1025,7 +1087,7 @@
% \end{macro}
%
% \begin{macro}{flag @@_file_replaced}
-% \begin{macro}{\@kernel at if@file at replacedTF}
+% \begin{macro}{\@@_if_file_replaced:TF}
% Since the file replacement is done expandably in a \cs{csname}, use
% a flag to remember if a substitution happened. We use this in
% \cs{set at curr@file} to short-circuit some of it in case no
@@ -1033,8 +1095,8 @@
% optimising).
% \begin{macrocode}
\flag_new:n { @@_file_replaced }
-\cs_new:Npn \@kernel at if@file at replacedTF #1 #2
- { \flag_if_raised:nTF { @@_file_replaced } {#1} {#2} }
+\cs_new:Npn \@@_if_file_replaced:TF #1 #2
+ { \flag_if_raised:nTF { @@_file_replaced } {#1} {#2} }
% \end{macrocode}
% \end{macro}
% \end{macro}
@@ -1052,9 +1114,16 @@
\@@_file_subst_tortoise_hare:nn { #2#3 } { #2#3 }
{ \@@_file_name_compose:nnn {#1} {#2} {#3} }
}
+\ExplSyntaxOff
+%</2ekernel|latexrelease>
+%<latexrelease>\EndIncludeInRelease
+%<*2ekernel>
% \end{macrocode}
% \end{macro}
%
+%
+%
+%
% \subsubsection{The Tortoise and Hare algorithm}
%
% \begin{macro}{\@@_file_subst_tortoise_hare:nn}
@@ -1094,6 +1163,11 @@
% algorithm will end; otherwise it will run until the Hare reaches
% the same spot as the tortoise and a loop is detected.
% \begin{macrocode}
+%</2ekernel>
+%<*2ekernel|latexrelease>
+%<latexrelease>\IncludeInRelease{2020/10/01}%
+%<latexrelease> {\@@_file_subst_tortoise_hare:nn}{Tortoise and Hare}%
+\ExplSyntaxOn
\cs_new:Npn \@@_file_subst_tortoise_hare:nn #1 #2 #3
{
\cs_if_exist:cTF { @file-subst@ #2 }
@@ -1159,10 +1233,16 @@
%
% \begin{macrocode}
\ExplSyntaxOff
-%<@@=>
+%</2ekernel|latexrelease>
+%<latexrelease>\EndIncludeInRelease
+%<*2ekernel>
% \end{macrocode}
%
%
+% \begin{macrocode}
+%<@@=>
+% \end{macrocode}
+%
%
% \subsection{Preventing a package from loading}
%
@@ -1219,8 +1299,6 @@
%
%
%
-%
-%
% \subsection{High-level interfaces for \LaTeX{}}
%
% None so far and the general feeling for now is that the hooks are
@@ -1232,13 +1310,84 @@
%
% \subsection{Internal commands needed elsewhere}
%
-% None so far.
+% Here we set up a few horrible (but consistent) \LaTeXe{} names to
+% allow for internal commands to be used outside this module (and
+% in parts that still use \LaTeXe{} syntax. We have to unset the
+% \texttt{@\/@} since we want double ``at'' sign in place of double
+% underscores.
+%
% \begin{macrocode}
%<@@=>
% \end{macrocode}
%
% \begin{macrocode}
%</2ekernel>
+%<*2ekernel|latexrelease>
+%<latexrelease>\IncludeInRelease{2020/10/01}%
+%<latexrelease> {\@expl@@@filehook at if@no at extension@@nTF}{2e tmp interfaces}%
+\ExplSyntaxOn
+% \end{macrocode}
+%
+% \begin{macrocode}
+\cs_new_eq:NN \@expl@@@filehook at if@no at extension@@nTF
+ \__filehook_if_no_extension:nTF
+% \end{macrocode}
+%
+% \begin{macrocode}
+\cs_new_eq:NN \@expl@@@filehook at set@curr at file@@N
+ \__filehook_set_curr_file:N
+% \end{macrocode}
+%
+% \begin{macrocode}
+\cs_new_eq:NN \@expl@@@filehook at resolve@file at subst@@w
+ \__filehook_resolve_file_subst:w
+% \end{macrocode}
+%
+% \begin{macrocode}
+\cs_new_eq:NN \@expl@@@filehook at normalize@file at name@@w
+ \__filehook_normalize_file_name:w
+% \end{macrocode}
+%
+% \begin{macrocode}
+\cs_new_eq:NN \@expl@@@filehook at if@file at replaced@@TF
+ \__filehook_if_file_replaced:TF
+
+% \end{macrocode}
+%
+% \begin{macrocode}
+\cs_new_eq:NN \@expl@@@filehook at drop@extension@@N
+ \__filehook_drop_extension:N
+% \end{macrocode}
+%
+% \begin{macrocode}
+\cs_new_eq:NN \@expl@@@filehook at file@push@@
+ \__filehook_file_push:
+% \end{macrocode}
+%
+% \begin{macrocode}
+\cs_new_eq:NN \@expl@@@filehook at file@pop@@
+ \__filehook_file_pop:
+% \end{macrocode}
+%
+% \begin{macrocode}
+\cs_new_eq:NN \@expl@@@filehook at file@pop at assign@@nnnn
+ \__filehook_file_pop_assign:nnnn
+% \end{macrocode}
+%
+%
+% \begin{macrocode}
+\ExplSyntaxOff
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</2ekernel|latexrelease>
+%<latexrelease>\EndIncludeInRelease
+%<*2ekernel>
+% \end{macrocode}
+%
+% This ends the kernel code in this file.
+% \begin{macrocode}
+%</2ekernel>
% \end{macrocode}
%
%
diff --git a/base/lthooks.dtx b/base/lthooks.dtx
index 1b94bc31..fbbcac62 100644
--- a/base/lthooks.dtx
+++ b/base/lthooks.dtx
@@ -32,7 +32,7 @@
%
% \begin{macrocode}
\def\lthooksversion{v1.0a}
-\def\lthooksdate{2020/08/21}
+\def\lthooksdate{2020/08/25}
% \end{macrocode}
%
%<*driver>
@@ -2050,7 +2050,7 @@
\@@_if_file_hook:wTF #1 / / \s_@@_mark
{
\exp_args:Ne \@@_try_declaring_generic_hook_split:nNNnn
- { \exp_args:Ne \@@_file_hook_normalise:n {#1} }
+ { \exp_args:Ne \@@_file_hook_normalize:n {#1} }
}
{ \@@_try_declaring_generic_hook_split:nNNnn {#1} }
}
@@ -2131,16 +2131,16 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[EXP]{\@@_file_hook_normalise:n}
+% \begin{macro}[EXP]{\@@_file_hook_normalize:n}
% \begin{macro}[EXP]{\@@_strip_double_slash:n,\@@_strip_double_slash:w}
% When a file-specific hook is found, before being declared it is
-% lightly normalized by \cs{@@_file_hook_normalise:n}. The current
+% lightly normalized by \cs{@@_file_hook_normalize:n}. The current
% implementation just replaces two consecutive slashes (|//|) by a
% single one, to cope with simple cases where the user did something
% like \verb|\def\input at path{{./mypath/}}|, in which case a hook would
% have to be \verb|\AddToHook{file/after/./mypath//file.tex}|.
% \begin{macrocode}
-\cs_new:Npn \@@_file_hook_normalise:n #1
+\cs_new:Npn \@@_file_hook_normalize:n #1
{ \@@_strip_double_slash:n {#1} }
\cs_new:Npn \@@_strip_double_slash:n #1
{ \@@_strip_double_slash:w #1 // \s_@@_mark }
@@ -3384,7 +3384,7 @@
\@@_if_file_hook:wTF #1 / / \s_@@_mark
{
\exp_args:Ne \@@_if_exist_use:n
- { \exp_args:Ne \@@_file_hook_normalise:n {#1} }
+ { \exp_args:Ne \@@_file_hook_normalize:n {#1} }
}
{ \@@_if_exist_use:n {#1} } % file/ generic hook (e.g. file/before)
}
diff --git a/base/ltshipout.dtx b/base/ltshipout.dtx
index 58f0615f..992e3972 100644
--- a/base/ltshipout.dtx
+++ b/base/ltshipout.dtx
@@ -32,7 +32,7 @@
%
% \begin{macrocode}
\providecommand\ltshipoutversion{v1.0a}
-\providecommand\ltshipoutdate{2020/08/21}
+\providecommand\ltshipoutdate{2020/08/25}
% \end{macrocode}
%
%<*driver>
@@ -1430,15 +1430,19 @@
% \end{macrocode}
% \end{macro}
%
+% \begin{macrocode}
+\ExplSyntaxOff
+%</2ekernel|latexrelease>
+%<latexrelease>\EndIncludeInRelease
+% \end{macrocode}
%
%
% Rolling back here doesn't undefine the interface commands as they
% may be used in packages without rollback functionality. So we
% just make them do nothing which may or may not work depending on
% the code usage.
+%
% \begin{macrocode}
-%</2ekernel|latexrelease>
-%<latexrelease>\EndIncludeInRelease
%<latexrelease>\IncludeInRelease{0000/00/00}%
%<latexrelease> {\shipout}{The hook management (shipout)}%
%<latexrelease>\expandafter\let\expandafter\shipout\csname tex_shipout:D\endcsname
@@ -1518,15 +1522,15 @@
% This package has only one public command to simulating it is easy
% and actually sensible to provide as part of the kernel.
% \begin{macrocode}
+%</2ekernel>
+%<*2ekernel|latexrelease>
+%<latexrelease>\IncludeInRelease{2020/10/01}%
+%<latexrelease> {\AtEndDvi}{atenddvi emulation}%
+\ExplSyntaxOn
\cs_new:Npn \AtEndDvi {\AddToHook{shipout/lastpage}}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macrocode}
\ExplSyntaxOff
% \end{macrocode}
-%
-% As the package is integrate we prevent loading:
+% As the package is integrate we prevent loading (no need to roll that back):
% \begin{macrocode}
\disable at package@load{atenddvi}
{\PackageWarning{atenddvi}
@@ -1537,6 +1541,21 @@
Found on}}
% \end{macrocode}
%
+% \begin{macrocode}
+%</2ekernel|latexrelease>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<latexrelease>\EndIncludeInRelease
+%<latexrelease>\IncludeInRelease{0000/00/00}%
+%<latexrelease> {\AtEndDvi}{atenddvi emulation}%
+%<latexrelease>\let \AtEndDvi \@undefined
+%<latexrelease>\EndIncludeInRelease
+%<*2ekernel>
+% \end{macrocode}
+% \end{macro}
+%
+%
%
% \begin{macrocode}
%</2ekernel>
diff --git a/base/testfiles-lthooks/lthooks-errors.lvt b/base/testfiles-lthooks/lthooks-errors.lvt
index 68523490..7beac3bc 100644
--- a/base/testfiles-lthooks/lthooks-errors.lvt
+++ b/base/testfiles-lthooks/lthooks-errors.lvt
@@ -28,7 +28,7 @@
\ShowHook{xxx}
\makeatletter
-\@filehook at file@pop
+\@expl@@@filehook at file@pop@@
\ExplSyntaxOn
\__hook_curr_name_pop:
diff --git a/base/testfiles-lthooks/lthooks-errors.tlg b/base/testfiles-lthooks/lthooks-errors.tlg
index c4fa1748..307c0e93 100644
--- a/base/testfiles-lthooks/lthooks-errors.tlg
+++ b/base/testfiles-lthooks/lthooks-errors.tlg
@@ -36,7 +36,7 @@ The hook 'xxx':
(hooks) Please report at https://github.com/latex3/latex2e.
Type <return> to continue.
...
-l. ...\@filehook at file@pop
+l. ...\@expl@@@filehook at file@pop@@
LaTeX does not know anything more about this error, sorry.
Try typing <return> to proceed.
If that doesn't work, type X <return> to quit.
diff --git a/base/testfiles/tlb-latexrelease-rollback-003-often.luatex.tlg b/base/testfiles/tlb-latexrelease-rollback-003-often.luatex.tlg
index 2bd5304a..ff1cc015 100644
--- a/base/testfiles/tlb-latexrelease-rollback-003-often.luatex.tlg
+++ b/base/testfiles/tlb-latexrelease-rollback-003-often.luatex.tlg
@@ -166,19 +166,28 @@ Skipping: [....-..-..] Make commands robust on input line ....
Applying: [....-..-..] Make commands robust on input line ....
Skipping: [....-..-..] Hook management file on input line ....
Applying: [....-..-..] Hook management file on input line ....
+Skipping: [....-..-..] File helpers on input line ....
Skipping: [....-..-..] Hook management (files) on input line ....
Skipping: [....-..-..] Hook management (files) on input line ....
Applying: [....-..-..] Hook management (files) on input line ....
+Skipping: [....-..-..] Declaring file substitution on input line ....
Skipping: [....-..-..] File substitution on input line ....
Applying: [....-..-..] File substitution on input line ....
Skipping: [....-..-..] Setting current file name on input line ....
Skipping: [....-..-..] Setting current file name on input line ....
Applying: [....-..-..] Setting current file name on input line ....
+Skipping: [....-..-..] Make file csname on input line ....
+Skipping: [....-..-..] Set curr file on input line ....
+Skipping: [....-..-..] Replace files detect loops on input line ....
+Skipping: [....-..-..] Tortoise and Hare on input line ....
Skipping: [....-..-..] Disable packages on input line ....
Applying: [....-..-..] Disable packages on input line ....
+Skipping: [....-..-..] 2e tmp interfaces on input line ....
Skipping: [....-..-..] Hook mangement (shipout) on input line ....
Applying: [....-..-..] The hook management (shipout) on input line ....
LaTeX Info: Redefining \AtBeginDvi on input line ....
+Skipping: [....-..-..] atenddvi emulation on input line ....
+Applying: [....-..-..] atenddvi emulation on input line ....
Skipping: [....-..-..] Extended float list on input line ....
Applying: [....-..-..] Extended float list on input line ....
Skipping: [....-..-..] Check depth of page on input line ....
@@ -598,20 +607,29 @@ LaTeX Info: Redefining \markright on input line ....
Already applied: [....-..-..] Make commands robust on input line ....
Skipping: [....-..-..] Hook management file on input line ....
Applying: [....-..-..] Hook management file on input line ....
+Skipping: [....-..-..] File helpers on input line ....
Skipping: [....-..-..] Hook management (files) on input line ....
Applying: [....-..-..] Hook management (files) on input line ....
LaTeX Info: Redefining \InputIfFileExists on input line ....
Already applied: [....-..-..] Hook management (files) on input line ....
+Skipping: [....-..-..] Declaring file substitution on input line ....
Skipping: [....-..-..] File substitution on input line ....
Applying: [....-..-..] File substitution on input line ....
Skipping: [....-..-..] Setting current file name on input line ....
Applying: [....-..-..] Setting current file name on input line ....
Already applied: [....-..-..] Setting current file name on input line ....
+Skipping: [....-..-..] Make file csname on input line ....
+Skipping: [....-..-..] Set curr file on input line ....
+Skipping: [....-..-..] Replace files detect loops on input line ....
+Skipping: [....-..-..] Tortoise and Hare on input line ....
Skipping: [....-..-..] Disable packages on input line ....
Applying: [....-..-..] Disable packages on input line ....
+Skipping: [....-..-..] 2e tmp interfaces on input line ....
Skipping: [....-..-..] Hook mangement (shipout) on input line ....
Applying: [....-..-..] The hook management (shipout) on input line ....
LaTeX Info: Redefining \AtBeginDvi on input line ....
+Skipping: [....-..-..] atenddvi emulation on input line ....
+Applying: [....-..-..] atenddvi emulation on input line ....
Applying: [....-..-..] Extended float list on input line ....
\bx at S=\insert...
\bx at T=\insert...
diff --git a/base/testfiles/tlb-latexrelease-rollback-003-often.tlg b/base/testfiles/tlb-latexrelease-rollback-003-often.tlg
index 2d3824d6..0f79680a 100644
--- a/base/testfiles/tlb-latexrelease-rollback-003-often.tlg
+++ b/base/testfiles/tlb-latexrelease-rollback-003-often.tlg
@@ -164,19 +164,28 @@ Skipping: [....-..-..] Make commands robust on input line ....
Applying: [....-..-..] Make commands robust on input line ....
Skipping: [....-..-..] Hook management file on input line ....
Applying: [....-..-..] Hook management file on input line ....
+Skipping: [....-..-..] File helpers on input line ....
Skipping: [....-..-..] Hook management (files) on input line ....
Skipping: [....-..-..] Hook management (files) on input line ....
Applying: [....-..-..] Hook management (files) on input line ....
+Skipping: [....-..-..] Declaring file substitution on input line ....
Skipping: [....-..-..] File substitution on input line ....
Applying: [....-..-..] File substitution on input line ....
Skipping: [....-..-..] Setting current file name on input line ....
Skipping: [....-..-..] Setting current file name on input line ....
Applying: [....-..-..] Setting current file name on input line ....
+Skipping: [....-..-..] Make file csname on input line ....
+Skipping: [....-..-..] Set curr file on input line ....
+Skipping: [....-..-..] Replace files detect loops on input line ....
+Skipping: [....-..-..] Tortoise and Hare on input line ....
Skipping: [....-..-..] Disable packages on input line ....
Applying: [....-..-..] Disable packages on input line ....
+Skipping: [....-..-..] 2e tmp interfaces on input line ....
Skipping: [....-..-..] Hook mangement (shipout) on input line ....
Applying: [....-..-..] The hook management (shipout) on input line ....
LaTeX Info: Redefining \AtBeginDvi on input line ....
+Skipping: [....-..-..] atenddvi emulation on input line ....
+Applying: [....-..-..] atenddvi emulation on input line ....
Skipping: [....-..-..] Extended float list on input line ....
Applying: [....-..-..] Extended float list on input line ....
Skipping: [....-..-..] Check depth of page on input line ....
@@ -590,20 +599,29 @@ LaTeX Info: Redefining \markright on input line ....
Already applied: [....-..-..] Make commands robust on input line ....
Skipping: [....-..-..] Hook management file on input line ....
Applying: [....-..-..] Hook management file on input line ....
+Skipping: [....-..-..] File helpers on input line ....
Skipping: [....-..-..] Hook management (files) on input line ....
Applying: [....-..-..] Hook management (files) on input line ....
LaTeX Info: Redefining \InputIfFileExists on input line ....
Already applied: [....-..-..] Hook management (files) on input line ....
+Skipping: [....-..-..] Declaring file substitution on input line ....
Skipping: [....-..-..] File substitution on input line ....
Applying: [....-..-..] File substitution on input line ....
Skipping: [....-..-..] Setting current file name on input line ....
Applying: [....-..-..] Setting current file name on input line ....
Already applied: [....-..-..] Setting current file name on input line ....
+Skipping: [....-..-..] Make file csname on input line ....
+Skipping: [....-..-..] Set curr file on input line ....
+Skipping: [....-..-..] Replace files detect loops on input line ....
+Skipping: [....-..-..] Tortoise and Hare on input line ....
Skipping: [....-..-..] Disable packages on input line ....
Applying: [....-..-..] Disable packages on input line ....
+Skipping: [....-..-..] 2e tmp interfaces on input line ....
Skipping: [....-..-..] Hook mangement (shipout) on input line ....
Applying: [....-..-..] The hook management (shipout) on input line ....
LaTeX Info: Redefining \AtBeginDvi on input line ....
+Skipping: [....-..-..] atenddvi emulation on input line ....
+Applying: [....-..-..] atenddvi emulation on input line ....
Applying: [....-..-..] Extended float list on input line ....
\bx at S=\insert...
\bx at T=\insert...
diff --git a/base/testfiles/tlb-latexrelease-rollback-003-often.xetex.tlg b/base/testfiles/tlb-latexrelease-rollback-003-often.xetex.tlg
index 7bbd6b2f..7ffe60b4 100644
--- a/base/testfiles/tlb-latexrelease-rollback-003-often.xetex.tlg
+++ b/base/testfiles/tlb-latexrelease-rollback-003-often.xetex.tlg
@@ -164,19 +164,28 @@ Skipping: [....-..-..] Make commands robust on input line ....
Applying: [....-..-..] Make commands robust on input line ....
Skipping: [....-..-..] Hook management file on input line ....
Applying: [....-..-..] Hook management file on input line ....
+Skipping: [....-..-..] File helpers on input line ....
Skipping: [....-..-..] Hook management (files) on input line ....
Skipping: [....-..-..] Hook management (files) on input line ....
Applying: [....-..-..] Hook management (files) on input line ....
+Skipping: [....-..-..] Declaring file substitution on input line ....
Skipping: [....-..-..] File substitution on input line ....
Applying: [....-..-..] File substitution on input line ....
Skipping: [....-..-..] Setting current file name on input line ....
Skipping: [....-..-..] Setting current file name on input line ....
Applying: [....-..-..] Setting current file name on input line ....
+Skipping: [....-..-..] Make file csname on input line ....
+Skipping: [....-..-..] Set curr file on input line ....
+Skipping: [....-..-..] Replace files detect loops on input line ....
+Skipping: [....-..-..] Tortoise and Hare on input line ....
Skipping: [....-..-..] Disable packages on input line ....
Applying: [....-..-..] Disable packages on input line ....
+Skipping: [....-..-..] 2e tmp interfaces on input line ....
Skipping: [....-..-..] Hook mangement (shipout) on input line ....
Applying: [....-..-..] The hook management (shipout) on input line ....
LaTeX Info: Redefining \AtBeginDvi on input line ....
+Skipping: [....-..-..] atenddvi emulation on input line ....
+Applying: [....-..-..] atenddvi emulation on input line ....
Skipping: [....-..-..] Extended float list on input line ....
Applying: [....-..-..] Extended float list on input line ....
Skipping: [....-..-..] Check depth of page on input line ....
@@ -599,20 +608,29 @@ LaTeX Info: Redefining \markright on input line ....
Already applied: [....-..-..] Make commands robust on input line ....
Skipping: [....-..-..] Hook management file on input line ....
Applying: [....-..-..] Hook management file on input line ....
+Skipping: [....-..-..] File helpers on input line ....
Skipping: [....-..-..] Hook management (files) on input line ....
Applying: [....-..-..] Hook management (files) on input line ....
LaTeX Info: Redefining \InputIfFileExists on input line ....
Already applied: [....-..-..] Hook management (files) on input line ....
+Skipping: [....-..-..] Declaring file substitution on input line ....
Skipping: [....-..-..] File substitution on input line ....
Applying: [....-..-..] File substitution on input line ....
Skipping: [....-..-..] Setting current file name on input line ....
Applying: [....-..-..] Setting current file name on input line ....
Already applied: [....-..-..] Setting current file name on input line ....
+Skipping: [....-..-..] Make file csname on input line ....
+Skipping: [....-..-..] Set curr file on input line ....
+Skipping: [....-..-..] Replace files detect loops on input line ....
+Skipping: [....-..-..] Tortoise and Hare on input line ....
Skipping: [....-..-..] Disable packages on input line ....
Applying: [....-..-..] Disable packages on input line ....
+Skipping: [....-..-..] 2e tmp interfaces on input line ....
Skipping: [....-..-..] Hook mangement (shipout) on input line ....
Applying: [....-..-..] The hook management (shipout) on input line ....
LaTeX Info: Redefining \AtBeginDvi on input line ....
+Skipping: [....-..-..] atenddvi emulation on input line ....
+Applying: [....-..-..] atenddvi emulation on input line ....
Applying: [....-..-..] Extended float list on input line ....
\bx at S=\insert...
\bx at T=\insert...
diff --git a/base/testfiles/tlb-rollback-004-often.luatex.tlg b/base/testfiles/tlb-rollback-004-often.luatex.tlg
index 78eb0581..a8aecfb5 100644
--- a/base/testfiles/tlb-rollback-004-often.luatex.tlg
+++ b/base/testfiles/tlb-rollback-004-often.luatex.tlg
@@ -220,20 +220,29 @@ LaTeX Info: Redefining \markright on input line ....
Already applied: [....-..-..] Make commands robust on input line ....
Skipping: [....-..-..] Hook management file on input line ....
Applying: [....-..-..] Hook management file on input line ....
+Skipping: [....-..-..] File helpers on input line ....
Skipping: [....-..-..] Hook management (files) on input line ....
Applying: [....-..-..] Hook management (files) on input line ....
LaTeX Info: Redefining \InputIfFileExists on input line ....
Already applied: [....-..-..] Hook management (files) on input line ....
+Skipping: [....-..-..] Declaring file substitution on input line ....
Skipping: [....-..-..] File substitution on input line ....
Applying: [....-..-..] File substitution on input line ....
Skipping: [....-..-..] Setting current file name on input line ....
Applying: [....-..-..] Setting current file name on input line ....
Already applied: [....-..-..] Setting current file name on input line ....
+Skipping: [....-..-..] Make file csname on input line ....
+Skipping: [....-..-..] Set curr file on input line ....
+Skipping: [....-..-..] Replace files detect loops on input line ....
+Skipping: [....-..-..] Tortoise and Hare on input line ....
Skipping: [....-..-..] Disable packages on input line ....
Applying: [....-..-..] Disable packages on input line ....
+Skipping: [....-..-..] 2e tmp interfaces on input line ....
Skipping: [....-..-..] Hook mangement (shipout) on input line ....
Applying: [....-..-..] The hook management (shipout) on input line ....
LaTeX Info: Redefining \AtBeginDvi on input line ....
+Skipping: [....-..-..] atenddvi emulation on input line ....
+Applying: [....-..-..] atenddvi emulation on input line ....
Applying: [....-..-..] Extended float list on input line ....
\bx at S=\insert...
\bx at T=\insert...
diff --git a/base/testfiles/tlb-rollback-004-often.tlg b/base/testfiles/tlb-rollback-004-often.tlg
index aa1e605b..ceb14d9b 100644
--- a/base/testfiles/tlb-rollback-004-often.tlg
+++ b/base/testfiles/tlb-rollback-004-often.tlg
@@ -218,20 +218,29 @@ LaTeX Info: Redefining \markright on input line ....
Already applied: [....-..-..] Make commands robust on input line ....
Skipping: [....-..-..] Hook management file on input line ....
Applying: [....-..-..] Hook management file on input line ....
+Skipping: [....-..-..] File helpers on input line ....
Skipping: [....-..-..] Hook management (files) on input line ....
Applying: [....-..-..] Hook management (files) on input line ....
LaTeX Info: Redefining \InputIfFileExists on input line ....
Already applied: [....-..-..] Hook management (files) on input line ....
+Skipping: [....-..-..] Declaring file substitution on input line ....
Skipping: [....-..-..] File substitution on input line ....
Applying: [....-..-..] File substitution on input line ....
Skipping: [....-..-..] Setting current file name on input line ....
Applying: [....-..-..] Setting current file name on input line ....
Already applied: [....-..-..] Setting current file name on input line ....
+Skipping: [....-..-..] Make file csname on input line ....
+Skipping: [....-..-..] Set curr file on input line ....
+Skipping: [....-..-..] Replace files detect loops on input line ....
+Skipping: [....-..-..] Tortoise and Hare on input line ....
Skipping: [....-..-..] Disable packages on input line ....
Applying: [....-..-..] Disable packages on input line ....
+Skipping: [....-..-..] 2e tmp interfaces on input line ....
Skipping: [....-..-..] Hook mangement (shipout) on input line ....
Applying: [....-..-..] The hook management (shipout) on input line ....
LaTeX Info: Redefining \AtBeginDvi on input line ....
+Skipping: [....-..-..] atenddvi emulation on input line ....
+Applying: [....-..-..] atenddvi emulation on input line ....
Applying: [....-..-..] Extended float list on input line ....
\bx at S=\insert...
\bx at T=\insert...
diff --git a/base/testfiles/tlb-rollback-004-often.xetex.tlg b/base/testfiles/tlb-rollback-004-often.xetex.tlg
index 2b620bde..d19157ed 100644
--- a/base/testfiles/tlb-rollback-004-often.xetex.tlg
+++ b/base/testfiles/tlb-rollback-004-often.xetex.tlg
@@ -218,20 +218,29 @@ LaTeX Info: Redefining \markright on input line ....
Already applied: [....-..-..] Make commands robust on input line ....
Skipping: [....-..-..] Hook management file on input line ....
Applying: [....-..-..] Hook management file on input line ....
+Skipping: [....-..-..] File helpers on input line ....
Skipping: [....-..-..] Hook management (files) on input line ....
Applying: [....-..-..] Hook management (files) on input line ....
LaTeX Info: Redefining \InputIfFileExists on input line ....
Already applied: [....-..-..] Hook management (files) on input line ....
+Skipping: [....-..-..] Declaring file substitution on input line ....
Skipping: [....-..-..] File substitution on input line ....
Applying: [....-..-..] File substitution on input line ....
Skipping: [....-..-..] Setting current file name on input line ....
Applying: [....-..-..] Setting current file name on input line ....
Already applied: [....-..-..] Setting current file name on input line ....
+Skipping: [....-..-..] Make file csname on input line ....
+Skipping: [....-..-..] Set curr file on input line ....
+Skipping: [....-..-..] Replace files detect loops on input line ....
+Skipping: [....-..-..] Tortoise and Hare on input line ....
Skipping: [....-..-..] Disable packages on input line ....
Applying: [....-..-..] Disable packages on input line ....
+Skipping: [....-..-..] 2e tmp interfaces on input line ....
Skipping: [....-..-..] Hook mangement (shipout) on input line ....
Applying: [....-..-..] The hook management (shipout) on input line ....
LaTeX Info: Redefining \AtBeginDvi on input line ....
+Skipping: [....-..-..] atenddvi emulation on input line ....
+Applying: [....-..-..] atenddvi emulation on input line ....
Applying: [....-..-..] Extended float list on input line ....
\bx at S=\insert...
\bx at T=\insert...
More information about the latex3-commits
mailing list.