diff options
Diffstat (limited to 'Master/texmf-dist/source/latex-dev/base/ltclass.dtx')
-rw-r--r-- | Master/texmf-dist/source/latex-dev/base/ltclass.dtx | 72 |
1 files changed, 66 insertions, 6 deletions
diff --git a/Master/texmf-dist/source/latex-dev/base/ltclass.dtx b/Master/texmf-dist/source/latex-dev/base/ltclass.dtx index 44fe0f88567..b639ae9410a 100644 --- a/Master/texmf-dist/source/latex-dev/base/ltclass.dtx +++ b/Master/texmf-dist/source/latex-dev/base/ltclass.dtx @@ -33,7 +33,7 @@ %<*driver> % \fi \ProvidesFile{ltclass.dtx} - [2020/09/06 v1.3q LaTeX Kernel (Class & Package Interface)] + [2020/10/18 v1.3t LaTeX Kernel (Class & Package Interface)] % \iffalse \documentclass{ltxdoc} \GetFileInfo{ltclass.dtx} @@ -561,6 +561,7 @@ % |#4| Rest of the stack. % \changes{v1.3l}{2020/06/05}{Added \cs{@expl@push@filename@@} % and \cs{@expl@push@filename@aux@@}} +% \changes{v1.3s}{2020/10/08}{Added missing 2020/02/02 \cs{IncludeInRelease}} % \begin{macrocode} %</2ekernel> %<*2ekernel|latexrelease> @@ -586,6 +587,27 @@ \@currnamestack}% \@expl@push@filename@aux@@} %<latexrelease>\EndIncludeInRelease +% \end{macrocode} +% +% The following version of \cs{@pushfilename} didn't formally exist in +% this file, but in the 2020/02/02 release, \pkg{expl3} was preloaded +% and it patched \cs{@pushfilename} (and \cs{@popfilename}) by adding +% some hooks in there. But rolling back to 2020/02/02, \pkg{expl3} +% doesn't patch these macros again, so rolling back has to take those +% hooks into account. Same goes for \cs{@popfilename}. +% \begin{macrocode} +%<latexrelease> +%<latexrelease>\IncludeInRelease{2020/02/02}{\@pushfilename}% +%<latexrelease> {Add \@expl@push@filename@@}% +%<latexrelease>\def\@pushfilename{% +%<latexrelease> \@expl@push@filename@@ +%<latexrelease> \xdef\@currnamestack{% +%<latexrelease> {\@currname}% +%<latexrelease> {\@currext}% +%<latexrelease> {\the\catcode`\@}% +%<latexrelease> \@currnamestack}% +%<latexrelease> \@expl@push@filename@aux@@} +%<latexrelease>\EndIncludeInRelease %<latexrelease> %<latexrelease>\IncludeInRelease{0000/00/00}{\@pushfilename}% %<latexrelease> {Add \@expl@push@filename@@ and \@expl@push@filename@aux@@}% @@ -613,6 +635,12 @@ \@expl@pop@filename@@} %<latexrelease>\EndIncludeInRelease %<latexrelease> +%<latexrelease>\IncludeInRelease{2020/02/02}{\@popfilename}% +%<latexrelease> {Add \@expl@push@filename@@}% +%<latexrelease>\def\@popfilename{\expandafter\@p@pfilename\@currnamestack\@nil +%<latexrelease> \@expl@pop@filename@@} +%<latexrelease>\EndIncludeInRelease +%<latexrelease> %<latexrelease>\IncludeInRelease{0000/00/00}{\@popfilename}% %<latexrelease> {Add \@expl@push@filename@@ and \@expl@push@filename@aux@@}% %<latexrelease>\def\@popfilename{\expandafter\@p@pfilename\@currnamestack\@nil} @@ -906,14 +934,18 @@ % be cautious when handling the identification string in case it % contains UTF-8 characters. % \changes{v1.3e}{2019/11/29}{Protect package info text (gh/52)} +% \changes{v1.3r}{2020/10/01}{Allow for package subsitution} % \begin{macrocode} %</2ekernel> %<*2ekernel|latexrelease> -%<latexrelease>\IncludeInRelease{2020/02/02}% -%<latexrelease> {\@pr@videpackage}{Protection for package info}% +%<latexrelease>\IncludeInRelease{2020/10/01}% +%<latexrelease> {\@pr@videpackage}{Allow for package subsitution}% \def\@pr@videpackage[#1]{% \expandafter\protected@xdef % <-- protected... - \csname ver@\@currname.\@currext\endcsname{#1}% + \csname ver@\@currname.\@currext\endcsname{#1}% Loaded 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 @@ -938,6 +970,19 @@ % \begin{macrocode} %</2ekernel|latexrelease> %<latexrelease>\EndIncludeInRelease +%<latexrelease>\IncludeInRelease{2020/02/02}% +%<latexrelease> {\@pr@videpackage}{Protection for package info}% +%<latexrelease> +%<latexrelease>\def\@pr@videpackage[#1]{% +%<latexrelease> \expandafter\protected@xdef % <-- protected... +%<latexrelease> \csname ver@\@currname.\@currext\endcsname{#1}% +%<latexrelease>\ifx\@currext\@clsextension +%<latexrelease> \typeout{Document Class: \@gtempa\space#1}% +%<latexrelease> \else +%<latexrelease> \protected@wlog{Package: \@gtempa\space#1}% <--- protected +%<latexrelease> \fi} +%<latexrelease> +%<latexrelease>\EndIncludeInRelease %<latexrelease>\IncludeInRelease{0000/00/00}% %<latexrelease> {\@pr@videpackage}{Protection for package info}% %<latexrelease> @@ -1020,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,}% @@ -1757,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 @@ -1766,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} @@ -1792,7 +1848,11 @@ \@popfilename \@reset@ptions} % \end{macrocode} -% +% +% \begin{macrocode} +\let\@currpkg@reqd\@empty +% \end{macrocode} +% % \begin{macrocode} \@onlypreamble\@onefilewithoptions % \end{macrocode} |