summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/source/latex/l3kernel/l3msg.dtx')
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3msg.dtx413
1 files changed, 99 insertions, 314 deletions
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx b/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx
index 073980e325f..b3810e18fff 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx
@@ -7,7 +7,7 @@
% 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
+% https://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.
@@ -21,7 +21,7 @@
% for those people who are interested.
%
%<*driver>
-\documentclass[full]{l3doc}
+\documentclass[full,kernel]{l3doc}
\begin{document}
\DocInput{\jobname.dtx}
\end{document}
@@ -41,7 +41,7 @@
% }^^A
% }
%
-% \date{Released 2017/11/14}
+% \date{Released 2017/12/05}
%
% \maketitle
%
@@ -683,89 +683,6 @@
%
% \section{Internal \pkg{l3msg} functions}
%
-% The following functions are used in several kernel modules.
-%
-% \begin{function}[added = 2015-08-05]{\__msg_log_next:}
-% \begin{syntax}
-% \cs{__msg_log_next:} \meta{show-command}
-% \end{syntax}
-% Causes the next \meta{show-command} to send its output to the log
-% file instead of the terminal. This allows for instance
-% \cs{cs_log:N} to be defined as \cs{__msg_log_next:} \cs{cs_show:N}.
-% The effect of this command lasts until the next use of
-% \cs{__msg_show_wrap:Nn} or \cs{__msg_show_wrap:n} or
-% \cs{__msg_show_variable:NNNnn}, in other words until the next time
-% the \eTeX{} primitive \tn{showtokens} would have been used for
-% showing to the terminal or until the next
-% \texttt{variable-not-defined} error.
-% \end{function}
-%
-% \begin{function}[added = 2015-08-05]
-% {
-% \__msg_show_pre:nnnnnn,
-% \__msg_show_pre:nnxxxx,
-% \__msg_show_pre:nnnnnV
-% }
-% \begin{syntax}
-% \cs{__msg_show_pre:nnnnnn} \Arg{module} \Arg{message} \Arg{arg one} \Arg{arg two} \Arg{arg three} \Arg{arg four}
-% \end{syntax}
-% Prints the \meta{message} from \meta{module} in the terminal (or
-% log file if \cs{__msg_log_next:} was issued) without formatting.
-% Used in messages which print complex variable contents completely.
-% \end{function}
-%
-% \begin{function}[added = 2015-08-04]{\__msg_show_variable:NNNnn}
-% \begin{syntax}
-% \cs{__msg_show_variable:NNNnn} \meta{variable} \meta{if-exist} \meta{if-empty} \Arg{msg} \Arg{formatted content}
-% \end{syntax}
-% If the \meta{variable} does not exist according to \meta{if-exist}
-% (typically \cs{cs_if_exist:NTF}) then throw an error and do nothing
-% more. Otherwise, if \meta{msg} is not empty, display the message
-% |LaTeX/kernel/show-|\meta{msg} with \cs{token_to_str:N}
-% \meta{variable} as a first argument, and a second argument that is
-% |?| or empty depending on the result of \meta{if-empty} (typically
-% \cs{tl_if_empty:NTF}) on the \meta{variable}. Then display the
-% \meta{formatted content} by giving it as an argument to
-% \cs{__msg_show_wrap:n}.
-% \end{function}
-%
-% \begin{function}[added = 2015-08-03, updated = 2015-08-07]{\__msg_show_wrap:Nn}
-% \begin{syntax}
-% \cs{__msg_show_wrap:Nn} \meta{function} \Arg{expression}
-% \end{syntax}
-% Shows or logs the \meta{expression} (turned into a string), an
-% equal sign, and the result of applying the \meta{function} to the
-% \Arg{expression}. For instance, if the \meta{function} is
-% \cs{int_eval:n} and the \meta{expression} is |1+2| then this
-% logs |> 1+2=3.| The case where the \meta{function} is
-% \cs{tl_to_str:n} is special: then the string representation of the
-% \meta{expression} is only logged once.
-% \end{function}
-%
-% \begin{function}[added = 2015-08-03]{\__msg_show_wrap:n}
-% \begin{syntax}
-% \cs{__msg_show_wrap:n} \Arg{formatted text}
-% \end{syntax}
-% Shows or logs the \meta{formatted text}. After expansion,
-% unless it is empty, the \meta{formatted text} must contain |>|,
-% and the part of \meta{formatted text} before the first |>| is
-% removed. Failure to do so causes low-level \TeX{} errors.
-% \end{function}
-%
-% \begin{function}[updated = 2012-09-09]
-% {\__msg_show_item:n, \__msg_show_item:nn, \__msg_show_item_unbraced:nn}
-% \begin{syntax}
-% \cs{__msg_show_item:n} \Arg{item}
-% \cs{__msg_show_item:nn} \Arg{item-key} \Arg{item-value}
-% \end{syntax}
-% Auxiliary functions used within the last argument of
-% \cs{__msg_show_variable:NNNnn} or \cs{__msg_show_wrap:n}
-% to format variable items correctly for
-% display. The \cs{__msg_show_item:n} version is used for simple lists,
-% the \cs{__msg_show_item:nn} and \cs{__msg_show_item_unbraced:nn} versions
-% for key--value like data structures.
-% \end{function}
-%
% \begin{variable}{\c__msg_coding_error_text_tl}
% The text
% \begin{verbatim}
@@ -829,7 +746,7 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[aux]{\__chk_if_free_msg:nn}
+% \begin{macro}{\__chk_if_free_msg:nn}
% This auxiliary is similar to \cs{__chk_if_free_cs:N}, and is used when
% defining messages with \cs{msg_new:nnnn}.
% \begin{macrocode}
@@ -972,8 +889,8 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[aux]{\@@_interrupt_wrap:nn}
-% \begin{macro}[aux]{\@@_interrupt_more_text:n}
+% \begin{macro}{\@@_interrupt_wrap:nn}
+% \begin{macro}{\@@_interrupt_more_text:n}
% First setup \TeX{}'s \tn{errhelp} register with the extra help |#1|,
% then build a nice-looking error message with |#2|. Everything is
% done using \texttt{x}-type expansion as the new line markers are
@@ -999,7 +916,7 @@
% \end{macro}
% \end{macro}
%
-% \begin{macro}[aux]{\@@_interrupt_text:n}
+% \begin{macro}{\@@_interrupt_text:n}
% The business end of the process starts by producing some visual
% separation of the message from the main part of the log. The error
% message needs to be printed with everything made
@@ -1264,7 +1181,7 @@
% \msg_error:nnxx ,
% \msg_error:nnx
% }
-% \begin{macro}[aux]{\@@_error:cnnnnn, \@@_no_more_text:nnnn}
+% \begin{macro}{\@@_error:cnnnnn, \@@_no_more_text:nnnn}
% For an error, the interrupt routine is called. We check if there is
% a \enquote{more text} by comparing that control sequence with a
% permanently empty text.
@@ -1386,12 +1303,74 @@
% \end{macrocode}
% \end{macro}
%
+% \begin{macro}
+% {
+% \msg_show:nnnnnn ,
+% \msg_show:nnnnn ,
+% \msg_show:nnnn ,
+% \msg_show:nnn ,
+% \msg_show:nn ,
+% \msg_show:nnxxxx ,
+% \msg_show:nnxxx ,
+% \msg_show:nnxx ,
+% \msg_show:nnx
+% }
+% \begin{macro}[aux]{\@@_show:n, \@@_show:w, \@@_show_dot:w, \@@_show:nn}
+% The \texttt{show} message type is used for \cs{seq_show:N} and
+% similar complicated data structures. Wrap the given text with a
+% trailing dot (important later) then pass it to \cs{@@_show:n}. If
+% there is |\\>~| (or if the whole thing starts with |>~|) we split
+% there, print the first part and show the second part using
+% \tn{showtokens} (the \cs{exp_after:wN} ensure a nice display). Note
+% that that primitive adds a leading |>~| and trailing dot. That is
+% why we included a trailing dot before wrapping and removed it
+% afterwards. If there is no |\\>~| do the same but with an empty
+% second part which adds a spurious but inevitable |>~.|
+% \begin{macrocode}
+ \@@_class_new:nn { show }
+ {
+ \iow_wrap:nnnN
+ { \use:c { \c_@@_text_prefix_tl #1 / #2 } {#3} {#4} {#5} {#6} }
+ { } { } \@@_show:n
+ }
+ \cs_new_protected:Npn \@@_show:n #1
+ {
+ \tl_if_in:nnTF { ^^J #1 } { ^^J > ~ }
+ {
+ \tl_if_in:nnTF { #1 \q_mark } { . \q_mark }
+ { \@@_show_dot:w } { \@@_show:w }
+ ^^J #1 \q_stop
+ }
+ { \@@_show:nn { ? #1 } { } }
+ }
+ \cs_new:Npn \@@_show_dot:w #1 ^^J > ~ #2 . \q_stop
+ { \@@_show:nn {#1} {#2} }
+ \cs_new:Npn \@@_show:w #1 ^^J > ~ #2 \q_stop
+ { \@@_show:nn {#1} {#2} }
+ \cs_new_protected:Npn \@@_show:nn #1#2
+ {
+ \tl_if_empty:nF {#1}
+ { \exp_args:No \iow_term:n { \use_none:n #1 } }
+ \tl_set:Nn \l_@@_internal_tl {#2}
+ \__iow_with:Nnn \tex_newlinechar:D { 10 }
+ {
+ \__iow_with:Nnn \tex_errorcontextlines:D { -1 }
+ {
+ \etex_showtokens:D \exp_after:wN \exp_after:wN \exp_after:wN
+ { \exp_after:wN \l_@@_internal_tl }
+ }
+ }
+ }
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
% End the group to eliminate \cs{@@_class_new:nn}.
% \begin{macrocode}
\group_end:
% \end{macrocode}
%
-% \begin{macro}[aux]{\@@_class_chk_exist:nT}
+% \begin{macro}{\@@_class_chk_exist:nT}
% Checking that a message class exists. We build this from
% \cs{cs_if_free:cTF} rather than \cs{cs_if_exist:cTF} because that
% avoids reading the second argument earlier than necessary.
@@ -1434,8 +1413,8 @@
% \end{macrocode}
% \end{variable}
%
-% \begin{macro}[int]{\@@_use:nnnnnnn}
-% \begin{macro}[aux]
+% \begin{macro}{\@@_use:nnnnnnn}
+% \begin{macro}
% {
% \@@_use_redirect_name:n , \@@_use_hierarchy:nwwN ,
% \@@_use_redirect_module:n, \@@_use_code:
@@ -1557,8 +1536,8 @@
% \end{macro}
%
% \begin{macro}{\msg_redirect_class:nn, \msg_redirect_module:nnn}
-% \begin{macro}[aux]{\@@_redirect:nnn, \@@_redirect_loop_chk:nnn}
-% \begin{macro}[aux]{\@@_redirect_loop_list:n}
+% \begin{macro}{\@@_redirect:nnn, \@@_redirect_loop_chk:nnn}
+% \begin{macro}{\@@_redirect_loop_list:n}
% If the target class is empty, eliminate the corresponding
% redirection. Otherwise, add the redirection. We must then check
% for a loop: as an initialization, we start by storing the initial
@@ -1655,8 +1634,8 @@
% \end{macro}
% \end{macro}
%
-% \begin{macro}[aux]{\@@_kernel_class_new:nN}
-% \begin{macro}[aux]{\@@_kernel_class_new_aux:nN}
+% \begin{macro}{\@@_kernel_class_new:nN}
+% \begin{macro}{\@@_kernel_class_new_aux:nN}
% All the functions for kernel messages come in variants ranging
% from~$0$ to~$4$ arguments. Those with less than~$4$ arguments are
% defined in terms of the $4$-argument variant, in a way very similar
@@ -1960,6 +1939,15 @@
'check-declarations',~'deprecation',~'log-functions',~not~'#1'.
}
\@@_kernel_new:nnn { kernel } { expr } { '#2'~in~#1 }
+ \@@_kernel_new:nnnn { kernel } { local-global }
+ { Inconsistent~local/global~assignment }
+ {
+ \c_@@_coding_error_text_tl
+ \if:w l #2 Local \else: Global \fi: \
+ assignment~to~a~
+ \if:w l #1 local \else: \if:w g #1 global \else: constant \fi: \fi: \
+ variable~'#3'.
+ }
\@@_kernel_new:nnnn { kernel } { non-declared-variable }
{ The~variable~#1~has~not~been~declared~\msg_line_context:. }
{
@@ -1999,6 +1987,8 @@
% Some errors only appear in expandable settings,
% hence don't need a \enquote{more-text} argument.
% \begin{macrocode}
+\@@_kernel_new:nnn { kernel } { bad-exp-end-f }
+ { Misused~\exp_end_continue_f:w or~:nw }
\@@_kernel_new:nnn { kernel } { bad-variable }
{ Erroneous~variable~#1 used! }
\@@_kernel_new:nnn { kernel } { misused-sequence }
@@ -2007,6 +1997,8 @@
{ A~property~list~was~misused. }
\@@_kernel_new:nnn { kernel } { negative-replication }
{ Negative~argument~for~\prg_replicate:nn. }
+\@@_kernel_new:nnn { kernel } { prop-keyval }
+ { Missing/extra~'='~in~'#1'~(in~'..._keyval:Nn') }
\@@_kernel_new:nnn { kernel } { unknown-comparison }
{ Relation~'#1'~unknown:~use~=,~<,~>,~==,~!=,~<=,~>=. }
\@@_kernel_new:nnn { kernel } { zero-step }
@@ -2019,22 +2011,22 @@
{
The~comma~list~ \tl_if_empty:nF {#1} { #1 ~ }
\tl_if_empty:nTF {#2}
- { is~empty }
- { contains~the~items~(without~outer~braces): }
+ { is~empty \\>~ . }
+ { contains~the~items~(without~outer~braces): #2 . }
}
\@@_kernel_new:nnn { kernel } { show-prop }
{
The~property~list~#1~
\tl_if_empty:nTF {#2}
- { is~empty }
- { contains~the~pairs~(without~outer~braces): }
+ { is~empty \\>~ . }
+ { contains~the~pairs~(without~outer~braces): #2 . }
}
\@@_kernel_new:nnn { kernel } { show-seq }
{
The~sequence~#1~
\tl_if_empty:nTF {#2}
- { is~empty }
- { contains~the~items~(without~outer~braces): }
+ { is~empty \\>~ . }
+ { contains~the~items~(without~outer~braces): #2 . }
}
\@@_kernel_new:nnn { kernel } { show-streams }
{
@@ -2045,14 +2037,14 @@
{ iow } { output ~ }
}
streams~are~
- \tl_if_empty:nTF {#2} { open } { in~use: }
+ \tl_if_empty:nTF {#2} { open } { in~use: #2 . }
}
% \end{macrocode}
%
% \subsection{Expandable errors}
%
-% \begin{macro}[int]{\@@_expandable_error:n}
-% \begin{macro}[aux]{\@@_expandable_error:w}
+% \begin{macro}{\@@_expandable_error:n}
+% \begin{macro}{\@@_expandable_error:w}
% In expansion only context, we cannot use the normal means of
% reporting errors. Instead, we feed \TeX{} an undefined control
% sequence, \cs{LaTeX3 error:}. It is thus interrupted, and shows
@@ -2138,213 +2130,6 @@
% \end{macrocode}
% \end{macro}
%
-% \subsection{Showing variables}
-%
-% Functions defined in this section are used for diagnostic functions
-% in \pkg{l3clist}, \pkg{l3file}, \pkg{l3prop}, \pkg{l3seq}, \pkg{xtemplate}
-%
-% \begin{variable}{\g_@@_log_next_bool}
-% \begin{macro}[int]{\@@_log_next:}
-% \begin{macrocode}
-\bool_new:N \g_@@_log_next_bool
-\cs_new_protected:Npn \@@_log_next:
- { \bool_gset_true:N \g_@@_log_next_bool }
-% \end{macrocode}
-% \end{macro}
-% \end{variable}
-%
-% \begin{macro}[int]{\@@_show_pre:nnnnnn, \@@_show_pre:nnxxxx, \@@_show_pre:nnnnnV}
-% \begin{macro}[aux]{\@@_show_pre_aux:n}
-% Print the text of a message to the terminal or log file without
-% formatting: short cuts around \cs{iow_wrap:nnnN}. The choice of
-% terminal or log file is done by \cs{@@_show_pre_aux:n}.
-% \begin{macrocode}
-\cs_new_protected:Npn \@@_show_pre:nnnnnn #1#2#3#4#5#6
- {
- \exp_args:Nx \iow_wrap:nnnN
- {
- \exp_not:c { \c_@@_text_prefix_tl #1 / #2 }
- { \tl_to_str:n {#3} }
- { \tl_to_str:n {#4} }
- { \tl_to_str:n {#5} }
- { \tl_to_str:n {#6} }
- }
- { } { } \@@_show_pre_aux:n
- }
-\cs_new_protected:Npn \@@_show_pre:nnxxxx #1#2#3#4#5#6
- {
- \use:x
- { \exp_not:n { \@@_show_pre:nnnnnn {#1} {#2} } {#3} {#4} {#5} {#6} }
- }
-\cs_generate_variant:Nn \@@_show_pre:nnnnnn { nnnnnV }
-\cs_new_protected:Npn \@@_show_pre_aux:n
- { \bool_if:NTF \g_@@_log_next_bool { \iow_log:n } { \iow_term:n } }
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}[int]{\@@_show_variable:NNNnn}
-% The arguments of \cs{@@_show_variable:NNNnn} are
-% \begin{itemize}
-% \item The \meta{variable} to be shown as |#1|.
-% \item An \meta{if-exist} conditional |#2| with \texttt{NTF}
-% signature.
-% \item An \meta{if-empty} conditional |#3| or other function with
-% \texttt{NTF} signature (sometimes \cs{use_ii:nnn}).
-% \item The \meta{message} |#4| to use.
-% \item A construction |#5| which produces the formatted string
-% eventually passed to the \tn{showtokens} primitive. Typically
-% this is a mapping of the form \cs{seq_map_function:NN}
-% \meta{variable} \cs{@@_show_item:n}.
-% \end{itemize}
-% If \meta{if-exist} \meta{variable} is \texttt{false}, throw an
-% error and remember to reset \cs{g_@@_log_next_bool}, which is
-% otherwise reset by \cs{@@_show_wrap:n}. If \meta{message} is not
-% empty, output the message |LaTeX/kernel/show-|\meta{message} with
-% as its arguments the \meta{variable}, and either an empty second
-% argument or |?| depending on the result of \meta{if-empty}
-% \meta{variable}. Afterwards, show the contents of |#5| using
-% \cs{@@_show_wrap:n} or \cs{@@_log_wrap:n}.
-% \begin{macrocode}
-\cs_new_protected:Npn \@@_show_variable:NNNnn #1#2#3#4#5
- {
- #2 #1
- {
- \tl_if_empty:nF {#4}
- {
- \@@_show_pre:nnxxxx { LaTeX / kernel } { show- #4 }
- { \token_to_str:N #1 } { #3 #1 { } { ? } } { } { }
- }
- \@@_show_wrap:n {#5}
- }
- {
- \@@_kernel_error:nnx { kernel } { variable-not-defined }
- { \token_to_str:N #1 }
- \bool_gset_false:N \g_@@_log_next_bool
- }
- }
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}[int]{\@@_show_wrap:Nn}
-% A short-hand used for \cs{int_show:n} and many other functions that
-% passes to \cs{@@_show_wrap:n} the result of applying |#1| (a
-% function such as \cs{int_eval:n}) to the expression |#2|. The
-% leading |>~| is needed by \cs{@@_show_wrap:n}. The use of
-% \texttt{x}-expansion ensures that |#1| is expanded in the scope in which the
-% show command is called, rather than in the group created by
-% \cs{iow_wrap:nnnN}. This is only important for expressions
-% involving the \tn{currentgrouplevel} or \tn{currentgrouptype}.
-% On the other hand we want the expression to be converted to a string
-% with the usual escape character, hence within the wrapping code.
-% \begin{macrocode}
-\cs_new_protected:Npn \@@_show_wrap:Nn #1#2
- {
- \exp_args:Nx \@@_show_wrap:n
- {
- > ~ \exp_not:n { \tl_to_str:n {#2} } =
- \exp_not:N \tl_to_str:n { #1 {#2} }
- }
- }
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}[int]{\@@_show_wrap:n}
-% \begin{macro}[aux]{\@@_show_wrap_aux:n}
-% \begin{macro}[aux, EXP]{\@@_show_wrap_aux:w}
-% The argument of \cs{@@_show_wrap:n} is line-wrapped using
-% \cs{iow_wrap:nnnN}. Everything before the first~|>| in the wrapped
-% text is removed, as well as an optional space following it (because
-% of \texttt{f}-expansion). In order for line-wrapping to give the
-% correct result, the first~|>| must in fact appear at the beginning
-% of a line and be followed by a space (or a line-break), so in
-% practice, the argument of \cs{@@_show_wrap:n} begins with |>~| or
-% |\\>~|.
-%
-% The line-wrapped text is then either sent to the log file through
-% \cs{iow_log:x}, or shown in the terminal using the
-% \eTeX{} primitive \tn{showtokens} after removing a leading |>~| and
-% trailing dot since those are added automatically by
-% \tn{showtokens}. The trailing dot was included in the first place
-% because its presence can affect line-wrapping. Note that the space
-% after |>| is removed through \texttt{f}-expansion rather than by
-% using an argument delimited by |>~| because the space may have been
-% replaced by a line-break when line-wrapping.
-%
-% A special case is that if the line-wrapped text is a single dot (in
-% other words if the argument of \cs{@@_show_wrap:n}
-% \texttt{x}-expands to nothing) then no |>~| should be removed.
-% This makes it unnecessary to check explicitly for emptyness when
-% using for instance \cs{seq_map_function:NN} \meta{seq~var}
-% \cs{@@_show_item:n} as the argument of \cs{@@_show_wrap:n}.
-%
-% Finally, the token list \cs{l_@@_internal_tl} containing the result
-% of all these manipulations is displayed to the terminal using
-% \cs{etex_showtokens:D} and odd \cs{exp_after:wN} which expand the
-% closing brace to improve the output slightly. The calls to
-% \cs{__iow_with:Nnn} ensure that the \tn{newlinechar} is set to~$10$
-% so that the \cs{iow_newline:} inserted by the line-wrapping code
-% are correctly recognized by \TeX{}, and that \tn{errorcontextlines}
-% is $-1$ to avoid printing irrelevant context.
-%
-% Note also that \cs{g_@@_log_next_bool} is only reset if that is
-% necessary. This allows the user of an interactive prompt to insert
-% tokens as a response to \eTeX{}'s \tn{showtokens}.
-% \begin{macrocode}
-\cs_new_protected:Npn \@@_show_wrap:n #1
- { \iow_wrap:nnnN { #1 . } { } { } \@@_show_wrap_aux:n }
-\cs_new_protected:Npn \@@_show_wrap_aux:n #1
- {
- \tl_if_single:nTF {#1}
- { \tl_clear:N \l_@@_internal_tl }
- { \tl_set:Nf \l_@@_internal_tl { \@@_show_wrap_aux:w #1 \q_stop } }
- \bool_if:NTF \g_@@_log_next_bool
- {
- \iow_log:x { > ~ \l_@@_internal_tl . }
- \bool_gset_false:N \g_@@_log_next_bool
- }
- {
- \__iow_with:Nnn \tex_newlinechar:D { 10 }
- {
- \__iow_with:Nnn \tex_errorcontextlines:D { -1 }
- {
- \etex_showtokens:D \exp_after:wN \exp_after:wN \exp_after:wN
- { \exp_after:wN \l_@@_internal_tl }
- }
- }
- }
- }
-\cs_new:Npn \@@_show_wrap_aux:w #1 > #2 . \q_stop {#2}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}[int,EXP]{\@@_show_item:n}
-% \begin{macro}[int,EXP]{\@@_show_item:nn}
-% \begin{macro}[int,EXP]{\@@_show_item_unbraced:nn}
-% Each item in the variable is formatted using one of
-% the following functions.
-% \begin{macrocode}
-\cs_new:Npn \@@_show_item:n #1
- {
- \\ > \ \ \{ \tl_to_str:n {#1} \}
- }
-\cs_new:Npn \@@_show_item:nn #1#2
- {
- \\ > \ \ \{ \tl_to_str:n {#1} \}
- \ \ => \ \ \{ \tl_to_str:n {#2} \}
- }
-\cs_new:Npn \@@_show_item_unbraced:nn #1#2
- {
- \\ > \ \ \tl_to_str:n {#1}
- \ \ => \ \ \tl_to_str:n {#2}
- }
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
% \begin{macrocode}
%</initex|package>
% \end{macrocode}