summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/generic/expkv-opt/expkv-opt.sty
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/generic/expkv-opt/expkv-opt.sty')
-rw-r--r--Master/texmf-dist/tex/generic/expkv-opt/expkv-opt.sty112
1 files changed, 77 insertions, 35 deletions
diff --git a/Master/texmf-dist/tex/generic/expkv-opt/expkv-opt.sty b/Master/texmf-dist/tex/generic/expkv-opt/expkv-opt.sty
index 1683a2ca995..12fa98acec1 100644
--- a/Master/texmf-dist/tex/generic/expkv-opt/expkv-opt.sty
+++ b/Master/texmf-dist/tex/generic/expkv-opt/expkv-opt.sty
@@ -29,8 +29,19 @@
%% and the derived files expkv-opt.pdf
%% expkv-opt.sty
%%
-\newcommand*\ekvoVersion{0.1b}
-\newcommand*\ekvoDate{2020-10-10}
+\IfFormatAtLeastTF{2021/05/01}
+ {}
+ {%
+ \ifx\pkgcls@targetlabel\@empty
+ \ifnum\requestedLaTeXdate=\pkgcls@targetdate
+ \pkgcls@parse@date@arg{=v0.1}%
+ \fi
+ \fi
+ }
+\DeclareRelease{v0.1}{2020/10/10}{expkv-opt-2020-10-10.sty}
+\DeclareCurrentRelease{v0.2}{2021/04/04}
+\newcommand*\ekvoVersion{0.2}
+\newcommand*\ekvoDate{2021-04-04}
\ProvidesPackage{expkv-opt}
[%
\ekvoDate\space v\ekvoVersion\space
@@ -78,10 +89,42 @@
{\ekvo@err@value@forbidden{#1}}%
{\ekvo@err@undefined@key{#1}}%
}
-\long\def\ekvo@addto@unused@one#1{\ekvo@addto@list\@unusedoptionlist}
-\long\def\ekvo@addto@unused@two#1#2{\ekvo@addto@list\@unusedoptionlist}
-\long\def\ekvo@rmfrom@unused@one#1{\ekvo@rmfrom@list\@unusedoptionlist}
-\long\def\ekvo@rmfrom@unused@two#1#2{\ekvo@rmfrom@list\@unusedoptionlist}
+\long\def\ekvo@addto@unused@one#1{\ekvo@do@unusedoptionlist\ekvo@addto@list}
+\long\def\ekvo@addto@unused@two#1#2{\ekvo@do@unusedoptionlist\ekvo@addto@list}
+\long\def\ekvo@rmfrom@unused@one#1%
+ {%
+ \ekvo@ifx@F\@unusedoptionlist\@empty
+ {\ekvo@do@unusedoptionlist\ekvo@rmfrom@list}%
+ }
+\long\def\ekvo@rmfrom@unused@two#1#2%
+ {%
+ \ekvo@ifx@F\@unusedoptionlist\@empty
+ {\ekvo@do@unusedoptionlist\ekvo@rmfrom@list}%
+ }
+\protected\def\ekvo@do@unusedoptionlist#1%
+ {%
+ \let\ekvo@unpreparedCurrentOption\CurrentOption
+ \edef\CurrentOption
+ {\expandafter\ekvo@prepare@unusedoption\CurrentOption=\ekv@mark}%
+ #1\@unusedoptionlist
+ \let\CurrentOption\ekvo@unpreparedCurrentOption
+ }
+\def\ekvo@prepare@unusedoption{\ekvo@prepare@unusedoption@a\@empty}
+\def\ekvo@prepare@unusedoption@a#1%
+ {%
+ \long\def\ekvo@prepare@unusedoption@a##1=##2\ekv@mark
+ {%
+ \ekvo@prepare@unusedoption@b##1\ekv@stop
+ \ekv@mark\ekvo@prepare@unusedoption@b
+ #1\ekv@mark\ekvo@prepare@unusedoption@c
+ }%
+ }
+\ekvo@prepare@unusedoption@a{ }
+\long\def\ekvo@prepare@unusedoption@b#1 #2\ekv@mark#3{#3#1#2\ekv@mark#3}
+\long\def\ekvo@prepare@unusedoption@c
+ #1\ekv@stop
+ \ekv@mark\ekvo@prepare@unusedoption@b\ekv@mark\ekvo@prepare@unusedoption@c
+ {\unexpanded\expandafter{#1}}
\protected\def\ekvo@set@handlers@local
{%
\ekvo@if@need@handlers
@@ -92,7 +135,9 @@
\let\ekvo@handle@undefined@kv\@gobbletwo
\else
\expandafter
- \ifx\csname opt@\@currname.\@currext\endcsname\@classoptionslist
+ \ifx
+ \csname @raw@opt@\@currname.\@currext\endcsname
+ \@raw@classoptionslist
\let\ekvo@handle@undefined@k\ekvo@addto@unused@one
\let\ekvo@handle@undefined@kv\ekvo@addto@unused@two
\else
@@ -118,21 +163,6 @@
\let\ekvo@handle@undefined@kv\@gobbletwo
}%
}
-\protected\def\ekvo@set@handlers@unusedglobal
- {%
- \ekvo@if@need@handlers
- {%
- \let\ekvo@handle@undefined@k\ekvo@addto@unused@one
- \let\ekvo@handle@undefined@kv\ekvo@addto@unused@two
- \let\@unusedoptionlist\@empty
- \@gobbletwo
- }%
- \@firstofone
- {%
- \let\ekvo@handle@defined@k\ekvo@rmfrom@unused@one
- \let\ekvo@handle@defined@kv\ekvo@rmfrom@unused@two
- }%
- }
\protected\def\ekvo@set@handlers@list
{%
\ekvo@if@need@handlers
@@ -234,11 +264,11 @@
\protected\def\ekvoProcessLocalOptions
{%
\ekvo@process@common
- {\ekv@ifdefined{opt@\@currname.\@currext}\@firstofone\@gobble}%
+ {\ekv@ifdefined{@raw@opt@\@currname.\@currext}\@firstofone\@gobble}%
{%
\ekvo@set@handlers@local
\expandafter
- \ekvo@process@list\csname opt@\@currname.\@currext\endcsname
+ \ekvo@process@list\csname @raw@opt@\@currname.\@currext\endcsname
\AtEndOfPackage{\let\@unprocessedoptions\relax}%
}%
}
@@ -247,21 +277,15 @@
\ekvo@process@common{\ekvo@ifx@F\@classoptionslist\relax}%
{%
\ekvo@set@handlers@global
- \ekvo@process@list\@classoptionslist
+ \ekvo@process@list\@raw@classoptionslist
\let\ekvo@handle@defined@k\@gobble
\let\ekvo@handle@defined@kv\@gobbletwo
}%
}
-\protected\def\ekvoProcessUnusedGlobalOptions
+\protected\def\ekvoProcessUnusedGlobalOptions#1%
{%
- \ekvo@process@common{\ekvo@ifx@F\@unusedoptionlist\@empty}%
- {%
- \let\ekvo@tmp@list\@unusedoptionlist
- \ekvo@set@handlers@unusedglobal
- \ekvo@process@list\ekvo@tmp@list
- \let\ekvo@handle@defined@k\@gobble
- \let\ekvo@handle@defined@kv\@gobbletwo
- }%
+ \PackageWarning{expkv-opt}%
+ {This macro no longer works because of changes in the LaTeX2e kernel.}%
}
\protected\def\ekvoProcessOptionsList#1%
{%
@@ -271,7 +295,25 @@
\ekvo@process@list#1%
}%
}
-\protected\def\ekvoUseUnknownHandlers#1#2%
+\protected\def\ekvoUseUnknownHandlers
+ {\@ifstar\ekvoUseUnknownHandlers@s\ekvoUseUnknownHandlers@n}
+\protected\def\ekvoUseUnknownHandlers@s
+ {%
+ \def\ekvo@handle@undefined@k
+ {%
+ \ekv@ifdefined{\ekvo@name{}uN}%
+ {\csname\ekvo@name{}uN\endcsname}%
+ {\@gobble}%
+ }%
+ \long\def\ekvo@handle@undefined@kv##1##2%
+ {%
+ \ekv@ifdefined{\ekvo@name{}u}%
+ {\csname\ekvo@name{}u\endcsname{##2}{##1}}%
+ {}%
+ }%
+ \let\ekvo@if@need@handlers\ekvo@dont@need@handlers
+ }
+\protected\def\ekvoUseUnknownHandlers@n#1#2%
{%
\let\ekvo@handle@undefined@k#1\relax
\let\ekvo@handle@undefined@kv#2\relax