Skip to content

Commit

Permalink
Add peek_spaces_remove (we could now deprecate ignore_spaces functions)
Browse files Browse the repository at this point in the history
  • Loading branch information
Bruno Le Floch committed Oct 1, 2018
1 parent 4f1320f commit 7ebea4a
Show file tree
Hide file tree
Showing 14 changed files with 79 additions and 0 deletions.
1 change: 1 addition & 0 deletions l3kernel/CHANGELOG.md
Expand Up @@ -10,6 +10,7 @@ this project uses date-based 'snapshot' version identifiers.
### Added

- `\g_msg_module_documentation_prop` (see #471)
- `\peek_spaces_remove:n`

### Fixed

Expand Down
31 changes: 31 additions & 0 deletions l3kernel/l3candidates.dtx
Expand Up @@ -1500,6 +1500,14 @@
% \end{verbatim}
% \end{function}
%
% \begin{function}[added = 2018-10-01]{\peek_spaces_remove:n}
% \begin{syntax}
% \cs{peek_spaces_remove:n} \Arg{code}
% \end{syntax}
% Removes explicit and implicit space tokens (category code~$10$ and
% character code~$32$) from the input stream, then inserts \meta{code}.
% \end{function}
%
% \end{documentation}
%
% \begin{implementation}
Expand Down Expand Up @@ -5334,6 +5342,29 @@
% \end{macro}
% \end{macro}
%
% \begin{macro}{\peek_spaces_remove:n, \@@_spaces_remove:}
% Repeatedly use \cs{@@_true_remove:w} to remove a space and call
% \cs{@@_true_aux:w}.
% \begin{macrocode}
\cs_new_protected:Npn \peek_spaces_remove:n #1
{
\cs_set:Npx \@@_false:w { \exp_not:n {#1} }
\group_align_safe_begin:
\cs_set:Npn \@@_true_aux:w { \peek_after:Nw \@@_spaces_remove: }
\@@_true_aux:w
}
\cs_new_protected:Npn \@@_spaces_remove:
{
\if_meaning:w \l_peek_token \c_space_token
\exp_after:wN \@@_true_remove:w
\else:
\group_align_safe_end:
\exp_after:wN \@@_false:w
\fi:
}
% \end{macrocode}
% \end{macro}
%
% \begin{macrocode}
%</initex|package>
% \end{macrocode}
Expand Down
2 changes: 2 additions & 0 deletions l3kernel/testfiles/m3expl001.luatex.tlg
Expand Up @@ -6092,6 +6092,8 @@ Defining \__peek_collect:NNn on line ...
Defining \__peek_collect_true:w on line ...
Defining \__peek_collect:N on line ...
Defining \__peek_collect_remove:nw on line ...
Defining \peek_spaces_remove:n on line ...
Defining \__peek_spaces_remove: on line ...
Defining \__kernel_deprecation_error:Nnn on line ...
Defining \__deprecation_primitive:NN on line ...
Defining \__deprecation_primitive:w on line ...
Expand Down
2 changes: 2 additions & 0 deletions l3kernel/testfiles/m3expl001.ptex.tlg
Expand Up @@ -6129,6 +6129,8 @@ Defining \__peek_collect:NNn on line ...
Defining \__peek_collect_true:w on line ...
Defining \__peek_collect:N on line ...
Defining \__peek_collect_remove:nw on line ...
Defining \peek_spaces_remove:n on line ...
Defining \__peek_spaces_remove: on line ...
Defining \__kernel_deprecation_error:Nnn on line ...
Defining \__deprecation_primitive:NN on line ...
Defining \__deprecation_primitive:w on line ...
Expand Down
2 changes: 2 additions & 0 deletions l3kernel/testfiles/m3expl001.tlg
Expand Up @@ -6330,6 +6330,8 @@ Defining \__peek_collect:NNn on line ...
Defining \__peek_collect_true:w on line ...
Defining \__peek_collect:N on line ...
Defining \__peek_collect_remove:nw on line ...
Defining \peek_spaces_remove:n on line ...
Defining \__peek_spaces_remove: on line ...
Defining \__kernel_deprecation_error:Nnn on line ...
Defining \__deprecation_primitive:NN on line ...
Defining \__deprecation_primitive:w on line ...
Expand Down
2 changes: 2 additions & 0 deletions l3kernel/testfiles/m3expl001.uptex.tlg
Expand Up @@ -6327,6 +6327,8 @@ Defining \__peek_collect:NNn on line ...
Defining \__peek_collect_true:w on line ...
Defining \__peek_collect:N on line ...
Defining \__peek_collect_remove:nw on line ...
Defining \peek_spaces_remove:n on line ...
Defining \__peek_spaces_remove: on line ...
Defining \__kernel_deprecation_error:Nnn on line ...
Defining \__deprecation_primitive:NN on line ...
Defining \__deprecation_primitive:w on line ...
Expand Down
2 changes: 2 additions & 0 deletions l3kernel/testfiles/m3expl001.xetex.tlg
Expand Up @@ -6096,6 +6096,8 @@ Defining \__peek_collect:NNn on line ...
Defining \__peek_collect_true:w on line ...
Defining \__peek_collect:N on line ...
Defining \__peek_collect_remove:nw on line ...
Defining \peek_spaces_remove:n on line ...
Defining \__peek_spaces_remove: on line ...
Defining \__kernel_deprecation_error:Nnn on line ...
Defining \__deprecation_primitive:NN on line ...
Defining \__deprecation_primitive:w on line ...
Expand Down
2 changes: 2 additions & 0 deletions l3kernel/testfiles/m3expl003.luatex.tlg
Expand Up @@ -6092,6 +6092,8 @@ Defining \__peek_collect:NNn on line ...
Defining \__peek_collect_true:w on line ...
Defining \__peek_collect:N on line ...
Defining \__peek_collect_remove:nw on line ...
Defining \peek_spaces_remove:n on line ...
Defining \__peek_spaces_remove: on line ...
Defining \__kernel_deprecation_error:Nnn on line ...
Defining \__deprecation_primitive:NN on line ...
Defining \__deprecation_primitive:w on line ...
Expand Down
2 changes: 2 additions & 0 deletions l3kernel/testfiles/m3expl003.ptex.tlg
Expand Up @@ -6129,6 +6129,8 @@ Defining \__peek_collect:NNn on line ...
Defining \__peek_collect_true:w on line ...
Defining \__peek_collect:N on line ...
Defining \__peek_collect_remove:nw on line ...
Defining \peek_spaces_remove:n on line ...
Defining \__peek_spaces_remove: on line ...
Defining \__kernel_deprecation_error:Nnn on line ...
Defining \__deprecation_primitive:NN on line ...
Defining \__deprecation_primitive:w on line ...
Expand Down
2 changes: 2 additions & 0 deletions l3kernel/testfiles/m3expl003.tlg
Expand Up @@ -6330,6 +6330,8 @@ Defining \__peek_collect:NNn on line ...
Defining \__peek_collect_true:w on line ...
Defining \__peek_collect:N on line ...
Defining \__peek_collect_remove:nw on line ...
Defining \peek_spaces_remove:n on line ...
Defining \__peek_spaces_remove: on line ...
Defining \__kernel_deprecation_error:Nnn on line ...
Defining \__deprecation_primitive:NN on line ...
Defining \__deprecation_primitive:w on line ...
Expand Down
2 changes: 2 additions & 0 deletions l3kernel/testfiles/m3expl003.uptex.tlg
Expand Up @@ -6327,6 +6327,8 @@ Defining \__peek_collect:NNn on line ...
Defining \__peek_collect_true:w on line ...
Defining \__peek_collect:N on line ...
Defining \__peek_collect_remove:nw on line ...
Defining \peek_spaces_remove:n on line ...
Defining \__peek_spaces_remove: on line ...
Defining \__kernel_deprecation_error:Nnn on line ...
Defining \__deprecation_primitive:NN on line ...
Defining \__deprecation_primitive:w on line ...
Expand Down
2 changes: 2 additions & 0 deletions l3kernel/testfiles/m3expl003.xetex.tlg
Expand Up @@ -6096,6 +6096,8 @@ Defining \__peek_collect:NNn on line ...
Defining \__peek_collect_true:w on line ...
Defining \__peek_collect:N on line ...
Defining \__peek_collect_remove:nw on line ...
Defining \peek_spaces_remove:n on line ...
Defining \__peek_spaces_remove: on line ...
Defining \__kernel_deprecation_error:Nnn on line ...
Defining \__deprecation_primitive:NN on line ...
Defining \__deprecation_primitive:w on line ...
Expand Down
11 changes: 11 additions & 0 deletions l3kernel/testfiles/m3peek001.lvt
Expand Up @@ -203,6 +203,17 @@

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\char_set_lccode:nn { 32 } { `* }
\TEST { peek_spaces_remove }
{
\use:n { \peek_spaces_remove:n { \tl_show:n } ~ \c_space_token } ~ \c_space_tl
\if_false: { \fi: \peek_spaces_remove:n { \exp_after:wN \tl_show:n \token_to_str:N } }
\use:x { \peek_spaces_remove:n { \tex_show:D } \c_catcode_other_space_tl }
\tex_lowercase:D { \peek_spaces_remove:n { \tex_show:D } ~ }
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\END


Expand Down
16 changes: 16 additions & 0 deletions l3kernel/testfiles/m3peek001.tlg
Expand Up @@ -201,3 +201,19 @@ TEST 10: peek collect
|\c_group_begin_token \c_group_begin_token \c_group_begin_token |\a |
|\c_group_end_token \c_group_end_token \c_group_end_token |\a |
============================================================
============================================================
TEST 11: peek_spaces_remove
============================================================
> \c_space_tl .
<recently read> }
l. ... }
> }.
<recently read> }
l. ... }
> the character .
<recently read>
l. ... }
> blank space *.
<recently read> *
l. ... }
============================================================

0 comments on commit 7ebea4a

Please sign in to comment.