Просмотр исходного кода

fix(xtintin): 修复 list.Insert 和 slist.Append BUG,增加测试用例

dzp 2 лет назад
Родитель
Сommit
d85c53b40a
2 измененных файлов с 30 добавлено и 3 удалено
  1. 16 1
      plugins/lib/xtintin/list.tin
  2. 14 2
      plugins/lib/xtintin/slist.tin

+ 16 - 1
plugins/lib/xtintin/list.tin

@@ -110,6 +110,21 @@ PaoTin++ © 2020~2023 的所有版权均由担子炮(dzp <danzipao@gmail.com>) 
 ///=== {
 // #@ list.Insert <列表> <下标> <内容>
 //    将内容插入到列表的指定下标处,如果下标超过列表现有长度,则先扩展列表。
+//
+//    EXAMPLE: \@list.Insert{{{1}{a}{2}{b}{3}{c}};1;X}
+//    RESULT:  {{1}{X}{2}{a}{3}{b}{4}{c}}
+//
+//    EXAMPLE: \@list.Insert{{{1}{a}{2}{b}{3}{c}};2;X}
+//    RESULT:  {{1}{a}{2}{X}{3}{b}{4}{c}}
+//
+//    EXAMPLE: \@list.Insert{{{1}{a}{2}{b}{3}{c}};3;X}
+//    RESULT:  {{1}{a}{2}{b}{3}{X}{4}{c}}
+//
+//    EXAMPLE: \@list.Insert{{{1}{a}{2}{b}{3}{c}};4;X}
+//    RESULT:  {{1}{a}{2}{b}{3}{c}{4}{X}}
+//
+//    EXAMPLE: \@list.Insert{{{1}{a}{2}{b}{3}{c}};5;X}
+//    RESULT:  {{1}{a}{2}{b}{3}{c}{4}{}{5}{X}}
 // };
 #func {list.Insert} {
     #local l {%1};
@@ -121,7 +136,7 @@ PaoTin++ © 2020~2023 的所有版权均由担子炮(dzp <danzipao@gmail.com>) 
         #list l add {$data};
     };
     #else {
-        #list l set {$idx} {$data};
+        #list l insert {$idx} {$data};
     };
 
     #return {$l};

+ 14 - 2
plugins/lib/xtintin/slist.tin

@@ -66,6 +66,18 @@ PaoTin++ © 2020~2023 的所有版权均由担子炮(dzp <danzipao@gmail.com>) 
 //    往字符串列表里追加新内容。
 //    <119>注意<299>,由于 TinTin++ 自身语法的缺陷,字符串列表的第一个元素只能是
 //    简单字符串,不能是列表、字符串列表、表格,其余元素不受此限制。
+//
+//  EXAMPLE: \@slist.Append{{a;b;c};X}
+//  RESULT:  {a;b;c;X}
+//
+//  EXAMPLE: \@slist.Append{{a;b;c};{X;Y}}
+//  RESULT:  {a;b;c;{X;Y}}
+//
+//  EXAMPLE: \@slist.Append{{a;b;c};{{X}{xxx}{Y}{yyy}}}
+//  RESULT:  {a;b;c;{{X}{xxx}{Y}{yyy}}}
+//
+//  EXAMPLE: \@slist.Append{{};X}
+//  RESULT:  {X}
 // };
 #func {slist.Append} {
     #local list {%1};
@@ -74,10 +86,10 @@ PaoTin++ © 2020~2023 的所有版权均由担子炮(dzp <danzipao@gmail.com>) 
     #if { {$list} === {} } {
         #line sub {var;secure} #cat list $str;
     };
-    #elseif { "$str" == "%*;%*" } {
+    #elseif { {$str} == {%*;%*} } {
         #cat list {;{$str}};
     };
-    #elseif { "&str" == "{.*}" } {
+    #elseif { {$str} == {\{%*\}} } {
         #cat list {;{$str}};
     };
     #else {