summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2009-09-17 23:34:19 +0000
committerKarl Berry <karl@freefriends.org>2009-09-17 23:34:19 +0000
commit1684d0a29834ce566a114b73ca0d6a8cf38edc21 (patch)
treeb03c3db912ae6bb76fad634d7ba4a69ea098eb28 /Master/texmf-dist/tex
parenta95d1a90845bf6c1c7f2ee629fbe10a20d5863ce (diff)
expl3 1543 (17sep09)
git-svn-id: svn://tug.org/texlive/trunk@15347 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex')
-rw-r--r--Master/texmf-dist/tex/latex/expl3/l3doc.cls29
-rw-r--r--Master/texmf-dist/tex/latex/expl3/l3keys.sty242
-rw-r--r--Master/texmf-dist/tex/latex/expl3/l3prg.sty32
-rw-r--r--Master/texmf-dist/tex/latex/expl3/l3prop.sty8
4 files changed, 143 insertions, 168 deletions
diff --git a/Master/texmf-dist/tex/latex/expl3/l3doc.cls b/Master/texmf-dist/tex/latex/expl3/l3doc.cls
index 691afa415e9..bfb198fecd3 100644
--- a/Master/texmf-dist/tex/latex/expl3/l3doc.cls
+++ b/Master/texmf-dist/tex/latex/expl3/l3doc.cls
@@ -53,7 +53,7 @@
\let \filedateOld \filedate
\let \fileversionOld \fileversion
\let \filedescriptionOld \filedescription
-\GetIdInfo$Id: l3doc.dtx 1451 2009-08-08 06:33:34Z joseph $
+\GetIdInfo$Id: l3doc.dtx 1538 2009-09-17 05:14:09Z will $
{L3 Experimental documentation class}
\ProvidesExplClass
{\filename}{\filedate}{\fileversion}{\filedescription}
@@ -253,12 +253,14 @@
$\star$
}
}
-\newenvironment{syntax}{%
- \minipage[b]{.7\textwidth}%
+\dim_new:N \g_doc_syntax_dim
+\dim_set:Nn \g_doc_syntax_dim {0.7\textwidth}
+\newenvironment{syntax}{
+ \minipage[b]{\g_doc_syntax_dim}
\cs_set_nopar:Npn \meta@font@select{\rmfamily\itshape} % (Will: I HATE italic cmtt!)
\small\ttfamily\raggedright
\obeyspaces\obeylines
-}{%
+}{
\endminipage
\hfil\break
\global\@ignoretrue
@@ -434,40 +436,40 @@
\par\end{trivlist}
}
\newenvironment{TemplateInterfaceDescription}[1]
- {\subsection{The template type `#1'}%
+ {\subsection{The~template~type~`#1'}%
\begingroup
\@beginparpenalty\@M
\description
- \def\TemplateArgument##1##2{\item[Arg: ##1]##2\par}%
+ \def\TemplateArgument##1##2{\item[Arg:~##1]##2\par}%
\def\TemplateSemantics{\enddescription\endgroup
\subsubsection*{Semantics:}}%
}
{\par\bigskip}
\newenvironment{TemplateDescription}[2]
- {\subsection{The template `#2' (type #1)}%
+ {\subsection{The~template~`#2'~(type~#1)}%
\subsubsection*{Attributes:}%
\begingroup
\@beginparpenalty\@M
\description
- \def\TemplateKey##1##2##3##4{\item[##1 (##2)]##3%
+ \def\TemplateKey##1##2##3##4{\item[##1~(##2)]##3%
\ifx\TemplateKey##4\TemplateKey\else
\hfill\penalty500\hbox{}\hfill Default:~##4%
\nobreak\hskip-\parfillskip\hskip0pt\relax
\fi
\par}%
\def\TemplateSemantics{\enddescription\endgroup
- \subsubsection*{Semantics \& Comments:}}%
+ \subsubsection*{Semantics~\&~Comments:}}%
}
{\par\bigskip}
\newenvironment{InstanceDescription}[4][xxxxxxxxxxxxxxx]
- {\subsubsection{The instance `#3' (template #2/#4)}%
- \subsubsection*{Attribute values:}%
+ {\subsubsection{The~instance~`#3'~(template~#2/#4)}%
+ \subsubsection*{Attribute~values:}%
\begingroup
\@beginparpenalty\@M
\def\InstanceKey##1##2{\>\textbf{##1}\>##2\\}%
\def\InstanceSemantics{\endtabbing\endgroup
\vskip-30pt\vskip0pt
- \subsubsection*{Layout description \& Comments:}}%
+ \subsubsection*{Layout~description~\&~Comments:}}%
\tabbing
xxxx\=#1\=\kill
}
@@ -643,6 +645,8 @@
}
}
\g@addto@macro\theindex{\MakePrivateLetters}
+\cs_set:Npn \verbatimchar {&}
+\cs_set:Npx \levelchar {\string#}
\setcounter{IndexColumns}{2}
\IndexPrologue{
\part*{Index}
@@ -653,6 +657,7 @@
numbers~underlined~point~to~the~definition,~
all~others~indicate~the~places~where~it~is~used.
}
+
\cs_set_nopar:Npn \doc_special_main_index:n #1 {
\index{
\@gobble#1
diff --git a/Master/texmf-dist/tex/latex/expl3/l3keys.sty b/Master/texmf-dist/tex/latex/expl3/l3keys.sty
index 0029aedf9b4..f683a8357e2 100644
--- a/Master/texmf-dist/tex/latex/expl3/l3keys.sty
+++ b/Master/texmf-dist/tex/latex/expl3/l3keys.sty
@@ -48,7 +48,7 @@
%%
%% -----------------------------------------------------------------------
\RequirePackage{l3names}
-\GetIdInfo$Id: l3keys.dtx 1504 2009-09-03 20:29:00Z joseph $
+\GetIdInfo$Id: l3keys.dtx 1542 2009-09-17 07:38:53Z joseph $
{L3 Experimental key-value support}
\ProvidesExplPackage
{\filename}{\filedate}{\fileversion}{\filedescription}
@@ -59,6 +59,7 @@
\tl_new:Nn \c_keys_value_required_tl { required }
\int_new:N \l_keys_choice_int
\tl_new:N \l_keys_choice_tl
+\tl_new:N \l_keys_choice_code_tl
\tl_new:N \l_keys_key_tl
\tl_new:N \l_keys_path_tl
\tl_new:N \l_keys_property_tl
@@ -67,81 +68,75 @@
\tl_new:Nn \l_keys_nesting_tl { none }
\bool_new:N \l_keys_no_value_bool
\toks_new:N \l_keys_value_toks
-\quark_new:N \q_keys_stop
-\cs_new:Npn \keys_arguments_tidy:w #1 \q_keys_stop { }
-\cs_new_nopar:Nn \keys_bool_set:N {
- \keys_cmd_set:nNx { \l_keys_path_tl / true } 1 {
- \exp_not:c { bool_ \keys_variable_get_scope:N #1 set_true:N }
+\cs_new_nopar:Nn \keys_bool_set:NN {
+ \keys_cmd_set:nx { \l_keys_path_tl / true } {
+ \exp_not:c { bool_ #2 set_true:N }
\exp_not:N #1
}
- \keys_cmd_set:nNx { \l_keys_path_tl / false } 1 {
+ \keys_cmd_set:nx { \l_keys_path_tl / false } {
\exp_not:N \use:c
- { bool_ \keys_variable_get_scope:N #1 set_false:N }
+ { bool_ #2 set_false:N }
\exp_not:N #1
}
- \keys_bool_set_aux:N #1
-}
-\cs_new_nopar:Nn \keys_bool_set_inverse:N {
- \keys_cmd_set:nNx { \l_keys_path_tl / true } 1 {
- \exp_not:c { bool_ \keys_variable_get_scope:N #1 set_false:N }
- \exp_not:N #1
- }
- \keys_cmd_set:nNx { \l_keys_path_tl / false } 1 {
- \exp_not:c { bool_ \keys_variable_get_scope:N #1 set_true:N }
- \exp_not:N #1
- }
- \keys_bool_set_aux:N #1
-}
-\cs_new_nopar:Nn \keys_bool_set_aux:N {
\keys_choice_make:
\cs_if_exist:NF #1 {
\bool_new:N #1
}
\keys_default_set:n { true }
}
+\cs_new:Nn \keys_choice_code_store:x {
+ \tl_set:cx { \c_keys_root_tl \l_keys_path_tl .choice_code_tl } {#1}
+}
\cs_new_nopar:Nn \keys_choice_find:n {
\keys_execute_aux:nn { \l_keys_path_tl / #1 } {
\keys_execute_aux:nn { \l_keys_path_tl / unknown } { }
}
}
\cs_new_nopar:Nn \keys_choice_make: {
- \keys_cmd_set:nNn { \l_keys_path_tl } 1 {
+ \keys_cmd_set:nn { \l_keys_path_tl } {
\keys_choice_find:n {##1}
}
- \keys_cmd_set:nNn { \l_keys_path_tl / unknown } 1 {
+ \keys_cmd_set:nn { \l_keys_path_tl / unknown } {
\msg_kernel_error:nxx { key-choice-unknown } { \l_keys_path_tl }
{##1}
}
}
-\cs_new:Nn \keys_choices_generate:nx {
+\cs_new:Nn \keys_choices_generate:n {
\keys_choice_make:
\int_zero:N \l_keys_choice_int
- \cs_set_nopar:Nn \keys_choices_generate_aux:n {
- \int_incr:N \l_keys_choice_int
- \keys_cmd_set:nNx { \l_keys_path_tl / ##1 } 1 {
- \exp_not:n { \tl_set:Nn \l_keys_choice_tl } {##1}
- \exp_not:n { \int_set:Nn \l_keys_choice_int }
- { \int_use:N \l_keys_choice_int }
- #2
+ \cs_if_exist:cTF {
+ \c_keys_root_tl \l_keys_path_tl .choice_code_tl
+ } {
+ \tl_set:Nv \l_keys_choice_code_tl {
+ \c_keys_root_tl \l_keys_path_tl .choice_code_tl
}
+ }{
+ \tl_clear:N \l_keys_choice_code_tl
}
\clist_map_function:nN {#1} \keys_choices_generate_aux:n
}
-\cs_new_nopar:Nn \keys_choices_generate_aux:n { }
-\cs_new:Nn \keys_cmd_set:nNn {
- \keys_cmd_set_aux:nN {#1} #2
- \cs_generate_from_arg_count:cNnn { \c_keys_root_tl #1 .cmd:w }
- \cs_set:Npn #2 { #3 \keys_arguments_tidy:w }
+\cs_new_nopar:Nn \keys_choices_generate_aux:n {
+ \int_incr:N \l_keys_choice_int
+ \keys_cmd_set:nx { \l_keys_path_tl / #1 } {
+ \exp_not:n { \tl_set:Nn \l_keys_choice_tl } {#1}
+ \exp_not:n { \int_set:Nn \l_keys_choice_int }
+ { \int_use:N \l_keys_choice_int }
+ \exp_not:V \l_keys_choice_code_tl
+ }
+}
+\cs_new:Nn \keys_cmd_set:nn {
+ \keys_cmd_set_aux:n {#1}
+ \cs_generate_from_arg_count:cNnn { \c_keys_root_tl #1 .cmd:n }
+ \cs_set:Npn 1 {#2}
}
-\cs_new:Nn \keys_cmd_set:nNx {
- \keys_cmd_set_aux:nN {#1} #2
- \cs_generate_from_arg_count:cNnn { \c_keys_root_tl #1 .cmd:w }
- \cs_set:Npx #2 { #3 \exp_not:N \keys_arguments_tidy:w }
+\cs_new:Nn \keys_cmd_set:nx {
+ \keys_cmd_set_aux:n {#1}
+ \cs_generate_from_arg_count:cNnn { \c_keys_root_tl #1 .cmd:n }
+ \cs_set:Npx 1 {#2}
}
-\cs_new_nopar:Nn \keys_cmd_set_aux:nN {
+\cs_new_nopar:Nn \keys_cmd_set_aux:n {
\keys_property_undefine:n { #1 .default_tl }
- \num_set:cn { \c_keys_root_tl #1 .args_num } {#2}
- \tl_set:cn { \c_keys_root_tl #1 .req_tl } { }
+ \tl_set:cn { \c_keys_root_tl #1 .req_tl } { }
}
\cs_new:Nn \keys_default_set:n {
\tl_set:cn { \c_keys_root_tl \l_keys_path_tl .default_tl } {#1}
@@ -185,20 +180,13 @@
\exp_args:Nc \cs_get_arg_count_from_signature:N
{ \l_keys_property_tl } = \c_zero
} {
- \keys_tmp:w \q_keys_stop
+ \keys_tmp:w
}{
\msg_kernel_error:nx { key-property-value-required }
{ \l_keys_property_tl }
}
}{
- \intexpr_compare:nTF {
- \exp_args:Nc \cs_get_arg_count_from_signature:N
- { \l_keys_property_tl } = \c_one
- } {
- \keys_tmp:w {#1} \q_keys_stop
- }{
- \keys_tmp:w #1 { } { } { } { } { } { } { } { } { } \q_keys_stop
- }
+ \keys_tmp:w {#1}
}
}
\cs_new_nopar:Nn \keys_execute: {
@@ -212,22 +200,15 @@
}
}
\cs_new_nopar:Nn \keys_execute_aux:nn {
- \cs_set_eq:Nc \keys_tmp:w { \c_keys_root_tl #1 .cmd:w }
+ \cs_set_eq:Nc \keys_tmp:w { \c_keys_root_tl #1 .cmd:n }
\cs_if_exist:NTF \keys_tmp:w {
- \intexpr_compare:nTF {
- \num_use:c { \c_keys_root_tl #1 .args_num } = \c_one
- } {
- \exp_args:NV \keys_tmp:w \l_keys_value_toks \q_keys_stop
- }{
- \exp_after:wN \keys_tmp:w \toks_use:N \l_keys_value_toks
- { } { } { } { } { } { } { } { } { } \q_keys_stop
- }
+ \exp_args:NV \keys_tmp:w \l_keys_value_toks
}{
#2
}
}
\prg_set_conditional:Nnn \keys_if_exist:nn {TF,T,F} {
- \cs_if_exist:cTF { \c_keys_root_tl #1 / #2 .cmd:w } {
+ \cs_if_exist:cTF { \c_keys_root_tl #1 / #2 .cmd:n } {
\prg_return_true:
}{
\prg_return_false:
@@ -238,16 +219,8 @@
\c_keys_root_tl \l_keys_path_tl .req_tl
}
}
-\cs_new:Nn \keys_initial_value:n {
- \toks_set:Nn \l_keys_value_toks {#1}
- \keys_execute_aux:nn { \l_keys_path_tl } {
- \msg_kernel_error:nx { key-initial-without-code }
- { \l_keys_path_tl }
- }
-}
-\cs_generate_variant:Nn \keys_initial_value:n { V }
\cs_new_nopar:Nn \keys_meta_make:n {
- \keys_cmd_set:nNx { \l_keys_path_tl } 1 {
+ \keys_cmd_set:nx { \l_keys_path_tl } {
\exp_not:N \keys_set:nn { \l_keys_module_tl } {#1}
}
}
@@ -275,8 +248,7 @@
}
}
\cs_new_nopar:Nn \keys_property_new:nn {
- \cs_new:cn { \c_keys_properties_root_tl #1 }
- { #2 \keys_arguments_tidy:w }
+ \cs_new:cn { \c_keys_properties_root_tl #1 } {#2}
}
\cs_new_nopar:Nn \keys_property_undefine:n {
\cs_set_eq:cN { \c_keys_root_tl #1 } \c_undefined
@@ -330,7 +302,7 @@
}
}
\cs_new_nopar:Nn \keys_show:nn {
- \cs_show:c { \c_keys_root_tl #1 / \tl_to_str:n {#2} .cmd:w }
+ \cs_show:c { \c_keys_root_tl #1 / \tl_to_str:n {#2} .cmd:n }
}
\cs_new:Npn \keys_tmp:w {}
\cs_new:Nn \keys_value_or_default:n {
@@ -347,75 +319,34 @@
\tl_set_eq:cc { \c_keys_root_tl \l_keys_path_tl .req_tl }
{ c_keys_value_ #1 _tl }
}
-\group_begin:
- \char_set_lccode:nn {`\&} {`\g}
- \char_make_other:N \&
-\tl_to_lowercase:n {
- \group_end:
- \cs_new_nopar:Nn \keys_variable_get_scope:N {
- \exp_last_unbraced:Nf \keys_variable_get_scope_aux:w
- { \cs_to_str:N #1 \exp_stop_f: \q_nil }
+\cs_new_nopar:Nn \keys_variable_set:NnNN {
+ \cs_if_exist:NF #1 {
+ \use:c { #2 _new:N } #1
}
- \cs_new_nopar:Npn \keys_variable_get_scope_aux:w #1#2 \q_nil {
- \token_if_eq_meaning:NNT & #1 {g}
+ \keys_cmd_set:nx { \l_keys_path_tl } {
+ \exp_not:c { #2 _ #3 set:N #4 } \exp_not:N #1 {##1}
}
}
-\group_begin:
- \char_set_lccode:nn {`\&} {`\_}
- \char_make_other:N \&
-\tl_to_lowercase:n {
- \group_end:
- \cs_new_nopar:Nn \keys_variable_get_type:N {
- \exp_after:wN \keys_variable_get_type_aux:w
- \token_to_str:N #1 & a \q_nil
- }
- \cs_new_nopar:Npn \keys_variable_get_type_aux:w #1 & #2#3 \q_nil {
- \token_if_eq_meaning:NNTF a #2 {
- #1
- }{
- \keys_variable_get_type_aux:w #2#3 \q_nil
- }
- }
-}
-\cs_new_nopar:Nn \keys_variable_set:NN {
- \cs_if_exist:cF {
- \keys_variable_get_type:N #2 _
- \keys_variable_get_scope:N #2 set:N #1
- } {
- \msg_kernel_error:nxx { key-no-set-function } {
- \exp_not:c {
- \keys_variable_get_type:N #2 _
- \keys_variable_get_scope:N #2 set:N #1
- }
- } {#2}
- }
- \cs_if_exist:NF #2 {
- \use:c { \keys_variable_get_type:N #2 _new:N } #2
- }
- \keys_cmd_set:nNx { \l_keys_path_tl } 1 {
- \exp_not:c {
- \keys_variable_get_type:N #2 _
- \keys_variable_get_scope:N #2 set:N #1
- } \exp_not:N #2 {##1}
- }
+\keys_property_new:nn { .bool_set:N } {
+ \keys_bool_set:NN #1 { }
}
-\keys_property_new:nn { .bool:N } {
- \keys_bool_set:N #1
+\keys_property_new:nn { .bool_gset:N } {
+ \keys_bool_set:NN #1 n
}
\keys_property_new:nn { .choice: } {
\keys_choice_make:
}
-\keys_property_new:nn { .code:n } {
- \keys_cmd_set:nNn { \l_keys_path_tl } 1 {#1}
+\keys_property_new:nn { .choice_code:n } {
+ \keys_choice_code_store:x { \exp_not:n {#1} }
}
-\keys_property_new:nn { .code:Nn } {
- \keys_cmd_set:nNn { \l_keys_path_tl } #1 {#2}
+\keys_property_new:nn { .choice_code:x } {
+ \keys_choice_code_store:x {#1}
}
-\keys_property_new:nn { .code:x } {
- \keys_cmd_set:nNx { \l_keys_path_tl } 1 {#1}
+\keys_property_new:nn { .code:n } {
+ \keys_cmd_set:nn { \l_keys_path_tl } {#1}
}
-\keys_property_new:nn { .code:Nx } {
- \keys_cmd_set:nNx { \l_keys_path_tl } #1 {#2}
+\keys_property_new:nn { .code:x } {
+ \keys_cmd_set:nx { \l_keys_path_tl } {#1}
}
\keys_property_new:nn { .default:n } {
\keys_default_set:n {#1}
@@ -423,25 +354,20 @@
\keys_property_new:nn { .default:V } {
\keys_default_set:V #1
}
-\keys_property_new:nn { .function:N } {
- \keys_cmd_set:nNn { \l_keys_path_tl } 1 {
- \cs_set:Nn #1 {##1}
- }
- \cs_if_free:NT #1 {
- \cs_set:Nn #1 { }
- }
+\keys_property_new:nn { .dim_set:N } {
+ \keys_variable_set:NnNN #1 { dim } { } n
}
-\keys_property_new:nn { .generate_choices:nn } {
- \keys_choices_generate:nx {#1} { \exp_not:n {#2} }
+\keys_property_new:nn { .dim_gset:N } {
+ \keys_variable_set:NnNN #1 { dim } g n
}
-\keys_property_new:nn { .generate_choices:nx } {
- \keys_choices_generate:nx {#1} {#2}
+\keys_property_new:nn { .generate_choices:n } {
+ \keys_choices_generate:n {#1}
}
-\keys_property_new:nn { .initial:n } {
- \keys_initial_value:n {#1}
+\keys_property_new:nn { .int_set:N } {
+ \keys_variable_set:NnNN #1 { int } { } n
}
-\keys_property_new:nn { .initial:V } {
- \keys_initial_value:V #1
+\keys_property_new:nn { .int_gset:N } {
+ \keys_variable_set:NnNN #1 { int } g n
}
\keys_property_new:nn { .meta:n } {
\keys_meta_make:n {#1}
@@ -449,11 +375,23 @@
\keys_property_new:nn { .meta:x } {
\keys_meta_make:x {#1}
}
-\keys_property_new:nn { .set:N } {
- \keys_variable_set:NN n #1
+\keys_property_new:nn { .skip_set:N } {
+ \keys_variable_set:NnNN #1 { skip } { } n
+}
+\keys_property_new:nn { .skip_gset:N } {
+ \keys_variable_set:NnNN #1 { skip } g n
+}
+\keys_property_new:nn { .tl_set:N } {
+ \keys_variable_set:NnNN #1 { tl } { } n
+}
+\keys_property_new:nn { .tl_set_x:N } {
+ \keys_variable_set:NnNN #1 { tl } { } x
+}
+\keys_property_new:nn { .tl_gset:N } {
+ \keys_variable_set:NnNN #1 { tl } g n
}
-\keys_property_new:nn { .set_x:N } {
- \keys_variable_set:NN x #1
+\keys_property_new:nn { .tl_gset_x:N } {
+ \keys_variable_set:NnNN #1 { tl } g x
}
\keys_property_new:nn { .value_forbidden: } {
\keys_value_requirement:n { forbidden }
diff --git a/Master/texmf-dist/tex/latex/expl3/l3prg.sty b/Master/texmf-dist/tex/latex/expl3/l3prg.sty
index de730887e82..d81bd2095b1 100644
--- a/Master/texmf-dist/tex/latex/expl3/l3prg.sty
+++ b/Master/texmf-dist/tex/latex/expl3/l3prg.sty
@@ -48,7 +48,7 @@
%%
%% -----------------------------------------------------------------------
\RequirePackage{l3names}
-\GetIdInfo$Id: l3prg.dtx 1451 2009-08-08 06:33:34Z joseph $
+\GetIdInfo$Id: l3prg.dtx 1541 2009-09-17 07:31:55Z joseph $
{L3 Experimental control structures}
\ProvidesExplPackage
{\filename}{\filedate}{\fileversion}{\filedescription}
@@ -427,6 +427,36 @@
\prg_define_quicksort:nnn {prg}{}{}
\cs_set:Npn \prg_quicksort_function:n {\ERROR}
\cs_set:Npn \prg_quicksort_compare:nnTF {\ERROR}
+\group_begin:
+ \tex_lccode:D `\& = `\g \tex_relax:D
+ \tex_catcode:D \& = \c_twelve \tex_relax:D
+\tl_to_lowercase:n {
+ \group_end:
+ \cs_new_nopar:Nn \prg_variable_get_scope:N {
+ \exp_last_unbraced:Nf \prg_variable_get_scope_aux:w
+ { \cs_to_str:N #1 \exp_stop_f: \q_nil }
+ }
+ \cs_new_nopar:Npn \prg_variable_get_scope_aux:w #1#2 \q_nil {
+ \token_if_eq_meaning:NNT & #1 {g}
+ }
+}
+\group_begin:
+ \tex_lccode:D `\& = `\_ \tex_relax:D
+ \tex_catcode:D \& = \c_twelve \tex_relax:D
+\tl_to_lowercase:n {
+ \group_end:
+ \cs_new_nopar:Nn \prg_variable_get_type:N {
+ \exp_after:wN \p;rg_variable_get_type_aux:w
+ \token_to_str:N #1 & a \q_nil
+ }
+ \cs_new_nopar:Npn \prg_variable_get_type_aux:w #1 & #2#3 \q_nil {
+ \token_if_eq_meaning:NNTF a #2 {
+ #1
+ }{
+ \prg_variable_get_type_aux:w #2#3 \q_nil
+ }
+ }
+}
%%
%%
%% End of file `l3prg.sty'.
diff --git a/Master/texmf-dist/tex/latex/expl3/l3prop.sty b/Master/texmf-dist/tex/latex/expl3/l3prop.sty
index f66173c17bf..48aa3138d79 100644
--- a/Master/texmf-dist/tex/latex/expl3/l3prop.sty
+++ b/Master/texmf-dist/tex/latex/expl3/l3prop.sty
@@ -48,7 +48,7 @@
%%
%% -----------------------------------------------------------------------
\RequirePackage{l3names}
-\GetIdInfo$Id: l3prop.dtx 1506 2009-09-04 21:52:12Z joseph $
+\GetIdInfo$Id: l3prop.dtx 1536 2009-09-16 07:23:04Z joseph $
{L3 Experimental Property Lists}
\ProvidesExplPackage
{\filename}{\filedate}{\fileversion}{\filedescription}
@@ -97,11 +97,11 @@
\prop_split_aux:Nnn #1{#2}\prop_get_aux:w
}
\cs_new:Npn \prop_get_aux:w #1#2#3#4 { \tl_set:Nx #4 {\exp_not:n{#2}} }
-\cs_generate_variant:Nn \prop_get:NnN {cnN}
+\cs_generate_variant:Nn \prop_get:NnN { NVN, cnN, cVN }
\cs_new:Npn \prop_gget:NnN #1#2{
\prop_split_aux:Nnn #1{#2}\prop_gget_aux:w}
\cs_new:Npn \prop_gget_aux:w #1#2#3#4{\tl_gset:Nx#4{\exp_not:n{#2}}}
-\cs_generate_variant:Nn \prop_gget:NnN {cnN}
+\cs_generate_variant:Nn \prop_gget:NnN { NVN, cnN, cVN }
\cs_new:Npn \prop_get_gdel:NnN #1#2#3{
\prop_split_aux:Nnn #1{#2}{\prop_get_del_aux:w #3{\toks_gset:Nn #1}{#2}}}
\cs_new:Npn \prop_get_del_aux:w #1#2#3#4#5#6{
@@ -143,6 +143,8 @@
\prop_tmp:w #5
}
}
+\cs_generate_variant:Nn \prop_del:Nn { NV }
+\cs_generate_variant:Nn \prop_gdel:Nn { NV }
\cs_new:Npn \prop_gput_if_new:Nnn #1#2{
\prop_split_aux:Nnn #1{#2}{\prop_put_if_new_aux:w #1{#2}}}
\cs_new:Npn \prop_put_if_new_aux:w #1#2#3#4#5#6{