diff options
Diffstat (limited to 'Master/texmf-dist/source/latex/l3kernel/expl3.dtx')
-rw-r--r-- | Master/texmf-dist/source/latex/l3kernel/expl3.dtx | 103 |
1 files changed, 86 insertions, 17 deletions
diff --git a/Master/texmf-dist/source/latex/l3kernel/expl3.dtx b/Master/texmf-dist/source/latex/l3kernel/expl3.dtx index cbdbe3f76ba..0e0e24dbb60 100644 --- a/Master/texmf-dist/source/latex/l3kernel/expl3.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/expl3.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -%% File: expl3.dtx Copyright (C) 1990-2011 The LaTeX3 Project +%% File: expl3.dtx Copyright (C) 1990-2012 The LaTeX3 Project %% %% It may be distributed and/or modified under the conditions of the %% LaTeX Project Public License (LPPL), either version 1.3c of this @@ -34,11 +34,22 @@ %% ----------------------------------------------------------------------- % %<*driver|package> -\RequirePackage{l3names} +\RequirePackage{l3names}[2011/12/30] +%<package>\@ifpackagelater{l3names}{2011/12/30} +%<package> {} +%<package> { +%<package> \PackageError{expl3}{Mismatched LaTeX3 packages detected.} +%<package> { +%<package> Please install an up to date~version of l3kernel +%<package> using your TeX package manager or from CTAN.\\ \\ +%<package> Loading expl3 will abort! +%<package> } +%<package> \endinput +%<package> } \def\ExplFileName{expl3} \def\ExplFileDescription{L3 Experimental code bundle wrapper} -\def\ExplFileDate{2011/12/29} -\def\ExplFileVersion{3109} +\def\ExplFileDate{2012/01/19} +\def\ExplFileVersion{3209} %</driver|package> %<*driver> \documentclass[full]{l3doc} @@ -952,15 +963,14 @@ \RequirePackage{ l3basics, l3expan, l3tl } % \end{macrocode} % -% \begin{macro}{\tl_check_exists:N} +% \begin{macro}{\cs_check_exists:N} % When used as a package, there is an option to be picky and to % check definitions exist. This part of the process is done now, so that % variable types based on |tl| (for example |clist|, |seq| and |prop|) will -% inherit -% the appropriate definitions. +% inherit the appropriate definitions. % \begin{macrocode} \ifodd \l@expl@check@declarations@bool \relax - \cs_new_protected:Npn \tl_check_exists:N #1 + \cs_new_protected:Npn \cs_check_exists:N #1 { \cs_if_exist:NF #1 { @@ -970,34 +980,34 @@ } \cs_set_protected:Npn \tl_set:Nn #1#2 { - \tl_check_exists:N #1 + \cs_check_exists:N #1 \cs_set_nopar:Npx #1 { \exp_not:n {#2} } } \cs_set_protected:Npn \tl_set:Nx #1#2 { - \tl_check_exists:N #1 + \cs_check_exists:N #1 \cs_set_nopar:Npx #1 {#2} } \cs_set_protected:Npn \tl_gset:Nn #1#2 { - \tl_check_exists:N #1 + \cs_check_exists:N #1 \cs_gset_nopar:Npx #1 { \exp_not:n {#2} } } \cs_set_protected:Npn \tl_gset:Nx #1#2 { - \tl_check_exists:N #1 + \cs_check_exists:N #1 \cs_gset_nopar:Npx #1 {#2} } \cs_set_protected:Npn \tl_set_eq:NN #1#2 { - \tl_check_exists:N #1 - \tl_check_exists:N #2 + \cs_check_exists:N #1 + \cs_check_exists:N #2 \cs_set_eq:NN #1 #2 } \cs_set_protected:Npn \tl_gset_eq:NN #1#2 { - \tl_check_exists:N #1 - \tl_check_exists:N #2 + \cs_check_exists:N #1 + \cs_check_exists:N #2 \cs_gset_eq:NN #1 #2 } \fi @@ -1010,7 +1020,66 @@ l3seq, l3int, l3quark, - l3prg, + l3prg} +% \end{macrocode} +% +% Booleans are not based on token lists but do need checking: another +% block of code. +% \begin{macrocode} +\ifodd \l@expl@check@declarations@bool \relax + \cs_set_protected:Npn \bool_set_true:N #1 + { + \cs_check_exists:N #1 + \cs_set_eq:NN #1 \c_true_bool + } + \cs_set_protected:Npn \bool_set_false:N #1 + { + \cs_check_exists:N #1 + \cs_set_eq:NN #1 \c_false_bool + } + \cs_set_protected:Npn \bool_gset_true:N #1 + { + \cs_check_exists:N #1 + \cs_gset_eq:NN #1 \c_true_bool + } + \cs_set_protected:Npn \bool_gset_false:N #1 + { + \cs_check_exists:N #1 + \cs_gset_eq:NN #1 \c_false_bool + } + \cs_set_protected:Npn \bool_set_eq:NN #1 + { + \cs_check_exists:N #1 + \cs_set_eq:NN #1 + } + \cs_undefine:N \bool_set_eq:cN + \cs_undefine:N \bool_set_eq:Nc + \cs_undefine:N \bool_set_eq:cc + \cs_generate_variant:Nn \bool_set_eq:NN { c , Nc , cc } + \cs_set_protected:Npn \bool_gset_eq:NN #1 + { + \cs_check_exists:N #1 + \cs_set_eq:NN #1 + } + \cs_undefine:N \bool_gset_eq:cN + \cs_undefine:N \bool_gset_eq:Nc + \cs_undefine:N \bool_gset_eq:cc + \cs_generate_variant:Nn \bool_gset_eq:NN { c , Nc , cc } + \cs_set_protected:Npn \bool_set:Nn #1#2 + { + \cs_check_exists:N #1 + \tex_chardef:D #1 = \bool_if_p:n {#2} + } + \cs_set_protected:Npn \bool_gset:Nn #1#2 + { + \cs_check_exists:N #1 + \tex_global:D \tex_chardef:D #1 = \bool_if_p:n {#2} + } +\fi +% \end{macrocode} +% +% \begin{macrocode} +\RequirePackage{ l3clist, l3token, l3prop, |