From 5be264bb771bca8537899ce82a75ac56a59082d1 Mon Sep 17 00:00:00 2001 From: Takuji Tanaka Date: Wed, 20 Apr 2022 23:48:05 +0000 Subject: bibtex-x: fix a bug of substring$ git-svn-id: svn://tug.org/texlive/trunk@63094 c570f23f-e606-0410-a88d-b1316a301751 --- Build/source/texk/bibtex-x/ChangeLog | 10 ++ Build/source/texk/bibtex-x/bibtex-4.c | 5 +- Build/source/texk/bibtex-x/tests/substra.bbl | 62 +++++-- Build/source/texk/bibtex-x/tests/substru.bbl | 205 ++++++++++++++++++++--- Build/source/texk/bibtex-x/tests/testsubstr.bst | 17 +- Build/source/texk/bibtex-x/tests/testsubstra.bib | 2 +- Build/source/texk/bibtex-x/tests/testsubstru.bib | 6 +- Build/source/texk/bibtex-x/tests/txtprfxa.bbl | 2 +- Build/source/texk/bibtex-x/tests/txtprfxu.bbl | 11 +- Build/source/texk/bibtex-x/version.h | 2 +- 10 files changed, 276 insertions(+), 46 deletions(-) (limited to 'Build/source/texk') diff --git a/Build/source/texk/bibtex-x/ChangeLog b/Build/source/texk/bibtex-x/ChangeLog index 26286635cf1..7f13370e1c4 100644 --- a/Build/source/texk/bibtex-x/ChangeLog +++ b/Build/source/texk/bibtex-x/ChangeLog @@ -1,3 +1,13 @@ +2022-04-21 TANAKA Takuji + + * configure.ac, version.h: + Bump version to 3.80 (21 apr 2022). + * bibtex-4.c: + Fix a bug of substring$ in bibtexu. + * tests/substr[au].bbl, tests/testsubstr[au].bib, tests/testsubstr.bst, + tests/txtprfx[au].bbl: + Update tests. + 2022-04-16 TANAKA Takuji * configure.ac, version.h: diff --git a/Build/source/texk/bibtex-x/bibtex-4.c b/Build/source/texk/bibtex-x/bibtex-4.c index 01a184420cb..9568d354d5c 100644 --- a/Build/source/texk/bibtex-x/bibtex-4.c +++ b/Build/source/texk/bibtex-x/bibtex-4.c @@ -2121,10 +2121,9 @@ back to UTF-8. 23/sep/2009 END #ifdef UTF_8 lenfrUch = icu_fromUChar32s(frUch1, frUchCap, &uchs[ulen - (pop_lit2-1) - pop_lit1], pop_lit1, uch16); - ptrfrUch = icu_fromUChar32s(frUch2, frUchCap, &uchs[ulen - pop_lit2], pop_lit2-1, uch16); + ptrfrUch = icu_fromUChar32s(frUch2, frUchCap, uchs, ulen - (pop_lit2-1) - pop_lit1, uch16); sp_ptr = str_start[pop_lit3] + ptrfrUch; - sp_end = str_start[pop_lit3 + 1] - ptrfrUch; - sp_ptr = sp_end - lenfrUch; + sp_end = sp_ptr + lenfrUch; #else sp_end = str_start[pop_lit3 + 1] - (pop_lit2 - 1); sp_ptr = sp_end - pop_lit1; diff --git a/Build/source/texk/bibtex-x/tests/substra.bbl b/Build/source/texk/bibtex-x/tests/substra.bbl index 4767b583627..1e6031919f9 100644 --- a/Build/source/texk/bibtex-x/tests/substra.bbl +++ b/Build/source/texk/bibtex-x/tests/substra.bbl @@ -15,6 +15,21 @@ \item[5 1] E \item[6 1] F \item[7 1] G +\item[1 7] ABCDEFG +\item[2 6] BCDEFG +\item[3 5] CDEFG +\item[4 4] DEFG +\item[5 3] EFG +\item[6 2] FG +\item[7 1] G +\item[1 8] ABCDEFG +\item[2 7] BCDEFG +\item[3 6] CDEFG +\item[4 5] DEFG +\item[5 4] EFG +\item[6 3] FG +\item[7 2] G +\item[8 1] \item[-1 1] z \item[-1 2] yz \item[-1 3] xyz @@ -42,8 +57,8 @@ \item[-5 4] tuv \item[-6 3] tu \item[-7 2] t -\item[-8 1] t -\item[orig] +\item[-8 1] +\item[orig] ~ \item[1 1] \item[1 2] \item[1 3] @@ -58,6 +73,21 @@ \item[5 1] \item[6 1] \item[7 1] +\item[1 7] +\item[2 6] +\item[3 5] +\item[4 4] +\item[5 3] +\item[6 2] +\item[7 1] +\item[1 8] ~ +\item[2 7] ~ +\item[3 6] ~ +\item[4 5] ~ +\item[5 4] ~ +\item[6 3] ~ +\item[7 2] ~ +\item[8 1] ~ \item[-1 1] \item[-1 2] \item[-1 3] @@ -65,12 +95,12 @@ \item[-1 5] \item[-1 6] \item[-1 7] -\item[-2 7] -\item[-3 7] -\item[-4 7] -\item[-5 7] -\item[-6 7] -\item[-7 7] +\item[-2 7] ~ +\item[-3 7] ~ +\item[-4 7] ~ +\item[-5 7] ~ +\item[-6 7] ~ +\item[-7 7] ~ \item[-1 7] \item[-2 6] \item[-3 5] @@ -78,13 +108,13 @@ \item[-5 3] \item[-6 2] \item[-7 1] -\item[-1 8] -\item[-2 7] -\item[-3 6] -\item[-4 5] -\item[-5 4] -\item[-6 3] -\item[-7 2] -\item[-8 1] +\item[-1 8] ~ +\item[-2 7] ~ +\item[-3 6] ~ +\item[-4 5] ~ +\item[-5 4] ~ +\item[-6 3] ~ +\item[-7 2] ~ +\item[-8 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 742d8dcf456..8624e2fcadb 100644 --- a/Build/source/texk/bibtex-x/tests/substru.bbl +++ b/Build/source/texk/bibtex-x/tests/substru.bbl @@ -15,6 +15,21 @@ \item[5 1] E \item[6 1] F \item[7 1] G +\item[1 7] ABCDEFG +\item[2 6] BCDEFG +\item[3 5] CDEFG +\item[4 4] DEFG +\item[5 3] EFG +\item[6 2] FG +\item[7 1] G +\item[1 8] ABCDEFG +\item[2 7] BCDEFG +\item[3 6] CDEFG +\item[4 5] DEFG +\item[5 4] EFG +\item[6 3] FG +\item[7 2] G +\item[8 1] \item[-1 1] z \item[-1 2] yz \item[-1 3] xyz @@ -42,8 +57,8 @@ \item[-5 4] tuv \item[-6 3] tu \item[-7 2] t -\item[-8 1] t -\item[orig] ÅÇÈÎØÜÝ åçèîøüý +\item[-8 1] +\item[orig] ÅÇÈÎØÜÝ~åçèîøüý \item[1 1] Å \item[1 2] ÅÇ \item[1 3] ÅÇÈ @@ -58,6 +73,21 @@ \item[5 1] Ø \item[6 1] Ü \item[7 1] Ý +\item[1 7] ÅÇÈÎØÜÝ +\item[2 6] ÇÈÎØÜÝ +\item[3 5] ÈÎØÜÝ +\item[4 4] ÎØÜÝ +\item[5 3] ØÜÝ +\item[6 2] ÜÝ +\item[7 1] Ý +\item[1 8] ÅÇÈÎØÜÝ~ +\item[2 7] ÇÈÎØÜÝ~ +\item[3 6] ÈÎØÜÝ~ +\item[4 5] ÎØÜÝ~ +\item[5 4] ØÜÝ~ +\item[6 3] ÜÝ~ +\item[7 2] Ý~ +\item[8 1] ~ \item[-1 1] ý \item[-1 2] üý \item[-1 3] øüý @@ -65,12 +95,12 @@ \item[-1 5] èîøüý \item[-1 6] çèîøüý \item[-1 7] åçèîøüý -\item[-2 7] åçèîøü -\item[-3 7] Ý åçèîø -\item[-4 7] ÜÝ åçèî -\item[-5 7] ØÜÝ åçè -\item[-6 7] ÎØÜÝ åç -\item[-7 7] ÈÎØÜÝ å +\item[-2 7] ~åçèîøü +\item[-3 7] Ý~åçèîø +\item[-4 7] ÜÝ~åçèî +\item[-5 7] ØÜÝ~åçè +\item[-6 7] ÎØÜÝ~åç +\item[-7 7] ÈÎØÜÝ~å \item[-1 7] åçèîøüý \item[-2 6] åçèîøü \item[-3 5] åçèîø @@ -78,14 +108,72 @@ \item[-5 3] åçè \item[-6 2] åç \item[-7 1] å -\item[-1 8] åçèîøüý -\item[-2 7] åçèîøü -\item[-3 6] åçèîø -\item[-4 5] åçèî -\item[-5 4] åçè -\item[-6 3] åç -\item[-7 2] å -\item[-8 1] å +\item[-1 8] ~åçèîøüý +\item[-2 7] ~åçèîøü +\item[-3 6] ~åçèîø +\item[-4 5] ~åçèî +\item[-5 4] ~åçè +\item[-6 3] ~åç +\item[-7 2] ~å +\item[-8 1] ~ +\item[orig] AÇう冤EÜЖ~tçユ漆𡚴xюω +\item[1 1] A +\item[1 2] AÇ +\item[1 3] AÇう +\item[1 4] AÇう冤 +\item[1 5] AÇう冤E +\item[1 6] AÇう冤EÜ +\item[1 7] AÇう冤EÜЖ +\item[1 1] A +\item[2 1] Ç +\item[3 1] う +\item[4 1] 冤 +\item[5 1] E +\item[6 1] Ü +\item[7 1] Ж +\item[1 7] AÇう冤EÜЖ +\item[2 6] Çう冤EÜЖ +\item[3 5] う冤EÜЖ +\item[4 4] 冤EÜЖ +\item[5 3] EÜЖ +\item[6 2] ÜЖ +\item[7 1] Ж +\item[1 8] AÇう冤EÜЖ~ +\item[2 7] Çう冤EÜЖ~ +\item[3 6] う冤EÜЖ~ +\item[4 5] 冤EÜЖ~ +\item[5 4] EÜЖ~ +\item[6 3] ÜЖ~ +\item[7 2] Ж~ +\item[8 1] ~ +\item[-1 1] ω +\item[-1 2] юω +\item[-1 3] xюω +\item[-1 4] 𡚴xюω +\item[-1 5] 漆𡚴xюω +\item[-1 6] ユ漆𡚴xюω +\item[-1 7] çユ漆𡚴xюω +\item[-2 7] tçユ漆𡚴xю +\item[-3 7] ~tçユ漆𡚴x +\item[-4 7] Ж~tçユ漆𡚴 +\item[-5 7] ÜЖ~tçユ漆 +\item[-6 7] EÜЖ~tçユ +\item[-7 7] 冤EÜЖ~tç +\item[-1 7] çユ漆𡚴xюω +\item[-2 6] çユ漆𡚴xю +\item[-3 5] çユ漆𡚴x +\item[-4 4] çユ漆𡚴 +\item[-5 3] çユ漆 +\item[-6 2] çユ +\item[-7 1] ç +\item[-1 8] tçユ漆𡚴xюω +\item[-2 7] tçユ漆𡚴xю +\item[-3 6] tçユ漆𡚴x +\item[-4 5] tçユ漆𡚴 +\item[-5 4] tçユ漆 +\item[-6 3] tçユ +\item[-7 2] tç +\item[-8 1] t \item[orig] ΑΒΓΔΕΖΗ στυφχψω \item[1 1] Α \item[1 2] ΑΒ @@ -101,6 +189,21 @@ \item[5 1] Ε \item[6 1] Ζ \item[7 1] Η +\item[1 7] ΑΒΓΔΕΖΗ +\item[2 6] ΒΓΔΕΖΗ +\item[3 5] ΓΔΕΖΗ +\item[4 4] ΔΕΖΗ +\item[5 3] ΕΖΗ +\item[6 2] ΖΗ +\item[7 1] Η +\item[1 8] ΑΒΓΔΕΖΗ +\item[2 7] ΒΓΔΕΖΗ +\item[3 6] ΓΔΕΖΗ +\item[4 5] ΔΕΖΗ +\item[5 4] ΕΖΗ +\item[6 3] ΖΗ +\item[7 2] Η +\item[8 1] \item[-1 1] ω \item[-1 2] ψω \item[-1 3] χψω @@ -128,7 +231,7 @@ \item[-5 4] στυ \item[-6 3] στ \item[-7 2] σ -\item[-8 1] σ +\item[-8 1] \item[orig] АБВГДЕЖ щъыьэюя \item[1 1] А \item[1 2] АБ @@ -144,6 +247,21 @@ \item[5 1] Д \item[6 1] Е \item[7 1] Ж +\item[1 7] АБВГДЕЖ +\item[2 6] БВГДЕЖ +\item[3 5] ВГДЕЖ +\item[4 4] ГДЕЖ +\item[5 3] ДЕЖ +\item[6 2] ЕЖ +\item[7 1] Ж +\item[1 8] АБВГДЕЖ +\item[2 7] БВГДЕЖ +\item[3 6] ВГДЕЖ +\item[4 5] ГДЕЖ +\item[5 4] ДЕЖ +\item[6 3] ЕЖ +\item[7 2] Ж +\item[8 1] \item[-1 1] я \item[-1 2] юя \item[-1 3] эюя @@ -171,7 +289,7 @@ \item[-5 4] щъы \item[-6 3] щъ \item[-7 2] щ -\item[-8 1] щ +\item[-8 1] \item[orig] あいうえおかき ユヨワヰヱヲン \item[1 1] あ \item[1 2] あい @@ -187,6 +305,21 @@ \item[5 1] お \item[6 1] か \item[7 1] き +\item[1 7] あいうえおかき +\item[2 6] いうえおかき +\item[3 5] うえおかき +\item[4 4] えおかき +\item[5 3] おかき +\item[6 2] かき +\item[7 1] き +\item[1 8] あいうえおかき  +\item[2 7] いうえおかき  +\item[3 6] うえおかき  +\item[4 5] えおかき  +\item[5 4] おかき  +\item[6 3] かき  +\item[7 2] き  +\item[8 1]   \item[-1 1] ン \item[-1 2] ヲン \item[-1 3] ヱヲン @@ -214,7 +347,7 @@ \item[-5 4]  ユヨワ \item[-6 3]  ユヨ \item[-7 2]  ユ -\item[-8 1] ユ +\item[-8 1]   \item[orig] 一二三四五六七 肆伍陸漆捌玖拾 \item[1 1] 一 \item[1 2] 一二 @@ -230,6 +363,21 @@ \item[5 1] 五 \item[6 1] 六 \item[7 1] 七 +\item[1 7] 一二三四五六七 +\item[2 6] 二三四五六七 +\item[3 5] 三四五六七 +\item[4 4] 四五六七 +\item[5 3] 五六七 +\item[6 2] 六七 +\item[7 1] 七 +\item[1 8] 一二三四五六七  +\item[2 7] 二三四五六七  +\item[3 6] 三四五六七  +\item[4 5] 四五六七  +\item[5 4] 五六七  +\item[6 3] 六七  +\item[7 2] 七  +\item[8 1]   \item[-1 1] 拾 \item[-1 2] 玖拾 \item[-1 3] 捌玖拾 @@ -257,7 +405,7 @@ \item[-5 4]  肆伍陸 \item[-6 3]  肆伍 \item[-7 2]  肆 -\item[-8 1] 肆 +\item[-8 1]   \item[orig] 櫛杓屠冤𦥑𠮟𠀋𡈽𥝱𨦇𡚴𠷡𧘕𧘔𩸽 \item[1 1] 櫛 \item[1 2] 櫛杓 @@ -273,6 +421,21 @@ \item[5 1] 𦥑 \item[6 1] 𠮟 \item[7 1] 𠀋 +\item[1 7] 櫛杓屠冤𦥑𠮟𠀋 +\item[2 6] 杓屠冤𦥑𠮟𠀋 +\item[3 5] 屠冤𦥑𠮟𠀋 +\item[4 4] 冤𦥑𠮟𠀋 +\item[5 3] 𦥑𠮟𠀋 +\item[6 2] 𠮟𠀋 +\item[7 1] 𠀋 +\item[1 8] 櫛杓屠冤𦥑𠮟𠀋𡈽 +\item[2 7] 杓屠冤𦥑𠮟𠀋𡈽 +\item[3 6] 屠冤𦥑𠮟𠀋𡈽 +\item[4 5] 冤𦥑𠮟𠀋𡈽 +\item[5 4] 𦥑𠮟𠀋𡈽 +\item[6 3] 𠮟𠀋𡈽 +\item[7 2] 𠀋𡈽 +\item[8 1] 𡈽 \item[-1 1] 𩸽 \item[-1 2] 𧘔𩸽 \item[-1 3] 𧘕𧘔𩸽 @@ -300,6 +463,6 @@ \item[-5 4] 𡈽𥝱𨦇𡚴 \item[-6 3] 𡈽𥝱𨦇 \item[-7 2] 𡈽𥝱 -\item[-8 1] 𥝱 +\item[-8 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 565fe85ea3a..146bd94bfb6 100644 --- a/Build/source/texk/bibtex-x/tests/testsubstr.bst +++ b/Build/source/texk/bibtex-x/tests/testsubstr.bst @@ -16,6 +16,21 @@ FUNCTION {output_entry} { "\item[5 1] " field #5 #1 substring$ * write$ newline$ "\item[6 1] " field #6 #1 substring$ * write$ newline$ "\item[7 1] " field #7 #1 substring$ * write$ newline$ + "\item[1 7] " field #1 #7 substring$ * write$ newline$ + "\item[2 6] " field #2 #6 substring$ * write$ newline$ + "\item[3 5] " field #3 #5 substring$ * write$ newline$ + "\item[4 4] " field #4 #4 substring$ * write$ newline$ + "\item[5 3] " field #5 #3 substring$ * write$ newline$ + "\item[6 2] " field #6 #2 substring$ * write$ newline$ + "\item[7 1] " field #7 #1 substring$ * write$ newline$ + "\item[1 8] " field #1 #8 substring$ * write$ newline$ + "\item[2 7] " field #2 #7 substring$ * write$ newline$ + "\item[3 6] " field #3 #6 substring$ * write$ newline$ + "\item[4 5] " field #4 #5 substring$ * write$ newline$ + "\item[5 4] " field #5 #4 substring$ * write$ newline$ + "\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] " field #-1 #1 substring$ * write$ newline$ "\item[-1 2] " field #-1 #2 substring$ * write$ newline$ "\item[-1 3] " field #-1 #3 substring$ * write$ newline$ @@ -43,7 +58,7 @@ FUNCTION {output_entry} { "\item[-5 4] " field #-5 #4 substring$ * write$ newline$ "\item[-6 3] " field #-6 #3 substring$ * write$ newline$ "\item[-7 2] " field #-7 #2 substring$ * write$ newline$ - "\item[-8 1] " field #-7 #1 substring$ * write$ newline$ + "\item[-8 1] " field #-8 #1 substring$ * write$ newline$ } FUNCTION {type} {output_entry} diff --git a/Build/source/texk/bibtex-x/tests/testsubstra.bib b/Build/source/texk/bibtex-x/tests/testsubstra.bib index 482de2068ef..2b5f67c0722 100644 --- a/Build/source/texk/bibtex-x/tests/testsubstra.bib +++ b/Build/source/texk/bibtex-x/tests/testsubstra.bib @@ -3,6 +3,6 @@ } @Type{latin1, - field = { }, + field = {~}, } diff --git a/Build/source/texk/bibtex-x/tests/testsubstru.bib b/Build/source/texk/bibtex-x/tests/testsubstru.bib index 17065563f73..60ff348c8b9 100644 --- a/Build/source/texk/bibtex-x/tests/testsubstru.bib +++ b/Build/source/texk/bibtex-x/tests/testsubstru.bib @@ -3,7 +3,7 @@ } @Type{latin1, - field = {ÅÇÈÎØÜÝ åçèîøüý}, + field = {ÅÇÈÎØÜÝ~åçèîøüý}, } @Type{greek, @@ -26,3 +26,7 @@ field = {櫛杓屠冤𦥑𠮟𠀋𡈽𥝱𨦇𡚴𠷡𧘕𧘔𩸽}, } +@Type{mix, + field = {AÇう冤EÜЖ~tçユ漆𡚴xюω}, +} + diff --git a/Build/source/texk/bibtex-x/tests/txtprfxa.bbl b/Build/source/texk/bibtex-x/tests/txtprfxa.bbl index 48fde96b5f9..d18d6e7a42e 100644 --- a/Build/source/texk/bibtex-x/tests/txtprfxa.bbl +++ b/Build/source/texk/bibtex-x/tests/txtprfxa.bbl @@ -9,7 +9,7 @@ \item[5] ABCDE \item[6] ABCDEF \item[7] ABCDEFG -\item[orig] +\item[orig] ~ \item[len] 15 \item[1] \item[2] diff --git a/Build/source/texk/bibtex-x/tests/txtprfxu.bbl b/Build/source/texk/bibtex-x/tests/txtprfxu.bbl index 17cb2096e77..2c7719e4dc0 100644 --- a/Build/source/texk/bibtex-x/tests/txtprfxu.bbl +++ b/Build/source/texk/bibtex-x/tests/txtprfxu.bbl @@ -9,7 +9,7 @@ \item[5] ABCDE \item[6] ABCDEF \item[7] ABCDEFG -\item[orig] ÅÇÈÎØÜÝ åçèîøüý +\item[orig] ÅÇÈÎØÜÝ~åçèîøüý \item[len] 15 \item[1] Å \item[2] ÅÇ @@ -18,6 +18,15 @@ \item[5] ÅÇÈÎØ \item[6] ÅÇÈÎØÜ \item[7] ÅÇÈÎØÜÝ +\item[orig] AÇう冤EÜЖ~tçユ漆𡚴xюω +\item[len] 16 +\item[1] A +\item[2] AÇ +\item[3] AÇう +\item[4] AÇう冤 +\item[5] AÇう冤E +\item[6] AÇう冤EÜ +\item[7] AÇう冤EÜЖ \item[orig] ΑΒΓΔΕΖΗ στυφχψω \item[len] 15 \item[1] Α diff --git a/Build/source/texk/bibtex-x/version.h b/Build/source/texk/bibtex-x/version.h index 9942f8a43fc..759c78fb660 100644 --- a/Build/source/texk/bibtex-x/version.h +++ b/Build/source/texk/bibtex-x/version.h @@ -91,7 +91,7 @@ */ #ifndef __VERSION_H__ # define __VERSION_H__ 1 -# define PACKAGE_DATE "(16 apr 2022)" +# define PACKAGE_DATE "(21 apr 2022)" # define VERSION PACKAGE_VERSION " " PACKAGE_DATE #endif /* __VERSION_H__ */ -- cgit v1.2.3