texlive[41497] Build/source/texk: upmendex 0.51

commits+takuji at tug.org commits+takuji at tug.org
Sun Jun 19 14:18:53 CEST 2016


Revision: 41497
          http://tug.org/svn/texlive?view=revision&revision=41497
Author:   takuji
Date:     2016-06-19 14:18:53 +0200 (Sun, 19 Jun 2016)
Log Message:
-----------
upmendex 0.51

Modified Paths:
--------------
    trunk/Build/source/texk/README
    trunk/Build/source/texk/upmendex/ChangeLog
    trunk/Build/source/texk/upmendex/fwrite.c
    trunk/Build/source/texk/upmendex/main.c

Modified: trunk/Build/source/texk/README
===================================================================
--- trunk/Build/source/texk/README	2016-06-19 09:24:37 UTC (rev 41496)
+++ trunk/Build/source/texk/README	2016-06-19 12:18:53 UTC (rev 41497)
@@ -98,7 +98,7 @@
 
 ttfdump - ?
 
-upmendex 0.50 - 
+upmendex 0.51 - by Takuji Tanaka
   http://www.ctan.org/pkg/upmendex
   http://www.t-lab.opal.ne.jp/tex/uptex_en.html
 

Modified: trunk/Build/source/texk/upmendex/ChangeLog
===================================================================
--- trunk/Build/source/texk/upmendex/ChangeLog	2016-06-19 09:24:37 UTC (rev 41496)
+++ trunk/Build/source/texk/upmendex/ChangeLog	2016-06-19 12:18:53 UTC (rev 41497)
@@ -1,3 +1,9 @@
+2016-06-19  TANAKA Takuji  <ttk at t-lab.opal.ne.jp>
+
+	* version 0.51  Beta version.
+	* fwrite.c: Fix bug of option "hanzi_head" in style file.
+	Thanks to Dr. Werner Fink.
+
 2016-02-12  Karl Berry  <karl at tug.org>
 
 	* configure.ac (KPSE_CXX_HACK): add to avoid usual libstdc++.so

Modified: trunk/Build/source/texk/upmendex/fwrite.c
===================================================================
--- trunk/Build/source/texk/upmendex/fwrite.c	2016-06-19 09:24:37 UTC (rev 41496)
+++ trunk/Build/source/texk/upmendex/fwrite.c	2016-06-19 12:18:53 UTC (rev 41497)
@@ -68,32 +68,38 @@
 static void fprint_uchar(FILE *fp, const UChar *a, const int mode, const int len)
 {
 	int k;
-	char str[15], *ret;
-	UChar istr[5];
+	char str[3*INITIALLENGTH+1];
+	UChar istr[INITIALLENGTH];
 	int olen, wclen;
 	UErrorCode perr;
 
 	if (len<0) {
-		for (k=0; a[k] || k<4; k++) istr[k]=a[k];
-		wclen=k;
+		u_strcpy(istr,a);
+		wclen=u_strlen(istr);
 	} else {
-		wclen = is_surrogate_pair(a) ? 2 : 1;
+		wclen=is_surrogate_pair(a) ? 2 : 1;
 			      istr[0]=a[0];
 		if (wclen==2) istr[1]=a[1];
+		istr[wclen]=L'\0';
 	}
-	istr[wclen]=L'\0';
 	if (mode==M_TO_UPPER) {
-		perr = U_ZERO_ERROR;
-		u_strToUpper(istr,5,istr,wclen,"",&perr);
+		perr=U_ZERO_ERROR;
+		olen=u_strToUpper(istr,INITIALLENGTH,istr,wclen,"",&perr);
 	} else if (mode==M_TO_LOWER) {
-		perr = U_ZERO_ERROR;
-		u_strToLower(istr,5,istr,wclen, istr[0]==0x130&&turkish_i?"tr":"", &perr);
+		perr=U_ZERO_ERROR;
+		olen=u_strToLower(istr,INITIALLENGTH,istr,wclen, istr[0]==0x130&&turkish_i?"tr":"", &perr);
 	} else if (mode==M_TO_TITLE) {
-		perr = U_ZERO_ERROR;
-		u_strToTitle(istr,5,istr,wclen,NULL,"",&perr);
-	}
-	perr = U_ZERO_ERROR;
-	ret = u_strToUTF8(str, 15, &olen, istr, wclen, &perr);
+		perr=U_ZERO_ERROR;
+		olen=u_strToTitle(istr,INITIALLENGTH,istr,wclen,NULL,"",&perr);
+	} else
+		olen=wclen;
+	if (olen>INITIALLENGTH) {
+		warn_printf(efp, "\nWarning, Too long (%d) header.\n", olen);
+		wclen=INITIALLENGTH;
+	} else
+		wclen=olen;
+	perr=U_ZERO_ERROR;
+	u_strToUTF8(str, 3*INITIALLENGTH+1, &olen, istr, wclen, &perr);
 	fprintf(fp,"%s",str);
 }
 
@@ -844,7 +850,7 @@
 static int init_hanzi_header(void)
 {
 	UChar strX[2],*pch0,*pch1;
-	int k, hzmode;
+	int k, hzmode, len;
 	struct hanzi_index *hz_idx_init;
 
 	strX[0]=0x5B57;  strX[1]=L'\0';
@@ -878,21 +884,18 @@
 	for (k=0;k<hz_index_len;k++) {
 		if (u_strlen(pch0)==0) break;
 		if ((pch1=u_strchr(pch0,L';'))>0) {
-			if (pch1-pch0>=INITIALLENGTH) {
-				warn_printf(efp, "\nWarning, Too long hanzi header.\n");
-				break;
-			}
-			u_strncpy(hz_index[k].idx,pch0,pch1-pch0);
-			hz_index[k].idx[pch1-pch0]=L'\0';
-			pch0=pch1+1;
+			len=pch1-pch0;
 		} else {
-			if (u_strlen(pch0)>=INITIALLENGTH) {
-				warn_printf(efp, "\nWarning, Too long hanzi header.\n");
-				break;
-			}
-			u_strcpy(hz_index[k].idx,pch0);
-			break;
+			len=u_strlen(pch0);
 		}
+		if (len>=INITIALLENGTH) {
+			warn_printf(efp, "\nWarning, Too long (%d) hanzi header.\n", len);
+			len=INITIALLENGTH-1;
+		}
+		u_strncpy(hz_index[k].idx,pch0,len);
+		hz_index[k].idx[len]=L'\0';
+		if (pch1>0) pch0=pch1+1;
+		else break;
 	}
 
 	return hzmode;

Modified: trunk/Build/source/texk/upmendex/main.c
===================================================================
--- trunk/Build/source/texk/upmendex/main.c	2016-06-19 09:24:37 UTC (rev 41496)
+++ trunk/Build/source/texk/upmendex/main.c	2016-06-19 12:18:53 UTC (rev 41497)
@@ -19,7 +19,7 @@
 #endif
 KpathseaSupportInfo kp_ist,kp_dict;
 
-#define VERSION "version 0.50"
+#define VERSION "version 0.51"
 
 int main(int argc, char **argv)
 {



More information about the tex-live-commits mailing list