summaryrefslogtreecommitdiff
path: root/Build/source/texk/mendexk/fread.c
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/texk/mendexk/fread.c')
-rw-r--r--Build/source/texk/mendexk/fread.c12
1 files changed, 8 insertions, 4 deletions
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]<pplen-1)
pattr[cc]++;
else pattr[cc]=0;
@@ -540,7 +542,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]<pplen-1)
pattr[cc]++;
else pattr[cc]=0;