summaryrefslogtreecommitdiff
path: root/Build/source/texk/makejvf
diff options
context:
space:
mode:
authorHironobu Yamashita <h.y.acetaminophen@gmail.com>2023-09-17 13:24:00 +0000
committerHironobu Yamashita <h.y.acetaminophen@gmail.com>2023-09-17 13:24:00 +0000
commitb6caed3f9e827e5801a3f27868d6597e2de15f6b (patch)
treec8f168e8bd68970d61ad66a3bfb04a4a29d32018 /Build/source/texk/makejvf
parent7853a1ad37caf3886afd4f8ad64aa7e30307e608 (diff)
ptex, makejvf: support more than 256 different glue/kern
git-svn-id: svn://tug.org/texlive/trunk@68305 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/texk/makejvf')
-rw-r--r--Build/source/texk/makejvf/ChangeLog6
-rw-r--r--Build/source/texk/makejvf/Makefile.am7
-rw-r--r--Build/source/texk/makejvf/Makefile.in3
-rwxr-xr-xBuild/source/texk/makejvf/makejvf.test14
-rw-r--r--Build/source/texk/makejvf/tests/gk256.vfbin0 -> 1590476 bytes
-rw-r--r--Build/source/texk/makejvf/tests/gk256g.tfmbin0 -> 123868 bytes
-rw-r--r--Build/source/texk/makejvf/tests/gk256k.tfmbin0 -> 127160 bytes
-rw-r--r--Build/source/texk/makejvf/tfmread.c8
8 files changed, 28 insertions, 10 deletions
diff --git a/Build/source/texk/makejvf/ChangeLog b/Build/source/texk/makejvf/ChangeLog
index 5739fd61caf..a8239f2ff70 100644
--- a/Build/source/texk/makejvf/ChangeLog
+++ b/Build/source/texk/makejvf/ChangeLog
@@ -1,3 +1,9 @@
+2023-09-17 Hironobu Yamashita <h.y.acetaminophen@gmail.com>
+
+ * tfmread.c: Support more than 256 different glue/kern.
+ * makejvf.test: Add new tests.
+ * gk256[gk].tfm, gk256.vf: New tests.
+
2023-09-16 TANAKA Takuji <ttk@t-lab.opal.ne.jp>
* uniblock.c: Update references Unicode blocks Blocks-15.1.0.txt
diff --git a/Build/source/texk/makejvf/Makefile.am b/Build/source/texk/makejvf/Makefile.am
index abacf534277..2da101c000b 100644
--- a/Build/source/texk/makejvf/Makefile.am
+++ b/Build/source/texk/makejvf/Makefile.am
@@ -1,7 +1,7 @@
## Makefile.am for the TeX Live subdirectory texk/makejvfk/
##
## Copyright (C) 2010-2015 Peter Breitenlohner <tex-live@tug.org>
-## Copyright (C) 2016-2018 Japanese TeX Development Community <issue@texjp.org>
+## Copyright (C) 2016-2023 Japanese TeX Development Community <issue@texjp.org>
## You may freely use, modify and/or distribute this file.
##
AM_CPPFLAGS = $(PTEXENC_INCLUDES) $(KPATHSEA_INCLUDES)
@@ -21,7 +21,7 @@ LDADD = $(PTEXENC_LIBS) $(KPATHSEA_LIBS)
@KPATHSEA_RULE@
@PTEXENC_RULE@
-EXTRA_DIST = COPYRIGHT COPYRIGHT.jis Changes.txt README.txt
+EXTRA_DIST = COPYRIGHT COPYRIGHT.ja Changes.txt README.txt
dist_check_SCRIPTS = makejvf.test
@@ -41,6 +41,9 @@ EXTRA_DIST += \
tests/testnewu.vf \
tests/gkhugeok.tfm \
tests/gkhugeok.vf \
+ tests/gk256g.tfm \
+ tests/gk256k.tfm \
+ tests/gk256.vf \
tests/skipjfmp.tfm \
tests/skipjfmp.vf \
tests/skipjfmp_omit.vf
diff --git a/Build/source/texk/makejvf/Makefile.in b/Build/source/texk/makejvf/Makefile.in
index e068d6941c6..39efa58616d 100644
--- a/Build/source/texk/makejvf/Makefile.in
+++ b/Build/source/texk/makejvf/Makefile.in
@@ -561,10 +561,11 @@ makejvf_SOURCES = \
uniblock.c uniblock.h usrtable.c usrtable.h version.h write.c
LDADD = $(PTEXENC_LIBS) $(KPATHSEA_LIBS)
-EXTRA_DIST = COPYRIGHT COPYRIGHT.jis Changes.txt README.txt \
+EXTRA_DIST = COPYRIGHT COPYRIGHT.ja Changes.txt README.txt \
tests/min10.tfm tests/min10.vf tests/rml.tfm tests/rmlv.tfm \
tests/tmin10.tfm tests/tmin10.vf tests/testnewu.tfm \
tests/testnewu.vf tests/gkhugeok.tfm tests/gkhugeok.vf \
+ tests/gk256g.tfm tests/gk256k.tfm tests/gk256.vf \
tests/skipjfmp.tfm tests/skipjfmp.vf tests/skipjfmp_omit.vf
dist_check_SCRIPTS = makejvf.test
TESTS = makejvf.test
diff --git a/Build/source/texk/makejvf/makejvf.test b/Build/source/texk/makejvf/makejvf.test
index e2bb6ab9485..66fdcb9a8ee 100755
--- a/Build/source/texk/makejvf/makejvf.test
+++ b/Build/source/texk/makejvf/makejvf.test
@@ -1,6 +1,6 @@
#! /bin/sh -vx
# $Id$
-# Copyright 2017-2018 Karl Berry <tex-live@tug.org>
+# Copyright 2017-2023 Karl Berry <tex-live@tug.org>
# Copyright 2010-2013 Peter Breitenlohner <tex-live@tug.org>
# You may freely use, modify and/or distribute this file.
@@ -25,13 +25,21 @@ $_makejvf -e -i -u custom -t $srcdir/tests/uni10.cnf $srcdir/tests/gkhugeok urml
cmp $srcdir/tests/gkhugeok.vf gkhugeok.vf && \
cmp $srcdir/tests/rml.tfm urml.tfm || exit 4
+$_makejvf -e -i -u custom -t $srcdir/tests/uni10.cnf $srcdir/tests/gk256g urml && \
+ cmp $srcdir/tests/gk256.vf gk256g.vf && \
+ cmp $srcdir/tests/rml.tfm urml.tfm || exit 5
+
+$_makejvf -e -i -u custom -t $srcdir/tests/uni10.cnf $srcdir/tests/gk256k urml && \
+ cmp $srcdir/tests/gk256.vf gk256k.vf && \
+ cmp $srcdir/tests/rml.tfm urml.tfm || exit 6
+
$_makejvf -e $srcdir/tests/skipjfmp rml && \
cmp $srcdir/tests/skipjfmp.vf skipjfmp.vf && \
- cmp $srcdir/tests/rml.tfm rml.tfm || exit 5
+ cmp $srcdir/tests/rml.tfm rml.tfm || exit 7
$_makejvf -e -O $srcdir/tests/skipjfmp rml && \
cmp $srcdir/tests/skipjfmp_omit.vf skipjfmp.vf && \
- cmp $srcdir/tests/rml.tfm rml.tfm || exit 6
+ cmp $srcdir/tests/rml.tfm rml.tfm || exit 8
TEXMFCNF=$srcdir/../kpathsea \
$_makejvf -k0 -a abc && exit 100
diff --git a/Build/source/texk/makejvf/tests/gk256.vf b/Build/source/texk/makejvf/tests/gk256.vf
new file mode 100644
index 00000000000..37ed4cfbd71
--- /dev/null
+++ b/Build/source/texk/makejvf/tests/gk256.vf
Binary files differ
diff --git a/Build/source/texk/makejvf/tests/gk256g.tfm b/Build/source/texk/makejvf/tests/gk256g.tfm
new file mode 100644
index 00000000000..fb1051b7a96
--- /dev/null
+++ b/Build/source/texk/makejvf/tests/gk256g.tfm
Binary files differ
diff --git a/Build/source/texk/makejvf/tests/gk256k.tfm b/Build/source/texk/makejvf/tests/gk256k.tfm
new file mode 100644
index 00000000000..9a40b0f66ef
--- /dev/null
+++ b/Build/source/texk/makejvf/tests/gk256k.tfm
Binary files differ
diff --git a/Build/source/texk/makejvf/tfmread.c b/Build/source/texk/makejvf/tfmread.c
index 5b4805d7e4e..23f13018722 100644
--- a/Build/source/texk/makejvf/tfmread.c
+++ b/Build/source/texk/makejvf/tfmread.c
@@ -38,11 +38,11 @@ int jfmread(int kcode)
if (glue_kern[(gk_ind+i)*4] > 128) break; /* ... skip loop */
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];
+ gk2_ind = (glue_kern[(gk_ind+i)*4+2]-128)*256+glue_kern[(gk_ind+i)*4+3];
ll = kern[gk2_ind];
}
else {
- gk2_ind = glue_kern[(gk_ind+i)*4+3];
+ gk2_ind = glue_kern[(gk_ind+i)*4+2]*256+glue_kern[(gk_ind+i)*4+3];
ll = glue[3*gk2_ind];
}
break;
@@ -64,11 +64,11 @@ int jfmread(int kcode)
if (glue_kern[(gk_ind+i)*4] > 128) break; /* ... skip loop */
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];
+ gk2_ind = (glue_kern[(gk_ind+i)*4+2]-128)*256+glue_kern[(gk_ind+i)*4+3];
rr = kern[gk2_ind];
}
else {
- gk2_ind = glue_kern[(gk_ind+i)*4+3];
+ gk2_ind = glue_kern[(gk_ind+i)*4+2]*256+glue_kern[(gk_ind+i)*4+3];
rr = glue[3*gk2_ind];
}
break;