summaryrefslogtreecommitdiffstats
path: root/office/texlive/patches/texlive-20160523b-source-upstream_fixes-1.patch
diff options
context:
space:
mode:
Diffstat (limited to 'office/texlive/patches/texlive-20160523b-source-upstream_fixes-1.patch')
-rw-r--r--office/texlive/patches/texlive-20160523b-source-upstream_fixes-1.patch143
1 files changed, 143 insertions, 0 deletions
diff --git a/office/texlive/patches/texlive-20160523b-source-upstream_fixes-1.patch b/office/texlive/patches/texlive-20160523b-source-upstream_fixes-1.patch
new file mode 100644
index 0000000000..2dc07f4078
--- /dev/null
+++ b/office/texlive/patches/texlive-20160523b-source-upstream_fixes-1.patch
@@ -0,0 +1,143 @@
+Submitted By: Ken Moffat <ken at linuxfromscratch dot org>
+Date: 2016-06-25
+Initial Package Version: 20160523
+Upstream Status: Applied
+Origin: Upstream, svn revisions 41497, 41498
+Description: Fixes segfault in upmendex.
+
+diff -Naur texlive-20160523-source/texk/README texlive-20160523-source-b/texk/README
+--- texlive-20160523-source/texk/README 2016-04-20 00:51:42.000000000 +0100
++++ texlive-20160523-source-b/texk/README 2016-06-24 05:02:26.519423562 +0100
+@@ -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
+
+diff -Naur texlive-20160523-source/texk/upmendex/ChangeLog texlive-20160523-source-b/texk/upmendex/ChangeLog
+--- texlive-20160523-source/texk/upmendex/ChangeLog 2016-02-12 16:05:18.000000000 +0000
++++ texlive-20160523-source-b/texk/upmendex/ChangeLog 2016-06-24 05:02:26.519423562 +0100
+@@ -1,3 +1,9 @@
++2016-06-19 TANAKA Takuji <ttk@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@tug.org>
+
+ * configure.ac (KPSE_CXX_HACK): add to avoid usual libstdc++.so
+diff -Naur texlive-20160523-source/texk/upmendex/fwrite.c texlive-20160523-source-b/texk/upmendex/fwrite.c
+--- texlive-20160523-source/texk/upmendex/fwrite.c 2016-02-09 11:02:48.000000000 +0000
++++ texlive-20160523-source-b/texk/upmendex/fwrite.c 2016-06-24 05:02:26.519423562 +0100
+@@ -67,33 +67,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 +849,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 +883,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;
+diff -Naur texlive-20160523-source/texk/upmendex/main.c texlive-20160523-source-b/texk/upmendex/main.c
+--- texlive-20160523-source/texk/upmendex/main.c 2016-02-09 23:44:45.000000000 +0000
++++ texlive-20160523-source-b/texk/upmendex/main.c 2016-06-24 05:02:26.519423562 +0100
+@@ -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)
+ {