diff options
-rw-r--r-- | Master/texmf-dist/doc/latex/xpackages/xbase/commands-check.tex | 47 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/xpackages/xbase/regression-test.tex | 218 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/xpackages/xbase/xparse.pdf | bin | 508436 -> 508364 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/xpackages/xtras/l3keys2e.pdf | bin | 327725 -> 327130 bytes | |||
-rw-r--r-- | Master/texmf-dist/source/latex/xpackages/xbase/xparse.dtx | 26 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/xpackages/xtras/l3keys2e.dtx | 5 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/xpackages/xbase/xparse.sty | 20 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/xpackages/xtras/l3keys2e.sty | 2 |
8 files changed, 288 insertions, 30 deletions
diff --git a/Master/texmf-dist/doc/latex/xpackages/xbase/commands-check.tex b/Master/texmf-dist/doc/latex/xpackages/xbase/commands-check.tex new file mode 100644 index 00000000000..0d79e690945 --- /dev/null +++ b/Master/texmf-dist/doc/latex/xpackages/xbase/commands-check.tex @@ -0,0 +1,47 @@ +% +% Execute this TeX file with +% latex -interaction=batchmode commands-check +% +% The package loaded and the commands checked can be customised: +\providecommand\PKG{expl3} +\providecommand\CMDS{commands-check.cmds} + +\documentclass{minimal} +\usepackage{\PKG} +\makeatletter + +% "loop...if...then...repeat" from TeX by Topic: +\def\cmdchk@loop#1\cmdchk@repeat{\def\cmdchk@body{#1}\cmdchk@iterate} +\def\cmdchk@iterate{% + \let\cmdchk@next\relax + \cmdchk@body \let\cmdchk@next\cmdchk@iterate \fi \cmdchk@next} + +\let \@tempb \@empty +\newread \cmdchk@read +\openin \cmdchk@read \CMDS \relax + +\def\checkcmds{% + \begingroup + \catcode`\\=12 + \endlinechar=-1 + \loop + \read \cmdchk@read to \@tempa \relax + \ifx \@tempa \@empty + \closein \cmdchk@read + \else + \ifcsname \expandafter \@gobble \@tempa \endcsname + \else + \xdef \@tempb {\@tempb ^^J!>\space\space\space\space\@tempa} + \fi + \repeat + \endgroup + \ifx\@tempb\@empty\else + \nonstopmode + \errmessage{\@tempb^^J} + \batchmode + \fi +} +\makeatother +\begin{document} +\checkcmds +\end{document} diff --git a/Master/texmf-dist/doc/latex/xpackages/xbase/regression-test.tex b/Master/texmf-dist/doc/latex/xpackages/xbase/regression-test.tex new file mode 100644 index 00000000000..c7abb659a98 --- /dev/null +++ b/Master/texmf-dist/doc/latex/xpackages/xbase/regression-test.tex @@ -0,0 +1,218 @@ +% \iffalse meta-comment +% +% Copyright (C) 1992-1994 by David Carlisle, Frank Mittelbach. +% Copyright (C) 2008 LaTeX3 project +% All rights reserved. +% +% This file is part of the validate package. +% +% IMPORTANT NOTICE: +% +% You are not allowed to change this file. In case of error +% write to the email address mentioned in the file readme.val. +% +% \fi +% regression-test.tex + %%%%%%%%%%%%%%%%%%% + +% This file should not be used as a package or class file, +% it should be \input. + +% The scope of this \makeatletter will then be the rest of the +% document. Put TeX into scroll mode, and stop it showing the +% implementation details of macros in error messages. +\makeatletter +\scrollmode +\errorcontextlines=-1 + +% Use the same \showbox settings as 2.09, unless they are changed in +% the test file. (2e sets these to -1) +\showboxbreadth=5 +\showboxdepth=3 + +% Start the test, after the optional \documentclass (or \documentstyle) +% \begin{document} commands with \START. All lines in the .log file +% before this will be ignored. It also prints a docstrip-style +% character table in the .tlg file so the .tlg file can easily be +% checked for email translations. +% +\def\START{\typeout{START-TEST-LOG^^J^^J% + This is a generated file for the LaTeX (2e + expl3) validation system.% +^^J^^JDon't change this file in any respect.% +^^J^^J\CTable^^J}} + +\begingroup +\catcode`\^^\=0 +\catcode`\^^A=\catcode`\% +^^\catcode`^^\ =11 +^^\catcode`^^\%=11 +^^\catcode`^^\#=11 +^^\catcode`^^\~=11 +^^\endlinechar=`^^\^^J +^^\catcode`^^\\=11^^A +^^\gdef^^\CTable{ +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} +%% +}^^A +^^\endgroup{}% + +% The test should end with +% \END or \end{document} +% +\let\@@@end\@@end +%\let\@ED=\enddocument +\def\END{\typeout{END-TEST-LOG}\@@@end} +\let\@@end\END + + +% After the \START should come declarations of the format and style +% options being used. +% +\def\FORMAT#1{\typeout{Format: #1}% + \def\@tempa{#1}\ifx\@tempa\@EJ\else + \OMIT\@warning{Declared format #1,^^JActual format \@EJ}\TIMO\fi} + +% The old version got this information from everyjob, +% but that does not work with LaTeX2e as \everyjob is cleared. +\edef\@EJ{\fmtname <\fmtversion>} + +% Some author info: +\def\AUTHOR#1{\typeout{Author: #1}} +\def\ADDRESS#1{\typeout{Address: #1}} + +% Not all packages declare themselves to the log file, and we can not +% rely on TeX`s output as it includes full path names, and does not +% include version numbers etc. So for each package included give a +% declaration like: \PACKAGES{array v2.0d} +% +\def\STYLE#1{\typeout{Main Style: #1}}% +\def\STYLEOPTIONS#1{\typeout{Style Options: #1}} + + +% If The class or package is loaded with options, you may +% specify the options in the \CLASS (\PACKAGE) declaration. eg: +% +% \CLASS[german,a4page]{article v2.0 1994/01/02} +% \PACKAGE{ifthen v2.2 1993/11/12} +% \PACKAGE[dvips]{graphics v 3.8 1994/02/02} +% +\def\CLASS{\@ifnextchar[\OPTCLASS\XCLASS} +\def\OPTCLASS[#1]#2{% + \typeout{Main Class: #2^^J\@spaces Options: #1}} +\def\XCLASS#1{% + \typeout{Main Class: #1}} + +\def\PACKAGE{\@ifnextchar[\OPTPACKAGE\XPACKAGE} +\def\OPTPACKAGE[#1]#2{% + \typeout{Package: #2^^J\@spaces Options: #1}} +\def\XPACKAGE#1{% + \typeout{Package: #1}} + + +% LaTeX2e always uses NFSS2 so new test files need not use +% \FONTSELECTION but it is retained for compatibility for test files +% written for 209/NFSS1. +% +\def\FONTSELECTION#1{% + \OMIT\@@warning{\noexpand\FONTSELECTION obsolete.^^J% + LaTeX2e always uses NFSS2}\TIMO + \typeout{Font Selection: #1}} + + +% Surround commands which produce irrelevant lines in the .log file by +% \OMIT +% \TIMO +% +\def\OMIT{\typeout{OMIT}} +\def\TIMO{\typeout{TIMO}} + +% After the above declarations, and before the main tests, you may +% optionally `declare' all the commands in the `module' that you are +% about to test. These commands will be registered as defined, +% undefined or relaxed (ie \let to \relax). You may wish to declare +% commands not currently implemented, so that if they are added at a +% later stage, the test will fail, reminding someone to document the +% fact that the user interface has changed. So if you are testing +% array and tabular environments, you may wish do declare +% \extrarowheight. This is undefined in the curent latex, but would +% become defined if Mittelbach's array.sty was incorporated into +% latex.tex. +% +\def\declare@command#1{% + \ifx#1\@undefined\typeout{Undefined \string#1}\else + \ifx#1\relax\typeout{Relaxed \space\space\string#1}\else + \typeout{Defined \space\space\string#1}\fi\fi} + + +% To allow testing of possible changes, we allow extra code to be read +% in before the test starts. The necessary code should be placed in a +% file regression-test.cfg. +% +\OMIT +\InputIfFileExists{regression-test.cfg} + {\typeout{^^J***^^Jregression-test.cfg in operation^^J***^^J}}{} +\TIMO + +%%%%%%%%% + +% We are not starved for space in the log file output, so let's make it as +% verbose as is useful when reading the .diff's. +\newcount \gTESTint + +\newcommand \SEPARATOR {% + \typeout{% + ============================================================% + }% +} + +\newcommand \TEST [2] {% + \advance \gTESTint 1 + \SEPARATOR + \typeout{% + TEST \the\gTESTint: \detokenize{#1}}% + \SEPARATOR + \begingroup + \let \TYPE \typeout + #2% + \endgroup + \SEPARATOR \typeout{}% +} + +\newcommand \TESTEXP [2] {% + \advance \gTESTint 1 + \SEPARATOR + \typeout{% + TEST \the\gTESTint: \detokenize{#1}}% + \SEPARATOR + \begingroup + \let \TYPE \@firstofone + \typeout{#2}% + \endgroup + \SEPARATOR \typeout{}% +} + +\def \TRUE {\TYPE{TRUE}} +\def \FALSE {\TYPE{FALSE}} +\def \YES {\TYPE{YES}} +\def \NO {\TYPE{NO}} + +\def \NEWLINE {\TYPE{^^J}} + +\endinput + + + diff --git a/Master/texmf-dist/doc/latex/xpackages/xbase/xparse.pdf b/Master/texmf-dist/doc/latex/xpackages/xbase/xparse.pdf Binary files differindex 82f2dedaa3a..497036ac7c7 100644 --- a/Master/texmf-dist/doc/latex/xpackages/xbase/xparse.pdf +++ b/Master/texmf-dist/doc/latex/xpackages/xbase/xparse.pdf diff --git a/Master/texmf-dist/doc/latex/xpackages/xtras/l3keys2e.pdf b/Master/texmf-dist/doc/latex/xpackages/xtras/l3keys2e.pdf Binary files differindex f9465cb755e..4e82196a41d 100644 --- a/Master/texmf-dist/doc/latex/xpackages/xtras/l3keys2e.pdf +++ b/Master/texmf-dist/doc/latex/xpackages/xtras/l3keys2e.pdf diff --git a/Master/texmf-dist/source/latex/xpackages/xbase/xparse.dtx b/Master/texmf-dist/source/latex/xpackages/xbase/xparse.dtx index d9cb5bbeb32..dbcbbf28a84 100644 --- a/Master/texmf-dist/source/latex/xpackages/xbase/xparse.dtx +++ b/Master/texmf-dist/source/latex/xpackages/xbase/xparse.dtx @@ -41,7 +41,7 @@ \RequirePackage{l3names} %</driver|package> %\fi -\GetIdInfo$Id: xparse.dtx 2063 2010-10-03 08:26:49Z mittelba $ +\GetIdInfo$Id: xparse.dtx 2073 2010-10-13 07:48:20Z joseph $ {Generic document command parser} %\iffalse %<*driver> @@ -963,13 +963,6 @@ % \end{macrocode} %\end{macro} % -%\begin{macro}{\l_xparse_environment_args_tl} -% Used to pass arguments to the end of an environment. -% \begin{macrocode} -\tl_new:N \l_xparse_environment_args_tl -% \end{macrocode} -%\end{macro} -% %\begin{macro}{\l_xparse_environment_bool} % Generating environments uses the same mechanism as generating % functions. However, full processing of arguments is always needed @@ -1512,16 +1505,17 @@ } \xparse_declare_cmd_aux:cnn { environment_begin_ #1 :w } {#2} { \group_begin: - \tl_set_eq:NN \l_xparse_environment_args_tl \l_xparse_args_tl + \cs_set_protected_nopar:cpx { environment_end_ #1 :w } + { + \exp_not:c { environment_end_ #1 _aux:N } + \exp_not:V \l_xparse_args_tl + \group_end: + } #3 } + \cs_set_protected_nopar:cpx { environment_end_ #1 : } + { \exp_not:c { environment_end_ #1 :w } } \bool_set_false:N \l_xparse_environment_bool - \cs_set_nopar:cpx { environment_end_ #1 :w } { - \exp_not:N \exp_last_unbraced:NV - \exp_not:c { environment_end_ #1 _aux:N } - \exp_not:N \l_xparse_environment_args_tl - \exp_not:N \group_end: - } \cs_set_nopar:cpx { environment_end_ #1 _aux:N } ##1 { \exp_not:c { environment_end_ #1 _aux :w } } @@ -1531,7 +1525,7 @@ %</initex|package> %<*package> \cs_set_eq:cc {#1} { environment_begin_ #1 :w } - \cs_set_eq:cc { end #1 } { environment_end_ #1 :w } + \cs_set_eq:cc { end #1 } { environment_end_ #1 : } %</package> %<*initex|package> } diff --git a/Master/texmf-dist/source/latex/xpackages/xtras/l3keys2e.dtx b/Master/texmf-dist/source/latex/xpackages/xtras/l3keys2e.dtx index 576a0161c94..6ee1ced0ce5 100644 --- a/Master/texmf-dist/source/latex/xpackages/xtras/l3keys2e.dtx +++ b/Master/texmf-dist/source/latex/xpackages/xtras/l3keys2e.dtx @@ -37,7 +37,7 @@ \RequirePackage{l3names} %</driver|package> %\fi -\GetIdInfo$Id: l3keys2e.dtx 1494 2009-08-24 11:05:44Z joseph $ +\GetIdInfo$Id: l3keys2e.dtx 2076 2010-10-13 19:09:59Z joseph $ {Parsing LaTeX3 keyvals as LaTeX2e package options} %\iffalse %<*driver> @@ -53,8 +53,7 @@ % \fi % % \title{The \textsf{l3keys2e} package\thanks{This file -% has version number \fileversion, last -% revised \filedate.}\\ +% has version number \fileversion, last revised \filedate.}\\ % Parsing \LaTeX3 keyvals as \LaTeXe\ package options} % \author{\Team} % \date{\filedate} diff --git a/Master/texmf-dist/tex/latex/xpackages/xbase/xparse.sty b/Master/texmf-dist/tex/latex/xpackages/xbase/xparse.sty index 6af9c3f4570..7d4cbcba4ec 100644 --- a/Master/texmf-dist/tex/latex/xpackages/xbase/xparse.sty +++ b/Master/texmf-dist/tex/latex/xpackages/xbase/xparse.sty @@ -57,7 +57,7 @@ %% ----------------------------------------------------------------------- %% \RequirePackage{l3names} -\GetIdInfo$Id: xparse.dtx 2063 2010-10-03 08:26:49Z mittelba $ +\GetIdInfo$Id: xparse.dtx 2073 2010-10-13 07:48:20Z joseph $ {Generic document command parser} \ProvidesExplPackage {\filename}{\filedate}{\fileversion}{\filedescription} @@ -68,7 +68,6 @@ \prop_put:Nnn \c_xparse_shorthands_prop { s } { t* } \tl_new:N \l_xparse_arg_tl \tl_new:N \l_xparse_args_tl -\tl_new:N \l_xparse_environment_args_tl \bool_new:N \l_xparse_environment_bool \bool_new:N \l_xparse_error_bool \tl_new:N \l_xparse_function_tl @@ -311,16 +310,17 @@ } \xparse_declare_cmd_aux:cnn { environment_begin_ #1 :w } {#2} { \group_begin: - \tl_set_eq:NN \l_xparse_environment_args_tl \l_xparse_args_tl + \cs_set_protected_nopar:cpx { environment_end_ #1 :w } + { + \exp_not:c { environment_end_ #1 _aux:N } + \exp_not:V \l_xparse_args_tl + \group_end: + } #3 } + \cs_set_protected_nopar:cpx { environment_end_ #1 : } + { \exp_not:c { environment_end_ #1 :w } } \bool_set_false:N \l_xparse_environment_bool - \cs_set_nopar:cpx { environment_end_ #1 :w } { - \exp_not:N \exp_last_unbraced:NV - \exp_not:c { environment_end_ #1 _aux:N } - \exp_not:N \l_xparse_environment_args_tl - \exp_not:N \group_end: - } \cs_set_nopar:cpx { environment_end_ #1 _aux:N } ##1 { \exp_not:c { environment_end_ #1 _aux :w } } @@ -328,7 +328,7 @@ { environment_end_ #1 _aux :w } \cs_set:Npn \l_xparse_total_args_int {#4} \cs_set_eq:cc {#1} { environment_begin_ #1 :w } - \cs_set_eq:cc { end #1 } { environment_end_ #1 :w } + \cs_set_eq:cc { end #1 } { environment_end_ #1 : } } \cs_new_nopar:Npn \xparse_flush_m_args: { \cs_if_exist:cT { diff --git a/Master/texmf-dist/tex/latex/xpackages/xtras/l3keys2e.sty b/Master/texmf-dist/tex/latex/xpackages/xtras/l3keys2e.sty index d5009a13cba..67d8c0757ae 100644 --- a/Master/texmf-dist/tex/latex/xpackages/xtras/l3keys2e.sty +++ b/Master/texmf-dist/tex/latex/xpackages/xtras/l3keys2e.sty @@ -45,7 +45,7 @@ %% ----------------------------------------------------------------------- %% \RequirePackage{l3names} -\GetIdInfo$Id: l3keys2e.dtx 1494 2009-08-24 11:05:44Z joseph $ +\GetIdInfo$Id: l3keys2e.dtx 2076 2010-10-13 19:09:59Z joseph $ {Parsing LaTeX3 keyvals as LaTeX2e package options} \ProvidesExplPackage {\filename}{\filedate}{\fileversion}{\filedescription} |