summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2022-04-04 20:56:14 +0000
committerKarl Berry <karl@freefriends.org>2022-04-04 20:56:14 +0000
commit342938e12546357fa049dadca5957de15e1b5d1a (patch)
tree852afa269eea12fac7dd70e818a838d53cb665a4 /Master/texmf-dist/tex
parent405e7f6b1c67baf6929d09ef5a8655fb5365b5dd (diff)
scontents (4apr22)
git-svn-id: svn://tug.org/texlive/trunk@62902 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex')
-rw-r--r--Master/texmf-dist/tex/context/third/scontents/t-scontents.mkiv114
-rw-r--r--Master/texmf-dist/tex/generic/scontents/scontents-code.tex61
-rw-r--r--Master/texmf-dist/tex/generic/scontents/scontents.tex115
-rw-r--r--Master/texmf-dist/tex/latex/scontents/scontents.sty46
4 files changed, 91 insertions, 245 deletions
diff --git a/Master/texmf-dist/tex/context/third/scontents/t-scontents.mkiv b/Master/texmf-dist/tex/context/third/scontents/t-scontents.mkiv
index 907c9b63b69..d87d8eda772 100644
--- a/Master/texmf-dist/tex/context/third/scontents/t-scontents.mkiv
+++ b/Master/texmf-dist/tex/context/third/scontents/t-scontents.mkiv
@@ -6,7 +6,7 @@
%%
%% scontents.dtx (with options: `loader,context')
%%
-%% Copyright (C) 2019-2020 by Pablo González L <pablgonz@educarchile.cl>
+%% Copyright (C) 2019-2022 by Pablo González L <pablgonz@educarchile.cl>
%%
%% This work may be distributed and/or modified under the conditions of the
%% LaTeX Project Public License, either version 1.3c of this license or (at
@@ -33,16 +33,16 @@
%% scontents.dtx (with options: `loader,context')
%D \module
%D [ file=t-scontents,
-%D version=1.9,
+%D version=2.0,
%D title=\CONTEXT\ User Module,
%D subtitle=Storing Contents,
%D author=Pablo González,
-%D date=2020-01-21,
+%D date=2022-04-04,
%D copyright=Pablo González,
%D email=pablgonz@educarchile.cl,
%D license=LPPL]
-\def\ScontentsFileDate{2020-01-21}%
-\def\ScontentsFileVersion{1.9}%
+\def\ScontentsFileDate{2022-04-04}%
+\def\ScontentsFileVersion{2.0}%
\def\ScontentsFileDescription{Stores LaTeX contents in memory or files}%
\writestatus{loading}{User Module scontents v\ScontentsFileVersion}
\unprotect
@@ -52,12 +52,12 @@
v\ScontentsFileVersion\space \ScontentsFileDescription }
\iow_log:x { Package: ~ scontents ~ \use:c { ver @ scontents . sty } }
\tl_new:N \g__scontents_end_verbatimsc_tl
-\tl_gset_rescan:Nnn
- \g__scontents_end_verbatimsc_tl
+\tl_gset_rescan:Nnn \g__scontents_end_verbatimsc_tl
{
\char_set_catcode_other:N \\
}
{ \stopverbatimsc }
+\tl_new:N \l__scontents_env_name_tl
\tl_const:Nx \c__scontents_end_env_tl
{
\c_backslash_str
@@ -67,89 +67,17 @@
\file_input:n { scontents-code.tex }
\cs_new:Npn \__scontents_format_case:nnn #1 #2 #3
{#3} % ConTeXt
-\keys_define:nn { scontents }
- { verb-font .initial:n = \tt }
-\seq_new:N \l__scontents_compat_seq
-\cs_new_protected:Npn \__scontents_compat_redefine:Npn #1
- {
- \seq_put_right:Nn \l__scontents_compat_seq {#1}
- \cs_set_eq:cN { __scontents_saved_\cs_to_str:N #1: } #1
- \cs_new_protected:Npn #1
- }
-\cs_new_protected:Npn \__scontents_compat_restore:
- { \seq_map_function:NN \l__scontents_compat_seq \__scontents_compat_restore:N }
-\cs_new_protected:Npn \__scontents_compat_restore:N #1
- {
- \cs_set_eq:Nc #1 { __scontents_saved_\cs_to_str:N #1: }
- \cs_undefine:c { __scontents_saved_\cs_to_str:N #1: }
- }
-\cs_generate_variant:Nn \__scontents_compat_redefine:Npn { c }
-\cs_new_protected:Npn \__scontents_optarg:nn #1 #2
- { \peek_charcode_ignore_spaces:NTF [ {#1} {#1[#2]} }
-\cs_new_protected:Npn \__scontents_stararg:nn #1 #2
- { \peek_charcode_remove_ignore_spaces:NTF * {#1} {#2} }
-\__scontents_compat_redefine:Npn \RequirePackage
- { \__scontents_optarg:nn { \__scontents_require_auxi:wn } { } }
-\cs_new_protected:Npn \__scontents_require_auxi:wn [#1] #2
- { \__scontents_optarg:nn { \__scontents_require_auxii:wnw [{#1}]{#2} } { } }
-\cs_new:Npn \__scontents_zap_space:ww #1~#2
- {
- #1 \if_meaning:w #2 \q_mark
- \exp_after:wN \use_none:n
- \else:
- \exp_after:wN \__scontents_zap_space:ww
- \fi: #2
- }
-\cs_new_protected:Npn \__scontents_require_auxii:wnw [#1] #2 [#3]
- {
- \tl_set:Nx \l__scontents_temp_tl { \__scontents_zap_space:ww #2 ~ \q_mark }
- \clist_map_function:NN \l__scontents_temp_tl \__scontents_require_auxiii:n
- }
-\cs_new_protected:Npn \__scontents_require_auxiii:n #1
- {
- \str_if_eq:eeF {expl3} {#1}
- { \msg_error:nnn { scontents } { invalid-package } {#1} }
- }
-\msg_new:nnn { scontents } { invalid-package }
- { Package~'#1'~invalid~in~scontents.~This~is~an~error~in~scontents. }
-\__scontents_compat_redefine:cpn { @ifpackagelater } #1
- { \exp_args:Nc \__scontents_package_later_aux:Nn { ver@#1.sty } }
-\cs_new_protected:Npn \__scontents_package_later_aux:Nn #1 #2
- {
- \int_compare:nNnTF
- { \exp_after:wN \__scontents_parse_version:w #1 //00 \q_mark } <
- { \exp_after:wN \__scontents_parse_version:w #2 //00 \q_mark }
- }
-\cs_new:Npn \__scontents_parse_version:w #1 { \__scontents_parse_version_auxi:w 0#1 }
-\cs_new:Npn \__scontents_parse_version_auxi:w #1/#2/#3#4#5 \q_mark
- { \__scontents_parse_version_auxii:w #1-#2-#3#4 \q_mark }
-\cs_new:Npn \__scontents_parse_version_auxii:w #1-#2-#3#4#5 \q_mark
- { \tl_if_blank:nF {#2} {#1} #2 #3 #4 }
-\__scontents_compat_redefine:Npn \ProvidesExplPackage #1 #2 #3 #4
- { \__scontents_provides_aux:nn {#1} { #2 \tl_if_empty:nF {#3} {#3~} #4 } }
-\cs_new_protected:Npn \__scontents_provides_aux:nn #1 #2
- {
- \tl_gset:cx { ver@#1.sty } {#2}
- \iow_log:n { Package~#1:~#2 }
- \ExplSyntaxOn
- }
-\__scontents_compat_redefine:Npn \DeclareOption
- { \__scontents_stararg:nn { \use_none:n } { \use_none:nn } }
-\__scontents_compat_redefine:Npn \ProcessOptions
- { \__scontents_stararg:nn { } { } }
\int_set:Nn \l__scontents_tmpa_int { \char_value_catcode:n { `\@ } }
\char_set_catcode_letter:N \@
-\exp_after:wN
-\ExplSyntaxOff
-\file_input:n { xparse.sty }
-\ExplSyntaxOn
+\file_input:n { xparse-generic.tex }
\char_set_catcode:nn { `\@ } { \l__scontents_tmpa_int }
-\__scontents_compat_restore:
-\NewDocumentCommand { \newenvsc } { m O{} }
+\keys_define:nn { scontents }
+ { verb-font .initial:n = \tt }
+\NewDocumentCommand \newenvsc { m O{} }
{
\cs_if_exist:cTF { start #1 }
{ \msg_error:nnn { scontents } { env-already-defined } {#1} }
- { \__scontents_scontents_setenv:nn {#1} {#2} }
+ { \__scontents_env_setting:nn {#1} {#2} }
}
\cs_new_protected:Npn \__scontents_env_define:nnn #1 #2 #3
{
@@ -174,28 +102,28 @@
\cs_new:Npn \dospecials
{ \seq_map_function:NN \l_char_special_seq \do }
}
-\NewDocumentCommand { \Scontents }{ !s !O{} }
+\NewDocumentCommand \Scontents { !s !O{} }
{ \__scontents_Scontents_internal:nn {#1} {#2} }
-\NewDocumentCommand { \__scontents_verb_arg:w } { +v }
+\NewDocumentCommand \__scontents_verb_arg:w { +v }
{ \__scontents_verb_arg_internal:n {#1} }
-\NewDocumentCommand { \getstored } { O{-1} m }
+\NewDocumentCommand \getstored { O{-1} m }
{ \__scontents_getstored_internal:nn {#1} {#2} }
-\NewDocumentCommand { \foreachsc } { o m }
+\NewDocumentCommand \foreachsc { o m }
{ \__scontents_foreachsc_internal:nn {#1} {#2} }
-\NewDocumentCommand { \typestored } { o m }
+\NewDocumentCommand \typestored { o m }
{ \__scontents_typestored_internal:nn {#1} {#2} }
\definetyping[verbatimsc]
\group_begin:
\cs_new_protected:Npn \__scontents_plain_disable_outer_par:
{ }
\group_end:
-\NewDocumentCommand { \setupsc } { +m }
+\NewDocumentCommand \setupsc { +m }
{ \keys_set:nn { scontents } {#1} }
-\NewDocumentCommand { \meaningsc } { o m }
+\NewDocumentCommand \meaningsc { o m }
{ \__scontents_meaningsc_internal:nn {#1} {#2} }
-\NewExpandableDocumentCommand { \countsc } { m }
+\NewExpandableDocumentCommand \countsc { m }
{ \seq_count:c { g__scontents_name_#1_seq } }
-\NewDocumentCommand { \cleanseqsc } { m }
+\NewDocumentCommand \cleanseqsc { m }
{ \seq_clear_new:c { g__scontents_name_#1_seq } }
\ExplSyntaxOff
\endinput
diff --git a/Master/texmf-dist/tex/generic/scontents/scontents-code.tex b/Master/texmf-dist/tex/generic/scontents/scontents-code.tex
index 2901886b2e0..01c115c058c 100644
--- a/Master/texmf-dist/tex/generic/scontents/scontents-code.tex
+++ b/Master/texmf-dist/tex/generic/scontents/scontents-code.tex
@@ -6,7 +6,7 @@
%%
%% scontents.dtx (with options: `core')
%%
-%% Copyright (C) 2019-2020 by Pablo González L <pablgonz@educarchile.cl>
+%% Copyright (C) 2019-2022 by Pablo González L <pablgonz@educarchile.cl>
%%
%% This work may be distributed and/or modified under the conditions of the
%% LaTeX Project Public License, either version 1.3c of this license or (at
@@ -27,7 +27,7 @@
%% t-scontents.mkiv and
%% scontents-code.tex.
%%
-\def\ScontentsCoreFileDate{2020-01-21}%
+\def\ScontentsCoreFileDate{2022-04-04}%
\begingroup
\catcode32=10
\endlinechar=32
@@ -70,6 +70,11 @@
\fi
\fi
\next
+\tl_new:N \l__scontents_macro_tmp_tl
+\tl_new:N \l__scontents_temp_tl
+\tl_new:N \g__scontents_temp_tl
+\int_new:N \l__scontents_tmpa_int
+\bool_new:N \l__scontents_temp_bool
\keys_define:nn { scontents }
{
store-env .tl_set:N = \l__scontents_name_seq_env_tl,
@@ -100,22 +105,20 @@
store-all .meta:n = { store-env = #1 , store-cmd = #1 },
store-all .value_required:n = true
}
-\tl_new:N \l__scontents_macro_tmp_tl
\tl_new:N \l__scontents_fname_out_tl
-\tl_new:N \l__scontents_temp_tl
-\tl_new:N \l__scontents_file_tl
-\tl_new:N \g__scontents_temp_tl
+\tl_new:N \l__scontents_every_line_env_tl
+\iow_new:N \l__scontents_file_iow
\tl_new:N \l__scontents_foreach_name_seq_tl
\tl_new:N \l__scontents_foreach_before_tl
\tl_new:N \l__scontents_foreach_after_tl
\int_new:N \l__scontents_foreach_stop_int
\int_new:N \l__scontents_seq_item_int
\int_new:N \l__scontents_env_nesting_int
-\int_new:N \l__scontents_tmpa_int
\bool_new:N \l__scontents_writing_bool
\bool_set_false:N \l__scontents_writing_bool
\bool_new:N \l__scontents_storing_bool
\bool_set_true:N \l__scontents_storing_bool
+\bool_new:N \l__scontents_writable_bool
\bool_new:N \l__scontents_foreach_before_bool
\bool_set_false:N \l__scontents_foreach_before_bool
\bool_new:N \l__scontents_foreach_after_bool
@@ -124,13 +127,13 @@
\bool_set_false:N \l__scontents_foreach_stop_bool
\bool_new:N \l__scontents_foreach_wrapper_bool
\bool_set_false:N \l__scontents_foreach_wrapper_bool
-\bool_new:N \l__scontents_writable_bool
\seq_new:N \l__scontents_foreach_print_seq
\str_const:Nx \c__scontents_hidden_space_str
{ \c_percent_str \c_circumflex_str \c_circumflex_str A scheol \c_percent_str }
\quark_new:N \q__scontents_stop
\quark_new:N \q__scontents_mark
-\iow_new:N \l__scontents_file_iow
+\int_new:N \l__scontents_save_sf_int
+\skip_new:N \l__scontents_save_skip
\cs_new_protected:Npn \__scontents_rescan_tokens:n #1 { \tex_scantokens:D {#1} }
\cs_generate_variant:Nn \__scontents_rescan_tokens:n { V, x }
\cs_new:Npx \__scontents_tab: { \c_space_tl }
@@ -172,7 +175,7 @@
\bool_set_true:N \l__scontents_writing_bool
\tl_set:Nn \l__scontents_fname_out_tl {#1}
},
- write-env .value_required:n = true,
+ write-cmd .value_required:n = true,
write-out .value_required:n = true,
print-cmd .meta:nn = { scontents } { print-cmd = #1 },
print-cmd .default:n = true,
@@ -223,7 +226,7 @@
unknown .code:n = { \__scontents_parse_type_meaning_key:n {#1} }
}
\cs_new_protected:Npn \__scontents_parse_environment_keys:n #1
- { \exp_args:NV \__scontents_parse_environment_keys:nn \l_keys_key_tl {#1} }
+ { \exp_args:NV \__scontents_parse_environment_keys:nn \l_keys_key_str {#1} }
\cs_new_protected:Npn \__scontents_parse_environment_keys:nn #1#2
{
\tl_if_blank:nTF {#2}
@@ -231,7 +234,7 @@
{ \msg_error:nnnn { scontents } { env-key-value-unknown } {#1} {#2} }
}
\cs_new_protected:Npn \__scontents_parse_command_keys:n #1
- { \exp_args:NV \__scontents_parse_command_keys:nn \l_keys_key_tl {#1} }
+ { \exp_args:NV \__scontents_parse_command_keys:nn \l_keys_key_str {#1} }
\cs_new_protected:Npn \__scontents_parse_command_keys:nn #1#2
{
\tl_if_blank:nTF {#2}
@@ -245,9 +248,9 @@
{ \msg_error:nnnn { scontents } { for-key-value-unknown } {#1} {#2} }
}
\cs_new_protected:Npn \__scontents_parse_foreach_keys:n #1
- { \exp_args:NV \__scontents_parse_foreach_keys:nn \l_keys_key_tl {#1} }
+ { \exp_args:NV \__scontents_parse_foreach_keys:nn \l_keys_key_str {#1} }
\cs_new_protected:Npn \__scontents_parse_type_meaning_key:n #1
- { \exp_args:NV \__scontents_parse_type_meaning_key:nn \l_keys_key_tl {#1} }
+ { \exp_args:NV \__scontents_parse_type_meaning_key:nn \l_keys_key_str {#1} }
\cs_new_protected:Npn \__scontents_parse_type_meaning_key:nn #1#2
{
\tl_if_empty:fTF { \int_to_roman:n { -0 #1 } }
@@ -303,8 +306,7 @@
\tl_log:N #1
\__scontents_append_contents:Vx #2 { \exp_not:V #1 }
}
-\tl_new:N \l__scontents_env_name_tl
-\cs_new_protected:Npn \__scontents_scontents_setenv:nn #1 #2
+\cs_new_protected:Npn \__scontents_env_setting:nn #1 #2
{
\cs_new_protected:cpn { __scontents_#1_env_begin: }
{
@@ -329,7 +331,7 @@
{
\__scontents_stop_environment:
\__scontents_finish_storing:NNN \l__scontents_macro_tmp_tl
- \l__scontents_name_seq_env_tl \l__scontents_print_env_bool
+ \l__scontents_name_seq_env_tl \l__scontents_print_env_bool
}
\cs_new_protected:Npn \__scontents_grab_optional:n #1
{
@@ -376,8 +378,7 @@
{ \l__scontents_storing_bool }
{ \tl_if_empty_p:N \l__scontents_macro_tmp_tl }
{
- \msg_warning:nnx { scontents } { empty-environment }
- { \l__scontents_env_name_tl }
+ \msg_warning:nnx { scontents } { empty-environment } { \l__scontents_env_name_tl }
}
}
\cs_new_protected:Npn \__scontents_file_tl_write_start:n #1
@@ -389,7 +390,7 @@
\iow_open:Nn \l__scontents_file_iow {#1}
}
{ \bool_set_false:N \l__scontents_writable_bool }
- \tl_clear:N \l__scontents_file_tl
+ \tl_clear:N \l__scontents_every_line_env_tl
\seq_map_function:NN \l_char_special_seq \char_set_catcode_other:N
\int_step_function:nnnN { 128 } { 1 } { 255 } \char_set_catcode_letter:n
\cs_set_protected:Npx \__scontents_ret:w ##1 ^^M
@@ -471,7 +472,7 @@
\bool_if:NT \l__scontents_storing_bool
{
\tl_set:Nn \exp_not:N #1
- { \exp_args:NV \__scontents_remove_leading_nl:n \l__scontents_file_tl }
+ { \exp_args:NV \__scontents_remove_leading_nl:n \l__scontents_every_line_env_tl }
}
}
}
@@ -497,7 +498,7 @@
\bool_if:NT \l__scontents_writable_bool
{ \iow_now:Nn \l__scontents_file_iow {#1} }
\bool_if:NT \l__scontents_storing_bool
- { \tl_put_right:Nn \l__scontents_file_tl { ^^J #1 } }
+ { \tl_put_right:Nn \l__scontents_every_line_env_tl { ^^J #1 } }
}
\group_end:
\cs_generate_variant:Nn \__scontents_verb_processor_output:n { x }
@@ -589,14 +590,12 @@
\cs_new:Npn \dospecials
{ \seq_map_function:NN \l_char_special_seq \do }
}
-\int_new:N \l__scontents_save_sf_int
-\dim_new:N \l__scontents_save_skip_dim
\cs_new_protected:Npn \__scontents_bsphack:
{
\scan_stop:
\mode_if_horizontal:T
{
- \dim_set_eq:NN \l__scontents_save_skip_dim \tex_lastskip:D
+ \skip_set_eq:NN \l__scontents_save_skip \tex_lastskip:D
\int_set_eq:NN \l__scontents_save_sf_int \tex_spacefactor:D
}
}
@@ -606,9 +605,9 @@
\mode_if_horizontal:T
{
\int_set_eq:NN \tex_spacefactor:D \l__scontents_save_sf_int
- \dim_compare:nNnT { \l__scontents_save_skip_dim } > { \c_zero_dim }
+ \dim_compare:nNnT { \l__scontents_save_skip } > { \c_zero_skip }
{
- \dim_compare:nNnT { \tex_lastskip:D } = { \c_zero_dim }
+ \skip_if_eq:nnT { \tex_lastskip:D } { \c_zero_skip }
{
\nobreak
\skip_horizontal:n { \c_zero_skip }
@@ -642,8 +641,10 @@
\cs_new_protected:Npn \__scontents_Scontents_finish:
{
\__scontents_file_write_cmd:VV \l__scontents_fname_out_tl \l__scontents_temp_tl
- \__scontents_finish_storing:NNN \l__scontents_temp_tl
- \l__scontents_name_seq_cmd_tl \l__scontents_print_cmd_bool
+ \__scontents_finish_storing:NNN
+ \l__scontents_temp_tl
+ \l__scontents_name_seq_cmd_tl
+ \l__scontents_print_cmd_bool
\use:x
{
\group_end:
@@ -659,6 +660,7 @@
\iow_close:N \l__scontents_file_iow
}
}
+\cs_generate_variant:Nn \__scontents_file_write_cmd:nn { VV }
\prg_new_protected_conditional:Npnn \__scontents_file_if_writable:n #1 { T, F, TF }
{
\bool_if:NTF \l__scontents_writing_bool
@@ -682,7 +684,6 @@
}
{ \prg_return_false: }
}
-\cs_generate_variant:Nn \__scontents_file_write_cmd:nn { VV }
\cs_new_protected:Npn \__scontents_getstored_internal:nn #1 #2
{
\group_begin:
diff --git a/Master/texmf-dist/tex/generic/scontents/scontents.tex b/Master/texmf-dist/tex/generic/scontents/scontents.tex
index 805c0430047..333f195ab95 100644
--- a/Master/texmf-dist/tex/generic/scontents/scontents.tex
+++ b/Master/texmf-dist/tex/generic/scontents/scontents.tex
@@ -6,7 +6,7 @@
%%
%% scontents.dtx (with options: `loader,plain')
%%
-%% Copyright (C) 2019-2020 by Pablo González L <pablgonz@educarchile.cl>
+%% Copyright (C) 2019-2022 by Pablo González L <pablgonz@educarchile.cl>
%%
%% This work may be distributed and/or modified under the conditions of the
%% LaTeX Project Public License, either version 1.3c of this license or (at
@@ -27,8 +27,8 @@
%% t-scontents.mkiv and
%% scontents-code.tex.
%%
-\def\ScontentsFileDate{2020-01-21}%
-\def\ScontentsFileVersion{1.9}%
+\def\ScontentsFileDate{2022-04-04}%
+\def\ScontentsFileVersion{2.0}%
\def\ScontentsFileDescription{Stores LaTeX contents in memory or files}%
\input expl3-generic.tex
\ExplSyntaxOn
@@ -44,12 +44,12 @@
\file_input_stop:
}
\tl_new:N \g__scontents_end_verbatimsc_tl
-\tl_gset_rescan:Nnn
- \g__scontents_end_verbatimsc_tl
+\tl_gset_rescan:Nnn \g__scontents_end_verbatimsc_tl
{
\char_set_catcode_other:N \\
}
{ \endverbatimsc }
+\tl_new:N \l__scontents_env_name_tl
\tl_const:Nx \c__scontents_end_env_tl
{
\c_backslash_str
@@ -59,89 +59,17 @@
\file_input:n { scontents-code.tex }
\cs_new:Npn \__scontents_format_case:nnn #1 #2 #3
{#2} % Plain/Generic
-\keys_define:nn { scontents }
- { verb-font .initial:n = \tt }
-\seq_new:N \l__scontents_compat_seq
-\cs_new_protected:Npn \__scontents_compat_redefine:Npn #1
- {
- \seq_put_right:Nn \l__scontents_compat_seq {#1}
- \cs_set_eq:cN { __scontents_saved_\cs_to_str:N #1: } #1
- \cs_new_protected:Npn #1
- }
-\cs_new_protected:Npn \__scontents_compat_restore:
- { \seq_map_function:NN \l__scontents_compat_seq \__scontents_compat_restore:N }
-\cs_new_protected:Npn \__scontents_compat_restore:N #1
- {
- \cs_set_eq:Nc #1 { __scontents_saved_\cs_to_str:N #1: }
- \cs_undefine:c { __scontents_saved_\cs_to_str:N #1: }
- }
-\cs_generate_variant:Nn \__scontents_compat_redefine:Npn { c }
-\cs_new_protected:Npn \__scontents_optarg:nn #1 #2
- { \peek_charcode_ignore_spaces:NTF [ {#1} {#1[#2]} }
-\cs_new_protected:Npn \__scontents_stararg:nn #1 #2
- { \peek_charcode_remove_ignore_spaces:NTF * {#1} {#2} }
-\__scontents_compat_redefine:Npn \RequirePackage
- { \__scontents_optarg:nn { \__scontents_require_auxi:wn } { } }
-\cs_new_protected:Npn \__scontents_require_auxi:wn [#1] #2
- { \__scontents_optarg:nn { \__scontents_require_auxii:wnw [{#1}]{#2} } { } }
-\cs_new:Npn \__scontents_zap_space:ww #1~#2
- {
- #1 \if_meaning:w #2 \q_mark
- \exp_after:wN \use_none:n
- \else:
- \exp_after:wN \__scontents_zap_space:ww
- \fi: #2
- }
-\cs_new_protected:Npn \__scontents_require_auxii:wnw [#1] #2 [#3]
- {
- \tl_set:Nx \l__scontents_temp_tl { \__scontents_zap_space:ww #2 ~ \q_mark }
- \clist_map_function:NN \l__scontents_temp_tl \__scontents_require_auxiii:n
- }
-\cs_new_protected:Npn \__scontents_require_auxiii:n #1
- {
- \str_if_eq:eeF {expl3} {#1}
- { \msg_error:nnn { scontents } { invalid-package } {#1} }
- }
-\msg_new:nnn { scontents } { invalid-package }
- { Package~'#1'~invalid~in~scontents.~This~is~an~error~in~scontents. }
-\__scontents_compat_redefine:cpn { @ifpackagelater } #1
- { \exp_args:Nc \__scontents_package_later_aux:Nn { ver@#1.sty } }
-\cs_new_protected:Npn \__scontents_package_later_aux:Nn #1 #2
- {
- \int_compare:nNnTF
- { \exp_after:wN \__scontents_parse_version:w #1 //00 \q_mark } <
- { \exp_after:wN \__scontents_parse_version:w #2 //00 \q_mark }
- }
-\cs_new:Npn \__scontents_parse_version:w #1 { \__scontents_parse_version_auxi:w 0#1 }
-\cs_new:Npn \__scontents_parse_version_auxi:w #1/#2/#3#4#5 \q_mark
- { \__scontents_parse_version_auxii:w #1-#2-#3#4 \q_mark }
-\cs_new:Npn \__scontents_parse_version_auxii:w #1-#2-#3#4#5 \q_mark
- { \tl_if_blank:nF {#2} {#1} #2 #3 #4 }
-\__scontents_compat_redefine:Npn \ProvidesExplPackage #1 #2 #3 #4
- { \__scontents_provides_aux:nn {#1} { #2 \tl_if_empty:nF {#3} {#3~} #4 } }
-\cs_new_protected:Npn \__scontents_provides_aux:nn #1 #2
- {
- \tl_gset:cx { ver@#1.sty } {#2}
- \iow_log:n { Package~#1:~#2 }
- \ExplSyntaxOn
- }
-\__scontents_compat_redefine:Npn \DeclareOption
- { \__scontents_stararg:nn { \use_none:n } { \use_none:nn } }
-\__scontents_compat_redefine:Npn \ProcessOptions
- { \__scontents_stararg:nn { } { } }
\int_set:Nn \l__scontents_tmpa_int { \char_value_catcode:n { `\@ } }
\char_set_catcode_letter:N \@
-\exp_after:wN
-\ExplSyntaxOff
-\file_input:n { xparse.sty }
-\ExplSyntaxOn
+\file_input:n { xparse-generic.tex }
\char_set_catcode:nn { `\@ } { \l__scontents_tmpa_int }
-\__scontents_compat_restore:
-\NewDocumentCommand { \newenvsc } { m O{} }
+\keys_define:nn { scontents }
+ { verb-font .initial:n = \tt }
+\NewDocumentCommand \newenvsc { m O{} }
{
\cs_if_exist:cTF { #1 }
{ \msg_error:nnn { scontents } { env-already-defined } {#1} }
- { \__scontents_scontents_setenv:nn {#1} {#2} }
+ { \__scontents_env_setting:nn {#1} {#2} }
}
\cs_new_protected:Npn \__scontents_env_define:nnn #1 #2 #3
{
@@ -160,7 +88,6 @@
{ \__scontents_grab_optional:n {#1} }
\cs_new_protected:Npn \__scontents_analyse_nesting_format:n
{ \__scontents_analyse_nesting_generic:nn { } }
-\bool_new:N \l__scontents_temp_bool
\cs_new_protected:Npn \verbatimsc
{
\group_begin:
@@ -172,9 +99,9 @@
\cs_new_protected:Npn \__scontents_verbatimsc_aux:
{
\skip_vertical:N \parskip
- \int_set:Nn \parindent { 0pt }
+ \dim_zero:N \parindent
\skip_set:Nn \parfillskip { 0pt plus 1fil }
- \int_set:Nn \parskip { 0pt plus0pt minus0pt }
+ \skip_set:Nn \parskip { 0pt plus0pt minus0pt }
\tex_par:D
\bool_set_false:N \l__scontents_temp_bool
\cs_set:Npn \par
@@ -211,15 +138,15 @@
\cs_new:Npn \dospecials
{ \seq_map_function:NN \l_char_special_seq \do }
}
-\NewDocumentCommand { \Scontents }{ !s !O{} }
+\NewDocumentCommand \Scontents { !s !O{} }
{ \__scontents_Scontents_internal:nn {#1} {#2} }
-\NewDocumentCommand { \__scontents_verb_arg:w } { +v }
+\NewDocumentCommand \__scontents_verb_arg:w { +v }
{ \__scontents_verb_arg_internal:n {#1} }
-\NewDocumentCommand { \getstored } { O{-1} m }
+\NewDocumentCommand \getstored { O{-1} m }
{ \__scontents_getstored_internal:nn {#1} {#2} }
-\NewDocumentCommand { \foreachsc } { o m }
+\NewDocumentCommand \foreachsc { o m }
{ \__scontents_foreachsc_internal:nn {#1} {#2} }
-\NewDocumentCommand { \typestored } { o m }
+\NewDocumentCommand \typestored { o m }
{ \__scontents_typestored_internal:nn {#1} {#2} }
\use:x
{
@@ -238,13 +165,13 @@
}
}
\group_end:
-\NewDocumentCommand { \setupsc } { +m }
+\NewDocumentCommand \setupsc { +m }
{ \keys_set:nn { scontents } {#1} }
-\NewDocumentCommand { \meaningsc } { o m }
+\NewDocumentCommand \meaningsc { o m }
{ \__scontents_meaningsc_internal:nn {#1} {#2} }
-\NewExpandableDocumentCommand { \countsc } { m }
+\NewExpandableDocumentCommand \countsc { m }
{ \seq_count:c { g__scontents_name_#1_seq } }
-\NewDocumentCommand { \cleanseqsc } { m }
+\NewDocumentCommand \cleanseqsc { m }
{ \seq_clear_new:c { g__scontents_name_#1_seq } }
\ExplSyntaxOff
\endinput
diff --git a/Master/texmf-dist/tex/latex/scontents/scontents.sty b/Master/texmf-dist/tex/latex/scontents/scontents.sty
index 13ff98bfabb..af503554a91 100644
--- a/Master/texmf-dist/tex/latex/scontents/scontents.sty
+++ b/Master/texmf-dist/tex/latex/scontents/scontents.sty
@@ -6,7 +6,7 @@
%%
%% scontents.dtx (with options: `loader,latex')
%%
-%% Copyright (C) 2019-2020 by Pablo González L <pablgonz@educarchile.cl>
+%% Copyright (C) 2019-2022 by Pablo González L <pablgonz@educarchile.cl>
%%
%% This work may be distributed and/or modified under the conditions of the
%% LaTeX Project Public License, either version 1.3c of this license or (at
@@ -27,31 +27,21 @@
%% t-scontents.mkiv and
%% scontents-code.tex.
%%
-\def\ScontentsFileDate{2020-01-21}%
-\def\ScontentsFileVersion{1.9}%
+\def\ScontentsFileDate{2022-04-04}%
+\def\ScontentsFileVersion{2.0}%
\def\ScontentsFileDescription{Stores LaTeX contents in memory or files}%
-\RequirePackage{expl3,xparse,l3keys2e}[2019/05/28]
+\RequirePackage{l3keys2e}[2020/02/08]
\ProvidesExplPackage
{scontents} {\ScontentsFileDate} {\ScontentsFileVersion} {\ScontentsFileDescription}
-\@ifpackageloaded { verbatim }
- {
- \msg_set:nnn { scontents } { unsupported-verbatim }
- {
- The~implementation~of~the~'verbatimsc'~environment~used~by~
- \iow_char:N \\typestored~is~not~compatible~with~package~'verbatim'.~
- Review~the~documentation~and~redefine~the~'verbatimsc'~environment.
- }
- \msg_warning:nn { scontents } { unsupported-verbatim }
- } { }
\tl_new:N \g__scontents_end_verbatimsc_tl
-\tl_gset_rescan:Nnn
- \g__scontents_end_verbatimsc_tl
+\tl_gset_rescan:Nnn \g__scontents_end_verbatimsc_tl
{
\char_set_catcode_other:N \\
\char_set_catcode_other:N \{
\char_set_catcode_other:N \}
}
{ \end{verbatimsc} }
+\tl_new:N \l__scontents_env_name_tl
\tl_const:Nx \c__scontents_end_env_tl
{
\c_backslash_str
@@ -66,11 +56,11 @@
\keys_define:nn { scontents }
{ verb-font .initial:n = \ttfamily }
\ProcessKeysOptions { scontents }
-\NewDocumentCommand { \newenvsc } { m O{} }
+\NewDocumentCommand \newenvsc { m O{} }
{
\cs_if_exist:cTF { #1 }
{ \msg_error:nnn { scontents } { env-already-defined } {#1} }
- { \__scontents_scontents_setenv:nn {#1} {#2} }
+ { \__scontents_env_setting:nn {#1} {#2} }
}
\cs_new_protected:Npn \__scontents_env_define:nnn #1 #2 #3
{
@@ -89,15 +79,15 @@
\__scontents_analyse_nesting_latex:n
\cs_gset_eq:NN \__scontents_bsphack: \@bsphack
\cs_gset_eq:NN \__scontents_esphack: \@esphack
-\NewDocumentCommand { \Scontents }{ !s !O{} }
+\NewDocumentCommand \Scontents { !s !O{} }
{ \__scontents_Scontents_internal:nn {#1} {#2} }
-\NewDocumentCommand { \__scontents_verb_arg:w } { +v }
+\NewDocumentCommand \__scontents_verb_arg:w { +v }
{ \__scontents_verb_arg_internal:n {#1} }
-\NewDocumentCommand { \getstored } { O{-1} m }
+\NewDocumentCommand \getstored { O{-1} m }
{ \__scontents_getstored_internal:nn {#1} {#2} }
-\NewDocumentCommand { \foreachsc } { o m }
+\NewDocumentCommand \foreachsc { o m }
{ \__scontents_foreachsc_internal:nn {#1} {#2} }
-\NewDocumentCommand { \typestored } { o m }
+\NewDocumentCommand \typestored { o m }
{ \__scontents_typestored_internal:nn {#1} {#2} }
\use:x
{
@@ -110,18 +100,18 @@
\cs_set_eq:cN { @xverbatim } \__scontents_xverb:
\verbatim
}
- { }
+ { \endverbatim }
\group_begin:
\cs_new_protected:Npn \__scontents_plain_disable_outer_par:
{ }
\group_end:
-\NewDocumentCommand { \setupsc } { +m }
+\NewDocumentCommand \setupsc { +m }
{ \keys_set:nn { scontents } {#1} }
-\NewDocumentCommand { \meaningsc } { o m }
+\NewDocumentCommand \meaningsc { o m }
{ \__scontents_meaningsc_internal:nn {#1} {#2} }
-\NewExpandableDocumentCommand { \countsc } { m }
+\NewExpandableDocumentCommand \countsc { m }
{ \seq_count:c { g__scontents_name_#1_seq } }
-\NewDocumentCommand { \cleanseqsc } { m }
+\NewDocumentCommand \cleanseqsc { m }
{ \seq_clear_new:c { g__scontents_name_#1_seq } }
\endinput
%%