From 1f2fdb31c172bba8a03b6b1a359b86650b7a738b Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Wed, 28 Aug 2019 23:41:40 +0000 Subject: scontents (29aug19) git-svn-id: svn://tug.org/texlive/trunk@51975 c570f23f-e606-0410-a88d-b1316a301751 --- .../texmf-dist/tex/latex/scontents/scontents.sty | 33 +++++++++++----------- 1 file changed, 17 insertions(+), 16 deletions(-) (limited to 'Master/texmf-dist/tex') diff --git a/Master/texmf-dist/tex/latex/scontents/scontents.sty b/Master/texmf-dist/tex/latex/scontents/scontents.sty index 5b26bcc19a0..35771c8f982 100644 --- a/Master/texmf-dist/tex/latex/scontents/scontents.sty +++ b/Master/texmf-dist/tex/latex/scontents/scontents.sty @@ -1,7 +1,7 @@ \RequirePackage{filecontentsdef}[2019/04/20] \RequirePackage{l3keys2e} \RequirePackage{xparse}[2019/05/28] -\ProvidesExplPackage{scontents}{2019/08/12}{1.1} +\ProvidesExplPackage{scontents}{2019/08/28}{1.2} {Stores LaTeX contents in memory or files} \@ifpackagelater { xparse } { 2019/05/03 } { } @@ -47,11 +47,12 @@ %%^^A Internal quarks \quark_new:N \q__scontents_stop \quark_new:N \q__scontents_mark +%%^^A Internal quarks +\cs_new_eq:NN \__scontents_rescan_tokens:w \tex_scantokens:D \tl_new:N \g__scontents_end_verbatimsc_tl \tl_gset_rescan:Nnn \g__scontents_end_verbatimsc_tl { - \char_set_catcode_escape:N \| \char_set_catcode_other:N \\ \char_set_catcode_other:N \{ \char_set_catcode_other:N \} @@ -91,7 +92,7 @@ \cs_new:Npn \__scontents_getfrom_seq:nn #1#2 { \seq_item:cn { g__scontents_seq_name_#2_seq } {#1} } %%^^A Define |scontents| whit [key=val] (delaying) -\ProvideDocumentEnvironment { scontents } { } +\NewDocumentEnvironment { scontents } { } { \char_set_catcode_active:N \^^M \__scontents_start_environment:w @@ -154,15 +155,15 @@ } \tl_clear:N \l__scontents_macro_tmp_tl } -\cs_gset_protected:Npn \__scontents_stored_to_seq: +\cs_new_protected:Npn \__scontents_stored_to_seq: { \regex_replace_all:nnN { \^^M } { \^^J } \l__scontents_macro_tmp_tl \tl_log:N \l__scontents_macro_tmp_tl \__scontents_append_contents:Vx \l__scontents_name_seq_env_tl - { \exp_not:N \tex_scantokens:D { \tl_use:N \l__scontents_macro_tmp_tl } } + { \exp_not:N \__scontents_rescan_tokens:w { \tl_use:N \l__scontents_macro_tmp_tl } } } %%^^A User command to stored content -\ProvideDocumentCommand { \Scontents }{ !s !O{} } +\NewDocumentCommand { \Scontents }{ !s !O{} } { \group_begin: \IfNoValueF {#2} @@ -184,14 +185,14 @@ \regex_replace_all:nnN { \^^M } { \^^J } \l__scontents_temp_tl \tl_log:N \l__scontents_temp_tl \exp_args:NVx \__scontents_append_contents:nn \l__scontents_name_seq_cmd_tl - { \exp_not:N \tex_scantokens:D { \tl_use:N \l__scontents_temp_tl } } + { \exp_not:N \__scontents_rescan_tokens:w { \tl_use:N \l__scontents_temp_tl } } \bool_if:NT \l__scontents_print_cmd_bool { \__scontents_getfrom_seq:nn { -1 } { \l__scontents_name_seq_cmd_tl } } \group_end: } -\ProvideDocumentCommand { \getstored } { O{1} m } +\NewDocumentCommand { \getstored } { O{1} m } { \__scontents_getfrom_seq:nn {#1} {#2} } -\ProvideDocumentCommand { \typestored } { s O{1} m } +\NewDocumentCommand { \typestored } { s O{1} m } { \group_begin: \tl_set:Nx \l__scontents_temp_tl { \__scontents_getfrom_seq:nn {#2} {#3} } @@ -212,7 +213,7 @@ \cs_set_eq:NN ^^M \scan_stop: \use:x { - \exp_not:N \tex_scantokens:D + \exp_not:N \__scontents_rescan_tokens:w { \exp_not:N \begin{verbatimsc} ^^M \__scontents_strip_scantokens:N #1 @@ -226,7 +227,7 @@ \use:x { \cs_gset_protected:Npn \exp_not:N \__scontents_xverb:w ##1 \g__scontents_end_verbatimsc_tl } { #1 \end{verbatimsc} } -\ProvideDocumentEnvironment { verbatimsc } { } +\NewDocumentEnvironment { verbatimsc } { } { \cs_set_eq:cN { @xverbatim } \__scontents_xverb:w \verbatim @@ -250,14 +251,14 @@ } \prg_new_conditional:Npnn \__scontents_if_scantokens:Nw #1#2 \q__scontents_mark { TF } { - \token_if_eq_meaning:NNTF \tex_scantokens:D #1 + \token_if_eq_meaning:NNTF \__scontents_rescan_tokens:w #1 { \prg_return_true: } { \prg_return_false: } } %%^^A User command to setup module -\ProvideDocumentCommand { \setupsc } { m } +\NewDocumentCommand { \setupsc } { m } { \keys_set:nn { scontents } {#1} } -\ProvideDocumentCommand { \meaningsc } { O{1} m } +\NewDocumentCommand { \meaningsc } { O{1} m } { \group_begin: \tl_set:Nx \l__scontents_temp_tl { \__scontents_getfrom_seq:nn {#1} {#2} } @@ -268,9 +269,9 @@ \cs_replacement_spec:N \l__scontents_temp_tl \group_end: } -\ProvideExpandableDocumentCommand { \countsc } { m } +\NewExpandableDocumentCommand { \countsc } { m } { \seq_count:c { g__scontents_seq_name_#1_seq } } -\ProvideExpandableDocumentCommand { \cleanseqsc } { m } +\NewDocumentCommand { \cleanseqsc } { m } { \seq_clear_new:c { g__scontents_seq_name_#1_seq } } %%^^A Messages \msg_new:nnn { scontents } { junk-after-begin } -- cgit v1.2.3