diff options
author | Norbert Preining <norbert@preining.info> | 2022-11-03 03:05:14 +0000 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2022-11-03 03:05:14 +0000 |
commit | c3c9975778ff2848e51f6debf733abe8ca930bd3 (patch) | |
tree | 034fcccacf40343842462b161df1764d3a7a41af /macros/latex-dev/base/ltclass.dtx | |
parent | 2281af8ba8fd52341e706f3979712f3280fcfdad (diff) |
CTAN sync 202211030305
Diffstat (limited to 'macros/latex-dev/base/ltclass.dtx')
-rw-r--r-- | macros/latex-dev/base/ltclass.dtx | 39 |
1 files changed, 26 insertions, 13 deletions
diff --git a/macros/latex-dev/base/ltclass.dtx b/macros/latex-dev/base/ltclass.dtx index 35c4251fce..a525b6f573 100644 --- a/macros/latex-dev/base/ltclass.dtx +++ b/macros/latex-dev/base/ltclass.dtx @@ -33,7 +33,7 @@ %<*driver> % \fi \ProvidesFile{ltclass.dtx} - [2022/06/20 v1.5c LaTeX Kernel (Class & Package Interface)] + [2022/10/22 v1.5e LaTeX Kernel (Class & Package Interface)] % \iffalse \documentclass{ltxdoc} \GetFileInfo{ltclass.dtx} @@ -1302,7 +1302,10 @@ {\@expl@@@filehook@resolve@file@subst@@w #3.#1\@nil}% \reserved@a\reserved@b \@expl@@@filehook@clear@replacement@flag@@ - \expandafter\xdef\csname opt@\reserved@a\endcsname{% +% \end{macrocode} +% \changes{v1.5d}{2022/10/10}{Use \cs{protected@xdef}.} +% \begin{macrocode} + \expandafter\protected@xdef\csname opt@\reserved@a\endcsname{% \@ifundefined{opt@\reserved@a}\@empty {\csname opt@\reserved@a\endcsname,}% \zap@space#2 \@empty}% @@ -1476,10 +1479,12 @@ % {Star form added.} % \changes{v0.2c}{1993/11/17} % {restoring \cs{@fileswith@pti@ns} added.} +% \changes{v1.5d}{2022/10/10} +% {Use \cs{protected@edef}.} % \begin{macrocode} \def\ProcessOptions{% \let\ds@\@empty - \edef\@curroptions{\@ptionlist{\@currname.\@currext}}% + \protected@edef\@curroptions{\@ptionlist{\@currname.\@currext}}% \@ifstar\@xprocess@ptions\@process@ptions} \@onlypreamble\ProcessOptions % \end{macrocode} @@ -1505,6 +1510,7 @@ % \changes{v0.2y}{1994/02/07} % {Add extra ,s so `two' is not matched with `twocolumn'} % \changes{v1.3z}{2021/03/05}{modify so braces to not give errors (gh/513)} +% \changes{v1.5e}{2022/10/22}{Use \cs{detokenize}} % \begin{macrocode} %</2ekernel> %<latexrelease>\IncludeInRelease{2021/06/01}% @@ -1515,7 +1521,7 @@ \ifx\@classoptionslist\relax\else \@for\CurrentOption:=\@classoptionslist\do{% \ifx\CurrentOption\@empty\else - \@ifundefined{ds@\CurrentOption}{}{% + \@ifundefined{ds@\detokenize\expandafter{\CurrentOption}}{}{% \@use@ption \expandafter\let\csname ds@\CurrentOption\endcsname\@empty }% @@ -1552,6 +1558,7 @@ % \end{macrocode} % % The common part of |\ProcessOptions| and |\ProcessOptions*|. +% \changes{v1.5e}{2022/10/22}{Use \cs{detokenize}} % \begin{macrocode} %</2ekernel> %<*2ekernel|latexrelease> @@ -1559,7 +1566,7 @@ %<latexrelease> {\@process@pti@ns}{Unused options issue}% \def\@process@pti@ns{% \@for\CurrentOption:=\@curroptions\do{% - \@ifundefined{ds@\CurrentOption}% + \@ifundefined{ds@\detokenize\expandafter{\CurrentOption}}% {\@use@ption \default@ds}% % \end{macrocode} @@ -1627,6 +1634,7 @@ % \changes{v1.0e}{1994/05/17} % {Execute option after removing from list, not before} % \changes{v1.3x}{2021/02/18}{filter out =value from unused option list (gh/85)} +% \changes{v1.5e}{2022/10/22}{Use \cs{detokenize}} % \begin{macrocode} %</2ekernel> %<latexrelease>\IncludeInRelease{2021/06/01}% @@ -1636,7 +1644,7 @@ \@expandtwoargs\@removeelement {\expandafter\@remove@eq@value\CurrentOption=\@nil}% \@unusedoptionlist\@unusedoptionlist - \csname ds@\CurrentOption\endcsname} + \csname ds@\detokenize\expandafter{\CurrentOption}\endcsname} %</2ekernel|latexrelease> %<latexrelease>\EndIncludeInRelease %<latexrelease>\IncludeInRelease{0000/00/00}% @@ -1988,6 +1996,7 @@ % \changes{v2.1b}{2016/11/09} % {Improve \cs{ifx} tests PR/4497} % \changes{v1.3x}{2021/02/18}{save raw class option list (gh/85)} +% \changes{v1.5e}{2022/10/22}{Use \cs{protected@xdef}.} % \begin{macrocode} %</2ekernel> %<latexrelease>\IncludeInRelease{2020/10/01}% @@ -1996,7 +2005,7 @@ \def\@fileswith@pti@ns#1[#2]#3[#4]{% \ifx#1\@clsextension \ifx\@classoptionslist\relax - \xdef\@classoptionslist{\zap@space#2 \@empty}% + \protected@xdef\@classoptionslist{\zap@space#2 \@empty}% % \end{macrocode} % Save raw class list. % \begin{macrocode} @@ -2177,21 +2186,24 @@ % \end{macrocode} % \changes{v1.5b}{2022/03/18}{Switch to \cs{ProcessKeyOptions}} % \changes{v1.5c}{2022/06/20}{Pass raw options to \cs{ProcessKeyOptions}} +% \changes{v1.5e}{2022/10/20} +% {Define key option handler in \pkg{ltkeys}} % In the current preferred approach, a key family name will exist for % processing using \pkg{ltkeys}. In that case, we replace the previous % package options with the new ones, then call the key handler. % Otherwise, we use the more classical clash handler. % \begin{macrocode} {% - \@ifundefined{opt@fam@\@currname.\@currext} + \@ifundefined{opt@handler@\@currname.\@currext} {\@onefilewithoptions@clashchk{#2}} {% - \expandafter\edef\csname opt@\@currname.\@currext\endcsname +% \end{macrocode} +% \changes{v1.5d}{2022/10/10}{Use \cs{protected@edef}.} +% \begin{macrocode} + \expandafter\protected@edef\csname opt@\@currname.\@currext\endcsname {\zap@space#2 \@empty}% \@namedef{@raw@opt@\@currname.\@currext}{#2}% - \expandafter\expandafter\expandafter\ProcessKeyOptions - \expandafter\expandafter\expandafter - [\csname opt@fam@\@currname.\@currext\endcsname]% + \@nameuse{opt@handler@\@currname.\@currext}% }% }% {\makeatletter @@ -2693,10 +2705,11 @@ % \changes{v0.2v}{1994/01/29} % {Macro added.} % \changes{v1.0t}{1995/11/14}{Allow empty option} +% \changes{v1.5d}{2022/10/10}{Use \cs{protected@edef}.} % \begin{macrocode} \def\@@unprocessedoptions{% \ifx\@currext\@pkgextension - \edef\@curroptions{\@ptionlist{\@currname.\@currext}}% + \protected@edef\@curroptions{\@ptionlist{\@currname.\@currext}}% \@for\CurrentOption:=\@curroptions\do{% \ifx\CurrentOption\@empty\else\@unknownoptionerror\fi}% \fi} |