From dd87c8d28d4a1a158bb90493591ad005e43470ee Mon Sep 17 00:00:00 2001 From: Takuji Tanaka Date: Sun, 19 Sep 2021 08:50:52 +0000 Subject: mendex: modify heuristic detection of page number types git-svn-id: svn://tug.org/texlive/trunk@60548 c570f23f-e606-0410-a88d-b1316a301751 --- Build/source/texk/mendexk/ChangeLog | 9 +++++++++ Build/source/texk/mendexk/fread.c | 12 ++++++++---- Build/source/texk/mendexk/tests/mendex.test | 14 +++++++++++++- Build/source/texk/mendexk/tests/pprec3.ist | 11 +++++++++++ Build/source/texk/mendexk/tests/pprec4.ist | 11 +++++++++++ Build/source/texk/mendexk/tests/pprecB-0.ind | 5 +++++ Build/source/texk/mendexk/tests/pprecB-3.ind | 5 +++++ Build/source/texk/mendexk/tests/pprecB-4.ind | 5 +++++ Build/source/texk/mendexk/tests/pprecB.idx | 9 +++++++++ Build/source/texk/mendexk/tests/range.idx | 14 +++++++------- Build/source/texk/mendexk/tests/range1.ind | 4 ++-- Build/source/texk/mendexk/tests/range2.ind | 4 ++-- Build/source/texk/mendexk/tests/range3.ind | 4 ++-- Build/source/texk/mendexk/version.h | 2 +- 14 files changed, 90 insertions(+), 19 deletions(-) create mode 100644 Build/source/texk/mendexk/tests/pprec3.ist create mode 100644 Build/source/texk/mendexk/tests/pprec4.ist create mode 100644 Build/source/texk/mendexk/tests/pprecB-0.ind create mode 100644 Build/source/texk/mendexk/tests/pprecB-3.ind create mode 100644 Build/source/texk/mendexk/tests/pprecB-4.ind create mode 100644 Build/source/texk/mendexk/tests/pprecB.idx (limited to 'Build/source') diff --git a/Build/source/texk/mendexk/ChangeLog b/Build/source/texk/mendexk/ChangeLog index b443138bec0..535313bf071 100644 --- a/Build/source/texk/mendexk/ChangeLog +++ b/Build/source/texk/mendexk/ChangeLog @@ -1,3 +1,12 @@ +2021-09-19 TANAKA Takuji + + * fread.c: + Modify heuristic detection of page number types. + * tests/mendex.test, tests/range.idx, tests/range[123].ind, + tests/pprecB.idx, tests/pprec[34].ist, tests/pprecB-[034].ind: + Update tests. + * version.h: Date [19-Sep-2021] + 2021-09-18 TANAKA Takuji * fread.c, fwrite.c, sort.c, mendex.h, {,ex}var.h: diff --git a/Build/source/texk/mendexk/fread.c b/Build/source/texk/mendexk/fread.c index 855920f4cf6..daffe7d523c 100644 --- a/Build/source/texk/mendexk/fread.c +++ b/Build/source/texk/mendexk/fread.c @@ -268,7 +268,7 @@ LOOP: nest++; else if (buff[j]==arg_close) { if (nest==0) { - table[k]='\0'; + table[k]='\0'; ind[0].p[0].page=xstrdup(table); break; } @@ -339,7 +339,7 @@ LOOP: copy_multibyte_char(buff, table, &j, &k); } - table[k]='\0'; + table[k]='\0'; for (k=0;k<=ind[l].num;k++) { if (strcmp(ind[l].p[k].page,table)==0) { @@ -531,7 +531,9 @@ ATTRLOOP: } break; case 'a': - if (*page0<'a' || *page0>'z' || strlen(buff)>1) { + if (*page0<'a' || *page0>'z' || strlen(buff)>1 || + (strchr("ivx",*page0) && strchr(page_precedence,'r') && !pcpos)) { + /* heuristic detection as roman number since I=1, V=5, X=10 are quite small */ if (pattr[cc]'Z' || strlen(buff)>1) { + if (*page0<'A' || *page0>'Z' || strlen(buff)>1 || + (strchr("IVX",*page0) && strchr(page_precedence,'R') && !pcpos)) { + /* heuristic detection as roman number since I=1, V=5, X=10 are quite small */ if (pattr[cc]