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