From 542dd7f24e76ac20da26d1c4d7ceb69baa248133 Mon Sep 17 00:00:00 2001
From: Karl Berry <karl@freefriends.org>
Date: Sat, 18 May 2013 22:20:49 +0000
Subject: skeyval (18may13)

git-svn-id: svn://tug.org/texlive/trunk@30560 c570f23f-e606-0410-a88d-b1316a301751
---
 .../texmf-dist/tex/latex/skeyval/skeyval-core.tex  | 44 +++++++++++++++++-----
 1 file changed, 34 insertions(+), 10 deletions(-)

(limited to 'Master/texmf-dist/tex/latex/skeyval/skeyval-core.tex')

diff --git a/Master/texmf-dist/tex/latex/skeyval/skeyval-core.tex b/Master/texmf-dist/tex/latex/skeyval/skeyval-core.tex
index 9c517aa289a..e0ae452a739 100644
--- a/Master/texmf-dist/tex/latex/skeyval/skeyval-core.tex
+++ b/Master/texmf-dist/tex/latex/skeyval/skeyval-core.tex
@@ -3102,6 +3102,24 @@
 % \skv@strippointersfromvalue{<key value>}
 % \skv@strippointersfromvalue*{<key value cmd>}
 %
+% Strip pointers from a key's value. The pointers that may be used on
+% values of keys are
+%
+%   .expand once process list   -> Expand value once and process the
+%                                   expanded value as a list.
+%   .expand twice process list  -> Expand value twice and process the
+%                                   expanded value as a list.
+%   .expand process list        -> Fully expand value and process the
+%                                   expanded value as a list.
+%   .eprocess list              -> Fully expand value and process the
+%                                   expanded value as a list.
+%   .process list               -> Process the given value as a list.
+%   .list                       -> Process the given value as a list.
+%   .expand once                -> Expand value once before parsing it.
+%   .expand twice               -> Expand value twice before parsing it.
+%   .expanded                   -> Fully expand value before parsing it.
+%   .expand                     -> Fully expand value before parsing it.
+%
 % Return \skvcurrentvalue.
 %
 \skvrobustdef*\skv@strippointersfromvalue{%
@@ -3133,18 +3151,22 @@
             \skv@tempb{.process list}\skv@tempa{%
               \skv@processvalueaslisttrue
             }{%
-              \skv@tempb{.expand once}\skv@tempa{%
-                \edef\skv@tempa{\skvexpandtwice\skv@tempa}%
+              \skv@tempb{.list}\skv@tempa{%
+                \skv@processvalueaslisttrue
               }{%
-                \skv@tempb{.expand twice}\skv@tempa{%
-                  \edef\skv@tempa{\skvexpandthrice\skv@tempa}%
+                \skv@tempb{.expand once}\skv@tempa{%
+                  \edef\skv@tempa{\skvexpandtwice\skv@tempa}%
                 }{%
-                  \skv@tempb{.expanded}\skv@tempa{%
-                    \edef\skv@tempa{\skv@tempa}%
+                  \skv@tempb{.expand twice}\skv@tempa{%
+                    \edef\skv@tempa{\skvexpandthrice\skv@tempa}%
                   }{%
-                    \skv@tempb{.expand}\skv@tempa{%
+                    \skv@tempb{.expanded}\skv@tempa{%
                       \edef\skv@tempa{\skv@tempa}%
-                    }{}%
+                    }{%
+                      \skv@tempb{.expand}\skv@tempa{%
+                        \edef\skv@tempa{\skv@tempa}%
+                      }{}%
+                    }%
                   }%
                 }%
               }%
@@ -5487,7 +5509,7 @@
     %    argument in the key's call may be more complex:
     \ifx\skv@argpattern\skv@simplearg\else
       \ifcsname\skv@header\skvcurrentkey.@listkey\endcsname
-        \skv@err{A listkey must have a one-parameter argument}\skv@ehd
+        \skv@err{A listkey must have only a one-parameter argument}\skv@ehd
       \else
         \skvstripouterbraces{2}\skvcurrentvalue
         \skvvaluebracedfalse
@@ -5572,7 +5594,8 @@
           [#1]{\skvexpandonce\skv@tempa}%
         }%
       }{%
-        % Filter pox (instantiated package/article options) list members:
+        % Filter pox (instantiated package/article options) list members.
+        % Pox keys can't be initialized.
         \def\skv@tempd{}%
         \skvcommaloop*\skv@tempa\skv@tempa{%
           \expandafter\skv@g@tkeyname\skv@tempa=\skv@getname@nil\skv@tempb
@@ -5657,6 +5680,7 @@
 
 \skvsetupdefinekeys{.initialize=false,.save initial values=false}
 
+% Set aliases for handlers used in \skvdefinekeys:
 \skvrobustdef*\skvtypecastfordefinekeys#1{%
   \begingroup
   \def\skv@tempa{}%
-- 
cgit v1.2.3

