diff options
author | Karl Berry <karl@freefriends.org> | 2020-07-04 20:48:00 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2020-07-04 20:48:00 +0000 |
commit | af82aa955d92ac23a716670104c7da69f69db008 (patch) | |
tree | 4f363411d5bf873d4c25b144a0570cfddb91ff90 /Master/texmf-dist/tex/generic | |
parent | ef8b8c9fa5ed2344cfd1e9d744ee6db897f4b377 (diff) |
expkv-def (4jul20)
git-svn-id: svn://tug.org/texlive/trunk@55749 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/generic')
-rw-r--r-- | Master/texmf-dist/tex/generic/expkv-def/expkv-def.tex | 35 |
1 files changed, 26 insertions, 9 deletions
diff --git a/Master/texmf-dist/tex/generic/expkv-def/expkv-def.tex b/Master/texmf-dist/tex/generic/expkv-def/expkv-def.tex index 6237d0803f8..d0f61214e56 100644 --- a/Master/texmf-dist/tex/generic/expkv-def/expkv-def.tex +++ b/Master/texmf-dist/tex/generic/expkv-def/expkv-def.tex @@ -35,8 +35,8 @@ \else \expandafter\endinput \fi -\def\ekvdVersion{0.3} -\def\ekvdDate{2020-04-29} +\def\ekvdVersion{0.4} +\def\ekvdDate{2020-07-04} \csname ekvd@tmp\endcsname \expandafter\chardef\csname ekvd@tmp\endcsname=\catcode`\@ \catcode`\@=11 @@ -410,6 +410,15 @@ \ekvd@populate@choice{#2}% }% } +\protected\long\expandafter\def\csname ekvd@t@unknown-choice\endcsname#1#2% + {% + \ekvd@assert@arg{unknown-choice #1}{#2}% + {% + \ekvd@assert@not@long{unknown-choice #1}% + \ekvd@prot\expandafter + \def\csname\ekvd@unknown@choice@name\ekvd@set{#1}\endcsname##1{#2}% + }% + } \def\ekvd@h@choice#1% {% \expandafter\ekvd@h@choice@ @@ -424,8 +433,6 @@ \fi #1% } -\def\ekvd@noarg@mark{\ekvd@noarg@mark} -\long\def\ekvd@fi@firstoftwo\fi\@secondoftwo#1#2{\fi#1} \protected\def\ekvd@newlet#1#2% {% \unless\ifdefined#1\let#1#2\fi @@ -452,10 +459,14 @@ } \long\def\ekvd@ifnoarg#1% {% - \ifx\ekvd@noarg@mark#1% - \ekvd@fi@firstoftwo - \fi - \@secondoftwo + \ekvd@ifnoarg@\ekvd@ifnoarg@mark#1\ekvd@ifnoarg@mark\ekvd@ifnoarg@t + \ekvd@ifnoarg@mark\ekvd@noarg@mark\ekvd@ifnoarg@mark\@secondoftwo + } +\long\def\ekvd@ifnoarg@#1\ekvd@ifnoarg@mark\ekvd@noarg@mark\ekvd@ifnoarg@mark{} +\long\def\ekvd@ifnoarg@t + \ekvd@ifnoarg@mark\ekvd@noarg@mark\ekvd@ifnoarg@mark\@secondoftwo#1#2% + {% + #1% } \long\def\ekvd@assert@filledarg#1#2% {% @@ -515,9 +526,15 @@ {% ekvd#1(#2)#3% } +\def\ekvd@unknown@choice@name#1#2% + {% + ekvd:u:#1(#2)% + } \def\ekvd@err@choice@invalid@ ekvd#1(#2)#3\ekv@stop% {% - \ekvd@err{invalid choice `#3' (`#2', set `#1')}% + \ekv@ifdefined{\ekvd@unknown@choice@name{#1}{#2}}% + {\csname\ekvd@unknown@choice@name{#1}{#2}\endcsname{#3}}% + {\ekvd@err{invalid choice `#3' (`#2', set `#1')}}% } } \begingroup |