summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTakuji Tanaka <ttk@t-lab.opal.ne.jp>2023-04-10 13:17:12 +0000
committerTakuji Tanaka <ttk@t-lab.opal.ne.jp>2023-04-10 13:17:12 +0000
commitc383737b31c54473b4506e8b0c23db188755e440 (patch)
treea7cd961543aae5e6ddbc732e5fe4e019ccf0c493
parent6054e1bfa03a61eee5939f6edd843c67cb7addc1 (diff)
upbibtex: fix bug of substring$ (Y. Morimi)
git-svn-id: svn://tug.org/texlive/trunk@66818 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Build/source/texk/bibtex-x/ChangeLog5
-rw-r--r--Build/source/texk/bibtex-x/tests/substra.bbl30
-rw-r--r--Build/source/texk/bibtex-x/tests/substru.bbl80
-rw-r--r--Build/source/texk/bibtex-x/tests/testsubstr.bst5
-rw-r--r--Build/source/texk/web2c/uptexdir/ChangeLog6
-rw-r--r--Build/source/texk/web2c/uptexdir/upbibtex.ch17
6 files changed, 143 insertions, 0 deletions
diff --git a/Build/source/texk/bibtex-x/ChangeLog b/Build/source/texk/bibtex-x/ChangeLog
index 04a103d84ec..8ea45a55c49 100644
--- a/Build/source/texk/bibtex-x/ChangeLog
+++ b/Build/source/texk/bibtex-x/ChangeLog
@@ -1,3 +1,8 @@
+2023-04-10 TANAKA Takuji <ttk@t-lab.opal.ne.jp>
+
+ * tests/substr[au].bbl, tests/testsubstr.bst:
+ Add more tests for substring$.
+
2023-01-29 Karl Berry <karl@freefriends.org>
* tests/bibtexu-sort.test,
diff --git a/Build/source/texk/bibtex-x/tests/substra.bbl b/Build/source/texk/bibtex-x/tests/substra.bbl
index 9b182f7f23b..fafdba390c3 100644
--- a/Build/source/texk/bibtex-x/tests/substra.bbl
+++ b/Build/source/texk/bibtex-x/tests/substra.bbl
@@ -55,6 +55,11 @@
\item[-6 3] tu
\item[-7 2] t
\item[-8 1]
+\item[1 1, 1 1] A
+\item[2 1, 1 1] B
+\item[3 1, 1 1] C
+\item[4 1, 1 1] D
+\item[5 1, 1 1] E
\item[orig] ~
\item[1 5]
\item[1 4]
@@ -110,6 +115,11 @@
\item[-6 3] ~
\item[-7 2] ~
\item[-8 1] ~
+\item[1 1, 1 1]
+\item[2 1, 1 1]
+\item[3 1, 1 1]
+\item[4 1, 1 1]
+\item[5 1, 1 1]
\item[orig] {AB}CDEFG tuvwx{yz}
\item[1 5] {AB}C
\item[1 4] {AB}
@@ -165,6 +175,11 @@
\item[-6 3] uvw
\item[-7 2] uv
\item[-8 1] u
+\item[1 1, 1 1] {
+\item[2 1, 1 1] A
+\item[3 1, 1 1] B
+\item[4 1, 1 1] }
+\item[5 1, 1 1] C
\item[orig] {{AB}CD}EFG tuv{wx{yz}}
\item[1 5] {{AB}
\item[1 4] {{AB
@@ -220,6 +235,11 @@
\item[-6 3] {wx
\item[-7 2] {w
\item[-8 1] {
+\item[1 1, 1 1] {
+\item[2 1, 1 1] {
+\item[3 1, 1 1] A
+\item[4 1, 1 1] B
+\item[5 1, 1 1] }
\item[orig] {{}}~{{}}
\item[1 5] {{}
\item[1 4] {{
@@ -275,6 +295,11 @@
\item[-6 3] {
\item[-7 2] {
\item[-8 1] {
+\item[1 1, 1 1] {
+\item[2 1, 1 1] {
+\item[3 1, 1 1]
+\item[4 1, 1 1]
+\item[5 1, 1 1] }
\item[orig] {\a}{\b}{\c}
\item[1 5] {\a}
\item[1 4] {\a}
@@ -330,5 +355,10 @@
\item[-6 3] {
\item[-7 2]
\item[-8 1]
+\item[1 1, 1 1] {
+\item[2 1, 1 1] \
+\item[3 1, 1 1] a
+\item[4 1, 1 1] }
+\item[5 1, 1 1]
\end{itemize}
\endinput
diff --git a/Build/source/texk/bibtex-x/tests/substru.bbl b/Build/source/texk/bibtex-x/tests/substru.bbl
index 48e2601b8e5..c8b6ef5f7c7 100644
--- a/Build/source/texk/bibtex-x/tests/substru.bbl
+++ b/Build/source/texk/bibtex-x/tests/substru.bbl
@@ -55,6 +55,11 @@
\item[-6 3] tu
\item[-7 2] t
\item[-8 1]
+\item[1 1, 1 1] A
+\item[2 1, 1 1] B
+\item[3 1, 1 1] C
+\item[4 1, 1 1] D
+\item[5 1, 1 1] E
\item[orig] ÅÇÈÎØÜÝ~åçèîøüý
\item[1 5] ÅÇÈÎØ
\item[1 4] ÅÇÈÎ
@@ -110,6 +115,11 @@
\item[-6 3] ~åç
\item[-7 2] ~å
\item[-8 1] ~
+\item[1 1, 1 1] Å
+\item[2 1, 1 1] Ç
+\item[3 1, 1 1] È
+\item[4 1, 1 1] Î
+\item[5 1, 1 1] Ø
\item[orig] AÇう冤EÜЖ~tçユ漆𡚴xюω
\item[1 5] AÇう冤E
\item[1 4] AÇう冤
@@ -165,6 +175,11 @@
\item[-6 3] tçユ
\item[-7 2] tç
\item[-8 1] t
+\item[1 1, 1 1] A
+\item[2 1, 1 1] Ç
+\item[3 1, 1 1] う
+\item[4 1, 1 1] 冤
+\item[5 1, 1 1] E
\item[orig] {AB}CDEFG tuvwx{yz}
\item[1 5] {AB}C
\item[1 4] {AB}
@@ -220,6 +235,11 @@
\item[-6 3] uvw
\item[-7 2] uv
\item[-8 1] u
+\item[1 1, 1 1] {
+\item[2 1, 1 1] A
+\item[3 1, 1 1] B
+\item[4 1, 1 1] }
+\item[5 1, 1 1] C
\item[orig] {\a}Åå{\b}Ææ{\c}Çç
\item[1 5] {\a}Å
\item[1 4] {\a}
@@ -275,6 +295,11 @@
\item[-6 3] Ææ{
\item[-7 2] Ææ
\item[-8 1] Æ
+\item[1 1, 1 1] {
+\item[2 1, 1 1] \
+\item[3 1, 1 1] a
+\item[4 1, 1 1] }
+\item[5 1, 1 1] Å
\item[orig] {\a}αあ{\b}βい{\c}γう
\item[1 5] {\a}α
\item[1 4] {\a}
@@ -330,6 +355,11 @@
\item[-6 3] βい{
\item[-7 2] βい
\item[-8 1] β
+\item[1 1, 1 1] {
+\item[2 1, 1 1] \
+\item[3 1, 1 1] a
+\item[4 1, 1 1] }
+\item[5 1, 1 1] α
\item[orig] {\a}あα{\b}いβ{\c}うγ
\item[1 5] {\a}あ
\item[1 4] {\a}
@@ -385,6 +415,11 @@
\item[-6 3] いβ{
\item[-7 2] いβ
\item[-8 1] い
+\item[1 1, 1 1] {
+\item[2 1, 1 1] \
+\item[3 1, 1 1] a
+\item[4 1, 1 1] }
+\item[5 1, 1 1] あ
\item[orig] {{AB}CD}EFG tuv{wx{yz}}
\item[1 5] {{AB}
\item[1 4] {{AB
@@ -440,6 +475,11 @@
\item[-6 3] {wx
\item[-7 2] {w
\item[-8 1] {
+\item[1 1, 1 1] {
+\item[2 1, 1 1] {
+\item[3 1, 1 1] A
+\item[4 1, 1 1] B
+\item[5 1, 1 1] }
\item[orig] {{ÅÇ}ÈÎ}ØÜÝ~åçè{îø{üý}}
\item[1 5] {{ÅÇ}
\item[1 4] {{ÅÇ
@@ -495,6 +535,11 @@
\item[-6 3] {îø
\item[-7 2] {î
\item[-8 1] {
+\item[1 1, 1 1] {
+\item[2 1, 1 1] {
+\item[3 1, 1 1] Å
+\item[4 1, 1 1] Ç
+\item[5 1, 1 1] }
\item[orig] {{一二}三四}五六七 肆伍陸{漆捌{玖拾}}
\item[1 5] {{一二}
\item[1 4] {{一二
@@ -550,6 +595,11 @@
\item[-6 3] {漆捌
\item[-7 2] {漆
\item[-8 1] {
+\item[1 1, 1 1] {
+\item[2 1, 1 1] {
+\item[3 1, 1 1] 一
+\item[4 1, 1 1] 二
+\item[5 1, 1 1] }
\item[orig]
{{櫛杓}屠冤}𦥑𠮟𠀋𡈽𥝱𨦇𡚴{𠷡𧘕{𧘔𩸽}}
\item[1 5] {{櫛杓}
@@ -606,6 +656,11 @@
\item[-6 3] {𠷡𧘕
\item[-7 2] {𠷡
\item[-8 1] {
+\item[1 1, 1 1] {
+\item[2 1, 1 1] {
+\item[3 1, 1 1] 櫛
+\item[4 1, 1 1] 杓
+\item[5 1, 1 1] }
\item[orig] ΑΒΓΔΕΖΗ στυφχψω
\item[1 5] ΑΒΓΔΕ
\item[1 4] ΑΒΓΔ
@@ -661,6 +716,11 @@
\item[-6 3] στ
\item[-7 2] σ
\item[-8 1]
+\item[1 1, 1 1] Α
+\item[2 1, 1 1] Β
+\item[3 1, 1 1] Γ
+\item[4 1, 1 1] Δ
+\item[5 1, 1 1] Ε
\item[orig] АБВГДЕЖ щъыьэюя
\item[1 5] АБВГД
\item[1 4] АБВГ
@@ -716,6 +776,11 @@
\item[-6 3] щъ
\item[-7 2] щ
\item[-8 1]
+\item[1 1, 1 1] А
+\item[2 1, 1 1] Б
+\item[3 1, 1 1] В
+\item[4 1, 1 1] Г
+\item[5 1, 1 1] Д
\item[orig] あいうえおかき ユヨワヰヱヲン
\item[1 5] あいうえお
\item[1 4] あいうえ
@@ -771,6 +836,11 @@
\item[-6 3]  ユヨ
\item[-7 2]  ユ
\item[-8 1]  
+\item[1 1, 1 1] あ
+\item[2 1, 1 1] い
+\item[3 1, 1 1] う
+\item[4 1, 1 1] え
+\item[5 1, 1 1] お
\item[orig] 一二三四五六七 肆伍陸漆捌玖拾
\item[1 5] 一二三四五
\item[1 4] 一二三四
@@ -826,6 +896,11 @@
\item[-6 3]  肆伍
\item[-7 2]  肆
\item[-8 1]  
+\item[1 1, 1 1] 一
+\item[2 1, 1 1] 二
+\item[3 1, 1 1] 三
+\item[4 1, 1 1] 四
+\item[5 1, 1 1] 五
\item[orig] 櫛杓屠冤𦥑𠮟𠀋𡈽𥝱𨦇𡚴𠷡𧘕𧘔𩸽
\item[1 5] 櫛杓屠冤𦥑
\item[1 4] 櫛杓屠冤
@@ -881,5 +956,10 @@
\item[-6 3] 𡈽𥝱𨦇
\item[-7 2] 𡈽𥝱
\item[-8 1] 𡈽
+\item[1 1, 1 1] 櫛
+\item[2 1, 1 1] 杓
+\item[3 1, 1 1] 屠
+\item[4 1, 1 1] 冤
+\item[5 1, 1 1] 𦥑
\end{itemize}
\endinput
diff --git a/Build/source/texk/bibtex-x/tests/testsubstr.bst b/Build/source/texk/bibtex-x/tests/testsubstr.bst
index a332f82a000..206267d8115 100644
--- a/Build/source/texk/bibtex-x/tests/testsubstr.bst
+++ b/Build/source/texk/bibtex-x/tests/testsubstr.bst
@@ -60,6 +60,11 @@ FUNCTION {output_entry} {
"\item[-6 3] " field #-6 #3 substring$ * write$ newline$
"\item[-7 2] " field #-7 #2 substring$ * write$ newline$
"\item[-8 1] " field #-8 #1 substring$ * write$ newline$
+ "\item[1 1, 1 1] " field #1 #1 substring$ #1 #1 substring$ * write$ newline$
+ "\item[2 1, 1 1] " field #2 #1 substring$ #1 #1 substring$ * write$ newline$
+ "\item[3 1, 1 1] " field #3 #1 substring$ #1 #1 substring$ * write$ newline$
+ "\item[4 1, 1 1] " field #4 #1 substring$ #1 #1 substring$ * write$ newline$
+ "\item[5 1, 1 1] " field #5 #1 substring$ #1 #1 substring$ * write$ newline$
}
FUNCTION {type} {output_entry}
diff --git a/Build/source/texk/web2c/uptexdir/ChangeLog b/Build/source/texk/web2c/uptexdir/ChangeLog
index 137cffbc72d..0f700a0f45f 100644
--- a/Build/source/texk/web2c/uptexdir/ChangeLog
+++ b/Build/source/texk/web2c/uptexdir/ChangeLog
@@ -1,3 +1,9 @@
+2023-04-10 TANAKA Takuji <ttk@t-lab.opal.ne.jp>
+
+ * upbibtex.ch: Fix bug of substring$
+ from Yukimasa Morimi san:
+ https://github.com/texjporg/tex-jp-build/issues/157
+
2023-03-29 TANAKA Takuji <ttk@t-lab.opal.ne.jp>
* wcfname.test:
diff --git a/Build/source/texk/web2c/uptexdir/upbibtex.ch b/Build/source/texk/web2c/uptexdir/upbibtex.ch
index e244606e6eb..fa46baba64a 100644
--- a/Build/source/texk/web2c/uptexdir/upbibtex.ch
+++ b/Build/source/texk/web2c/uptexdir/upbibtex.ch
@@ -743,6 +743,23 @@ begin
pop_lit2_saved := pop_lit2; {save before negate}
@z
+@x 2023-04-08 texjporg/tex-jp-build#157
+ str_start[pop_lit3+1] := sp_end;
+@y
+ { |2..4| bytes Kanji code break check }
+ tpe:=str_start[pop_lit3];
+ mbl_tpe:=0;
+ while tpe < str_start[pop_lit3+1] do begin
+ mbl_tpe := multibytelen(str_pool[tpe]);
+ if mbl_tpe<0 {just in case}
+ or (str_start[pop_lit3+1] < tpe+mbl_tpe) then
+ break;
+ tpe := tpe + mbl_tpe;
+ if sp_end<=tpe then break;
+ end;
+ str_start[pop_lit3+1] := tpe;
+@z
+
@x Changes for JBibTeX by Shouichi Matsui [438] + fix (2022-02-20 j0.34)
str_room(sp_end - sp_ptr);
while (sp_ptr < sp_end) do {shift the substring}