[latex3-commits] [git/LaTeX3-latex3-latex3] main: Implement \seq_set_item:NnnTF instead of seq_put_item (see #844) (c7e08f713)

Bruno Le Floch blflatex at gmail.com
Thu Apr 29 15:29:13 CEST 2021


Repository : https://github.com/latex3/latex3
On branch  : main
Link       : https://github.com/latex3/latex3/commit/c7e08f713c59846b0afc5d7fb2db878d9e12dead

>---------------------------------------------------------------

commit c7e08f713c59846b0afc5d7fb2db878d9e12dead
Author: Bruno Le Floch <blflatex at gmail.com>
Date:   Thu Apr 29 15:29:13 2021 +0200

    Implement \seq_set_item:NnnTF instead of seq_put_item (see #844)
    
    As discussed on the github issue #844, seq_put_item is somewhat
    misleading and the name seq_set_item is clearer about what it does.


>---------------------------------------------------------------

c7e08f713c59846b0afc5d7fb2db878d9e12dead
 l3kernel/CHANGELOG.md           |  2 +-
 l3kernel/l3candidates.dtx       | 80 ++++++++++++++++++++---------------------
 l3kernel/testfiles/m3seq005.lvt | 40 ++++++++++-----------
 l3kernel/testfiles/m3seq005.tlg |  2 +-
 4 files changed, 62 insertions(+), 62 deletions(-)

diff --git a/l3kernel/CHANGELOG.md b/l3kernel/CHANGELOG.md
index 3c34ad55d..ae01c88da 100644
--- a/l3kernel/CHANGELOG.md
+++ b/l3kernel/CHANGELOG.md
@@ -12,7 +12,7 @@ this project uses date-based 'snapshot' version identifiers.
 - `\tracingstacklevels`
 - Color export in comma-separated format
 - `\ur{...}` escape in `l3regex` to compose regexes
-- `\seq_put_item:Nnn(TF)` and `\seq_pop_item:NnN(TF)`
+- `\seq_set_item:Nnn(TF)` and `\seq_pop_item:NnN(TF)`
 
 ### Changed
 - Breaking change: use prevailing catcodes instead of string in
diff --git a/l3kernel/l3candidates.dtx b/l3kernel/l3candidates.dtx
index 5ddfe2578..d6260176a 100644
--- a/l3kernel/l3candidates.dtx
+++ b/l3kernel/l3candidates.dtx
@@ -434,11 +434,11 @@
 %   mappings.
 % \end{function}
 %
-% \begin{function}[added = 2021-04-28, noTF]
-%   {\seq_put_item:Nnn, \seq_put_item:cnn, \seq_gput_item:Nnn, \seq_gput_item:cnn}
+% \begin{function}[added = 2021-04-29, noTF]
+%   {\seq_set_item:Nnn, \seq_set_item:cnn, \seq_gset_item:Nnn, \seq_gset_item:cnn}
 %   \begin{syntax}
-%     \cs{seq_put_item:Nnn} \meta{seq~var} \Arg{intexpr} \Arg{item}
-%     \cs{seq_put_item:NnnTF} \meta{seq~var} \Arg{intexpr} \Arg{item} \Arg{true code} \Arg{false code}
+%     \cs{seq_set_item:Nnn} \meta{seq~var} \Arg{intexpr} \Arg{item}
+%     \cs{seq_set_item:NnnTF} \meta{seq~var} \Arg{intexpr} \Arg{item} \Arg{true code} \Arg{false code}
 %   \end{syntax}
 %   Removes the item of \meta{sequence} at the position given by
 %   evaluating the \meta{integer expression} and replaces it by
@@ -446,8 +446,8 @@
 %   \meta{sequence}, or from $-1$ on the right/bottom.  If the
 %   \meta{integer expression} is zero or is larger (in absolute value)
 %   than the number of items in the sequence, the \meta{sequence} is not
-%   modified.  In these cases, \cs{seq_put_item:Nnn} raises an error
-%   while \cs{seq_put_item:NnnTF} runs the \meta{false code}.  In cases
+%   modified.  In these cases, \cs{seq_set_item:Nnn} raises an error
+%   while \cs{seq_set_item:NnnTF} runs the \meta{false code}.  In cases
 %   where the assignment was successful, \meta{true code} is run
 %   afterwards.
 % \end{function}
@@ -1170,54 +1170,54 @@
 %    \end{macrocode}
 % \end{macro}
 %
-% \begin{macro}[noTF]{\seq_put_item:Nnn, \seq_put_item:cnn, \seq_gput_item:Nnn, \seq_gput_item:cnn}
-% \begin{macro}{\@@_put_item:NnnNN, \@@_put_item:nnNNNN, \@@_put_item_false:nnNNNN, \@@_put_item:nNnnNNNN}
-% \begin{macro}[rEXP]{\@@_put_item:wn, \@@_put_item_end:w}
+% \begin{macro}[noTF]{\seq_set_item:Nnn, \seq_set_item:cnn, \seq_gset_item:Nnn, \seq_gset_item:cnn}
+% \begin{macro}{\@@_set_item:NnnNN, \@@_set_item:nnNNNN, \@@_set_item_false:nnNNNN, \@@_set_item:nNnnNNNN}
+% \begin{macro}[rEXP]{\@@_set_item:wn, \@@_set_item_end:w}
 %   The conditionals are distinguished from the |Nnn| versions by the
 %   last argument \cs{use_ii:nn} vs \cs{use_i:nn}.
 %    \begin{macrocode}
-\cs_new_protected:Npn \seq_put_item:Nnn #1#2#3
-  { \@@_put_item:NnnNN #1 {#2} {#3} \__kernel_tl_set:Nx \use_i:nn }
-\cs_new_protected:Npn \seq_gput_item:Nnn #1#2#3
-  { \@@_put_item:NnnNN #1 {#2} {#3} \__kernel_tl_gset:Nx \use_i:nn }
-\cs_generate_variant:Nn \seq_put_item:Nnn { c }
-\cs_generate_variant:Nn \seq_gput_item:Nnn { c }
-\prg_new_protected_conditional:Npnn \seq_put_item:Nnn #1#2#3 { TF , T , F }
-  { \@@_put_item:NnnNN #1 {#2} {#3} \__kernel_tl_set:Nx \use_ii:nn }
-\prg_new_protected_conditional:Npnn \seq_gput_item:Nnn #1#2#3 { TF , T , F }
-  { \@@_put_item:NnnNN #1 {#2} {#3} \__kernel_tl_gset:Nx \use_ii:nn }
-\prg_generate_conditional_variant:Nnn \seq_put_item:Nnn { c } { TF , T , F }
-\prg_generate_conditional_variant:Nnn \seq_gput_item:Nnn { c } { TF , T , F }
+\cs_new_protected:Npn \seq_set_item:Nnn #1#2#3
+  { \@@_set_item:NnnNN #1 {#2} {#3} \__kernel_tl_set:Nx \use_i:nn }
+\cs_new_protected:Npn \seq_gset_item:Nnn #1#2#3
+  { \@@_set_item:NnnNN #1 {#2} {#3} \__kernel_tl_gset:Nx \use_i:nn }
+\cs_generate_variant:Nn \seq_set_item:Nnn { c }
+\cs_generate_variant:Nn \seq_gset_item:Nnn { c }
+\prg_new_protected_conditional:Npnn \seq_set_item:Nnn #1#2#3 { TF , T , F }
+  { \@@_set_item:NnnNN #1 {#2} {#3} \__kernel_tl_set:Nx \use_ii:nn }
+\prg_new_protected_conditional:Npnn \seq_gset_item:Nnn #1#2#3 { TF , T , F }
+  { \@@_set_item:NnnNN #1 {#2} {#3} \__kernel_tl_gset:Nx \use_ii:nn }
+\prg_generate_conditional_variant:Nnn \seq_set_item:Nnn { c } { TF , T , F }
+\prg_generate_conditional_variant:Nnn \seq_gset_item:Nnn { c } { TF , T , F }
 %    \end{macrocode}
 %   Save the item to be stored and evaluate the position and the sequence
 %   length only once.  Then depending on the sign of the position, check
 %   that it is not bigger than the length (in absolute value) nor zero.
 %    \begin{macrocode}
-\cs_new_protected:Npn \@@_put_item:NnnNN #1#2#3
+\cs_new_protected:Npn \@@_set_item:NnnNN #1#2#3
   {
     \tl_set:Nn \l_@@_internal_a_tl { \@@_item:n {#3} }
-    \exp_args:Nff \@@_put_item:nnNNNN
+    \exp_args:Nff \@@_set_item:nnNNNN
       { \int_eval:n {#2} } { \seq_count:N #1 } #1 \use_none:nn
   }
-\cs_new_protected:Npn \@@_put_item:nnNNNN #1#2
+\cs_new_protected:Npn \@@_set_item:nnNNNN #1#2
   {
     \int_compare:nNnTF {#1} > 0
-      { \int_compare:nNnF {#1} > {#2} { \@@_put_item:nNnnNNNN { #1 - 1 } } }
+      { \int_compare:nNnF {#1} > {#2} { \@@_set_item:nNnnNNNN { #1 - 1 } } }
       {
         \int_compare:nNnF {#1} < {-#2}
           {
             \int_compare:nNnF {#1} = 0
-              { \@@_put_item:nNnnNNNN { #2 + #1 } }
+              { \@@_set_item:nNnnNNNN { #2 + #1 } }
           }
       }
-    \@@_put_item_false:nnNNNN {#1} {#2}
+    \@@_set_item_false:nnNNNN {#1} {#2}
   }
 %    \end{macrocode}
-%   If the position is not ok, \cs{@@_put_item_false:nnNNNN} calls an
+%   If the position is not ok, \cs{@@_set_item_false:nnNNNN} calls an
 %   error or returns \texttt{false} (depending on the \cs{use_i:nn} vs
 %   \cs{use_ii:nn} argument mentioned above).
 %    \begin{macrocode}
-\cs_new_protected:Npn \@@_put_item_false:nnNNNN #1#2#3#4#5#6
+\cs_new_protected:Npn \@@_set_item_false:nnNNNN #1#2#3#4#5#6
   {
     #6
       {
@@ -1236,7 +1236,7 @@
       { sequence~only~has~#2~item \int_compare:nF { #2 = 1 } {s}. }
   }
 %    \end{macrocode}
-%   If the position is ok, \cs{@@_put_item:nNnnNNNN} makes the assignment
+%   If the position is ok, \cs{@@_set_item:nNnnNNNN} makes the assignment
 %   and returns \texttt{true} (in the case of conditionnals).  Here |#1|
 %   is an integer expression (position minus one), it needs to be
 %   evaluated.  The sequence |#5| starts with \cs{s_@@} (even if empty),
@@ -1245,29 +1245,29 @@
 %   only works when testing against zero, hence the offset we chose in
 %   the position).  When we are done skipping items, insert the saved
 %   item \cs{l_@@_internal_a_tl}.  For |put| functions the last argument
-%   of \cs{@@_put_item_end:w} is \cs{use_none:nn} and it absorbs the
+%   of \cs{@@_set_item_end:w} is \cs{use_none:nn} and it absorbs the
 %   item |#2| that we are removing: this is only useful for the |pop|
 %   functions.
 %    \begin{macrocode}
-\cs_new_protected:Npn \@@_put_item:nNnnNNNN #1#2#3#4#5#6#7#8
+\cs_new_protected:Npn \@@_set_item:nNnnNNNN #1#2#3#4#5#6#7#8
   {
     #7 #5
       {
         \s_@@
-        \exp_after:wN \@@_put_item:wn
+        \exp_after:wN \@@_set_item:wn
         \int_value:w \@@_int_eval:w #1
         #5 \s_@@_stop #6
       }
     #8 { } { \prg_return_true: }
   }
-\cs_new:Npn \@@_put_item:wn #1 \@@_item:n #2
+\cs_new:Npn \@@_set_item:wn #1 \@@_item:n #2
   {
-    \if_meaning:w 0 #1 \@@_put_item_end:w \fi:
+    \if_meaning:w 0 #1 \@@_set_item_end:w \fi:
     \exp_not:n { \@@_item:n {#2} }
-    \exp_after:wN \@@_put_item:wn
+    \exp_after:wN \@@_set_item:wn
     \int_value:w \@@_int_eval:w #1 - 1 \s_@@
   }
-\cs_new:Npn \@@_put_item_end:w #1 \exp_not:n #2 #3 \s_@@ #4 \s_@@_stop #5
+\cs_new:Npn \@@_set_item_end:w #1 \exp_not:n #2 #3 \s_@@ #4 \s_@@_stop #5
   {
     #1
     \exp_not:o \l_@@_internal_a_tl
@@ -1282,7 +1282,7 @@
 % \begin{macro}[noTF]{\seq_pop_item:NnN, \seq_pop_item:cnN, \seq_gpop_item:NnN, \seq_gpop_item:cnN}
 % \begin{macro}{\@@_pop_item:NnNNN}
 %   The |NnN| versions simply call the conditionals, for which we will
-%   rely on the internals of \cs{seq_put_item:Nnn}.
+%   rely on the internals of \cs{seq_set_item:Nnn}.
 %    \begin{macrocode}
 \cs_new_protected:Npn \seq_pop_item:NnN #1#2#3
   { \seq_pop_item:NnNTF #1 {#2} #3 { } { } }
@@ -1298,7 +1298,7 @@
 \prg_generate_conditional_variant:Nnn \seq_gpop_item:NnN { c } { TF , T , F }
 %    \end{macrocode}
 %   Save in \cs{l_@@_internal_b_tl} the token list variable |#3| in
-%   which we will store the item.  The \cs{@@_put_item:nnNNNN} auxiliary
+%   which we will store the item.  The \cs{@@_set_item:nnNNNN} auxiliary
 %   eventually inserts \cs{l_@@_internal_a_tl} in place of the item
 %   found in the sequence, so we empty that.  Instead of the last
 %   argument \cs{use_i:nn} or \cs{use_ii:nn} used for |put| functions,
@@ -1313,7 +1313,7 @@
   {
     \tl_clear:N \l_@@_internal_a_tl
     \tl_set:Nn \l_@@_internal_b_tl { \__kernel_tl_set:Nx #3 }
-    \exp_args:Nff \@@_put_item:nnNNNN
+    \exp_args:Nff \@@_set_item:nnNNNN
       { \int_eval:n {#2} } { \seq_count:N #1 }
       #1 \@@_pop_item_aux:w #4 \@@_pop_item:nn
   }
diff --git a/l3kernel/testfiles/m3seq005.lvt b/l3kernel/testfiles/m3seq005.lvt
index 499615262..490501027 100644
--- a/l3kernel/testfiles/m3seq005.lvt
+++ b/l3kernel/testfiles/m3seq005.lvt
@@ -56,38 +56,38 @@
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
-\TEST { seq_put_item:Nnn }
+\TEST { seq_set_item:Nnn }
   {
     \seq_clear:N \l_tmpa_seq
-    \seq_put_item:Nnn \l_tmpa_seq { 0 } { a }
-    \seq_put_item:cnn { l_tmpa_seq } { 1 } { a }
-    \seq_put_item:Nnn \l_tmpa_seq { 1+2-4 } { a }
-    \seq_put_item:cnnTF { l_tmpa_seq } { 0 } { a } { \TRUE } { \FALSE }
-    \seq_put_item:NnnTF \l_tmpa_seq { 12+3-4 } { a } { \TRUE } { \FALSE }
-    \seq_put_item:cnnTF { l_tmpa_seq } { -11 } { a } { \TRUE } { \FALSE }
+    \seq_set_item:Nnn \l_tmpa_seq { 0 } { a }
+    \seq_set_item:cnn { l_tmpa_seq } { 1 } { a }
+    \seq_set_item:Nnn \l_tmpa_seq { 1+2-4 } { a }
+    \seq_set_item:cnnTF { l_tmpa_seq } { 0 } { a } { \TRUE } { \FALSE }
+    \seq_set_item:NnnTF \l_tmpa_seq { 12+3-4 } { a } { \TRUE } { \FALSE }
+    \seq_set_item:cnnTF { l_tmpa_seq } { -11 } { a } { \TRUE } { \FALSE }
     %
     \SEPARATOR
     \seq_put_right:Nn \l_tmpa_seq { \AAA }
-    \seq_put_item:cnn { l_tmpa_seq } { 0 } { a } \seq_show:N \l_tmpa_seq
+    \seq_set_item:cnn { l_tmpa_seq } { 0 } { a } \seq_show:N \l_tmpa_seq
     \group_begin:
-      \seq_put_item:Nnn \l_tmpa_seq { 1 } { a } \seq_show:N \l_tmpa_seq
-      \seq_put_item:cnn { l_tmpa_seq } { 2 } { a } \seq_show:N \l_tmpa_seq
-      \seq_put_item:Nnn \l_tmpa_seq { 1+2-4 } { \xy } \seq_show:N \l_tmpa_seq
+      \seq_set_item:Nnn \l_tmpa_seq { 1 } { a } \seq_show:N \l_tmpa_seq
+      \seq_set_item:cnn { l_tmpa_seq } { 2 } { a } \seq_show:N \l_tmpa_seq
+      \seq_set_item:Nnn \l_tmpa_seq { 1+2-4 } { \xy } \seq_show:N \l_tmpa_seq
     \group_end:
-    \seq_put_item:cnnTF { l_tmpa_seq } { 0 } { # } { \TRUE } { \FALSE } \seq_show:N \l_tmpa_seq
-    \seq_put_item:NnnTF \l_tmpa_seq { 2+3-4 } { { \aa } } { \TRUE } { \FALSE } \seq_show:N \l_tmpa_seq
-    \seq_put_item:cnnTF { l_tmpa_seq } { -1 } { } { \TRUE } { \FALSE } \seq_show:N \l_tmpa_seq
+    \seq_set_item:cnnTF { l_tmpa_seq } { 0 } { # } { \TRUE } { \FALSE } \seq_show:N \l_tmpa_seq
+    \seq_set_item:NnnTF \l_tmpa_seq { 2+3-4 } { { \aa } } { \TRUE } { \FALSE } \seq_show:N \l_tmpa_seq
+    \seq_set_item:cnnTF { l_tmpa_seq } { -1 } { } { \TRUE } { \FALSE } \seq_show:N \l_tmpa_seq
     %
     \SEPARATOR
     \seq_gset_split:Nnn \g_tmpa_seq { } { { \AAA } { \B\B } { { } } { # } }
-    \seq_gput_item:cnn { g_tmpa_seq } { 0 } { a } \seq_show:N \g_tmpa_seq
-    \seq_gput_item:Nnn \g_tmpa_seq { 1 } { \aaa } \seq_show:N \g_tmpa_seq
+    \seq_gset_item:cnn { g_tmpa_seq } { 0 } { a } \seq_show:N \g_tmpa_seq
+    \seq_gset_item:Nnn \g_tmpa_seq { 1 } { \aaa } \seq_show:N \g_tmpa_seq
     \group_begin:
-      \seq_gput_item:cnn { g_tmpa_seq } { 1+2-5 } { \ccc } \seq_show:N \g_tmpa_seq
-      \seq_gput_item:NnnTF \g_tmpa_seq { 0 } { a } { \TRUE } { \FALSE } \seq_show:N \g_tmpa_seq
-      \seq_gput_item:cnnTF { g_tmpa_seq } { -1 } { #\par } { \TRUE } { \FALSE } \seq_show:N \g_tmpa_seq
+      \seq_gset_item:cnn { g_tmpa_seq } { 1+2-5 } { \ccc } \seq_show:N \g_tmpa_seq
+      \seq_gset_item:NnnTF \g_tmpa_seq { 0 } { a } { \TRUE } { \FALSE } \seq_show:N \g_tmpa_seq
+      \seq_gset_item:cnnTF { g_tmpa_seq } { -1 } { #\par } { \TRUE } { \FALSE } \seq_show:N \g_tmpa_seq
     \group_end:
-    \seq_gput_item:NnnTF \g_tmpa_seq { 5 } { #\par } { \TRUE } { \FALSE } \seq_show:N \g_tmpa_seq
+    \seq_gset_item:NnnTF \g_tmpa_seq { 5 } { #\par } { \TRUE } { \FALSE } \seq_show:N \g_tmpa_seq
   }
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/l3kernel/testfiles/m3seq005.tlg b/l3kernel/testfiles/m3seq005.tlg
index 7e6b958f7..a9bb62f35 100644
--- a/l3kernel/testfiles/m3seq005.tlg
+++ b/l3kernel/testfiles/m3seq005.tlg
@@ -24,7 +24,7 @@ TEST 2: seq_item:Nn
 ||
 ============================================================
 ============================================================
-TEST 3: seq_put_item:Nnn
+TEST 3: seq_set_item:Nnn
 ============================================================
 ! LaTeX3 Error: Sequence '\l_tmpa_seq' does not have an item 0
 For immediate help type H <return>.





More information about the latex3-commits mailing list.