texlive[55750] Master/texmf-dist: expkv (4jul20)
commits+karl at tug.org
commits+karl at tug.org
Sat Jul 4 22:48:30 CEST 2020
Revision: 55750
http://tug.org/svn/texlive?view=revision&revision=55750
Author: karl
Date: 2020-07-04 22:48:30 +0200 (Sat, 04 Jul 2020)
Log Message:
-----------
expkv (4jul20)
Modified Paths:
--------------
trunk/Master/texmf-dist/doc/latex/expkv/README.md
trunk/Master/texmf-dist/doc/latex/expkv/expkv.pdf
trunk/Master/texmf-dist/source/latex/expkv/expkv.dtx
trunk/Master/texmf-dist/tex/generic/expkv/expkv.tex
Modified: trunk/Master/texmf-dist/doc/latex/expkv/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/expkv/README.md 2020-07-04 20:48:00 UTC (rev 55749)
+++ trunk/Master/texmf-dist/doc/latex/expkv/README.md 2020-07-04 20:48:30 UTC (rev 55750)
@@ -1,7 +1,7 @@
-------------------------------------------------------------------------------
# expkv -- an expandable key=val implementation
-Version 2020-07-02 v1.3
+Version 2020-07-04 v1.4
Released under the LaTeX Project Public License v1.3c or later
See http://www.latex-project.org/lppl.txt
Modified: trunk/Master/texmf-dist/doc/latex/expkv/expkv.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/source/latex/expkv/expkv.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/expkv/expkv.dtx 2020-07-04 20:48:00 UTC (rev 55749)
+++ trunk/Master/texmf-dist/source/latex/expkv/expkv.dtx 2020-07-04 20:48:30 UTC (rev 55750)
@@ -429,6 +429,14 @@
% |\relax|.
% \end{function}
%
+% \begin{function}{\ekvifdefinedset}
+% \begin{syntax}
+% \cs{ekvifdefinedset}\marg{set}\marg{true}\marg{false}
+% \end{syntax}
+% This macro tests whether \set\ is defined (which it is if at least one key
+% was defined for it). If it is \meta{true} will be run, else \meta{false}.
+% \end{function}
+%
% \begin{function}{\ekvbreak,\ekvbreakPreSneak,\ekvbreakPostSneak}
% \begin{syntax}
% \cs{ekvbreak}\marg{after}
@@ -1002,8 +1010,8 @@
% \begin{macro}{\ekvVersion,\ekvDate}
% We're on our first input, so lets store the version and date in a macro.
% \begin{macrocode}
-\def\ekvVersion{1.3}
-\def\ekvDate{2020-07-02}
+\def\ekvVersion{1.4}
+\def\ekvDate{2020-07-04}
% \end{macrocode}
% \end{macro}
%
@@ -1029,18 +1037,23 @@
% \begin{macro}[internal]
% {
% \@gobble,\@firstofone,\@firstoftwo,\@secondoftwo,
-% \ekv at gobbleto@stop,\ekv at fi@secondoftwo,\ekv at gobble@mark,
-% \ekv at gobble@from at mark@to at stop
+% \ekv at gobbleto@stop,\ekv at fi@gobble,\ekv at fi@firstoftwo,\ekv at fi@secondoftwo,
+% \ekv at gobble@mark,\ekv at gobble@from at mark@to at stop
% }
% Since branching tests are often more versatile than |\if...\else...\fi|
% constructs, we define helpers that are branching pretty fast. Also here are
% some other utility functions that just grab some tokens. The ones that are
-% also contained in \LaTeX\ don't use the |ekv| prefix.
+% also contained in \LaTeX\ don't use the |ekv| prefix. Not all of the ones
+% defined here are really needed by \expkv\ but are provided because packages
+% like \expkvd\ or \expkvo\ need them (and I don't want to define them in each
+% package which might need them).
% \begin{macrocode}
\long\def\@gobble#1{}
\long\def\@firstofone#1{#1}
\long\def\@firstoftwo#1#2{#1}
\long\def\@secondoftwo#1#2{#2}
+\long\def\ekv at fi@gobble\fi\@firstofone#1{\fi}
+\long\def\ekv at fi@firstoftwo\fi\@secondoftwo#1#2{\fi#1}
\long\def\ekv at fi@secondoftwo\fi\@firstoftwo#1#2{\fi#2}
\long\def\ekv at gobbleto@stop#1\ekv at stop{}
\def\ekv at gobble@mark\ekv at mark{}
@@ -1263,6 +1276,15 @@
% \end{macrocode}
% \end{macro}
%
+% \begin{macro}{\ekvifdefinedset}
+% \begin{macrocode}
+\def\ekvifdefinedset#1%
+ {%
+ \ekv at ifdefined{\ekv at undefined@set{#1}}%
+ }
+% \end{macrocode}
+% \end{macro}
+%
% \begin{macro}{\ekvset}
% Set up |\ekvset|, which should not be affected by active commas and equal
% signs. The equal signs are a bit harder to cope with and we'll do that later,
Modified: trunk/Master/texmf-dist/tex/generic/expkv/expkv.tex
===================================================================
--- trunk/Master/texmf-dist/tex/generic/expkv/expkv.tex 2020-07-04 20:48:00 UTC (rev 55749)
+++ trunk/Master/texmf-dist/tex/generic/expkv/expkv.tex 2020-07-04 20:48:30 UTC (rev 55750)
@@ -39,8 +39,8 @@
\errmessage{expkv requires e-TeX}
\expandafter\endinput
\fi
-\def\ekvVersion{1.3}
-\def\ekvDate{2020-07-02}
+\def\ekvVersion{1.4}
+\def\ekvDate{2020-07-04}
\csname ekv at tmp\endcsname
\expandafter\chardef\csname ekv at tmp\endcsname=\catcode`\@
\catcode`\@=11
@@ -48,6 +48,8 @@
\long\def\@firstofone#1{#1}
\long\def\@firstoftwo#1#2{#1}
\long\def\@secondoftwo#1#2{#2}
+\long\def\ekv at fi@gobble\fi\@firstofone#1{\fi}
+\long\def\ekv at fi@firstoftwo\fi\@secondoftwo#1#2{\fi#1}
\long\def\ekv at fi@secondoftwo\fi\@firstoftwo#1#2{\fi#2}
\long\def\ekv at gobbleto@stop#1\ekv at stop{}
\def\ekv at gobble@mark\ekv at mark{}
@@ -175,6 +177,10 @@
\edef#1##1{\ekv at name@set{#2}\ekv at name@key{\noexpand\detokenize{##1}}}%
\fi
}
+\def\ekvifdefinedset#1%
+ {%
+ \ekv at ifdefined{\ekv at undefined@set{#1}}%
+ }
\def\ekvset#1#2{%
\endgroup
\long\def\ekvset##1##2%
More information about the tex-live-commits
mailing list.