summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/l3kernel
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2014-09-15 22:58:44 +0000
committerKarl Berry <karl@freefriends.org>2014-09-15 22:58:44 +0000
commit21b7507fd70dbefe4207e9d0dde58c640208095d (patch)
treef1f3dc5a2397a4addfa5106318633c92748327df /Master/texmf-dist/source/latex/l3kernel
parent720ab6d5bd9c366793fd8f03c58aec9b4348bf4d (diff)
l3 (15sep14)
git-svn-id: svn://tug.org/texlive/trunk@35180 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/l3kernel')
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/expl3.dtx4
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3.ins26
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx11
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3int.dtx101
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3oldmodules.dtx162
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3token.dtx42
6 files changed, 293 insertions, 53 deletions
diff --git a/Master/texmf-dist/source/latex/l3kernel/expl3.dtx b/Master/texmf-dist/source/latex/l3kernel/expl3.dtx
index 3b53a382d18..d5248ec5e5e 100644
--- a/Master/texmf-dist/source/latex/l3kernel/expl3.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/expl3.dtx
@@ -36,8 +36,8 @@
%<*driver|generic|package>
\def\ExplFileName{expl3}
\def\ExplFileDescription{L3 programming layer}
-\def\ExplFileDate{2014/08/25}
-\def\ExplFileVersion{5378}
+\def\ExplFileDate{2014/09/15}
+\def\ExplFileVersion{5423}
%</driver|generic|package>
%<*driver>
\documentclass[full]{l3doc}
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3.ins b/Master/texmf-dist/source/latex/l3kernel/l3.ins
index 3b99651a170..1c1bc9ce336 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3.ins
+++ b/Master/texmf-dist/source/latex/l3kernel/l3.ins
@@ -95,4 +95,30 @@ Do not distribute a modified version of this file.
\generate{\file{l3names.def} {\from{l3names.dtx} {names}}}
+
+% old modules generating a usage error:
+
+\generate{\file{l3basics.sty} {\from{l3oldmodules.dtx} {l3basics,oldmodules}}}
+\generate{\file{l3bootstrap.sty} {\from{l3oldmodules.dtx} {l3bootstrap,oldmodules}}}
+\generate{\file{l3box.sty} {\from{l3oldmodules.dtx} {l3box,oldmodules}}}
+\generate{\file{l3candidates.sty} {\from{l3oldmodules.dtx} {l3candidates,oldmodules}}}
+\generate{\file{l3clist.sty} {\from{l3oldmodules.dtx} {l3clist,oldmodules}}}
+\generate{\file{l3coffins.sty} {\from{l3oldmodules.dtx} {l3coffins,oldmodules}}}
+\generate{\file{l3color.sty} {\from{l3oldmodules.dtx} {l3color,oldmodules}}}
+\generate{\file{l3expan.sty} {\from{l3oldmodules.dtx} {l3expan,oldmodules}}}
+\generate{\file{l3file.sty} {\from{l3oldmodules.dtx} {l3file,oldmodules}}}
+\generate{\file{l3fp.sty} {\from{l3oldmodules.dtx} {l3fp,oldmodules}}}
+\generate{\file{l3int.sty} {\from{l3oldmodules.dtx} {l3int,oldmodules}}}
+\generate{\file{l3keys.sty} {\from{l3oldmodules.dtx} {l3keys,oldmodules}}}
+\generate{\file{l3msg.sty} {\from{l3oldmodules.dtx} {l3msg,oldmodules}}}
+\generate{\file{l3names.sty} {\from{l3oldmodules.dtx} {l3names,oldmodules}}}
+\generate{\file{l3prg.sty} {\from{l3oldmodules.dtx} {l3prg,oldmodules}}}
+\generate{\file{l3prop.sty} {\from{l3oldmodules.dtx} {l3prop,oldmodules}}}
+\generate{\file{l3quark.sty} {\from{l3oldmodules.dtx} {l3quark,oldmodules}}}
+\generate{\file{l3seq.sty} {\from{l3oldmodules.dtx} {l3seq,oldmodules}}}
+\generate{\file{l3skip.sty} {\from{l3oldmodules.dtx} {l3skip,oldmodules}}}
+\generate{\file{l3tl.sty} {\from{l3oldmodules.dtx} {l3tl,oldmodules}}}
+\generate{\file{l3token.sty} {\from{l3oldmodules.dtx} {l3token,oldmodules}}}
+
+
\endbatchfile
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx
index 88f30d3ce87..7ce1c6367b1 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx
@@ -36,7 +36,7 @@
%
%<*driver>
\documentclass[full]{l3doc}
-\GetIdInfo$Id: l3fp-parse.dtx 5223 2014-07-18 01:54:05Z bruno $
+\GetIdInfo$Id: l3fp-parse.dtx 5383 2014-08-25 13:17:55Z bruno $
{L3 Floating-point expression parsing}
\begin{document}
\DocInput{\jobname.dtx}
@@ -891,7 +891,10 @@
\exp_after:wN \@@_parse_prefix:NNN
\exp_after:wN #1
\exp_after:wN #2
- \cs:w @@_parse_prefix_#2:Nw \exp_after:wN \cs_end:
+ \cs:w
+ @@_parse_prefix_ \token_to_str:N #2 :Nw
+ \exp_after:wN
+ \cs_end:
\tex_romannumeral:D
\fi:
\@@_parse_expand:w
@@ -967,7 +970,7 @@
}
\cs_new:Npn \@@_parse_prefix_unknown:NNN #1#2#3
{
- \cs_if_exist:cTF { @@_parse_infix_#1:N }
+ \cs_if_exist:cTF { @@_parse_infix_ \token_to_str:N #1 :N }
{
\__msg_kernel_expandable_error:nnn
{ kernel } { fp-missing-number } {#1}
@@ -2133,7 +2136,7 @@
\else:
\exp_after:wN \@@_parse_infix_check:NNN
\cs:w
- @@_parse_infix_#2:N
+ @@_parse_infix_ \token_to_str:N #2 :N
\exp_after:wN \exp_after:wN \exp_after:wN
\cs_end:
\fi:
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3int.dtx b/Master/texmf-dist/source/latex/l3kernel/l3int.dtx
index 78d244e3845..42036030d8d 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3int.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3int.dtx
@@ -37,7 +37,7 @@
\documentclass[full]{l3doc}
%</driver>
%<*driver|package>
-\GetIdInfo$Id: l3int.dtx 5372 2014-08-25 02:01:41Z bruno $
+\GetIdInfo$Id: l3int.dtx 5421 2014-09-14 07:52:58Z joseph $
{L3 Integers}
%</driver|package>
%<*driver>
@@ -100,10 +100,17 @@
% both evaluate to \( -6 \). The \Arg{integer expression} may
% contain the operators \texttt{+}, \texttt{-}, \texttt{*} and
% \texttt{/}, along with parenthesis \texttt{(} and \texttt{)}.
-% After two expansions, \cs{int_eval:n} yields an
-% \meta{integer denotation} which is left in the input stream. This is
-% \emph{not} an \meta{internal integer}, and therefore requires
-% suitable termination if used in a \TeX{}-style integer assignment.
+% Any functions within the expressions should expand to an
+% \meta{integer denotation}: a sequence of a sign and digits matching
+% the regex |\-?[0-9]+|).
+% After expansion \cs{int_eval:n} yields an \meta{integer denotation}
+% which is left in the input stream.
+% \begin{texnote}
+% Exactly two expansions are needed to evaluate \cs{int_eval:n}.
+% The result is \emph{not} an \meta{internal integer}, and therefore
+% requires suitable termination if used in a \TeX{}-style integer
+% assignment.
+% \end{texnote}
% \end{function}
%
% \begin{function}[EXP, updated = 2012-09-26]{\int_abs:n}
@@ -587,6 +594,8 @@
% \cs{int_to_symbols:nnn} to define an alphabet-specific
% function. The basic \cs{int_to_alph:n} and \cs{int_to_Alph:n}
% functions should not be modified.
+% The resulting tokens are digits with category code $12$ (other) and
+% letters with category code $11$ (letter).
% \end{function}
%
% \begin{function}[updated = 2011-09-17, EXP]{\int_to_symbols:nnn}
@@ -634,6 +643,8 @@
% input stream. Letters are used for digits beyond~$9$: lower
% case letters for \cs{int_to_hex:n} and upper case ones for
% \cs{int_to_Hex:n}.
+% The resulting tokens are digits with category code $12$ (other) and
+% letters with category code $11$ (letter).
% \end{function}
%
% \begin{function}[added = 2014-02-11, EXP]{\int_to_oct:n}
@@ -643,6 +654,8 @@
% Calculates the value of the \meta{integer expression} and places
% the octal (base~$8$) representation of the result in the input
% stream.
+% The resulting tokens are digits with category code $12$ (other) and
+% letters with category code $11$ (letter).
% \end{function}
%
% \begin{function}[updated = 2014-02-11, EXP]
@@ -658,6 +671,8 @@
% case letters for \cs{int_to_base:n} and upper case ones for
% \cs{int_to_Base:n}.
% The maximum \meta{base} value is $36$.
+% The resulting tokens are digits with category code $12$ (other) and
+% letters with category code $11$ (letter).
% \begin{texnote}
% This is a generic version of \cs{int_to_bin:n}, \emph{etc.}
% \end{texnote}
@@ -675,63 +690,85 @@
%
% \section{Converting from other formats to integers}
%
-% \begin{function}[EXP]{\int_from_alph:n}
+% \begin{function}[updated = 2014-08-25, EXP]{\int_from_alph:n}
% \begin{syntax}
% \cs{int_from_alph:n} \Arg{letters}
% \end{syntax}
% Converts the \meta{letters} into the integer (base~$10$)
-% representation and leaves this in the input stream. The
-% \meta{letters} are treated using the English alphabet only, with
-% \enquote{a} equal to $1$ through to \enquote{z} equal to $26$. Either lower
-% or upper case letters may be used. This is the inverse function of
-% \cs{int_to_alph:n}.
+% representation and leaves this in the input stream. The
+% \meta{letters} are first converted to a string, with no expansion.
+% Lower and upper case letters from the English alphabet may be used,
+% with \enquote{a} equal to $1$ through to \enquote{z} equal to $26$.
+% The function also accepts a leading sign, made of |+| and~|-|. This
+% is the inverse function of \cs{int_to_alph:n} and
+% \cs{int_to_Alph:n}.
% \end{function}
%
-% \begin{function}[added = 2014-02-11, EXP]{\int_from_bin:n}
+% \begin{function}[added = 2014-02-11, updated = 2014-08-25, EXP]
+% {\int_from_bin:n}
% \begin{syntax}
% \cs{int_from_bin:n} \Arg{binary number}
% \end{syntax}
% Converts the \meta{binary number} into the integer (base~$10$)
% representation and leaves this in the input stream.
+% The \meta{binary number} is first converted to a string, with no
+% expansion. The function accepts a leading sign, made of |+|
+% and~|-|, followed by binary digits. This is the inverse function
+% of \cs{int_to_bin:n}.
% \end{function}
%
-% \begin{function}[added = 2014-02-11, EXP]{\int_from_hex:n}
+% \begin{function}[added = 2014-02-11, updated = 2014-08-25, EXP]
+% {\int_from_hex:n}
% \begin{syntax}
% \cs{int_from_hex:n} \Arg{hexadecimal number}
% \end{syntax}
-% Converts the \meta{hexadecimal number} into the integer
-% (base~$10$) representation and leaves this in the input stream.
-% Digits greater than $9$ may be represented in the
-% \meta{hexadecimal number} by upper or lower case letters.
+% Converts the \meta{hexadecimal number} into the integer (base~$10$)
+% representation and leaves this in the input stream. Digits greater
+% than $9$ may be represented in the \meta{hexadecimal number} by
+% upper or lower case letters. The \meta{hexadecimal number} is first
+% converted to a string, with no expansion. The function also accepts
+% a leading sign, made of |+| and~|-|. This is the inverse function
+% of \cs{int_to_hex:n} and \cs{int_to_Hex:n}.
% \end{function}
%
-% \begin{function}[added = 2014-02-11, EXP]{\int_from_oct:n}
+% \begin{function}[added = 2014-02-11, updated = 2014-08-25, EXP]
+% {\int_from_oct:n}
% \begin{syntax}
% \cs{int_from_oct:n} \Arg{octal number}
% \end{syntax}
% Converts the \meta{octal number} into the integer (base~$10$)
% representation and leaves this in the input stream.
+% The \meta{octal number} is first converted to a string, with no
+% expansion. The function accepts a leading sign, made of |+|
+% and~|-|, followed by octal digits. This is the inverse function
+% of \cs{int_to_oct:n}.
% \end{function}
%
-% \begin{function}[updated = 2014-08-25, EXP]{\int_from_roman:n}
+% \begin{function}[updated = 2014-08-25, updated = 2014-08-25, EXP]
+% {\int_from_roman:n}
% \begin{syntax}
% \cs{int_from_roman:n} \Arg{roman numeral}
% \end{syntax}
% Converts the \meta{roman numeral} into the integer (base~$10$)
-% representation and leaves this in the input stream. The
+% representation and leaves this in the input stream. The \meta{roman
+% numeral} is first converted to a string, with no expansion. The
% \meta{roman numeral} may be in upper or lower case; if the numeral
-% contains letters besides |mdclxvi| or |MDCLXVI| then the resulting
-% value will be $-1$.
+% contains characters besides |mdclxvi| or |MDCLXVI| then the
+% resulting value will be $-1$. This is the inverse function of
+% \cs{int_to_roman:n} and \cs{int_to_Roman:n}.
% \end{function}
%
-% \begin{function}[EXP]{\int_from_base:nn}
+% \begin{function}[updated = 2014-08-25, EXP]{\int_from_base:nn}
% \begin{syntax}
% \cs{int_from_base:nn} \Arg{number} \Arg{base}
% \end{syntax}
-% Converts the \meta{number} in \meta{base} into the appropriate
-% value in base $10$. The \meta{number} should consist of
-% digits and letters (either lower or upper case), plus optionally
-% a leading sign. The maximum \meta{base} value is $36$.
+% Converts the \meta{number} expressed in \meta{base} into the
+% appropriate value in base $10$. The \meta{number} is first
+% converted to a string, with no expansion. The \meta{number} should
+% consist of digits and letters (either lower or upper case), plus
+% optionally a leading sign. The maximum \meta{base} value is $36$.
+% This is the inverse function of \cs{int_to_base:nn} and
+% \cs{int_to_Base:nn}.
% \end{function}
%
% \section{Viewing integers}
@@ -941,7 +978,7 @@
% Done in \pkg{l3basics}.
% \end{macro}
% \end{macro}
-%
+%
% \begin{macro}{\or:}
% Done in \pkg{l3basics}.
% \end{macro}
@@ -1754,7 +1791,7 @@
% \UnitTested
% Nothing exciting here.
% \begin{macrocode}
-\cs_new:Npn \int_to_arabic:n #1 { \int_eval:n {#1} }
+\cs_new_eq:NN \int_to_arabic:n \int_eval:n
% \end{macrocode}
% \end{macro}
%
@@ -1795,7 +1832,7 @@
% \end{macro}
% \end{macro}
%
-% \begin{macro}{\int_to_alph:n,\int_to_Alph:n}
+% \begin{macro}{\int_to_alph:n, \int_to_Alph:n}
% \UnitTested
% These both use the above function with input functions that make sense
% for the alphabet in English.
@@ -2138,7 +2175,7 @@
{
\int_eval:n
{
- \@@_pass_signs:wn #1
+ \exp_after:wN \@@_pass_signs:wn \tl_to_str:n {#1}
\q_stop { \@@_from_alph:nN { 0 } }
\q_recursion_tail \q_recursion_stop
}
@@ -2170,7 +2207,7 @@
{
\int_eval:n
{
- \@@_pass_signs:wn #1
+ \exp_after:wN \@@_pass_signs:wn \tl_to_str:n {#1}
\q_stop { \@@_from_base:nnN { 0 } {#2} }
\q_recursion_tail \q_recursion_stop
}
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3oldmodules.dtx b/Master/texmf-dist/source/latex/l3kernel/l3oldmodules.dtx
new file mode 100644
index 00000000000..4d884f8381d
--- /dev/null
+++ b/Master/texmf-dist/source/latex/l3kernel/l3oldmodules.dtx
@@ -0,0 +1,162 @@
+% \iffalse meta-comment
+%
+%% File: l3oldmodules.dtx Copyright (C) 2014 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
+%% license or (at your option) any later version. The latest version
+%% of this license is in the file
+%%
+%% http://www.latex-project.org/lppl.txt
+%%
+%% This file is part of the "l3kernel bundle" (The Work in LPPL)
+%% and all files in that bundle must be distributed together.
+%%
+%% The released version of this bundle is available from CTAN.
+%%
+%% -----------------------------------------------------------------------
+%%
+%% The development version of the bundle can be found at
+%%
+%% http://www.latex-project.org/svnroot/experimental/trunk/
+%%
+%% for those people who are interested.
+%%
+%%%%%%%%%%%
+%% NOTE: %%
+%%%%%%%%%%%
+%%
+%% Snapshots taken from the repository represent work in progress and may
+%% not work or may contain conflicting material! We therefore ask
+%% people _not_ to put them into distributions, archives, etc. without
+%% prior consultation with the LaTeX3 Project.
+%%
+%% -----------------------------------------------------------------------
+%
+%<*driver|oldmodules>
+\def\ExplFileDate{2014/09/06}
+%</driver|oldmodules>
+%<*driver>
+\documentclass[full]{l3doc}
+\begin{document}
+ \DocInput{\jobname.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \title{Obsolete individual modules}
+%
+% \author{^^A
+% The \LaTeX3 Project\thanks
+% {^^A
+% E-mail:
+% \href{mailto:latex-team@latex-project.org}
+% {latex-team@latex-project.org}^^A
+% }^^A
+% }
+%
+%
+% \date{Released \ExplFileDate}
+
+% \maketitle
+%
+% \section{Introduction}
+%
+% \begin{documentation}
+% The source code for \texttt{expl3} is organized by modules, e.g.,
+% integer processing is found in \texttt{l3int.dtx}, etc. Initially
+% each such module was used to generate a corresponding
+% \texttt{.sty} that was then loaded as part of the \texttt{expl3}
+% package.
+%
+% It was however also possible to load only individual modules (they
+% would then load other modules as necessary. This scheme was done
+% to ease testing and updates during the time the kernel code saw a
+% lot of update.
+%
+% However, keeping dependencies between modules current became a
+% complex task and in fact most modules would require most other
+% modules so that in the end everything or nearly everything was
+% loaded anyway.
+%
+% We therefore decided to stop providing individual module packages
+% but instead generate all code into a single file that is then
+% loaded as part of the \texttt{expl3} package. This decision was
+% announced a while back and with the recent \texttt{expl3}
+% distributions it because a reality.
+%
+% To help user that do have code or documents referencing the old
+% module packages, we provide (for the time being) skeleton packages
+% that generate an error message and then load the \texttt{expl3} so
+% that the user can continue.
+% Eventually these packages will get fully removed.
+% \end{documentation}
+%
+% \section{Implementation}
+%
+% \begin{implementation}
+%
+% First store the current package name in a macro for later use.
+% \begin{macrocode}
+%<*oldmodules>
+\def\old@liii@module@name
+%<l3basics>{l3basics}
+%<l3bootstrap>{l3bootstrap}
+%<l3box>{l3box}
+%<l3candidates>{l3candidates}
+%<l3clist>{l3clist}
+%<l3coffins>{l3coffins}
+%<l3color>{l3color}
+%<l3expan>{l3expan}
+%<l3file>{l3file}
+%<l3fp>{l3fp}
+%<l3int>{l3int}
+%<l3keys>{l3keys}
+%<l3msg>{l3msg}
+%<l3names>{l3names}
+%<l3prg>{l3prg}
+%<l3prop>{l3prop}
+%<l3quark>{l3quark}
+%<l3seq>{l3seq}
+%<l3skip>{l3skip}
+%<l3tl>{l3tl}
+%<l3token>{l3token}
+% \end{macrocode}
+%
+% Then identify the current package:
+% \begin{macrocode}
+\ProvidesPackage\old@liii@module@name
+ [%
+ \ExplFileDate\space v-no-info
+ Obsolete L3 package
+ ]
+% \end{macrocode}
+% Describe the current situation on the terminal, then generate an
+% error to ensure that the message is actually seen.
+% \begin{macrocode}
+\typeout{*****************************************************************}
+\typeout{** }
+\typeout{** Package \old@liii@module@name\space is obsolete and has been removed!}
+\typeout{** }
+\typeout{** Its functionality is now only provided as part of in the expl3 package}
+\typeout{** }
+\typeout{** After showing you an error message you can hit <return> we will continue}
+\typeout{** for now by loading expl3 for you. However, at some point in the future}
+\typeout{** the old packages will be removed.}
+\typeout{** }
+\typeout{** Therefore, please replace '\string\usepackage{\old@liii@module@name}'}
+\typeout{** with '\string\usepackage{expl3}' in your documents as soon as possible.}
+\typeout{** }
+\typeout{*******************************************************************}
+\PackageError\old@liii@module@name{This package is obsolete ---
+ use 'expl3' instead}\@ehc
+% \end{macrocode}
+% Finally load \texttt{expl3} so that the user can continue for now.
+% \begin{macrocode}
+\RequirePackage{expl3}
+%</oldmodules>
+% \end{macrocode}
+%
+% \end{implementation}
+%
+% \endinput
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3token.dtx b/Master/texmf-dist/source/latex/l3kernel/l3token.dtx
index 416bf573160..cd310c06d3a 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3token.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3token.dtx
@@ -37,7 +37,7 @@
\documentclass[full]{l3doc}
%</driver>
%<*driver|package>
-\GetIdInfo$Id: l3token.dtx 5354 2014-08-23 01:35:39Z bruno $
+\GetIdInfo$Id: l3token.dtx 5422 2014-09-15 10:44:23Z joseph $
{L3 Experimental token manipulation}
%</driver|package>
%<*driver>
@@ -911,7 +911,7 @@
% \cs_set:Npn \next #1#2 { x #1 y #2 }
% \end{verbatim}
% will leave |#1#2| in the input stream. If the \meta{token} is
-% not a macro then \cs{scan_stop:} will be left in the input stream
+% not a macro then \cs{scan_stop:} will be left in the input stream.
% \begin{texnote}
% If the arg~spec. contains the string |->|, then the |spec| function
% will produce incorrect results.
@@ -930,7 +930,11 @@
% \cs_set:Npn \next #1#2 { x #1~y #2 }
% \end{verbatim}
% will leave \verb|x#1 y#2| in the input stream. If the \meta{token} is
-% not a macro then \cs{scan_stop:} will be left in the input stream
+% not a macro then \cs{scan_stop:} will be left in the input stream.
+% \begin{texnote}
+% If the arg~spec. contains the string |->|, then the |spec| function
+% will produce incorrect results.
+% \end{texnote}
% \end{function}
%
% \begin{function}[EXP]{\token_get_prefix_spec:N}
@@ -1171,23 +1175,31 @@
% \c_catcode_letter_token,
% \c_catcode_other_token
% }
-% We define these useful tokens. We have to do it by hand with the
-% brace tokens for obvious reasons.
+% We define these useful tokens. For the brace and space tokens things have
+% to be done by hand: the formal argument spec.~for \cs{cs_new_eq:NN} does
+% not cover them so we do things by hand. (As currently coded it would
+% \emph{work} with \cs{cs_new_eq:NN} but that's not really a great idea to
+% show off: we want people to stick to the defined interfaces and that
+% includes us.) So that these few odd names go into the log when appropriate
+% there is a need to hand-apply the \cs{__chk_if_free_cs:N} check.
% \begin{macrocode}
-\cs_new_eq:NN \c_group_begin_token {
-\cs_new_eq:NN \c_group_end_token }
\group_begin:
+ \__chk_if_free_cs:N \c_group_begin_token
+ \tex_global:D \tex_let:D \c_group_begin_token {
+ \__chk_if_free_cs:N \c_group_end_token
+ \tex_global:D \tex_let:D \c_group_end_token }
\char_set_catcode_math_toggle:N \*
- \token_new:Nn \c_math_toggle_token { * }
+ \cs_new_eq:NN \c_math_toggle_token *
\char_set_catcode_alignment:N \*
- \token_new:Nn \c_alignment_token { * }
- \token_new:Nn \c_parameter_token { # }
- \token_new:Nn \c_math_superscript_token { ^ }
+ \cs_new_eq:NN \c_alignment_token *
+ \cs_new_eq:NN \c_parameter_token #
+ \cs_new_eq:NN \c_math_superscript_token ^
\char_set_catcode_math_subscript:N \*
- \token_new:Nn \c_math_subscript_token { * }
- \token_new:Nn \c_space_token { ~ }
- \token_new:Nn \c_catcode_letter_token { a }
- \token_new:Nn \c_catcode_other_token { 1 }
+ \cs_new_eq:NN \c_math_subscript_token *
+ \__chk_if_free_cs:N \c_space_token
+ \use:n { \tex_global:D \tex_let:D \c_space_token = ~ } ~
+ \cs_new_eq:NN \c_catcode_letter_token a
+ \cs_new_eq:NN \c_catcode_other_token 1
\group_end:
% \end{macrocode}
% \end{macro}