diff options
35 files changed, 672 insertions, 670 deletions
diff --git a/Master/texmf-dist/doc/latex/l3experimental/README.md b/Master/texmf-dist/doc/latex/l3experimental/README.md index 927427b8aa8..577c35d8174 100644 --- a/Master/texmf-dist/doc/latex/l3experimental/README.md +++ b/Master/texmf-dist/doc/latex/l3experimental/README.md @@ -1,7 +1,7 @@ Experimental LaTeX3 Concepts ============================ -Release 2016/05/14 (r6495) +Release 2016/10/19 (r6730) Overview -------- diff --git a/Master/texmf-dist/doc/latex/l3experimental/l3sort/l3sort.pdf b/Master/texmf-dist/doc/latex/l3experimental/l3sort/l3sort.pdf Binary files differindex 3ba770b9da1..0b5b3a6ceb5 100644 --- a/Master/texmf-dist/doc/latex/l3experimental/l3sort/l3sort.pdf +++ b/Master/texmf-dist/doc/latex/l3experimental/l3sort/l3sort.pdf diff --git a/Master/texmf-dist/doc/latex/l3experimental/l3str/l3flag.pdf b/Master/texmf-dist/doc/latex/l3experimental/l3str/l3flag.pdf Binary files differindex fc420706a87..8b40328f04f 100644 --- a/Master/texmf-dist/doc/latex/l3experimental/l3str/l3flag.pdf +++ b/Master/texmf-dist/doc/latex/l3experimental/l3str/l3flag.pdf diff --git a/Master/texmf-dist/doc/latex/l3experimental/l3str/l3regex.pdf b/Master/texmf-dist/doc/latex/l3experimental/l3str/l3regex.pdf Binary files differindex ec88c77414a..884a9c948ff 100644 --- a/Master/texmf-dist/doc/latex/l3experimental/l3str/l3regex.pdf +++ b/Master/texmf-dist/doc/latex/l3experimental/l3str/l3regex.pdf diff --git a/Master/texmf-dist/doc/latex/l3experimental/l3str/l3str-convert.pdf b/Master/texmf-dist/doc/latex/l3experimental/l3str/l3str-convert.pdf Binary files differindex 5fd19d24b6e..d71b03cec0b 100644 --- a/Master/texmf-dist/doc/latex/l3experimental/l3str/l3str-convert.pdf +++ b/Master/texmf-dist/doc/latex/l3experimental/l3str/l3str-convert.pdf diff --git a/Master/texmf-dist/doc/latex/l3experimental/l3str/l3str-format.pdf b/Master/texmf-dist/doc/latex/l3experimental/l3str/l3str-format.pdf Binary files differindex 5f475cc59b0..77d64199cfd 100644 --- a/Master/texmf-dist/doc/latex/l3experimental/l3str/l3str-format.pdf +++ b/Master/texmf-dist/doc/latex/l3experimental/l3str/l3str-format.pdf diff --git a/Master/texmf-dist/doc/latex/l3experimental/l3str/l3tl-analysis.pdf b/Master/texmf-dist/doc/latex/l3experimental/l3str/l3tl-analysis.pdf Binary files differindex 1b9ca2c2433..a9b6c710495 100644 --- a/Master/texmf-dist/doc/latex/l3experimental/l3str/l3tl-analysis.pdf +++ b/Master/texmf-dist/doc/latex/l3experimental/l3str/l3tl-analysis.pdf diff --git a/Master/texmf-dist/doc/latex/l3experimental/l3str/l3tl-build.pdf b/Master/texmf-dist/doc/latex/l3experimental/l3str/l3tl-build.pdf Binary files differindex 181d0e5efce..3e1d77f8653 100644 --- a/Master/texmf-dist/doc/latex/l3experimental/l3str/l3tl-build.pdf +++ b/Master/texmf-dist/doc/latex/l3experimental/l3str/l3tl-build.pdf diff --git a/Master/texmf-dist/doc/latex/l3experimental/xcoffins/xcoffins.pdf b/Master/texmf-dist/doc/latex/l3experimental/xcoffins/xcoffins.pdf Binary files differindex faa127772bd..e55ad481de5 100644 --- a/Master/texmf-dist/doc/latex/l3experimental/xcoffins/xcoffins.pdf +++ b/Master/texmf-dist/doc/latex/l3experimental/xcoffins/xcoffins.pdf diff --git a/Master/texmf-dist/doc/latex/l3experimental/xgalley/l3galley.pdf b/Master/texmf-dist/doc/latex/l3experimental/xgalley/l3galley.pdf Binary files differindex b7eb5fa0d60..6368d39a242 100644 --- a/Master/texmf-dist/doc/latex/l3experimental/xgalley/l3galley.pdf +++ b/Master/texmf-dist/doc/latex/l3experimental/xgalley/l3galley.pdf diff --git a/Master/texmf-dist/doc/latex/l3experimental/xgalley/xgalley.pdf b/Master/texmf-dist/doc/latex/l3experimental/xgalley/xgalley.pdf Binary files differindex 3e623236a5f..1d4d1115069 100644 --- a/Master/texmf-dist/doc/latex/l3experimental/xgalley/xgalley.pdf +++ b/Master/texmf-dist/doc/latex/l3experimental/xgalley/xgalley.pdf diff --git a/Master/texmf-dist/source/latex/l3experimental/l3sort/l3sort.dtx b/Master/texmf-dist/source/latex/l3experimental/l3sort/l3sort.dtx index c6a0962d867..ed4eb58736d 100644 --- a/Master/texmf-dist/source/latex/l3experimental/l3sort/l3sort.dtx +++ b/Master/texmf-dist/source/latex/l3experimental/l3sort/l3sort.dtx @@ -37,8 +37,8 @@ %<*driver|package> % The version of expl3 required is tested as early as possible, as % some really old versions do not define \ProvidesExplPackage. -\RequirePackage{expl3}[2016/05/14] -%<package>\@ifpackagelater{expl3}{2016/05/14} +\RequirePackage{expl3}[2016/10/19] +%<package>\@ifpackagelater{expl3}{2016/10/19} %<package> {} %<package> {% %<package> \PackageError{l3sort}{Support package l3kernel too old} @@ -50,7 +50,7 @@ %<package> }% %<package> \endinput %<package> } -\GetIdInfo$Id: l3sort.dtx 6492 2016-05-14 20:27:55Z joseph $ +\GetIdInfo$Id: l3sort.dtx 6730 2016-10-19 11:19:38Z joseph $ {L3 Experimental sorting functions} %</driver|package> %<*driver> @@ -147,6 +147,8 @@ % \meta{clist var}. % \end{function} % +% {\renewcommand{\thefootnote}{}\footnotetext{\CodedocExplainEXP}} +% % \begin{function}[EXP]{\tl_sort:nN} % \begin{syntax} % \cs{tl_sort:nN} \Arg{token list} \meta{conditional} @@ -302,13 +304,13 @@ % arguments are the variable to sort, and the sorting method % as inline code. % \begin{macrocode} -\cs_new_protected_nopar:Npn \seq_sort:Nn +\cs_new_protected:Npn \seq_sort:Nn { \@@_main:NNNnNn \tl_set:Nn \seq_map_inline:Nn \seq_map_break: { \s__seq \@@_toks:NNw \exp_not:N \__seq_item:n 0 ; } } -\cs_new_protected_nopar:Npn \seq_gsort:Nn +\cs_new_protected:Npn \seq_gsort:Nn { \@@_main:NNNnNn \tl_gset:Nn \seq_map_inline:Nn \seq_map_break: @@ -324,13 +326,13 @@ % the token list is very similar to sequences, removing % \cs{seq_item:Nn}. % \begin{macrocode} -\cs_new_protected_nopar:Npn \tl_sort:Nn +\cs_new_protected:Npn \tl_sort:Nn { \@@_main:NNNnNn \tl_set:Nn \tl_map_inline:Nn \tl_map_break: { \@@_toks:NNw \prg_do_nothing: \prg_do_nothing: 0 ; } } -\cs_new_protected_nopar:Npn \tl_gsort:Nn +\cs_new_protected:Npn \tl_gsort:Nn { \@@_main:NNNnNn \tl_gset:Nn \tl_map_inline:Nn \tl_map_break: @@ -353,9 +355,9 @@ % argument to that function; hence we need to expand this argument % once to unpack the register. % \begin{macrocode} -\cs_new_protected_nopar:Npn \clist_sort:Nn +\cs_new_protected:Npn \clist_sort:Nn { \@@_clist:NNn \tl_set:Nn } -\cs_new_protected_nopar:Npn \clist_gsort:Nn +\cs_new_protected:Npn \clist_gsort:Nn { \@@_clist:NNn \tl_gset:Nn } \cs_new_protected:Npn \@@_clist:NNn #1#2#3 { @@ -409,7 +411,7 @@ % empty list or a list with one item). Otherwise, go through pairs % of blocks starting from $0$, then double the block size, and repeat. % \begin{macrocode} -\cs_new_protected_nopar:Npn \@@_level: +\cs_new_protected:Npn \@@_level: { \if_int_compare:w \l_@@_block_int < \l_@@_length_int \l_@@_end_int \c_zero @@ -439,7 +441,7 @@ % those ranges. Of course, once that pair of blocks is merged, % move on to the next pair. % \begin{macrocode} -\cs_new_protected_nopar:Npn \@@_merge_blocks: +\cs_new_protected:Npn \@@_merge_blocks: { \l_@@_begin_int \l_@@_end_int \tex_advance:D \l_@@_end_int \l_@@_block_int @@ -469,7 +471,7 @@ % (excluded) into a new range starting at the initial value % of \cs{l_@@_C_int}, namely \cs{l_@@_length_int}. % \begin{macrocode} -\cs_new_protected_nopar:Npn \sort_copy_block: +\cs_new_protected:Npn \sort_copy_block: { \tex_toks:D \l_@@_C_int \tex_toks:D \l_@@_B_int \tex_advance:D \l_@@_C_int \c_one @@ -496,7 +498,7 @@ % means the arguments need to be given in the order they % appear originally in the list. % \begin{macrocode} -\cs_new_protected_nopar:Npn \@@_merge_blocks_aux: +\cs_new_protected:Npn \@@_merge_blocks_aux: { \exp_after:wN \sort_compare:nn \exp_after:wN { \tex_the:D \tex_toks:D \exp_after:wN \l_@@_A_int \exp_after:wN } @@ -517,7 +519,7 @@ % is already in the correct register and we are done % with merging those two blocks. % \begin{macrocode} -\cs_new_protected_nopar:Npn \sort_ordered: +\cs_new_protected:Npn \sort_ordered: { \tex_toks:D \l_@@_B_int \tex_toks:D \l_@@_C_int \tex_advance:D \l_@@_B_int \c_minus_one @@ -541,7 +543,7 @@ % the second block, indexed by $C$, should be copied % to the merger (see \cs{@@_merge_blocks_end:}). % \begin{macrocode} -\cs_new_protected_nopar:Npn \sort_reversed: +\cs_new_protected:Npn \sort_reversed: { \tex_toks:D \l_@@_B_int \tex_toks:D \l_@@_A_int \tex_advance:D \l_@@_B_int \c_minus_one @@ -561,7 +563,7 @@ % the threshold \texttt{begin}, or when $C$ reaches % \texttt{length}. % \begin{macrocode} -\cs_new_protected_nopar:Npn \@@_merge_blocks_end: +\cs_new_protected:Npn \@@_merge_blocks_end: { \tex_toks:D \l_@@_B_int \tex_toks:D \l_@@_C_int \tex_advance:D \l_@@_B_int \c_minus_one diff --git a/Master/texmf-dist/source/latex/l3experimental/l3str/l3flag.dtx b/Master/texmf-dist/source/latex/l3experimental/l3str/l3flag.dtx index d929259efaa..446504ae65b 100644 --- a/Master/texmf-dist/source/latex/l3experimental/l3str/l3flag.dtx +++ b/Master/texmf-dist/source/latex/l3experimental/l3str/l3flag.dtx @@ -36,8 +36,8 @@ %<*driver|package> % The version of expl3 required is tested as early as possible, as % some really old versions do not define \ProvidesExplPackage. -\RequirePackage{expl3}[2016/05/14] -%<package>\@ifpackagelater{expl3}{2016/05/14} +\RequirePackage{expl3}[2016/10/19] +%<package>\@ifpackagelater{expl3}{2016/10/19} %<package> {} %<package> {% %<package> \PackageError{l3flag}{Support package l3kernel too old} @@ -49,7 +49,7 @@ %<package> }% %<package> \endinput %<package> } -\GetIdInfo$Id: l3flag.dtx 6492 2016-05-14 20:27:55Z joseph $ +\GetIdInfo$Id: l3flag.dtx 6730 2016-10-19 11:19:38Z joseph $ {L3 Experimental flags} %</driver|package> %<*driver> diff --git a/Master/texmf-dist/source/latex/l3experimental/l3str/l3regex.dtx b/Master/texmf-dist/source/latex/l3experimental/l3str/l3regex.dtx index e9fc42c8cf2..41969971c69 100644 --- a/Master/texmf-dist/source/latex/l3experimental/l3str/l3regex.dtx +++ b/Master/texmf-dist/source/latex/l3experimental/l3str/l3regex.dtx @@ -36,8 +36,8 @@ %<*driver|package> % The version of expl3 required is tested as early as possible, as % some really old versions do not define \ProvidesExplPackage. -\RequirePackage{expl3}[2016/05/14] -%<package>\@ifpackagelater{expl3}{2016/05/14} +\RequirePackage{expl3}[2016/10/19] +%<package>\@ifpackagelater{expl3}{2016/10/19} %<package> {} %<package> {% %<package> \PackageError{l3regex}{Support package l3kernel too old} @@ -49,7 +49,7 @@ %<package> }% %<package> \endinput %<package> } -\GetIdInfo$Id: l3regex.dtx 6492 2016-05-14 20:27:55Z joseph $ +\GetIdInfo$Id: l3regex.dtx 6730 2016-10-19 11:19:38Z joseph $ {L3 Experimental regular expressions} %</driver|package> %<*driver> @@ -1038,7 +1038,7 @@ % $[65,90]$ (upper-case), then add $32$, making it lowercase. If it is % in the lower-case letter range $[97,122]$, subtract $32$. % \begin{macrocode} -\cs_new_protected_nopar:Npn \@@_compute_case_changed_char: +\cs_new_protected:Npn \@@_compute_case_changed_char: { \int_set_eq:NN \l_@@_case_changed_char_int \l_@@_current_char_int \if_int_compare:w \l_@@_current_char_int < \c_ninety_one @@ -1182,14 +1182,14 @@ % order in which the various tests appear is optimized for usual % mostly lower case letter text. % \begin{macrocode} -\cs_new_protected_nopar:Npn \@@_prop_d: +\cs_new_protected:Npn \@@_prop_d: { \@@_item_caseful_range:nn \c_forty_eight { 57 } } % 0--9 -\cs_new_protected_nopar:Npn \@@_prop_h: +\cs_new_protected:Npn \@@_prop_h: { \@@_item_caseful_equal:n \c_thirty_two % space \@@_item_caseful_equal:n \c_nine % tab } -\cs_new_protected_nopar:Npn \@@_prop_s: +\cs_new_protected:Npn \@@_prop_s: { \@@_item_caseful_equal:n \c_thirty_two % space \@@_item_caseful_equal:n \c_nine % tab @@ -1197,16 +1197,16 @@ \@@_item_caseful_equal:n \c_twelve % ff \@@_item_caseful_equal:n \c_thirteen % cr } -\cs_new_protected_nopar:Npn \@@_prop_v: +\cs_new_protected:Npn \@@_prop_v: { \@@_item_caseful_range:nn \c_ten \c_thirteen } % lf, vtab, ff, cr -\cs_new_protected_nopar:Npn \@@_prop_w: +\cs_new_protected:Npn \@@_prop_w: { \@@_item_caseful_range:nn \c_ninety_seven { 122 } % a--z \@@_item_caseful_range:nn \c_sixty_five { 90 } % A--Z \@@_item_caseful_range:nn \c_forty_eight { 57 } % 0--9 \@@_item_caseful_equal:n { 95 } % _ } -\cs_new_protected_nopar:Npn \@@_prop_N: +\cs_new_protected:Npn \@@_prop_N: { \@@_item_reverse:n { \@@_item_caseful_equal:n \c_ten } } % \end{macrocode} % \end{macro} @@ -1221,41 +1221,41 @@ % } % \textsc{posix} properties. No surprise. % \begin{macrocode} -\cs_new_protected_nopar:Npn \@@_posix_alnum: +\cs_new_protected:Npn \@@_posix_alnum: { \@@_posix_alpha: \@@_posix_digit: } -\cs_new_protected_nopar:Npn \@@_posix_alpha: +\cs_new_protected:Npn \@@_posix_alpha: { \@@_posix_lower: \@@_posix_upper: } -\cs_new_protected_nopar:Npn \@@_posix_ascii: +\cs_new_protected:Npn \@@_posix_ascii: { \@@_item_caseful_range:nn \c_zero \c_one_hundred_twenty_seven } \cs_new_eq:NN \@@_posix_blank: \@@_prop_h: -\cs_new_protected_nopar:Npn \@@_posix_cntrl: +\cs_new_protected:Npn \@@_posix_cntrl: { \@@_item_caseful_range:nn \c_zero { 31 } \@@_item_caseful_equal:n \c_one_hundred_twenty_seven } \cs_new_eq:NN \@@_posix_digit: \@@_prop_d: -\cs_new_protected_nopar:Npn \@@_posix_graph: +\cs_new_protected:Npn \@@_posix_graph: { \@@_item_caseful_range:nn { 33 } { 126 } } -\cs_new_protected_nopar:Npn \@@_posix_lower: +\cs_new_protected:Npn \@@_posix_lower: { \@@_item_caseful_range:nn \c_ninety_seven { 122 } } -\cs_new_protected_nopar:Npn \@@_posix_print: +\cs_new_protected:Npn \@@_posix_print: { \@@_item_caseful_range:nn \c_thirty_two { 126 } } -\cs_new_protected_nopar:Npn \@@_posix_punct: +\cs_new_protected:Npn \@@_posix_punct: { \@@_item_caseful_range:nn { 33 } { 47 } \@@_item_caseful_range:nn { 58 } { 64 } \@@_item_caseful_range:nn { 91 } { 96 } \@@_item_caseful_range:nn { 123 } { 126 } } -\cs_new_protected_nopar:Npn \@@_posix_space: +\cs_new_protected:Npn \@@_posix_space: { \@@_item_caseful_equal:n \c_thirty_two \@@_item_caseful_range:nn \c_nine \c_thirteen } -\cs_new_protected_nopar:Npn \@@_posix_upper: +\cs_new_protected:Npn \@@_posix_upper: { \@@_item_caseful_range:nn \c_sixty_five { 90 } } \cs_new_eq:NN \@@_posix_word: \@@_prop_w: -\cs_new_protected_nopar:Npn \@@_posix_xdigit: +\cs_new_protected:Npn \@@_posix_xdigit: { \@@_posix_digit: \@@_item_caseful_range:nn \c_sixty_five { 70 } @@ -1306,9 +1306,9 @@ { %<trace> \trace_push:nnn { regex } { 1 } { @@_escape_use:nnnn } \__tl_build:Nw \l_@@_internal_a_tl - \cs_set_nopar:Npn \@@_escape_unescaped:N ##1 { #1 } - \cs_set_nopar:Npn \@@_escape_escaped:N ##1 { #2 } - \cs_set_nopar:Npn \@@_escape_raw:N ##1 { #3 } + \cs_set:Npn \@@_escape_unescaped:N ##1 { #1 } + \cs_set:Npn \@@_escape_escaped:N ##1 { #2 } + \cs_set:Npn \@@_escape_raw:N ##1 { #3 } \int_set:Nn \tex_escapechar:D { 92 } \__str_gset_other:Nn \g_@@_internal_tl { #4 } \tl_set:Nx \l_@@_internal_b_tl @@ -1337,7 +1337,7 @@ { \@@_escape_unescaped:N #1 } \@@_escape_loop:N } -\cs_new_nopar:cpn { @@_escape_ \c_backslash_str :w } +\cs_new:cpn { @@_escape_ \c_backslash_str :w } \@@_escape_loop:N #1 { \cs_if_exist_use:cF { @@_escape_/\token_to_str:N #1:w } @@ -1372,24 +1372,24 @@ % |\t| take their meaning here. % \begin{macrocode} \cs_new_eq:NN \@@_escape_break:w \__prg_break: -\cs_new_nopar:cpn { @@_escape_/break:w } +\cs_new:cpn { @@_escape_/break:w } { \if_false: { \fi: } \__msg_kernel_error:nn { regex } { trailing-backslash } \exp_after:wN \use_none:n \exp_after:wN { \if_false: } \fi: } -\cs_new_nopar:cpn { @@_escape_~:w } { } -\cs_new_nopar:cpx { @@_escape_/a:w } +\cs_new:cpn { @@_escape_~:w } { } +\cs_new:cpx { @@_escape_/a:w } { \exp_not:N \@@_escape_raw:N \iow_char:N \^^G } -\cs_new_nopar:cpx { @@_escape_/t:w } +\cs_new:cpx { @@_escape_/t:w } { \exp_not:N \@@_escape_raw:N \iow_char:N \^^I } -\cs_new_nopar:cpx { @@_escape_/n:w } +\cs_new:cpx { @@_escape_/n:w } { \exp_not:N \@@_escape_raw:N \iow_char:N \^^J } -\cs_new_nopar:cpx { @@_escape_/f:w } +\cs_new:cpx { @@_escape_/f:w } { \exp_not:N \@@_escape_raw:N \iow_char:N \^^L } -\cs_new_nopar:cpx { @@_escape_/r:w } +\cs_new:cpx { @@_escape_/r:w } { \exp_not:N \@@_escape_raw:N \iow_char:N \^^M } -\cs_new_nopar:cpx { @@_escape_/e:w } +\cs_new:cpx { @@_escape_/e:w } { \exp_not:N \@@_escape_raw:N \iow_char:N \^^[ } % \end{macrocode} % \end{macro} @@ -1444,7 +1444,7 @@ % \end{macrocode} % \end{macro} % \end{macro} -% +% ^^A todo: use char_generate in above and rest of file % \begin{macro}[aux]{\@@_escape_x_test:N, \@@_escape_x_testii:N} % Find out whether the first character is a left brace (allowing any % number of hexadecimal digits), or not (allowing up to two @@ -1812,7 +1812,7 @@ % and special characters are normal. Also, for every raw character, we % must look ahead for a possible raw dash. % \begin{macrocode} -\cs_new_nopar:Npn \@@_if_in_class:TF +\cs_new:Npn \@@_if_in_class:TF { \if_int_odd:w \l_@@_mode_int \exp_after:wN \use_i:nn @@ -1827,7 +1827,7 @@ % Right braces are special only directly inside control sequences (at % the inner-most level of nesting, not counting groups). % \begin{macrocode} -\cs_new_nopar:Npn \@@_if_in_cs:TF +\cs_new:Npn \@@_if_in_cs:TF { \if_int_odd:w \l_@@_mode_int \exp_after:wN \use_ii:nn @@ -1846,7 +1846,7 @@ % Assertions are only allowed in modes $0$, $-2$, and $-6$, % \emph{i.e.}, even, non-positive modes. % \begin{macrocode} -\cs_new_nopar:Npn \@@_if_in_class_or_catcode:TF +\cs_new:Npn \@@_if_in_class_or_catcode:TF { \if_int_odd:w \l_@@_mode_int \exp_after:wN \use_i:nn @@ -1867,7 +1867,7 @@ % it applies (modes $23$ and $63$). This is used to tweak how left % brackets behave in modes $2$ and $6$. % \begin{macrocode} -\cs_new_nopar:Npn \@@_if_within_catcode:TF +\cs_new:Npn \@@_if_within_catcode:TF { \if_int_compare:w \l_@@_mode_int > \c_zero \exp_after:wN \use_i:nn @@ -1925,17 +1925,17 @@ % the end, make sure there are no dangling classes nor groups, close % the last branch: we are done building \cs{l_@@_internal_regex}. % \begin{macrocode} -\cs_new_protected_nopar:Npn \@@_compile:w +\cs_new_protected:Npn \@@_compile:w { \__tl_build_x:Nw \l_@@_internal_regex \int_zero:N \l_@@_group_level_int \int_set_eq:NN \l_@@_default_catcodes_int \c_@@_all_catcodes_int \int_set_eq:NN \l_@@_catcodes_int \l_@@_default_catcodes_int - \cs_set_nopar:Npn \@@_item_equal:n { \@@_item_caseful_equal:n } - \cs_set_nopar:Npn \@@_item_range:nn { \@@_item_caseful_range:nn } + \cs_set:Npn \@@_item_equal:n { \@@_item_caseful_equal:n } + \cs_set:Npn \@@_item_range:nn { \@@_item_caseful_range:nn } \__tl_build_one:n { \@@_branch:n { \if_false: } \fi: } } -\cs_new_protected_nopar:Npn \@@_compile_end: +\cs_new_protected:Npn \@@_compile_end: { \@@_if_in_class:TF { @@ -2146,11 +2146,11 @@ % arguments to \cs{@@_compile_quantifier_lazyness:nnNN}, $-1$ means % that there is no upper bound on the number of repetitions. % \begin{macrocode} -\cs_new_protected_nopar:cpn { @@_compile_quantifier_?:w } +\cs_new_protected:cpn { @@_compile_quantifier_?:w } { \@@_compile_quantifier_lazyness:nnNN { 0 } { 1 } } -\cs_new_protected_nopar:cpn { @@_compile_quantifier_*:w } +\cs_new_protected:cpn { @@_compile_quantifier_*:w } { \@@_compile_quantifier_lazyness:nnNN { 0 } { -1 } } -\cs_new_protected_nopar:cpn { @@_compile_quantifier_+:w } +\cs_new_protected:cpn { @@_compile_quantifier_+:w } { \@@_compile_quantifier_lazyness:nnNN { 1 } { -1 } } % \end{macrocode} % \end{macro} @@ -2348,13 +2348,13 @@ % \cs{@@_prop_.:}, which matches any character or control % sequence, and refuses $-2$ (end-marker). % \begin{macrocode} -\cs_new_protected_nopar:cpx { @@_compile_.: } +\cs_new_protected:cpx { @@_compile_.: } { \exp_not:N \@@_if_in_class:TF { \@@_compile_raw:N . } { \@@_compile_one:x \exp_not:c { @@_prop_.: } } } -\cs_new_protected_nopar:cpn { @@_prop_.: } +\cs_new_protected:cpn { @@_prop_.: } { \if_int_compare:w \l_@@_current_char_int > - \c_two \exp_after:wN \@@_break_true:w @@ -2379,9 +2379,9 @@ % \begin{macrocode} \cs_set_protected:Npn \@@_tmp:w #1#2 { - \cs_new_protected_nopar:cpx { @@_compile_/#1: } + \cs_new_protected:cpx { @@_compile_/#1: } { \@@_compile_one:x \exp_not:c { @@_prop_#1: } } - \cs_new_protected_nopar:cpx { @@_compile_/#2: } + \cs_new_protected:cpx { @@_compile_/#2: } { \@@_compile_one:x { \@@_item_reverse:n \exp_not:c { @@_prop_#1: } } @@ -2392,7 +2392,7 @@ \@@_tmp:w s S \@@_tmp:w v V \@@_tmp:w w W -\cs_new_protected_nopar:cpn { @@_compile_/N: } +\cs_new_protected:cpn { @@_compile_/N: } { \@@_compile_one:x \@@_prop_N: } % \end{macrocode} % \end{macro} @@ -2420,7 +2420,7 @@ } \cs_set_protected:Npn \@@_tmp:w #1#2 { - \cs_new_protected_nopar:cpn { @@_compile_/#1: } + \cs_new_protected:cpn { @@_compile_/#1: } { \@@_compile_anchor:NF #2 { \@@_compile_raw_error:N #1 } } } \@@_tmp:w A \l_@@_min_pos_int @@ -2429,7 +2429,7 @@ \@@_tmp:w z \l_@@_max_pos_int \cs_set_protected:Npn \@@_tmp:w #1#2 { - \cs_new_protected_nopar:cpn { @@_compile_#1: } + \cs_new_protected:cpn { @@_compile_#1: } { \@@_compile_anchor:NF #2 { \@@_compile_raw:N #1 } } } \exp_args:Nx \@@_tmp:w { \iow_char:N \^ } \l_@@_min_pos_int @@ -2446,7 +2446,7 @@ % knowing what precedes in the token list, this requires more % information, namely, the knowledge of the last character code. % \begin{macrocode} -\cs_new_protected_nopar:cpn { @@_compile_/b: } +\cs_new_protected:cpn { @@_compile_/b: } { \@@_if_in_class_or_catcode:TF { \@@_compile_raw_error:N b } @@ -2455,7 +2455,7 @@ { \@@_assertion:Nn \c_true_bool { \@@_b_test: } } } } -\cs_new_protected_nopar:cpn { @@_compile_/B: } +\cs_new_protected:cpn { @@_compile_/B: } { \@@_if_in_class_or_catcode:TF { \@@_compile_raw_error:N B } @@ -2501,7 +2501,7 @@ % pre-expand the catcode as an optimization. Otherwise (modes $0$, % $-2$ and $-6$) just parse the class. The mode is updated later. % \begin{macrocode} -\cs_new_protected_nopar:cpn { @@_compile_[: } +\cs_new_protected:cpn { @@_compile_[: } { \@@_if_in_class:TF { \@@_compile_class_posix_test:w } @@ -2524,7 +2524,7 @@ % leading |^|. The auxiliary \cs{@@_compile_class:TFNN} also % checks for a leading |]| which has a special meaning. % \begin{macrocode} -\cs_new_protected_nopar:Npn \@@_compile_class_normal:w +\cs_new_protected:Npn \@@_compile_class_normal:w { \@@_compile_class:TFNN { \@@_class:NnnnN \c_true_bool } @@ -2710,7 +2710,7 @@ % denoting special groups, and run the code for the corresponding % special group. % \begin{macrocode} -\cs_new_protected_nopar:cpn { @@_compile_(: } +\cs_new_protected:cpn { @@_compile_(: } { \@@_if_in_class:TF { \@@_compile_raw:N ( } { \@@_compile_lparen:w } @@ -2740,7 +2740,7 @@ % In a class, the pipe is not special. Otherwise, end the current % branch and open another one. % \begin{macrocode} -\cs_new_protected_nopar:cpn { @@_compile_|: } +\cs_new_protected:cpn { @@_compile_|: } { \@@_if_in_class:TF { \@@_compile_raw:N | } { @@ -2754,7 +2754,7 @@ % \begin{macro}[aux]{\@@_compile_):} % Within a class, parentheses are not special. Outside, close a group. % \begin{macrocode} -\cs_new_protected_nopar:cpn { @@_compile_): } +\cs_new_protected:cpn { @@_compile_): } { \@@_if_in_class:TF { \@@_compile_raw:N ) } { \@@_compile_group_end: } @@ -2768,9 +2768,9 @@ % compilation; for those groups, the harder parts will come when % building. % \begin{macrocode} -\cs_new_protected_nopar:cpn { @@_compile_special_group_::w } +\cs_new_protected:cpn { @@_compile_special_group_::w } { \@@_compile_group_begin:N \@@_group_no_capture:nnnN } -\cs_new_protected_nopar:cpn { @@_compile_special_group_|:w } +\cs_new_protected:cpn { @@_compile_special_group_|:w } { \@@_compile_group_begin:N \@@_group_resetting:nnnN } % \end{macrocode} % \end{macro} @@ -2786,8 +2786,8 @@ { \str_if_eq:nnTF { #1 #2 } { \@@_compile_special:N ) } { - \cs_set_nopar:Npn \@@_item_equal:n { \@@_item_caseless_equal:n } - \cs_set_nopar:Npn \@@_item_range:nn { \@@_item_caseless_range:nn } + \cs_set:Npn \@@_item_equal:n { \@@_item_caseless_equal:n } + \cs_set:Npn \@@_item_range:nn { \@@_item_caseless_range:nn } } { \__msg_kernel_warning:nnx { regex } { unknown-option } { (?i #2 } @@ -2797,13 +2797,13 @@ #1 #2 } } -\cs_new_protected_nopar:cpn { @@_compile_special_group_-:w } #1#2#3#4 +\cs_new_protected:cpn { @@_compile_special_group_-:w } #1#2#3#4 { \str_if_eq:nnTF { #1 #2 #3 #4 } { \@@_compile_raw:N i \@@_compile_special:N ) } { - \cs_set_nopar:Npn \@@_item_equal:n { \@@_item_caseful_equal:n } - \cs_set_nopar:Npn \@@_item_range:nn { \@@_item_caseful_range:nn } + \cs_set:Npn \@@_item_equal:n { \@@_item_caseful_equal:n } + \cs_set:Npn \@@_item_range:nn { \@@_item_caseful_range:nn } } { \__msg_kernel_warning:nnx { regex } { unknown-option } { (?-#2#4 } @@ -2901,7 +2901,7 @@ \tex_advance:D \l_@@_catcodes_int #1 \fi: } -\cs_new_protected_nopar:Npn \@@_compile_c_lbrack_end: +\cs_new_protected:Npn \@@_compile_c_lbrack_end: { \if_meaning:w \c_false_bool \l_@@_catcodes_bool \int_set:Nn \l_@@_catcodes_int @@ -2917,7 +2917,7 @@ % to forbid nesting |\c|. Additionally, disable submatch tracking % since groups don't escape the scope of |\c{...}|. % \begin{macrocode} -\cs_new_protected_nopar:cpn { @@_compile_c_ \c_left_brace_str :w } +\cs_new_protected:cpn { @@_compile_c_ \c_left_brace_str :w } { \@@_compile:w \@@_disable_submatches: @@ -3079,7 +3079,7 @@ % allowed in the same contexts as |\b|. At the compilation stage, we % leave it as a single control sequence, defined later. % \begin{macrocode} -\cs_new_protected_nopar:cpn { @@_compile_/K: } +\cs_new_protected:cpn { @@_compile_/K: } { \int_compare:nNnTF \l_@@_mode_int = \c_zero { \__tl_build_one:n { \@@_command_K: } } @@ -3098,25 +3098,25 @@ \cs_new_protected:Npn \@@_show:Nx #1#2 { \__tl_build:Nw \l_@@_internal_a_tl - \cs_set_protected_nopar:Npn \@@_branch:n + \cs_set_protected:Npn \@@_branch:n { \seq_pop_right:NN \l_@@_show_prefix_seq \l_@@_internal_a_tl \@@_show_one:n { +-branch } \seq_put_right:No \l_@@_show_prefix_seq \l_@@_internal_a_tl \use:n } - \cs_set_protected_nopar:Npn \@@_group:nnnN + \cs_set_protected:Npn \@@_group:nnnN { \@@_show_group_aux:nnnnN { } } - \cs_set_protected_nopar:Npn \@@_group_no_capture:nnnN + \cs_set_protected:Npn \@@_group_no_capture:nnnN { \@@_show_group_aux:nnnnN { ~(no~capture) } } - \cs_set_protected_nopar:Npn \@@_group_resetting:nnnN + \cs_set_protected:Npn \@@_group_resetting:nnnN { \@@_show_group_aux:nnnnN { ~(resetting) } } \cs_set_eq:NN \@@_class:NnnnN \@@_show_class:NnnnN - \cs_set_protected_nopar:Npn \@@_command_K: + \cs_set_protected:Npn \@@_command_K: { \@@_show_one:n { reset~match~start~(\iow_char:N\\K) } } \cs_set_protected:Npn \@@_assertion:Nn ##1##2 { \@@_show_one:n { \bool_if:NF ##1 { negative~ } assertion:~##2 } } - \cs_set_nopar:Npn \@@_b_test: { word~boundary } + \cs_set:Npn \@@_b_test: { word~boundary } \cs_set_eq:NN \@@_anchor:N \@@_show_anchor_to_str:N \cs_set_protected:Npn \@@_item_caseful_equal:n ##1 { \@@_show_one:n { char~code~\int_eval:n{##1} } } @@ -3449,14 +3449,14 @@ % the left-end and right-end of each group without help from \TeX{}'s % grouping. % \begin{macrocode} -\cs_new_protected_nopar:Npn \@@_push_lr_states: +\cs_new_protected:Npn \@@_push_lr_states: { \seq_push:No \l_@@_left_state_seq { \int_use:N \l_@@_left_state_int } \seq_push:No \l_@@_right_state_seq { \int_use:N \l_@@_right_state_int } } -\cs_new_protected_nopar:Npn \@@_pop_lr_states: +\cs_new_protected:Npn \@@_pop_lr_states: { \seq_pop:NN \l_@@_left_state_seq \l_@@_internal_a_tl \int_set:Nn \l_@@_left_state_int \l_@@_internal_a_tl @@ -3477,13 +3477,13 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_toks_put_left:Nx #1#2 { - \cs_set_nopar:Npx \@@_tmp:w { #2 } + \cs_set:Npx \@@_tmp:w { #2 } \tex_toks:D #1 \exp_after:wN \exp_after:wN \exp_after:wN { \exp_after:wN \@@_tmp:w \tex_the:D \tex_toks:D #1 } } \cs_new_protected:Npn \@@_toks_put_right:Nx #1#2 { - \cs_set_nopar:Npx \@@_tmp:w {#2} + \cs_set:Npx \@@_tmp:w {#2} \tex_toks:D #1 \exp_after:wN { \tex_the:D \tex_toks:D \exp_after:wN #1 \@@_tmp:w } } @@ -3517,7 +3517,7 @@ % \texttt{right} state is the new empty state, and the \texttt{left} % state points to the previously \enquote{current} state. % \begin{macrocode} -\cs_new_protected_nopar:Npn \@@_build_new_state: +\cs_new_protected:Npn \@@_build_new_state: { %<*trace> \trace:nnx { regex } { 2 } @@ -3574,7 +3574,7 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_class:NnnnN #1#2#3#4#5 { - \cs_set_nopar:Npx \@@_tests_action_cost:n ##1 + \cs_set:Npx \@@_tests_action_cost:n ##1 { \exp_not:n { \exp_not:n {#2} } \bool_if:NTF #1 @@ -3718,7 +3718,7 @@ #1 } } -\cs_new_protected_nopar:Npn \@@_group_no_capture:nnnN +\cs_new_protected:Npn \@@_group_no_capture:nnnN { \@@_group_aux:nnnnN { -1 } } % \end{macrocode} % \end{macro} @@ -4001,7 +4001,7 @@ \exp_after:wN \@@_break_true:w \fi: } -\cs_new_protected_nopar:Npn \@@_b_test: +\cs_new_protected:Npn \@@_b_test: { \group_begin: \int_set_eq:NN \l_@@_current_char_int \l_@@_last_char_int @@ -4017,7 +4017,7 @@ % Change the starting point of the $0$-th submatch (full match), and % transition to a new state, pretending that this is a fresh thread. % \begin{macrocode} -\cs_new_protected_nopar:Npn \@@_command_K: +\cs_new_protected:Npn \@@_command_K: { \@@_build_new_state: \@@_toks_put_right:Nx \l_@@_left_state_int @@ -4294,10 +4294,10 @@ % boundaries. Then call \cs{@@_match_loop:}, which runs through the % query until the end or until a successful match breaks early. % \begin{macrocode} -\cs_new_protected_nopar:Npn \@@_match_once: +\cs_new_protected:Npn \@@_match_once: { \if_meaning:w \c_true_bool \l_@@_empty_success_bool - \cs_set_nopar:Npn \@@_if_two_empty_matches:F + \cs_set:Npn \@@_if_two_empty_matches:F { \int_compare:nNnF \l_@@_start_pos_int = \l_@@_current_pos_int } \else: \cs_set_eq:NN \@@_if_two_empty_matches:F \use:n @@ -4322,7 +4322,7 @@ % overall matching is successful as soon as any match % succeeds. Perform the action |#1|, then find the next match. % \begin{macrocode} -\cs_new_protected_nopar:Npn \@@_single_match: +\cs_new_protected:Npn \@@_single_match: { \tl_set:Nn \l_@@_every_match_tl { \bool_gset_eq:NN \g_@@_success_bool \l_@@_match_success_bool } @@ -4355,7 +4355,7 @@ % \cs{@@_match_once:} matches. We explain the \texttt{fresh_thread} % business when describing \cs{@@_action_wildcard:}. % \begin{macrocode} -\cs_new_protected_nopar:Npn \@@_match_loop: +\cs_new_protected:Npn \@@_match_loop: { \tex_advance:D \l_@@_step_int \c_two \int_incr:N \l_@@_current_pos_int @@ -4421,7 +4421,7 @@ % the stretch components, and we need a conversion to avoid \TeX{}'s % \enquote{incompatible glue units} error. % \begin{macrocode} -\cs_new_protected_nopar:Npn \@@_query_get: +\cs_new_protected:Npn \@@_query_get: { \l_@@_current_char_int = \etex_mutoglue:D \tex_muskip:D \l_@@_current_pos_int @@ -4441,7 +4441,7 @@ % state is marked as $\texttt{step}+1$: any thread hitting it at that % point will be terminated. % \begin{macrocode} -\cs_new_protected_nopar:Npn \@@_use_state: +\cs_new_protected:Npn \@@_use_state: { %<*trace> \trace:nnx { regex } { 2 } { state~\int_use:N \l_@@_current_state_int } @@ -4484,7 +4484,7 @@ % \cs{l_@@_fresh_thread_bool} may be skipped by a successful % thread, hence we had to add it to \cs{@@_match_loop:} too. % \begin{macrocode} -\cs_new_protected_nopar:Npn \@@_action_start_wildcard: +\cs_new_protected:Npn \@@_action_start_wildcard: { \bool_set_true:N \l_@@_fresh_thread_bool \@@_action_free:n {1} @@ -4508,9 +4508,9 @@ % \enquote{normal} version will revisit a state when within the thread % itself. % \begin{macrocode} -\cs_new_protected_nopar:Npn \@@_action_free:n +\cs_new_protected:Npn \@@_action_free:n { \@@_action_free_aux:nn { > \l_@@_step_int \else: } } -\cs_new_protected_nopar:Npn \@@_action_free_group:n +\cs_new_protected:Npn \@@_action_free_group:n { \@@_action_free_aux:nn { < \l_@@_step_int } } \cs_new_protected:Npn \@@_action_free_aux:nn #1#2 { @@ -4562,7 +4562,7 @@ \tex_skip:D \l_@@_max_active_int = #1 sp \scan_stop: \int_incr:N \l_@@_max_active_int } -\cs_new_protected_nopar:Npn \@@_store_submatches: +\cs_new_protected:Npn \@@_store_submatches: { \tex_toks:D \l_@@_max_active_int \exp_after:wN { \l_@@_current_submatches_prop } @@ -4577,9 +4577,9 @@ % relevant functions to remove their argument and do nothing % with it. % \begin{macrocode} -\cs_new_protected_nopar:Npn \@@_disable_submatches: +\cs_new_protected:Npn \@@_disable_submatches: { - \cs_set_protected_nopar:Npn \@@_store_submatches: { } + \cs_set_protected:Npn \@@_store_submatches: { } \cs_set_protected:Npn \@@_action_submatch:n ##1 { } } % \end{macrocode} @@ -4607,7 +4607,7 @@ % pursued further. The values stored here may be overwritten by a % later success of a path with higher precedence. % \begin{macrocode} -\cs_new_protected_nopar:Npn \@@_action_success: +\cs_new_protected:Npn \@@_action_success: { \@@_if_two_empty_matches:F { @@ -4939,7 +4939,7 @@ } { \@@_replacement_error:NNN c #1#2 } } -\cs_new_protected_nopar:cpn { @@_replacement_c_ \c_left_brace_str :w } +\cs_new_protected:cpn { @@_replacement_c_ \c_left_brace_str :w } { \if_case:w \l_@@_replacement_csnames_int \__tl_build_one:n @@ -5028,7 +5028,7 @@ % query, and to expand their contents to tokens of the query. % \begin{macrocode} \char_set_catcode_active:N \^^@ - \cs_new_protected_nopar:Npn \@@_replacement_c_A:w + \cs_new_protected:Npn \@@_replacement_c_A:w { \@@_replacement_char:nNN { \exp_not:n { \exp_not:N ^^@ } } } % \end{macrocode} % \end{macro} @@ -5043,7 +5043,7 @@ % with \pkg{l3tl-analysis}. % \begin{macrocode} \char_set_catcode_group_begin:N \^^@ - \cs_new_protected_nopar:Npn \@@_replacement_c_B:w + \cs_new_protected:Npn \@@_replacement_c_B:w { \if_int_compare:w \l_@@_replacement_csnames_int = \c_zero \int_incr:N \l_@@_balance_int @@ -5070,7 +5070,7 @@ % correct category. % \begin{macrocode} \char_set_catcode_math_subscript:N \^^@ - \cs_new_protected_nopar:Npn \@@_replacement_c_D:w + \cs_new_protected:Npn \@@_replacement_c_D:w { \@@_replacement_char:nNN { ^^@ } } % \end{macrocode} % \end{macro} @@ -5080,7 +5080,7 @@ % produces the bare end-group token. % \begin{macrocode} \char_set_catcode_group_end:N \^^@ - \cs_new_protected_nopar:Npn \@@_replacement_c_E:w + \cs_new_protected:Npn \@@_replacement_c_E:w { \if_int_compare:w \l_@@_replacement_csnames_int = \c_zero \int_decr:N \l_@@_balance_int @@ -5095,7 +5095,7 @@ % Simply \tn{lowercase} a letter null byte to produce an arbitrary letter. % \begin{macrocode} \char_set_catcode_letter:N \^^@ - \cs_new_protected_nopar:Npn \@@_replacement_c_L:w + \cs_new_protected:Npn \@@_replacement_c_L:w { \@@_replacement_char:nNN { ^^@ } } % \end{macrocode} % \end{macro} @@ -5104,7 +5104,7 @@ % No surprise here, we lowercase the null math toggle. % \begin{macrocode} \char_set_catcode_math_toggle:N \^^@ - \cs_new_protected_nopar:Npn \@@_replacement_c_M:w + \cs_new_protected:Npn \@@_replacement_c_M:w { \@@_replacement_char:nNN { ^^@ } } % \end{macrocode} % \end{macro} @@ -5113,7 +5113,7 @@ % Lowercase an other null byte. % \begin{macrocode} \char_set_catcode_other:N \^^@ - \cs_new_protected_nopar:Npn \@@_replacement_c_O:w + \cs_new_protected:Npn \@@_replacement_c_O:w { \@@_replacement_char:nNN { ^^@ } } % \end{macrocode} % \end{macro} @@ -5127,7 +5127,7 @@ % parameter character would be doubled. % \begin{macrocode} \char_set_catcode_parameter:N \^^@ - \cs_new_protected_nopar:Npn \@@_replacement_c_P:w + \cs_new_protected:Npn \@@_replacement_c_P:w { \@@_replacement_char:nNN { \exp_not:n { \exp_not:n { ^^@^^@^^@^^@ } } } @@ -5162,7 +5162,7 @@ % trouble in alignment settings. % \begin{macrocode} \char_set_catcode_alignment:N \^^@ - \cs_new_protected_nopar:Npn \@@_replacement_c_T:w + \cs_new_protected:Npn \@@_replacement_c_T:w { \@@_replacement_char:nNN { ^^@ } } % \end{macrocode} % \end{macro} @@ -5172,7 +5172,7 @@ % math superscript |^^@|. % \begin{macrocode} \char_set_catcode_math_superscript:N \^^@ - \cs_new_protected_nopar:Npn \@@_replacement_c_U:w + \cs_new_protected:Npn \@@_replacement_c_U:w { \@@_replacement_char:nNN { ^^@ } } % \end{macrocode} % \end{macro} @@ -5212,17 +5212,17 @@ % Compile, then store the result in the user variable with the % appropriate assignment function. % \begin{macrocode} -\cs_new_protected_nopar:Npn \regex_set:Nn #1#2 +\cs_new_protected:Npn \regex_set:Nn #1#2 { \@@_compile:n {#2} \tl_set_eq:NN #1 \l_@@_internal_regex } -\cs_new_protected_nopar:Npn \regex_gset:Nn #1#2 +\cs_new_protected:Npn \regex_gset:Nn #1#2 { \@@_compile:n {#2} \tl_gset_eq:NN #1 \l_@@_internal_regex } -\cs_new_protected_nopar:Npn \regex_const:Nn #1#2 +\cs_new_protected:Npn \regex_const:Nn #1#2 { \@@_compile:n {#2} \tl_const:Nx #1 { \exp_not:o \l_@@_internal_regex } @@ -5364,7 +5364,7 @@ % \cs{prg_return_true:} as appropriate to whether a match was found or % not. It is used by all user conditionals. % \begin{macrocode} -\cs_new_protected_nopar:Npn \@@_return: +\cs_new_protected:Npn \@@_return: { \if_meaning:w \c_true_bool \g_@@_success_bool \prg_return_true: @@ -5567,7 +5567,7 @@ % end, store the information about the position at which the match % attempt started, as a shrink component. % \begin{macrocode} -\cs_new_protected_nopar:Npn \@@_extract: +\cs_new_protected:Npn \@@_extract: { \if_meaning:w \c_true_bool \g_@@_success_bool \int_set_eq:NN \l_@@_zeroth_submatch_int \l_@@_submatch_int @@ -5698,7 +5698,7 @@ % \cs{l_@@_internal_a_tl}, adding the appropriate braces to produce % a balanced result. And end the group. % \begin{macrocode} -\cs_new_protected_nopar:Npn \@@_group_end_replace:N #1 +\cs_new_protected:Npn \@@_group_end_replace:N #1 { \if_int_compare:w \l_@@_balance_int = \c_zero \else: diff --git a/Master/texmf-dist/source/latex/l3experimental/l3str/l3str-convert.dtx b/Master/texmf-dist/source/latex/l3experimental/l3str/l3str-convert.dtx index cda42b33ccc..2412dead14b 100644 --- a/Master/texmf-dist/source/latex/l3experimental/l3str/l3str-convert.dtx +++ b/Master/texmf-dist/source/latex/l3experimental/l3str/l3str-convert.dtx @@ -35,7 +35,7 @@ % %<*driver|package> \RequirePackage{expl3} -\GetIdInfo$Id: l3str-convert.dtx 6443 2016-03-24 10:59:09Z joseph $ +\GetIdInfo$Id: l3str-convert.dtx 6699 2016-09-07 16:03:15Z bruno $ {L3 Experimental string encoding conversions} %</driver|package> %<*driver> @@ -207,11 +207,6 @@ % encoding. Instead, the \meta{false code} is performed. % \end{function} % -% \begin{variable}{\c_max_char_int} -% The maximum valid character code, $255$ for pdf\TeX{}, and $1114111$ -% for \XeTeX{} and \LuaTeX{}. -% \end{variable} -% % \section{Internal string functions} % % \begin{function}{\__str_gset_other:Nn} @@ -313,29 +308,12 @@ % % \subsubsection{Variables and constants} % -% \begin{variable}{\c_max_char_int} -% The maximum valid character code is $255$ for pdf\TeX{}, and -% $1114111$ for other engines. -% \begin{macrocode} -\int_const:Nn \c_max_char_int - { - \bool_if:nTF - { - \sys_if_engine_luatex_p: || - \sys_if_engine_xetex_p: - } - { "10FFFF } - { "FF } - } -% \end{macrocode} -% \end{variable} -% % \begin{macro}{\@@_tmp:w} % \begin{variable}{\l_@@_internal_int} % \begin{variable}{\l_@@_internal_tl} % Internal scratch space for some functions. % \begin{macrocode} -\cs_new_protected_nopar:Npn \@@_tmp:w { } +\cs_new_protected:Npn \@@_tmp:w { } \tl_new:N \l_@@_internal_tl \int_new:N \l_@@_internal_int % \end{macrocode} @@ -425,7 +403,7 @@ % \end{variable} % % \subsubsection{Escaping spaces} -% +% ^^A todo: use char_generate in this file % \begin{macro}[int]{\@@_gset_other:Nn} % \begin{macro}[aux,EXP]{\@@_gset_other_loop:w} % \begin{macro}[aux,EXP]{\@@_gset_other_end:w} @@ -502,7 +480,7 @@ \fi: \@@_if_contains_char_aux:NN #1 } -\cs_new_nopar:Npn \@@_if_contains_char_true: +\cs_new:Npn \@@_if_contains_char_true: { \__prg_break:n { \prg_return_true: \use_none:n } } % \end{macrocode} % \end{macro} @@ -611,7 +589,7 @@ % \begin{macrocode} \cs_new:Npn \@@_output_byte:n #1 { \@@_output_byte:w #1 \@@_output_end: } -\cs_new_nopar:Npn \@@_output_byte:w +\cs_new:Npn \@@_output_byte:w { \exp_after:wN \exp_after:wN \exp_after:wN \use_i:nnn @@ -619,13 +597,13 @@ } \cs_new:Npn \@@_output_hexadecimal:n #1 { \@@_output_hexadecimal:w #1 \@@_output_end: } -\cs_new_nopar:Npn \@@_output_hexadecimal:w +\cs_new:Npn \@@_output_hexadecimal:w { \exp_after:wN \exp_after:wN \exp_after:wN \use_none:n \cs:w c_@@_byte_ \__int_value:w \__int_eval:w } -\cs_new_nopar:Npn \@@_output_end: +\cs_new:Npn \@@_output_end: { \__int_eval_end: _tl \cs_end: } % \end{macrocode} % \end{macro} @@ -794,9 +772,9 @@ % act on \cs{g_@@_result_tl}. Errors are silenced for the conditional % functions by redefining \cs{@@_if_flag_error:nnx} locally. % \begin{macrocode} -\cs_new_protected_nopar:Npn \str_set_convert:Nnnn +\cs_new_protected:Npn \str_set_convert:Nnnn { \@@_convert:nNNnnn { } \tl_set_eq:NN } -\cs_new_protected_nopar:Npn \str_gset_convert:Nnnn +\cs_new_protected:Npn \str_gset_convert:Nnnn { \@@_convert:nNNnnn { } \tl_gset_eq:NN } \prg_new_protected_conditional:Npnn \str_set_convert:Nnnn #1#2#3#4 { T , F , TF } @@ -1077,7 +1055,7 @@ \sys_if_engine_xetex_p: } { - \cs_new_protected_nopar:Npn \@@_convert_unescape_: + \cs_new_protected:Npn \@@_convert_unescape_: { \flag_clear:n { str_byte } \tl_gset:Nx \g_@@_result_tl @@ -1085,7 +1063,7 @@ \@@_if_flag_error:nnx { str_byte } { non-byte } { bytes } } } - { \cs_new_protected_nopar:Npn \@@_convert_unescape_: { } } + { \cs_new_protected:Npn \@@_convert_unescape_: { } } \cs_new_eq:NN \@@_convert_unescape_bytes: \@@_convert_unescape_: % \end{macrocode} % \end{macro} @@ -1096,7 +1074,7 @@ % The simplest form of escape leaves the bytes from the previous step % of the conversion unchanged. % \begin{macrocode} -\cs_new_protected_nopar:Npn \@@_convert_escape_: { } +\cs_new_protected:Npn \@@_convert_escape_: { } \cs_new_eq:NN \@@_convert_escape_bytes: \@@_convert_escape_: % \end{macrocode} % \end{macro} @@ -1108,7 +1086,7 @@ % \begin{macro}[aux, rEXP]{\@@_decode_native_char:N} % Convert each character to its character code, one at a time. % \begin{macrocode} -\cs_new_protected_nopar:Npn \@@_convert_decode_: +\cs_new_protected:Npn \@@_convert_decode_: { \@@_convert_gmap:N \@@_decode_native_char:N } \cs_new:Npn \@@_decode_native_char:N #1 { #1 \s__tl \__int_value:w `#1 \s__tl } @@ -1147,7 +1125,7 @@ % $[0,\hexnum{10FFFF}]$. % \begin{macrocode} { - \cs_new_protected_nopar:Npn \@@_convert_encode_: + \cs_new_protected:Npn \@@_convert_encode_: { \__tl_gbuild_x:Nw \g_@@_result_tl \exp_after:wN \@@_encode_native_loop:w @@ -1172,7 +1150,7 @@ % which then triggers a pdf\TeX{}-specific error. % \begin{macrocode} { - \cs_new_protected_nopar:Npn \@@_convert_encode_: + \cs_new_protected:Npn \@@_convert_encode_: { \flag_clear:n { str_error } \@@_convert_gmap_internal:N \@@_encode_native_char:n @@ -1215,7 +1193,7 @@ % \cs{g_@@_result_tl} into a clist variable, as this avoids problems % with leading or trailing commas. % \begin{macrocode} -\cs_new_protected_nopar:Npn \@@_convert_decode_clist: +\cs_new_protected:Npn \@@_convert_decode_clist: { \clist_set:No \g_@@_result_tl \g_@@_result_tl \tl_gset:Nx \g_@@_result_tl @@ -1238,7 +1216,7 @@ % empty case, since \cs{tl_tail:N} does not trigger an error in this % case). % \begin{macrocode} -\cs_new_protected_nopar:Npn \@@_convert_encode_clist: +\cs_new_protected:Npn \@@_convert_encode_clist: { \@@_convert_gmap_internal:N \@@_encode_clist_char:n \tl_gset:Nx \g_@@_result_tl { \tl_tail:N \g_@@_result_tl } @@ -1288,9 +1266,9 @@ \cs_new_protected:Npn \@@_declare_eight_bit_encoding:nnn #1#2#3 { \tl_set:Nn \l_@@_internal_tl {#1} - \cs_new_protected_nopar:cpn { @@_convert_decode_#1: } + \cs_new_protected:cpn { @@_convert_decode_#1: } { \@@_convert_decode_eight_bit:n {#1} } - \cs_new_protected_nopar:cpn { @@_convert_encode_#1: } + \cs_new_protected:cpn { @@_convert_encode_#1: } { \@@_convert_encode_eight_bit:n {#1} } \tl_const:cn { c_@@_encoding_#1_tl } {#2} \tl_const:cn { c_@@_encoding_#1_missing_tl } {#3} @@ -1510,7 +1488,7 @@ % appending a |0| in all cases, and dropping it if it is alone. % \begin{macrocode} %<*hex> -\cs_new_protected_nopar:Npn \@@_convert_unescape_hex: +\cs_new_protected:Npn \@@_convert_unescape_hex: { \group_begin: \flag_clear:n { str_error } @@ -1684,7 +1662,7 @@ \char_set_catcode_other:N \^^M \tex_lowercase:D { - \cs_new_protected_nopar:Npn \@@_convert_unescape_string: + \cs_new_protected:Npn \@@_convert_unescape_string: { \group_begin: \flag_clear:n { str_byte } @@ -1782,7 +1760,7 @@ % Loop and convert each byte to hexadecimal. % \begin{macrocode} %<*hex> -\cs_new_protected_nopar:Npn \@@_convert_escape_hex: +\cs_new_protected:Npn \@@_convert_escape_hex: { \@@_convert_gmap:N \@@_escape_hex_char:N } \cs_new:Npn \@@_escape_hex_char:N #1 { \@@_output_hexadecimal:n { `#1 } } @@ -1806,7 +1784,7 @@ %<*name> \str_const:Nn \c_@@_escape_name_not_str { ! " $ & ' } %$ \str_const:Nn \c_@@_escape_name_str { {}/<>[] } -\cs_new_protected_nopar:Npn \@@_convert_escape_name: +\cs_new_protected:Npn \@@_convert_escape_name: { \@@_convert_gmap:N \@@_escape_name_char:N } \cs_new:Npn \@@_escape_name_char:N #1 { @@ -1846,7 +1824,7 @@ %<*string> \str_const:Nx \c_@@_escape_string_str { \c_backslash_str ( ) } -\cs_new_protected_nopar:Npn \@@_convert_escape_string: +\cs_new_protected:Npn \@@_convert_escape_string: { \@@_convert_gmap:N \@@_escape_string_char:N } \cs_new:Npn \@@_escape_string_char:N #1 { @@ -1890,7 +1868,7 @@ % different characters. % \begin{macrocode} %<*url> -\cs_new_protected_nopar:Npn \@@_convert_escape_url: +\cs_new_protected:Npn \@@_convert_escape_url: { \@@_convert_gmap:N \@@_escape_url_char:N } \cs_new:Npn \@@_escape_url_char:N #1 { @@ -1974,7 +1952,7 @@ % construction |\c_minus_one + \c_zero *| removes the spurious initial % continuation byte (better methods welcome). % \begin{macrocode} -\cs_new_protected_nopar:cpn { @@_convert_encode_utf8: } +\cs_new_protected:cpn { @@_convert_encode_utf8: } { \@@_convert_gmap_internal:N \@@_encode_utf_viii_char:n } \cs_new:Npn \@@_encode_utf_viii_char:n #1 { @@ -2148,7 +2126,7 @@ % auxiliary, which raises the appropriate error flag before ending the % mapping. % \begin{macrocode} -\cs_new_protected_nopar:cpn { @@_convert_decode_utf8: } +\cs_new_protected:cpn { @@_convert_decode_utf8: } { \flag_clear:n { str_error } \flag_clear:n { str_missing } @@ -2235,7 +2213,7 @@ \flag_raise:n { str_error } \int_use:N \c_@@_replacement_char_int } -\cs_new_nopar:Npn \@@_decode_utf_viii_end: +\cs_new:Npn \@@_decode_utf_viii_end: { \s__tl \flag_raise:n { str_missing } @@ -2295,14 +2273,14 @@ % compute the remainder, and output two bytes for the quotient and % remainder. % \begin{macrocode} - \cs_new_protected_nopar:cpn { @@_convert_encode_utf16: } + \cs_new_protected:cpn { @@_convert_encode_utf16: } { \@@_encode_utf_xvi_aux:N \@@_output_byte_pair_be:n \tl_gput_left:Nx \g_@@_result_tl { ^^fe ^^ff } } - \cs_new_protected_nopar:cpn { @@_convert_encode_utf16be: } + \cs_new_protected:cpn { @@_convert_encode_utf16be: } { \@@_encode_utf_xvi_aux:N \@@_output_byte_pair_be:n } - \cs_new_protected_nopar:cpn { @@_convert_encode_utf16le: } + \cs_new_protected:cpn { @@_convert_encode_utf16le: } { \@@_encode_utf_xvi_aux:N \@@_output_byte_pair_le:n } \cs_new_protected:Npn \@@_encode_utf_xvi_aux:N #1 { @@ -2423,11 +2401,11 @@ % little-endian, then loops over the string using % \cs{@@_decode_utf_xvi_pair:NN} described below. % \begin{macrocode} - \cs_new_protected_nopar:cpn { @@_convert_decode_utf16be: } + \cs_new_protected:cpn { @@_convert_decode_utf16be: } { \@@_decode_utf_xvi:Nw 1 \g_@@_result_tl \s__stop } - \cs_new_protected_nopar:cpn { @@_convert_decode_utf16le: } + \cs_new_protected:cpn { @@_convert_decode_utf16le: } { \@@_decode_utf_xvi:Nw 2 \g_@@_result_tl \s__stop } - \cs_new_protected_nopar:cpn { @@_convert_decode_utf16: } + \cs_new_protected:cpn { @@_convert_decode_utf16: } { \exp_after:wN \@@_decode_utf_xvi_bom:NN \g_@@_result_tl \s__stop \s__stop \s__stop @@ -2606,14 +2584,14 @@ % little-endian encodings are very similar, but the % \cs{@@_output_byte:n} instructions are reversed. % \begin{macrocode} - \cs_new_protected_nopar:cpn { @@_convert_encode_utf32: } + \cs_new_protected:cpn { @@_convert_encode_utf32: } { \@@_convert_gmap_internal:N \@@_encode_utf_xxxii_be:n \tl_gput_left:Nx \g_@@_result_tl { ^^00 ^^00 ^^fe ^^ff } } - \cs_new_protected_nopar:cpn { @@_convert_encode_utf32be: } + \cs_new_protected:cpn { @@_convert_encode_utf32be: } { \@@_convert_gmap_internal:N \@@_encode_utf_xxxii_be:n } - \cs_new_protected_nopar:cpn { @@_convert_encode_utf32le: } + \cs_new_protected:cpn { @@_convert_encode_utf32le: } { \@@_convert_gmap_internal:N \@@_encode_utf_xxxii_le:n } \cs_new:Npn \@@_encode_utf_xxxii_be:n #1 { @@ -2710,11 +2688,11 @@ % In the ending code, we check that there remains no byte: there % should be nothing left until the first \cs{s__stop}. Break the map. % \begin{macrocode} - \cs_new_protected_nopar:cpn { @@_convert_decode_utf32be: } + \cs_new_protected:cpn { @@_convert_decode_utf32be: } { \@@_decode_utf_xxxii:Nw 1 \g_@@_result_tl \s__stop } - \cs_new_protected_nopar:cpn { @@_convert_decode_utf32le: } + \cs_new_protected:cpn { @@_convert_decode_utf32le: } { \@@_decode_utf_xxxii:Nw 2 \g_@@_result_tl \s__stop } - \cs_new_protected_nopar:cpn { @@_convert_decode_utf32: } + \cs_new_protected:cpn { @@_convert_decode_utf32: } { \exp_after:wN \@@_decode_utf_xxxii_bom:NNNN \g_@@_result_tl \s__stop \s__stop \s__stop \s__stop \s__stop diff --git a/Master/texmf-dist/source/latex/l3experimental/l3str/l3str-format.dtx b/Master/texmf-dist/source/latex/l3experimental/l3str/l3str-format.dtx index 189ea896cc0..309c57a0f2e 100644 --- a/Master/texmf-dist/source/latex/l3experimental/l3str/l3str-format.dtx +++ b/Master/texmf-dist/source/latex/l3experimental/l3str/l3str-format.dtx @@ -35,7 +35,7 @@ % %<*driver|package> \RequirePackage{expl3} -\GetIdInfo$Id: l3str-format.dtx 6439 2016-03-23 12:03:41Z joseph $ +\GetIdInfo$Id: l3str-format.dtx 6589 2016-06-13 11:11:55Z joseph $ {L3 Experimental string formatting} %</driver|package> %<*driver> @@ -448,7 +448,7 @@ % Call \cs{@@_tl:NNNnnNn} to read the parsed \meta{format % specification}. Then convert the result to a string. % \begin{macrocode} -\cs_new_nopar:Npn \tl_format:Nn { \exp_args:No \tl_format:nn } +\cs_new:Npn \tl_format:Nn { \exp_args:No \tl_format:nn } \cs_generate_variant:Nn \tl_format:Nn { c } \cs_new:Npn \tl_format:nn #1#2 { diff --git a/Master/texmf-dist/source/latex/l3experimental/l3str/l3tl-analysis.dtx b/Master/texmf-dist/source/latex/l3experimental/l3str/l3tl-analysis.dtx index b33d81aedb2..838da42e278 100644 --- a/Master/texmf-dist/source/latex/l3experimental/l3str/l3tl-analysis.dtx +++ b/Master/texmf-dist/source/latex/l3experimental/l3str/l3tl-analysis.dtx @@ -35,7 +35,7 @@ % %<*driver|package> \RequirePackage{expl3} -\GetIdInfo$Id: l3tl-analysis.dtx 6443 2016-03-24 10:59:09Z joseph $ +\GetIdInfo$Id: l3tl-analysis.dtx 6589 2016-06-13 11:11:55Z joseph $ {L3 Experimental token lists analysis} %</driver|package> %<*driver> @@ -280,7 +280,7 @@ % only be assumed to work for begin-group and end-group character % tokens. It produces a number in the form |`|\meta{char}. % \begin{macrocode} -\cs_new_nopar:Npn \@@_extract_charcode: +\cs_new:Npn \@@_extract_charcode: { \exp_after:wN \@@_extract_charcode_aux:w \token_to_meaning:N \l_@@_token @@ -488,7 +488,7 @@ % \begin{macro}[int]{\@@_a_loop:w} % Read one character and check its type. % \begin{macrocode} -\cs_new_protected_nopar:Npn \@@_a_loop:w +\cs_new_protected:Npn \@@_a_loop:w { \tex_futurelet:D \l_@@_token \@@_a_type:w } % \end{macrocode} % \end{macro} @@ -510,7 +510,7 @@ % over \cs{l_@@_token} if it matches with one of the % character tokens (hence is not a primitive conditional). % \begin{macrocode} -\cs_new_protected_nopar:Npn \@@_a_type:w +\cs_new_protected:Npn \@@_a_type:w { \l_@@_type_int = \if_meaning:w \l_@@_token \c_space_token @@ -558,14 +558,14 @@ % so that the second pass does not need to test the meaning of tokens, % only strings. % \begin{macrocode} -\cs_new_protected_nopar:Npn \@@_a_space:w +\cs_new_protected:Npn \@@_a_space:w { \tex_afterassignment:D \@@_a_space_test:w \exp_after:wN \cs_set_eq:NN \exp_after:wN \l_@@_char_token \token_to_str:N } -\cs_new_protected_nopar:Npn \@@_a_space_test:w +\cs_new_protected:Npn \@@_a_space_test:w { \if_meaning:w \l_@@_char_token \c_space_token \tex_toks:D \l_@@_index_int { \exp_not:n { ~ } } @@ -597,11 +597,11 @@ \group_begin: \char_set_catcode_group_begin:N \^^@ \char_set_catcode_group_end:N \^^E - \cs_new_protected_nopar:Npn \@@_a_bgroup:w + \cs_new_protected:Npn \@@_a_bgroup:w { \@@_a_group:nw { \exp_after:wN ^^@ \if_false: ^^E \fi: } } \char_set_catcode_group_begin:N \^^B \char_set_catcode_group_end:N \^^@ - \cs_new_protected_nopar:Npn \@@_a_egroup:w + \cs_new_protected:Npn \@@_a_egroup:w { \@@_a_group:nw { \if_false: ^^B \fi: ^^@ } } \group_end: \cs_new_protected:Npn \@@_a_group:nw #1 @@ -616,7 +616,7 @@ \exp_after:wN \l_@@_char_token \token_to_str:N } -\cs_new_protected_nopar:Npn \@@_a_group_test:w +\cs_new_protected:Npn \@@_a_group_test:w { \if_charcode:w \l_@@_token \l_@@_char_token \@@_a_store: @@ -660,7 +660,7 @@ % Finally, we check whether we reached the last closing brace, in which % case we stop by disabling the looping function (locally). % \begin{macrocode} -\cs_new_protected_nopar:Npn \@@_a_store: +\cs_new_protected:Npn \@@_a_store: { \tex_advance:D \l_@@_nesting_int \l_@@_type_int \if_int_compare:w \tex_lccode:D \c_zero = \c_thirty_two diff --git a/Master/texmf-dist/source/latex/l3experimental/l3str/l3tl-build.dtx b/Master/texmf-dist/source/latex/l3experimental/l3str/l3tl-build.dtx index db33b260adc..50a67c3858f 100644 --- a/Master/texmf-dist/source/latex/l3experimental/l3str/l3tl-build.dtx +++ b/Master/texmf-dist/source/latex/l3experimental/l3str/l3tl-build.dtx @@ -36,8 +36,8 @@ %<*driver|package> % The version of expl3 required is tested as early as possible, as % some really old versions do not define \ProvidesExplPackage. -\RequirePackage{expl3}[2016/05/14] -%<package>\@ifpackagelater{expl3}{2016/05/14} +\RequirePackage{expl3}[2016/10/19] +%<package>\@ifpackagelater{expl3}{2016/10/19} %<package> {} %<package> {% %<package> \PackageError{l3tl-build}{Support package l3kernel too old} @@ -49,7 +49,7 @@ %<package> }% %<package> \endinput %<package> } -\GetIdInfo$Id: l3tl-build.dtx 6492 2016-05-14 20:27:55Z joseph $ +\GetIdInfo$Id: l3tl-build.dtx 6730 2016-10-19 11:19:38Z joseph $ {L3 Experimental token list construction} %</driver|package> %<*driver> @@ -205,7 +205,7 @@ % expanding to |\the\toks#10...\the\toks#19|, but this should be kept % for much later. % \begin{macrocode} -\cs_new_protected_nopar:Npn \@@_unpack: +\cs_new_protected:Npn \@@_unpack: { \tl_put_right:Nx \l_@@_result_tl { @@ -240,18 +240,18 @@ % \cs{@@_end:} for details). Then initialize the start index and % the current index at zero, and empty the \texttt{result} token list. % \begin{macrocode} -\cs_new_protected_nopar:Npn \@@:Nw +\cs_new_protected:Npn \@@:Nw { \@@_aux:NNw \tl_set:Nn } -\cs_new_protected_nopar:Npn \@@_x:Nw +\cs_new_protected:Npn \@@_x:Nw { \@@_aux:NNw \tl_set:Nx } -\cs_new_protected_nopar:Npn \__tl_gbuild:Nw +\cs_new_protected:Npn \__tl_gbuild:Nw { \@@_aux:NNw \tl_gset:Nn } -\cs_new_protected_nopar:Npn \__tl_gbuild_x:Nw +\cs_new_protected:Npn \__tl_gbuild_x:Nw { \@@_aux:NNw \tl_gset:Nx } \cs_new_protected:Npn \@@_aux:NNw #1#2 { \group_begin: - \cs_set_nopar:Npn \@@_end_assignment:n + \cs_set:Npn \@@_end_assignment:n { \group_end: #1 #2 } \int_zero:N \l_@@_start_index_int \int_zero:N \l_@@_index_int @@ -271,7 +271,7 @@ % set it to a function which would clean up the contents of % \cs{l_@@_result_tl}. % \begin{macrocode} -\cs_new_protected_nopar:Npn \@@_end: +\cs_new_protected:Npn \@@_end: { \@@_unpack: \exp_args:No diff --git a/Master/texmf-dist/source/latex/l3experimental/xgalley/l3galley.dtx b/Master/texmf-dist/source/latex/l3experimental/xgalley/l3galley.dtx index a35de8f7643..70147a113d9 100644 --- a/Master/texmf-dist/source/latex/l3experimental/xgalley/l3galley.dtx +++ b/Master/texmf-dist/source/latex/l3experimental/xgalley/l3galley.dtx @@ -38,8 +38,8 @@ %<*driver|package> % The version of expl3 required is tested as early as possible, as % some really old versions do not define \ProvidesExplPackage. -\RequirePackage{expl3}[2016/05/14] -%<package>\@ifpackagelater{expl3}{2016/05/14} +\RequirePackage{expl3}[2016/10/19] +%<package>\@ifpackagelater{expl3}{2016/10/19} %<package> {} %<package> {% %<package> \PackageError{l3galley}{Support package l3kernel too old} @@ -51,7 +51,7 @@ %<package> }% %<package> \endinput %<package> } -\GetIdInfo$Id: l3galley.dtx 6493 2016-05-14 21:08:13Z joseph $ +\GetIdInfo$Id: l3galley.dtx 6730 2016-10-19 11:19:38Z joseph $ {L3 Experimental galley code} %</driver|package> %<*driver> @@ -744,9 +744,16 @@ % Settings for application by the galley respect the usual \TeX{} grouping and % so are all local variables. % +% \begin{variable}{\g_@@_cutout_active_bool, \g_@@_cutout_active_bool} +% \begin{macrocode} +\bool_new:N \g_@@_cutout_active_bool +\bool_new:N \l_@@_cutout_active_bool +% \end{macrocode} +% \end{variable} +% % \begin{variable} % {\l_@@_cutout_left_indent_seq, \l_@@_cutout_right_indent_seq} -% Essentially scratch space, used when setting up a cutout in a paragrph, +% Essentially scratch space, used when setting up a cutout in a paragraph, % but named as there is quite a bit to do in that code. % \begin{macrocode} \seq_new:N \l_@@_cutout_left_indent_seq @@ -982,14 +989,25 @@ % galley level must form a group: galley levels are tied to vertical % boxes and so this is a reasonable requirements. % +% \begin{variable}{\l_@@_group_level_int} +% The top group level for the galley needs to be known to allow +% some data structures to be reset correctly: they can only be +% fully cleared at the outer level. +% \begin{macrocode} +\int_new:N \l_@@_group_level_int +% \end{macrocode} +% \end{variable} +% % \begin{macro}{\@@_initialise_variables:} % At the start of a galley level the global variables need to be reset to % standard values. For example, the measure is set to the galley width and % any paragraph shape is cleared. % \begin{macrocode} -\cs_new_protected_nopar:Npn \@@_initialise_variables: +\cs_new_protected:Npn \@@_initialise_variables: { + \int_set:Nn \l_@@_group_level_int { \etex_currentgrouplevel:D } \bool_gset_true:N \g_@@_begin_level_bool + \bool_gset_false:N \g_@@_cutout_active_bool \seq_gclear:N \g_@@_cutout_left_seq \seq_gclear:N \g_@@_cutout_right_seq \tl_gclear:N \g_@@_interpar_penalty_user_tl @@ -1012,10 +1030,10 @@ % \begin{macro}{\@@_initialise_settings:} % This sets the local values of the various galley settings. The % flag \cs{l_@@_parshape_multipar_bool} is set \texttt{true} here -% as it allows an efficency saving in parshape setting: only +% as it allows an efficiency saving in parshape setting: only % when it is actively set \texttt{false} is action needed. % \begin{macrocode} -\cs_new_protected_nopar:Npn \@@_initialise_settings: +\cs_new_protected:Npn \@@_initialise_settings: { \bool_set_true:N \l_@@_parshape_multipar_bool \seq_clear:N \l_@@_parshape_left_indent_seq @@ -1031,10 +1049,12 @@ % Saving and restoring parameters is carried out by a series of copy % functions. % \begin{macrocode} -\cs_new_protected_nopar:Npn \@@_save_parameters: +\cs_new_protected:Npn \@@_save_parameters: { \bool_set_eq:NN \l_@@_begin_level_bool \g_@@_begin_level_bool + \bool_set_eq:NN \l_@@_cutout_active_bool + \g_@@_cutout_active_bool \seq_set_eq:NN \l_@@_cutout_left_seq \g_@@_cutout_left_seq \seq_set_eq:NN \l_@@_cutout_right_seq @@ -1064,10 +1084,12 @@ \tl_set_eq:NN \l_@@_whatsit_next_tl \g_galley_whatsit_next_tl } -\cs_new_protected_nopar:Npn \@@_restore_parameters: +\cs_new_protected:Npn \@@_restore_parameters: { \bool_gset_eq:NN \g_@@_begin_level_bool \l_@@_begin_level_bool + \bool_gset_eq:NN \g_@@_cutout_active_bool + \l_@@_cutout_active_bool \seq_gset_eq:NN \g_@@_cutout_left_seq \l_@@_cutout_left_seq \seq_gset_eq:NN \g_@@_cutout_right_seq @@ -1106,7 +1128,7 @@ % settings, starting a group then initialising both the local and global % variables. % \begin{macrocode} -\cs_new_protected_nopar:Npn \galley_level: +\cs_new_protected:Npn \galley_level: { \@@_save_parameters: \group_begin: @@ -1122,7 +1144,7 @@ % must come in a fixed location. All of this relies on the % \enquote{color safe} group used inside a box. % \begin{macrocode} -\cs_new_protected_nopar:Npn \@@_level_end: +\cs_new_protected:Npn \@@_level_end: { \par \@@_restore_parameters: @@ -1144,13 +1166,13 @@ % \begin{macro}{\galley_par:} % \begin{macro}[aux]{\@@_par_auxi:, \@@_par_auxii:, \@@_par_auxiii:} % \begin{macro}[aux]{\@@_par_aux:N} -% \begin{macro}[int]{\@@_par_set_cutout:, \@@_par_update_cutout:} +% \begin{macro}[int]{\@@_par_update_cutout:} % The idea here is to expand the next token in exactly the same way as \TeX{} % would do anyway. The \texttt{f}-type expansion will ignore any protection, % but will stop at a scan marker. Thus the code can test for an % \enquote{omit paragraph} marker. % \begin{macrocode} -\cs_new_protected_nopar:Npn \galley_par: +\cs_new_protected:Npn \galley_par: { \s__par_omit \exp_after:wN \@@_par_auxi: \exp:w \exp_end_continue_f:w @@ -1175,7 +1197,7 @@ % \cs{etex_interlinepenalties:D}). In vertical mode, that means just % inserting the primitive. % \begin{macrocode} -\cs_new_protected_nopar:Npn \@@_par_auxii: +\cs_new_protected:Npn \@@_par_auxii: { \mode_if_vertical:TF { @@ -1194,7 +1216,8 @@ % \begin{macrocode} { \g_galley_par_end_hook_tl - \@@_par_set_cutout: + \bool_if:NT \g_@@_cutout_active_bool + { \@@_parshape_set: } \group_begin: \tex_par:D \group_end: @@ -1221,22 +1244,26 @@ \tex_penalty:D \c_ten_thousand } % \end{macrocode} -% When cutouts are active, there is a need to set the paragraph shape -% \enquote{just in time}. After the typesetting, the lines remaining in -% the cutout has to be updated for the next run. This is all done for -% each paragraph to avoid any grouping issues and without needing to set -% \cs{tex_parshape:n} globally. -% \begin{macrocode} -\cs_new_protected_nopar:Npn \@@_par_set_cutout: - { - \bool_if:nF - { - \seq_if_empty_p:N \g_@@_cutout_left_seq - && \seq_if_empty_p:N \g_@@_cutout_right_seq - } - { \@@_parshape_set: } - } -\cs_new_protected_nopar:Npn \@@_par_update_cutout: +% Once a cutout has been set, properly tidying up needs some work. The +% cutout is applied \enquote{just in time} at the start of each paragraph +% (see above). After the paragraph, the consumed lines are removed from +% the tracking sequences and the paragraph shape is reset. The latter step +% is required as we do not set the paragraph shape for every paragraph. +% Once the two sequences are empty, there is no cutout to apply. However, +% it can still be \enquote{active}. If a cutout is started then we have a +% group, it is possible for the cutout to be entirely applied before the +% end of the group. At that point, the two sequences show there is nothing +% to do \emph{but} the active paragraph shape still has some lines indented. +% As we avoid setting the \tn{parshape} primitive for every paragraph, +% the result of only checking the sequences would be that the cutout would +% reappear after the group! Instead, we use a boolean and only set it +% false once the group level is that of the galley itself. (There is a slight +% inefficiency here in that we thus do set the paragraph shape for each +% paragraph after a cutout until we reach the top group level of the galley. +% That should be an acceptable hit given the extra work needed to track +% reset-in-this-group as well.) +% \begin{macrocode} +\cs_new_protected:Npn \@@_par_update_cutout: { \bool_if:nF { @@ -1251,12 +1278,20 @@ } \@@_parshape_set: } + \int_compare:nNnT \l_@@_group_level_int = \etex_currentgrouplevel:D + { + \bool_if:nT + { + \seq_if_empty_p:N \g_@@_cutout_left_seq + && \seq_if_empty_p:N \g_@@_cutout_right_seq + } + { \bool_gset_false:N \g_@@_cutout_active_bool } + } } % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} -% \end{macro} % % \begin{macro}{\galley_par:n} % Inserts tokens such that they are appended to the end of the last @@ -1278,7 +1313,7 @@ % The meaning of the token \cs{par} itself starts off as a standard % paragraph. % \begin{macrocode} -\cs_set_protected_nopar:Npn \par { \galley_par: } +\cs_set_protected:Npn \par { \galley_par: } % \end{macrocode} % \end{macro} % @@ -1304,7 +1339,7 @@ % settings from the surrounding material. They may also start and end with % special spacing values. % \begin{macrocode} -\cs_new_protected_nopar:Npn \galley_display_begin: +\cs_new_protected:Npn \galley_display_begin: { \group_begin: \@@_save_parameters: @@ -1355,7 +1390,7 @@ % \cs{group_insert_after:N}. Resetting the meaning of the \cs{par} token % needs to be carried out after the group used for the environment. % \begin{macrocode} -\cs_new_protected_nopar:Npn \galley_display_end: +\cs_new_protected:Npn \galley_display_end: { \par \@@_restore_parameters: @@ -1369,7 +1404,7 @@ % \cs{par} token is then altered so that a check can be made to see if % this assumption was correct. % \begin{macrocode} -\cs_new_protected_nopar:Npn \@@_display_par_setup: +\cs_new_protected:Npn \@@_display_par_setup: { \bool_gset_false:N \g_galley_omit_next_indent_bool \cs_set_eq:NN \par \@@_display_par: @@ -1388,7 +1423,7 @@ % cutout will have to be updated as it depends on the number of lines % \TeX{} has typeset. % \begin{macrocode} -\cs_new_protected_nopar:Npn \@@_display_par: +\cs_new_protected:Npn \@@_display_par: { \cs_set_eq:NN \par \galley_par: \mode_if_vertical:TF @@ -1506,7 +1541,7 @@ % tidied up before sorting out any items which have been set on a % single-paragraph basis. % \begin{macrocode} -\cs_new_protected_nopar:Npn \@@_start_paragraph_std: +\cs_new_protected:Npn \@@_start_paragraph_std: { \@@_start_paragraph_common:N \@@_insert_vertical_items: \@@_insert_horizontal_items: @@ -1523,7 +1558,7 @@ % must not add any vertical space as the start of the box unless there % is a user space to insert. % \begin{macrocode} -\cs_new_protected_nopar:Npn \@@_start_paragraph_first: +\cs_new_protected:Npn \@@_start_paragraph_first: { \bool_gset_false:N \g_@@_begin_level_bool \mode_if_horizontal:TF @@ -1532,7 +1567,7 @@ \@@_insert_horizontal_items: \@@_restore_running_parameters: } -\cs_new_protected_nopar:Npn \@@_insert_vspace_first: +\cs_new_protected:Npn \@@_insert_vspace_first: { \tl_if_empty:NF \g_@@_interpar_vspace_user_tl { \skip_vertical:n { \g_@@_interpar_vspace_user_tl } } @@ -1553,7 +1588,7 @@ % the inter-paragraph space is applied: only one space is ever added % there. % \begin{macrocode} -\cs_new_protected_nopar:Npn \@@_insert_vertical_items: +\cs_new_protected:Npn \@@_insert_vertical_items: { \g_galley_whatsit_previous_tl \tl_gclear:N \g_galley_whatsit_previous_tl @@ -1583,7 +1618,7 @@ % Horizontal mode objects start with the whatsits for the next paragraph. An % indent is then included if the removed box was not void. % \begin{macrocode} -\cs_new_protected_nopar:Npn \@@_insert_horizontal_items: +\cs_new_protected:Npn \@@_insert_horizontal_items: { \g_galley_whatsit_next_tl \tl_gclear:N \g_galley_whatsit_next_tl @@ -1604,7 +1639,7 @@ % variable in which the appropriate assignments are stored. The % list can then be cleared. % \begin{macrocode} -\cs_new_protected_nopar:Npn \@@_restore_running_parameters: +\cs_new_protected:Npn \@@_restore_running_parameters: { \g_galley_restore_running_tl \tl_gclear:N \g_galley_restore_running_tl @@ -1669,12 +1704,12 @@ % Setting the paragraph shape is mainly a question of converting the input. % First, though, a flag is set. % \begin{macrocode} -\cs_new_protected_nopar:Npn \galley_parshape_set_multi:nnnN +\cs_new_protected:Npn \galley_parshape_set_multi:nnnN { \bool_set_true:N \l_@@_parshape_multipar_bool \@@_parshape_set:nnnN } -\cs_new_protected_nopar:Npn \galley_parshape_set_single:nnnN +\cs_new_protected:Npn \galley_parshape_set_single:nnnN { \bool_set_false:N \l_@@_parshape_multipar_bool \@@_parshape_set:nnnN @@ -1725,9 +1760,9 @@ % the same idea with one or two very specific points of difference. As such, % the two interface functions both use the same implementation. % \begin{macrocode} -\cs_new_protected_nopar:Npn \galley_cutout_left:nn +\cs_new_protected:Npn \galley_cutout_left:nn { \@@_cutout:nnn { left } } -\cs_new_protected_nopar:Npn \galley_cutout_right:nn +\cs_new_protected:Npn \galley_cutout_right:nn { \@@_cutout:nnn { right } } % \end{macrocode} % The cutout information needs to be saved in in the appropriate sequence. @@ -1757,6 +1792,8 @@ { \@@_cutout:Nc \g_@@_tmpa_seq { g_@@_cutout_ #1 _seq } } \seq_gset_eq:cN { g_@@_cutout_ #1 _seq } \l_@@_tmp_seq } + \seq_if_empty:cF { g_@@_cutout_ #1 _seq } + { \bool_gset_true:N \g_@@_cutout_active_bool } } \cs_new_protected:Npn \@@_cutout:NN #1#2 { @@ -1796,31 +1833,19 @@ % code, the approach taken here is always to reset the entire shape. This % is done in three stages, one for each conceptual element. % \begin{macrocode} -\cs_new_protected_nopar:Npn \@@_parshape_set: +\cs_new_protected:Npn \@@_parshape_set: { \@@_parshape_set_margins: \@@_parshape_set_indents: \@@_parshape_set_cutouts: - \tl_set:Nx \l_@@_tmp_tl - { - \__int_value:w \tex_parshape:D - \int_step_function:nnnN \c_one \c_one \tex_parshape:D - \tmp - } -% \tl_show:N \l_@@_tmp_tl } - \def\tmp#1{% - \c_space_tl - \__int_value:w \etex_parshapeindent:D #1 \c_space_tl \c_space_tl - \__int_value:w \etex_parshapelength:D #1 \c_space_tl - } % \end{macrocode} % Setting the margins is simple. Either they are zero, using the full measure, % or they are not. This is always set even if there are other elements to % apply as these settings are very fast, so it is not worth doing a check % at this stage for further parts to apply. % \begin{macrocode} -\cs_new_protected_nopar:Npn \@@_parshape_set_margins: +\cs_new_protected:Npn \@@_parshape_set_margins: { \bool_if:nTF { @@ -1842,7 +1867,7 @@ % will always apply. The margins are reapplied at this stage as part of % the auxiliary for the calculation of indentation. % \begin{macrocode} -\cs_new_protected_nopar:Npn \@@_parshape_set_indents: +\cs_new_protected:Npn \@@_parshape_set_indents: { \bool_if:nF { @@ -1878,12 +1903,12 @@ % temporary sequences so that they can safely be \enquote{chomped} by % \cs{@@_cutout:NN}. We then construct the overall list of indents required % and store them in dedicated temporary storage. That is necessary as to get -% the indents corret on both sides is to use a thread mapping. That also +% the indents correct on both sides is to use a thread mapping. That also % means that the two sequences need to be of the same length. That is % done by finding the length difference then applying an auxiliary to % the shorter sequence. % \begin{macrocode} -\cs_new_protected_nopar:Npn \@@_parshape_set_cutouts: +\cs_new_protected:Npn \@@_parshape_set_cutouts: { \bool_if:nF { @@ -2363,7 +2388,7 @@ % so an \texttt{f}-type expansion is used to make life a little less % complex. % \begin{macrocode} -\cs_new_protected_nopar:Npn \@@_calc_interline_penalties: +\cs_new_protected:Npn \@@_calc_interline_penalties: { \exp_args:Nff \@@_calc_interline_penalties:nn { @@ -2466,7 +2491,10 @@ } } \cs_new:Npn \@@_save_display_widow_penalties:n #1 - { \__int_value:w \etex_displaywidowpenalties:D \__int_eval:w #1 \__int_eval_end: , } + { + \__int_value:w \etex_displaywidowpenalties:D + \__int_eval:w #1 \__int_eval_end: , + } \cs_new_protected:Npn \galley_save_widow_penalties:N #1 { \clist_set:Nx #1 @@ -2483,7 +2511,7 @@ % a simple conversion. The general interline penalty is always the % last value in the primitive array. % \begin{macrocode} -\cs_new_protected_nopar:Npn \galley_interline_penalty: +\cs_new_protected:Npn \galley_interline_penalty: { \__int_value:w \etex_interlinepenalties:D \etex_interlinepenalties:D \c_zero } % \end{macrocode} % \end{macro} @@ -2508,7 +2536,7 @@ % structures rather than directly onto the main vertical list. Other % than that it is the same as the \LaTeXe{} version. % \begin{macrocode} -\cs_set_nopar:Npn \clearpage +\cs_set:Npn \clearpage { \mode_if_vertical:T { @@ -2530,7 +2558,7 @@ % In package mode, some of \LaTeXe{}'s functions are re-implemented using % the galley system. Not all of the optional arguments currently work! % \begin{macrocode} -\cs_set_nopar:Npn \nobreak +\cs_set_protected:Npn \nobreak { \bool_gset_true:N \g_galley_no_break_next_bool } % \end{macrocode} % The \tn{noindent} primitive will causes problems, as it is used by @@ -2539,7 +2567,7 @@ % need leave vertical mode, at the moment we stick with the primitive as % well as setting the galley flag. % \begin{macrocode} -\cs_set_protected_nopar:Npn \noindent +\cs_set_protected:Npn \noindent { \tex_noindent:D \bool_gset_false:N \g_galley_omit_next_indent_bool @@ -2602,15 +2630,15 @@ % \begin{macro}{\addpenalty, \addvspace} % The mechanism here is entirely different, but at least this works! % \begin{macrocode} -\cs_set_nopar:Npn \addpenalty { \galley_penalty_add_single:n } -\cs_set_nopar:Npn \addvspace { \galley_vspace_max_single:n } +\cs_set_protected:Npn \addpenalty { \galley_penalty_add_single:n } +\cs_set_protected:Npn \addvspace { \galley_vspace_max_single:n } % \end{macrocode} %\end{macro} % % \begin{macro}{\@afterheading} % Set some flags and hope for the best! % \begin{macrocode} -\cs_set_nopar:Npn \@afterheading +\cs_set_protected:Npn \@afterheading { \bool_gset_true:N \g_galley_no_break_next_bool \if@afterindent @@ -2626,7 +2654,7 @@ % shape is set in a different way. As a result, the label is part of the % same paragraph as the main body, hence the need to leave vertical mode. % \begin{macrocode} -\cs_set:Npn \@hangfrom #1 +\cs_set_protected:Npn \@hangfrom #1 { \bool_gset_true:N \g_galley_omit_next_indent_bool \leavevmode diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3sort/l3sort.sty b/Master/texmf-dist/tex/latex/l3experimental/l3sort/l3sort.sty index 404a6d581c3..591a3c52294 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/l3sort/l3sort.sty +++ b/Master/texmf-dist/tex/latex/l3experimental/l3sort/l3sort.sty @@ -46,8 +46,8 @@ %% %% ----------------------------------------------------------------------- %% -\RequirePackage{expl3}[2016/05/14] -\@ifpackagelater{expl3}{2016/05/14} +\RequirePackage{expl3}[2016/10/19] +\@ifpackagelater{expl3}{2016/10/19} {} {% \PackageError{l3sort}{Support package l3kernel too old} @@ -59,7 +59,7 @@ }% \endinput } -\GetIdInfo$Id: l3sort.dtx 6492 2016-05-14 20:27:55Z joseph $ +\GetIdInfo$Id: l3sort.dtx 6730 2016-10-19 11:19:38Z joseph $ {L3 Experimental sorting functions} \ProvidesExplPackage {\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription} @@ -93,33 +93,33 @@ #1 \exp_not:N #5 {#4} } } -\cs_new_protected_nopar:Npn \seq_sort:Nn +\cs_new_protected:Npn \seq_sort:Nn { \__sort_main:NNNnNn \tl_set:Nn \seq_map_inline:Nn \seq_map_break: { \s__seq \__sort_toks:NNw \exp_not:N \__seq_item:n 0 ; } } -\cs_new_protected_nopar:Npn \seq_gsort:Nn +\cs_new_protected:Npn \seq_gsort:Nn { \__sort_main:NNNnNn \tl_gset:Nn \seq_map_inline:Nn \seq_map_break: { \s__seq \__sort_toks:NNw \exp_not:N \__seq_item:n 0 ; } } -\cs_new_protected_nopar:Npn \tl_sort:Nn +\cs_new_protected:Npn \tl_sort:Nn { \__sort_main:NNNnNn \tl_set:Nn \tl_map_inline:Nn \tl_map_break: { \__sort_toks:NNw \prg_do_nothing: \prg_do_nothing: 0 ; } } -\cs_new_protected_nopar:Npn \tl_gsort:Nn +\cs_new_protected:Npn \tl_gsort:Nn { \__sort_main:NNNnNn \tl_gset:Nn \tl_map_inline:Nn \tl_map_break: { \__sort_toks:NNw \prg_do_nothing: \prg_do_nothing: 0 ; } } -\cs_new_protected_nopar:Npn \clist_sort:Nn +\cs_new_protected:Npn \clist_sort:Nn { \__sort_clist:NNn \tl_set:Nn } -\cs_new_protected_nopar:Npn \clist_gsort:Nn +\cs_new_protected:Npn \clist_gsort:Nn { \__sort_clist:NNn \tl_gset:Nn } \cs_new_protected:Npn \__sort_clist:NNn #1#2#3 { @@ -142,7 +142,7 @@ \__int_value:w \__int_eval:w #3 + \c_one \exp_after:wN ; \fi: } -\cs_new_protected_nopar:Npn \__sort_level: +\cs_new_protected:Npn \__sort_level: { \if_int_compare:w \l__sort_block_int < \l__sort_length_int \l__sort_end_int \c_zero @@ -151,7 +151,7 @@ \exp_after:wN \__sort_level: \fi: } -\cs_new_protected_nopar:Npn \__sort_merge_blocks: +\cs_new_protected:Npn \__sort_merge_blocks: { \l__sort_begin_int \l__sort_end_int \tex_advance:D \l__sort_end_int \l__sort_block_int @@ -171,7 +171,7 @@ \exp_after:wN \__sort_merge_blocks: \fi: } -\cs_new_protected_nopar:Npn \sort_copy_block: +\cs_new_protected:Npn \sort_copy_block: { \tex_toks:D \l__sort_C_int \tex_toks:D \l__sort_B_int \tex_advance:D \l__sort_C_int \c_one @@ -181,13 +181,13 @@ \fi: \sort_copy_block: } -\cs_new_protected_nopar:Npn \__sort_merge_blocks_aux: +\cs_new_protected:Npn \__sort_merge_blocks_aux: { \exp_after:wN \sort_compare:nn \exp_after:wN { \tex_the:D \tex_toks:D \exp_after:wN \l__sort_A_int \exp_after:wN } \exp_after:wN { \tex_the:D \tex_toks:D \l__sort_C_int } } -\cs_new_protected_nopar:Npn \sort_ordered: +\cs_new_protected:Npn \sort_ordered: { \tex_toks:D \l__sort_B_int \tex_toks:D \l__sort_C_int \tex_advance:D \l__sort_B_int \c_minus_one @@ -197,7 +197,7 @@ \fi: \__sort_merge_blocks_aux: } -\cs_new_protected_nopar:Npn \sort_reversed: +\cs_new_protected:Npn \sort_reversed: { \tex_toks:D \l__sort_B_int \tex_toks:D \l__sort_A_int \tex_advance:D \l__sort_B_int \c_minus_one @@ -207,7 +207,7 @@ \fi: \__sort_merge_blocks_aux: } -\cs_new_protected_nopar:Npn \__sort_merge_blocks_end: +\cs_new_protected:Npn \__sort_merge_blocks_end: { \tex_toks:D \l__sort_B_int \tex_toks:D \l__sort_C_int \tex_advance:D \l__sort_B_int \c_minus_one diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3flag.sty b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3flag.sty index 560d0edf277..a0ce8b9d326 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3flag.sty +++ b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3flag.sty @@ -45,8 +45,8 @@ %% prior consultation with the LaTeX3 Project. %% %% ----------------------------------------------------------------------- -\RequirePackage{expl3}[2016/05/14] -\@ifpackagelater{expl3}{2016/05/14} +\RequirePackage{expl3}[2016/10/19] +\@ifpackagelater{expl3}{2016/10/19} {} {% \PackageError{l3flag}{Support package l3kernel too old} @@ -58,7 +58,7 @@ }% \endinput } -\GetIdInfo$Id: l3flag.dtx 6492 2016-05-14 20:27:55Z joseph $ +\GetIdInfo$Id: l3flag.dtx 6730 2016-10-19 11:19:38Z joseph $ {L3 Experimental flags} \ProvidesExplPackage {\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription} diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3regex-trace.sty b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3regex-trace.sty index ea479829d46..a5605769613 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3regex-trace.sty +++ b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3regex-trace.sty @@ -45,8 +45,8 @@ %% prior consultation with the LaTeX3 Project. %% %% ----------------------------------------------------------------------- -\RequirePackage{expl3}[2016/05/14] -\@ifpackagelater{expl3}{2016/05/14} +\RequirePackage{expl3}[2016/10/19] +\@ifpackagelater{expl3}{2016/10/19} {} {% \PackageError{l3regex}{Support package l3kernel too old} @@ -58,7 +58,7 @@ }% \endinput } -\GetIdInfo$Id: l3regex.dtx 6492 2016-05-14 20:27:55Z joseph $ +\GetIdInfo$Id: l3regex.dtx 6730 2016-10-19 11:19:38Z joseph $ {L3 Experimental regular expressions} \ProvidesExplPackage {\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription} @@ -130,7 +130,7 @@ \fi: \fi: } -\cs_new_protected_nopar:Npn \__regex_compute_case_changed_char: +\cs_new_protected:Npn \__regex_compute_case_changed_char: { \int_set_eq:NN \l__regex_case_changed_char_int \l__regex_current_char_int \if_int_compare:w \l__regex_current_char_int < \c_ninety_one @@ -214,14 +214,14 @@ \group_end: } } -\cs_new_protected_nopar:Npn \__regex_prop_d: +\cs_new_protected:Npn \__regex_prop_d: { \__regex_item_caseful_range:nn \c_forty_eight { 57 } } % 0--9 -\cs_new_protected_nopar:Npn \__regex_prop_h: +\cs_new_protected:Npn \__regex_prop_h: { \__regex_item_caseful_equal:n \c_thirty_two % space \__regex_item_caseful_equal:n \c_nine % tab } -\cs_new_protected_nopar:Npn \__regex_prop_s: +\cs_new_protected:Npn \__regex_prop_s: { \__regex_item_caseful_equal:n \c_thirty_two % space \__regex_item_caseful_equal:n \c_nine % tab @@ -229,52 +229,52 @@ \__regex_item_caseful_equal:n \c_twelve % ff \__regex_item_caseful_equal:n \c_thirteen % cr } -\cs_new_protected_nopar:Npn \__regex_prop_v: +\cs_new_protected:Npn \__regex_prop_v: { \__regex_item_caseful_range:nn \c_ten \c_thirteen } % lf, vtab, ff, cr -\cs_new_protected_nopar:Npn \__regex_prop_w: +\cs_new_protected:Npn \__regex_prop_w: { \__regex_item_caseful_range:nn \c_ninety_seven { 122 } % a--z \__regex_item_caseful_range:nn \c_sixty_five { 90 } % A--Z \__regex_item_caseful_range:nn \c_forty_eight { 57 } % 0--9 \__regex_item_caseful_equal:n { 95 } % _ } -\cs_new_protected_nopar:Npn \__regex_prop_N: +\cs_new_protected:Npn \__regex_prop_N: { \__regex_item_reverse:n { \__regex_item_caseful_equal:n \c_ten } } -\cs_new_protected_nopar:Npn \__regex_posix_alnum: +\cs_new_protected:Npn \__regex_posix_alnum: { \__regex_posix_alpha: \__regex_posix_digit: } -\cs_new_protected_nopar:Npn \__regex_posix_alpha: +\cs_new_protected:Npn \__regex_posix_alpha: { \__regex_posix_lower: \__regex_posix_upper: } -\cs_new_protected_nopar:Npn \__regex_posix_ascii: +\cs_new_protected:Npn \__regex_posix_ascii: { \__regex_item_caseful_range:nn \c_zero \c_one_hundred_twenty_seven } \cs_new_eq:NN \__regex_posix_blank: \__regex_prop_h: -\cs_new_protected_nopar:Npn \__regex_posix_cntrl: +\cs_new_protected:Npn \__regex_posix_cntrl: { \__regex_item_caseful_range:nn \c_zero { 31 } \__regex_item_caseful_equal:n \c_one_hundred_twenty_seven } \cs_new_eq:NN \__regex_posix_digit: \__regex_prop_d: -\cs_new_protected_nopar:Npn \__regex_posix_graph: +\cs_new_protected:Npn \__regex_posix_graph: { \__regex_item_caseful_range:nn { 33 } { 126 } } -\cs_new_protected_nopar:Npn \__regex_posix_lower: +\cs_new_protected:Npn \__regex_posix_lower: { \__regex_item_caseful_range:nn \c_ninety_seven { 122 } } -\cs_new_protected_nopar:Npn \__regex_posix_print: +\cs_new_protected:Npn \__regex_posix_print: { \__regex_item_caseful_range:nn \c_thirty_two { 126 } } -\cs_new_protected_nopar:Npn \__regex_posix_punct: +\cs_new_protected:Npn \__regex_posix_punct: { \__regex_item_caseful_range:nn { 33 } { 47 } \__regex_item_caseful_range:nn { 58 } { 64 } \__regex_item_caseful_range:nn { 91 } { 96 } \__regex_item_caseful_range:nn { 123 } { 126 } } -\cs_new_protected_nopar:Npn \__regex_posix_space: +\cs_new_protected:Npn \__regex_posix_space: { \__regex_item_caseful_equal:n \c_thirty_two \__regex_item_caseful_range:nn \c_nine \c_thirteen } -\cs_new_protected_nopar:Npn \__regex_posix_upper: +\cs_new_protected:Npn \__regex_posix_upper: { \__regex_item_caseful_range:nn \c_sixty_five { 90 } } \cs_new_eq:NN \__regex_posix_word: \__regex_prop_w: -\cs_new_protected_nopar:Npn \__regex_posix_xdigit: +\cs_new_protected:Npn \__regex_posix_xdigit: { \__regex_posix_digit: \__regex_item_caseful_range:nn \c_sixty_five { 70 } @@ -284,9 +284,9 @@ { \trace_push:nnn { regex } { 1 } { __regex_escape_use:nnnn } \__tl_build:Nw \l__regex_internal_a_tl - \cs_set_nopar:Npn \__regex_escape_unescaped:N ##1 { #1 } - \cs_set_nopar:Npn \__regex_escape_escaped:N ##1 { #2 } - \cs_set_nopar:Npn \__regex_escape_raw:N ##1 { #3 } + \cs_set:Npn \__regex_escape_unescaped:N ##1 { #1 } + \cs_set:Npn \__regex_escape_escaped:N ##1 { #2 } + \cs_set:Npn \__regex_escape_raw:N ##1 { #3 } \int_set:Nn \tex_escapechar:D { 92 } \__str_gset_other:Nn \g__regex_internal_tl { #4 } \tl_set:Nx \l__regex_internal_b_tl @@ -305,7 +305,7 @@ { \__regex_escape_unescaped:N #1 } \__regex_escape_loop:N } -\cs_new_nopar:cpn { __regex_escape_ \c_backslash_str :w } +\cs_new:cpn { __regex_escape_ \c_backslash_str :w } \__regex_escape_loop:N #1 { \cs_if_exist_use:cF { __regex_escape_/\token_to_str:N #1:w } @@ -316,24 +316,24 @@ \cs_new_eq:NN \__regex_escape_escaped:N ? \cs_new_eq:NN \__regex_escape_raw:N ? \cs_new_eq:NN \__regex_escape_break:w \__prg_break: -\cs_new_nopar:cpn { __regex_escape_/break:w } +\cs_new:cpn { __regex_escape_/break:w } { \if_false: { \fi: } \__msg_kernel_error:nn { regex } { trailing-backslash } \exp_after:wN \use_none:n \exp_after:wN { \if_false: } \fi: } -\cs_new_nopar:cpn { __regex_escape_~:w } { } -\cs_new_nopar:cpx { __regex_escape_/a:w } +\cs_new:cpn { __regex_escape_~:w } { } +\cs_new:cpx { __regex_escape_/a:w } { \exp_not:N \__regex_escape_raw:N \iow_char:N \^^G } -\cs_new_nopar:cpx { __regex_escape_/t:w } +\cs_new:cpx { __regex_escape_/t:w } { \exp_not:N \__regex_escape_raw:N \iow_char:N \^^I } -\cs_new_nopar:cpx { __regex_escape_/n:w } +\cs_new:cpx { __regex_escape_/n:w } { \exp_not:N \__regex_escape_raw:N \iow_char:N \^^J } -\cs_new_nopar:cpx { __regex_escape_/f:w } +\cs_new:cpx { __regex_escape_/f:w } { \exp_not:N \__regex_escape_raw:N \iow_char:N \^^L } -\cs_new_nopar:cpx { __regex_escape_/r:w } +\cs_new:cpx { __regex_escape_/r:w } { \exp_not:N \__regex_escape_raw:N \iow_char:N \^^M } -\cs_new_nopar:cpx { __regex_escape_/e:w } +\cs_new:cpx { __regex_escape_/e:w } { \exp_not:N \__regex_escape_raw:N \iow_char:N \^^[ } \cs_new:cpn { __regex_escape_/x:w } \__regex_escape_loop:N { @@ -517,7 +517,7 @@ \prg_return_false: \fi: } -\cs_new_nopar:Npn \__regex_if_in_class:TF +\cs_new:Npn \__regex_if_in_class:TF { \if_int_odd:w \l__regex_mode_int \exp_after:wN \use_i:nn @@ -525,7 +525,7 @@ \exp_after:wN \use_ii:nn \fi: } -\cs_new_nopar:Npn \__regex_if_in_cs:TF +\cs_new:Npn \__regex_if_in_cs:TF { \if_int_odd:w \l__regex_mode_int \exp_after:wN \use_ii:nn @@ -537,7 +537,7 @@ \fi: \fi: } -\cs_new_nopar:Npn \__regex_if_in_class_or_catcode:TF +\cs_new:Npn \__regex_if_in_class_or_catcode:TF { \if_int_odd:w \l__regex_mode_int \exp_after:wN \use_i:nn @@ -549,7 +549,7 @@ \fi: \fi: } -\cs_new_nopar:Npn \__regex_if_within_catcode:TF +\cs_new:Npn \__regex_if_within_catcode:TF { \if_int_compare:w \l__regex_mode_int > \c_zero \exp_after:wN \use_i:nn @@ -580,17 +580,17 @@ \fi: \fi: } -\cs_new_protected_nopar:Npn \__regex_compile:w +\cs_new_protected:Npn \__regex_compile:w { \__tl_build_x:Nw \l__regex_internal_regex \int_zero:N \l__regex_group_level_int \int_set_eq:NN \l__regex_default_catcodes_int \c__regex_all_catcodes_int \int_set_eq:NN \l__regex_catcodes_int \l__regex_default_catcodes_int - \cs_set_nopar:Npn \__regex_item_equal:n { \__regex_item_caseful_equal:n } - \cs_set_nopar:Npn \__regex_item_range:nn { \__regex_item_caseful_range:nn } + \cs_set:Npn \__regex_item_equal:n { \__regex_item_caseful_equal:n } + \cs_set:Npn \__regex_item_range:nn { \__regex_item_caseful_range:nn } \__tl_build_one:n { \__regex_branch:n { \if_false: } \fi: } } -\cs_new_protected_nopar:Npn \__regex_compile_end: +\cs_new_protected:Npn \__regex_compile_end: { \__regex_if_in_class:TF { @@ -714,11 +714,11 @@ #3 #4 } } -\cs_new_protected_nopar:cpn { __regex_compile_quantifier_?:w } +\cs_new_protected:cpn { __regex_compile_quantifier_?:w } { \__regex_compile_quantifier_lazyness:nnNN { 0 } { 1 } } -\cs_new_protected_nopar:cpn { __regex_compile_quantifier_*:w } +\cs_new_protected:cpn { __regex_compile_quantifier_*:w } { \__regex_compile_quantifier_lazyness:nnNN { 0 } { -1 } } -\cs_new_protected_nopar:cpn { __regex_compile_quantifier_+:w } +\cs_new_protected:cpn { __regex_compile_quantifier_+:w } { \__regex_compile_quantifier_lazyness:nnNN { 1 } { -1 } } \cs_new_protected:cpn { __regex_compile_quantifier_ \c_left_brace_str :w } { @@ -857,13 +857,13 @@ #2#3 } } -\cs_new_protected_nopar:cpx { __regex_compile_.: } +\cs_new_protected:cpx { __regex_compile_.: } { \exp_not:N \__regex_if_in_class:TF { \__regex_compile_raw:N . } { \__regex_compile_one:x \exp_not:c { __regex_prop_.: } } } -\cs_new_protected_nopar:cpn { __regex_prop_.: } +\cs_new_protected:cpn { __regex_prop_.: } { \if_int_compare:w \l__regex_current_char_int > - \c_two \exp_after:wN \__regex_break_true:w @@ -871,9 +871,9 @@ } \cs_set_protected:Npn \__regex_tmp:w #1#2 { - \cs_new_protected_nopar:cpx { __regex_compile_/#1: } + \cs_new_protected:cpx { __regex_compile_/#1: } { \__regex_compile_one:x \exp_not:c { __regex_prop_#1: } } - \cs_new_protected_nopar:cpx { __regex_compile_/#2: } + \cs_new_protected:cpx { __regex_compile_/#2: } { \__regex_compile_one:x { \__regex_item_reverse:n \exp_not:c { __regex_prop_#1: } } @@ -884,7 +884,7 @@ \__regex_tmp:w s S \__regex_tmp:w v V \__regex_tmp:w w W -\cs_new_protected_nopar:cpn { __regex_compile_/N: } +\cs_new_protected:cpn { __regex_compile_/N: } { \__regex_compile_one:x \__regex_prop_N: } \cs_new_protected:Npn \__regex_compile_anchor:NF #1#2 { @@ -896,7 +896,7 @@ } \cs_set_protected:Npn \__regex_tmp:w #1#2 { - \cs_new_protected_nopar:cpn { __regex_compile_/#1: } + \cs_new_protected:cpn { __regex_compile_/#1: } { \__regex_compile_anchor:NF #2 { \__regex_compile_raw_error:N #1 } } } \__regex_tmp:w A \l__regex_min_pos_int @@ -905,12 +905,12 @@ \__regex_tmp:w z \l__regex_max_pos_int \cs_set_protected:Npn \__regex_tmp:w #1#2 { - \cs_new_protected_nopar:cpn { __regex_compile_#1: } + \cs_new_protected:cpn { __regex_compile_#1: } { \__regex_compile_anchor:NF #2 { \__regex_compile_raw:N #1 } } } \exp_args:Nx \__regex_tmp:w { \iow_char:N \^ } \l__regex_min_pos_int \exp_args:Nx \__regex_tmp:w { \iow_char:N \$ } \l__regex_max_pos_int -\cs_new_protected_nopar:cpn { __regex_compile_/b: } +\cs_new_protected:cpn { __regex_compile_/b: } { \__regex_if_in_class_or_catcode:TF { \__regex_compile_raw_error:N b } @@ -919,7 +919,7 @@ { \__regex_assertion:Nn \c_true_bool { \__regex_b_test: } } } } -\cs_new_protected_nopar:cpn { __regex_compile_/B: } +\cs_new_protected:cpn { __regex_compile_/B: } { \__regex_if_in_class_or_catcode:TF { \__regex_compile_raw_error:N B } @@ -943,7 +943,7 @@ } { \__regex_compile_raw:N ] } } -\cs_new_protected_nopar:cpn { __regex_compile_[: } +\cs_new_protected:cpn { __regex_compile_[: } { \__regex_if_in_class:TF { \__regex_compile_class_posix_test:w } @@ -956,7 +956,7 @@ { \__regex_compile_class_normal:w } } } -\cs_new_protected_nopar:Npn \__regex_compile_class_normal:w +\cs_new_protected:Npn \__regex_compile_class_normal:w { \__regex_compile_class:TFNN { \__regex_class:NnnnN \c_true_bool } @@ -1077,7 +1077,7 @@ \exp_after:wN \__regex_compile_raw:N \exp_after:wN ) \fi: } -\cs_new_protected_nopar:cpn { __regex_compile_(: } +\cs_new_protected:cpn { __regex_compile_(: } { \__regex_if_in_class:TF { \__regex_compile_raw:N ( } { \__regex_compile_lparen:w } @@ -1100,7 +1100,7 @@ #1 #2 #3 #4 } } -\cs_new_protected_nopar:cpn { __regex_compile_|: } +\cs_new_protected:cpn { __regex_compile_|: } { \__regex_if_in_class:TF { \__regex_compile_raw:N | } { @@ -1108,21 +1108,21 @@ { \if_false: { \fi: } \__regex_branch:n { \if_false: } \fi: } } } -\cs_new_protected_nopar:cpn { __regex_compile_): } +\cs_new_protected:cpn { __regex_compile_): } { \__regex_if_in_class:TF { \__regex_compile_raw:N ) } { \__regex_compile_group_end: } } -\cs_new_protected_nopar:cpn { __regex_compile_special_group_::w } +\cs_new_protected:cpn { __regex_compile_special_group_::w } { \__regex_compile_group_begin:N \__regex_group_no_capture:nnnN } -\cs_new_protected_nopar:cpn { __regex_compile_special_group_|:w } +\cs_new_protected:cpn { __regex_compile_special_group_|:w } { \__regex_compile_group_begin:N \__regex_group_resetting:nnnN } \cs_new_protected:Npn \__regex_compile_special_group_i:w #1#2 { \str_if_eq:nnTF { #1 #2 } { \__regex_compile_special:N ) } { - \cs_set_nopar:Npn \__regex_item_equal:n { \__regex_item_caseless_equal:n } - \cs_set_nopar:Npn \__regex_item_range:nn { \__regex_item_caseless_range:nn } + \cs_set:Npn \__regex_item_equal:n { \__regex_item_caseless_equal:n } + \cs_set:Npn \__regex_item_range:nn { \__regex_item_caseless_range:nn } } { \__msg_kernel_warning:nnx { regex } { unknown-option } { (?i #2 } @@ -1132,13 +1132,13 @@ #1 #2 } } -\cs_new_protected_nopar:cpn { __regex_compile_special_group_-:w } #1#2#3#4 +\cs_new_protected:cpn { __regex_compile_special_group_-:w } #1#2#3#4 { \str_if_eq:nnTF { #1 #2 #3 #4 } { \__regex_compile_raw:N i \__regex_compile_special:N ) } { - \cs_set_nopar:Npn \__regex_item_equal:n { \__regex_item_caseful_equal:n } - \cs_set_nopar:Npn \__regex_item_range:nn { \__regex_item_caseful_range:nn } + \cs_set:Npn \__regex_item_equal:n { \__regex_item_caseful_equal:n } + \cs_set:Npn \__regex_item_range:nn { \__regex_item_caseful_range:nn } } { \__msg_kernel_warning:nnx { regex } { unknown-option } { (?-#2#4 } @@ -1211,14 +1211,14 @@ \tex_advance:D \l__regex_catcodes_int #1 \fi: } -\cs_new_protected_nopar:Npn \__regex_compile_c_lbrack_end: +\cs_new_protected:Npn \__regex_compile_c_lbrack_end: { \if_meaning:w \c_false_bool \l__regex_catcodes_bool \int_set:Nn \l__regex_catcodes_int { \c__regex_all_catcodes_int - \l__regex_catcodes_int } \fi: } -\cs_new_protected_nopar:cpn { __regex_compile_c_ \c_left_brace_str :w } +\cs_new_protected:cpn { __regex_compile_c_ \c_left_brace_str :w } { \__regex_compile:w \__regex_disable_submatches: @@ -1313,7 +1313,7 @@ } } } -\cs_new_protected_nopar:cpn { __regex_compile_/K: } +\cs_new_protected:cpn { __regex_compile_/K: } { \int_compare:nNnTF \l__regex_mode_int = \c_zero { \__tl_build_one:n { \__regex_command_K: } } @@ -1322,25 +1322,25 @@ \cs_new_protected:Npn \__regex_show:Nx #1#2 { \__tl_build:Nw \l__regex_internal_a_tl - \cs_set_protected_nopar:Npn \__regex_branch:n + \cs_set_protected:Npn \__regex_branch:n { \seq_pop_right:NN \l__regex_show_prefix_seq \l__regex_internal_a_tl \__regex_show_one:n { +-branch } \seq_put_right:No \l__regex_show_prefix_seq \l__regex_internal_a_tl \use:n } - \cs_set_protected_nopar:Npn \__regex_group:nnnN + \cs_set_protected:Npn \__regex_group:nnnN { \__regex_show_group_aux:nnnnN { } } - \cs_set_protected_nopar:Npn \__regex_group_no_capture:nnnN + \cs_set_protected:Npn \__regex_group_no_capture:nnnN { \__regex_show_group_aux:nnnnN { ~(no~capture) } } - \cs_set_protected_nopar:Npn \__regex_group_resetting:nnnN + \cs_set_protected:Npn \__regex_group_resetting:nnnN { \__regex_show_group_aux:nnnnN { ~(resetting) } } \cs_set_eq:NN \__regex_class:NnnnN \__regex_show_class:NnnnN - \cs_set_protected_nopar:Npn \__regex_command_K: + \cs_set_protected:Npn \__regex_command_K: { \__regex_show_one:n { reset~match~start~(\iow_char:N\\K) } } \cs_set_protected:Npn \__regex_assertion:Nn ##1##2 { \__regex_show_one:n { \bool_if:NF ##1 { negative~ } assertion:~##2 } } - \cs_set_nopar:Npn \__regex_b_test: { word~boundary } + \cs_set:Npn \__regex_b_test: { word~boundary } \cs_set_eq:NN \__regex_anchor:N \__regex_show_anchor_to_str:N \cs_set_protected:Npn \__regex_item_caseful_equal:n ##1 { \__regex_show_one:n { char~code~\int_eval:n{##1} } } @@ -1511,14 +1511,14 @@ \__regex_trace_states:n { 2 } \trace_pop:nnn { regex } { 1 } { __regex_build_for_cs } } -\cs_new_protected_nopar:Npn \__regex_push_lr_states: +\cs_new_protected:Npn \__regex_push_lr_states: { \seq_push:No \l__regex_left_state_seq { \int_use:N \l__regex_left_state_int } \seq_push:No \l__regex_right_state_seq { \int_use:N \l__regex_right_state_int } } -\cs_new_protected_nopar:Npn \__regex_pop_lr_states: +\cs_new_protected:Npn \__regex_pop_lr_states: { \seq_pop:NN \l__regex_left_state_seq \l__regex_internal_a_tl \int_set:Nn \l__regex_left_state_int \l__regex_internal_a_tl @@ -1527,13 +1527,13 @@ } \cs_new_protected:Npn \__regex_toks_put_left:Nx #1#2 { - \cs_set_nopar:Npx \__regex_tmp:w { #2 } + \cs_set:Npx \__regex_tmp:w { #2 } \tex_toks:D #1 \exp_after:wN \exp_after:wN \exp_after:wN { \exp_after:wN \__regex_tmp:w \tex_the:D \tex_toks:D #1 } } \cs_new_protected:Npn \__regex_toks_put_right:Nx #1#2 { - \cs_set_nopar:Npx \__regex_tmp:w {#2} + \cs_set:Npx \__regex_tmp:w {#2} \tex_toks:D #1 \exp_after:wN { \tex_the:D \tex_toks:D \exp_after:wN #1 \__regex_tmp:w } } @@ -1543,7 +1543,7 @@ { \__regex_toks_put_left:Nx #2 { #1 { \int_eval:n { #3 - #2 } } } } \cs_new_protected:Npn \__regex_build_transition_right:nNn #1#2#3 { \__regex_toks_put_right:Nx #2 { #1 { \int_eval:n { #3 - #2 } } } } -\cs_new_protected_nopar:Npn \__regex_build_new_state: +\cs_new_protected:Npn \__regex_build_new_state: { \trace:nnx { regex } { 2 } { @@ -1574,7 +1574,7 @@ } \cs_new_protected:Npn \__regex_class:NnnnN #1#2#3#4#5 { - \cs_set_nopar:Npx \__regex_tests_action_cost:n ##1 + \cs_set:Npx \__regex_tests_action_cost:n ##1 { \exp_not:n { \exp_not:n {#2} } \bool_if:NTF #1 @@ -1651,7 +1651,7 @@ #1 } } -\cs_new_protected_nopar:Npn \__regex_group_no_capture:nnnN +\cs_new_protected:Npn \__regex_group_no_capture:nnnN { \__regex_group_aux:nnnnN { -1 } } \cs_new_protected:Npn \__regex_group_resetting:nnnN #1 { @@ -1820,7 +1820,7 @@ \exp_after:wN \__regex_break_true:w \fi: } -\cs_new_protected_nopar:Npn \__regex_b_test: +\cs_new_protected:Npn \__regex_b_test: { \group_begin: \int_set_eq:NN \l__regex_current_char_int \l__regex_last_char_int @@ -1829,7 +1829,7 @@ { \group_end: \__regex_item_reverse:n \__regex_prop_w: } { \group_end: \__regex_prop_w: } } -\cs_new_protected_nopar:Npn \__regex_command_K: +\cs_new_protected:Npn \__regex_command_K: { \__regex_build_new_state: \__regex_toks_put_right:Nx \l__regex_left_state_int @@ -1889,10 +1889,10 @@ \__regex_match_once: \trace_pop:nnx { regex } { 1 } { __regex_match } } -\cs_new_protected_nopar:Npn \__regex_match_once: +\cs_new_protected:Npn \__regex_match_once: { \if_meaning:w \c_true_bool \l__regex_empty_success_bool - \cs_set_nopar:Npn \__regex_if_two_empty_matches:F + \cs_set:Npn \__regex_if_two_empty_matches:F { \int_compare:nNnF \l__regex_start_pos_int = \l__regex_current_pos_int } \else: \cs_set_eq:NN \__regex_if_two_empty_matches:F \use:n @@ -1908,7 +1908,7 @@ \__regex_match_loop: \l__regex_every_match_tl } -\cs_new_protected_nopar:Npn \__regex_single_match: +\cs_new_protected:Npn \__regex_single_match: { \tl_set:Nn \l__regex_every_match_tl { \bool_gset_eq:NN \g__regex_success_bool \l__regex_match_success_bool } @@ -1924,7 +1924,7 @@ \fi: } } -\cs_new_protected_nopar:Npn \__regex_match_loop: +\cs_new_protected:Npn \__regex_match_loop: { \tex_advance:D \l__regex_step_int \c_two \int_incr:N \l__regex_current_pos_int @@ -1970,14 +1970,14 @@ \or: \int_decr:N \l__regex_balance_int \fi: } -\cs_new_protected_nopar:Npn \__regex_query_get: +\cs_new_protected:Npn \__regex_query_get: { \l__regex_current_char_int = \etex_mutoglue:D \tex_muskip:D \l__regex_current_pos_int \l__regex_current_catcode_int = \etex_gluestretch:D \etex_mutoglue:D \tex_muskip:D \l__regex_current_pos_int } -\cs_new_protected_nopar:Npn \__regex_use_state: +\cs_new_protected:Npn \__regex_use_state: { \trace:nnx { regex } { 2 } { state~\int_use:N \l__regex_current_state_int } \tex_dimen:D \l__regex_current_state_int @@ -1996,16 +1996,16 @@ \fi: \scan_stop: } -\cs_new_protected_nopar:Npn \__regex_action_start_wildcard: +\cs_new_protected:Npn \__regex_action_start_wildcard: { \bool_set_true:N \l__regex_fresh_thread_bool \__regex_action_free:n {1} \bool_set_false:N \l__regex_fresh_thread_bool \__regex_action_cost:n {0} } -\cs_new_protected_nopar:Npn \__regex_action_free:n +\cs_new_protected:Npn \__regex_action_free:n { \__regex_action_free_aux:nn { > \l__regex_step_int \else: } } -\cs_new_protected_nopar:Npn \__regex_action_free_group:n +\cs_new_protected:Npn \__regex_action_free_group:n { \__regex_action_free_aux:nn { < \l__regex_step_int } } \cs_new_protected:Npn \__regex_action_free_aux:nn #1#2 { @@ -2035,14 +2035,14 @@ \tex_skip:D \l__regex_max_active_int = #1 sp \scan_stop: \int_incr:N \l__regex_max_active_int } -\cs_new_protected_nopar:Npn \__regex_store_submatches: +\cs_new_protected:Npn \__regex_store_submatches: { \tex_toks:D \l__regex_max_active_int \exp_after:wN { \l__regex_current_submatches_prop } } -\cs_new_protected_nopar:Npn \__regex_disable_submatches: +\cs_new_protected:Npn \__regex_disable_submatches: { - \cs_set_protected_nopar:Npn \__regex_store_submatches: { } + \cs_set_protected:Npn \__regex_store_submatches: { } \cs_set_protected:Npn \__regex_action_submatch:n ##1 { } } \cs_new_protected:Npn \__regex_action_submatch:n #1 @@ -2050,7 +2050,7 @@ \prop_put:Nno \l__regex_current_submatches_prop {#1} { \int_use:N \l__regex_current_pos_int } } -\cs_new_protected_nopar:Npn \__regex_action_success: +\cs_new_protected:Npn \__regex_action_success: { \__regex_if_two_empty_matches:F { @@ -2210,7 +2210,7 @@ } { \__regex_replacement_error:NNN c #1#2 } } -\cs_new_protected_nopar:cpn { __regex_replacement_c_ \c_left_brace_str :w } +\cs_new_protected:cpn { __regex_replacement_c_ \c_left_brace_str :w } { \if_case:w \l__regex_replacement_csnames_int \__tl_build_one:n @@ -2253,10 +2253,10 @@ \fi: } \char_set_catcode_active:N \^^@ - \cs_new_protected_nopar:Npn \__regex_replacement_c_A:w + \cs_new_protected:Npn \__regex_replacement_c_A:w { \__regex_replacement_char:nNN { \exp_not:n { \exp_not:N ^^@ } } } \char_set_catcode_group_begin:N \^^@ - \cs_new_protected_nopar:Npn \__regex_replacement_c_B:w + \cs_new_protected:Npn \__regex_replacement_c_B:w { \if_int_compare:w \l__regex_replacement_csnames_int = \c_zero \int_incr:N \l__regex_balance_int @@ -2267,10 +2267,10 @@ \cs_new_protected:Npn \__regex_replacement_c_C:w #1#2 { \__tl_build_one:n { \exp_not:N \exp_not:N \exp_not:c {#2} } } \char_set_catcode_math_subscript:N \^^@ - \cs_new_protected_nopar:Npn \__regex_replacement_c_D:w + \cs_new_protected:Npn \__regex_replacement_c_D:w { \__regex_replacement_char:nNN { ^^@ } } \char_set_catcode_group_end:N \^^@ - \cs_new_protected_nopar:Npn \__regex_replacement_c_E:w + \cs_new_protected:Npn \__regex_replacement_c_E:w { \if_int_compare:w \l__regex_replacement_csnames_int = \c_zero \int_decr:N \l__regex_balance_int @@ -2279,16 +2279,16 @@ { \exp_not:n { \if_false: { \fi: ^^@ } } } \char_set_catcode_letter:N \^^@ - \cs_new_protected_nopar:Npn \__regex_replacement_c_L:w + \cs_new_protected:Npn \__regex_replacement_c_L:w { \__regex_replacement_char:nNN { ^^@ } } \char_set_catcode_math_toggle:N \^^@ - \cs_new_protected_nopar:Npn \__regex_replacement_c_M:w + \cs_new_protected:Npn \__regex_replacement_c_M:w { \__regex_replacement_char:nNN { ^^@ } } \char_set_catcode_other:N \^^@ - \cs_new_protected_nopar:Npn \__regex_replacement_c_O:w + \cs_new_protected:Npn \__regex_replacement_c_O:w { \__regex_replacement_char:nNN { ^^@ } } \char_set_catcode_parameter:N \^^@ - \cs_new_protected_nopar:Npn \__regex_replacement_c_P:w + \cs_new_protected:Npn \__regex_replacement_c_P:w { \__regex_replacement_char:nNN { \exp_not:n { \exp_not:n { ^^@^^@^^@^^@ } } } @@ -2306,10 +2306,10 @@ \fi: } \char_set_catcode_alignment:N \^^@ - \cs_new_protected_nopar:Npn \__regex_replacement_c_T:w + \cs_new_protected:Npn \__regex_replacement_c_T:w { \__regex_replacement_char:nNN { ^^@ } } \char_set_catcode_math_superscript:N \^^@ - \cs_new_protected_nopar:Npn \__regex_replacement_c_U:w + \cs_new_protected:Npn \__regex_replacement_c_U:w { \__regex_replacement_char:nNN { ^^@ } } \group_end: \cs_new_protected:Npn \__regex_replacement_error:NNN #1#2#3 @@ -2319,17 +2319,17 @@ } \cs_new_protected:Npn \regex_new:N #1 { \cs_new_eq:NN #1 \c__regex_no_match_regex } -\cs_new_protected_nopar:Npn \regex_set:Nn #1#2 +\cs_new_protected:Npn \regex_set:Nn #1#2 { \__regex_compile:n {#2} \tl_set_eq:NN #1 \l__regex_internal_regex } -\cs_new_protected_nopar:Npn \regex_gset:Nn #1#2 +\cs_new_protected:Npn \regex_gset:Nn #1#2 { \__regex_compile:n {#2} \tl_gset_eq:NN #1 \l__regex_internal_regex } -\cs_new_protected_nopar:Npn \regex_const:Nn #1#2 +\cs_new_protected:Npn \regex_const:Nn #1#2 { \__regex_compile:n {#2} \tl_const:Nx #1 { \exp_not:o \l__regex_internal_regex } @@ -2379,7 +2379,7 @@ \flag_new:n { __regex_end } \int_new:N \l__regex_submatch_int \int_new:N \l__regex_zeroth_submatch_int -\cs_new_protected_nopar:Npn \__regex_return: +\cs_new_protected:Npn \__regex_return: { \if_meaning:w \c_true_bool \g__regex_success_bool \prg_return_true: @@ -2498,7 +2498,7 @@ \prg_replicate:nn {#1} { \exp_not:n { \if_false: { \fi: } } } \fi: } -\cs_new_protected_nopar:Npn \__regex_extract: +\cs_new_protected:Npn \__regex_extract: { \if_meaning:w \c_true_bool \g__regex_success_bool \int_set_eq:NN \l__regex_zeroth_submatch_int \l__regex_submatch_int @@ -2585,7 +2585,7 @@ } \__regex_group_end_replace:N #3 } -\cs_new_protected_nopar:Npn \__regex_group_end_replace:N #1 +\cs_new_protected:Npn \__regex_group_end_replace:N #1 { \if_int_compare:w \l__regex_balance_int = \c_zero \else: diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3regex.sty b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3regex.sty index e1e95236068..4f92950cb33 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3regex.sty +++ b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3regex.sty @@ -45,8 +45,8 @@ %% prior consultation with the LaTeX3 Project. %% %% ----------------------------------------------------------------------- -\RequirePackage{expl3}[2016/05/14] -\@ifpackagelater{expl3}{2016/05/14} +\RequirePackage{expl3}[2016/10/19] +\@ifpackagelater{expl3}{2016/10/19} {} {% \PackageError{l3regex}{Support package l3kernel too old} @@ -58,7 +58,7 @@ }% \endinput } -\GetIdInfo$Id: l3regex.dtx 6492 2016-05-14 20:27:55Z joseph $ +\GetIdInfo$Id: l3regex.dtx 6730 2016-10-19 11:19:38Z joseph $ {L3 Experimental regular expressions} \ProvidesExplPackage {\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription} @@ -130,7 +130,7 @@ \fi: \fi: } -\cs_new_protected_nopar:Npn \__regex_compute_case_changed_char: +\cs_new_protected:Npn \__regex_compute_case_changed_char: { \int_set_eq:NN \l__regex_case_changed_char_int \l__regex_current_char_int \if_int_compare:w \l__regex_current_char_int < \c_ninety_one @@ -214,14 +214,14 @@ \group_end: } } -\cs_new_protected_nopar:Npn \__regex_prop_d: +\cs_new_protected:Npn \__regex_prop_d: { \__regex_item_caseful_range:nn \c_forty_eight { 57 } } % 0--9 -\cs_new_protected_nopar:Npn \__regex_prop_h: +\cs_new_protected:Npn \__regex_prop_h: { \__regex_item_caseful_equal:n \c_thirty_two % space \__regex_item_caseful_equal:n \c_nine % tab } -\cs_new_protected_nopar:Npn \__regex_prop_s: +\cs_new_protected:Npn \__regex_prop_s: { \__regex_item_caseful_equal:n \c_thirty_two % space \__regex_item_caseful_equal:n \c_nine % tab @@ -229,52 +229,52 @@ \__regex_item_caseful_equal:n \c_twelve % ff \__regex_item_caseful_equal:n \c_thirteen % cr } -\cs_new_protected_nopar:Npn \__regex_prop_v: +\cs_new_protected:Npn \__regex_prop_v: { \__regex_item_caseful_range:nn \c_ten \c_thirteen } % lf, vtab, ff, cr -\cs_new_protected_nopar:Npn \__regex_prop_w: +\cs_new_protected:Npn \__regex_prop_w: { \__regex_item_caseful_range:nn \c_ninety_seven { 122 } % a--z \__regex_item_caseful_range:nn \c_sixty_five { 90 } % A--Z \__regex_item_caseful_range:nn \c_forty_eight { 57 } % 0--9 \__regex_item_caseful_equal:n { 95 } % _ } -\cs_new_protected_nopar:Npn \__regex_prop_N: +\cs_new_protected:Npn \__regex_prop_N: { \__regex_item_reverse:n { \__regex_item_caseful_equal:n \c_ten } } -\cs_new_protected_nopar:Npn \__regex_posix_alnum: +\cs_new_protected:Npn \__regex_posix_alnum: { \__regex_posix_alpha: \__regex_posix_digit: } -\cs_new_protected_nopar:Npn \__regex_posix_alpha: +\cs_new_protected:Npn \__regex_posix_alpha: { \__regex_posix_lower: \__regex_posix_upper: } -\cs_new_protected_nopar:Npn \__regex_posix_ascii: +\cs_new_protected:Npn \__regex_posix_ascii: { \__regex_item_caseful_range:nn \c_zero \c_one_hundred_twenty_seven } \cs_new_eq:NN \__regex_posix_blank: \__regex_prop_h: -\cs_new_protected_nopar:Npn \__regex_posix_cntrl: +\cs_new_protected:Npn \__regex_posix_cntrl: { \__regex_item_caseful_range:nn \c_zero { 31 } \__regex_item_caseful_equal:n \c_one_hundred_twenty_seven } \cs_new_eq:NN \__regex_posix_digit: \__regex_prop_d: -\cs_new_protected_nopar:Npn \__regex_posix_graph: +\cs_new_protected:Npn \__regex_posix_graph: { \__regex_item_caseful_range:nn { 33 } { 126 } } -\cs_new_protected_nopar:Npn \__regex_posix_lower: +\cs_new_protected:Npn \__regex_posix_lower: { \__regex_item_caseful_range:nn \c_ninety_seven { 122 } } -\cs_new_protected_nopar:Npn \__regex_posix_print: +\cs_new_protected:Npn \__regex_posix_print: { \__regex_item_caseful_range:nn \c_thirty_two { 126 } } -\cs_new_protected_nopar:Npn \__regex_posix_punct: +\cs_new_protected:Npn \__regex_posix_punct: { \__regex_item_caseful_range:nn { 33 } { 47 } \__regex_item_caseful_range:nn { 58 } { 64 } \__regex_item_caseful_range:nn { 91 } { 96 } \__regex_item_caseful_range:nn { 123 } { 126 } } -\cs_new_protected_nopar:Npn \__regex_posix_space: +\cs_new_protected:Npn \__regex_posix_space: { \__regex_item_caseful_equal:n \c_thirty_two \__regex_item_caseful_range:nn \c_nine \c_thirteen } -\cs_new_protected_nopar:Npn \__regex_posix_upper: +\cs_new_protected:Npn \__regex_posix_upper: { \__regex_item_caseful_range:nn \c_sixty_five { 90 } } \cs_new_eq:NN \__regex_posix_word: \__regex_prop_w: -\cs_new_protected_nopar:Npn \__regex_posix_xdigit: +\cs_new_protected:Npn \__regex_posix_xdigit: { \__regex_posix_digit: \__regex_item_caseful_range:nn \c_sixty_five { 70 } @@ -283,9 +283,9 @@ \cs_new_protected:Npn \__regex_escape_use:nnnn #1#2#3#4 { \__tl_build:Nw \l__regex_internal_a_tl - \cs_set_nopar:Npn \__regex_escape_unescaped:N ##1 { #1 } - \cs_set_nopar:Npn \__regex_escape_escaped:N ##1 { #2 } - \cs_set_nopar:Npn \__regex_escape_raw:N ##1 { #3 } + \cs_set:Npn \__regex_escape_unescaped:N ##1 { #1 } + \cs_set:Npn \__regex_escape_escaped:N ##1 { #2 } + \cs_set:Npn \__regex_escape_raw:N ##1 { #3 } \int_set:Nn \tex_escapechar:D { 92 } \__str_gset_other:Nn \g__regex_internal_tl { #4 } \tl_set:Nx \l__regex_internal_b_tl @@ -303,7 +303,7 @@ { \__regex_escape_unescaped:N #1 } \__regex_escape_loop:N } -\cs_new_nopar:cpn { __regex_escape_ \c_backslash_str :w } +\cs_new:cpn { __regex_escape_ \c_backslash_str :w } \__regex_escape_loop:N #1 { \cs_if_exist_use:cF { __regex_escape_/\token_to_str:N #1:w } @@ -314,24 +314,24 @@ \cs_new_eq:NN \__regex_escape_escaped:N ? \cs_new_eq:NN \__regex_escape_raw:N ? \cs_new_eq:NN \__regex_escape_break:w \__prg_break: -\cs_new_nopar:cpn { __regex_escape_/break:w } +\cs_new:cpn { __regex_escape_/break:w } { \if_false: { \fi: } \__msg_kernel_error:nn { regex } { trailing-backslash } \exp_after:wN \use_none:n \exp_after:wN { \if_false: } \fi: } -\cs_new_nopar:cpn { __regex_escape_~:w } { } -\cs_new_nopar:cpx { __regex_escape_/a:w } +\cs_new:cpn { __regex_escape_~:w } { } +\cs_new:cpx { __regex_escape_/a:w } { \exp_not:N \__regex_escape_raw:N \iow_char:N \^^G } -\cs_new_nopar:cpx { __regex_escape_/t:w } +\cs_new:cpx { __regex_escape_/t:w } { \exp_not:N \__regex_escape_raw:N \iow_char:N \^^I } -\cs_new_nopar:cpx { __regex_escape_/n:w } +\cs_new:cpx { __regex_escape_/n:w } { \exp_not:N \__regex_escape_raw:N \iow_char:N \^^J } -\cs_new_nopar:cpx { __regex_escape_/f:w } +\cs_new:cpx { __regex_escape_/f:w } { \exp_not:N \__regex_escape_raw:N \iow_char:N \^^L } -\cs_new_nopar:cpx { __regex_escape_/r:w } +\cs_new:cpx { __regex_escape_/r:w } { \exp_not:N \__regex_escape_raw:N \iow_char:N \^^M } -\cs_new_nopar:cpx { __regex_escape_/e:w } +\cs_new:cpx { __regex_escape_/e:w } { \exp_not:N \__regex_escape_raw:N \iow_char:N \^^[ } \cs_new:cpn { __regex_escape_/x:w } \__regex_escape_loop:N { @@ -515,7 +515,7 @@ \prg_return_false: \fi: } -\cs_new_nopar:Npn \__regex_if_in_class:TF +\cs_new:Npn \__regex_if_in_class:TF { \if_int_odd:w \l__regex_mode_int \exp_after:wN \use_i:nn @@ -523,7 +523,7 @@ \exp_after:wN \use_ii:nn \fi: } -\cs_new_nopar:Npn \__regex_if_in_cs:TF +\cs_new:Npn \__regex_if_in_cs:TF { \if_int_odd:w \l__regex_mode_int \exp_after:wN \use_ii:nn @@ -535,7 +535,7 @@ \fi: \fi: } -\cs_new_nopar:Npn \__regex_if_in_class_or_catcode:TF +\cs_new:Npn \__regex_if_in_class_or_catcode:TF { \if_int_odd:w \l__regex_mode_int \exp_after:wN \use_i:nn @@ -547,7 +547,7 @@ \fi: \fi: } -\cs_new_nopar:Npn \__regex_if_within_catcode:TF +\cs_new:Npn \__regex_if_within_catcode:TF { \if_int_compare:w \l__regex_mode_int > \c_zero \exp_after:wN \use_i:nn @@ -578,17 +578,17 @@ \fi: \fi: } -\cs_new_protected_nopar:Npn \__regex_compile:w +\cs_new_protected:Npn \__regex_compile:w { \__tl_build_x:Nw \l__regex_internal_regex \int_zero:N \l__regex_group_level_int \int_set_eq:NN \l__regex_default_catcodes_int \c__regex_all_catcodes_int \int_set_eq:NN \l__regex_catcodes_int \l__regex_default_catcodes_int - \cs_set_nopar:Npn \__regex_item_equal:n { \__regex_item_caseful_equal:n } - \cs_set_nopar:Npn \__regex_item_range:nn { \__regex_item_caseful_range:nn } + \cs_set:Npn \__regex_item_equal:n { \__regex_item_caseful_equal:n } + \cs_set:Npn \__regex_item_range:nn { \__regex_item_caseful_range:nn } \__tl_build_one:n { \__regex_branch:n { \if_false: } \fi: } } -\cs_new_protected_nopar:Npn \__regex_compile_end: +\cs_new_protected:Npn \__regex_compile_end: { \__regex_if_in_class:TF { @@ -712,11 +712,11 @@ #3 #4 } } -\cs_new_protected_nopar:cpn { __regex_compile_quantifier_?:w } +\cs_new_protected:cpn { __regex_compile_quantifier_?:w } { \__regex_compile_quantifier_lazyness:nnNN { 0 } { 1 } } -\cs_new_protected_nopar:cpn { __regex_compile_quantifier_*:w } +\cs_new_protected:cpn { __regex_compile_quantifier_*:w } { \__regex_compile_quantifier_lazyness:nnNN { 0 } { -1 } } -\cs_new_protected_nopar:cpn { __regex_compile_quantifier_+:w } +\cs_new_protected:cpn { __regex_compile_quantifier_+:w } { \__regex_compile_quantifier_lazyness:nnNN { 1 } { -1 } } \cs_new_protected:cpn { __regex_compile_quantifier_ \c_left_brace_str :w } { @@ -855,13 +855,13 @@ #2#3 } } -\cs_new_protected_nopar:cpx { __regex_compile_.: } +\cs_new_protected:cpx { __regex_compile_.: } { \exp_not:N \__regex_if_in_class:TF { \__regex_compile_raw:N . } { \__regex_compile_one:x \exp_not:c { __regex_prop_.: } } } -\cs_new_protected_nopar:cpn { __regex_prop_.: } +\cs_new_protected:cpn { __regex_prop_.: } { \if_int_compare:w \l__regex_current_char_int > - \c_two \exp_after:wN \__regex_break_true:w @@ -869,9 +869,9 @@ } \cs_set_protected:Npn \__regex_tmp:w #1#2 { - \cs_new_protected_nopar:cpx { __regex_compile_/#1: } + \cs_new_protected:cpx { __regex_compile_/#1: } { \__regex_compile_one:x \exp_not:c { __regex_prop_#1: } } - \cs_new_protected_nopar:cpx { __regex_compile_/#2: } + \cs_new_protected:cpx { __regex_compile_/#2: } { \__regex_compile_one:x { \__regex_item_reverse:n \exp_not:c { __regex_prop_#1: } } @@ -882,7 +882,7 @@ \__regex_tmp:w s S \__regex_tmp:w v V \__regex_tmp:w w W -\cs_new_protected_nopar:cpn { __regex_compile_/N: } +\cs_new_protected:cpn { __regex_compile_/N: } { \__regex_compile_one:x \__regex_prop_N: } \cs_new_protected:Npn \__regex_compile_anchor:NF #1#2 { @@ -894,7 +894,7 @@ } \cs_set_protected:Npn \__regex_tmp:w #1#2 { - \cs_new_protected_nopar:cpn { __regex_compile_/#1: } + \cs_new_protected:cpn { __regex_compile_/#1: } { \__regex_compile_anchor:NF #2 { \__regex_compile_raw_error:N #1 } } } \__regex_tmp:w A \l__regex_min_pos_int @@ -903,12 +903,12 @@ \__regex_tmp:w z \l__regex_max_pos_int \cs_set_protected:Npn \__regex_tmp:w #1#2 { - \cs_new_protected_nopar:cpn { __regex_compile_#1: } + \cs_new_protected:cpn { __regex_compile_#1: } { \__regex_compile_anchor:NF #2 { \__regex_compile_raw:N #1 } } } \exp_args:Nx \__regex_tmp:w { \iow_char:N \^ } \l__regex_min_pos_int \exp_args:Nx \__regex_tmp:w { \iow_char:N \$ } \l__regex_max_pos_int -\cs_new_protected_nopar:cpn { __regex_compile_/b: } +\cs_new_protected:cpn { __regex_compile_/b: } { \__regex_if_in_class_or_catcode:TF { \__regex_compile_raw_error:N b } @@ -917,7 +917,7 @@ { \__regex_assertion:Nn \c_true_bool { \__regex_b_test: } } } } -\cs_new_protected_nopar:cpn { __regex_compile_/B: } +\cs_new_protected:cpn { __regex_compile_/B: } { \__regex_if_in_class_or_catcode:TF { \__regex_compile_raw_error:N B } @@ -941,7 +941,7 @@ } { \__regex_compile_raw:N ] } } -\cs_new_protected_nopar:cpn { __regex_compile_[: } +\cs_new_protected:cpn { __regex_compile_[: } { \__regex_if_in_class:TF { \__regex_compile_class_posix_test:w } @@ -954,7 +954,7 @@ { \__regex_compile_class_normal:w } } } -\cs_new_protected_nopar:Npn \__regex_compile_class_normal:w +\cs_new_protected:Npn \__regex_compile_class_normal:w { \__regex_compile_class:TFNN { \__regex_class:NnnnN \c_true_bool } @@ -1075,7 +1075,7 @@ \exp_after:wN \__regex_compile_raw:N \exp_after:wN ) \fi: } -\cs_new_protected_nopar:cpn { __regex_compile_(: } +\cs_new_protected:cpn { __regex_compile_(: } { \__regex_if_in_class:TF { \__regex_compile_raw:N ( } { \__regex_compile_lparen:w } @@ -1098,7 +1098,7 @@ #1 #2 #3 #4 } } -\cs_new_protected_nopar:cpn { __regex_compile_|: } +\cs_new_protected:cpn { __regex_compile_|: } { \__regex_if_in_class:TF { \__regex_compile_raw:N | } { @@ -1106,21 +1106,21 @@ { \if_false: { \fi: } \__regex_branch:n { \if_false: } \fi: } } } -\cs_new_protected_nopar:cpn { __regex_compile_): } +\cs_new_protected:cpn { __regex_compile_): } { \__regex_if_in_class:TF { \__regex_compile_raw:N ) } { \__regex_compile_group_end: } } -\cs_new_protected_nopar:cpn { __regex_compile_special_group_::w } +\cs_new_protected:cpn { __regex_compile_special_group_::w } { \__regex_compile_group_begin:N \__regex_group_no_capture:nnnN } -\cs_new_protected_nopar:cpn { __regex_compile_special_group_|:w } +\cs_new_protected:cpn { __regex_compile_special_group_|:w } { \__regex_compile_group_begin:N \__regex_group_resetting:nnnN } \cs_new_protected:Npn \__regex_compile_special_group_i:w #1#2 { \str_if_eq:nnTF { #1 #2 } { \__regex_compile_special:N ) } { - \cs_set_nopar:Npn \__regex_item_equal:n { \__regex_item_caseless_equal:n } - \cs_set_nopar:Npn \__regex_item_range:nn { \__regex_item_caseless_range:nn } + \cs_set:Npn \__regex_item_equal:n { \__regex_item_caseless_equal:n } + \cs_set:Npn \__regex_item_range:nn { \__regex_item_caseless_range:nn } } { \__msg_kernel_warning:nnx { regex } { unknown-option } { (?i #2 } @@ -1130,13 +1130,13 @@ #1 #2 } } -\cs_new_protected_nopar:cpn { __regex_compile_special_group_-:w } #1#2#3#4 +\cs_new_protected:cpn { __regex_compile_special_group_-:w } #1#2#3#4 { \str_if_eq:nnTF { #1 #2 #3 #4 } { \__regex_compile_raw:N i \__regex_compile_special:N ) } { - \cs_set_nopar:Npn \__regex_item_equal:n { \__regex_item_caseful_equal:n } - \cs_set_nopar:Npn \__regex_item_range:nn { \__regex_item_caseful_range:nn } + \cs_set:Npn \__regex_item_equal:n { \__regex_item_caseful_equal:n } + \cs_set:Npn \__regex_item_range:nn { \__regex_item_caseful_range:nn } } { \__msg_kernel_warning:nnx { regex } { unknown-option } { (?-#2#4 } @@ -1209,14 +1209,14 @@ \tex_advance:D \l__regex_catcodes_int #1 \fi: } -\cs_new_protected_nopar:Npn \__regex_compile_c_lbrack_end: +\cs_new_protected:Npn \__regex_compile_c_lbrack_end: { \if_meaning:w \c_false_bool \l__regex_catcodes_bool \int_set:Nn \l__regex_catcodes_int { \c__regex_all_catcodes_int - \l__regex_catcodes_int } \fi: } -\cs_new_protected_nopar:cpn { __regex_compile_c_ \c_left_brace_str :w } +\cs_new_protected:cpn { __regex_compile_c_ \c_left_brace_str :w } { \__regex_compile:w \__regex_disable_submatches: @@ -1311,7 +1311,7 @@ } } } -\cs_new_protected_nopar:cpn { __regex_compile_/K: } +\cs_new_protected:cpn { __regex_compile_/K: } { \int_compare:nNnTF \l__regex_mode_int = \c_zero { \__tl_build_one:n { \__regex_command_K: } } @@ -1320,25 +1320,25 @@ \cs_new_protected:Npn \__regex_show:Nx #1#2 { \__tl_build:Nw \l__regex_internal_a_tl - \cs_set_protected_nopar:Npn \__regex_branch:n + \cs_set_protected:Npn \__regex_branch:n { \seq_pop_right:NN \l__regex_show_prefix_seq \l__regex_internal_a_tl \__regex_show_one:n { +-branch } \seq_put_right:No \l__regex_show_prefix_seq \l__regex_internal_a_tl \use:n } - \cs_set_protected_nopar:Npn \__regex_group:nnnN + \cs_set_protected:Npn \__regex_group:nnnN { \__regex_show_group_aux:nnnnN { } } - \cs_set_protected_nopar:Npn \__regex_group_no_capture:nnnN + \cs_set_protected:Npn \__regex_group_no_capture:nnnN { \__regex_show_group_aux:nnnnN { ~(no~capture) } } - \cs_set_protected_nopar:Npn \__regex_group_resetting:nnnN + \cs_set_protected:Npn \__regex_group_resetting:nnnN { \__regex_show_group_aux:nnnnN { ~(resetting) } } \cs_set_eq:NN \__regex_class:NnnnN \__regex_show_class:NnnnN - \cs_set_protected_nopar:Npn \__regex_command_K: + \cs_set_protected:Npn \__regex_command_K: { \__regex_show_one:n { reset~match~start~(\iow_char:N\\K) } } \cs_set_protected:Npn \__regex_assertion:Nn ##1##2 { \__regex_show_one:n { \bool_if:NF ##1 { negative~ } assertion:~##2 } } - \cs_set_nopar:Npn \__regex_b_test: { word~boundary } + \cs_set:Npn \__regex_b_test: { word~boundary } \cs_set_eq:NN \__regex_anchor:N \__regex_show_anchor_to_str:N \cs_set_protected:Npn \__regex_item_caseful_equal:n ##1 { \__regex_show_one:n { char~code~\int_eval:n{##1} } } @@ -1503,14 +1503,14 @@ \fi: } } -\cs_new_protected_nopar:Npn \__regex_push_lr_states: +\cs_new_protected:Npn \__regex_push_lr_states: { \seq_push:No \l__regex_left_state_seq { \int_use:N \l__regex_left_state_int } \seq_push:No \l__regex_right_state_seq { \int_use:N \l__regex_right_state_int } } -\cs_new_protected_nopar:Npn \__regex_pop_lr_states: +\cs_new_protected:Npn \__regex_pop_lr_states: { \seq_pop:NN \l__regex_left_state_seq \l__regex_internal_a_tl \int_set:Nn \l__regex_left_state_int \l__regex_internal_a_tl @@ -1519,13 +1519,13 @@ } \cs_new_protected:Npn \__regex_toks_put_left:Nx #1#2 { - \cs_set_nopar:Npx \__regex_tmp:w { #2 } + \cs_set:Npx \__regex_tmp:w { #2 } \tex_toks:D #1 \exp_after:wN \exp_after:wN \exp_after:wN { \exp_after:wN \__regex_tmp:w \tex_the:D \tex_toks:D #1 } } \cs_new_protected:Npn \__regex_toks_put_right:Nx #1#2 { - \cs_set_nopar:Npx \__regex_tmp:w {#2} + \cs_set:Npx \__regex_tmp:w {#2} \tex_toks:D #1 \exp_after:wN { \tex_the:D \tex_toks:D \exp_after:wN #1 \__regex_tmp:w } } @@ -1535,7 +1535,7 @@ { \__regex_toks_put_left:Nx #2 { #1 { \int_eval:n { #3 - #2 } } } } \cs_new_protected:Npn \__regex_build_transition_right:nNn #1#2#3 { \__regex_toks_put_right:Nx #2 { #1 { \int_eval:n { #3 - #2 } } } } -\cs_new_protected_nopar:Npn \__regex_build_new_state: +\cs_new_protected:Npn \__regex_build_new_state: { \tex_toks:D \l__regex_max_state_int { } \int_set_eq:NN \l__regex_left_state_int \l__regex_right_state_int @@ -1558,7 +1558,7 @@ } \cs_new_protected:Npn \__regex_class:NnnnN #1#2#3#4#5 { - \cs_set_nopar:Npx \__regex_tests_action_cost:n ##1 + \cs_set:Npx \__regex_tests_action_cost:n ##1 { \exp_not:n { \exp_not:n {#2} } \bool_if:NTF #1 @@ -1633,7 +1633,7 @@ #1 } } -\cs_new_protected_nopar:Npn \__regex_group_no_capture:nnnN +\cs_new_protected:Npn \__regex_group_no_capture:nnnN { \__regex_group_aux:nnnnN { -1 } } \cs_new_protected:Npn \__regex_group_resetting:nnnN #1 { @@ -1800,7 +1800,7 @@ \exp_after:wN \__regex_break_true:w \fi: } -\cs_new_protected_nopar:Npn \__regex_b_test: +\cs_new_protected:Npn \__regex_b_test: { \group_begin: \int_set_eq:NN \l__regex_current_char_int \l__regex_last_char_int @@ -1809,7 +1809,7 @@ { \group_end: \__regex_item_reverse:n \__regex_prop_w: } { \group_end: \__regex_prop_w: } } -\cs_new_protected_nopar:Npn \__regex_command_K: +\cs_new_protected:Npn \__regex_command_K: { \__regex_build_new_state: \__regex_toks_put_right:Nx \l__regex_left_state_int @@ -1865,10 +1865,10 @@ \bool_set_false:N \l__regex_empty_success_bool \__regex_match_once: } -\cs_new_protected_nopar:Npn \__regex_match_once: +\cs_new_protected:Npn \__regex_match_once: { \if_meaning:w \c_true_bool \l__regex_empty_success_bool - \cs_set_nopar:Npn \__regex_if_two_empty_matches:F + \cs_set:Npn \__regex_if_two_empty_matches:F { \int_compare:nNnF \l__regex_start_pos_int = \l__regex_current_pos_int } \else: \cs_set_eq:NN \__regex_if_two_empty_matches:F \use:n @@ -1884,7 +1884,7 @@ \__regex_match_loop: \l__regex_every_match_tl } -\cs_new_protected_nopar:Npn \__regex_single_match: +\cs_new_protected:Npn \__regex_single_match: { \tl_set:Nn \l__regex_every_match_tl { \bool_gset_eq:NN \g__regex_success_bool \l__regex_match_success_bool } @@ -1900,7 +1900,7 @@ \fi: } } -\cs_new_protected_nopar:Npn \__regex_match_loop: +\cs_new_protected:Npn \__regex_match_loop: { \tex_advance:D \l__regex_step_int \c_two \int_incr:N \l__regex_current_pos_int @@ -1946,14 +1946,14 @@ \or: \int_decr:N \l__regex_balance_int \fi: } -\cs_new_protected_nopar:Npn \__regex_query_get: +\cs_new_protected:Npn \__regex_query_get: { \l__regex_current_char_int = \etex_mutoglue:D \tex_muskip:D \l__regex_current_pos_int \l__regex_current_catcode_int = \etex_gluestretch:D \etex_mutoglue:D \tex_muskip:D \l__regex_current_pos_int } -\cs_new_protected_nopar:Npn \__regex_use_state: +\cs_new_protected:Npn \__regex_use_state: { \tex_dimen:D \l__regex_current_state_int = \l__regex_step_int sp \scan_stop: @@ -1971,16 +1971,16 @@ \fi: \scan_stop: } -\cs_new_protected_nopar:Npn \__regex_action_start_wildcard: +\cs_new_protected:Npn \__regex_action_start_wildcard: { \bool_set_true:N \l__regex_fresh_thread_bool \__regex_action_free:n {1} \bool_set_false:N \l__regex_fresh_thread_bool \__regex_action_cost:n {0} } -\cs_new_protected_nopar:Npn \__regex_action_free:n +\cs_new_protected:Npn \__regex_action_free:n { \__regex_action_free_aux:nn { > \l__regex_step_int \else: } } -\cs_new_protected_nopar:Npn \__regex_action_free_group:n +\cs_new_protected:Npn \__regex_action_free_group:n { \__regex_action_free_aux:nn { < \l__regex_step_int } } \cs_new_protected:Npn \__regex_action_free_aux:nn #1#2 { @@ -2010,14 +2010,14 @@ \tex_skip:D \l__regex_max_active_int = #1 sp \scan_stop: \int_incr:N \l__regex_max_active_int } -\cs_new_protected_nopar:Npn \__regex_store_submatches: +\cs_new_protected:Npn \__regex_store_submatches: { \tex_toks:D \l__regex_max_active_int \exp_after:wN { \l__regex_current_submatches_prop } } -\cs_new_protected_nopar:Npn \__regex_disable_submatches: +\cs_new_protected:Npn \__regex_disable_submatches: { - \cs_set_protected_nopar:Npn \__regex_store_submatches: { } + \cs_set_protected:Npn \__regex_store_submatches: { } \cs_set_protected:Npn \__regex_action_submatch:n ##1 { } } \cs_new_protected:Npn \__regex_action_submatch:n #1 @@ -2025,7 +2025,7 @@ \prop_put:Nno \l__regex_current_submatches_prop {#1} { \int_use:N \l__regex_current_pos_int } } -\cs_new_protected_nopar:Npn \__regex_action_success: +\cs_new_protected:Npn \__regex_action_success: { \__regex_if_two_empty_matches:F { @@ -2183,7 +2183,7 @@ } { \__regex_replacement_error:NNN c #1#2 } } -\cs_new_protected_nopar:cpn { __regex_replacement_c_ \c_left_brace_str :w } +\cs_new_protected:cpn { __regex_replacement_c_ \c_left_brace_str :w } { \if_case:w \l__regex_replacement_csnames_int \__tl_build_one:n @@ -2226,10 +2226,10 @@ \fi: } \char_set_catcode_active:N \^^@ - \cs_new_protected_nopar:Npn \__regex_replacement_c_A:w + \cs_new_protected:Npn \__regex_replacement_c_A:w { \__regex_replacement_char:nNN { \exp_not:n { \exp_not:N ^^@ } } } \char_set_catcode_group_begin:N \^^@ - \cs_new_protected_nopar:Npn \__regex_replacement_c_B:w + \cs_new_protected:Npn \__regex_replacement_c_B:w { \if_int_compare:w \l__regex_replacement_csnames_int = \c_zero \int_incr:N \l__regex_balance_int @@ -2240,10 +2240,10 @@ \cs_new_protected:Npn \__regex_replacement_c_C:w #1#2 { \__tl_build_one:n { \exp_not:N \exp_not:N \exp_not:c {#2} } } \char_set_catcode_math_subscript:N \^^@ - \cs_new_protected_nopar:Npn \__regex_replacement_c_D:w + \cs_new_protected:Npn \__regex_replacement_c_D:w { \__regex_replacement_char:nNN { ^^@ } } \char_set_catcode_group_end:N \^^@ - \cs_new_protected_nopar:Npn \__regex_replacement_c_E:w + \cs_new_protected:Npn \__regex_replacement_c_E:w { \if_int_compare:w \l__regex_replacement_csnames_int = \c_zero \int_decr:N \l__regex_balance_int @@ -2252,16 +2252,16 @@ { \exp_not:n { \if_false: { \fi: ^^@ } } } \char_set_catcode_letter:N \^^@ - \cs_new_protected_nopar:Npn \__regex_replacement_c_L:w + \cs_new_protected:Npn \__regex_replacement_c_L:w { \__regex_replacement_char:nNN { ^^@ } } \char_set_catcode_math_toggle:N \^^@ - \cs_new_protected_nopar:Npn \__regex_replacement_c_M:w + \cs_new_protected:Npn \__regex_replacement_c_M:w { \__regex_replacement_char:nNN { ^^@ } } \char_set_catcode_other:N \^^@ - \cs_new_protected_nopar:Npn \__regex_replacement_c_O:w + \cs_new_protected:Npn \__regex_replacement_c_O:w { \__regex_replacement_char:nNN { ^^@ } } \char_set_catcode_parameter:N \^^@ - \cs_new_protected_nopar:Npn \__regex_replacement_c_P:w + \cs_new_protected:Npn \__regex_replacement_c_P:w { \__regex_replacement_char:nNN { \exp_not:n { \exp_not:n { ^^@^^@^^@^^@ } } } @@ -2279,10 +2279,10 @@ \fi: } \char_set_catcode_alignment:N \^^@ - \cs_new_protected_nopar:Npn \__regex_replacement_c_T:w + \cs_new_protected:Npn \__regex_replacement_c_T:w { \__regex_replacement_char:nNN { ^^@ } } \char_set_catcode_math_superscript:N \^^@ - \cs_new_protected_nopar:Npn \__regex_replacement_c_U:w + \cs_new_protected:Npn \__regex_replacement_c_U:w { \__regex_replacement_char:nNN { ^^@ } } \group_end: \cs_new_protected:Npn \__regex_replacement_error:NNN #1#2#3 @@ -2292,17 +2292,17 @@ } \cs_new_protected:Npn \regex_new:N #1 { \cs_new_eq:NN #1 \c__regex_no_match_regex } -\cs_new_protected_nopar:Npn \regex_set:Nn #1#2 +\cs_new_protected:Npn \regex_set:Nn #1#2 { \__regex_compile:n {#2} \tl_set_eq:NN #1 \l__regex_internal_regex } -\cs_new_protected_nopar:Npn \regex_gset:Nn #1#2 +\cs_new_protected:Npn \regex_gset:Nn #1#2 { \__regex_compile:n {#2} \tl_gset_eq:NN #1 \l__regex_internal_regex } -\cs_new_protected_nopar:Npn \regex_const:Nn #1#2 +\cs_new_protected:Npn \regex_const:Nn #1#2 { \__regex_compile:n {#2} \tl_const:Nx #1 { \exp_not:o \l__regex_internal_regex } @@ -2352,7 +2352,7 @@ \flag_new:n { __regex_end } \int_new:N \l__regex_submatch_int \int_new:N \l__regex_zeroth_submatch_int -\cs_new_protected_nopar:Npn \__regex_return: +\cs_new_protected:Npn \__regex_return: { \if_meaning:w \c_true_bool \g__regex_success_bool \prg_return_true: @@ -2471,7 +2471,7 @@ \prg_replicate:nn {#1} { \exp_not:n { \if_false: { \fi: } } } \fi: } -\cs_new_protected_nopar:Npn \__regex_extract: +\cs_new_protected:Npn \__regex_extract: { \if_meaning:w \c_true_bool \g__regex_success_bool \int_set_eq:NN \l__regex_zeroth_submatch_int \l__regex_submatch_int @@ -2558,7 +2558,7 @@ } \__regex_group_end_replace:N #3 } -\cs_new_protected_nopar:Npn \__regex_group_end_replace:N #1 +\cs_new_protected:Npn \__regex_group_end_replace:N #1 { \if_int_compare:w \l__regex_balance_int = \c_zero \else: diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-convert.sty b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-convert.sty index bedffef50f0..d7554d39c69 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-convert.sty +++ b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-convert.sty @@ -46,24 +46,14 @@ %% %% ----------------------------------------------------------------------- \RequirePackage{expl3} -\GetIdInfo$Id: l3str-convert.dtx 6443 2016-03-24 10:59:09Z joseph $ +\GetIdInfo$Id: l3str-convert.dtx 6699 2016-09-07 16:03:15Z bruno $ {L3 Experimental string encoding conversions} \ProvidesExplPackage {\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription} \RequirePackage{l3tl-analysis,l3tl-build,l3flag} \cs_if_exist:NF \use_ii_i:nn { \cs_new:Npn \use_ii_i:nn #1#2 { #2 #1 } } -\int_const:Nn \c_max_char_int - { - \bool_if:nTF - { - \sys_if_engine_luatex_p: || - \sys_if_engine_xetex_p: - } - { "10FFFF } - { "FF } - } -\cs_new_protected_nopar:Npn \__str_tmp:w { } +\cs_new_protected:Npn \__str_tmp:w { } \tl_new:N \l__str_internal_tl \int_new:N \l__str_internal_int \tl_new:N \g__str_result_tl @@ -140,7 +130,7 @@ \fi: \__str_if_contains_char_aux:NN #1 } -\cs_new_nopar:Npn \__str_if_contains_char_true: +\cs_new:Npn \__str_if_contains_char_true: { \__prg_break:n { \prg_return_true: \use_none:n } } \prg_new_conditional:Npnn \__str_octal_use:N #1 { TF } { @@ -185,7 +175,7 @@ \tl_const:cn { c__str_byte_-1_tl } { { } \use_none:n { } } \cs_new:Npn \__str_output_byte:n #1 { \__str_output_byte:w #1 \__str_output_end: } -\cs_new_nopar:Npn \__str_output_byte:w +\cs_new:Npn \__str_output_byte:w { \exp_after:wN \exp_after:wN \exp_after:wN \use_i:nnn @@ -193,13 +183,13 @@ } \cs_new:Npn \__str_output_hexadecimal:n #1 { \__str_output_hexadecimal:w #1 \__str_output_end: } -\cs_new_nopar:Npn \__str_output_hexadecimal:w +\cs_new:Npn \__str_output_hexadecimal:w { \exp_after:wN \exp_after:wN \exp_after:wN \use_none:n \cs:w c__str_byte_ \__int_value:w \__int_eval:w } -\cs_new_nopar:Npn \__str_output_end: +\cs_new:Npn \__str_output_end: { \__int_eval_end: _tl \cs_end: } \cs_new:Npn \__str_output_byte_pair_be:n #1 { @@ -259,9 +249,9 @@ { \flag_if_raised:nT {#1} { \bool_gset_true:N \g__str_error_bool } } \cs_new:Npn \__str_if_flag_times:nT #1#2 { \flag_if_raised:nT {#1} { #2~(x \flag_height:n {#1} ) } } -\cs_new_protected_nopar:Npn \str_set_convert:Nnnn +\cs_new_protected:Npn \str_set_convert:Nnnn { \__str_convert:nNNnnn { } \tl_set_eq:NN } -\cs_new_protected_nopar:Npn \str_gset_convert:Nnnn +\cs_new_protected:Npn \str_gset_convert:Nnnn { \__str_convert:nNNnnn { } \tl_gset_eq:NN } \prg_new_protected_conditional:Npnn \str_set_convert:Nnnn #1#2#3#4 { T , F , TF } @@ -429,7 +419,7 @@ \sys_if_engine_xetex_p: } { - \cs_new_protected_nopar:Npn \__str_convert_unescape_: + \cs_new_protected:Npn \__str_convert_unescape_: { \flag_clear:n { str_byte } \tl_gset:Nx \g__str_result_tl @@ -437,11 +427,11 @@ \__str_if_flag_error:nnx { str_byte } { non-byte } { bytes } } } - { \cs_new_protected_nopar:Npn \__str_convert_unescape_: { } } + { \cs_new_protected:Npn \__str_convert_unescape_: { } } \cs_new_eq:NN \__str_convert_unescape_bytes: \__str_convert_unescape_: -\cs_new_protected_nopar:Npn \__str_convert_escape_: { } +\cs_new_protected:Npn \__str_convert_escape_: { } \cs_new_eq:NN \__str_convert_escape_bytes: \__str_convert_escape_: -\cs_new_protected_nopar:Npn \__str_convert_decode_: +\cs_new_protected:Npn \__str_convert_decode_: { \__str_convert_gmap:N \__str_decode_native_char:N } \cs_new:Npn \__str_decode_native_char:N #1 { #1 \s__tl \__int_value:w `#1 \s__tl } @@ -453,7 +443,7 @@ \sys_if_engine_xetex_p: } { - \cs_new_protected_nopar:Npn \__str_convert_encode_: + \cs_new_protected:Npn \__str_convert_encode_: { \__tl_gbuild_x:Nw \g__str_result_tl \exp_after:wN \__str_encode_native_loop:w @@ -470,7 +460,7 @@ } } { - \cs_new_protected_nopar:Npn \__str_convert_encode_: + \cs_new_protected:Npn \__str_convert_encode_: { \flag_clear:n { str_error } \__str_convert_gmap_internal:N \__str_encode_native_char:n @@ -495,7 +485,7 @@ } } \group_end: -\cs_new_protected_nopar:Npn \__str_convert_decode_clist: +\cs_new_protected:Npn \__str_convert_decode_clist: { \clist_set:No \g__str_result_tl \g__str_result_tl \tl_gset:Nx \g__str_result_tl @@ -506,7 +496,7 @@ } \cs_new:Npn \__str_decode_clist_char:n #1 { #1 \s__tl \int_eval:n {#1} \s__tl } -\cs_new_protected_nopar:Npn \__str_convert_encode_clist: +\cs_new_protected:Npn \__str_convert_encode_clist: { \__str_convert_gmap_internal:N \__str_encode_clist_char:n \tl_gset:Nx \g__str_result_tl { \tl_tail:N \g__str_result_tl } @@ -515,9 +505,9 @@ \cs_new_protected:Npn \__str_declare_eight_bit_encoding:nnn #1#2#3 { \tl_set:Nn \l__str_internal_tl {#1} - \cs_new_protected_nopar:cpn { __str_convert_decode_#1: } + \cs_new_protected:cpn { __str_convert_decode_#1: } { \__str_convert_decode_eight_bit:n {#1} } - \cs_new_protected_nopar:cpn { __str_convert_encode_#1: } + \cs_new_protected:cpn { __str_convert_encode_#1: } { \__str_convert_encode_eight_bit:n {#1} } \tl_const:cn { c__str_encoding_#1_tl } {#2} \tl_const:cn { c__str_encoding_#1_missing_tl } {#3} diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-utf16.def b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-utf16.def index e2b8568d358..4bfb9bc9444 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-utf16.def +++ b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-utf16.def @@ -48,14 +48,14 @@ \group_begin: \char_set_catcode_other:N \^^fe \char_set_catcode_other:N \^^ff - \cs_new_protected_nopar:cpn { __str_convert_encode_utf16: } + \cs_new_protected:cpn { __str_convert_encode_utf16: } { \__str_encode_utf_xvi_aux:N \__str_output_byte_pair_be:n \tl_gput_left:Nx \g__str_result_tl { ^^fe ^^ff } } - \cs_new_protected_nopar:cpn { __str_convert_encode_utf16be: } + \cs_new_protected:cpn { __str_convert_encode_utf16be: } { \__str_encode_utf_xvi_aux:N \__str_output_byte_pair_be:n } - \cs_new_protected_nopar:cpn { __str_convert_encode_utf16le: } + \cs_new_protected:cpn { __str_convert_encode_utf16le: } { \__str_encode_utf_xvi_aux:N \__str_output_byte_pair_le:n } \cs_new_protected:Npn \__str_encode_utf_xvi_aux:N #1 { @@ -130,11 +130,11 @@ the~basic~code~unit~for~UTF-16~is~16~bits~(2~bytes). } } - \cs_new_protected_nopar:cpn { __str_convert_decode_utf16be: } + \cs_new_protected:cpn { __str_convert_decode_utf16be: } { \__str_decode_utf_xvi:Nw 1 \g__str_result_tl \s__stop } - \cs_new_protected_nopar:cpn { __str_convert_decode_utf16le: } + \cs_new_protected:cpn { __str_convert_decode_utf16le: } { \__str_decode_utf_xvi:Nw 2 \g__str_result_tl \s__stop } - \cs_new_protected_nopar:cpn { __str_convert_decode_utf16: } + \cs_new_protected:cpn { __str_convert_decode_utf16: } { \exp_after:wN \__str_decode_utf_xvi_bom:NN \g__str_result_tl \s__stop \s__stop \s__stop diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-utf32.def b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-utf32.def index df8659954e7..02060931fdb 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-utf32.def +++ b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-utf32.def @@ -49,14 +49,14 @@ \char_set_catcode_other:N \^^00 \char_set_catcode_other:N \^^fe \char_set_catcode_other:N \^^ff - \cs_new_protected_nopar:cpn { __str_convert_encode_utf32: } + \cs_new_protected:cpn { __str_convert_encode_utf32: } { \__str_convert_gmap_internal:N \__str_encode_utf_xxxii_be:n \tl_gput_left:Nx \g__str_result_tl { ^^00 ^^00 ^^fe ^^ff } } - \cs_new_protected_nopar:cpn { __str_convert_encode_utf32be: } + \cs_new_protected:cpn { __str_convert_encode_utf32be: } { \__str_convert_gmap_internal:N \__str_encode_utf_xxxii_be:n } - \cs_new_protected_nopar:cpn { __str_convert_encode_utf32le: } + \cs_new_protected:cpn { __str_convert_encode_utf32le: } { \__str_convert_gmap_internal:N \__str_encode_utf_xxxii_le:n } \cs_new:Npn \__str_encode_utf_xxxii_be:n #1 { @@ -106,11 +106,11 @@ Perhaps~the~string~was~truncated? } } - \cs_new_protected_nopar:cpn { __str_convert_decode_utf32be: } + \cs_new_protected:cpn { __str_convert_decode_utf32be: } { \__str_decode_utf_xxxii:Nw 1 \g__str_result_tl \s__stop } - \cs_new_protected_nopar:cpn { __str_convert_decode_utf32le: } + \cs_new_protected:cpn { __str_convert_decode_utf32le: } { \__str_decode_utf_xxxii:Nw 2 \g__str_result_tl \s__stop } - \cs_new_protected_nopar:cpn { __str_convert_decode_utf32: } + \cs_new_protected:cpn { __str_convert_decode_utf32: } { \exp_after:wN \__str_decode_utf_xxxii_bom:NNNN \g__str_result_tl \s__stop \s__stop \s__stop \s__stop \s__stop diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-utf8.def b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-utf8.def index b1b0d554590..b91e8997d27 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-utf8.def +++ b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-utf8.def @@ -45,7 +45,7 @@ %% prior consultation with the LaTeX3 Project. %% %% ----------------------------------------------------------------------- -\cs_new_protected_nopar:cpn { __str_convert_encode_utf8: } +\cs_new_protected:cpn { __str_convert_encode_utf8: } { \__str_convert_gmap_internal:N \__str_encode_utf_viii_char:n } \cs_new:Npn \__str_encode_utf_viii_char:n #1 { @@ -115,7 +115,7 @@ Unicode~limits~code~points~to~the~range~[0,1114111]. } } -\cs_new_protected_nopar:cpn { __str_convert_decode_utf8: } +\cs_new_protected:cpn { __str_convert_decode_utf8: } { \flag_clear:n { str_error } \flag_clear:n { str_missing } @@ -202,7 +202,7 @@ \flag_raise:n { str_error } \int_use:N \c__str_replacement_char_int } -\cs_new_nopar:Npn \__str_decode_utf_viii_end: +\cs_new:Npn \__str_decode_utf_viii_end: { \s__tl \flag_raise:n { str_missing } diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-esc-hex.def b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-esc-hex.def index 2999bf6abd6..0669ea16a9c 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-esc-hex.def +++ b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-esc-hex.def @@ -45,7 +45,7 @@ %% prior consultation with the LaTeX3 Project. %% %% ----------------------------------------------------------------------- -\cs_new_protected_nopar:Npn \__str_convert_unescape_hex: +\cs_new_protected:Npn \__str_convert_unescape_hex: { \group_begin: \flag_clear:n { str_error } @@ -91,7 +91,7 @@ Some~characters~in~the~string~you~asked~to~convert~are~not~ hexadecimal~digits~(0-9,~A-F,~a-f)~nor~spaces. } -\cs_new_protected_nopar:Npn \__str_convert_escape_hex: +\cs_new_protected:Npn \__str_convert_escape_hex: { \__str_convert_gmap:N \__str_escape_hex_char:N } \cs_new:Npn \__str_escape_hex_char:N #1 { \__str_output_hexadecimal:n { `#1 } } diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-esc-name.def b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-esc-name.def index 35550296787..d1650a5dff8 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-esc-name.def +++ b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-esc-name.def @@ -95,7 +95,7 @@ \__str_unescape_name_loop:wNN \str_const:Nn \c__str_escape_name_not_str { ! " $ & ' } %$ \str_const:Nn \c__str_escape_name_str { {}/<>[] } -\cs_new_protected_nopar:Npn \__str_convert_escape_name: +\cs_new_protected:Npn \__str_convert_escape_name: { \__str_convert_gmap:N \__str_escape_name_char:N } \cs_new:Npn \__str_escape_name_char:N #1 { diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-esc-string.def b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-esc-string.def index 28babc286f9..3d36f4ef1e2 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-esc-string.def +++ b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-esc-string.def @@ -51,7 +51,7 @@ \char_set_catcode_other:N \^^M \tex_lowercase:D { - \cs_new_protected_nopar:Npn \__str_convert_unescape_string: + \cs_new_protected:Npn \__str_convert_unescape_string: { \group_begin: \flag_clear:n { str_byte } @@ -134,7 +134,7 @@ \group_end: \str_const:Nx \c__str_escape_string_str { \c_backslash_str ( ) } -\cs_new_protected_nopar:Npn \__str_convert_escape_string: +\cs_new_protected:Npn \__str_convert_escape_string: { \__str_convert_gmap:N \__str_escape_string_char:N } \cs_new:Npn \__str_escape_string_char:N #1 { diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-esc-url.def b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-esc-url.def index 5fcd1eeb79c..d3801b67f88 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-esc-url.def +++ b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-esc-url.def @@ -93,7 +93,7 @@ } \exp_after:wN \__str_tmp:w \c_percent_str { url } \__str_unescape_url_loop:wNN -\cs_new_protected_nopar:Npn \__str_convert_escape_url: +\cs_new_protected:Npn \__str_convert_escape_url: { \__str_convert_gmap:N \__str_escape_url_char:N } \cs_new:Npn \__str_escape_url_char:N #1 { diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-format.sty b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-format.sty index 961ff91b149..41093e4b732 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-format.sty +++ b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-format.sty @@ -46,7 +46,7 @@ %% %% ----------------------------------------------------------------------- \RequirePackage{expl3} -\GetIdInfo$Id: l3str-format.dtx 6439 2016-03-23 12:03:41Z joseph $ +\GetIdInfo$Id: l3str-format.dtx 6589 2016-06-13 11:11:55Z joseph $ {L3 Experimental string formatting} \ProvidesExplPackage {\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription} @@ -182,7 +182,7 @@ } #1 } -\cs_new_nopar:Npn \tl_format:Nn { \exp_args:No \tl_format:nn } +\cs_new:Npn \tl_format:Nn { \exp_args:No \tl_format:nn } \cs_generate_variant:Nn \tl_format:Nn { c } \cs_new:Npn \tl_format:nn #1#2 { diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3tl-analysis.sty b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3tl-analysis.sty index 3d5ca864417..aee29ed5cab 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3tl-analysis.sty +++ b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3tl-analysis.sty @@ -46,7 +46,7 @@ %% %% ----------------------------------------------------------------------- \RequirePackage{expl3} -\GetIdInfo$Id: l3tl-analysis.dtx 6443 2016-03-24 10:59:09Z joseph $ +\GetIdInfo$Id: l3tl-analysis.dtx 6589 2016-06-13 11:11:55Z joseph $ {L3 Experimental token lists analysis} \ProvidesExplPackage {\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription} @@ -59,7 +59,7 @@ \int_new:N \l__tl_analysis_nesting_int \int_new:N \l__tl_analysis_type_int \tl_new:N \g__tl_analysis_result_tl -\cs_new_nopar:Npn \__tl_analysis_extract_charcode: +\cs_new:Npn \__tl_analysis_extract_charcode: { \exp_after:wN \__tl_analysis_extract_charcode_aux:w \token_to_meaning:N \l__tl_analysis_token @@ -116,9 +116,9 @@ \if_false: { \fi: \__tl_analysis_a_loop:w #1 } \int_decr:N \l__tl_analysis_index_int } -\cs_new_protected_nopar:Npn \__tl_analysis_a_loop:w +\cs_new_protected:Npn \__tl_analysis_a_loop:w { \tex_futurelet:D \l__tl_analysis_token \__tl_analysis_a_type:w } -\cs_new_protected_nopar:Npn \__tl_analysis_a_type:w +\cs_new_protected:Npn \__tl_analysis_a_type:w { \l__tl_analysis_type_int = \if_meaning:w \l__tl_analysis_token \c_space_token @@ -141,14 +141,14 @@ \else: \exp_after:wN \__tl_analysis_a_egroup:w \fi: } -\cs_new_protected_nopar:Npn \__tl_analysis_a_space:w +\cs_new_protected:Npn \__tl_analysis_a_space:w { \tex_afterassignment:D \__tl_analysis_a_space_test:w \exp_after:wN \cs_set_eq:NN \exp_after:wN \l__tl_analysis_char_token \token_to_str:N } -\cs_new_protected_nopar:Npn \__tl_analysis_a_space_test:w +\cs_new_protected:Npn \__tl_analysis_a_space_test:w { \if_meaning:w \l__tl_analysis_char_token \c_space_token \tex_toks:D \l__tl_analysis_index_int { \exp_not:n { ~ } } @@ -161,11 +161,11 @@ \group_begin: \char_set_catcode_group_begin:N \^^@ \char_set_catcode_group_end:N \^^E - \cs_new_protected_nopar:Npn \__tl_analysis_a_bgroup:w + \cs_new_protected:Npn \__tl_analysis_a_bgroup:w { \__tl_analysis_a_group:nw { \exp_after:wN ^^@ \if_false: ^^E \fi: } } \char_set_catcode_group_begin:N \^^B \char_set_catcode_group_end:N \^^@ - \cs_new_protected_nopar:Npn \__tl_analysis_a_egroup:w + \cs_new_protected:Npn \__tl_analysis_a_egroup:w { \__tl_analysis_a_group:nw { \if_false: ^^B \fi: ^^@ } } \group_end: \cs_new_protected:Npn \__tl_analysis_a_group:nw #1 @@ -180,7 +180,7 @@ \exp_after:wN \l__tl_analysis_char_token \token_to_str:N } -\cs_new_protected_nopar:Npn \__tl_analysis_a_group_test:w +\cs_new_protected:Npn \__tl_analysis_a_group_test:w { \if_charcode:w \l__tl_analysis_token \l__tl_analysis_char_token \__tl_analysis_a_store: @@ -189,7 +189,7 @@ \fi: \__tl_analysis_a_loop:w } -\cs_new_protected_nopar:Npn \__tl_analysis_a_store: +\cs_new_protected:Npn \__tl_analysis_a_store: { \tex_advance:D \l__tl_analysis_nesting_int \l__tl_analysis_type_int \if_int_compare:w \tex_lccode:D \c_zero = \c_thirty_two diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3tl-build.sty b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3tl-build.sty index c98c6edee9e..a570d9a325b 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3tl-build.sty +++ b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3tl-build.sty @@ -45,8 +45,8 @@ %% prior consultation with the LaTeX3 Project. %% %% ----------------------------------------------------------------------- -\RequirePackage{expl3}[2016/05/14] -\@ifpackagelater{expl3}{2016/05/14} +\RequirePackage{expl3}[2016/10/19] +\@ifpackagelater{expl3}{2016/10/19} {} {% \PackageError{l3tl-build}{Support package l3kernel too old} @@ -58,14 +58,14 @@ }% \endinput } -\GetIdInfo$Id: l3tl-build.dtx 6492 2016-05-14 20:27:55Z joseph $ +\GetIdInfo$Id: l3tl-build.dtx 6730 2016-10-19 11:19:38Z joseph $ {L3 Experimental token list construction} \ProvidesExplPackage {\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription} \int_new:N \l__tl_build_start_index_int \int_new:N \l__tl_build_index_int \tl_new:N \l__tl_build_result_tl -\cs_new_protected_nopar:Npn \__tl_build_unpack: +\cs_new_protected:Npn \__tl_build_unpack: { \tl_put_right:Nx \l__tl_build_result_tl { @@ -83,24 +83,24 @@ \exp_after:wN \__tl_build_unpack_loop:w \int_use:N \__int_eval:w #1 + \c_one ; } -\cs_new_protected_nopar:Npn \__tl_build:Nw +\cs_new_protected:Npn \__tl_build:Nw { \__tl_build_aux:NNw \tl_set:Nn } -\cs_new_protected_nopar:Npn \__tl_build_x:Nw +\cs_new_protected:Npn \__tl_build_x:Nw { \__tl_build_aux:NNw \tl_set:Nx } -\cs_new_protected_nopar:Npn \__tl_gbuild:Nw +\cs_new_protected:Npn \__tl_gbuild:Nw { \__tl_build_aux:NNw \tl_gset:Nn } -\cs_new_protected_nopar:Npn \__tl_gbuild_x:Nw +\cs_new_protected:Npn \__tl_gbuild_x:Nw { \__tl_build_aux:NNw \tl_gset:Nx } \cs_new_protected:Npn \__tl_build_aux:NNw #1#2 { \group_begin: - \cs_set_nopar:Npn \__tl_build_end_assignment:n + \cs_set:Npn \__tl_build_end_assignment:n { \group_end: #1 #2 } \int_zero:N \l__tl_build_start_index_int \int_zero:N \l__tl_build_index_int \tl_clear:N \l__tl_build_result_tl } -\cs_new_protected_nopar:Npn \__tl_build_end: +\cs_new_protected:Npn \__tl_build_end: { \__tl_build_unpack: \exp_args:No diff --git a/Master/texmf-dist/tex/latex/l3experimental/xgalley/l3galley.sty b/Master/texmf-dist/tex/latex/l3experimental/xgalley/l3galley.sty index 8fcffdf3ff0..c2ec8683ada 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/xgalley/l3galley.sty +++ b/Master/texmf-dist/tex/latex/l3experimental/xgalley/l3galley.sty @@ -47,8 +47,8 @@ %% %% ----------------------------------------------------------------------- %% -\RequirePackage{expl3}[2016/05/14] -\@ifpackagelater{expl3}{2016/05/14} +\RequirePackage{expl3}[2016/10/19] +\@ifpackagelater{expl3}{2016/10/19} {} {% \PackageError{l3galley}{Support package l3kernel too old} @@ -60,7 +60,7 @@ }% \endinput } -\GetIdInfo$Id: l3galley.dtx 6493 2016-05-14 21:08:13Z joseph $ +\GetIdInfo$Id: l3galley.dtx 6730 2016-10-19 11:19:38Z joseph $ {L3 Experimental galley code} \ProvidesExplPackage {\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription} @@ -69,6 +69,8 @@ \seq_new:N \g__galley_tmpb_seq \seq_new:N \l__galley_tmp_seq \tl_new:N \l__galley_tmp_tl +\bool_new:N \g__galley_cutout_active_bool +\bool_new:N \l__galley_cutout_active_bool \seq_new:N \l__galley_cutout_left_indent_seq \seq_new:N \l__galley_cutout_right_indent_seq \bool_new:N \l__galley_parshape_multipar_bool @@ -110,9 +112,12 @@ \tl_new:N \l__galley_interpar_penalty_user_tl \tl_new:N \g__galley_interpar_vspace_user_tl \tl_new:N \l__galley_interpar_vspace_user_tl -\cs_new_protected_nopar:Npn \__galley_initialise_variables: +\int_new:N \l__galley_group_level_int +\cs_new_protected:Npn \__galley_initialise_variables: { + \int_set:Nn \l__galley_group_level_int { \etex_currentgrouplevel:D } \bool_gset_true:N \g__galley_begin_level_bool + \bool_gset_false:N \g__galley_cutout_active_bool \seq_gclear:N \g__galley_cutout_left_seq \seq_gclear:N \g__galley_cutout_right_seq \tl_gclear:N \g__galley_interpar_penalty_user_tl @@ -129,7 +134,7 @@ \tl_gclear:N \g_galley_whatsit_next_tl } \__galley_initialise_variables: -\cs_new_protected_nopar:Npn \__galley_initialise_settings: +\cs_new_protected:Npn \__galley_initialise_settings: { \bool_set_true:N \l__galley_parshape_multipar_bool \seq_clear:N \l__galley_parshape_left_indent_seq @@ -138,10 +143,12 @@ \dim_zero:N \l_galley_total_left_margin_dim \dim_zero:N \l_galley_total_right_margin_dim } -\cs_new_protected_nopar:Npn \__galley_save_parameters: +\cs_new_protected:Npn \__galley_save_parameters: { \bool_set_eq:NN \l__galley_begin_level_bool \g__galley_begin_level_bool + \bool_set_eq:NN \l__galley_cutout_active_bool + \g__galley_cutout_active_bool \seq_set_eq:NN \l__galley_cutout_left_seq \g__galley_cutout_left_seq \seq_set_eq:NN \l__galley_cutout_right_seq @@ -171,10 +178,12 @@ \tl_set_eq:NN \l__galley_whatsit_next_tl \g_galley_whatsit_next_tl } -\cs_new_protected_nopar:Npn \__galley_restore_parameters: +\cs_new_protected:Npn \__galley_restore_parameters: { \bool_gset_eq:NN \g__galley_begin_level_bool \l__galley_begin_level_bool + \bool_gset_eq:NN \g__galley_cutout_active_bool + \l__galley_cutout_active_bool \seq_gset_eq:NN \g__galley_cutout_left_seq \l__galley_cutout_left_seq \seq_gset_eq:NN \g__galley_cutout_right_seq @@ -204,7 +213,7 @@ \tl_gset_eq:NN \g_galley_whatsit_next_tl \l__galley_whatsit_next_tl } -\cs_new_protected_nopar:Npn \galley_level: +\cs_new_protected:Npn \galley_level: { \__galley_save_parameters: \group_begin: @@ -212,14 +221,14 @@ \__galley_initialise_settings: \group_insert_after:N \__galley_level_end: } -\cs_new_protected_nopar:Npn \__galley_level_end: +\cs_new_protected:Npn \__galley_level_end: { \par \__galley_restore_parameters: \group_end: } \__scan_new:N \s__par_omit -\cs_new_protected_nopar:Npn \galley_par: +\cs_new_protected:Npn \galley_par: { \s__par_omit \exp_after:wN \__galley_par_auxi: \exp:w \exp_end_continue_f:w @@ -238,7 +247,7 @@ #1 } } -\cs_new_protected_nopar:Npn \__galley_par_auxii: +\cs_new_protected:Npn \__galley_par_auxii: { \mode_if_vertical:TF { @@ -248,7 +257,8 @@ } { \g_galley_par_end_hook_tl - \__galley_par_set_cutout: + \bool_if:NT \g__galley_cutout_active_bool + { \__galley_parshape_set: } \group_begin: \tex_par:D \group_end: @@ -268,16 +278,7 @@ \tl_gclear:N \g_galley_par_reset_hook_tl \tex_penalty:D \c_ten_thousand } -\cs_new_protected_nopar:Npn \__galley_par_set_cutout: - { - \bool_if:nF - { - \seq_if_empty_p:N \g__galley_cutout_left_seq - && \seq_if_empty_p:N \g__galley_cutout_right_seq - } - { \__galley_parshape_set: } - } -\cs_new_protected_nopar:Npn \__galley_par_update_cutout: +\cs_new_protected:Npn \__galley_par_update_cutout: { \bool_if:nF { @@ -292,6 +293,15 @@ } \__galley_parshape_set: } + \int_compare:nNnT \l__galley_group_level_int = \etex_currentgrouplevel:D + { + \bool_if:nT + { + \seq_if_empty_p:N \g__galley_cutout_left_seq + && \seq_if_empty_p:N \g__galley_cutout_right_seq + } + { \bool_gset_false:N \g__galley_cutout_active_bool } + } } \cs_new_protected:Npn \galley_par:n #1 { @@ -302,9 +312,9 @@ \galley_par: } } -\cs_set_protected_nopar:Npn \par { \galley_par: } +\cs_set_protected:Npn \par { \galley_par: } \tl_set:Nn \@par { \galley_par: } -\cs_new_protected_nopar:Npn \galley_display_begin: +\cs_new_protected:Npn \galley_display_begin: { \group_begin: \__galley_save_parameters: @@ -343,19 +353,19 @@ \skip_gset:Nn \g_galley_vspace_int {#1} } } -\cs_new_protected_nopar:Npn \galley_display_end: +\cs_new_protected:Npn \galley_display_end: { \par \__galley_restore_parameters: \group_end: \group_insert_after:N \__galley_display_par_setup: } -\cs_new_protected_nopar:Npn \__galley_display_par_setup: +\cs_new_protected:Npn \__galley_display_par_setup: { \bool_gset_false:N \g_galley_omit_next_indent_bool \cs_set_eq:NN \par \__galley_display_par: } -\cs_new_protected_nopar:Npn \__galley_display_par: +\cs_new_protected:Npn \__galley_display_par: { \cs_set_eq:NN \par \galley_par: \mode_if_vertical:TF @@ -400,13 +410,13 @@ \tex_noindent:D \group_end: } -\cs_new_protected_nopar:Npn \__galley_start_paragraph_std: +\cs_new_protected:Npn \__galley_start_paragraph_std: { \__galley_start_paragraph_common:N \__galley_insert_vertical_items: \__galley_insert_horizontal_items: \__galley_restore_running_parameters: } -\cs_new_protected_nopar:Npn \__galley_start_paragraph_first: +\cs_new_protected:Npn \__galley_start_paragraph_first: { \bool_gset_false:N \g__galley_begin_level_bool \mode_if_horizontal:TF @@ -415,12 +425,12 @@ \__galley_insert_horizontal_items: \__galley_restore_running_parameters: } -\cs_new_protected_nopar:Npn \__galley_insert_vspace_first: +\cs_new_protected:Npn \__galley_insert_vspace_first: { \tl_if_empty:NF \g__galley_interpar_vspace_user_tl { \skip_vertical:n { \g__galley_interpar_vspace_user_tl } } } -\cs_new_protected_nopar:Npn \__galley_insert_vertical_items: +\cs_new_protected:Npn \__galley_insert_vertical_items: { \g_galley_whatsit_previous_tl \tl_gclear:N \g_galley_whatsit_previous_tl @@ -443,7 +453,7 @@ \tl_gclear:N \g__galley_interpar_vspace_user_tl } } -\cs_new_protected_nopar:Npn \__galley_insert_horizontal_items: +\cs_new_protected:Npn \__galley_insert_horizontal_items: { \g_galley_whatsit_next_tl \tl_gclear:N \g_galley_whatsit_next_tl @@ -456,7 +466,7 @@ \g_galley_par_begin_hook_tl \bool_gset_false:N \g_galley_omit_next_indent_bool } -\cs_new_protected_nopar:Npn \__galley_restore_running_parameters: +\cs_new_protected:Npn \__galley_restore_running_parameters: { \g_galley_restore_running_tl \tl_gclear:N \g_galley_restore_running_tl @@ -487,12 +497,12 @@ } \__galley_parshape_set: } -\cs_new_protected_nopar:Npn \galley_parshape_set_multi:nnnN +\cs_new_protected:Npn \galley_parshape_set_multi:nnnN { \bool_set_true:N \l__galley_parshape_multipar_bool \__galley_parshape_set:nnnN } -\cs_new_protected_nopar:Npn \galley_parshape_set_single:nnnN +\cs_new_protected:Npn \galley_parshape_set_single:nnnN { \bool_set_false:N \l__galley_parshape_multipar_bool \__galley_parshape_set:nnnN @@ -515,9 +525,9 @@ } \__galley_parshape_set: } -\cs_new_protected_nopar:Npn \galley_cutout_left:nn +\cs_new_protected:Npn \galley_cutout_left:nn { \__galley_cutout:nnn { left } } -\cs_new_protected_nopar:Npn \galley_cutout_right:nn +\cs_new_protected:Npn \galley_cutout_right:nn { \__galley_cutout:nnn { right } } \cs_new_protected:Npn \__galley_cutout:nnn #1#2#3 { @@ -534,6 +544,8 @@ { \__galley_cutout:Nc \g__galley_tmpa_seq { g__galley_cutout_ #1 _seq } } \seq_gset_eq:cN { g__galley_cutout_ #1 _seq } \l__galley_tmp_seq } + \seq_if_empty:cF { g__galley_cutout_ #1 _seq } + { \bool_gset_true:N \g__galley_cutout_active_bool } } \cs_new_protected:Npn \__galley_cutout:NN #1#2 { @@ -547,24 +559,13 @@ } } \cs_generate_variant:Nn \__galley_cutout:NN { c , Nc } -\cs_new_protected_nopar:Npn \__galley_parshape_set: +\cs_new_protected:Npn \__galley_parshape_set: { \__galley_parshape_set_margins: \__galley_parshape_set_indents: \__galley_parshape_set_cutouts: - \tl_set:Nx \l__galley_tmp_tl - { - \__int_value:w \tex_parshape:D - \int_step_function:nnnN \c_one \c_one \tex_parshape:D - \tmp - } } - \def\tmp#1{% - \c_space_tl - \__int_value:w \etex_parshapeindent:D #1 \c_space_tl \c_space_tl - \__int_value:w \etex_parshapelength:D #1 \c_space_tl - } -\cs_new_protected_nopar:Npn \__galley_parshape_set_margins: +\cs_new_protected:Npn \__galley_parshape_set_margins: { \bool_if:nTF { @@ -579,7 +580,7 @@ \l_galley_text_width_dim } } -\cs_new_protected_nopar:Npn \__galley_parshape_set_indents: +\cs_new_protected:Npn \__galley_parshape_set_indents: { \bool_if:nF { @@ -608,7 +609,7 @@ \l_galley_text_width_dim - ( ( #1 ) + ( #2 ) ) \__dim_eval_end: } -\cs_new_protected_nopar:Npn \__galley_parshape_set_cutouts: +\cs_new_protected:Npn \__galley_parshape_set_cutouts: { \bool_if:nF { @@ -840,7 +841,7 @@ \cs_new:Npn \__galley_set_interline_penalty_auxi:n #1 { \etex_interlinepenalties:D \__int_eval:w #1 \__int_eval_end: } \cs_new:Npn \__galley_set_interline_penalty_auxii:n #1 { } -\cs_new_protected_nopar:Npn \__galley_calc_interline_penalties: +\cs_new_protected:Npn \__galley_calc_interline_penalties: { \exp_args:Nff \__galley_calc_interline_penalties:nn { @@ -910,7 +911,10 @@ } } \cs_new:Npn \__galley_save_display_widow_penalties:n #1 - { \__int_value:w \etex_displaywidowpenalties:D \__int_eval:w #1 \__int_eval_end: , } + { + \__int_value:w \etex_displaywidowpenalties:D + \__int_eval:w #1 \__int_eval_end: , + } \cs_new_protected:Npn \galley_save_widow_penalties:N #1 { \clist_set:Nx #1 @@ -922,11 +926,11 @@ } \cs_new:Npn \__galley_save_widow_penalties:n #1 { \__int_value:w \etex_widowpenalties:D \__int_eval:w #1 \__int_eval_end: , } -\cs_new_protected_nopar:Npn \galley_interline_penalty: +\cs_new_protected:Npn \galley_interline_penalty: { \__int_value:w \etex_interlinepenalties:D \etex_interlinepenalties:D \c_zero } \__msg_kernel_new:nnn { galley } { no-line-to-end } { There's~no~line~here~to~end. } -\cs_set_nopar:Npn \clearpage +\cs_set:Npn \clearpage { \mode_if_vertical:T { @@ -939,9 +943,9 @@ \newpage \galley_penalty_set_single:n { -\@Mi } } -\cs_set_nopar:Npn \nobreak +\cs_set_protected:Npn \nobreak { \bool_gset_true:N \g_galley_no_break_next_bool } -\cs_set_protected_nopar:Npn \noindent +\cs_set_protected:Npn \noindent { \tex_noindent:D \bool_gset_false:N \g_galley_omit_next_indent_bool @@ -971,9 +975,9 @@ \DeclareRobustCommand \newline { \galley_break_line:Nn \c_true_bool { 0pt } } \cs_set_eq:cN { @ @ par } \galley_par: -\cs_set_nopar:Npn \addpenalty { \galley_penalty_add_single:n } -\cs_set_nopar:Npn \addvspace { \galley_vspace_max_single:n } -\cs_set_nopar:Npn \@afterheading +\cs_set_protected:Npn \addpenalty { \galley_penalty_add_single:n } +\cs_set_protected:Npn \addvspace { \galley_vspace_max_single:n } +\cs_set_protected:Npn \@afterheading { \bool_gset_true:N \g_galley_no_break_next_bool \if@afterindent @@ -981,7 +985,7 @@ \bool_gset_true:N \g_galley_omit_next_indent_bool \fi } -\cs_set:Npn \@hangfrom #1 +\cs_set_protected:Npn \@hangfrom #1 { \bool_gset_true:N \g_galley_omit_next_indent_bool \leavevmode |