summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/l3kernel/expl3.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/source/latex/l3kernel/expl3.dtx')
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/expl3.dtx103
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,