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.