summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/skeyval/skeyval-core.tex
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2013-05-18 22:20:49 +0000
committerKarl Berry <karl@freefriends.org>2013-05-18 22:20:49 +0000
commit542dd7f24e76ac20da26d1c4d7ceb69baa248133 (patch)
treeab837470961c3d96adf5acdedf11b73fc7123726 /Master/texmf-dist/tex/latex/skeyval/skeyval-core.tex
parent9c89bc2ae3ae7486a57314cc88940b1ad4151b8e (diff)
skeyval (18may13)
git-svn-id: svn://tug.org/texlive/trunk@30560 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/skeyval/skeyval-core.tex')
-rw-r--r--Master/texmf-dist/tex/latex/skeyval/skeyval-core.tex44
1 files changed, 34 insertions, 10 deletions
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{}%