diff options
Diffstat (limited to 'Build')
-rw-r--r-- | Build/source/texk/mendexk/ChangeLog | 10 | ||||
-rw-r--r-- | Build/source/texk/mendexk/fwrite.c | 19 | ||||
-rw-r--r-- | Build/source/texk/mendexk/pageread.c | 2 | ||||
-rw-r--r-- | Build/source/texk/mendexk/styfile.c | 2 | ||||
-rw-r--r-- | Build/source/texk/mendexk/version.h | 2 |
5 files changed, 27 insertions, 8 deletions
diff --git a/Build/source/texk/mendexk/ChangeLog b/Build/source/texk/mendexk/ChangeLog index 3d0e4fb5f4a..dda22c2955c 100644 --- a/Build/source/texk/mendexk/ChangeLog +++ b/Build/source/texk/mendexk/ChangeLog @@ -1,3 +1,13 @@ +2021-06-13 Hironobu Yamashita <h.y.acetaminophen@gmail.com> + + * fwrite.c: Avoid segmentation fault for unwritable fopen. + Recognize symhead_{positive,negative} for non-default + character_order. + * pageread.c, styfile.c: Exit code 255 for non-existent + style/log file. + * version.h: Date [13-Jun-2021], but still Version 3.5 (bugfix + only). + 2021-06-06 TANAKA Takuji <ttk@t-lab.opal.ne.jp> * configure.ac, version.h: diff --git a/Build/source/texk/mendexk/fwrite.c b/Build/source/texk/mendexk/fwrite.c index 48162ef75e6..078e334c845 100644 --- a/Build/source/texk/mendexk/fwrite.c +++ b/Build/source/texk/mendexk/fwrite.c @@ -121,11 +121,12 @@ void indwrite(char *filename, struct index *ind, int pagenum) { int i,j,hpoint=0; char datama[2048],lbuff[BUFFERLEN]; - FILE *fp; + FILE *fp=NULL; int conv_euc_to_euc; - if (filename && kpse_out_name_ok(filename)) fp=fopen(filename,"wb"); - else { + if (filename && kpse_out_name_ok(filename)) + fp=fopen(filename,"wb"); + if (fp == NULL) { fp=stdout; #ifdef WIN32 setmode(fileno(fp), _O_BINARY); @@ -218,7 +219,15 @@ void indwrite(char *filename, struct index *ind, int pagenum) if ((alphabet(ind[i-1].dic[0][0]))||(japanese(ind[i-1].dic[0]))){ fputs(group_skip,fp); if (lethead_flag && symbol_flag) { - fprintf(fp,"%s%s%s",lethead_prefix,symbol,lethead_suffix); + if (strlen(symbol)) { + fprintf(fp,"%s%s%s",lethead_prefix,symbol,lethead_suffix); + } + else if (lethead_flag>0) { + fprintf(fp,"%s%s%s",lethead_prefix,symhead_positive,lethead_suffix); + } + else if (lethead_flag<0) { + fprintf(fp,"%s%s%s",lethead_prefix,symhead_negative,lethead_suffix); + } } } } @@ -309,7 +318,7 @@ void indwrite(char *filename, struct index *ind, int pagenum) } fputs(postamble,fp); - if (filename) fclose(fp); + if (fp!=stdout) fclose(fp); } /* write page block */ diff --git a/Build/source/texk/mendexk/pageread.c b/Build/source/texk/mendexk/pageread.c index b77fb2931d9..ac72af48b86 100644 --- a/Build/source/texk/mendexk/pageread.c +++ b/Build/source/texk/mendexk/pageread.c @@ -39,7 +39,7 @@ int lastpage(const char *filename) fp=NULL; if (fp==NULL) { fprintf(stderr,"No log file, %s.\n",logfile); - exit(0); + exit(255); } while (1) { diff --git a/Build/source/texk/mendexk/styfile.c b/Build/source/texk/mendexk/styfile.c index 1a92516e190..db5651cf0cb 100644 --- a/Build/source/texk/mendexk/styfile.c +++ b/Build/source/texk/mendexk/styfile.c @@ -46,7 +46,7 @@ void styread(const char *filename) fp=NULL; if (fp==NULL) { fprintf(stderr,"%s does not exist.\n",filename); - exit(0); + exit(255); } verb_printf(efp,"Scanning style file %s.",filename); diff --git a/Build/source/texk/mendexk/version.h b/Build/source/texk/mendexk/version.h index f55a056b0c3..565459f3239 100644 --- a/Build/source/texk/mendexk/version.h +++ b/Build/source/texk/mendexk/version.h @@ -1,2 +1,2 @@ -#define VERSION "version " PACKAGE_VERSION " [6-Jun-2021]" +#define VERSION "version " PACKAGE_VERSION " [13-Jun-2021]" #define BUG_ADDRESS "issue@texjp.org" |