From 2b8eb47b09b2d853b8243d0fb61b408edb3d04a7 Mon Sep 17 00:00:00 2001
From: Karl Berry <karl@freefriends.org>
Date: Sun, 6 Sep 2009 23:20:13 +0000
Subject: expl3 1509 (5sep09)

git-svn-id: svn://tug.org/texlive/trunk@15163 c570f23f-e606-0410-a88d-b1316a301751
---
 Master/texmf-dist/tex/latex/expl3/l3keys.sty | 17 ++++++++++++++---
 1 file changed, 14 insertions(+), 3 deletions(-)

(limited to 'Master/texmf-dist/tex/latex/expl3/l3keys.sty')

diff --git a/Master/texmf-dist/tex/latex/expl3/l3keys.sty b/Master/texmf-dist/tex/latex/expl3/l3keys.sty
index 7af3a864b83..0029aedf9b4 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 1441 2009-08-05 19:23:23Z joseph $
+\GetIdInfo$Id: l3keys.dtx 1504 2009-09-03 20:29:00Z joseph $
   {L3 Experimental key-value support}
 \ProvidesExplPackage
   {\filename}{\filedate}{\fileversion}{\filedescription}
@@ -226,6 +226,13 @@
     #2
   }
 }
+\prg_set_conditional:Nnn \keys_if_exist:nn {TF,T,F} {
+  \cs_if_exist:cTF { \c_keys_root_tl #1 / #2 .cmd:w } {
+    \prg_return_true:
+  }{
+    \prg_return_false:
+  }
+}
 \cs_new_nopar:Npn \keys_if_value_requirement:nTF #1 {
   \tl_if_eq:ccTF { c_keys_value_ #1 _tl } {
     \c_keys_root_tl \l_keys_path_tl .req_tl
@@ -244,6 +251,7 @@
     \exp_not:N \keys_set:nn { \l_keys_module_tl } {#1}
   }
 }
+\cs_generate_variant:Nn \keys_meta_make:n { x }
 \cs_new_nopar:Nn \keys_property_find:n {
   \tl_set:Nx \l_keys_path_tl { \l_keys_module_tl / }
   \tl_if_in:nnTF {#1} {.} {
@@ -301,7 +309,7 @@
   \keys_value_or_default:n {#2}
   \keys_if_value_requirement:nTF { required } {
     \bool_if:NTF \l_keys_no_value_bool {
-      \msg_kernel_error:nx  { key~value~required } { \l_keys_path_tl }
+      \msg_kernel_error:nx  { key-value-required } { \l_keys_path_tl }
     }{
       \keys_set_elt_aux:
     }
@@ -438,6 +446,9 @@
 \keys_property_new:nn { .meta:n } {
   \keys_meta_make:n {#1}
 }
+\keys_property_new:nn { .meta:x } {
+  \keys_meta_make:x {#1}
+}
 \keys_property_new:nn { .set:N } {
   \keys_variable_set:NN n #1
 }
@@ -465,7 +476,7 @@
   The key `#1' cannot taken a value:\\%
   the given input `#2' is being ignored.%
 }
-\msg_kernel_new:nn { key~value~required } {%
+\msg_kernel_new:nn { key-value-required } {%
   The key `#1' requires a value\\%
   and is being ignored.%
 }
-- 
cgit v1.2.3

