summaryrefslogtreecommitdiff
path: root/macros/latex/base/ltclass.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/base/ltclass.dtx')
-rw-r--r--macros/latex/base/ltclass.dtx26
1 files changed, 21 insertions, 5 deletions
diff --git a/macros/latex/base/ltclass.dtx b/macros/latex/base/ltclass.dtx
index e771044e66..b639ae9410 100644
--- a/macros/latex/base/ltclass.dtx
+++ b/macros/latex/base/ltclass.dtx
@@ -33,7 +33,7 @@
%<*driver>
% \fi
\ProvidesFile{ltclass.dtx}
- [2020/10/08 v1.3s LaTeX Kernel (Class & Package Interface)]
+ [2020/10/18 v1.3t LaTeX Kernel (Class & Package Interface)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{ltclass.dtx}
@@ -943,8 +943,9 @@
\def\@pr@videpackage[#1]{%
\expandafter\protected@xdef % <-- protected...
\csname ver@\@currname.\@currext\endcsname{#1}% Loaded package
- \expandafter\protected@xdef % <-- protected...
- \csname ver@\@currpkg@reqd\endcsname{#1}% Requested package
+ \expandafter\let
+ \csname ver@\@currpkg@reqd\expandafter\endcsname % Requested package
+ \csname ver@\@currname.\@currext\endcsname
\ifx\@currext\@clsextension
\typeout{Document Class: \@gtempa\space#1}%
\else
@@ -1064,13 +1065,16 @@
% \begin{macro}{\PassOptionsToClass}
% If the package has been loaded, we check that it was first loaded with
% the options. Otherwise we add the option list to that of the package.
+% \changes{v1.3t}{2020/10/18}{Drop path from \cs{input@path} (gh/414).}
% \begin{macrocode}
%</2ekernel>
%<latexrelease>\IncludeInRelease{2020/10/01}{\@pass@ptions}
%<latexrelease> {Add file replacement in \@pass@ptions}%
%<*2ekernel|latexrelease>
\def\@pass@ptions#1#2#3{%
- \edef\reserved@a{\@expl@@@filehook@resolve@file@subst@@w #3.#1\@nil}%
+ \@expl@@@filehook@set@curr@file@@nNN
+ {\@expl@@@filehook@resolve@file@subst@@w #3.#1\@nil}%
+ \reserved@a\reserved@b
\expandafter\xdef\csname opt@\reserved@a\endcsname{%
\@ifundefined{opt@\reserved@a}\@empty
{\csname opt@\reserved@a\endcsname,}%
@@ -1801,7 +1805,13 @@
% \cs{@currext} are used we lose track of the substitution, so
% \cs{CurrentFile} and \cs{CurrentFileUsed} will be (incorrectly)
% the same.
+%
+% \changes{v1.3t}{2020-10-11}{Restore \cs{@currpkg@reqd} after
+% finished loading a package file (gh/408).}
% \begin{macrocode}
+ \expandafter\@swaptwoargs\expandafter
+ {\expandafter{\@currpkg@reqd}}%
+ {% <
\edef\@currpkg@reqd{\@currname.\@currext}%
\ifx\CurrentFile\CurrentFileUsed
\else
@@ -1810,6 +1820,8 @@
\edef\@currext{\string@makeletter\filename@ext}%
\fi
\load@onefile@withoptions{#2}%
+ \def\@currpkg@reqd%{\@currpkg@reqd}
+ }% >
% \end{macrocode}
% Now just clean up and exit.
% \begin{macrocode}
@@ -1836,7 +1848,11 @@
\@popfilename
\@reset@ptions}
% \end{macrocode}
-%
+%
+% \begin{macrocode}
+\let\@currpkg@reqd\@empty
+% \end{macrocode}
+%
% \begin{macrocode}
\@onlypreamble\@onefilewithoptions
% \end{macrocode}