texlive[67142] Master/texmf-dist: starray (17may23)
commits+karl at tug.org
commits+karl at tug.org
Wed May 17 22:30:29 CEST 2023
Revision: 67142
http://tug.org/svn/texlive?view=revision&revision=67142
Author: karl
Date: 2023-05-17 22:30:29 +0200 (Wed, 17 May 2023)
Log Message:
-----------
starray (17may23)
Modified Paths:
--------------
trunk/Master/texmf-dist/doc/latex/starray/README.md
trunk/Master/texmf-dist/doc/latex/starray/starray.pdf
trunk/Master/texmf-dist/doc/latex/starray/starray.tex
trunk/Master/texmf-dist/tex/latex/starray/starray.sty
Modified: trunk/Master/texmf-dist/doc/latex/starray/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/starray/README.md 2023-05-17 20:30:18 UTC (rev 67141)
+++ trunk/Master/texmf-dist/doc/latex/starray/README.md 2023-05-17 20:30:29 UTC (rev 67142)
@@ -33,7 +33,7 @@
## Contacting Author
-For bug reports and enhacement suggestions, the preferred way is to use
+For bug reports and enhancement suggestions, the preferred way is to use
[the project's issue page](https://github.com/alceu-frigeri/starray/issues).
Please be ready to provide an example code showing the bug, if any.
@@ -73,5 +73,12 @@
## Changelog
+* Version 1.1
+ - Issues #1/#2
+ - most/all commands are protected now
+ - removed predicate version of conditionals
+ - documentation
+
+
* Version 1.0
- Initial release by CTAN.
Modified: trunk/Master/texmf-dist/doc/latex/starray/starray.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/latex/starray/starray.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/starray/starray.tex 2023-05-17 20:30:18 UTC (rev 67141)
+++ trunk/Master/texmf-dist/doc/latex/starray/starray.tex 2023-05-17 20:30:29 UTC (rev 67142)
@@ -1,3 +1,6 @@
+% !TEX program = pdflatex
+% !TEX ext = --interaction=nonstopmode --enable-etex
+% !BIB program = none
%%%==============================================================================
%% Copyright 2023 by Alceu Frigeri
%%
@@ -12,20 +15,16 @@
%%
%% The Current Maintainer of this work is Alceu Frigeri
%%
-%% This is version 1.0 (2023/05/11)
+%% This is version 1.1 (2023/05/16)
%%
%% The list of files that compose this work can be found in the README.md file at
%% https://ctan.org/pkg/starray
%%
%%%==============================================================================
-% !TEX program = pdflatex
-% !TEX ext = --interaction=nonstopmode --enable-etex
-% !BIB program = none
\documentclass[10pt]{article}
\RequirePackage[verbose,a4paper,marginparwidth=27.5mm,top=2.5cm,bottom=1.5cm,hmargin={40mm,20mm},marginparsep=2.5mm,columnsep=10mm,asymmetric]{geometry}
%\RequirePackage[verbose,a4paper,marginparwidth=27.5mm,top=2.5cm,bottom=1.5cm,hmargin={45mm,25mm},marginparsep=2.5mm,columnsep=10mm,asymmetric]{geometry}
\usepackage{codedescribe}
-\usepackage{codelisting}
\usepackage{starray}
\RequirePackage[inline]{enumitem}
\SetEnumitemKey{miditemsep}{parsep=0ex,itemsep=0.4ex}
@@ -34,7 +33,7 @@
\begin{document}
\tstitle{
author={Alceu Frigeri\footnote{\tsverb{https://github.com/alceu-frigeri/starray}}},
- date={2023/05/11},
+ date={\tsdate},
title={The starray Package\break Version \PkgInfo{starray}{version}}
}
@@ -54,14 +53,21 @@
The construction/definition of a \tsobj[pkg]{starray} can be done piecewise (a property/sub-structure a time) or with a keyval interface or both, either way, one has to first ''create a root starray'' (\tsmacro{\starray_new:n}{}), define it's elements (properties and sub-structures), then instantiate them ''as needed''. An instance of a \tsobj[pkg]{starray} (or one of it's sub-structures) is referred, in this text, as a ''term''.
-Finally, almost all defined functions have a branching version, as per \tsobj[pkg]{expl3}: \tsobj[code]{_p,T,F,TF}. For simplicity, in the text bellow only the \underline{\textsl{TF}} variant is described, as in \tsobj[code]{\starray_new:nTF}, keep in mind that all 4 variants do exist, e.g. \tsobj[code]{\starray_new_p:n,\starray_new:nT,\starray_new_p:nF,\starray_new_p:nTF}. As usual, the \tsobj[code]{_p} version denotes, is the predicate one (which can be used in boolena expressions).
+Finally, almost all defined functions have a branching version, as per \tsobj[pkg]{expl3}: \tsobj[code]{T,F,TF} (note: no \tsobj{_p} variants, see below). For simplicity, in the text bellow only the \underline{\textsl{TF}} variant is described, as in \tsobj[code]{\starray_new:nTF}, keep in mind that all 3 variants are defined, e.g. \tsobj[code]{\starray_new:nT,\starray_new:nF,\starray_new:nTF}.
-\begin{tsremark}[N.B.:]
+\begin{tsremark}[Note:]
Could it be implemented with a single property list? It sure could, but at a cost:
\begin{enumerate*} \item complexity; \item access time. \end{enumerate*}
The current implementation, albeit also complex, tries to reach a balance between inherent structure complexity, number of used/defined auxiliary property lists and access time.
\end{tsremark}
+\begin{tsremark}[\color{red}Important:]
+ \textsl{Expandability}, unfortunately most/all defined functions are not ''fully expandable'', in particular, the conditional/branching functions aren't. This means, among other things, one can't have a 'predicated variant' of any conditional defined in this (for instance, to be used in a boolean expression).
+
+ For what it's worth, all user visible functions are 'protected'.
+\end{tsremark}
+
+
\section{Class Options}\label{pack:options}
The package options (\tsobj[key]{key}\,=\tsobj[value]{value}) are:
\begin{describelist}{option}
@@ -95,7 +101,6 @@
\tsmacro{\starray_new:nTF}{starray,if-true,if-false}
\end{codesyntax}
\end{codedescribe}
-
Creates a new \tsobj[marg]{starray} or raises a warning if the name is already taken. The declaration (and associated property lists) is global. The given name is referred (in this text) as the \tsobj[marg]{starray-root} or just \tsobj[marg]{root}.
\begin{tsremark}
A warning is raised (see \ref{pack:options}) if the name is already taken. The branching version doesn't raise any warning.
@@ -172,9 +177,10 @@
The definitions/assignments to \tsobj[marg]{starray-ref} are all global.
+\begin{tsremark}
+The non-branching version raises a warning (see \ref{pack:options}) in case of a \tsobj[marg]{starray-ref} syntax error. The branching version doesn't raise any warning. Also note that, syntax errors on the \tsobj[marg]{keyval-lst} might raise low level (\TeX) errors.
+\end{tsremark}
-The non-branching version raises a warning (see \ref{pack:options}) in case of a \tsobj[marg]{starray-ref} syntax error. The branching version doesn't raise any warning. Please note that, syntax errors on the \tsobj[marg]{keyval-lst} might raise low level (\TeX) errors.
-
\subsection{Fixing an ill-instantiated starray}\label{pack:def-fix}
When instantiating (see \ref{pack:instantiate}) a \tsobj[pkg]{starray}, the associated structured will be constructed based on it's ''current definition'' (see \ref{pack:def}). A problem that migh arise, when one extends the definition of an already instantiated \tsobj[pkg]{starray} (better said, if one adds a sub-structure), is a \textsl{quark loop} (from \tsobj[pkg]{l3quark}). To avoid a \textsl{quark loop} it is necessary to ''fix'' the structure of already instantiated terms.
@@ -250,10 +256,10 @@
\end{enumerate}
Note that, in the above example, it was used the ''implicit'' indexing (aka. iterator, see \ref{pack:ref}). Also note that no \textsl{term} of kind \tsobj[marg]{subYYY} was created.
-
+\begin{tsremark}
A warning is raised (see \ref{pack:options}) in case of a \tsobj[marg]{starray-ref} syntax error. The branching version doesn't raise any warning.
+\end{tsremark}
-
\subsection{referencing terms}\label{pack:ref}
When typing a \tsobj[marg]{starray-ref} there are 3 cases to consider:
@@ -553,6 +559,7 @@
\end{codedescribe}
Displays the \tsobj[marg]{starray} structure definition and initial property values in the terminal or directly in text.
+
\begin{codedescribe}{\starray_show_terms:n,\starray_show_terms_in_text:n}
\begin{codesyntax}%
\tsmacro{\starray_show_terms:n}{starray-ref}
Modified: trunk/Master/texmf-dist/tex/latex/starray/starray.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/starray/starray.sty 2023-05-17 20:30:18 UTC (rev 67141)
+++ trunk/Master/texmf-dist/tex/latex/starray/starray.sty 2023-05-17 20:30:29 UTC (rev 67142)
@@ -12,7 +12,7 @@
%%
%% The Current Maintainer of this work is Alceu Frigeri
%%
-%% This is version 1.0 (2023/05/11)
+%% This is version 1.1 (2023/05/16)
%%
%% The list of files that compose this work can be found in the README.md file at
%% https://ctan.org/pkg/starray
@@ -20,37 +20,43 @@
%%%==============================================================================
\NeedsTeXFormat{LaTeX2e}[2022/06/01]
\RequirePackage{ expl3 }
+
+
\ProvidesExplPackage
{starray}
- {2023/05/11}
+ {2023/05/16}
{1.0}
{A structured array/hash of properties}
-\prop_if_exist:NTF \g__codedesc_pkg_prop
- {}
- { \prop_new:N \g__codedesc_pkg_prop }
-
-\prop_put_from_keyval:Nn \g__codedesc_pkg_prop
+%%%%%%%
+%%%
+%%% Just an attempt of having my packages info in a regular way
+%%% Idea being: { <pck-name> / pkg info } for each and all.
+%%%
+%%%%%%%
+\keys_define:nn { starray / pkg info}
{
- starray . name = starrayr ,
- starray . prefix = starray ,
- starray . date = 2023/05/01 ,
- starray . version = 1.0 ,
- starray . description = A structured array/hash of properties
+ name .code:n = starray ,
+ prefix .code:n = starray ,
+ date .code:n = 2023/05/16 ,
+ version .code:n = 1.1 ,
+ description .code:n = A~structured~array/hash~of~properties
}
-
-\cs_gset:Npn \__codedesc_pkg_info:nn #1#2
+\cs_if_exist:NF \__codedesc_pkg_info:nn
{
- \prop_item:Nn \g__codedesc_pkg_prop {#1.#2}
+ \cs_new_protected:Npn \__codedesc_pkg_info:nn #1#2
+ { \keys_set:nn {#1 / pkg info}{#2} }
}
+\cs_if_exist:NF \PkgInfo
+ { \NewDocumentCommand \PkgInfo {mm} { \keys_set:nn {#1 / pkg info}{#2} } }
+%%%%%%%
+%%% End of cut-n-paste
+%%%%%%%
-\cs_if_exist:NTF \PkgInfo
- {}
- {
- \NewDocumentCommand \PkgInfo {mm} { \prop_item:Nn \g__codedesc_pkg_prop {#1.#2} }
- }
+
+
%%%%%%%%%%%%%%%%%%%
%%%%
%%%% New package
@@ -277,7 +283,7 @@
-\cs_new:Npn \__starray_msg:nnnnn #1#2#3#4#5
+\cs_new_protected:Npn \__starray_msg:nnnnn #1#2#3#4#5
{
\bool_gset_false:N \l__starray_rtn_bool
@@ -290,7 +296,7 @@
\cs_generate_variant:Nn \__starray_msg:nnnnn { nneee , neeee }
-\cs_new:Npn \__starray_msg_dispatch:
+\cs_new_protected:Npn \__starray_msg_dispatch:
{
\seq_map_tokens:Nn \l__starray_msg_seq { }
\seq_clear:N \l__starray_msg_seq
@@ -398,7 +404,8 @@
%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%
-\prg_new_conditional:Npnn \__starray_if_free:n #1 {p, T, F, TF}
+% probably EXP
+\prg_new_protected_conditional:Npnn \__starray_if_free:n #1 {T, F, TF}
{
\prop_if_exist:cTF {#1}
{ \prg_return_false: }
@@ -405,9 +412,10 @@
{ \prg_return_true: }
}
-\prg_generate_conditional_variant:Nnn \__starray_if_free:n {e} {p, T, F, TF}
+\prg_generate_conditional_variant:Nnn \__starray_if_free:n {e} {T, F, TF}
-\prg_new_conditional:Npnn \__starray_if_valid:n #1 {p, T, F, TF}
+% possible rEXP
+\prg_new_protected_conditional:Npnn \__starray_if_valid:n #1 {T, F, TF}
{
\bool_lazy_and:nnTF {\prop_if_exist_p:c {#1}} {\prop_item:cn {#1} {is_starray}}
{ \prg_return_true: }
@@ -414,7 +422,7 @@
{ \prg_return_false: }
}
-\prg_generate_conditional_variant:Nnn \__starray_if_valid:n {e} {p, T, F, TF}
+\prg_generate_conditional_variant:Nnn \__starray_if_valid:n {e} {T, F, TF}
%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%
@@ -425,8 +433,8 @@
%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%
-
-\cs_new:Npn \__starray_base_new:nn #1#2
+% needs protection.
+\cs_new_protected:Npn \__starray_base_new:nn #1#2
{
\int_new:c
{ \l__starray_prefix_tl #2 _cnt_int }
@@ -466,11 +474,13 @@
\cs_generate_variant:Nn \__starray_base_new:nn { ee }
-\cs_new:Npn \__starray_sub_base_new:nnn #1#2#3
+% needs protection.
+\cs_new_protected:Npn \__starray_sub_base_new:nnn #1#2#3
{ \__starray_base_new:ee {#1.#3}{#2.#3} }
-\cs_new:Npn \__starray_new:n #1
+% needs protection.
+\cs_new_protected:Npn \__starray_new:n #1
{
\prop_new:c
{ \l__starray_prefix_tl #1 _def_prop }
@@ -500,7 +510,8 @@
%%%%
%%%%%%%%%%%%%%%
-\cs_new:Npn \starray_new:n #1
+% needs protection.
+\cs_new_protected:Npn \starray_new:n #1
{
\__starray_if_free:nTF {\l__starray_prefix_tl #1 _def_prop}
{
@@ -513,7 +524,8 @@
}
-\prg_new_conditional:Npnn \starray_new:n #1 {p, T, F, TF}
+% needs protection.
+\prg_new_protected_conditional:Npnn \starray_new:n #1 {T, F, TF}
{
\__starray_if_free:nTF {\l__starray_prefix_tl #1 _def_prop}
{
@@ -547,6 +559,11 @@
%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%
+%%%
+%%% This one can't be protected... it is used in {e} expantion
+%%% if protected, it results in a quark loop
+%%%
+%
\cs_new:Npn \__starray_get_root:w #1 . #2 \q_stop { #1 }
@@ -561,7 +578,8 @@
%%%%%%%%%%%%%%%
-\cs_new:Npn \__starray_def_prop:nnn #1#2#3
+% needs protection.
+\cs_new_protected:Npn \__starray_def_prop:nnn #1#2#3
{
\prop_get:cnN {\l__starray_prefix_tl #1 _def_prop} {def} \l_tmpa_prop
\prop_put:Nnn \l_tmpa_prop {#2} {#3}
@@ -576,7 +594,8 @@
%%%%
%%%%%%%%%%%%%%%
-\cs_new:Npn \starray_def_prop:nnn #1#2#3
+% needs protection, because of _p
+\cs_new_protected:Npn \starray_def_prop:nnn #1#2#3
{
\__starray_if_valid:nTF {\l__starray_prefix_tl #1 _def_prop}
{ \__starray_def_prop:nnn {#1} {#2} {#3} }
@@ -587,7 +606,8 @@
}
-\prg_new_conditional:Npnn \starray_def_prop:nnn #1#2#3 {p, T, F, TF}
+% needs protection, because of _p
+\prg_new_protected_conditional:Npnn \starray_def_prop:nnn #1#2#3 {T, F, TF}
{
\__starray_if_valid:nTF {\l__starray_prefix_tl #1 _def_prop}
{
@@ -607,7 +627,8 @@
%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%
-\cs_new:Npn \__starray_def_struct:nn #1#2
+% needs protection because of \seq_if...
+\cs_new_protected:Npn \__starray_def_struct:nn #1#2
{
\prop_get:cnN {\l__starray_prefix_tl #1 _def_prop} {@st_seq} \l_tmpa_seq
\seq_if_in:NnF \l_tmpa_seq {#2}
@@ -633,7 +654,7 @@
%%%%%%%%%%%%%%%
%TODO: recurse over 'terms' to fix a 'late addtion' (after being instantiated?)
-\cs_new:Npn \__starray_fix_terms_seq_aux:nnnn #1#2#3#4
+\cs_new_protected:Npn \__starray_fix_terms_seq_aux:nnnn #1#2#3#4
{
\__starray_if_valid:eTF {\l__starray_prefix_tl #2 _ #3 . #4 _base_prop}
{
@@ -644,7 +665,7 @@
}
}
-\cs_new:Npn \__starray_fix_terms_seq:nnnn #1#2#3#4
+\cs_new_protected:Npn \__starray_fix_terms_seq:nnnn #1#2#3#4
{
\prop_get:cnN
{\l__starray_prefix_tl #2 _base_prop}
@@ -660,7 +681,7 @@
}
-\cs_new:Npn \__starray_fix_terms:nn #1#2
+\cs_new_protected:Npn \__starray_fix_terms:nn #1#2
{
\group_begin:
\prop_get:cnc
@@ -680,7 +701,7 @@
-\cs_new:Npn \starray_fix_terms:n #1
+\cs_new_protected:Npn \starray_fix_terms:n #1
{
\tl_set:Ne \l_tmpb_tl {\__starray_get_root:w #1 . \q_nil \q_stop}
@@ -702,7 +723,7 @@
%%%%
%%%%%%%%%%%%%%%
-\cs_new:Npn \starray_def_struct:nn #1#2
+\cs_new_protected:Npn \starray_def_struct:nn #1#2
{
\__starray_if_valid:nTF { \l__starray_prefix_tl #1 _def_prop}
{
@@ -714,7 +735,7 @@
}
}
-\prg_new_conditional:Npnn \starray_def_struct:nn #1#2 {p, T, F, TF}
+\prg_new_protected_conditional:Npnn \starray_def_struct:nn #1#2 {T, F, TF}
{
\__starray_if_valid:nTF { \l__starray_prefix_tl #1 _def_prop}
{
@@ -735,7 +756,7 @@
%%%%%%%%%%%%%%%
-\prg_new_conditional:Npnn \__starray_def_from_keyval_testdot_aux:w #1 . \q_nil { p, TF}
+\prg_new_protected_conditional:Npnn \__starray_def_from_keyval_testdot_aux:w #1 . \q_nil { TF}
{
\str_compare:nNnTF {#1} = {struct}
{ \prg_return_true: }
@@ -743,7 +764,7 @@
}
-\prg_new_conditional:Npnn \__starray_def_from_keyval_testdot:w #1 . #2 \q_stop { TF}
+\prg_new_protected_conditional:Npnn \__starray_def_from_keyval_testdot:w #1 . #2 \q_stop { TF}
{
\quark_if_nil:nTF {#2}
{
@@ -763,7 +784,7 @@
}
-\cs_new:Npn \__starray_def_from_keyval_parse:nnn #1#2#3
+\cs_new_protected:Npn \__starray_def_from_keyval_parse:nnn #1#2#3
{
\group_begin:
\__starray_def_from_keyval_testdot:wTF #2 . \q_nil \q_stop
@@ -784,7 +805,7 @@
\cs_generate_variant:Nn \__starray_def_from_keyval_parse:nnn {enn}
-\cs_new:Npn \__starray_def_from_keyval_parse:nn #1#2
+\cs_new_protected:Npn \__starray_def_from_keyval_parse:nn #1#2
{
\__starray_def_prop:nnn {#1} {#2} {}
}
@@ -799,7 +820,7 @@
%%%%
%%%%%%%%%%%%%%%
-\cs_new:Npn \starray_def_from_keyval:nn #1#2
+\cs_new_protected:Npn \starray_def_from_keyval:nn #1#2
{
% \bool_set_true:N \l__starray_rtn_bool
\__starray_if_valid:nTF { \l__starray_prefix_tl #1 _def_prop}
@@ -818,7 +839,7 @@
\cs_generate_variant:Nn \starray_def_from_keyval:nn {ne , ee}
-\prg_new_conditional:Npnn \starray_def_from_keyval:nn #1#2 {p, T, F, TF}
+\prg_new_protected_conditional:Npnn \starray_def_from_keyval:nn #1#2 {T, F, TF}
{
\__starray_if_valid:nTF { \l__starray_prefix_tl #1 _def_prop}
{
@@ -841,7 +862,7 @@
%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%
-\cs_new:Npn \__starray_new_term:nn #1#2
+\cs_new_protected:Npn \__starray_new_term:nn #1#2
{
\int_gincr:N
{\prop_item:cn {\l__starray_prefix_tl #1 _base_prop} {cnt} }
@@ -898,7 +919,7 @@
%%%%
%%%%%%%%%%%%%%%
-\cs_new:Npn \starray_new_term:nn #1#2
+\cs_new_protected:Npn \starray_new_term:nn #1#2
{
\__starray_parser:nnTF {\c__starray_no_idx_ending_bool}{#1}
{
@@ -912,7 +933,7 @@
}
}
-\prg_new_conditional:Npnn \starray_new_term:nn #1#2 {p, T, F, TF}
+\prg_new_protected_conditional:Npnn \starray_new_term:nn #1#2 {T, F, TF}
{
\__starray_parser:nnTF {\c__starray_no_idx_ending_bool}{#1}
{
@@ -928,7 +949,7 @@
%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%
%%%%
-%%%% changing iterator value (recursing sub-structures)
+%%%% changing iterator value (recursing over sub-structures)
%%%%
%%%% NOTE: since iterator change 'can' be just local, 'temp vars' are recursive aware.
%%%%
@@ -935,7 +956,7 @@
%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%
-\cs_new:Npn \__starray_incr_iter:n #1
+\cs_new_protected:Npn \__starray_incr_iter:n #1
{
\int_compare:nNnTF
{\prop_item:cn {\l__starray_prefix_tl #1 _base_prop} {iter}} <
@@ -949,7 +970,7 @@
}
}
-\prg_new_conditional:Npnn \__starray_set_iter:nn #1#2 {p , T , F , TF}
+\prg_new_protected_conditional:Npnn \__starray_set_iter:nn #1#2 {T , F , TF}
{
\int_compare:nNnTF {#1} > {\prop_item:cn {\l__starray_prefix_tl #2 _base_prop} {cnt}}
{
@@ -966,9 +987,9 @@
}
}
-\prg_generate_conditional_variant:Nnn \__starray_set_iter:nn {ne} {p , T , F , TF}
+\prg_generate_conditional_variant:Nnn \__starray_set_iter:nn {ne} {T , F , TF}
-\cs_new:Npn \__starray_set_sub_iter:nnn #1#2#3
+\cs_new_protected:Npn \__starray_set_sub_iter:nnn #1#2#3
{
\prop_get:cnN {\l__starray_prefix_tl #2#3 _base_prop} {idx_hash} \l_tmpa_prop
@@ -1016,7 +1037,7 @@
%%%%
%%%%%%%%%%%%%%%
-\cs_new:Npn \starray_set_iter:nn #1#2
+\cs_new_protected:Npn \starray_set_iter:nn #1#2
{
\__starray_parser:nnTF {\c__starray_no_idx_ending_bool}{#1}
{
@@ -1039,7 +1060,7 @@
-\prg_new_conditional:Npnn \starray_set_iter:nn #1#2 {p, T, F, TF}
+\prg_new_protected_conditional:Npnn \starray_set_iter:nn #1#2 {T, F, TF}
{
\bool_set_true:N \l__starray_rtn_bool
@@ -1075,7 +1096,7 @@
%%%%
%%%%%%%%%%%%%%%
-\cs_new:Npn \starray_reset_iter:n #1
+\cs_new_protected:Npn \starray_reset_iter:n #1
{
\__starray_parser:nnTF {\c__starray_no_idx_ending_bool}{#1}
{
@@ -1089,7 +1110,7 @@
}
-\prg_new_conditional:Npnn \starray_reset_iter:n #1 {p, T, F, TF}
+\prg_new_protected_conditional:Npnn \starray_reset_iter:n #1 {T, F, TF}
{
\bool_set_true:N \l__starray_rtn_bool
@@ -1114,7 +1135,7 @@
%%%%
%%%%%%%%%%%%%%%
-\cs_new:Npn \starray_next_iter:n #1
+\cs_new_protected:Npn \starray_next_iter:n #1
{
% \bool_set_true:N \l__starray_rtn_bool
\seq_clear:N \l__starray_msg_seq
@@ -1133,7 +1154,7 @@
-\prg_new_conditional:Npnn \starray_next_iter:n #1 {p, T, F, TF}
+\prg_new_protected_conditional:Npnn \starray_next_iter:n #1 {T, F, TF}
{
\bool_set_true:N \l__starray_rtn_bool
\seq_clear:N \l__starray_msg_seq
@@ -1159,7 +1180,7 @@
%%%%%%%%%%%%%%%
-\cs_new:Npn \__starray_get_prop:nn #1#2
+\cs_new_protected:Npn \__starray_get_prop:nn #1#2
{
\prop_item:cn {\l__starray_prefix_tl #1 _term_prop}{#2}
}
@@ -1173,7 +1194,7 @@
%%%%
%%%%%%%%%%%%%%%
-\cs_new:Npn \starray_get_prop:nn #1#2
+\cs_new_protected:Npn \starray_get_prop:nn #1#2
{
\__starray_parser:nnTF {\c__starray_idx_ending_bool}{#1}
{
@@ -1185,7 +1206,7 @@
} % returns nothing by default
}
-\cs_new:Npn \starray_get_prop:nnN #1#2#3
+\cs_new_protected:Npn \starray_get_prop:nnN #1#2#3
{
\__starray_parser:nnTF {\c__starray_idx_ending_bool}{#1}
{
@@ -1202,7 +1223,7 @@
}
-\prg_new_conditional:Npnn \starray_get_prop:nnN #1#2#3 {p, T, F, TF}
+\prg_new_protected_conditional:Npnn \starray_get_prop:nnN #1#2#3 {T, F, TF}
{
\__starray_parser:nnTF {\c__starray_idx_ending_bool}{#1}
{
@@ -1224,7 +1245,7 @@
}
-\prg_new_conditional:Npnn \starray_if_in:nn #1#2 {p, T, F, TF}
+\prg_new_protected_conditional:Npnn \starray_if_in:nn #1#2 {T, F, TF}
{
\__starray_parser:nnTF {\c__starray_idx_ending_bool}{#1}
{
@@ -1244,7 +1265,7 @@
}
-\cs_new:Npn \starray_get_cnt:n #1
+\cs_new_protected:Npn \starray_get_cnt:n #1
{
\__starray_parser:nnTF {\c__starray_no_idx_ending_bool}{#1}
{
@@ -1257,7 +1278,7 @@
} % returns nothing by default
}
-\cs_new:Npn \starray_get_cnt:nN #1#2
+\cs_new_protected:Npn \starray_get_cnt:nN #1#2
{
\__starray_parser:nnTF {\c__starray_no_idx_ending_bool}{#1}
{
@@ -1272,7 +1293,7 @@
} % returns nothing by default
}
-\prg_new_conditional:Npnn \starray_get_cnt:nN #1#2 {p, T, F, TF}
+\prg_new_protected_conditional:Npnn \starray_get_cnt:nN #1#2 {T, F, TF}
{
\__starray_parser:nnTF {\c__starray_no_idx_ending_bool}{#1}
{
@@ -1287,7 +1308,7 @@
} % returns nothing by default
}
-\cs_new:Npn \starray_get_iter:n #1
+\cs_new_protected:Npn \starray_get_iter:n #1
{
\__starray_parser:nnTF {\c__starray_no_idx_ending_bool}{#1}
{
@@ -1302,7 +1323,7 @@
}
-\cs_new:Npn \starray_get_iter:nN #1#2
+\cs_new_protected:Npn \starray_get_iter:nN #1#2
{
\__starray_parser:nnTF {\c__starray_no_idx_ending_bool}{#1}
{
@@ -1317,7 +1338,7 @@
} % returns nothing by default
}
-\prg_new_conditional:Npnn \starray_get_iter:nN #1#2 {p, T, F, TF}
+\prg_new_protected_conditional:Npnn \starray_get_iter:nN #1#2 {T, F, TF}
{
\__starray_parser:nnTF {\c__starray_no_idx_ending_bool}{#1}
{
@@ -1336,7 +1357,7 @@
-\cs_new:Npn \__starray_set_prop:nnn #1#2#3
+\cs_new_protected:Npn \__starray_set_prop:nnn #1#2#3
{
\l__starray_put_tl {\l__starray_prefix_tl #1 _term_prop}{#2}{#3}
}
@@ -1348,7 +1369,7 @@
%%%%
%%%%%%%%%%%%%%%
-\cs_new:Npn \starray_set_prop:nnn #1#2#3
+\cs_new_protected:Npn \starray_set_prop:nnn #1#2#3
{
\tl_set:Nn \l__starray_put_tl \prop_put:cnn
\__starray_parser:nnTF {\c__starray_idx_ending_bool}{#1}
@@ -1364,7 +1385,7 @@
\cs_generate_variant:Nn \starray_set_prop:nnn {nnV}
-\cs_new:Npn \starray_gset_prop:nnn #1#2#3
+\cs_new_protected:Npn \starray_gset_prop:nnn #1#2#3
{
\tl_set:Nn \l__starray_put_tl \prop_gput:cnn
\__starray_parser:nnTF {\c__starray_idx_ending_bool}{#1}
@@ -1381,7 +1402,7 @@
\cs_generate_variant:Nn \starray_gset_prop:nnn {nnV}
-\prg_new_conditional:Npnn \starray_set_prop:nnn #1#2#3 {p, T, F, TF}
+\prg_new_protected_conditional:Npnn \starray_set_prop:nnn #1#2#3 {T, F, TF}
{
\tl_set:Nn \l__starray_put_tl \prop_put:cnn
\__starray_parser:nnTF {\c__starray_idx_ending_bool}{#1}
@@ -1397,7 +1418,7 @@
\prg_generate_conditional_variant:Nnn \starray_set_prop:nnn { nnV } { p , T, F , TF }
-\prg_new_conditional:Npnn \starray_gset_prop:nnn #1#2#3 {p, T, F, TF}
+\prg_new_protected_conditional:Npnn \starray_gset_prop:nnn #1#2#3 {T, F, TF}
{
\tl_set:Nn \l__starray_put_tl \prop_gput:cnn
\__starray_parser:nnTF {\c__starray_idx_ending_bool}{#1}
@@ -1425,7 +1446,7 @@
%%%%%%%%%%%%%%%
-\prg_new_conditional:Npnn \__starray_set_parse_end:w #1#2 ] #3 \q_stop { TF}
+\prg_new_protected_conditional:Npnn \__starray_set_parse_end:w #1#2 ] #3 \q_stop { TF}
{
\quark_if_nil:nTF {#3}
{ \prg_return_false: } %% syntax ERR
@@ -1436,7 +1457,7 @@
}
-\prg_new_conditional:Npnn \__starray_set_parse_aux:w #1#2 [ \q_nil \q_stop { TF}
+\prg_new_protected_conditional:Npnn \__starray_set_parse_aux:w #1#2 [ \q_nil \q_stop { TF}
{
\__starray_set_parse_end:wTF {#1}#2 ] \q_nil\q_stop
{\prg_return_true:}
@@ -1444,7 +1465,7 @@
}
-\prg_new_conditional:Npnn \__starray_set_parse_begin:w #1#2 [ #3 \q_stop { TF}
+\prg_new_protected_conditional:Npnn \__starray_set_parse_begin:w #1#2 [ #3 \q_stop { TF}
{
\quark_if_nil:nTF {#3}
{ % no 'term' ref, just array_name (current/iter term)
@@ -1461,7 +1482,7 @@
-\cs_new:Npn \__starray_set_from_keyval_parse:nnnn #1#2#3#4
+\cs_new_protected:Npn \__starray_set_from_keyval_parse:nnnn #1#2#3#4
{
\__starray_set_prop:nnn {#3}{#4}{}
}
@@ -1479,7 +1500,7 @@
%%%%%%%%%%%%%%%
-\cs_new:Npn \__starray_set_from_keyval_parse:nnnnn #1#2#3#4#5
+\cs_new_protected:Npn \__starray_set_from_keyval_parse:nnnnn #1#2#3#4#5
{
\tl_clear:c {l__starray_tmp #1 _tl}
\__starray_set_parse_begin:wTF {#1}#4 [ \q_nil \q_stop
@@ -1604,7 +1625,7 @@
%%%%%%%%%%%%%%%
-\cs_new:Npn \__starray_set_from_keyval:nn #1#2
+\cs_new_protected:Npn \__starray_set_from_keyval:nn #1#2
{
\bool_set_true:N \l__starray_rtn_bool
\__starray_parser:nnTF {\c__starray_idx_ending_bool}{#1}
@@ -1624,20 +1645,22 @@
}
-\cs_new:Npn \starray_set_from_keyval:nn #1#2
+\cs_new_protected:Npn \starray_set_from_keyval:nn #1#2
{
\tl_set:Nn \l__starray_put_tl \prop_put:cnn
\__starray_set_from_keyval:nn {#1}{#2}
}
-\cs_new:Npn \starray_gset_from_keyval:nn #1#2
+\cs_new_protected:Npn \starray_gset_from_keyval:nn #1#2
{
\tl_set:Nn \l__starray_put_tl \prop_gput:cnn
\__starray_set_from_keyval:nn {#1}{#2}
}
-
-\cs_new:Npn \__starray_set_from_keyvalTF:nn #1#2
+%%%
+%%% small surprise, it was possible to _protected it... TODO: further test it.
+%%%
+\cs_new_protected:Npn \__starray_set_from_keyvalTF:nn #1#2
{
\bool_set_true:N \l__starray_rtn_bool
\__starray_parser:nnTF {\c__starray_idx_ending_bool}{#1}
@@ -1653,13 +1676,13 @@
{ \prg_return_false: }
}
-\prg_new_conditional:Npnn \starray_set_from_keyval:nn #1#2 {p, T, F, TF}
+\prg_new_protected_conditional:Npnn \starray_set_from_keyval:nn #1#2 {T, F, TF}
{
\tl_set:Nn \l__starray_put_tl \prop_put:cnn
\__starray_set_from_keyvalTF:nn {#1}{#2}
}
-\prg_new_conditional:Npnn \starray_gset_from_keyval:nn #1#2 {p, T, F, TF}
+\prg_new_protected_conditional:Npnn \starray_gset_from_keyval:nn #1#2 {T, F, TF}
{
\tl_set:Nn \l__starray_put_tl \prop_gput:cnn
\__starray_set_from_keyvalTF:nn {#1}{#2}
@@ -1680,7 +1703,7 @@
%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%
-\prg_new_conditional:Npnn \__starray_term_parse_end:w #1 ] #2 \q_stop { TF}
+\prg_new_protected_conditional:Npnn \__starray_term_parse_end:w #1 ] #2 \q_stop { TF}
{
\quark_if_nil:nTF {#2}
{ \prg_return_false: } %% syntax ERR
@@ -1691,7 +1714,7 @@
}
-\prg_new_conditional:Npnn \__starray_term_parse_aux:w #1 [ \q_nil \q_stop { TF}
+\prg_new_protected_conditional:Npnn \__starray_term_parse_aux:w #1 [ \q_nil \q_stop { TF}
{
\__starray_term_parse_end:wTF #1 ] \q_nil\q_stop
{\prg_return_true:}
@@ -1699,7 +1722,7 @@
}
-\prg_new_conditional:Npnn \__starray_term_parse_begin:w #1 [ #2 \q_stop { TF}
+\prg_new_protected_conditional:Npnn \__starray_term_parse_begin:w #1 [ #2 \q_stop { TF}
{
\tl_set:Nn \l__starray_parsed_term_tl {#1}
@@ -1717,9 +1740,9 @@
% verify #2 before going for #1 . . .
-% if #2 isn't empty test for it return true/false
+% if #2 isn't empty test for it, return true/false
% if #2 is empty, test if #1 is valid, return true/false
-\prg_new_conditional:Npnn \__starray_if_valid_idx:nn #1#2 {p, T, F, TF}
+\prg_new_protected_conditional:Npnn \__starray_if_valid_idx:nn #1#2 {T, F, TF}
{
\prop_get:cnN {\l__starray_prefix_tl \l__starray_parsed_ref_tl _base_prop} {idx_hash} \l_tmpa_prop
@@ -1738,9 +1761,13 @@
{\prg_return_false:}
}
-\prg_generate_conditional_variant:Nnn \__starray_if_valid_idx:nn {ee} {p, T, F, TF}
+\prg_generate_conditional_variant:Nnn \__starray_if_valid_idx:nn {ee} {T, F, TF}
-\cs_new:Npn \__starray_ref_parse:w #1 . #2 \q_stop
+
+%%%
+%%% small surprise, it was possible to _protected this... TODO: further test it.
+%%%
+\cs_new_protected:Npn \__starray_ref_parse:w #1 . #2 \q_stop
{
\tl_put_right:Ne \l__starray_parsed_tl {#1}
@@ -1846,7 +1873,7 @@
%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%
-\prg_new_conditional:Npnn \__starray_parser:nn #1#2 {p, T, F, TF}
+\prg_new_protected_conditional:Npnn \__starray_parser:nn #1#2 {T, F, TF}
{
\bool_set_eq:NN \l__starray_parser_no_idx_ending_bool #1
\bool_set_true:N \l__starray_parser_OK_bool
@@ -1874,7 +1901,7 @@
}
-\prg_new_conditional:Npnn \starray_term_syntax:n #1 {p, T, F, TF}
+\prg_new_protected_conditional:Npnn \starray_term_syntax:n #1 {T, F, TF}
{
\__starray_parser:nnTF {\c__starray_idx_ending_bool}{#1}
{\prg_return_true:}
@@ -1901,7 +1928,7 @@
%%%%%%%%%%%%%%%
-\cs_new:Npn \__starray_show_def_item:nnn #1#2#3
+\cs_new_protected:Npn \__starray_show_def_item:nnn #1#2#3
{
\tl_gput_right:Nn \l__starray_tmpa_tl
{
@@ -1912,7 +1939,7 @@
}
}
-\cs_new:Npn \__starray_show_def:nnn #1#2#3
+\cs_new_protected:Npn \__starray_show_def:nnn #1#2#3
{
\group_begin:
\tl_gput_right:Nn \l__starray_tmpa_tl
@@ -1951,7 +1978,7 @@
%%%%
%%%%%%%%%%%%%%%
-\cs_new:Npn \starray_show_def:n #1
+\cs_new_protected:Npn \starray_show_def:n #1
{
\tl_clear:N \l__starray_tmpa_tl
\tl_set:Nn \l__starray_showcmd_tl \iow_newline:
@@ -1963,7 +1990,7 @@
{ \tl_use:N \l__starray_tmpa_tl }
}
-\cs_new:Npn \starray_show_def_in_text:n #1
+\cs_new_protected:Npn \starray_show_def_in_text:n #1
{
\tl_clear:N \l__starray_tmpa_tl
\tl_set:Nn \l__starray_showcmd_tl \par
@@ -1991,7 +2018,7 @@
%%%%%%%%%%%%%%%
-\cs_new:Npn \__starray_show_term_item:nnnnn #1#2#3#4#5
+\cs_new_protected:Npn \__starray_show_term_item:nnnnn #1#2#3#4#5
{
\group_begin:
\tl_gput_right:Nn \l__starray_tmpa_tl
@@ -2027,7 +2054,7 @@
-\cs_new:Npn \__starray_show_terms:nnn #1#2#3
+\cs_new_protected:Npn \__starray_show_terms:nnn #1#2#3
{
\group_begin:
\prop_get:cnc
@@ -2049,7 +2076,7 @@
%%%%
%%%%%%%%%%%%%%%
-\cs_new:Npn \starray_show_terms:n #1
+\cs_new_protected:Npn \starray_show_terms:n #1
{
\tl_clear:N \l__starray_tmpa_tl
\tl_set:Nn \l__starray_showcmd_tl \iow_newline:
@@ -2061,7 +2088,7 @@
{ \tl_use:N \l__starray_tmpa_tl }
}
-\cs_new:Npn \starray_show_terms_in_text:n #1
+\cs_new_protected:Npn \starray_show_terms_in_text:n #1
{
\tl_clear:N \l__starray_tmpa_tl
\tl_set:Nn \l__starray_showcmd_tl \par
More information about the tex-live-commits
mailing list.