summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2020-07-04 20:48:00 +0000
committerKarl Berry <karl@freefriends.org>2020-07-04 20:48:00 +0000
commitaf82aa955d92ac23a716670104c7da69f69db008 (patch)
tree4f363411d5bf873d4c25b144a0570cfddb91ff90 /Master/texmf-dist/tex
parentef8b8c9fa5ed2344cfd1e9d744ee6db897f4b377 (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')
-rw-r--r--Master/texmf-dist/tex/generic/expkv-def/expkv-def.tex35
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