diff options
Diffstat (limited to 'Build/source/texk/mendexk/fread.c')
-rw-r--r-- | Build/source/texk/mendexk/fread.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/Build/source/texk/mendexk/fread.c b/Build/source/texk/mendexk/fread.c index e183bca11a4..8ff2eb357f6 100644 --- a/Build/source/texk/mendexk/fread.c +++ b/Build/source/texk/mendexk/fread.c @@ -207,9 +207,17 @@ LOOP: wbuff[k]=buff[j]; if (buff[j]!=escape) esc=0; if ((unsigned char)buff[j]>=0x80) { - wbuff[k+1]=buff[j+1]; - j++; - k++; + int len = multibytelen((unsigned char)buff[j]); + if (len<0) { + verb_printf(efp,"\nWarning: Illegal input of lead byte 0x%x in UTF-8.",(unsigned char)buff[j]); + k--; + continue; + } + while(--len) { + wbuff[k+1]=buff[j+1]; + j++; + k++; + } } } ind[i].words=indent+1; |