texlive[44927] Build/source/texk/makejvf: makejvf: support large

commits+hironobu at tug.org commits+hironobu at tug.org
Mon Jul 31 15:24:03 CEST 2017


Revision: 44927
          http://tug.org/svn/texlive?view=revision&revision=44927
Author:   hironobu
Date:     2017-07-31 15:24:02 +0200 (Mon, 31 Jul 2017)
Log Message:
-----------
makejvf: support large GLUEKERN table (version 20170731)

Modified Paths:
--------------
    trunk/Build/source/texk/makejvf/ChangeLog
    trunk/Build/source/texk/makejvf/tfmread.c
    trunk/Build/source/texk/makejvf/version.h

Modified: trunk/Build/source/texk/makejvf/ChangeLog
===================================================================
--- trunk/Build/source/texk/makejvf/ChangeLog	2017-07-31 00:21:19 UTC (rev 44926)
+++ trunk/Build/source/texk/makejvf/ChangeLog	2017-07-31 13:24:02 UTC (rev 44927)
@@ -1,3 +1,8 @@
+2017-07-31  Hironobu Yamashita  <h.y.acetaminophen at gmail.com>
+
+	makejvf version 20170731.
+	* tfmread.c, version.h: Support large GLUEKERN table.
+
 2017-07-24  Hironobu Yamashita  <h.y.acetaminophen at gmail.com>
 
 	* tfmread.c, makejvf.h: More efficient code. Note that

Modified: trunk/Build/source/texk/makejvf/tfmread.c
===================================================================
--- trunk/Build/source/texk/makejvf/tfmread.c	2017-07-31 00:21:19 UTC (rev 44926)
+++ trunk/Build/source/texk/makejvf/tfmread.c	2017-07-31 13:24:02 UTC (rev 44927)
@@ -11,7 +11,7 @@
 
 int jfmread(int kcode)
 {
-	int i,ctype=0,w_ind,w,ll=0,rr=0,gk_ind,k_ind,g_ind;
+	int i,ctype=0,w_ind,w,ll=0,rr=0,tag,gk_ind,gk2_ind;
 
 	for (i = 0 ; i < nt ; i++) {
 		if (upair(&char_type[i*4]) == kcode) {
@@ -27,38 +27,48 @@
 	rightamount = 0;
 	if (w != zw && ctype > 0) {
 		/* get natural length of JFM glue between <type0> and <type of kcode> */
-		gk_ind = char_info[0*4+3]; /* remainder for <type0> */
-		for (i = 0 ; i < nl-gk_ind ; i++) {
-			if (glue_kern[(gk_ind+i)*4+1] == ctype) {
-				if (glue_kern[(gk_ind+i)*4+2] >= 128) {
-					k_ind = glue_kern[(gk_ind+i)*4+3];
-					ll = kern[k_ind];
+		tag = char_info[ctype*4+2] % 4;
+		if (tag == 1) {
+			gk_ind = char_info[0*4+3]; /* remainder for <type0> */
+			if (glue_kern[gk_ind*4] == 254) /* support for large gluekern table */
+				gk_ind = upair(&glue_kern[gk_ind*4+2]);
+			for (i = 0 ; i < nl-gk_ind ; i++) {
+				if (glue_kern[(gk_ind+i)*4+1] == ctype) {
+					if (glue_kern[(gk_ind+i)*4+2] >= 128) {
+						gk2_ind = glue_kern[(gk_ind+i)*4+3];
+						ll = kern[gk2_ind];
+					}
+					else {
+						gk2_ind = glue_kern[(gk_ind+i)*4+3];
+						ll = glue[3*gk2_ind];
+					}
+					break;
 				}
-				else {
-					g_ind = glue_kern[(gk_ind+i)*4+3];
-					ll = glue[3*g_ind];
-				}
-				break;
+				if (glue_kern[(gk_ind+i)*4] >= 128)
+					break;
 			}
-			if (glue_kern[(gk_ind+i)*4] >= 128)
-				break;
 		}
 		/* get natural length of JFM glue between <type of kcode> and <type0> */
-		gk_ind = char_info[ctype*4+3]; /* remainder for <type of kcode> */
-		for (i = 0 ; i < nl-gk_ind ; i++) {
-			if (glue_kern[(gk_ind+i)*4+1] == 0) {
-				if (glue_kern[(gk_ind+i)*4+2] >= 128) {
-					k_ind = glue_kern[(gk_ind+i)*4+3];
-					rr = kern[k_ind];
+		tag = char_info[ctype*4+2] % 4;
+		if (tag == 1) {
+			gk_ind = char_info[ctype*4+3]; /* remainder for <type of kcode> */
+			if (glue_kern[gk_ind*4] == 254) /* support for large gluekern table */
+				gk_ind = upair(&glue_kern[gk_ind*4+2]);
+			for (i = 0 ; i < nl-gk_ind ; i++) {
+				if (glue_kern[(gk_ind+i)*4+1] == 0) {
+					if (glue_kern[(gk_ind+i)*4+2] >= 128) {
+						gk2_ind = glue_kern[(gk_ind+i)*4+3];
+						rr = kern[gk2_ind];
+					}
+					else {
+						gk2_ind = glue_kern[(gk_ind+i)*4+3];
+						rr = glue[3*gk2_ind];
+					}
+					break;
 				}
-				else {
-					g_ind = glue_kern[(gk_ind+i)*4+3];
-					rr = glue[3*g_ind];
-				}
-				break;
+				if (glue_kern[(gk_ind+i)*4] >= 128)
+					break;
 			}
-			if (glue_kern[(gk_ind+i)*4] >= 128)
-				break;
 		}
 		if (abs(zw - ll - w - rr) <= 1) /* allow round-off error */
 			/* character width is truncated,

Modified: trunk/Build/source/texk/makejvf/version.h
===================================================================
--- trunk/Build/source/texk/makejvf/version.h	2017-07-31 00:21:19 UTC (rev 44926)
+++ trunk/Build/source/texk/makejvf/version.h	2017-07-31 13:24:02 UTC (rev 44927)
@@ -1,2 +1,2 @@
-#define VERSION "20170720"
+#define VERSION "20170731"
 #define BUG_ADDRESS "issue at texjp.org"



More information about the tex-live-commits mailing list