texlive[60571] Master/texmf-dist: expkv-cs (21sep21)

commits+karl at tug.org commits+karl at tug.org
Tue Sep 21 21:46:07 CEST 2021


Revision: 60571
          http://tug.org/svn/texlive?view=revision&revision=60571
Author:   karl
Date:     2021-09-21 21:46:07 +0200 (Tue, 21 Sep 2021)
Log Message:
-----------
expkv-cs (21sep21)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/expkv-cs/README.md
    trunk/Master/texmf-dist/doc/latex/expkv-cs/expkv-cs.pdf
    trunk/Master/texmf-dist/source/latex/expkv-cs/expkv-cs.dtx
    trunk/Master/texmf-dist/tex/generic/expkv-cs/expkv-cs.tex
    trunk/Master/texmf-dist/tex/latex/expkv-cs/expkv-cs.sty

Added Paths:
-----------
    trunk/Master/texmf-dist/tex/context/third/expkv-cs/
    trunk/Master/texmf-dist/tex/context/third/expkv-cs/t-expkv-cs.tex

Modified: trunk/Master/texmf-dist/doc/latex/expkv-cs/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/expkv-cs/README.md	2021-09-21 17:54:56 UTC (rev 60570)
+++ trunk/Master/texmf-dist/doc/latex/expkv-cs/README.md	2021-09-21 19:46:07 UTC (rev 60571)
@@ -1,7 +1,7 @@
 -------------------------------------------------------------------------------
 # expkv-cs -- define expandable key=val macros using expkv
 
-Version 2021-07-07 v1.1
+Version 2021-09-20 v1.1a
 
 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-cs/expkv-cs.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/source/latex/expkv-cs/expkv-cs.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/expkv-cs/expkv-cs.dtx	2021-09-21 17:54:56 UTC (rev 60570)
+++ trunk/Master/texmf-dist/source/latex/expkv-cs/expkv-cs.dtx	2021-09-21 19:46:07 UTC (rev 60571)
@@ -43,6 +43,7 @@
 and the derived files           expkv-cs.pdf
                                 expkv-cs.sty
                                 expkv-cs.tex
+                                t-expkv-cs.tex
 
 \endpreamble
 % stop docstrip adding \endinput
@@ -50,6 +51,7 @@
 \endpostamble
 \generate{\file{expkv-cs.sty}{\from{expkv-cs.dtx}{pkg}}}
 \generate{\file{expkv-cs.tex}{\from{expkv-cs.dtx}{tex}}}
+\generate{\file{t-expkv-cs.tex}{\from{expkv-cs.dtx}{ctx}}}
 \ifx\fmtname\nameofplainTeX
   \expandafter\endbatchfile
 \else
@@ -108,6 +110,7 @@
         TeX,
         textit,texttt,
         usepackage,
+        usemodule,
       }
     ,moretexcs=[6]^^A used packages
       {
@@ -285,8 +288,8 @@
 \DoNotIndex{\protected,\ProvidesFile,\ProvidesPackage,\relax,\space,\advance}
 \DoNotIndex{\@,\unexpanded,\string,\expanded,\dimexpr,\global,\glueexpr,\hbox}
 \DoNotIndex{\numexpr,\RequirePackage,\setbox,\the,\unless,\xdef,\gdef,\newcount}
-\DoNotIndex{\number,\detokenize,\meaning}
-\DoNotIndex{\^,\@firstofone,\@firstoftwo,\@gobble,\@secondoftwo}
+\DoNotIndex{\number,\detokenize,\meaning,\lccode,\lowercase}
+\DoNotIndex{\^,\\,\@firstofone,\@firstoftwo,\@gobble,\@secondoftwo}
 \DoNotIndex{\ifcsname}
 \DoNotIndex{\ifx}
 \DoNotIndex{\ifodd}
@@ -372,12 +375,13 @@
 % |\ekvcSplit|, is very convenient in my opinion, so if you just want to define
 % a single macro with just a few keys this might be the way to go.
 %
-% \expkvc\ is usable as generic code and as a \LaTeX\ package. It'll
-% automatically load \expkv\ in the same mode as well. To use it, just use one
-% of
+% \expkvc\ is usable as generic code, as a \LaTeX\ package, and as a \ConTeXt\
+% module. It'll automatically load \expkv\ in the same mode as well. To use it,
+% just use one of
 % \begin{lstlisting}
+% \input expkv-cs       % plainTeX
 % \usepackage{expkv-cs} % LaTeX
-% \input expkv-cs       % plainTeX
+% \usemodule[expkv-cs]  % ConTeXt
 % \end{lstlisting}
 %
 %
@@ -1523,6 +1527,22 @@
 % \gobbledocstriptag
 %</pkg>
 %^^A=<<
+%^^A the ConTeXt module >>=
+% \subsection{The \ConTeXt\ module}
+% \gobbledocstriptag
+%<*ctx>
+%    \begin{macrocode}
+\writestatus{loading}{ConTeXt User Module / expkv-cs}
+\usemodule[expkv]
+\unprotect
+\input expkv-cs.tex
+\writestatus{loading}
+  {ConTeXt User Module / expkv-cs / Version \ekvcVersion\space loaded}
+\protect\endinput
+%    \end{macrocode}
+% \gobbledocstriptag
+%</ctx>
+%^^A=<<
 %^^A main file >>=
 % \subsection{The Generic Code}
 % The rest of this implementation will be the generic code.
@@ -1548,8 +1568,8 @@
 % \begin{macro}{\ekvcVersion,\ekvcDate}
 % We're on our first input, so lets store the version and date in a macro.
 %    \begin{macrocode}
-\def\ekvcVersion{1.1}
-\def\ekvcDate{2021-07-07}
+\def\ekvcVersion{1.1a}
+\def\ekvcDate{2021-09-20}
 %    \end{macrocode}
 % \end{macro}
 %
@@ -1636,9 +1656,9 @@
   }
 \def\ekvc at ekvset@pre at expander@b#1\ekvc at stop#2\ekvc at stop
   {%
-    \unexpanded\expandafter{\ekv at alignsafe}%
-    \unexpanded{#1}##1\unexpanded{#2}%
-    \unexpanded\expandafter{\ekv at endalignsafe}%
+    \ekv at unexpanded\expandafter{\ekv at alignsafe}%
+    \ekv at unexpanded{#1}##1\ekv at unexpanded{#2}%
+    \ekv at unexpanded\expandafter{\ekv at endalignsafe}%
   }
 %    \end{macrocode}
 % \end{macro}
@@ -1675,9 +1695,9 @@
         \ekvc at any@long\edef#1##1%
           {%
             \expandafter\ekvc at ekvset@pre at expander\expandafter{\ekvc at set}%
-            \unexpanded\expandafter
+            \ekv at unexpanded\expandafter
               {\csname ekvc at split@\the\ekvc at keycount\endcsname}%
-            \unexpanded\expandafter{\ekvc at initials{}#2}%
+            \ekv at unexpanded\expandafter{\ekvc at initials{}#2}%
           }%
       }%
       {%
@@ -1684,8 +1704,8 @@
         \ekvc at any@long\edef#1##1%
           {%
             \expandafter\ekvc at ekvset@pre at expander\expandafter{\ekvc at set}%
-            \unexpanded{#2}%
-            \unexpanded\expandafter{\ekvc at initials}%
+            \ekv at unexpanded{#2}%
+            \ekv at unexpanded\expandafter{\ekvc at initials}%
           }%
       }%
   }
@@ -1743,7 +1763,7 @@
   {%
     \begingroup
       \edef\ekvc at tmp
-        {\endgroup\def\unexpanded{\ekvc at tmp}{\ekvcSplit at build@argspec@{1}}}%
+        {\endgroup\def\ekv at unexpanded{\ekvc at tmp}{\ekvcSplit at build@argspec@{1}}}%
     \ekvc at tmp
   }
 \def\ekvcSplit at build@argspec@#1%
@@ -1753,7 +1773,7 @@
     \fi
     \@firstofone
       {%
-        \unexpanded\expandafter{\csname ekvc at splitmark@#1\endcsname####}#1%
+        \ekv at unexpanded\expandafter{\csname ekvc at splitmark@#1\endcsname####}#1%
         \expandafter\ekvcSplit at build@argspec@\expandafter{\the\numexpr#1+1}%
       }%
   }
@@ -1763,7 +1783,7 @@
 % \begin{macro}[internal]
 %   {
 %     \ekvc at SetupSplitKeys, \ekvc at SetupSplitKeys@a, \ekvc at SetupSplitKeys@b,
-%     \ekvc at SetupSplitKeys@c,
+%     \ekvc at SetupSplitKeys@c, \ekvc at SetupSplitKeys@d
 %     \ekvc at SetupSplitKeys@check at unknown,\ekvc at SetupSplitKeys@unknown
 %   }
 %   These macros parse the list of keys and set up the key macros. First we need
@@ -1780,24 +1800,26 @@
 %   Then we need to step the key counter for each key. Also we have to check
 %   whether this key has a |long| prefix so we initialise |\ekvc at long|.
 %    \begin{macrocode}
-\protected\def\ekvc at SetupSplitKeys@a#1%
+\protected\long\def\ekvc at SetupSplitKeys@a#1%
+  {\expandafter\ekvc at SetupSplitKeys@b\detokenize{#1}\ekvc at stop}
+\protected\def\ekvc at SetupSplitKeys@b#1\ekvc at stop
   {%
     \advance\ekvc at keycount1
     \let\ekvc at long\ekv at empty
     \ekvc at ifspace{#1}%
-      {\ekvc at SetupSplitKeys@b#1\ekvc at stop}%
-      {\ekvc at SetupSplitKeys@c{#1}}%
+      {\ekvc at SetupSplitKeys@c#1\ekvc at stop}%
+      {\ekvc at SetupSplitKeys@d{#1}}%
   }
 %    \end{macrocode}
 %   If there was a space, there might be a prefix. If so call the prefix macro,
-%   else call the next step |\ekvc at SetupSplitKeys@c| which will define the key
+%   else call the next step |\ekvc at SetupSplitKeys@d| which will define the key
 %   macro and add the key's value to the initials list.
 %    \begin{macrocode}
-\protected\def\ekvc at SetupSplitKeys@b#1 #2\ekvc at stop
+\protected\long\def\ekvc at SetupSplitKeys@c#1 #2\ekvc at stop
   {%
     \ekv at ifdefined{ekvc at split@p@#1}%
       {\csname ekvc at split@p@#1\endcsname{#2}}%
-      {\ekvc at SetupSplitKeys@c{#1 #2}}%
+      {\ekvc at SetupSplitKeys@d{#1 #2}}%
   }
 %    \end{macrocode}
 %   The inner definition is grouped, because we don't want to actually define
@@ -1807,18 +1829,18 @@
 %   the value given to the key. Additionally we'll need a sorting macro for each
 %   key count in use so we set it up with |\ekvc at setup@splitmacro|.
 %    \begin{macrocode}
-\protected\long\def\ekvc at SetupSplitKeys@c#1#2%
+\protected\long\def\ekvc at SetupSplitKeys@d#1#2%
   {%
     \begingroup
     \edef\ekvc at tmp
       {%
         \endgroup
-        \long\def\unexpanded{\ekvc at tmp}####1####2%
-            \unexpanded\expandafter
+        \long\def\ekv at unexpanded{\ekvc at tmp}####1####2%
+            \ekv at unexpanded\expandafter
             {\csname ekvc at splitmark@\the\ekvc at keycount\endcsname}####3%
           {%
             ####2%
-            \unexpanded\expandafter
+            \ekv at unexpanded\expandafter
               {\csname ekvc at splitmark@\the\ekvc at keycount\endcsname}{####1}%
           }%
 %    \end{macrocode}
@@ -1829,18 +1851,19 @@
 %   reordering.
 %    \begin{macrocode}
         \unless\ifx\ekvc at long\long
-          \let\unexpanded\expandafter
-            {\csname ekvc@\ekvc at set(#1)\endcsname\ekvc at tmp}%
-          \def\unexpanded{\ekvc at tmp}####1%
+          \let\ekv at unexpanded\expandafter
+            {\csname ekvc@\ekvc at set(\detokenize{#1})\endcsname\ekvc at tmp}%
+          \def\ekv at unexpanded{\ekvc at tmp}####1%
             {%
-              \unexpanded\expandafter{\csname ekvc@\ekvc at set(#1)\endcsname}%
+              \ekv at unexpanded\expandafter
+                {\csname ekvc@\ekvc at set(\detokenize{#1})\endcsname}%
                 {####1}%
             }%
         \fi
-        \def\unexpanded{\ekvc at initials}%
+        \def\ekv at unexpanded{\ekvc at initials}%
           {%
-            \unexpanded\expandafter{\ekvc at initials}%
-            \unexpanded\expandafter
+            \ekv at unexpanded\expandafter{\ekvc at initials}%
+            \ekv at unexpanded\expandafter
               {\csname ekvc at splitmark@\the\ekvc at keycount\endcsname{#2}}%
           }%
       }%
@@ -1886,7 +1909,7 @@
       {##3#1{##4,##2= {##1} }}%
     \long\expandafter\def\csname\ekv at name\ekvc at set{}uN\endcsname##1##2#1##3%
       {##2#1{##3,##1}}%
-    \edef\ekvc at initials{\unexpanded\expandafter{\ekvc at initials#1{}}}%
+    \edef\ekvc at initials{\ekv at unexpanded\expandafter{\ekvc at initials#1{}}}%
     \ekvc at helpers@needed
       {\expandafter\ekvc at setup@splitmacro\expandafter{\the\ekvc at keycount}}%
       {}%
@@ -1902,7 +1925,7 @@
   {%
     \let\ekvc at long\long
     \let\ekvc at any@long\long
-    \ekvc at SetupSplitKeys@c
+    \ekvc at SetupSplitKeys@d
   }
 %    \end{macrocode}
 % \end{macro}
@@ -1911,7 +1934,7 @@
 %   The |short| prefix does essentially nothing, it is only provided to allow
 %   key names starting with |long| that aren't |\long|.
 %    \begin{macrocode}
-\def\ekvc at split@p at short{\ekvc at SetupSplitKeys@c}
+\def\ekvc at split@p at short{\ekvc at SetupSplitKeys@d}
 %    \end{macrocode}
 % \end{macro}
 %
@@ -1939,53 +1962,53 @@
 \begingroup
 \edef\ekvc at tmp
   {%
-    \long\gdef\unexpanded\expandafter{\csname ekvc at split@1\endcsname}%
-        \unexpanded\expandafter{\csname ekvc at splitmark@1\endcsname}%
+    \long\gdef\ekv at unexpanded\expandafter{\csname ekvc at split@1\endcsname}%
+        \ekv at unexpanded\expandafter{\csname ekvc at splitmark@1\endcsname}%
         ##1##2##3%
       {##3{##1}##2}%
-    \long\gdef\unexpanded\expandafter{\csname ekvc at split@2\endcsname}%
-        \unexpanded\expandafter{\csname ekvc at splitmark@1\endcsname}##1%
-        \unexpanded\expandafter{\csname ekvc at splitmark@2\endcsname}##2%
+    \long\gdef\ekv at unexpanded\expandafter{\csname ekvc at split@2\endcsname}%
+        \ekv at unexpanded\expandafter{\csname ekvc at splitmark@1\endcsname}##1%
+        \ekv at unexpanded\expandafter{\csname ekvc at splitmark@2\endcsname}##2%
         ##3##4%
       {##4{##1}{##2}##3}%
-    \long\gdef\unexpanded\expandafter{\csname ekvc at split@3\endcsname}%
-        \unexpanded\expandafter{\csname ekvc at splitmark@1\endcsname}##1%
-        \unexpanded\expandafter{\csname ekvc at splitmark@2\endcsname}##2%
-        \unexpanded\expandafter{\csname ekvc at splitmark@3\endcsname}##3%
+    \long\gdef\ekv at unexpanded\expandafter{\csname ekvc at split@3\endcsname}%
+        \ekv at unexpanded\expandafter{\csname ekvc at splitmark@1\endcsname}##1%
+        \ekv at unexpanded\expandafter{\csname ekvc at splitmark@2\endcsname}##2%
+        \ekv at unexpanded\expandafter{\csname ekvc at splitmark@3\endcsname}##3%
         ##4##5%
       {##5{##1}{##2}{##3}##4}%
-    \long\gdef\unexpanded\expandafter{\csname ekvc at split@4\endcsname}%
-        \unexpanded\expandafter{\csname ekvc at splitmark@1\endcsname}##1%
-        \unexpanded\expandafter{\csname ekvc at splitmark@2\endcsname}##2%
-        \unexpanded\expandafter{\csname ekvc at splitmark@3\endcsname}##3%
-        \unexpanded\expandafter{\csname ekvc at splitmark@4\endcsname}##4%
+    \long\gdef\ekv at unexpanded\expandafter{\csname ekvc at split@4\endcsname}%
+        \ekv at unexpanded\expandafter{\csname ekvc at splitmark@1\endcsname}##1%
+        \ekv at unexpanded\expandafter{\csname ekvc at splitmark@2\endcsname}##2%
+        \ekv at unexpanded\expandafter{\csname ekvc at splitmark@3\endcsname}##3%
+        \ekv at unexpanded\expandafter{\csname ekvc at splitmark@4\endcsname}##4%
         ##5##6%
       {##6{##1}{##2}{##3}{##4}##5}%
-    \long\gdef\unexpanded\expandafter{\csname ekvc at split@5\endcsname}%
-        \unexpanded\expandafter{\csname ekvc at splitmark@1\endcsname}##1%
-        \unexpanded\expandafter{\csname ekvc at splitmark@2\endcsname}##2%
-        \unexpanded\expandafter{\csname ekvc at splitmark@3\endcsname}##3%
-        \unexpanded\expandafter{\csname ekvc at splitmark@4\endcsname}##4%
-        \unexpanded\expandafter{\csname ekvc at splitmark@5\endcsname}##5%
+    \long\gdef\ekv at unexpanded\expandafter{\csname ekvc at split@5\endcsname}%
+        \ekv at unexpanded\expandafter{\csname ekvc at splitmark@1\endcsname}##1%
+        \ekv at unexpanded\expandafter{\csname ekvc at splitmark@2\endcsname}##2%
+        \ekv at unexpanded\expandafter{\csname ekvc at splitmark@3\endcsname}##3%
+        \ekv at unexpanded\expandafter{\csname ekvc at splitmark@4\endcsname}##4%
+        \ekv at unexpanded\expandafter{\csname ekvc at splitmark@5\endcsname}##5%
         ##6##7%
       {##7{##1}{##2}{##3}{##4}{##5}##6}%
-    \long\gdef\unexpanded\expandafter{\csname ekvc at split@6\endcsname}%
-        \unexpanded\expandafter{\csname ekvc at splitmark@1\endcsname}##1%
-        \unexpanded\expandafter{\csname ekvc at splitmark@2\endcsname}##2%
-        \unexpanded\expandafter{\csname ekvc at splitmark@3\endcsname}##3%
-        \unexpanded\expandafter{\csname ekvc at splitmark@4\endcsname}##4%
-        \unexpanded\expandafter{\csname ekvc at splitmark@5\endcsname}##5%
-        \unexpanded\expandafter{\csname ekvc at splitmark@6\endcsname}##6%
+    \long\gdef\ekv at unexpanded\expandafter{\csname ekvc at split@6\endcsname}%
+        \ekv at unexpanded\expandafter{\csname ekvc at splitmark@1\endcsname}##1%
+        \ekv at unexpanded\expandafter{\csname ekvc at splitmark@2\endcsname}##2%
+        \ekv at unexpanded\expandafter{\csname ekvc at splitmark@3\endcsname}##3%
+        \ekv at unexpanded\expandafter{\csname ekvc at splitmark@4\endcsname}##4%
+        \ekv at unexpanded\expandafter{\csname ekvc at splitmark@5\endcsname}##5%
+        \ekv at unexpanded\expandafter{\csname ekvc at splitmark@6\endcsname}##6%
         ##7##8%
       {##8{##1}{##2}{##3}{##4}{##5}{##6}##7}%
-    \long\gdef\unexpanded\expandafter{\csname ekvc at split@7\endcsname}%
-        \unexpanded\expandafter{\csname ekvc at splitmark@1\endcsname}##1%
-        \unexpanded\expandafter{\csname ekvc at splitmark@2\endcsname}##2%
-        \unexpanded\expandafter{\csname ekvc at splitmark@3\endcsname}##3%
-        \unexpanded\expandafter{\csname ekvc at splitmark@4\endcsname}##4%
-        \unexpanded\expandafter{\csname ekvc at splitmark@5\endcsname}##5%
-        \unexpanded\expandafter{\csname ekvc at splitmark@6\endcsname}##6%
-        \unexpanded\expandafter{\csname ekvc at splitmark@7\endcsname}##7%
+    \long\gdef\ekv at unexpanded\expandafter{\csname ekvc at split@7\endcsname}%
+        \ekv at unexpanded\expandafter{\csname ekvc at splitmark@1\endcsname}##1%
+        \ekv at unexpanded\expandafter{\csname ekvc at splitmark@2\endcsname}##2%
+        \ekv at unexpanded\expandafter{\csname ekvc at splitmark@3\endcsname}##3%
+        \ekv at unexpanded\expandafter{\csname ekvc at splitmark@4\endcsname}##4%
+        \ekv at unexpanded\expandafter{\csname ekvc at splitmark@5\endcsname}##5%
+        \ekv at unexpanded\expandafter{\csname ekvc at splitmark@6\endcsname}##6%
+        \ekv at unexpanded\expandafter{\csname ekvc at splitmark@7\endcsname}##7%
         ##8##9%
       {##9{##1}{##2}{##3}{##4}{##5}{##6}{##7}##8}%
   }
@@ -1999,12 +2022,13 @@
           \edef\ekvc at tmp
             {%
               \long\gdef
-                  \unexpanded\expandafter{\csname ekvc at split@#1\endcsname}%
+                  \ekv at unexpanded\expandafter{\csname ekvc at split@#1\endcsname}%
                   ####1%
-                  \unexpanded\expandafter{\csname ekvc at splitmark@#1\endcsname}%
+                  \ekv at unexpanded\expandafter
+                    {\csname ekvc at splitmark@#1\endcsname}%
                   ####2####3%
                 {%
-                  \unexpanded\expandafter
+                  \ekv at unexpanded\expandafter
                     {\csname ekvc at split@\the\numexpr#1-1\relax\endcsname}%
                   ####1{{####2}####3}%
                 }%
@@ -2043,8 +2067,8 @@
         \ekvc at any@long\edef#1##1%
           {%
             \expandafter\ekvc at ekvset@pre at expander\expandafter{\ekvc at set}%
-            \unexpanded{\ekvc at hash@pack at argument}%
-            \unexpanded\expandafter{\ekvc at initials\ekvc at stop#2}%
+            \ekv at unexpanded{\ekvc at hash@pack at argument}%
+            \ekv at unexpanded\expandafter{\ekvc at initials\ekvc at stop#2}%
           }%
       }%
       {%
@@ -2051,8 +2075,8 @@
         \ekvc at any@long\edef#1##1%
           {%
             \expandafter\ekvc at ekvset@pre at expander\expandafter{\ekvc at set}%
-            \unexpanded{#2}%
-            \unexpanded\expandafter{\ekvc at initials\ekvc at stop}%
+            \ekv at unexpanded{#2}%
+            \ekv at unexpanded\expandafter{\ekvc at initials\ekvc at stop}%
           }%
       }%
   }
@@ -2102,9 +2126,9 @@
 % \end{macro}
 %
 % \begin{macro}[internal]
-%   {%
+%   {
 %     \ekvc at SetupHashKeys,\ekvc at SetupHashKeys@a,\ekvc at SetupHashKeys@b,
-%     \ekvc at SetupHashKeys@c,
+%     \ekvc at SetupHashKeys@c,\ekvc at SetupHashKeys@d
 %     \ekvc at SetupHashKeys@check at unknown,\ekvc at SetupHashKeys@unknown
 %   }
 %   This should look awfully familiar as well, since it's just the same as for
@@ -2116,18 +2140,20 @@
     \let\ekvc at initials\ekv at empty
     \ekvparse\ekvc at SetupHashKeys@check at unknown\ekvc at SetupHashKeys@a{#1}%
   }
-\protected\def\ekvc at SetupHashKeys@a#1%
+\protected\long\def\ekvc at SetupHashKeys@a#1%
+  {\expandafter\ekvc at SetupHashKeys@b\detokenize{#1}\ekvc at stop}
+\protected\def\ekvc at SetupHashKeys@b#1\ekvc at stop
   {%
     \let\ekvc at long\ekv at empty
     \ekvc at ifspace{#1}%
-      {\ekvc at SetupHashKeys@b#1\ekvc at stop}%
-      {\ekvc at SetupHashKeys@c{#1}}%
+      {\ekvc at SetupHashKeys@c#1\ekvc at stop}%
+      {\ekvc at SetupHashKeys@d{#1}}%
   }
-\protected\def\ekvc at SetupHashKeys@b#1 #2\ekvc at stop
+\protected\def\ekvc at SetupHashKeys@c#1 #2\ekvc at stop
   {%
     \ekv at ifdefined{ekvc at hash@p@#1}%
       {\csname ekvc at hash@p@#1\endcsname{#2}}%
-      {\ekvc at SetupHashKeys@c{#1 #2}}%
+      {\ekvc at SetupHashKeys@d{#1 #2}}%
   }
 %    \end{macrocode}
 %   Yes, even the defining macro looks awfully familiar. Instead of numbered we
@@ -2136,31 +2162,33 @@
 %   short keys. And instead of the |\ekvc at setup@splitmacro| we use
 %   |\ekvc at setup@hashmacro|.
 %    \begin{macrocode}
-\protected\long\def\ekvc at SetupHashKeys@c#1#2%
+\protected\long\def\ekvc at SetupHashKeys@d#1#2%
   {%
     \begingroup
     \edef\ekvc at tmp
       {%
         \endgroup
-        \long\def\unexpanded{\ekvc at tmp}####1####2%
-            \unexpanded\expandafter{\csname ekvc at hashmark@#1\endcsname}####3%
+        \long\def\ekv at unexpanded{\ekvc at tmp}####1####2%
+            \ekv at unexpanded\expandafter{\csname ekvc at hashmark@#1\endcsname}%
+            ####3%
           {%
             ####2%
-            \unexpanded\expandafter{\csname ekvc at hashmark@#1\endcsname}{####1}%
+            \ekv at unexpanded\expandafter{\csname ekvc at hashmark@#1\endcsname}%
+            {####1}%
           }%
         \unless\ifx\ekvc at long\long
-          \let\unexpanded\expandafter
+          \let\ekv at unexpanded\expandafter
             {\csname ekvc@\ekvc at set(#1)\endcsname\ekvc at tmp}%
-          \def\unexpanded{\ekvc at tmp}####1%
+          \def\ekv at unexpanded{\ekvc at tmp}####1%
             {%
-              \unexpanded\expandafter{\csname ekvc@\ekvc at set(#1)\endcsname}%
+              \ekv at unexpanded\expandafter{\csname ekvc@\ekvc at set(#1)\endcsname}%
                 {####1}%
             }%
         \fi
-        \def\unexpanded{\ekvc at initials}%
+        \def\ekv at unexpanded{\ekvc at initials}%
           {%
-            \unexpanded\expandafter{\ekvc at initials}%
-            \unexpanded\expandafter{\csname ekvc at hashmark@#1\endcsname{#2}}%
+            \ekv at unexpanded\expandafter{\ekvc at initials}%
+            \ekv at unexpanded\expandafter{\csname ekvc at hashmark@#1\endcsname{#2}}%
           }%
       }%
     \ekvc at tmp
@@ -2192,7 +2220,7 @@
         \let\csname\ekv at name\ekvc at set{}u\endcsname\ekvc at hash@unknown at kv
         \expandafter
         \let\csname\ekv at name\ekvc at set{}uN\endcsname\ekvc at hash@unknown at k
-        \edef\ekvc at initials{\unexpanded\expandafter{\ekvc at initials#1{}}}%
+        \edef\ekvc at initials{\ekv at unexpanded\expandafter{\ekvc at initials#1{}}}%
         \ekvc at setup@hashmacro{...}%
       }%
     \long\def\ekvc at hash@unknown at kv##1##2##3#1##4{##3#1{##4,##2= {##1} }}%
@@ -2210,7 +2238,7 @@
   {%
     \let\ekvc at long\long
     \let\ekvc at any@long\long
-    \ekvc at SetupHashKeys@c
+    \ekvc at SetupHashKeys@d
   }
 %    \end{macrocode}
 % \end{macro}
@@ -2219,7 +2247,7 @@
 %   The |short| prefix does essentially nothing, it is only provided to allow
 %   key names starting with |long| that aren't |\long|.
 %    \begin{macrocode}
-\def\ekvc at hash@p at short{\ekvc at SetupHashKeys@c}
+\def\ekvc at hash@p at short{\ekvc at SetupHashKeys@d}
 %    \end{macrocode}
 % \end{macro}
 %
@@ -2240,18 +2268,20 @@
           \edef\ekvc at tmp
             {%
               \long\gdef
-                \unexpanded\expandafter{\csname ekvc at fasthash@#1\endcsname}%
+                \ekv at unexpanded\expandafter{\csname ekvc at fasthash@#1\endcsname}%
                   ####1%
-                  \unexpanded\expandafter{\csname ekvc at hashmark@#1\endcsname}%
-                  ####2####3\unexpanded{\ekvc at stop}%
+                  \ekv at unexpanded\expandafter
+                    {\csname ekvc at hashmark@#1\endcsname}%
+                  ####2####3\ekv at unexpanded{\ekvc at stop}%
                 {####2}%
               \long\gdef
-                \unexpanded\expandafter{\csname ekvc at safehash@#1\endcsname}%
+                \ekv at unexpanded\expandafter{\csname ekvc at safehash@#1\endcsname}%
                   ####1%
                 {%
-                  \unexpanded\expandafter{\csname ekvc@@safehash@#1\endcsname}%
-                  ####1\unexpanded{\ekvc at mark}{}%
-                  \unexpanded\expandafter
+                  \ekv at unexpanded\expandafter
+                    {\csname ekvc@@safehash@#1\endcsname}%
+                  ####1\ekv at unexpanded{\ekvc at mark}{}%
+                  \ekv at unexpanded\expandafter
                     {%
                       \csname ekvc at hashmark@#1\endcsname{}%
                       \ekvc at mark{\ekvc at err@missing at hash{#1}}\ekvc at stop
@@ -2258,29 +2288,32 @@
                     }%
                 }%
               \long\gdef
-                \unexpanded\expandafter{\csname ekvc@@safehash@#1\endcsname}%
+                \ekv at unexpanded\expandafter
+                  {\csname ekvc@@safehash@#1\endcsname}%
                   ####1%
-                  \unexpanded\expandafter{\csname ekvc at hashmark@#1\endcsname}%
-                  ####2####3\unexpanded{\ekvc at mark}####4####5%
-                  \unexpanded{\ekvc at stop}%
+                  \ekv at unexpanded\expandafter
+                    {\csname ekvc at hashmark@#1\endcsname}%
+                  ####2####3\ekv at unexpanded{\ekvc at mark}####4####5%
+                  \ekv at unexpanded{\ekvc at stop}%
                 {%
                   ####4{####2}%
                 }%
-              \long\gdef\unexpanded\expandafter
+              \long\gdef\ekv at unexpanded\expandafter
                 {\csname ekvc at fastsplithash@#1\endcsname}%
                   ####1%
-                  \unexpanded\expandafter{\csname ekvc at hashmark@#1\endcsname}%
-                  ####2####3\unexpanded{\ekvc at stop}####4%
+                  \ekv at unexpanded\expandafter
+                    {\csname ekvc at hashmark@#1\endcsname}%
+                  ####2####3\ekv at unexpanded{\ekvc at stop}####4%
                 {%
                   ####4{####2}%
                 }%
-              \long\gdef\unexpanded\expandafter
+              \long\gdef\ekv at unexpanded\expandafter
                 {\csname ekvc at safesplithash@#1\endcsname}####1%
                 {%
-                  \unexpanded\expandafter
+                  \ekv at unexpanded\expandafter
                     {\csname ekvc@@safesplithash@#1\endcsname}%
-                  ####1\unexpanded{\ekvc at mark\ekvc at safe@after at hash}%
-                  \unexpanded\expandafter
+                  ####1\ekv at unexpanded{\ekvc at mark\ekvc at safe@after at hash}%
+                  \ekv at unexpanded\expandafter
                     {%
                       \csname ekvc at hashmark@#1\endcsname{}%
                       \ekvc at mark
@@ -2288,12 +2321,13 @@
                       \ekvc at stop
                     }%
                 }%
-              \long\gdef\unexpanded\expandafter
+              \long\gdef\ekv at unexpanded\expandafter
                 {\csname ekvc@@safesplithash@#1\endcsname}%
                   ####1%
-                  \unexpanded\expandafter{\csname ekvc at hashmark@#1\endcsname}%
-                  ####2####3\unexpanded{\ekvc at mark}####4####5%
-                  \unexpanded{\ekvc at stop}%
+                  \ekv at unexpanded\expandafter
+                    {\csname ekvc at hashmark@#1\endcsname}%
+                  ####2####3\ekv at unexpanded{\ekvc at mark}####4####5%
+                  \ekv at unexpanded{\ekvc at stop}%
                 {%
                   ####4{####2}%
                 }%
@@ -2306,6 +2340,7 @@
 % \end{macro}
 %
 % \begin{macro}{\ekvcValue}
+% \begin{macro}[internal]{\ekvcValue@}
 %   All this does is a few consistency checks on the first argument (not empty,
 %   hash macro exists) and then call that hash-grabbing macro that will also
 %   test whether the hash is inside of |#2| or not.
@@ -2312,7 +2347,11 @@
 %    \begin{macrocode}
 \long\def\ekvcValue#1%
   {%
-    \unexpanded
+    \ekv at unexpanded
+    \expandafter\ekvcValue@\detokenize{#1}\ekvc at stop
+  }
+\def\ekvcValue@#1\ekvc at stop
+  {%
     \ekv at ifdefined{ekvc at safehash@#1}%
       {\csname ekvc at safehash@#1\endcsname}%
       {\ekvc at err@unknown at hash{#1}\@firstoftwo{{}}}%
@@ -2319,19 +2358,24 @@
   }
 %    \end{macrocode}
 % \end{macro}
+% \end{macro}
 %
 % \begin{macro}{\ekvcValueFast}
 %   To be as fast as possible, this doesn't test for anything, assuming the user
 %   knows best.
 %    \begin{macrocode}
-\long\def\ekvcValueFast#1#2{\csname ekvc at fasthash@#1\endcsname#2\ekvc at stop}
+\long\def\ekvcValueFast#1#2%
+  {\csname ekvc at fasthash@\detokenize{#1}\endcsname#2\ekvc at stop}
 %    \end{macrocode}
 % \end{macro}
 %
-% \begin{macro}{\ekvcValueSplit,\ekvcValueSplit at recover}
+% \begin{macro}{\ekvcValueSplit}
+% \begin{macro}[internal]{\ekvcValueSplit@,\ekvcValueSplit at recover}
 %   This splits off a single value.
 %    \begin{macrocode}
 \long\def\ekvcValueSplit#1%
+  {\expandafter\ekvcValueSplit@\detokenize{#1}\ekvc at stop}
+\def\ekvcValueSplit@#1\ekvc at stop
   {%
     \ekv at ifdefined{ekvc at safesplithash@#1}%
       {\csname ekvc at safesplithash@#1\endcsname}%
@@ -2340,6 +2384,7 @@
 \long\def\ekvcValueSplit at recover#1#2{#2{}}
 %    \end{macrocode}
 % \end{macro}
+% \end{macro}
 %
 % \begin{macro}[internal]{\ekvc at safe@after at hash}
 %    \begin{macrocode}
@@ -2357,7 +2402,7 @@
 %   sequence.
 %    \begin{macrocode}
 \long\def\ekvcValueSplitFast#1#2%
-  {\csname ekvc at fastsplithash@#1\endcsname#2\ekvc at stop}
+  {\csname ekvc at fastsplithash@\detokenize{#1}\endcsname#2\ekvc at stop}
 %    \end{macrocode}
 % \end{macro}
 %
@@ -2380,6 +2425,8 @@
 % \end{macro}
 %
 % \begin{macro}{\ekvcSecondaryKeys}
+% \begin{macro}[internal]
+%   {\ekvcSecondaryKeys at a,\ekvcSecondaryKeys at b,\ekvcSecondaryKeys at c}
 %   The secondary keys are defined pretty similar to the way the originals are,
 %   but here we also introduce some key types (those have a |@t@| in their name)
 %   additionally to the prefixes.
@@ -2389,14 +2436,16 @@
     \edef\ekvc at set{\string#1}%
     \ekvparse\ekvc at err@value at required\ekvcSecondaryKeys at a{#2}%
   }
-\protected\def\ekvcSecondaryKeys at a#1%
+\protected\long\def\ekvcSecondaryKeys at a#1%
+  {\expandafter\ekvcSecondaryKeys at b\detokenize{#1}\ekvc at stop}
+\protected\def\ekvcSecondaryKeys at b#1\ekvc at stop
   {%
     \let\ekvc at long\ekv at empty
     \ekvc at ifspace{#1}%
-      {\ekvcSecondaryKeys at b#1\ekvc at stop}%
+      {\ekvcSecondaryKeys at c#1\ekvc at stop}%
       {\ekvc at err@missing at type{#1}\@gobble}%
   }
-\protected\def\ekvcSecondaryKeys at b#1 #2\ekvc at stop
+\protected\def\ekvcSecondaryKeys at c#1 #2\ekvc at stop
   {%
     \ekv at ifdefined{ekvc at p@#1}%
       {\csname ekvc at p@#1\endcsname}%
@@ -2409,6 +2458,7 @@
   }
 %    \end{macrocode}
 % \end{macro}
+% \end{macro}
 %
 % \begin{macro}{\ekvcChange}
 %   This can be used to change the defaults of an \expkvc\ defined macro. It
@@ -2616,7 +2666,7 @@
         \ekvc at assert@not at long{default #1}%
         \edef\ekvc at tmp
           {%
-            \unexpanded\expandafter
+            \ekv at unexpanded\expandafter
               {\csname\ekv at name\ekvc at set{#1}\endcsname{#2}}%
           }%
         \ekvletNoVal\ekvc at set{#1}\ekvc at tmp
@@ -2882,8 +2932,8 @@
   {%
     \edef#1%
       {%
-        \unexpanded{\ekvc at flag@height}%
-          \unexpanded\expandafter{\csname\ekvc at flag@name#1\endcsname}%
+        \ekv at unexpanded{\ekvc at flag@height}%
+          \ekv at unexpanded\expandafter{\csname\ekvc at flag@name#1\endcsname}%
       }%
     \ekv at expargtwice
       {\expandafter\def\csname\ekvc at flag@name#1\endcsname##1}%
@@ -3100,7 +3150,7 @@
 %    \begin{macrocode}
 \def\ekvc at extract@mark#1{\expandafter\ekvc at extract@mark@\meaning#1\ekv at stop}
 \begingroup
-\lccode`;=`\#
+\lccode`;=`#
 \lccode`/=`\\
 \lowercase{\endgroup
 \def\ekvc at extract@mark@#1:#2/#3 ;#4\ekv at stop{#3}%
@@ -3142,41 +3192,41 @@
   {%
     \errmessage{expkv-cs Error: Too many keys for macro `\string#1'}%
   }
-\protected\def\ekvc at err@value at required#1%
+\protected\long\def\ekvc at err@value at required#1%
   {%
-    \errmessage{expkv-cs Error: Missing value for key `\unexpanded{#1}'}%
+    \errmessage{expkv-cs Error: Missing value for key `\ekv at unexpanded{#1}'}%
   }
-\protected\def\ekvc at err@missing at type#1%
+\protected\long\def\ekvc at err@missing at type#1%
   {%
     \errmessage
-      {expkv-cs Error: Missing type for secondary key `\unexpanded{#1}'}%
+      {expkv-cs Error: Missing type for secondary key `\ekv at unexpanded{#1}'}%
   }
-\protected\def\ekvc at err@no at long#1%
+\protected\long\def\ekvc at err@no at long#1%
   {%
     \errmessage
-      {expkv-cs Error: prefix `long' not accepted for `\unexpanded{#1}'}%
+      {expkv-cs Error: prefix `long' not accepted for `\ekv at unexpanded{#1}'}%
   }
-\protected\def\ekvc at err@already at defined#1%
+\protected\long\def\ekvc at err@already at defined#1%
   {%
     \errmessage{expkv-cs Error: Macro `\string#1' already defined}%
   }
-\protected\def\ekvc at err@unknown at keytype#1%
+\protected\long\def\ekvc at err@unknown at keytype#1%
   {%
-    \errmessage{expkv-cs Error: Unknown key type `\unexpanded{#1}'}%
+    \errmessage{expkv-cs Error: Unknown key type `\ekv at unexpanded{#1}'}%
   }
-\protected\def\ekvc at err@unknown at key#1%
+\protected\long\def\ekvc at err@unknown at key#1%
   {%
     \errmessage
-      {expkv-cs Error: Unknown key `\unexpanded{#1}' for macro `\ekvc at set'}%
+      {expkv-cs Error: Unknown key `\ekv at unexpanded{#1}' for macro `\ekvc at set'}%
   }
-\long\def\ekvc at err@no at key@macro#1%
+\protected\long\def\ekvc at err@no at key@macro#1%
   {\errmessage{expkv-cs Error: \string#1 is no key=val macro}}
 \protected\long\def\ekvc at err@not at two#1%
   {%
     \errmessage
       {%
-        expkv-cs Error: Definition of `\unexpanded{#1}' doesn't contain exactly
-        two arguments%
+        expkv-cs Error: Definition of `\ekv at unexpanded{#1}' doesn't contain
+        exactly two arguments%
       }%
   }
 %    \end{macrocode}

Added: trunk/Master/texmf-dist/tex/context/third/expkv-cs/t-expkv-cs.tex
===================================================================
--- trunk/Master/texmf-dist/tex/context/third/expkv-cs/t-expkv-cs.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/context/third/expkv-cs/t-expkv-cs.tex	2021-09-21 19:46:07 UTC (rev 60571)
@@ -0,0 +1,43 @@
+%%
+%% This is file `t-expkv-cs.tex',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% expkv-cs.dtx  (with options: `ctx')
+%% 
+%% --------------------------------------------------------------
+%% expkv-cs -- define expandable key=val macros using expkv
+%% E-mail: jspratte at yahoo.de
+%% Released under the LaTeX Project Public License v1.3c or later
+%% See http://www.latex-project.org/lppl.txt
+%% --------------------------------------------------------------
+%% 
+%% Copyright (C) 2020-2021 Jonathan P. Spratte
+%% 
+%% This  work may be  distributed and/or  modified under  the conditions  of the
+%% LaTeX Project Public License (LPPL),  either version 1.3c  of this license or
+%% (at your option) any later version.  The latest version of this license is in
+%% the file:
+%% 
+%%   http://www.latex-project.org/lppl.txt
+%% 
+%% This work is "maintained" (as per LPPL maintenance status) by
+%%   Jonathan P. Spratte.
+%% 
+%% This work consists of the file  expkv-cs.dtx
+%% and the derived files           expkv-cs.pdf
+%%                                 expkv-cs.sty
+%%                                 expkv-cs.tex
+%%                                 t-expkv-cs.tex
+%% 
+\writestatus{loading}{ConTeXt User Module / expkv-cs}
+\usemodule[expkv]
+\unprotect
+\input expkv-cs.tex
+\writestatus{loading}
+  {ConTeXt User Module / expkv-cs / Version \ekvcVersion\space loaded}
+\protect\endinput
+%% 
+%%
+%% End of file `t-expkv-cs.tex'.


Property changes on: trunk/Master/texmf-dist/tex/context/third/expkv-cs/t-expkv-cs.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/tex/generic/expkv-cs/expkv-cs.tex
===================================================================
--- trunk/Master/texmf-dist/tex/generic/expkv-cs/expkv-cs.tex	2021-09-21 17:54:56 UTC (rev 60570)
+++ trunk/Master/texmf-dist/tex/generic/expkv-cs/expkv-cs.tex	2021-09-21 19:46:07 UTC (rev 60571)
@@ -29,6 +29,7 @@
 %% and the derived files           expkv-cs.pdf
 %%                                 expkv-cs.sty
 %%                                 expkv-cs.tex
+%%                                 t-expkv-cs.tex
 %% 
 \input expkv
 \expandafter\ifx\csname ekvcVersion\endcsname\relax
@@ -35,8 +36,8 @@
 \else
   \expandafter\endinput
 \fi
-\def\ekvcVersion{1.1}
-\def\ekvcDate{2021-07-07}
+\def\ekvcVersion{1.1a}
+\def\ekvcDate{2021-09-20}
 \csname ekvc at tmp\endcsname
 \expandafter\chardef\csname ekvc at tmp\endcsname=\catcode`\@
 \catcode`\@=11
@@ -65,9 +66,9 @@
   }
 \def\ekvc at ekvset@pre at expander@b#1\ekvc at stop#2\ekvc at stop
   {%
-    \unexpanded\expandafter{\ekv at alignsafe}%
-    \unexpanded{#1}##1\unexpanded{#2}%
-    \unexpanded\expandafter{\ekv at endalignsafe}%
+    \ekv at unexpanded\expandafter{\ekv at alignsafe}%
+    \ekv at unexpanded{#1}##1\ekv at unexpanded{#2}%
+    \ekv at unexpanded\expandafter{\ekv at endalignsafe}%
   }
 \protected\long\def\ekvcSplitAndUse#1#2%
   {%
@@ -85,9 +86,9 @@
         \ekvc at any@long\edef#1##1%
           {%
             \expandafter\ekvc at ekvset@pre at expander\expandafter{\ekvc at set}%
-            \unexpanded\expandafter
+            \ekv at unexpanded\expandafter
               {\csname ekvc at split@\the\ekvc at keycount\endcsname}%
-            \unexpanded\expandafter{\ekvc at initials{}#2}%
+            \ekv at unexpanded\expandafter{\ekvc at initials{}#2}%
           }%
       }%
       {%
@@ -94,8 +95,8 @@
         \ekvc at any@long\edef#1##1%
           {%
             \expandafter\ekvc at ekvset@pre at expander\expandafter{\ekvc at set}%
-            \unexpanded{#2}%
-            \unexpanded\expandafter{\ekvc at initials}%
+            \ekv at unexpanded{#2}%
+            \ekv at unexpanded\expandafter{\ekvc at initials}%
           }%
       }%
   }
@@ -132,7 +133,7 @@
   {%
     \begingroup
       \edef\ekvc at tmp
-        {\endgroup\def\unexpanded{\ekvc at tmp}{\ekvcSplit at build@argspec@{1}}}%
+        {\endgroup\def\ekv at unexpanded{\ekvc at tmp}{\ekvcSplit at build@argspec@{1}}}%
     \ekvc at tmp
   }
 \def\ekvcSplit at build@argspec@#1%
@@ -142,7 +143,7 @@
     \fi
     \@firstofone
       {%
-        \unexpanded\expandafter{\csname ekvc at splitmark@#1\endcsname####}#1%
+        \ekv at unexpanded\expandafter{\csname ekvc at splitmark@#1\endcsname####}#1%
         \expandafter\ekvcSplit at build@argspec@\expandafter{\the\numexpr#1+1}%
       }%
   }
@@ -153,47 +154,50 @@
     \let\ekvc at initials\ekv at empty
     \ekvparse\ekvc at SetupSplitKeys@check at unknown\ekvc at SetupSplitKeys@a
   }
-\protected\def\ekvc at SetupSplitKeys@a#1%
+\protected\long\def\ekvc at SetupSplitKeys@a#1%
+  {\expandafter\ekvc at SetupSplitKeys@b\detokenize{#1}\ekvc at stop}
+\protected\def\ekvc at SetupSplitKeys@b#1\ekvc at stop
   {%
     \advance\ekvc at keycount1
     \let\ekvc at long\ekv at empty
     \ekvc at ifspace{#1}%
-      {\ekvc at SetupSplitKeys@b#1\ekvc at stop}%
-      {\ekvc at SetupSplitKeys@c{#1}}%
+      {\ekvc at SetupSplitKeys@c#1\ekvc at stop}%
+      {\ekvc at SetupSplitKeys@d{#1}}%
   }
-\protected\def\ekvc at SetupSplitKeys@b#1 #2\ekvc at stop
+\protected\long\def\ekvc at SetupSplitKeys@c#1 #2\ekvc at stop
   {%
     \ekv at ifdefined{ekvc at split@p@#1}%
       {\csname ekvc at split@p@#1\endcsname{#2}}%
-      {\ekvc at SetupSplitKeys@c{#1 #2}}%
+      {\ekvc at SetupSplitKeys@d{#1 #2}}%
   }
-\protected\long\def\ekvc at SetupSplitKeys@c#1#2%
+\protected\long\def\ekvc at SetupSplitKeys@d#1#2%
   {%
     \begingroup
     \edef\ekvc at tmp
       {%
         \endgroup
-        \long\def\unexpanded{\ekvc at tmp}####1####2%
-            \unexpanded\expandafter
+        \long\def\ekv at unexpanded{\ekvc at tmp}####1####2%
+            \ekv at unexpanded\expandafter
             {\csname ekvc at splitmark@\the\ekvc at keycount\endcsname}####3%
           {%
             ####2%
-            \unexpanded\expandafter
+            \ekv at unexpanded\expandafter
               {\csname ekvc at splitmark@\the\ekvc at keycount\endcsname}{####1}%
           }%
         \unless\ifx\ekvc at long\long
-          \let\unexpanded\expandafter
-            {\csname ekvc@\ekvc at set(#1)\endcsname\ekvc at tmp}%
-          \def\unexpanded{\ekvc at tmp}####1%
+          \let\ekv at unexpanded\expandafter
+            {\csname ekvc@\ekvc at set(\detokenize{#1})\endcsname\ekvc at tmp}%
+          \def\ekv at unexpanded{\ekvc at tmp}####1%
             {%
-              \unexpanded\expandafter{\csname ekvc@\ekvc at set(#1)\endcsname}%
+              \ekv at unexpanded\expandafter
+                {\csname ekvc@\ekvc at set(\detokenize{#1})\endcsname}%
                 {####1}%
             }%
         \fi
-        \def\unexpanded{\ekvc at initials}%
+        \def\ekv at unexpanded{\ekvc at initials}%
           {%
-            \unexpanded\expandafter{\ekvc at initials}%
-            \unexpanded\expandafter
+            \ekv at unexpanded\expandafter{\ekvc at initials}%
+            \ekv at unexpanded\expandafter
               {\csname ekvc at splitmark@\the\ekvc at keycount\endcsname{#2}}%
           }%
       }%
@@ -225,7 +229,7 @@
       {##3#1{##4,##2= {##1} }}%
     \long\expandafter\def\csname\ekv at name\ekvc at set{}uN\endcsname##1##2#1##3%
       {##2#1{##3,##1}}%
-    \edef\ekvc at initials{\unexpanded\expandafter{\ekvc at initials#1{}}}%
+    \edef\ekvc at initials{\ekv at unexpanded\expandafter{\ekvc at initials#1{}}}%
     \ekvc at helpers@needed
       {\expandafter\ekvc at setup@splitmacro\expandafter{\the\ekvc at keycount}}%
       {}%
@@ -234,60 +238,60 @@
   {%
     \let\ekvc at long\long
     \let\ekvc at any@long\long
-    \ekvc at SetupSplitKeys@c
+    \ekvc at SetupSplitKeys@d
   }
-\def\ekvc at split@p at short{\ekvc at SetupSplitKeys@c}
+\def\ekvc at split@p at short{\ekvc at SetupSplitKeys@d}
 \protected\def\ekvc at defarggobbler#1{\def\ekvc at tmp##1#1##2##{##1#1}}
 \begingroup
 \edef\ekvc at tmp
   {%
-    \long\gdef\unexpanded\expandafter{\csname ekvc at split@1\endcsname}%
-        \unexpanded\expandafter{\csname ekvc at splitmark@1\endcsname}%
+    \long\gdef\ekv at unexpanded\expandafter{\csname ekvc at split@1\endcsname}%
+        \ekv at unexpanded\expandafter{\csname ekvc at splitmark@1\endcsname}%
         ##1##2##3%
       {##3{##1}##2}%
-    \long\gdef\unexpanded\expandafter{\csname ekvc at split@2\endcsname}%
-        \unexpanded\expandafter{\csname ekvc at splitmark@1\endcsname}##1%
-        \unexpanded\expandafter{\csname ekvc at splitmark@2\endcsname}##2%
+    \long\gdef\ekv at unexpanded\expandafter{\csname ekvc at split@2\endcsname}%
+        \ekv at unexpanded\expandafter{\csname ekvc at splitmark@1\endcsname}##1%
+        \ekv at unexpanded\expandafter{\csname ekvc at splitmark@2\endcsname}##2%
         ##3##4%
       {##4{##1}{##2}##3}%
-    \long\gdef\unexpanded\expandafter{\csname ekvc at split@3\endcsname}%
-        \unexpanded\expandafter{\csname ekvc at splitmark@1\endcsname}##1%
-        \unexpanded\expandafter{\csname ekvc at splitmark@2\endcsname}##2%
-        \unexpanded\expandafter{\csname ekvc at splitmark@3\endcsname}##3%
+    \long\gdef\ekv at unexpanded\expandafter{\csname ekvc at split@3\endcsname}%
+        \ekv at unexpanded\expandafter{\csname ekvc at splitmark@1\endcsname}##1%
+        \ekv at unexpanded\expandafter{\csname ekvc at splitmark@2\endcsname}##2%
+        \ekv at unexpanded\expandafter{\csname ekvc at splitmark@3\endcsname}##3%
         ##4##5%
       {##5{##1}{##2}{##3}##4}%
-    \long\gdef\unexpanded\expandafter{\csname ekvc at split@4\endcsname}%
-        \unexpanded\expandafter{\csname ekvc at splitmark@1\endcsname}##1%
-        \unexpanded\expandafter{\csname ekvc at splitmark@2\endcsname}##2%
-        \unexpanded\expandafter{\csname ekvc at splitmark@3\endcsname}##3%
-        \unexpanded\expandafter{\csname ekvc at splitmark@4\endcsname}##4%
+    \long\gdef\ekv at unexpanded\expandafter{\csname ekvc at split@4\endcsname}%
+        \ekv at unexpanded\expandafter{\csname ekvc at splitmark@1\endcsname}##1%
+        \ekv at unexpanded\expandafter{\csname ekvc at splitmark@2\endcsname}##2%
+        \ekv at unexpanded\expandafter{\csname ekvc at splitmark@3\endcsname}##3%
+        \ekv at unexpanded\expandafter{\csname ekvc at splitmark@4\endcsname}##4%
         ##5##6%
       {##6{##1}{##2}{##3}{##4}##5}%
-    \long\gdef\unexpanded\expandafter{\csname ekvc at split@5\endcsname}%
-        \unexpanded\expandafter{\csname ekvc at splitmark@1\endcsname}##1%
-        \unexpanded\expandafter{\csname ekvc at splitmark@2\endcsname}##2%
-        \unexpanded\expandafter{\csname ekvc at splitmark@3\endcsname}##3%
-        \unexpanded\expandafter{\csname ekvc at splitmark@4\endcsname}##4%
-        \unexpanded\expandafter{\csname ekvc at splitmark@5\endcsname}##5%
+    \long\gdef\ekv at unexpanded\expandafter{\csname ekvc at split@5\endcsname}%
+        \ekv at unexpanded\expandafter{\csname ekvc at splitmark@1\endcsname}##1%
+        \ekv at unexpanded\expandafter{\csname ekvc at splitmark@2\endcsname}##2%
+        \ekv at unexpanded\expandafter{\csname ekvc at splitmark@3\endcsname}##3%
+        \ekv at unexpanded\expandafter{\csname ekvc at splitmark@4\endcsname}##4%
+        \ekv at unexpanded\expandafter{\csname ekvc at splitmark@5\endcsname}##5%
         ##6##7%
       {##7{##1}{##2}{##3}{##4}{##5}##6}%
-    \long\gdef\unexpanded\expandafter{\csname ekvc at split@6\endcsname}%
-        \unexpanded\expandafter{\csname ekvc at splitmark@1\endcsname}##1%
-        \unexpanded\expandafter{\csname ekvc at splitmark@2\endcsname}##2%
-        \unexpanded\expandafter{\csname ekvc at splitmark@3\endcsname}##3%
-        \unexpanded\expandafter{\csname ekvc at splitmark@4\endcsname}##4%
-        \unexpanded\expandafter{\csname ekvc at splitmark@5\endcsname}##5%
-        \unexpanded\expandafter{\csname ekvc at splitmark@6\endcsname}##6%
+    \long\gdef\ekv at unexpanded\expandafter{\csname ekvc at split@6\endcsname}%
+        \ekv at unexpanded\expandafter{\csname ekvc at splitmark@1\endcsname}##1%
+        \ekv at unexpanded\expandafter{\csname ekvc at splitmark@2\endcsname}##2%
+        \ekv at unexpanded\expandafter{\csname ekvc at splitmark@3\endcsname}##3%
+        \ekv at unexpanded\expandafter{\csname ekvc at splitmark@4\endcsname}##4%
+        \ekv at unexpanded\expandafter{\csname ekvc at splitmark@5\endcsname}##5%
+        \ekv at unexpanded\expandafter{\csname ekvc at splitmark@6\endcsname}##6%
         ##7##8%
       {##8{##1}{##2}{##3}{##4}{##5}{##6}##7}%
-    \long\gdef\unexpanded\expandafter{\csname ekvc at split@7\endcsname}%
-        \unexpanded\expandafter{\csname ekvc at splitmark@1\endcsname}##1%
-        \unexpanded\expandafter{\csname ekvc at splitmark@2\endcsname}##2%
-        \unexpanded\expandafter{\csname ekvc at splitmark@3\endcsname}##3%
-        \unexpanded\expandafter{\csname ekvc at splitmark@4\endcsname}##4%
-        \unexpanded\expandafter{\csname ekvc at splitmark@5\endcsname}##5%
-        \unexpanded\expandafter{\csname ekvc at splitmark@6\endcsname}##6%
-        \unexpanded\expandafter{\csname ekvc at splitmark@7\endcsname}##7%
+    \long\gdef\ekv at unexpanded\expandafter{\csname ekvc at split@7\endcsname}%
+        \ekv at unexpanded\expandafter{\csname ekvc at splitmark@1\endcsname}##1%
+        \ekv at unexpanded\expandafter{\csname ekvc at splitmark@2\endcsname}##2%
+        \ekv at unexpanded\expandafter{\csname ekvc at splitmark@3\endcsname}##3%
+        \ekv at unexpanded\expandafter{\csname ekvc at splitmark@4\endcsname}##4%
+        \ekv at unexpanded\expandafter{\csname ekvc at splitmark@5\endcsname}##5%
+        \ekv at unexpanded\expandafter{\csname ekvc at splitmark@6\endcsname}##6%
+        \ekv at unexpanded\expandafter{\csname ekvc at splitmark@7\endcsname}##7%
         ##8##9%
       {##9{##1}{##2}{##3}{##4}{##5}{##6}{##7}##8}%
   }
@@ -301,12 +305,13 @@
           \edef\ekvc at tmp
             {%
               \long\gdef
-                  \unexpanded\expandafter{\csname ekvc at split@#1\endcsname}%
+                  \ekv at unexpanded\expandafter{\csname ekvc at split@#1\endcsname}%
                   ####1%
-                  \unexpanded\expandafter{\csname ekvc at splitmark@#1\endcsname}%
+                  \ekv at unexpanded\expandafter
+                    {\csname ekvc at splitmark@#1\endcsname}%
                   ####2####3%
                 {%
-                  \unexpanded\expandafter
+                  \ekv at unexpanded\expandafter
                     {\csname ekvc at split@\the\numexpr#1-1\relax\endcsname}%
                   ####1{{####2}####3}%
                 }%
@@ -331,8 +336,8 @@
         \ekvc at any@long\edef#1##1%
           {%
             \expandafter\ekvc at ekvset@pre at expander\expandafter{\ekvc at set}%
-            \unexpanded{\ekvc at hash@pack at argument}%
-            \unexpanded\expandafter{\ekvc at initials\ekvc at stop#2}%
+            \ekv at unexpanded{\ekvc at hash@pack at argument}%
+            \ekv at unexpanded\expandafter{\ekvc at initials\ekvc at stop#2}%
           }%
       }%
       {%
@@ -339,8 +344,8 @@
         \ekvc at any@long\edef#1##1%
           {%
             \expandafter\ekvc at ekvset@pre at expander\expandafter{\ekvc at set}%
-            \unexpanded{#2}%
-            \unexpanded\expandafter{\ekvc at initials\ekvc at stop}%
+            \ekv at unexpanded{#2}%
+            \ekv at unexpanded\expandafter{\ekvc at initials\ekvc at stop}%
           }%
       }%
   }
@@ -371,44 +376,48 @@
     \let\ekvc at initials\ekv at empty
     \ekvparse\ekvc at SetupHashKeys@check at unknown\ekvc at SetupHashKeys@a{#1}%
   }
-\protected\def\ekvc at SetupHashKeys@a#1%
+\protected\long\def\ekvc at SetupHashKeys@a#1%
+  {\expandafter\ekvc at SetupHashKeys@b\detokenize{#1}\ekvc at stop}
+\protected\def\ekvc at SetupHashKeys@b#1\ekvc at stop
   {%
     \let\ekvc at long\ekv at empty
     \ekvc at ifspace{#1}%
-      {\ekvc at SetupHashKeys@b#1\ekvc at stop}%
-      {\ekvc at SetupHashKeys@c{#1}}%
+      {\ekvc at SetupHashKeys@c#1\ekvc at stop}%
+      {\ekvc at SetupHashKeys@d{#1}}%
   }
-\protected\def\ekvc at SetupHashKeys@b#1 #2\ekvc at stop
+\protected\def\ekvc at SetupHashKeys@c#1 #2\ekvc at stop
   {%
     \ekv at ifdefined{ekvc at hash@p@#1}%
       {\csname ekvc at hash@p@#1\endcsname{#2}}%
-      {\ekvc at SetupHashKeys@c{#1 #2}}%
+      {\ekvc at SetupHashKeys@d{#1 #2}}%
   }
-\protected\long\def\ekvc at SetupHashKeys@c#1#2%
+\protected\long\def\ekvc at SetupHashKeys@d#1#2%
   {%
     \begingroup
     \edef\ekvc at tmp
       {%
         \endgroup
-        \long\def\unexpanded{\ekvc at tmp}####1####2%
-            \unexpanded\expandafter{\csname ekvc at hashmark@#1\endcsname}####3%
+        \long\def\ekv at unexpanded{\ekvc at tmp}####1####2%
+            \ekv at unexpanded\expandafter{\csname ekvc at hashmark@#1\endcsname}%
+            ####3%
           {%
             ####2%
-            \unexpanded\expandafter{\csname ekvc at hashmark@#1\endcsname}{####1}%
+            \ekv at unexpanded\expandafter{\csname ekvc at hashmark@#1\endcsname}%
+            {####1}%
           }%
         \unless\ifx\ekvc at long\long
-          \let\unexpanded\expandafter
+          \let\ekv at unexpanded\expandafter
             {\csname ekvc@\ekvc at set(#1)\endcsname\ekvc at tmp}%
-          \def\unexpanded{\ekvc at tmp}####1%
+          \def\ekv at unexpanded{\ekvc at tmp}####1%
             {%
-              \unexpanded\expandafter{\csname ekvc@\ekvc at set(#1)\endcsname}%
+              \ekv at unexpanded\expandafter{\csname ekvc@\ekvc at set(#1)\endcsname}%
                 {####1}%
             }%
         \fi
-        \def\unexpanded{\ekvc at initials}%
+        \def\ekv at unexpanded{\ekvc at initials}%
           {%
-            \unexpanded\expandafter{\ekvc at initials}%
-            \unexpanded\expandafter{\csname ekvc at hashmark@#1\endcsname{#2}}%
+            \ekv at unexpanded\expandafter{\ekvc at initials}%
+            \ekv at unexpanded\expandafter{\csname ekvc at hashmark@#1\endcsname{#2}}%
           }%
       }%
     \ekvc at tmp
@@ -436,7 +445,7 @@
         \let\csname\ekv at name\ekvc at set{}u\endcsname\ekvc at hash@unknown at kv
         \expandafter
         \let\csname\ekv at name\ekvc at set{}uN\endcsname\ekvc at hash@unknown at k
-        \edef\ekvc at initials{\unexpanded\expandafter{\ekvc at initials#1{}}}%
+        \edef\ekvc at initials{\ekv at unexpanded\expandafter{\ekvc at initials#1{}}}%
         \ekvc at setup@hashmacro{...}%
       }%
     \long\def\ekvc at hash@unknown at kv##1##2##3#1##4{##3#1{##4,##2= {##1} }}%
@@ -448,9 +457,9 @@
   {%
     \let\ekvc at long\long
     \let\ekvc at any@long\long
-    \ekvc at SetupHashKeys@c
+    \ekvc at SetupHashKeys@d
   }
-\def\ekvc at hash@p at short{\ekvc at SetupHashKeys@c}
+\def\ekvc at hash@p at short{\ekvc at SetupHashKeys@d}
 \protected\def\ekvc at setup@hashmacro#1%
   {%
     \ekv at ifdefined{ekvc at fasthash@#1}{}%
@@ -459,18 +468,20 @@
           \edef\ekvc at tmp
             {%
               \long\gdef
-                \unexpanded\expandafter{\csname ekvc at fasthash@#1\endcsname}%
+                \ekv at unexpanded\expandafter{\csname ekvc at fasthash@#1\endcsname}%
                   ####1%
-                  \unexpanded\expandafter{\csname ekvc at hashmark@#1\endcsname}%
-                  ####2####3\unexpanded{\ekvc at stop}%
+                  \ekv at unexpanded\expandafter
+                    {\csname ekvc at hashmark@#1\endcsname}%
+                  ####2####3\ekv at unexpanded{\ekvc at stop}%
                 {####2}%
               \long\gdef
-                \unexpanded\expandafter{\csname ekvc at safehash@#1\endcsname}%
+                \ekv at unexpanded\expandafter{\csname ekvc at safehash@#1\endcsname}%
                   ####1%
                 {%
-                  \unexpanded\expandafter{\csname ekvc@@safehash@#1\endcsname}%
-                  ####1\unexpanded{\ekvc at mark}{}%
-                  \unexpanded\expandafter
+                  \ekv at unexpanded\expandafter
+                    {\csname ekvc@@safehash@#1\endcsname}%
+                  ####1\ekv at unexpanded{\ekvc at mark}{}%
+                  \ekv at unexpanded\expandafter
                     {%
                       \csname ekvc at hashmark@#1\endcsname{}%
                       \ekvc at mark{\ekvc at err@missing at hash{#1}}\ekvc at stop
@@ -477,29 +488,32 @@
                     }%
                 }%
               \long\gdef
-                \unexpanded\expandafter{\csname ekvc@@safehash@#1\endcsname}%
+                \ekv at unexpanded\expandafter
+                  {\csname ekvc@@safehash@#1\endcsname}%
                   ####1%
-                  \unexpanded\expandafter{\csname ekvc at hashmark@#1\endcsname}%
-                  ####2####3\unexpanded{\ekvc at mark}####4####5%
-                  \unexpanded{\ekvc at stop}%
+                  \ekv at unexpanded\expandafter
+                    {\csname ekvc at hashmark@#1\endcsname}%
+                  ####2####3\ekv at unexpanded{\ekvc at mark}####4####5%
+                  \ekv at unexpanded{\ekvc at stop}%
                 {%
                   ####4{####2}%
                 }%
-              \long\gdef\unexpanded\expandafter
+              \long\gdef\ekv at unexpanded\expandafter
                 {\csname ekvc at fastsplithash@#1\endcsname}%
                   ####1%
-                  \unexpanded\expandafter{\csname ekvc at hashmark@#1\endcsname}%
-                  ####2####3\unexpanded{\ekvc at stop}####4%
+                  \ekv at unexpanded\expandafter
+                    {\csname ekvc at hashmark@#1\endcsname}%
+                  ####2####3\ekv at unexpanded{\ekvc at stop}####4%
                 {%
                   ####4{####2}%
                 }%
-              \long\gdef\unexpanded\expandafter
+              \long\gdef\ekv at unexpanded\expandafter
                 {\csname ekvc at safesplithash@#1\endcsname}####1%
                 {%
-                  \unexpanded\expandafter
+                  \ekv at unexpanded\expandafter
                     {\csname ekvc@@safesplithash@#1\endcsname}%
-                  ####1\unexpanded{\ekvc at mark\ekvc at safe@after at hash}%
-                  \unexpanded\expandafter
+                  ####1\ekv at unexpanded{\ekvc at mark\ekvc at safe@after at hash}%
+                  \ekv at unexpanded\expandafter
                     {%
                       \csname ekvc at hashmark@#1\endcsname{}%
                       \ekvc at mark
@@ -507,12 +521,13 @@
                       \ekvc at stop
                     }%
                 }%
-              \long\gdef\unexpanded\expandafter
+              \long\gdef\ekv at unexpanded\expandafter
                 {\csname ekvc@@safesplithash@#1\endcsname}%
                   ####1%
-                  \unexpanded\expandafter{\csname ekvc at hashmark@#1\endcsname}%
-                  ####2####3\unexpanded{\ekvc at mark}####4####5%
-                  \unexpanded{\ekvc at stop}%
+                  \ekv at unexpanded\expandafter
+                    {\csname ekvc at hashmark@#1\endcsname}%
+                  ####2####3\ekv at unexpanded{\ekvc at mark}####4####5%
+                  \ekv at unexpanded{\ekvc at stop}%
                 {%
                   ####4{####2}%
                 }%
@@ -523,13 +538,20 @@
   }
 \long\def\ekvcValue#1%
   {%
-    \unexpanded
+    \ekv at unexpanded
+    \expandafter\ekvcValue@\detokenize{#1}\ekvc at stop
+  }
+\def\ekvcValue@#1\ekvc at stop
+  {%
     \ekv at ifdefined{ekvc at safehash@#1}%
       {\csname ekvc at safehash@#1\endcsname}%
       {\ekvc at err@unknown at hash{#1}\@firstoftwo{{}}}%
   }
-\long\def\ekvcValueFast#1#2{\csname ekvc at fasthash@#1\endcsname#2\ekvc at stop}
+\long\def\ekvcValueFast#1#2%
+  {\csname ekvc at fasthash@\detokenize{#1}\endcsname#2\ekvc at stop}
 \long\def\ekvcValueSplit#1%
+  {\expandafter\ekvcValueSplit@\detokenize{#1}\ekvc at stop}
+\def\ekvcValueSplit@#1\ekvc at stop
   {%
     \ekv at ifdefined{ekvc at safesplithash@#1}%
       {\csname ekvc at safesplithash@#1\endcsname}%
@@ -541,7 +563,7 @@
     #2{#1}%
   }
 \long\def\ekvcValueSplitFast#1#2%
-  {\csname ekvc at fastsplithash@#1\endcsname#2\ekvc at stop}
+  {\csname ekvc at fastsplithash@\detokenize{#1}\endcsname#2\ekvc at stop}
 \long\def\ekvc at safehash@#1{\ekvc at err@empty at hash{}}
 \long\def\ekvc at fasthash@#1\ekvc at stop{\ekvc at err@empty at hash}
 \long\def\ekvc at safesplithash@#1#2{\ekvc at err@empty at hash#2{}}
@@ -551,14 +573,16 @@
     \edef\ekvc at set{\string#1}%
     \ekvparse\ekvc at err@value at required\ekvcSecondaryKeys at a{#2}%
   }
-\protected\def\ekvcSecondaryKeys at a#1%
+\protected\long\def\ekvcSecondaryKeys at a#1%
+  {\expandafter\ekvcSecondaryKeys at b\detokenize{#1}\ekvc at stop}
+\protected\def\ekvcSecondaryKeys at b#1\ekvc at stop
   {%
     \let\ekvc at long\ekv at empty
     \ekvc at ifspace{#1}%
-      {\ekvcSecondaryKeys at b#1\ekvc at stop}%
+      {\ekvcSecondaryKeys at c#1\ekvc at stop}%
       {\ekvc at err@missing at type{#1}\@gobble}%
   }
-\protected\def\ekvcSecondaryKeys at b#1 #2\ekvc at stop
+\protected\def\ekvcSecondaryKeys at c#1 #2\ekvc at stop
   {%
     \ekv at ifdefined{ekvc at p@#1}%
       {\csname ekvc at p@#1\endcsname}%
@@ -683,7 +707,7 @@
         \ekvc at assert@not at long{default #1}%
         \edef\ekvc at tmp
           {%
-            \unexpanded\expandafter
+            \ekv at unexpanded\expandafter
               {\csname\ekv at name\ekvc at set{#1}\endcsname{#2}}%
           }%
         \ekvletNoVal\ekvc at set{#1}\ekvc at tmp
@@ -832,8 +856,8 @@
   {%
     \edef#1%
       {%
-        \unexpanded{\ekvc at flag@height}%
-          \unexpanded\expandafter{\csname\ekvc at flag@name#1\endcsname}%
+        \ekv at unexpanded{\ekvc at flag@height}%
+          \ekv at unexpanded\expandafter{\csname\ekvc at flag@name#1\endcsname}%
       }%
     \ekv at expargtwice
       {\expandafter\def\csname\ekvc at flag@name#1\endcsname##1}%
@@ -948,7 +972,7 @@
 \long\def\ekvc at ifempty@gtwo#1#2{\ekv at ifempty@\ekv at ifempty@A}
 \def\ekvc at extract@mark#1{\expandafter\ekvc at extract@mark@\meaning#1\ekv at stop}
 \begingroup
-\lccode`;=`\#
+\lccode`;=`#
 \lccode`/=`\\
 \lowercase{\endgroup
 \def\ekvc at extract@mark@#1:#2/#3 ;#4\ekv at stop{#3}%
@@ -960,41 +984,41 @@
   {%
     \errmessage{expkv-cs Error: Too many keys for macro `\string#1'}%
   }
-\protected\def\ekvc at err@value at required#1%
+\protected\long\def\ekvc at err@value at required#1%
   {%
-    \errmessage{expkv-cs Error: Missing value for key `\unexpanded{#1}'}%
+    \errmessage{expkv-cs Error: Missing value for key `\ekv at unexpanded{#1}'}%
   }
-\protected\def\ekvc at err@missing at type#1%
+\protected\long\def\ekvc at err@missing at type#1%
   {%
     \errmessage
-      {expkv-cs Error: Missing type for secondary key `\unexpanded{#1}'}%
+      {expkv-cs Error: Missing type for secondary key `\ekv at unexpanded{#1}'}%
   }
-\protected\def\ekvc at err@no at long#1%
+\protected\long\def\ekvc at err@no at long#1%
   {%
     \errmessage
-      {expkv-cs Error: prefix `long' not accepted for `\unexpanded{#1}'}%
+      {expkv-cs Error: prefix `long' not accepted for `\ekv at unexpanded{#1}'}%
   }
-\protected\def\ekvc at err@already at defined#1%
+\protected\long\def\ekvc at err@already at defined#1%
   {%
     \errmessage{expkv-cs Error: Macro `\string#1' already defined}%
   }
-\protected\def\ekvc at err@unknown at keytype#1%
+\protected\long\def\ekvc at err@unknown at keytype#1%
   {%
-    \errmessage{expkv-cs Error: Unknown key type `\unexpanded{#1}'}%
+    \errmessage{expkv-cs Error: Unknown key type `\ekv at unexpanded{#1}'}%
   }
-\protected\def\ekvc at err@unknown at key#1%
+\protected\long\def\ekvc at err@unknown at key#1%
   {%
     \errmessage
-      {expkv-cs Error: Unknown key `\unexpanded{#1}' for macro `\ekvc at set'}%
+      {expkv-cs Error: Unknown key `\ekv at unexpanded{#1}' for macro `\ekvc at set'}%
   }
-\long\def\ekvc at err@no at key@macro#1%
+\protected\long\def\ekvc at err@no at key@macro#1%
   {\errmessage{expkv-cs Error: \string#1 is no key=val macro}}
 \protected\long\def\ekvc at err@not at two#1%
   {%
     \errmessage
       {%
-        expkv-cs Error: Definition of `\unexpanded{#1}' doesn't contain exactly
-        two arguments%
+        expkv-cs Error: Definition of `\ekv at unexpanded{#1}' doesn't contain
+        exactly two arguments%
       }%
   }
 \ekv at exparg{\long\def\ekvc at err#1}{\ekverr{expkv-cs}{#1}}

Modified: trunk/Master/texmf-dist/tex/latex/expkv-cs/expkv-cs.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/expkv-cs/expkv-cs.sty	2021-09-21 17:54:56 UTC (rev 60570)
+++ trunk/Master/texmf-dist/tex/latex/expkv-cs/expkv-cs.sty	2021-09-21 19:46:07 UTC (rev 60571)
@@ -29,6 +29,7 @@
 %% and the derived files           expkv-cs.pdf
 %%                                 expkv-cs.sty
 %%                                 expkv-cs.tex
+%%                                 t-expkv-cs.tex
 %% 
 \RequirePackage{expkv}
 \def\ekvc at tmp



More information about the tex-live-commits mailing list.