summaryrefslogtreecommitdiff
path: root/Build/source
diff options
context:
space:
mode:
authorTakuji Tanaka <ttk@t-lab.opal.ne.jp>2023-01-15 05:08:58 +0000
committerTakuji Tanaka <ttk@t-lab.opal.ne.jp>2023-01-15 05:08:58 +0000
commit6ddf7cd5b4795c5aa2144521fe1387dc9146362a (patch)
tree175d6105882e9d09452aeddc0a080a66d32c118e /Build/source
parent1f146ab3918a5579c1056691ce3b60ea574a3fbe (diff)
ptex: remove unsued tests & change files
git-svn-id: svn://tug.org/texlive/trunk@65541 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source')
-rw-r--r--Build/source/texk/web2c/Makefile.in60
-rw-r--r--Build/source/texk/web2c/ptexdir/am/ptex.am68
-rwxr-xr-xBuild/source/texk/web2c/ptexdir/nissya.test19
-rwxr-xr-xBuild/source/texk/web2c/ptexdir/pbibtex-longline-test.pl37
-rwxr-xr-xBuild/source/texk/web2c/ptexdir/pbibtex-mem.test70
-rwxr-xr-xBuild/source/texk/web2c/ptexdir/pbibtex-openout-test.pl22
-rw-r--r--Build/source/texk/web2c/ptexdir/pbibtex.ch731
-rwxr-xr-xBuild/source/texk/web2c/ptexdir/pbibtex.test53
-rw-r--r--Build/source/texk/web2c/ptexdir/pdvitype.ch483
-rwxr-xr-xBuild/source/texk/web2c/ptexdir/pdvitype.test33
-rw-r--r--Build/source/texk/web2c/ptexdir/ppltotf.ch710
-rwxr-xr-xBuild/source/texk/web2c/ptexdir/ppltotf.test10
-rw-r--r--Build/source/texk/web2c/ptexdir/ptftopl.ch538
-rwxr-xr-xBuild/source/texk/web2c/ptexdir/ptftopl.test11
-rwxr-xr-xBuild/source/texk/web2c/ptexdir/sample.test23
-rwxr-xr-xBuild/source/texk/web2c/ptexdir/skipjfmp.test23
-rwxr-xr-xBuild/source/texk/web2c/ptexdir/yokotate.test53
17 files changed, 0 insertions, 2944 deletions
diff --git a/Build/source/texk/web2c/Makefile.in b/Build/source/texk/web2c/Makefile.in
index b6ab8afa83d..9dd8520424d 100644
--- a/Build/source/texk/web2c/Makefile.in
+++ b/Build/source/texk/web2c/Makefile.in
@@ -3166,66 +3166,6 @@ dist_man_MANS = synctexdir/man1/synctex.1 synctexdir/man5/synctex.5
nodist_man_MANS =
TEST_EXTENSIONS = .pl .test
-#nodist_pbibtex_SOURCES = pbibtex.c pbibtex.h
-#pbibtex_SOURCES = ptexdir/kanji.h
-#pbibtex_CPPFLAGS = $(ptex_cppflags)
-#pbibtex_LDADD = $(ptex_ldadd)
-#pbibtex_DEPENDENCIES = $(ptex_dependencies)
-#pbibtex.c pbibtex.h: pbibtex-web2c
-# @$(web2c) pbibtex
-#pbibtex-web2c: pbibtex.p $(web2c_depend) ptexdir/ptex.defines web2c/cvtbib.sed
-# @$(web2c) pbibtex
-#pbibtex.p: tangle$(EXEEXT) pbibtex.web ptexdir/pbibtex.ch
-# $(p_tangle) pbibtex pbibtex
-#pbibtex.web: tie$(EXEEXT) bibtex.web bibtex.ch
-# $(tie_m) bibtex.web bibtex.ch
-#EXTRA_DIST += ptexdir/pbibtex.ch web2c/cvtbib.sed
-
-#nodist_pdvitype_SOURCES = pdvitype.c pdvitype.h
-#pdvitype_SOURCES = ptexdir/kanji.h
-#pdvitype_CPPFLAGS = $(ptex_cppflags) -DHEX_CHAR_CODE
-#pdvitype_LDADD = $(ptex_ldadd)
-#pdvitype_DEPENDENCIES = $(ptex_dependencies)
-#pdvitype.c pdvitype.h: pdvitype-web2c
-# @$(web2c) pdvitype
-#pdvitype-web2c: pdvitype.p $(web2c_depend) ptexdir/ptex.defines
-# @$(web2c) pdvitype
-#pdvitype.p: tangle$(EXEEXT) pdvitype.web ptexdir/pdvitype.ch
-# $(p_tangle) pdvitype pdvitype
-#pdvitype.web: tie$(EXEEXT) dvitype.web dvitype.ch
-# $(tie_m) dvitype.web dvitype.ch
-#EXTRA_DIST += ptexdir/pdvitype.ch
-
-#nodist_ppltotf_SOURCES = ppltotf.c ppltotf.h
-#ppltotf_SOURCES = ptexdir/kanji.h
-#ppltotf_CPPFLAGS = $(ptex_cppflags) -DPRESERVE_PUTC
-#ppltotf_LDADD = $(ptex_ldadd)
-#ppltotf_DEPENDENCIES = $(ptex_dependencies)
-#ppltotf.c ppltotf.h: ppltotf-web2c
-# @$(web2c) ppltotf
-#ppltotf-web2c: ppltotf.p $(web2c_depend) ptexdir/ptex.defines
-# @$(web2c) ppltotf
-#ppltotf.p: tangle$(EXEEXT) ppltotf.web ptexdir/ppltotf.ch
-# $(p_tangle) ppltotf ppltotf
-#ppltotf.web: tie$(EXEEXT) pltotf.web pltotf.ch
-# $(tie_m) pltotf.web pltotf.ch
-#EXTRA_DIST += ptexdir/ppltotf.ch
-
-#nodist_ptftopl_SOURCES = ptftopl.c ptftopl.h
-#ptftopl_SOURCES = ptexdir/kanji.h
-#ptftopl_CPPFLAGS = $(ptex_cppflags)
-#ptftopl_LDADD = $(ptex_ldadd)
-#ptftopl_DEPENDENCIES = $(ptex_dependencies)
-#ptftopl.c ptftopl.h: ptftopl-web2c
-# @$(web2c) ptftopl
-#ptftopl-web2c: ptftopl.p $(web2c_depend) ptexdir/ptex.defines
-# @$(web2c) ptftopl
-#ptftopl.p: tangle$(EXEEXT) ptftopl.web ptexdir/ptftopl.ch
-# $(p_tangle) ptftopl ptftopl
-#ptftopl.web: tie$(EXEEXT) tftopl.web tftopl.ch
-# $(tie_m) tftopl.web tftopl.ch
-#EXTRA_DIST += ptexdir/ptftopl.ch
-#
# By the way, the $(BUILT_SOURCES) suggestion in the Automake manual for
# this does not work for us, because we want to be able to invoke
# specific targets (hiall, hitex, hishrink, ...), and $(BUILT_SOURCES)
diff --git a/Build/source/texk/web2c/ptexdir/am/ptex.am b/Build/source/texk/web2c/ptexdir/am/ptex.am
index d107f217022..a56533a8042 100644
--- a/Build/source/texk/web2c/ptexdir/am/ptex.am
+++ b/Build/source/texk/web2c/ptexdir/am/ptex.am
@@ -92,74 +92,6 @@ EXTRA_DIST += $(ptex_web_srcs) $(ptex_ch_srcs) ptexdir/ptex.defines
DISTCLEANFILES += $(nodist_ptex_SOURCES) ptex.web ptex.ch ptex-web2c \
ptex.p ptex.pool ptex-tangle
-## pBibTeX
-##
-#nodist_pbibtex_SOURCES = pbibtex.c pbibtex.h
-#pbibtex_SOURCES = ptexdir/kanji.h
-#pbibtex_CPPFLAGS = $(ptex_cppflags)
-#pbibtex_LDADD = $(ptex_ldadd)
-#pbibtex_DEPENDENCIES = $(ptex_dependencies)
-#pbibtex.c pbibtex.h: pbibtex-web2c
-# @$(web2c) pbibtex
-#pbibtex-web2c: pbibtex.p $(web2c_depend) ptexdir/ptex.defines web2c/cvtbib.sed
-# @$(web2c) pbibtex
-#pbibtex.p: tangle$(EXEEXT) pbibtex.web ptexdir/pbibtex.ch
-# $(p_tangle) pbibtex pbibtex
-#pbibtex.web: tie$(EXEEXT) bibtex.web bibtex.ch
-# $(tie_m) bibtex.web bibtex.ch
-#EXTRA_DIST += ptexdir/pbibtex.ch web2c/cvtbib.sed
-
-## pDVItype
-##
-#nodist_pdvitype_SOURCES = pdvitype.c pdvitype.h
-#pdvitype_SOURCES = ptexdir/kanji.h
-#pdvitype_CPPFLAGS = $(ptex_cppflags) -DHEX_CHAR_CODE
-#pdvitype_LDADD = $(ptex_ldadd)
-#pdvitype_DEPENDENCIES = $(ptex_dependencies)
-#pdvitype.c pdvitype.h: pdvitype-web2c
-# @$(web2c) pdvitype
-#pdvitype-web2c: pdvitype.p $(web2c_depend) ptexdir/ptex.defines
-# @$(web2c) pdvitype
-#pdvitype.p: tangle$(EXEEXT) pdvitype.web ptexdir/pdvitype.ch
-# $(p_tangle) pdvitype pdvitype
-#pdvitype.web: tie$(EXEEXT) dvitype.web dvitype.ch
-# $(tie_m) dvitype.web dvitype.ch
-#EXTRA_DIST += ptexdir/pdvitype.ch
-
-## pPLtoTF
-##
-#nodist_ppltotf_SOURCES = ppltotf.c ppltotf.h
-#ppltotf_SOURCES = ptexdir/kanji.h
-#ppltotf_CPPFLAGS = $(ptex_cppflags) -DPRESERVE_PUTC
-#ppltotf_LDADD = $(ptex_ldadd)
-#ppltotf_DEPENDENCIES = $(ptex_dependencies)
-#ppltotf.c ppltotf.h: ppltotf-web2c
-# @$(web2c) ppltotf
-#ppltotf-web2c: ppltotf.p $(web2c_depend) ptexdir/ptex.defines
-# @$(web2c) ppltotf
-#ppltotf.p: tangle$(EXEEXT) ppltotf.web ptexdir/ppltotf.ch
-# $(p_tangle) ppltotf ppltotf
-#ppltotf.web: tie$(EXEEXT) pltotf.web pltotf.ch
-# $(tie_m) pltotf.web pltotf.ch
-#EXTRA_DIST += ptexdir/ppltotf.ch
-
-## pTFtoPL
-##
-#nodist_ptftopl_SOURCES = ptftopl.c ptftopl.h
-#ptftopl_SOURCES = ptexdir/kanji.h
-#ptftopl_CPPFLAGS = $(ptex_cppflags)
-#ptftopl_LDADD = $(ptex_ldadd)
-#ptftopl_DEPENDENCIES = $(ptex_dependencies)
-#ptftopl.c ptftopl.h: ptftopl-web2c
-# @$(web2c) ptftopl
-#ptftopl-web2c: ptftopl.p $(web2c_depend) ptexdir/ptex.defines
-# @$(web2c) ptftopl
-#ptftopl.p: tangle$(EXEEXT) ptftopl.web ptexdir/ptftopl.ch
-# $(p_tangle) ptftopl ptftopl
-#ptftopl.web: tie$(EXEEXT) tftopl.web tftopl.ch
-# $(tie_m) tftopl.web tftopl.ch
-#EXTRA_DIST += ptexdir/ptftopl.ch
-
##
EXTRA_DIST += \
ptexdir/COPYRIGHT \
diff --git a/Build/source/texk/web2c/ptexdir/nissya.test b/Build/source/texk/web2c/ptexdir/nissya.test
deleted file mode 100755
index cfef230ee18..00000000000
--- a/Build/source/texk/web2c/ptexdir/nissya.test
+++ /dev/null
@@ -1,19 +0,0 @@
-#! /bin/sh -vx
-# $Id$
-# Copyright 2022 Japanese TeX Development Community <issue@texjp.org>
-# Copyright 2017 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.
-
-# Using data sent by Akira Kakuto <kakuto@fuk.kindai.ac.jp>
-
-test -d ptests || mkdir -p ptests
-
-cp $srcdir/ptexdir/tests/nissya_bib.aux ptests/nissya_bib.aux
-
-TEXMFCNF=$srcdir/../kpathsea \
- BSTINPUTS=$srcdir/ptexdir/tests \
- BIBINPUTS=$srcdir/ptexdir/tests \
- ./pbibtex ptests/nissya_bib || exit 1
- diff $srcdir/ptexdir/tests/nissya_bib.bbl ptests/nissya_bib.bbl || exit 2
-
diff --git a/Build/source/texk/web2c/ptexdir/pbibtex-longline-test.pl b/Build/source/texk/web2c/ptexdir/pbibtex-longline-test.pl
deleted file mode 100755
index 499833d9be9..00000000000
--- a/Build/source/texk/web2c/ptexdir/pbibtex-longline-test.pl
+++ /dev/null
@@ -1,37 +0,0 @@
-#!/usr/bin/env perl
-# $Id: pbibtex-openout-test.pl 17085 2010-02-18 18:03:18Z karl $
-# Public domain. Originally written 2010, Karl Berry.
-# Check that pbibtex does not break long strings (change in 2010).
-
-# srcdir = web2c (in the source tree)
-BEGIN { chomp ($srcdir = $ENV{"srcdir"} || `cd \`dirname $0\`/.. && pwd`); }
-require "$srcdir/../tests/common-test.pl";
-
-exit (&main ());
-
-sub main
-{
- # The blg and bbl file names are based on the aux name and cannot be
- # overridden. We can't write to the aux (source) directory, though,
- # because that's an absolute path and openout_any=p. Therefore, copy
- # the input aux file to our working directory and rename it to avoid
- # spurious parallel test failures.
- &test_file_copy ("$srcdir/tests/longline.aux", "./plongline.aux");
-
- # Run pBibTeX, quit if it fails.
- my $ret = &test_run ("./pbibtex", "./plongline.aux");
- return 1 if $ret != 0;
-
- # There should be lines longer than 80 chars in the output.
- # (In older versions of pBibTeX, they are forcibly split, with a %.)
- local *IN;
- $IN = "plongline.bbl";
- open (IN) || die "open($IN) failed: $!";
- while (<IN>) {
- last if length ($_) >= 80;
- }
-
- # We failed if all lines were < 80.
- my $bad = ! (length $_ >= 80);
- return $bad;
-}
diff --git a/Build/source/texk/web2c/ptexdir/pbibtex-mem.test b/Build/source/texk/web2c/ptexdir/pbibtex-mem.test
deleted file mode 100755
index 44a0866cd42..00000000000
--- a/Build/source/texk/web2c/ptexdir/pbibtex-mem.test
+++ /dev/null
@@ -1,70 +0,0 @@
-#! /bin/sh -vx
-# $Id$
-# Copyright 2017 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.
-
-# Using test data from Philipp Lehman <lehman@gmx.net>
-
-test -d ptests || mkdir -p ptests
-
-# Create bib data
-mk_bib () {
- for i
- do
- for j in 0 1 2 3 4 5 6 7 8 9; do
- for k in 0 1 2 3 4 5 6 7 8 9; do
- for l in 0 1 2 3 4 5 6 7 8 9; do
- cat <<EOF
-@Type{key$i$j$k$l,
- field001 = {Value 001},
- field002 = {Value 002},
- field003 = {Value 003},
- field004 = {Value 004},
- field005 = {Value 005},
- field006 = {Value 006},
- field007 = {Value 007},
- field008 = {Value 008},
- field009 = {Value 009},
- field010 = {Value 010}
-}
-
-EOF
- done
- done
- done
- done
-}
-
-# Create aux data
-mk_aux () {
- cat <<EOF
-\relax
-\citation{*}
-\bibstyle{$1}
-\bibdata{memtest}
-EOF
-}
-
-for t in 1 2 3; do
-
- mk_aux memdata$t >ptests/memtest$t.aux
-
- env=
-
- case $t in
- 1) mk_bib 0 >ptests/memtest.bib;;
- 2) mk_bib 1 >>ptests/memtest.bib;;
- 3) env='ent_str_size=2000 glob_str_size=2000';;
- esac
-
- echo "Running memtest$t ..."
-
- eval $env \
- TEXMFCNF=$srcdir/../kpathsea \
- BSTINPUTS=$srcdir/tests \
- BIBINPUTS=./ptests \
- ./pbibtex ptests/memtest$t || exit 1
-
-done
-
diff --git a/Build/source/texk/web2c/ptexdir/pbibtex-openout-test.pl b/Build/source/texk/web2c/ptexdir/pbibtex-openout-test.pl
deleted file mode 100755
index cf24a6e329a..00000000000
--- a/Build/source/texk/web2c/ptexdir/pbibtex-openout-test.pl
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/usr/bin/env perl
-# $Id: pbibtex-openout-test.pl 17384 2010-03-08 18:49:47Z karl $
-# Public domain. Originally written 2010, Karl Berry.
-# Check that pbibtex respects openout_any.
-
-# srcdir = web2c (in the source tree)
-BEGIN { chomp ($srcdir = $ENV{"srcdir"} || `cd \`dirname $0\`/.. && pwd`); }
-require "$srcdir/../tests/common-test.pl";
-
-exit (&main ());
-
-sub main
-{
- $ENV{"openout_any"} = "p"; # should already be in texmf.cnf, but ...
-
- # .blg open of abs path should fail:
- my $ret = &test_run ("./pbibtex", "$srcdir/tests/exampl.aux");
-
- # The test fails if the program succeeded. Could also check the output.
- my $bad = ($ret == 0);
- return $bad;
-}
diff --git a/Build/source/texk/web2c/ptexdir/pbibtex.ch b/Build/source/texk/web2c/ptexdir/pbibtex.ch
deleted file mode 100644
index 48df5c67ee2..00000000000
--- a/Build/source/texk/web2c/ptexdir/pbibtex.ch
+++ /dev/null
@@ -1,731 +0,0 @@
-% Change file for BibTeX in C, originally by Howard Trickey.
-%
-% 05/28/84 Initial implementation, version 0.41 of BibTeX
-% 07/01/84 Version 0.41a of BibTeX.
-% 12/17/84 Version 0.97c of BibTeX.
-% 02/12/85 Version 0.98c of BibTeX.
-% 02/25/85 Newer version 0.98c of BibTeX.
-% 03/25/85 Version 0.98f of BibTeX
-% 05/23/85 Version 0.98i of BibTeX
-% 02/11/88 Version 0.99b of BibTeX
-% 04/04/88 Version 0.99c; converted for use with web2c (ETM).
-% 11/30/89 Use FILENAMESIZE instead of 1024 (KB).
-% 03/09/90 `int' is a bad variable name for C.
-% (more recent changes in the ChangeLog)
-%
-% 5/ 2/89 Version 0.20 of JBiBTeX by Shouichi Matsui
-% 12/25/90 Version 0.30 of JBibTeX by Shouichi Matsui
-% 1/ 1/91 last update for JBibTeX 0.30 by Shouichi Matsui
-% 10/30/92 last update for JBibTeX 0.31 for bug fix by Shouichi Matsui
-% 11/02/94 Version 0.32 for use with web2c 6.1, by Takafumi Sakurai
-%
-% 2002 Version 0.33 add kanji option by ASCII Corporation
-%
-% 2009 pTeXenc, pbibtex N. Tsuchimura
-% 2010 Version 0.99d of BibTeX for TeX Live
-%
-% 2022-02-08 Version 0.34 by H. Yamashita
-% * Avoid breaking BBL lines at white space after a Japanese character, to
-% preserve spacing within BIB entry for subsequent pTeX line-end operations.
-% 2022-02-20 Still version 0.34 by H. Yamashita (-> TL'22 version)
-% * Improve substring$ to truncate at least one character when trying to
-% start counting from the middle byte of the first or last Japanese character.
-% 2022-05-15 Version 0.35 by Takuji Tanaka (-> TL'23 version)
-% * Accept multibyte characters by int.to.chr$ and chr.to.int$.
-
-@x [0] only print chnages
-\def\title{\BibTeX\ }
-@y
-\let\maybe=\iffalse
-\def\title{J\BibTeX\ 0.35 Changes for C Version \BibTeX\ }
-@z
-
-@x
- \def\titlepage{F}
- \centerline{\:\titlefont The {\:\ttitlefont \BibTeX} preprocessor}
- \vskip 15pt \centerline{(Version 0.99d---\today)} \vfill}
-@y
- \def\titlepage{F}
- \centerline{\:\titlefont The {\:\ttitlefont J\BibTeX} preprocessor}
- \vskip 15pt \centerline{(Version 0.99d-j0.35---\today)} \vfill}
-@z
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% [1] banner
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-@x
-@d my_name=='bibtex'
-@d banner=='This is BibTeX, Version 0.99d' {printed when the program starts}
-@y
-@d my_name=='pbibtex'
-@d banner=='This is pBibTeX, Version 0.99d-j0.35'
- {printed when the program starts}
-@z
-
-@x
- print (banner);
-@y
- print (banner);
- print (' (', conststringcast(get_enc_string), ')');
-@z
-
-@x Changes for JBibTeX by Shouichi Matsui [27]
-for i:=0 to @'37 do xchr[i]:=chr(i);
-for i:=@'177 to @'377 do xchr[i]:=chr(i);
-@y
-for i:=1 to @'37 do xchr[i]:=' ';
-xchr[tab]:=chr(tab);
-for i:=@'200 to @'237 do xchr[i]:=chr(i-@'200);
-for i:=@'240 to 255 do xchr[i]:=chr(i);
-xchr[@'33]:=chr(@'33); {escape char}
-@z
-
-@x Changes for JBibTeX by Shouichi Matsui [28]
-for i:=first_text_char to last_text_char do xord[xchr[i]]:=i;
-@y
-for i:=first_text_char to last_text_char do xord[i]:=invalid_code;
-for i:=1 to @'176 do xord[i]:= i;
-for i:=@'200 to @'237 do xord[i]:= i-@'200;
-for i:=@'240 to 255 do xord[i]:=i;
-@z
-
-
-@x Changes for JBibTeX by Shouichi Matsui for ver. 0.30
-@d period = "." {these are three}
-@d question_mark = "?" {string-ending characters}
-@d exclamation_mark = "!" {of interest in \.{add.period\$}}
-@y
-@d period = "." {these are three}
-@d question_mark = "?" {string-ending characters}
-@d exclamation_mark = "!" {of interest in \.{add.period\$}}
-@d zen_pun_first = 161 {Zenkaku punctuation first byte; in EUC}
-@d zen_space = 161 {Zenkaku space first, second byte; in EUC}
-@d zen_kuten = 162 {Zenkaku kuten second byte; in EUC}
-@d zen_ten = 163 {Zenkaku ten second byte; in EUC}
-@d zen_comma = 164 {Zenkaku comman second byte; in EUC}
-@d zen_period = 165 {Zenkaku period second byte; in EUC}
-@d zen_question = 169 {Zenkaku question mark second byte; in EUC}
-@d zen_exclamation = 170 {Zenkaku exclamation mark second byte; in EUC}
-@z
-
-% [32] Make RET a `white_space' character, so we won't choke on DOS
-% files, which use CR/LF for line endings.
-@x Changes for JBibTeX by Shouichi Matsui [32]
-@<Set initial values of key variables@>=
-for i:=0 to @'177 do lex_class[i] := other_lex;
-for i:=@'200 to @'377 do lex_class[i] := alpha;
-for i:=0 to @'37 do lex_class[i] := illegal;
-lex_class[invalid_code] := illegal;
-lex_class[tab] := white_space;
-lex_class[13] := white_space;
-lex_class[space] := white_space;
-lex_class[tie] := sep_char;
-lex_class[hyphen] := sep_char;
-for i:=@'60 to @'71 do lex_class[i] := numeric;
-for i:=@'101 to @'132 do lex_class[i] := alpha;
-for i:=@'141 to @'172 do lex_class[i] := alpha;
-@y
-@<Set initial values of key variables@>=
-for i:=0 to @'377 do lex_class[i] := other_lex;
-for i:=0 to @'37 do lex_class[i] := illegal;
-lex_class[invalid_code] := illegal;
-lex_class[tab] := white_space;
-lex_class[13] := white_space;
-lex_class[space] := white_space;
-lex_class[tie] := sep_char;
-lex_class[hyphen] := sep_char;
-for i:=@'60 to @'71 do lex_class[i] := numeric;
-for i:=@'101 to @'132 do lex_class[i] := alpha;
-for i:=@'141 to @'172 do lex_class[i] := alpha;
-for i:=@'200 to @'237 do lex_class[i] := illegal;
-for i:=@'240 to 255 do lex_class[i] := alpha;
-lex_class[@'33]:=alpha;
-@z
-
-@x Changes for JBibTeX by Shouichi Matsui [33]
-@<Set initial values of key variables@>=
-for i:=0 to @'377 do id_class[i] := legal_id_char;
-for i:=0 to @'37 do id_class[i] := illegal_id_char;
-id_class[space] := illegal_id_char;
-id_class[tab] := illegal_id_char;
-id_class[double_quote] := illegal_id_char;
-id_class[number_sign] := illegal_id_char;
-id_class[comment] := illegal_id_char;
-id_class[single_quote] := illegal_id_char;
-id_class[left_paren] := illegal_id_char;
-id_class[right_paren] := illegal_id_char;
-id_class[comma] := illegal_id_char;
-id_class[equals_sign] := illegal_id_char;
-id_class[left_brace] := illegal_id_char;
-id_class[right_brace] := illegal_id_char;
-@y
-@<Set initial values of key variables@>=
-for i:=0 to @'377 do id_class[i] := legal_id_char;
-for i:=0 to @'37 do id_class[i] := illegal_id_char;
-for i:=@'200 to @'237 do id_class[i] := illegal_id_char;
-id_class[@'33] := legal_id_char;
-id_class[space] := illegal_id_char;
-id_class[tab] := illegal_id_char;
-id_class[double_quote] := illegal_id_char;
-id_class[number_sign] := illegal_id_char;
-id_class[comment] := illegal_id_char;
-id_class[single_quote] := illegal_id_char;
-id_class[left_paren] := illegal_id_char;
-id_class[right_paren] := illegal_id_char;
-id_class[comma] := illegal_id_char;
-id_class[equals_sign] := illegal_id_char;
-id_class[left_brace] := illegal_id_char;
-id_class[right_brace] := illegal_id_char;
-@z
-
-@x Changes for JBibTeX by Shouichi Matsui [35]
-char_width[@'167] := 722;
-char_width[@'170] := 528;
-char_width[@'171] := 528;
-char_width[@'172] := 444;
-char_width[@'173] := 500;
-char_width[@'174] :=1000;
-char_width[@'175] := 500;
-char_width[@'176] := 500;
-@y
-char_width[@'167] := 722;
-char_width[@'170] := 528;
-char_width[@'171] := 528;
-char_width[@'172] := 444;
-char_width[@'173] := 500;
-char_width[@'174] :=1000;
-char_width[@'175] := 500;
-char_width[@'176] := 500;
-for i:=@'240 to 254 do char_width[i]:=514;
-@z
-
-@x [48] JBibTeX and dynamic buf_size.
-label loop_exit;
-@y
-label loop_exit;
-var i:c_int_type;
-@z
-@x [still 48] JBibTeX and dynamic buf_size.
- while (not eoln(f)) do
- begin
- if (last >= buf_size) then
- buffer_overflow;
- buffer[last] := xord[getc (f)];
- incr (last);
- end;
- vgetc (f); {skip the eol}
-@y
- last := input_line2(f,ustringcast(buffer),last,buf_size,address_of(i));
- while (not eof(f)) and (last > 0) and (i <> 10) and (i <> 13) do
- begin
- buffer_overflow;
- last := input_line2(f,ustringcast(buffer),last,buf_size,address_of(i));
- end;
-@z
-
-@x
-@<Procedures and functions for the reading and processing of input files@>=
-procedure get_the_top_level_aux_file_name;
-label aux_found,@!aux_not_found;
-begin
-@y
-@<Procedures and functions for the reading and processing of input files@>=
-procedure get_the_top_level_aux_file_name;
-label aux_found,@!aux_not_found;
-begin
- if (not set_enc_string (nil,'EUC')) then uexit(1);
-@z
-
-@x
-parse_arguments;
-@y
-init_kanji;
-parse_arguments;
-@z
-
-% pBibTeX: do not break at |white_space| after Japanese characters (2022-02-08 j0.34)
-@x "Break that line"
-while ((lex_class[out_buf[out_buf_ptr]] <> white_space) and
- (out_buf_ptr >= min_print_line)) do
- decr(out_buf_ptr);
-@y
-while (((lex_class[out_buf[out_buf_ptr]] <> white_space) or
- (out_buf[out_buf_ptr-1] > 127)) and (out_buf_ptr >= min_print_line)) do
- decr(out_buf_ptr);
-@z
-@x "Break that unbreakably long line"
- if (lex_class[out_buf[out_buf_ptr]] <> white_space) then
- incr(out_buf_ptr)
-@y
- if (lex_class[out_buf[out_buf_ptr]] <> white_space) or
- (out_buf[out_buf_ptr-1] > 127) then
- incr(out_buf_ptr)
-@z
-
-@x Changes for JBibTeX by Shouichi Matsui [332]
-@!b_write : hash_loc; {\.{write\$}}
-@!b_default : hash_loc; {either \.{skip\$} or \.{default.type}}
-@y
-@!b_write : hash_loc; {\.{write\$}}
-@!b_is_kanji_str : hash_loc; {\.{is.kanji.str\$}}
-@!b_default : hash_loc; {either \.{skip\$} or \.{default.type}}
-@z
-
-@x Changes for JBibTeX by Shouichi Matsui [334]
-@d n_write = 36 {\.{write\$}}
-
-@<Constants in the outer block@>=
-@!num_blt_in_fns = 37; {one more than the previous number}
-@y
-@d n_write = 36 {\.{write\$}}
-@d n_is_kanji_str = 37 {\.{is.kanji.str\$}}
-
-@<Constants in the outer block@>=
-@!num_blt_in_fns = 38; {one more than the previous number}
-@z
-
-@x Changes for JBibTeX by Shouichi Matsui [335]
-build_in('write$ ',6,b_write,n_write);
-@y
-build_in('write$ ',6,b_write,n_write);
-build_in('is.kanji.str$',13,b_is_kanji_str,n_is_kanji_str);
-@z
-
-@x Changes for JBibTeX by Shouichi Matsui [342]
- n_write : x_write;
- othercases confusion ('Unknown built-in function')
-endcases;
-end
-@y
- n_write : x_write;
- n_is_kanji_str: x_is_kanji_str;
- othercases confusion ('Unknown built-in function')
-endcases;
-end
-@z
-
-@x Changes for JBibTeX by Shouichi Matsui [343]
-@<|execute_fn|({\.{write\$}})@>@;
-@<|execute_fn| itself@>
-@y
-@<|execute_fn|({\.{write\$}})@>@;
-@<|execute_fn|({\.{is.kanji.str\$}})@>@;
-@<|execute_fn| itself@>
-@z
-
-@x Changes for JBibTeX by Shouichi Matsui --- add.period$ for ver. 0.30
-case (str_pool[sp_ptr]) of
- period,
- question_mark,
- exclamation_mark :
- repush_string;
- othercases
- @<Add the |period| (it's necessary) and push@>
-@y
-case (str_pool[sp_ptr]) of
- period,
- question_mark,
- exclamation_mark :
- repush_string;
- zen_ten,
- zen_period,
- zen_question,
- zen_exclamation:
- if( str_pool[sp_ptr-1] = zen_pun_first ) then
- repush_string
- else
- @<Add the |period| (it's necessary) and push@>;
- othercases
- @<Add the |period| (it's necessary) and push@>
-@z
-
-@x x_chr_to_int
-else if (length(pop_lit1) <> 1) then
- begin
- print ('"');
- print_pool_str (pop_lit1);
- bst_ex_warn ('" isn''t a single character');
- push_lit_stk (0, stk_int);
- end
-else
- push_lit_stk (str_pool[str_start[pop_lit1]], stk_int);
- {push the (|ASCII_code|) integer}
-@y
-else if (length(pop_lit1) = multibytelen(str_pool[str_start[pop_lit1]])) then
- begin
- if (length(pop_lit1) = 1) then
- push_lit_stk(str_pool[str_start[pop_lit1]],stk_int)
- {push the (|ASCII_code|) integer}
- else
- push_lit_stk(toDVI(fromBUFF(str_pool, str_start[pop_lit1]+2, str_start[pop_lit1])),stk_int)
- { a KANJI char is 2byte long }
- end
-else
- begin
- print ('"');
- print_pool_str (pop_lit1);
- bst_ex_warn ('" isn''t a single character');
- push_lit_stk (0, stk_int);
- end
-@z
-
-@x by Shouichi Matsui for Zenkaku comma
-if (ex_buf_ptr < ex_buf_length) then {remove the ``and''}
- ex_buf_ptr := ex_buf_ptr - 4;
-@y
-if (ex_buf_ptr < ex_buf_length) then {remove the ``and'', or Zenkau comma}
- begin
- if( (ex_buf[ex_buf_ptr-1]=zen_comma) or (ex_buf[ex_buf_ptr-1]=zen_kuten) )
- then ex_buf_ptr := ex_buf_ptr - 2
- else ex_buf_ptr := ex_buf_ptr - 4;
- end;
-@z
-
-@x Changes for JBibTeX by Shouichi Matsui for Zenkaku comma
- "a", "A" :
- begin
- incr(ex_buf_ptr);
- if (preceding_white) then
- @<See if we have an ``and''@>; {if so, |and_found := true|}
- preceding_white := false;
- end;
-@y
- "a", "A" :
- begin
- incr(ex_buf_ptr);
- if (preceding_white) then
- @<See if we have an ``and''@>; {if so, |and_found := true|}
- preceding_white := false;
- end;
- zen_pun_first:
- begin
- if((ex_buf[ex_buf_ptr+1]=zen_comma) or
- (ex_buf[ex_buf_ptr+1]=zen_kuten) ) then
- begin
- preceding_white := false;
- and_found := true
- end
- else if(ex_buf[ex_buf_ptr+1]=zen_space) then
- begin
- ex_buf[ex_buf_ptr] := space;
- ex_buf[ex_buf_ptr+1] := space;
- preceding_white := true;
- end;
- ex_buf_ptr := ex_buf_ptr + 2;
- end;
-@z
-
-@x Changes for JBibTeX by Shouichi Matsui for Zenkaku comma[385]
- othercases
- if (lex_class[ex_buf[ex_buf_ptr]] = white_space) then
- begin
- incr(ex_buf_ptr);
- preceding_white := true;
- end
- else
- begin
- incr(ex_buf_ptr);
- preceding_white := false;
- end
- endcases;
-check_brace_level (pop_lit_var);
-end;
-@y
- othercases
- if (lex_class[ex_buf[ex_buf_ptr]] = white_space) then
- begin
- incr(ex_buf_ptr);
- preceding_white := true;
- end
- else
- begin
- if( ex_buf[ex_buf_ptr] > 127 ) then
- ex_buf_ptr := ex_buf_ptr +2
- else
- incr(ex_buf_ptr);
- preceding_white := false;
- end
- endcases;
-check_brace_level (pop_lit_var);
-end;
-@z
-
-@x Changes for JBibTeX by Shouichi Matsui [415]
- if (lex_class[name_buf[name_bf_ptr]] = alpha) then
- begin
- append_ex_buf_char_and_check (name_buf[name_bf_ptr]);
- goto loop_exit;
- end
- else if ((name_buf[name_bf_ptr] = left_brace) and
-@y
- if (lex_class[name_buf[name_bf_ptr]] = alpha) then
- begin
- if name_buf[name_bf_ptr]>127 then begin
- append_ex_buf_char_and_check (name_buf[name_bf_ptr]);
- incr(name_bf_ptr);
- append_ex_buf_char_and_check (name_buf[name_bf_ptr]);
- end
- else
- append_ex_buf_char_and_check (name_buf[name_bf_ptr]);
- goto loop_exit;
- end
- else if ((name_buf[name_bf_ptr] = left_brace) and
-@z
-
-@x x_int_to_chr
-procedure x_int_to_chr;
-begin
-pop_lit_stk (pop_lit1,pop_typ1);
-if (pop_typ1 <> stk_int) then
- begin
- print_wrong_stk_lit (pop_lit1,pop_typ1,stk_int);
- push_lit_stk (s_null, stk_str);
- end
-else if ((pop_lit1 < 0) or (pop_lit1 > 127)) then
- begin
- bst_ex_warn (pop_lit1:0,' isn''t valid ASCII');
- push_lit_stk (s_null, stk_str);
- end
-else
- begin
- str_room(1);
- append_char (pop_lit1);
- push_lit_stk (make_string, stk_str);
- end;
-end;
-@y
-procedure x_int_to_chr;
-var k:integer;
-begin
-pop_lit_stk (pop_lit1,pop_typ1);
-if (pop_typ1 <> stk_int) then
- begin
- print_wrong_stk_lit (pop_lit1,pop_typ1,stk_int);
- push_lit_stk (s_null, stk_str);
- end
-else begin
-k:=pop_lit1;
-if (pop_lit1 > 127) then k:=fromDVI(pop_lit1);
-if ((pop_lit1 < 0) or ((pop_lit1 > 127) and (k = 0))) then
- begin
- bst_ex_warn (pop_lit1:0,' isn''t valid character code');
- push_lit_stk (s_null, stk_str);
- end
-else
- begin
- str_room(2);
- if (pop_lit1>127) then begin
- append_char (Hi(k));
- append_char (Lo(k));
- end
- else
- append_char (pop_lit1);
- push_lit_stk (make_string, stk_str);
- end;
-end;
-end;
-@z
-
-@x Changes for JBibTeX by Shouichi Matsui [437]
-@<|execute_fn|({\.{substring\$}})@>=
-procedure x_substring;
-label exit;
-begin
-@y
-@<|execute_fn|({\.{substring\$}})@>=
-procedure x_substring;
-label exit;
-var tps,tpe:pool_pointer; {temporary pointer}
-@!pop_lit2_saved: integer;
-begin
-@z
-
-@x
-@<Form the appropriate substring@>=
-begin
-@y
-@<Form the appropriate substring@>=
-begin
-pop_lit2_saved := pop_lit2; {save before negate}
-@z
-
-@x Changes for JBibTeX by Shouichi Matsui [438] + fix (2022-02-20 j0.34)
-str_room(sp_end - sp_ptr);
-while (sp_ptr < sp_end) do {shift the substring}
- begin
- append_char (str_pool[sp_ptr]);
- incr(sp_ptr);
- end;
-@y
-{ 2 bytes Kanji code break check }
-tps:=str_start[pop_lit3];
-tpe:=tps;
-while tpe < str_start[pop_lit3+1] do begin
- if str_pool[tpe] > 127 then begin
- if str_start[pop_lit3+1] < tpe+2 then
- break;
- tpe := tpe + 2;
- end
- else begin
- if str_start[pop_lit3+1] < tpe+1 then
- break;
- tpe := tpe + 1;
- end;
- if tpe<=sp_ptr then
- tps := tpe;
- if sp_end<=tpe then break;
-end;
-if (pop_lit2_saved > 1) and (tps = str_start[pop_lit3])
- then tps := tps + 2; {truncate at least one}
-if (pop_lit2_saved < -1) and (tpe = str_start[pop_lit3+1])
- then tpe := tpe - 2; {truncate at least one}
-if tps > tpe then tpe := tps;
-sp_ptr := tps;
-sp_end := tpe;
-
-str_room(sp_end - sp_ptr);
-while (sp_ptr < sp_end) do {shift the substring}
- begin
- if str_pool[sp_ptr] >127 then begin
- append_char (str_pool[sp_ptr]); incr(sp_ptr);
- append_char (str_pool[sp_ptr]); incr(sp_ptr);
- end
- else begin
- append_char (str_pool[sp_ptr]); incr(sp_ptr);
- end;
- end;
-@z
-
-@x Changes for JBibTeX by Shouichi Matsui [445]
- else if (str_pool[sp_xptr1-1] = right_brace) then
- begin
- if (sp_brace_level > 0) then
- decr(sp_brace_level);
- end
- else
- incr(num_text_chars);
- end;
-@y
- else if (str_pool[sp_xptr1-1] = right_brace) then
- begin
- if (sp_brace_level > 0) then
- decr(sp_brace_level);
- end
- else if (str_pool[sp_xptr1-1]>127) then
- begin {kanji char}
- incr(sp_xptr1); num_text_chars:=num_text_chars+2;
- end
- else
- incr(num_text_chars);
- end;
-@z
-
-@x
-const n_options = 4; {Pascal won't count array lengths for us.}
-@y
-const n_options = 8; {Pascal won't count array lengths for us.}
-@z
-
-@x
- usage_help (BIBTEX_HELP, nil);
-@y
- usage_help (PBIBTEX_HELP, 'issue@@texjp.org');
-@z
-
-@x
- end; {Else it was a flag; |getopt| has already done the assignment.}
-@y
- end else if argument_is ('kanji') then begin
- if (not set_enc_string(optarg, nil)) then
- write_ln('Bad kanji encoding "', stringcast(optarg), '".');
-
- end else if argument_is ('guess-input-enc') then begin
- enable_guess_file_enc;
-
- end else if argument_is ('no-guess-input-enc') then begin
- disable_guess_file_enc;
-
- end; {Else it was a flag; |getopt| has already done the assignment.}
-@z
-
-@x
-long_options[current_option].name := 'version';
-long_options[current_option].has_arg := 0;
-long_options[current_option].flag := 0;
-long_options[current_option].val := 0;
-incr (current_option);
-@y
-long_options[current_option].name := 'version';
-long_options[current_option].has_arg := 0;
-long_options[current_option].flag := 0;
-long_options[current_option].val := 0;
-incr (current_option);
-
-@ Kanji option.
-@.-kanji@>
-
-@<Define the option...@> =
-long_options[current_option].name := 'kanji';
-long_options[current_option].has_arg := 1;
-long_options[current_option].flag := 0;
-long_options[current_option].val := 0;
-incr(current_option);
-long_options[current_option].name := 'guess-input-enc';
-long_options[current_option].has_arg := 0;
-long_options[current_option].flag := 0;
-long_options[current_option].val := 0;
-incr(current_option);
-long_options[current_option].name := 'no-guess-input-enc';
-long_options[current_option].has_arg := 0;
-long_options[current_option].flag := 0;
-long_options[current_option].val := 0;
-incr(current_option);
-@z
-
-@x
-begin kpse_set_program_name (argv[0], 'bibtex');
-@y
-begin kpse_set_program_name (argv[0], 'pbibtex');
-@z
-
-@x
- until j_prime;
- incr (k);
- hash_prime := j;
- primes[k] := hash_prime;
- end;
-end;
-
-@y
- until j_prime;
- incr (k);
- hash_prime := j;
- primes[k] := hash_prime;
- end;
-end;
-
-@ modules for JBibTeX
-
-@<|execute_fn|({\.{is.kanji.str\$}})@>=
-procedure x_is_kanji_str;
-label exit;
-begin
- pop_lit_stk(pop_lit1, pop_typ1);
- if pop_typ1<> stk_str then
- begin print_wrong_stk_lit(pop_lit1,pop_typ1,stk_str);
- push_lit_stk(0,stk_int);
- end else begin
- sp_ptr := str_start[pop_lit1];
- sp_end := str_start[pop_lit1+1];
- while sp_ptr<sp_end do begin
- if str_pool[sp_ptr]>127 then begin
- push_lit_stk(1,stk_int);
- return;
- end else begin
- incr(sp_ptr);
- end;
- end;
- push_lit_stk(0,stk_int);
- end;
-exit:end;
-@z
diff --git a/Build/source/texk/web2c/ptexdir/pbibtex.test b/Build/source/texk/web2c/ptexdir/pbibtex.test
deleted file mode 100755
index 322b021a6d2..00000000000
--- a/Build/source/texk/web2c/ptexdir/pbibtex.test
+++ /dev/null
@@ -1,53 +0,0 @@
-#! /bin/sh -vx
-# $Id$
-# Copyright 2022 Japanese TeX Development Community <issue@texjp.org>
-# Copyright 2017 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.
-
-test -d ptests || mkdir -p ptests
-rm -f ptests/xexampl.* ptests/xenc*.*
-
-rc=0
-
-./pbibtex -version || rc=100
-
-TEXMFCNF=$srcdir/../kpathsea
-BSTINPUTS=$srcdir/tests
-BIBINPUTS=$srcdir/tests
-export TEXMFCNF BSTINPUTS BIBINPUTS
-
-cp $srcdir/tests/exampl.aux ptests/xexampl.aux
-
-./pbibtex ptests/xexampl || rc=1
-diff $srcdir/tests/exampl.bbl ptests/xexampl.bbl || rc=2
-
-
-cp $srcdir/tests/enc.aux ptests/xenc.aux
-
-guess_input_kanji_encoding=1 ./pbibtex ptests/xenc || rc=3
-diff $srcdir/tests/enc-p.bbl ptests/xenc.bbl || rc=4
-
-
-cp $srcdir/tests/enc-e.aux ptests/xenc-e.aux
-
-guess_input_kanji_encoding=1 ./pbibtex -kanji=euc ptests/xenc-e || rc=5
-diff $srcdir/tests/enc-ep.bbl ptests/xenc-e.bbl || rc=6
-
-
-cp $srcdir/tests/enc-s.aux ptests/xenc-s.aux
-
-./pbibtex -guess-input-enc -kanji=sjis ptests/xenc-s || rc=7
-diff $srcdir/tests/enc-sp.bbl ptests/xenc-s.bbl || rc=8
-
-
-cp $srcdir/tests/enc-u.aux ptests/xenc-u0.aux
-
-./pbibtex -no-guess-input-enc ptests/xenc-u0 || rc=9
-diff $srcdir/tests/enc-up.bbl ptests/xenc-u0.bbl || rc=10
-./pbibtex -guess-input-enc ptests/xenc-u0 || rc=11
-diff $srcdir/tests/enc-up.bbl ptests/xenc-u0.bbl || rc=12
-
-
-exit $rc
-
diff --git a/Build/source/texk/web2c/ptexdir/pdvitype.ch b/Build/source/texk/web2c/ptexdir/pdvitype.ch
deleted file mode 100644
index 864d1c41ef7..00000000000
--- a/Build/source/texk/web2c/ptexdir/pdvitype.ch
+++ /dev/null
@@ -1,483 +0,0 @@
-% This is a change file for DVItype.
-%
-% 09/27/95 (KA) Supporting ASCII pTeX
-% 2020-08-24 (HY) Support \dtou
-%
-@x
-@d my_name=='dvitype'
-@d banner=='This is DVItype, Version 3.6' {printed when the program starts}
-@y
-@d my_name=='pdvitype'
-@d banner=='This is pDVItype, Version 3.6-p0.5'
- {printed when the program starts}
-@z
-
-@x
- parse_arguments;
-@y
- init_kanji;
- parse_arguments;
-@z
-
-@x
-for i:=@'177 to 255 do xchr[i]:='?';
-@y
-for i:=@'177 to 255 do xchr[i]:=i;
-@z
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% pTeX
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-@x
-@d undefined_commands==250,251,252,253,254,255
-@y
-@d dir=255 {pTeX direction}
-@d undefined_commands==250,251,252,253,254
-@z
-
-@x
-@d id_byte=2 {identifies the kind of \.{DVI} files described here}
-@y
-@d id_byte=2 {identifies the kind of \.{DVI} files described here}
-@d ptex_id_byte=3 {identifies the kind of pTeX \.{DVI} files described here}
-@z
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% JFM and pTeX
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-@x
-@!width_ptr:0..max_widths; {the number of known character widths}
-@y
-@!width_ptr:0..max_widths; {the number of known character widths}
-@!fnt_jfm_p:array [0..max_fonts] of boolean;
-@!jfm_char_code:array [0..max_widths] of integer;
-@!jfm_char_type:array [0..max_widths] of integer;
-@!jfm_char_font:array [0..max_widths] of integer;
-@!jfm_char_type_count:integer;
-@!cur_jfm_char_type:integer;
-
-@ @d jfm_hash_size=347
-
-@ @<Types...@>=
-@!jfm_char_type_hash_value=0..jfm_hash_size-1;
-
-@ @<Glob...@>=
-@!jfm_char_type_hash_table:array[jfm_char_type_hash_value] of integer;
- { first pointer to character information. 0 means null pointer. }
-@!jfm_char_type_hash_link:array[0..max_widths] of integer;
- { next pointer to character information. 0 means null pointer. }
-
-@ @<Set init...@>=
-for i:=0 to jfm_hash_size-1 do
- jfm_char_type_hash_table[i] := 0;
-jfm_char_type[0]:=0;
-jfm_char_type_count:=1;
-
-@ Refer char_type table.
-
-@p function get_jfm_char_type(@!fntn:integer;@!jfmc:integer):integer;
- var p:integer; ct:integer;
-begin
- p:=jfm_char_type_hash_table[(jfmc+fntn) mod jfm_hash_size];
- ct:=0; { default char_type is 0 }
- while p <> 0 do
- if (jfm_char_code[p] = jfmc) and (jfm_char_font[p] = fntn) then
- begin ct:=jfm_char_type[p]; p:=0; end
- else
- p:=jfm_char_type_hash_link[p];
- get_jfm_char_type:=ct;
-end;
-
-@ @<Glob...@>=
-@!ptex_p:boolean;
-@!dd:eight_bits;
-@!ddstack:array [0..stack_size] of eight_bits;
-@z
-
-@x
-@!lh:integer; {length of the header data, in four-byte words}
-@y
-@!lh:integer; {length of the header data, in four-byte words}
-@!nt:integer;
-@!jfm_h:integer;
-@z
-
-@x [35] JFM by K.A.
-read_tfm_word; lh:=b2*256+b3;
-@y
-read_tfm_word; lh:=b0*256+b1;
-if (lh = 11) or (lh = 9) then
- begin
- print(' (JFM');
- fnt_jfm_p[nf] := true;
- if lh = 9 then print(' tate');
- print(')');
- nt:=b2*256+b3;
- read_tfm_word;
- end
-else
- begin
- nt:=0;
- fnt_jfm_p[nf] := false;
- end;
-lh:=b2*256+b3;
-@z
-
-@x [35] JFM by K.A.
- tfm_design_size:=round(tfm_conv*(((b0*256+b1)*256+b2)*256+b3))
- else goto 9997;
- end;
-@y
- tfm_design_size:=round(tfm_conv*(((b0*256+b1)*256+b2)*256+b3))
- else goto 9997;
- end;
-for k:=1 to nt do
- begin
- read_tfm_word;
- jfm_char_code[jfm_char_type_count]:=b0*256+b1+b2*65536;
- jfm_char_type[jfm_char_type_count]:=b3;
- jfm_char_font[jfm_char_type_count]:=nf;
- jfm_h:= { hash value }
- (jfm_char_code[jfm_char_type_count]+nf) mod jfm_hash_size;
- jfm_char_type_hash_link[jfm_char_type_count]:=
- jfm_char_type_hash_table[jfm_h];
- jfm_char_type_hash_table[jfm_h]:=jfm_char_type_count;
- jfm_char_type_count := jfm_char_type_count + 1
- end;
-@z
-
-@x
-@p procedure out_text(c:ASCII_code);
-begin if text_ptr=line_length-2 then flush_text;
-incr(text_ptr); text_buf[text_ptr]:=c;
-end;
-@y
-@p procedure out_text(c:ASCII_code);
-begin if text_ptr=line_length-2 then flush_text;
-incr(text_ptr);
-if c>=177 then text_buf[text_ptr]:=@'77 else text_buf[text_ptr]:=c;
-end;
-
-@ @p procedure out_kanji(c:integer);
-begin
- if text_ptr>=line_length-3 then flush_text;
- c:=toBUFF(fromDVI(c));
- incr(text_ptr); text_buf[text_ptr]:= Hi(c);
- incr(text_ptr); text_buf[text_ptr]:= Lo(c);
-end;
-
-@ output hexdecimal / octal character code.
-
-@d print_hex_digit(#)==if # <= 9 then print((#):1)
- else case # of
- 10: print(xchr['A']);
- 11: print(xchr['B']);
- 12: print(xchr['C']);
- 13: print(xchr['D']);
- 14: print(xchr['E']);
- 15: print(xchr['F']); { no more cases }
- end
-
-@p
-ifdef('HEX_CHAR_CODE')
-procedure print_hex_number(c:integer);
-var n:integer;
- b:array[1..8] of integer;
-begin
- n:=1;
- while (n<8) and (c<>0) do
- begin b[n]:=c mod 16; c:=c div 16; n:=n+1 end;
- print('"');
- if n=1 then print(xchr['0'])
- else
- begin
- n:=n-1;
- while n>0 do
- begin print_hex_digit(b[n]); n:=n-1 end
- end
-end;
-endif('HEX_CHAR_CODE')
-@z
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% pTeX
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-@x
-z0: first_par:=z;
-@y
-z0: first_par:=z;
-dir: first_par:=get_byte;
-@z
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% pTeX
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-@x
-@!hhh:integer; {|h|, rounded to the nearest pixel}
-@y
-@!hhh,@!vvv:integer; {|h|,|v| rounded to the nearest pixel}
-@z
-
-@x
-s:=0; h:=0; v:=0; w:=0; x:=0; y:=0; z:=0; hh:=0; vv:=0;
-@y
-s:=0; h:=0; v:=0; w:=0; x:=0; y:=0; z:=0; hh:=0; vv:=0; dd:=0;
-@z
-
-@x
-move_right: @<Finish a command that sets |h:=h+q|, then |goto done|@>;
-@y
-move_right:
- if dd=0 then begin
- @<Finish a command that sets |h:=h+q|, then |goto done|@>;
- end else begin
- if dd=1 then p:=q else {if dd=3 then} p:=-q;
- @<Finish a command that sets |v:=v+p|, then |goto done|@>;
- end;
-@z
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% pTeX
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-@x
- four_cases(set1): begin major('set',o-set1+1:1,' ',p:1); goto fin_set;
- end;
- four_cases(put1): begin major('put',o-put1+1:1,' ',p:1); goto fin_set;
-@y
- four_cases(set1),four_cases(put1):
- begin
- if fnt_jfm_p[cur_font]=true then
- begin
- cur_jfm_char_type:=get_jfm_char_type(cur_font,p);
- out_kanji(p);
- if o<put1 then
- begin
- minor('set',o-set1+1:1,' ',p:1);
- end
- else begin
- minor('put',o-put1+1:1,' ',p:1);
- end;
-ifdef('HEX_CHAR_CODE')
- print('(');
- print_hex_number(p);
- print(')');
-endif('HEX_CHAR_CODE')
- print(' type=',cur_jfm_char_type);
- p:=cur_jfm_char_type
- end
- else begin
- if o<put1 then
- begin
- major('set',o-set1+1:1,' ',p:1);
- end
- else begin
- major('put',o-put1+1:1,' ',p:1);
- end;
-ifdef('HEX_CHAR_CODE')
- print('(');
- print_hex_number(p);
- print(')');
-endif('HEX_CHAR_CODE')
- end;
- goto fin_set;
-@z
-
-@x
- @t\4@>@<Cases for commands |nop|, |bop|, \dots, |pop|@>@;
-@y
- dir: begin
- if not ptex_p and (out_mode=the_works) then
- bad_dvi('dir command within normal dvi file');
- major('dir ',p:1); dd:=p; goto done;
- end;
- @t\4@>@<Cases for commands |nop|, |bop|, \dots, |pop|@>@;
-@z
-
-@x
-@!vvv:integer; {|v|, rounded to the nearest pixel}
-@y
-@!vvv,hhh:integer; {|v|,|h| rounded to the nearest pixel}
-@z
-
-@x
-move_down: @<Finish a command that sets |v:=v+p|, then |goto done|@>;
-@y
-move_down:
- if dd=0 then begin
- @<Finish a command that sets |v:=v+p|, then |goto done|@>;
- end else begin
- if dd=1 then q:=-p else {if dd=3 then} q:=p;
- @<Finish a command that sets |h:=h+q|, then |goto done|@>;
- end;
-@z
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% pTeX
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-@x
- hstack[s]:=h; vstack[s]:=v; wstack[s]:=w;
-@y
- ddstack[s]:=dd;
- hstack[s]:=h; vstack[s]:=v; wstack[s]:=w;
-@z
-
-@x
- h:=hstack[s]; v:=vstack[s]; w:=wstack[s];
-@y
- dd:=ddstack[s];
- h:=hstack[s]; v:=vstack[s]; w:=wstack[s];
-@z
-
-@x
-@d out_space(#)==if (p>=font_space[cur_font])or(p<=-4*font_space[cur_font]) then
- begin out_text(" "); hh:=pixel_round(h+p);
- end
- else hh:=hh+pixel_round(p);
-@y
-@d out_space(#)==if (p>=font_space[cur_font])or(p<=-4*font_space[cur_font]) then
- begin out_text(" ");
- if dd=0 then hh:=pixel_round(h+p)
- else if dd=1 then vv:=pixel_round(v+p)
- else {if dd=3 then} vv:=pixel_round(v-p);
- end
- else if dd=0 then hh:=hh+pixel_round(p)
- else if dd=1 then vv:=vv+pixel_round(p)
- else {if dd=3 then} vv:=vv-pixel_round(p);
-@z
-
-@x
-@d out_vmove(#)==if abs(p)>=5*font_space[cur_font] then vv:=pixel_round(v+p)
- else vv:=vv+pixel_round(p);
-@y
-@d out_vmove(#)==if abs(p)>=5*font_space[cur_font] then
- begin if dd=0 then vv:=pixel_round(v+p)
- else if dd=1 then hh:=pixel_round(h-p)
- else {if dd=3 then} hh:=pixel_round(h+p);
- end
- else if dd=0 then vv:=vv+pixel_round(p)
- else if dd=1 then hh:=hh-pixel_round(p)
- else {if dd=3 then} hh:=hh+pixel_round(p);
-@z
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Hexadecimal code
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-@x
-@ @<Translate a |set_char|...@>=
-begin if (o>" ")and(o<="~") then
- begin out_text(p); minor('setchar',p:1);
- end
-else major('setchar',p:1);
-@y
-@ @<Translate a |set_char|...@>=
-begin if (o>" ")and(o<="~") then
- begin out_text(p); minor('setchar',p:1);
- end
-else major('setchar',p:1);
-ifdef('HEX_CHAR_CODE')
- print(' (');
- print_hex_number(p);
- print(')');
-endif('HEX_CHAR_CODE')
-@z
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% pTeX
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-@x
-else hh:=hh+char_pixel_width(cur_font)(p);
-@y
-else if dd=0 then hh:=hh+char_pixel_width(cur_font)(p)
- else if dd=1 then vv:=vv+char_pixel_width(cur_font)(p)
- else {if dd=3 then} vv:=vv-char_pixel_width(cur_font)(p);
-@z
-
-@x
-hh:=hh+rule_pixels(q); goto move_right
-@y
-if dd=0 then hh:=hh+rule_pixels(q)
-else if dd=1 then vv:=vv+rule_pixels(q)
-else {if dd=3 then} vv:=vv-rule_pixels(q);
-goto move_right
-@z
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% pTeX
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-@x
- print('level ',ss:1,':(h=',h:1,',v=',v:1,
- ',w=',w:1,',x=',x:1,',y=',y:1,',z=',z:1,
- ',hh=',hh:1,',vv=',vv:1,')');
-@y
- begin
- print('level ',ss:1,':(h=',h:1,',v=',v:1,
- ',w=',w:1,',x=',x:1,',y=',y:1,',z=',z:1);
- if ptex_p then print(',d=',dd:1);
- print(',hh=',hh:1,',vv=',vv:1,')');
- end;
-@z
-
-@x
-if k<>id_byte then bad_dvi('ID byte is ',k:1);
-@y
-ptex_p:=(k=ptex_id_byte);
-if (k<>id_byte) and (not ptex_p) then bad_dvi('ID byte is ',k:1);
-@z
-
-@x
-print_ln(', maxstackdepth=',max_s:1,', totalpages=',total_pages:1);
-@y
-print_ln(', maxstackdepth=',max_s:1,', totalpages=',total_pages:1);
-if ptex_p then print_ln('pTeX DVI (id=',ptex_id_byte:1,')');
-@z
-
-@x
-if m<>id_byte then print_ln('identification in byte ',cur_loc-1:1,
-@.identification...should be n@>
- ' should be ',id_byte:1,'!');
-@y
-if (m<>id_byte) and (m<>ptex_id_byte) then
- print_ln('identification in byte ',cur_loc-1:1,
-@.identification...should be n@>
- ' should be ',id_byte:1,' or ',ptex_id_byte:1,'!');
-@z
-
-@x
-const n_options = 8; {Pascal won't count array lengths for us.}
-@y
-const n_options = 10; {Pascal won't count array lengths for us.}
-@z
-
-@x
- usage_help (DVITYPE_HELP, nil);
-@y
- usage_help (PDVITYPE_HELP, 'issue@@texjp.org');
-@z
-
-@x
- end; {Else it was a flag; |getopt| has already done the assignment.}
-@y
- end else if argument_is ('kanji') then begin
- set_prior_file_enc;
- if (not set_enc_string(optarg,optarg)) then begin
- write_ln('Bad kanji encoding "', stringcast(optarg), '".');
- end;
-
- end; {Else it was a flag; |getopt| has already done the assignment.}
-@z
-
-@x
-@ An element with all zeros always ends the list.
-@y
-@ Decide kanji encode
-@.-kanji@>
-
-@<Define the option...@> =
-long_options[current_option].name := 'kanji';
-long_options[current_option].has_arg := 1;
-long_options[current_option].flag := 0;
-long_options[current_option].val := 0;
-incr (current_option);
-
-@ An element with all zeros always ends the list.
-@z
diff --git a/Build/source/texk/web2c/ptexdir/pdvitype.test b/Build/source/texk/web2c/ptexdir/pdvitype.test
deleted file mode 100755
index a3a57ac066e..00000000000
--- a/Build/source/texk/web2c/ptexdir/pdvitype.test
+++ /dev/null
@@ -1,33 +0,0 @@
-#! /bin/sh -vx
-# $Id$
-# Copyright 2022 Japanese TeX Development Community <issue@texjp.org>
-# Copyright 2017 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.
-
-test -d ptests || mkdir -p ptests
-
-if tfmpath=`$KPSEWHICH cmbx10.tfm`; then
-
- TEXMFCNF=$srcdir/../kpathsea \
- TFMFONTS=`dirname "$tfmpath"` \
- ./pdvitype -show-opcodes $srcdir/tests/story >ptests/xstory.dvityp || exit 1
-
-fi
-
-TEXMFCNF=$srcdir/../kpathsea \
- TFMFONTS=$srcdir/tests \
- ./pdvitype --p=\*.\*.2 $srcdir/tests/pagenum.dvi >ptests/xpagenum.typ || exit 2
-
-
-TEXMFCNF=$srcdir/../kpathsea
-TFMFONTS=$srcdir/ptexdir/tests:$srcdir/tests
-export TEXMFCNF TFMFONTS
-
-for enc in utf8 jis; do
-for doc in ptex3 ptex4; do
- ./pdvitype -kanji=$enc $srcdir/ptexdir/tests/$doc.dvi >ptests/x$doc-$enc.typ || exit 3
- sed 1d ptests/x$doc-$enc.typ >ptests/x${doc}a-$enc.typ
- diff $srcdir/ptexdir/tests/${doc}a-$enc.typ ptests/x${doc}a-$enc.typ || exit 4
-done
-done
diff --git a/Build/source/texk/web2c/ptexdir/ppltotf.ch b/Build/source/texk/web2c/ptexdir/ppltotf.ch
deleted file mode 100644
index b7db0e67048..00000000000
--- a/Build/source/texk/web2c/ptexdir/ppltotf.ch
+++ /dev/null
@@ -1,710 +0,0 @@
-% This is a change file for PLtoTF
-%
-% (2018-01-27) HY pPLtoTF p2.0 - new JFM spec by texjporg
-% (07/18/2006) ST PLtoTF p1.8 (3.5, Web2c 7.2)
-% (11/13/2000) KN PLtoTF p1.4 (3.5, Web2c 7.2)
-% (03/27/1998) KN PLtoTF p1.3 (3.5, Web2c 7.2)
-%
-@x [0] l.52 - pTeX:
-\def\title{PL$\,$\lowercase{to}$\,$TF changes for C}
-@y
-\def\title{PL$\,$\lowercase{to}$\,$TF changes for C, and for KANJI}
-@z
-
-@x [2] l.69 - pTeX:
-@d my_name=='pltotf'
-@d banner=='This is PLtoTF, Version 3.6' {printed when the program starts}
-@y
-@d my_name=='ppltotf'
-@d banner=='This is pPLtoTF, Version 3.6-p2.0'
- {printed when the program starts}
-@z
-
-@x
- parse_arguments;
-@y
- init_kanji;
- parse_arguments;
-@z
-
-@x [6] l.140 - pTeX:
- print_ln (version_string);
-@y
- print_ln (version_string);
- print_ln ('process kanji code is ', conststringcast(get_enc_string), '.');
-@z
-
-@x [18] l.495 - pTeX:
-@!xord:array[char] of ASCII_code; {conversion table}
-@y
-@!xord:array[char] of ASCII_code; {conversion table}
-@!xchr:array[char] of byte; {specifiles conversion of output character}
-@z
-
-@x [19] l.506 - pTeX:
-for k:=first_ord to last_ord do xord[chr(k)]:=invalid_code;
-@y
-for k:=0 to @'37 do xchr[k]:='?';
-for k:=@'40 to 255 do xchr[k]:=k;
-for k:=first_ord to last_ord do xord[chr(k)]:=invalid_code;
-@z
-
-@x [28] l.619 - pTeX:
-else begin while (limit<buf_size-2)and(not eoln(pl_file)) do
- begin incr(limit); read(pl_file,buffer[limit]);
- end;
-@y
-else begin limit:=input_line2(pl_file,ustringcast(buffer),limit+1,buf_size-1)-1;
-@z
-
-@x [36] l.754 - pTeX: May have to increase some numbers to fit new commands
-@d max_name_index=88 {upper bound on the number of keywords}
-@d max_letters=600 {upper bound on the total length of all keywords}
-@y
-@d max_name_index=97 {upper bound on the number of keywords}
-@d max_letters=700 {upper bound on the total length of all keywords}
-@z
-
-@x [44] l.839 - pTeX: Add kanji related codes
-@d character_code=12
-@y
-@d character_code=12
-@d type_code=13 {|TYPE| property}
-@d glue_kern_code=14 {|GLUEKERN| property}
-@d chars_in_type_code=15 {|CHARSINTYPE| property}
-@d dir_code=16 {|DIRECTION| property}
-@z
-
-@x [44] l.856 - pTeX:
-@d lig_code=74
-@y
-@d lig_code=74
-@d glue_code=75 {|GLUE| property}
-@#
-@d undefined=0 {not decided file format yet}
-@d tfm_format=1 {\.{TFM} file format}
-@d jfm_or_vfm=2 {Yoko or Tate \.{JFM} file format}
-@d jfm_format=3 {Yoko-kumi \.{JFM} file format}
-@d vfm_format=4 {Tate-kumi \.{JFM} file format}
-@z
-
-@x [84] l.1542 - pTeX: Change valid property code.
-if cur_code=comment_code then skip_to_end_of_item
-else if cur_code>character_code then
- flush_error('This property name doesn''t belong on the outer level')
-@.This property name doesn't belong...@>
-@y
-if cur_code=comment_code then skip_to_end_of_item
-else if (cur_code>dir_code)or
- ((file_format=tfm_format)and(cur_code>character_code)) then
- flush_error('This property name doesn''t belong on the outer level')
-@.This property name doesn't belong...@>
-@z
-
-@x [85] l.1565 - pTeX: Added some property codes.
-character_code: read_char_info;
-@y
-character_code: read_char_info;
-type_code: read_kanji_info;
-glue_kern_code: read_glue_kern;
-chars_in_type_code: read_chars_in_type;
-dir_code: read_direction;
-@z
-
-@x [110] l.1915 - pTeX: there are no charlists in kanji format files.
-for c:=0 to 255 do
- @<Make sure that |c| is not the largest element of a charlist cycle@>;
-@y
-if file_format=tfm_format then
- for c:=0 to 255 do
- @<Make sure that |c| is not the largest element of a charlist cycle@>;
-@z
-
-@x [120] l.2037 - pTeX: when checking glue_kern prog check glues as well
- begin if lig_exam<>bchar then
- check_existence(lig_exam)('LIG character examined by');
-@.LIG character examined...@>
- check_existence(lig_gen)('LIG character generated by');
-@.LIG character generated...@>
- if lig_gen>=128 then if(c<128)or(c=256) then
- if(lig_exam<128)or(lig_exam=bchar) then seven_unsafe:=true;
- end
-@y
- begin if file_format=tfm_format then
- begin if lig_exam<>bchar then
- check_existence(lig_exam)('LIG character examined by');
-@.LIG character examined...@>
- check_existence(lig_gen)('LIG character generated by');
-@.LIG character generated...@>
- if lig_gen>=128 then if(c<128)or(c=256) then
- if(lig_exam<128)or(lig_exam=bchar) then seven_unsafe:=true;
- end
- else check_existence(lig_exam)('GLUE character generated by');
- end
-@z
-
-@x [126] l.2178 - pTeX: Fix up output of bytes.
-@<Doublecheck...@>=
-if nl>0 then for lig_ptr:=0 to nl-1 do
- if lig_kern[lig_ptr].b2<kern_flag then
- begin if lig_kern[lig_ptr].b0<255 then
- begin double_check_lig(b1)('LIG step'); double_check_lig(b3)('LIG step');
- end;
- end
- else double_check_lig(b1)('KRN step');
-@y
-@<Doublecheck...@>=
-@z
-
-@x [128] l.2207 - pTeX: Decide the |file_format|.
-@<Do the output@>=
-@y
-@<Do the output@>=
-case file_format of
-tfm_format: do_nothing;
-undefined,jfm_or_vfm: begin file_format:=jfm_format;
- print_ln('Input file is in kanji YOKO-kumi format.');
- end;
-jfm_format: print_ln('Input file is in kanji YOKO-kumi format.');
-vfm_format: print_ln('Input file is in kanji TATE-kumi format.');
-end;
-@z
-
-@x [128] l.2211 - pTeX: Output kanji character
-@<Output the character info@>;
-@y
-if file_format<>tfm_format then @<Output the kanji character type info@>;
-@<Output the character info@>;
-@z
-
-@x [128] l.2213 - pTeX: Output glue/kern programs
-@<Output the ligature/kern program@>;
-@y
-@<Output the ligature/kern program@>;
-if (file_format<>tfm_format)and(ng>0) then
- for krn_ptr:=0 to ng-1 do
- begin out_scaled(glue[3*krn_ptr+0]);
- out_scaled(glue[3*krn_ptr+1]);
- out_scaled(glue[3*krn_ptr+2]);
- end;
-@z
-
-@x [130] l.2238 - pTeX:
-not_found:=true; bc:=0;
-while not_found do
- if (char_wd[bc]>0)or(bc=255) then not_found:=false
- else incr(bc);
-not_found:=true; ec:=255;
-while not_found do
- if (char_wd[ec]>0)or(ec=0) then not_found:=false
- else decr(ec);
-if bc>ec then bc:=1;
-@y
-if file_format<>tfm_format then
- begin bc:=0; ec:=0; nt:=1;
- for kanji_type_index:=0 to max_kanji do
- begin if kanji_type[kanji_type_index]>0 then incr(nt);
- if kanji_type[kanji_type_index]>ec then ec:=kanji_type[kanji_type_index];
- end;
- end
-else begin not_found:=true; bc:=0;
- while not_found do
- if (char_wd[bc]>0)or(bc=255) then not_found:=false
- else incr(bc);
- not_found:=true; ec:=255;
- while not_found do
- if (char_wd[ec]>0)or(ec=0) then not_found:=false
- else decr(ec);
- if bc>ec then bc:=1;
- end;
-@z
-
-@x [130] l.2250 - pTeX:
-lf:=6+lh+(ec-bc+1)+memory[width]+memory[height]+memory[depth]+
-memory[italic]+nl+lk_offset+nk+ne+np;
-@y
-if file_format<>tfm_format then
- lf:=7+nt+lh+(ec-bc+1)+memory[width]+memory[height]+memory[depth]+
- memory[italic]+nl+lk_offset+nk+3*ng+np
-else
- lf:=6+lh+(ec-bc+1)+memory[width]+memory[height]+memory[depth]+
- memory[italic]+nl+lk_offset+nk+ne+np;
-@z
-
-@x [131] pTeX:
-@ @d out_size(#)==out((#) div 256); out((#) mod 256)
-@y
-@ @d out_size(#)==out((#) div 256); out((#) mod 256)
-@d out_kanji_code(#)==out_size((#) mod 65536); out((#) div 65536)
-@z
-
-@x [131] l.2256 - pTeX:
-out_size(lf); out_size(lh); out_size(bc); out_size(ec);
-out_size(memory[width]); out_size(memory[height]);
-out_size(memory[depth]); out_size(memory[italic]);
-out_size(nl+lk_offset); out_size(nk); out_size(ne); out_size(np);
-@y
-if file_format=jfm_format then
- begin out_size(yoko_id_number); out_size(nt);
- end
-else if file_format=vfm_format then
- begin out_size(tate_id_number); out_size(nt);
- end;
-out_size(lf); out_size(lh); out_size(bc); out_size(ec);
-out_size(memory[width]); out_size(memory[height]);
-out_size(memory[depth]); out_size(memory[italic]);
-out_size(nl+lk_offset); out_size(nk);
-if file_format<>tfm_format then begin out_size(ng*3)
- end
-else begin out_size(ne);
- end;
-out_size(np);
-@z
-
-@x [146] l.2476 - pTeX:
-@p procedure param_enter;
-@y
-@p
-@<Declare kanji scanning routines@>@/
-procedure param_enter;
-@z
-
-@x [146] l.2488 - pTeX: LIGTABLE command can not be used in JPL.
-begin @<Read ligature/kern list@>;
-end;
-@y
-begin @<If is jfm or vfm then print error@>;
-@<Read ligature/kern list@>;
-end;
-@z
-
-@x [146] l.2493 - pTeX: CHARACTER command can not be used in JPL.
-begin @<Read character info list@>;
-end;
-@y
-begin @<If is jfm or vfm then print error@>;
-@<Read character info list@>;
-end;
-@z
-
-@x [146] l.2506 - pTeX:
-begin @<Correct and check the information@>
-end;
-@y
-begin @<Correct and check the information@>
-end;
-@#
-procedure read_kanji_info; {TYPE command}
-var @!c:byte; {the char}
-begin @<If is tfm then print error@>;
-@<Read Kanji character type list@>;
-end;
-@#
-procedure read_glue_kern; {GLUEKERN command}
-var krn_ptr:0..max_kerns; {an index into |kern|}
-@!c:byte; {runs through all character codes}
-begin @<If is tfm then print error@>;
-@<Read glue/kern list@>;
-end;
-@#
-procedure read_chars_in_type; {CHARSINTYPE command}
-var @!type_num:byte; {kanji character type number}
-@!jis_code:integer; {sixteen bits Kanji character code}
-begin @<If is tfm then print error@>;
-@<Read Kanji characters list in this type@>;
-end;
-@#
-procedure read_direction; {DIRECTION command}
-begin @<If is tfm then print error@>;
-@<Read direction@>;
-end;
-@z
-
-@x
-const n_options = 3; {Pascal won't count array lengths for us.}
-@y
-const n_options = 5; {Pascal won't count array lengths for us.}
-@z
-
-@x
- usage_help (PLTOTF_HELP, nil);
-@y
- usage_help (PPLTOTF_HELP, 'issue@@texjp.org');
-@z
-
-@x
- end; {Else it was a flag; |getopt| has already done the assignment.}
-@y
- end else if argument_is ('kanji') then begin
- if (not set_enc_string(optarg,optarg)) then
- print_ln('Bad kanji encoding "', stringcast(optarg), '".');
-
- end; {Else it was a flag; |getopt| has already done the assignment.}
-@z
-
-@x
-@ An element with all zeros always ends the list.
-@y
-@ Kanji option.
-@.-kanji@>
-
-@<Define the option...@> =
-long_options[current_option].name := 'kanji';
-long_options[current_option].has_arg := 1;
-long_options[current_option].flag := 0;
-long_options[current_option].val := 0;
-incr(current_option);
-
-@ An element with all zeros always ends the list.
-@z
-
-@x [148] l.2620 - pTeX:
-@* Index.
-@y
-@* For Japanese Font Metric routines.
-We need to include some routines for handling kanji characters.
-
-@<Constants...@>=
-max_kanji=7237; { maximum number of 2byte characters }
-max_kanji_code=@"7E7E; { maximum jis code }
-yoko_id_number=11; { is identifier for YOKO-kumi font}
-tate_id_number=9; { is identifier for TATE-kumi font}
-
-@ @<Glob...@>=
-file_format:undefined..vfm_format; {the format of the input file}
-kanji_type:array[0..max_kanji] of -1..256; {the type of every kanji char }
-kanji_type_index:0..max_kanji; { index into above }
-nt:integer; {number of entries in character type table}
-glue:array[0..768] of fix_word; {the distinct glue amounts}
-ng:integer; {number of 3-word entries in glue table}
-
-@ @<Set init...@>=
-file_format:=undefined;
-for kanji_type_index:=0 to max_kanji do kanji_type[kanji_type_index]:=-1;
-ng:=0;
-
-@ @<If is jfm or vfm then print error@>=
-if file_format>tfm_format then
- err_print('This is an illegal command for kanji format files.')
-else if file_format=undefined then file_format:=tfm_format
-
-@ @<If is tfm then print error@>=
-if file_format=tfm_format then
- err_print('You can use this command only for kanji format files.')
-else if file_format=undefined then file_format:=jfm_or_vfm
-
-@ These are extended propaties for \.{JFM}.
-
-@<Enter all of the names and ...@>=
-load4("T")("Y")("P")("E")(type_code);@/
-load8("G")("L")("U")("E")("K")("E")("R")("N")(glue_kern_code);@/
-load11("C")("H")("A")("R")("S")("I")("N")("T")("Y")("P")("E")
- (chars_in_type_code);@/
-load9("D")("I")("R")("E")("C")("T")("I")("O")("N")(dir_code);@/
-load4("G")("L")("U")("E")(glue_code);@/
-
-@ @<Enter the parameter names@>=
-load10("E")("X")("T")("R")("A")("S")("P")("A")("C")("E")(parameter_code+7);@/
-load12("E")("X")("T")("R")("A")("S")("T")("R")("E")("T")("C")("H")
- (parameter_code+8);@/
-load11("E")("X")("T")("R")("A")("S")("H")("R")("I")("N")("K")
- (parameter_code+9);@/
-
-
-@ Here, we declare kanji related routines and package gluekern stuff.
-There routines a bit similar reading ligature/kern programs.
-
-@<Read glue/kern list@>=
-begin while level=1 do
- begin while cur_char=" " do get_next;
- if cur_char="(" then @<Read a glue/kern command@>
- else if cur_char=")" then skip_to_end_of_item
- else junk_error;
- end;
-finish_inner_property_list;
-end;
-
-@ @<Read a glue/kern command@>=
-begin get_name;
-if cur_code=comment_code then skip_to_end_of_item
-else begin case cur_code of
- label_code:@<Read a glue label step@>;
- stop_code:@<Read a stop step@>;
- skip_code:@<Read a skip step@>;
- krn_code:@<Read a (glue) kerning step@>;
- glue_code:@<Read a glue step@>;
- others:
- flush_error('This property name doesn''t belong in a GLUEKERN list');
-@.This property name doesn't belong...@>
- end;
- finish_the_property;
- end;
-end
-
-@ When a character is about to be tagged, we use the following
-so that an error message is given in case of multiple tags.
-
-@<Read a glue label step@>=
-begin c:=get_byte;
-case char_tag[c] of
- no_tag: do_nothing;
- lig_tag: err_print('This character already appeared in a GLUEKERN LABEL');
- @.This character already...@>
- list_tag: err_print('Impossible: a list tag in a kanji format file?');
- ext_tag: err_print('Impossible: an extensible tag in a kanji format file?');
-end;
-if nl>max_lig_steps then
- err_print('GLUEKERN with more than ',max_lig_steps,' commands cannot have further labels')
-@.GLUEKERN with more than...@>
-else begin char_tag[c]:=lig_tag; char_remainder[c]:=nl;
- lk_step_ended:=false;
- end;
-end
-
-@ @<Read a (glue) kerning step@>=
-begin lig_kern[nl].b0:=0; lig_kern[nl].b1:=get_byte;@/
-lig_kern[nl].b2:=kern_flag; kern[nk]:=get_fix; krn_ptr:=0;
-while kern[krn_ptr]<>kern[nk] do incr(krn_ptr);
-if krn_ptr=nk then
- begin if nk<max_kerns then incr(nk)
- else begin err_print('At most ',max_kerns,' different kerns are allowed');
-@.At most 5000 different kerns...@>
- krn_ptr:=max_kerns-1;
- end;
- end;
-lig_kern[nl].b3:=krn_ptr;
-if nl=max_lig_steps then
- err_print('GLUEKERN table should never exceed ',max_lig_steps,' LIG/KRN commands')
-@.GLUEKERN table should never...@>
-else incr(nl);
-lk_step_ended:=true;
-end
-
-@ @<Read a glue step@>=
-begin lig_kern[nl].b0:=0; lig_kern[nl].b1:=get_byte; lig_kern[nl].b2:=0;@/
-glue[3*ng+0]:=get_fix; glue[3*ng+1]:=get_fix; glue[3*ng+2]:=get_fix;
-krn_ptr:=0;
-while (glue[3*krn_ptr+0]<>glue[3*ng+0])or
- (glue[3*krn_ptr+1]<>glue[3*ng+1])or
- (glue[3*krn_ptr+2]<>glue[3*ng+2]) do incr(krn_ptr);
-if krn_ptr=ng then
- begin if ng<256 then incr(ng)
- else begin err_print('At most 256 different glues are allowed');
- krn_ptr:=255;
- end;
- end;
-lig_kern[nl].b3:=krn_ptr;
-if nl=max_lig_steps then
- err_print('GLUEKERN table should never exceed ',max_lig_steps,' GLUE/KRN commands')
-@.GLUEKERN table should never...@>
-else incr(nl);
-lk_step_ended:=true;
-end
-
-@ The |TYPE| command like |CHARACTER| command, but |TYPE| only use
-|CHARWD|, |CHARHT|, |CHARDP| and |CHARIT|
-
-@<Read Kanji character type list@>=
-begin c:=get_byte; {read the character type that is begin specified}
-if verbose then @<Print |c| in octal notation@>;
-while level=1 do
- begin while cur_char=" " do get_next;
- if cur_char="(" then @<Read a kanji property@>
- else if cur_char=")" then skip_to_end_of_item
- else junk_error;
- end;
-if char_wd[c]=0 then char_wd[c]:=sort_in(width,0); {legitimatize c}
-finish_inner_property_list;
-end;
-
-@ @<Read a kanji property@>=
-begin get_name;
-if cur_code=comment_code then skip_to_end_of_item
-else if (cur_code<char_wd_code)or(cur_code>char_ic_code) then
- flush_error('This property name doesn''t belong in a TYPE list')
-else begin case cur_code of
- char_wd_code: char_wd[c]:=sort_in(width,get_fix);
- char_ht_code: char_ht[c]:=sort_in(height,get_fix);
- char_dp_code: char_dp[c]:=sort_in(depth,get_fix);
- char_ic_code: char_ic[c]:=sort_in(italic,get_fix);
- end;@/
- finish_the_property;
- end;
-end
-
-@ Next codes used to get KANJI codes from \.{JPL} file.
-
-@<Read Kanji characters list in this type@>=
-begin type_num:=get_byte;
-if type_num=0 then
- skip_error('You cannot list the chars in type 0. It is the default type')
-else begin repeat jis_code:=get_kanji;
- if jis_code<0 then
- err_print('Illegal characters. I was expecting a jis code or character')
- else if jis_code=0 then { 0 signals |end_of_list| }
- do_nothing
- else if kanji_type[jis_to_index(jis_code)]>=0 then
- err_print('jis code ', jis_code:1, ' is already in type ',
- kanji_type[jis_to_index(jis_code)])
- else
- kanji_type[jis_to_index(jis_code)]:=type_num;
- until jis_code=0;
- skip_to_paren;
- end
-end
-
-@ Next codes read and check direction. We can not decide |file_format| of
-metric file whether for yoko-kumi or tate-kumi, until have scan |DIRECTION|
-property (|dir_code| command).
-
-@<Read direction@>=
-begin while cur_char=" " do get_next;
-if cur_char="T" then
- begin if verbose then print_ln('This is tatekumi format');
- file_format:=vfm_format;
- end
-else if cur_char="Y" then
- begin if verbose then print_ln('This is yokokumi format');
- file_format:=jfm_format;
- end
-else err_print('The dir value should be "TATE" or "YOKO"');
-skip_to_paren;
-end
-
-@ Next codes used to write |kanji_type| to \.{JFM}.
-In the original JFM spec by ASCII Corporation, |jis_code| and |char_type|
-were packed into upper (2~bytes) and lower (2~bytes) halfword respectively.
-However, |char_type| is allowed only 0..255,
-so the upper byte of lower halfword was always 0.
-
-In the new JFM spec by texjporg, |jis_code| ``XXyyzz'' is packed into
-first 3~bytes in the form ``yy zz XX'', and |char_type| is packed into
-remaining 1~byte. The new spec is effectively upper compatible with
-the original, and it allows |jis_code| larger than 0x10000 (not really
-useful for me \.{pPLtoTF} but necessary for \.{upPLtoTF}).
-
-@<Output the kanji character type info@>=
-begin out_size(0); out_size(0); { the default }
-for kanji_type_index:=0 to max_kanji do
- begin if kanji_type[kanji_type_index]>0 then
- begin out_kanji_code(index_to_jis(kanji_type_index));
- out(kanji_type[kanji_type_index]);
- if verbose then begin
- print('char index = ', kanji_type_index);
- print(' (jis ');
- print_jis_hex(index_to_jis(kanji_type_index));
- print(') is type ');
- print_octal(kanji_type[kanji_type_index]);
- write_ln('');
- end;
- end;
- end;
-end;
-
-@ We also need to define some routines which handling 2bytes characters.
-These routine is called from only |read_chars_in_type| command.
-
-The kanji jis code is taken from the |char_ext| and |char_code| values
-set by the user. The index into the |kanji_type| array is based on the
-kuten codes, with all unused codes removed and beginning at 0, not 0101.
-The |jis_to_index| is called from |chars_in_type| command.
-
-@<Declare kanji scanning routines@>=
-function get_next_raw:byte; {get next rawdata in buffer}
-begin while loc=limit do fill_buffer;
-incr(loc); get_next_raw:=buffer[loc];
-if multistrlen(ustringcast(buffer),loc+2,loc)=2 then cur_char:=" "
-else cur_char:=xord[buffer[loc]];
-end;
-@#
-function todig(@!ch:byte):byte; {convert character to number}
-begin if (ch>="A")and(ch<="F") then todig:=ch-"A"+10
-else if (ch>="0")and(ch<="9") then todig:=ch-"0"
-else begin skip_error('This expression is out of JIS-code encoding.');
- todig:=0;
- end;
-end;
-@#
-procedure print_jis_hex(jis_code:integer); {prints jiscode as four digits}
-var dig:array[0..3] of byte; {holds jis hex codes}
-i:byte; {index of array}
-begin dig[0]:=Hi(jis_code) div 16; dig[1]:=Hi(jis_code) mod 16;
-dig[2]:=Lo(jis_code) div 16; dig[3]:=Lo(jis_code) mod 16;
-for i:=0 to 3 do
- if dig[i]<10 then print(dig[i]) else
- case dig[i] of
- 10: print('A'); 11: print('B'); 12: print('C');
- 13: print('D'); 14: print('E'); 15: print('F');
- end;
-end;
-@#
-function valid_jis_code(cx:integer):boolean;
-var @!first_byte,@!second_byte:integer; { jis code bytes }
-begin valid_jis_code:=true;
-first_byte:=cx div @'400; second_byte:=cx mod @'400;
-if (first_byte<@"21)
- or((first_byte>@"28)and(first_byte<@"30))
- or(first_byte>@"74) then valid_jis_code:=false;
-if (second_byte<@"21)or(second_byte>@"7E) then valid_jis_code:=false;
-end;
-@#
-function jis_to_index(jis:integer):integer;
-var @!first_byte,@!second_byte:integer; { jis code bytes }
-begin
-first_byte:=jis div @'400 -@"21;
-second_byte:=jis mod @'400 -@"21;
-if first_byte<8 then
- jis_to_index:=first_byte*94+second_byte
-else { next |first_byte| start 16 }
- jis_to_index:=(first_byte-7)*94+second_byte;
-end;
-@#
-function index_to_jis(ix:integer):integer;
-begin if ix<=8*94-1 then
- index_to_jis:=(ix div 94 +@"21)*@'400+(ix mod 94 +@"21)
-else
- index_to_jis:=((ix+7*94) div 94 +@"21)*@'400+((ix+7*94) mod 94 +@"21);
-end;
-@#
-function get_kanji:integer; {get kanji character code}
-var @!ch:byte;
-@!cx,@!jis_code:integer; {sixteen bits kanji character code}
-begin repeat ch:=get_next_raw; {|ch| is rawdata in buffer}
-until ch<>' '; {skip the blanks before the kanji code}
-if ch=')' then
- begin decr(loc); jis_code:=0;
- end
-else if (ch='J')or(ch='j') then
- begin repeat ch:=get_next_raw;
- until ch<>' '; {skip the blanks after the type code}
- @<Scan a Kanji hexadecimal code@>;
- jis_code:=toDVI(fromJIS(cx)); cur_char:=ch;
- if not valid_jis_code(jis_code) then
- err_print('jis code ', jis_code:1, ' is invalid');
- end
-else if multistrlen(ustringcast(buffer), loc+2, loc)=2 then
- begin jis_code:=toDVI(fromBUFF(ustringcast(buffer), loc+2, loc));
- incr(loc); cur_char:=" ";
- if not valid_jis_code(jis_code) then
- err_print('jis code ', jis_code:1, ' is invalid');
- end
-else jis_code:=-1;
-get_kanji:=jis_code;
-end;
-
-@ @<Scan a Kanji hex...@>=
-begin cx:=todig(xord[ch]);
- incr(loc); ch:=xord[buffer[loc]];
- while ((ch>="0")and(ch<="9"))or((ch>="A")and(ch<="F")) do
- begin cx:=cx*16+todig(ch); {overflow might happen, but rare...}
- incr(loc); ch:=xord[buffer[loc]];
- end;
- decr(loc); ch:=xord[buffer[loc]];
- if cx>max_kanji_code then
- begin skip_error('This value shouldn''t exceed jis code');
- cx:=0; ch:=" ";
- end;
-end
-
-@* Index.
-@z
diff --git a/Build/source/texk/web2c/ptexdir/ppltotf.test b/Build/source/texk/web2c/ptexdir/ppltotf.test
deleted file mode 100755
index 095ff59916a..00000000000
--- a/Build/source/texk/web2c/ptexdir/ppltotf.test
+++ /dev/null
@@ -1,10 +0,0 @@
-#! /bin/sh -vx
-# $Id$
-# Copyright 2017 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.
-
-test -d ptests || mkdir -p ptests
-
-./ppltotf -verbose $srcdir/tests/cmr10 ptests/xcmr10 || exit 1
-
diff --git a/Build/source/texk/web2c/ptexdir/ptftopl.ch b/Build/source/texk/web2c/ptexdir/ptftopl.ch
deleted file mode 100644
index d8d1a9789d5..00000000000
--- a/Build/source/texk/web2c/ptexdir/ptftopl.ch
+++ /dev/null
@@ -1,538 +0,0 @@
-% This is a change file for TFtoPL
-%
-% (2018-01-27) HY pTFtoPL p2.0 - new JFM spec by texjporg
-% (07/18/2006) ST TFtoPL p1.7 (3.1, Web2c 7.2)
-% (03/27/1998) KN TFtoPL p1.4 (3.1, Web2c 7.2)
-%
-@x [0] l.45 - pTeX:
-\def\title{TF\lowercase{to}PL changes for C}
-@y
-\def\title{TF\lowercase{to}PL changes for C, and for KANJI}
-@z
-
-@x [2] l.64 - pTeX:
-@d my_name=='tftopl'
-@d banner=='This is TFtoPL, Version 3.3' {printed when the program starts}
-@y
-@d my_name=='ptftopl'
-@d banner=='This is pTFtoPL, Version 3.3-p2.0'
- {printed when the program starts}
-@z
-
-@x [2] l.91 - pTeX:
-procedure initialize; {this procedure gets things started properly}
-@y
-procedure initialize; {this procedure gets things started properly}
-var @!k:integer; {all-purpose initiallization index}
-@z
-
-@x [2] l.97 - pTeX:
- tfm_file_array := xmalloc_array (byte, 1002);
-@y
- tfm_file_array := xmalloc_array (byte, 1002 + 4);
-@z
-
-@x
- parse_arguments;
-@y
- init_kanji;
- parse_arguments;
-@z
-
-@x [7] l.149 - pTeX:
- print_ln (version_string);
-@y
- print_ln (version_string);
- print_ln ('process kanji code is ', conststringcast(get_enc_string), '.');
-@z
-
-@x [18.20] l.438 - pTeX:
-@d index == index_type
-@y
-@d index == index_type
-@d yoko_id_byte = 11 {id byte for YOKO-kumi kanji tfm files}
-@d tate_id_byte = 9 {id byte for TATE-kumi kanji tfm files}
-@d tfm_format = 1 {normal tfm formated metric files}
-@d jfm_format = 2 {jfm formated metric files for YOKO-kumi kanji}
-@d vfm_format = 3 {vfm formated metric files for TATE-kumi kanji}
-@z
-
-@x [18.20] l.448 - pTeX:
-@!tfm_file_array: ^byte; {the input data all goes here}
-@y
-@!tfm_file_array: ^byte; {the input data all goes here}
-@!file_format:tfm_format..vfm_format; {format of tfm file}
-@!nt:0..@'77777; {number of words in the character type table}
-@!ng:0..@'77777; {number of words in the glue table}
-@z
-
-@x [20] l.434 - pTeX: Read JFM header
-read(tfm_file,tfm[1]); lf:=tfm[0]*@'400+tfm[1];
-@y
-read(tfm_file,tfm[1]); lf:=tfm[0]*@'400+tfm[1];
-if lf=yoko_id_byte then
- begin file_format:=jfm_format;
- print_ln('Input file is in YOKO-kumi kanji tfm format.');
- write_ln(pl_file,'(COMMENT THIS IS A KANJI FORMAT FILE)');
- end
-else if lf=tate_id_byte then
- begin file_format:=vfm_format;
- print_ln('Input file is in TATE-kumi kanji tfm format.');
- write_ln(pl_file,'(COMMENT THIS IS A KANJI FORMAT FILE)');
- write_ln(pl_file,'(DIRECTION TATE)');
- end
-else file_format:=tfm_format;
-if file_format=tfm_format then
- begin nt:=0; tmp_ptr:=2;
- end
-else
- begin if eof(tfm_file) then abort('The input file is only two bytes long!');
- read(tfm_file,tfm[2]);
- if eof(tfm_file) then abort('The input file is only three bytes long!');
- read(tfm_file,tfm[3]); nt:=tfm[2]*@'400+tfm[3];
- if eof(tfm_file) then abort('The input file is only four bytes long!');
- read(tfm_file,tfm[4]);
- if eof(tfm_file) then abort('The input file is only five bytes long!');
- if tfm[4]>127 then abort('The fifth byte of the input file exceeds 127!');
- read(tfm_file,tfm[5]); lf:=tfm[4]*@'400+tfm[5];
- tmp_ptr:=6;
- end;
-@z
-
-@x [20] l.445 - pTeX: put the rest of the file into tfm[6] and after
-for tfm_ptr:=2 to 4*lf-1 do
-@y
-for tfm_ptr:=tmp_ptr to 4*lf-1 do
-@z
-
-@x [21] l.468 - pTeX: the location of subfile sizes is different
-begin tfm_ptr:=2;@/
-@y
-begin
-if file_format<>tfm_format then
- begin tfm_ptr:=6; check_sum_value:=28;
- end
-else
- begin tfm_ptr:=2; check_sum_value:=24;
- end;
-@z
-
-@x [21] l.485 - pTeX: ng has to be treated specially
-if (bc>ec+1)or(ec>255) then abort('The character code range ',
-@.The character code range...@>
- bc:1,'..',ec:1,' is illegal!');
-if (nw=0)or(nh=0)or(nd=0)or(ni=0) then
- abort('Incomplete subfiles for character dimensions!');
-@.Incomplete subfiles...@>
-if ne>256 then abort('There are ',ne:1,' extensible recipes!');
-@.There are ... recipes@>
-if lf<>6+lh+(ec-bc+1)+nw+nh+nd+ni+nl+nk+ne+np then
- abort('Subfile sizes don''t add up to the stated total!');
-@.Subfile sizes don't add up...@>
-@y
-case file_format of
-tfm_format: begin
- if (bc>ec+1)or(ec>255) then abort('The character code range ',
-@.The character code range...@>
- bc:1,'..',ec:1,' is illegal!');
- if (nw=0)or(nh=0)or(nd=0)or(ni=0) then
- abort('Incomplete subfiles for character dimensions!');
-@.Incomplete subfiles...@>
- if ne>256 then abort('There are ',ne:1,' extensible recipes!');
-@.There are ... recipes@>
- if lf<>6+lh+(ec-bc+1)+nw+nh+nd+ni+nl+nk+ne+np then
- abort('Subfile sizes don''t add up to the stated total!');
-@.Subfile sizes don't add up...@>
- end;
-jfm_format,vfm_format: begin ng:=ne;
- if (bc>ec+1)or(ec>255)or(bc<>0) then abort('The character code range ',
-@.The character code range...@>
- bc:1,'..',ec:1,' is illegal!');
- if (nw=0)or(nh=0)or(nd=0)or(ni=0) then
- abort('Incomplete subfiles for character dimensions!');
-@.Incomplete subfiles...@>
- if lf<>7+nt+lh+(ec-bc+1)+nw+nh+nd+ni+nl+nk+ng+np then
- abort('Sum of subfile sizes (',
- 7+nt+lh+(ec-bc+1)+nw+nh+nd+ni+nl+nk+ng+np:1,
- ') is not equal to the stated total ', lf:1);
-@.Subfile sizes don't add up...@>
- end;
-end;
-@z
-
-@x [23] l.506 - pTeX: declare type_base.
-@!char_base,@!width_base,@!height_base,@!depth_base,@!italic_base,
-@!lig_kern_base,@!kern_base,@!exten_base,@!param_base:integer;
- {base addresses for the subfiles}
-@y
-@!char_base,@!width_base,@!height_base,@!depth_base,@!italic_base,
-@!lig_kern_base,@!kern_base,@!exten_base,@!param_base:integer;
-@!type_base,@!glue_base:integer; {base addresses for the subfiles}
-@!check_sum_value:integer; {either 24 (normal case) or 28 (kanji case)}
-@z
-
-@x [24] l.510 - pTeX: define type_base
-@ @<Compute the base addresses@>=
-begin char_base:=6+lh-bc;
-@y
-@ @<Compute the base addresses@>=
-begin
-if file_format<>tfm_format then
- begin type_base:=7+lh;
- char_base:=type_base+nt-bc; { bc should be zero ...}
- end
-else char_base:=6+lh-bc;
-@z
-
-@x [24] l.517 - pTeX: define glue_base
-kern_base:=lig_kern_base+nl;
-exten_base:=kern_base+nk;
-param_base:=exten_base+ne-1;
-@y
-kern_base:=lig_kern_base+nl;
-exten_base:=kern_base+nk;
-glue_base:=exten_base;
-param_base:=exten_base+ne-1;
-@z
-
-@x [25] l.529 - pTeX: must change check_sum from macro (=24) to variable
-@d check_sum=24
-@d design_size=check_sum+4
-@d scheme=design_size+4
-@d family=scheme+40
-@d random_word=family+20
-@y
-@d check_sum==check_sum_value
-@d design_size==check_sum+4
-@d scheme==design_size+4
-@d family==scheme+40
-@d random_word==family+20
-@z
-
-@x [25] l.549 - pTeX: add definition of glue macro
-@d kern(#)==4*(kern_base+#) {here \#\ is an index, not a character}
-@y
-@d kern(#)==4*(kern_base+#) {here \#\ is an index, not a character}
-@d glue(#)==4*(glue_base+#) {likewise}
-@z
-
-@x [57] l.982 - pTeX: SEVENBITSAFEFLAG
-if (lh>17) and (tfm[random_word]>127) then
-@y
-if (lh>17) and (tfm[random_word]>127) and (file_format=tfm_format) then
-@z
-
-@x [63] l.1003 - pTeX: Name of parameter for kanji-font
-else if (i<=13)and(font_type=mathex) then
- if i=8 then out('DEFAULTRULETHICKNESS')
- else out('BIGOPSPACING',i-8:1)
-else out('PARAMETER D ',i:1)
-@y
-else if (i<=13)and(font_type=mathex) then
- if i=8 then out('DEFAULTRULETHICKNESS')
- else out('BIGOPSPACING',i-8:1)
-else if (i<=9)and(file_format<>tfm_format) then
- if i=8 then out('EXTRASTRETCH')
- else out('EXTRASHRINK')
-else out('PARAMETER D ',i:1)
-@z
-
-@x [64] l.1027 - pTeX: Add printing of newline at end of program
-if nk>0 then for i:=0 to nk-1 do check_fix(kern(i))('Kern');
-@.Kern n is too big@>
-@y
-if nk>0 then for i:=0 to nk-1 do check_fix(kern(i))('Kern');
-@.Kern n is too big@>
-if file_format<>tfm_format then
- begin if ng>0 then for i:=0 to ng-1 do check_fix(glue(i))('Glue');
-@.Glue n is too big@>
- end;
-@z
-
-@x [68] l.1068 - pTeX: we print GLUEKERN instead of LIGTABLE
- begin left; out('LIGTABLE'); out_ln;@/
-@y
- begin left;
- if file_format<>tfm_format then out('GLUEKERN') else out('LIGTABLE');
- out_ln;@/
-@z
-
-@x [69] l.1090 - pTeX: we print Glue/kern instead of Ligature/kern
- print('Ligature/kern starting index for character '); print_octal(c);
- print_ln(' is too large;'); print_ln('so I removed it.'); reset_tag(c);
-@.Ligature/kern starting index...@>
-@y
- case file_format of
- tfm_format: print('Ligature/kern ');
-@.Ligature/kern starting index...@>
- jfm_format,vfm_format: print('Glue/kern ');
-@.Glue/kern starting index...@>
- end;
- print('starting index for character '); print_octal(c);
- print_ln(' is too large;'); print_ln('so I removed it.'); reset_tag(c);
-@z
-
-@x [76] l.1179 - pTeX: if kanji format, output a glue step not a ligature step
-else @<Output a ligature step@>;
-@y
-else if file_format<>tfm_format then @<Output a glue step@>
-else @<Output a ligature step@>;
-@z
-
-@x [78] l.1238 - pTeX:
-for c:=bc to ec do if width_index(c)>0 then
-@y
-for c:=bc to ec do
-if width_index(c)=0 then
- begin if file_format<>tfm_format then
- bad('width index of type ',c:1,' is zero!!')
- end
-else if width_index(c)>0 then
-@z
-
-@x [78] l.1246 - pTeX: the 'character' table is really the 'type' table
- left; out('CHARACTER'); out_char(c); out_ln;
-@y
- left;
- if file_format<>tfm_format then
- begin out('TYPE'); tfm[0]:=c; out_octal(0,1);
- end
- else
- begin out('CHARACTER'); out_char(c);
- end;
- out_ln;
-@z
-
-@x [78] l.1251 - pTeX: types can only have tags equal to 0 or 1
- case tag(c) of
- no_tag: do_nothing;
- lig_tag: @<Output the applicable part of the ligature/kern
- program as a comment@>;
- list_tag: @<Output the character link unless there is a problem@>;
- ext_tag: @<Output an extensible character recipe@>;
- end; {there are no other cases}
- right;
- end
-@y
- case tag(c) of
- no_tag: do_nothing;
- lig_tag: @<Output the applicable part of the ligature/kern
- program as a comment@>;
- list_tag: if file_format<>tfm_format then
- bad('the tag of type ',c:1,' must be 0 or 1')
- else @<Output the character link unless there is a problem@>;
- ext_tag: if file_format<>tfm_format then
- bad('the tag of type ',c:1,' must be 0 or 1')
- else @<Output an extensible character recipe@>;
- end; {there are no other cases}
- right;
- end
-@z
-
-@x [96] l.1539 - pTeX:
-var tfm_ptr:index; {an index into |tfm|}
-@y
-var tfm_ptr,tmp_ptr:index; {an index into |tfm|}
-@z
-
-@x [98] l.1566 - pTeX: declare kanji conversion subroutines and externals
-@p begin initialize;@/
-@y
-@p
-@<declare kanji conversion functions@>;
-begin initialize;@/
-@z
-
-@x [99] l.1570 - pTeX: don't check extensible recipes and list the char_type table
-@<Check the extensible recipes@>;
-@y
-if file_format<>tfm_format then
- begin @<list |char_type| table@>;
- end
-else
- begin @<Check the extensible recipes@>;
- end;
-@z
-
-@x
-const n_options = 4; {Pascal won't count array lengths for us.}
-@y
-const n_options = 6; {Pascal won't count array lengths for us.}
-@z
-
-@x
- usage_help (TFTOPL_HELP, nil);
-@y
- usage_help (PTFTOPL_HELP, 'issue@@texjp.org');
-@z
-
-@x
- end; {Else it was a flag; |getopt| has already done the assignment.}
-@y
- end else if argument_is ('kanji') then begin
- if (not set_enc_string(optarg,optarg)) then
- print_ln('Bad kanji encoding "', stringcast(optarg), '".');
-
- end; {Else it was a flag; |getopt| has already done the assignment.}
-@z
-
-@x
-@ An element with all zeros always ends the list.
-@y
-@ Kanji option.
-@.-kanji@>
-
-@<Define the option...@> =
-long_options[current_option].name := 'kanji';
-long_options[current_option].has_arg := 1;
-long_options[current_option].flag := 0;
-long_options[current_option].val := 0;
-incr(current_option);
-
-@ An element with all zeros always ends the list.
-@z
-
-@x [99] l.1751 - pTeX:
-@* Index.
-@y
-@* For Japanese Font Metric routines. % pTeX:
-We need to include some routines for handling kanji character.
-
-@d max_kanji=7237 {number of the kanji characters - 1}
-
-@<Glob...@>=
-@!this_code:integer; {to hold jis code of the current kanji character}
-@!this_type:integer; {to hold |char_type| of the current kanji character}
-@!type_index:integer; {index into |char_type| table}
-@!type_num:integer; {index into |char_info| table}
-@!type_count:integer; {number of chars with the same type}
-@!kanji_index:integer; {index into |kanji_type| array}
-@!kanji_type:array[0..max_kanji] of -1..255; {kanji type index}
-
-@ @<Output a glue step@>=
-begin if nonexistent(tfm[k+1]) then
- correct_bad_char('Glue step for')(k+1)
-@.Glue step for nonexistent...@>
-else
- begin left; out('GLUE'); out_char(tfm[k+1]);
- if 3*tfm[k+3]>=ng then
- begin bad('Glue index too large.');
-@.Glue index too large@>
- out(' R 0.0 R 0.0 R 0.0');
- end
- else begin out_fix(glue(3*tfm[k+3]));
- out_fix(glue(3*tfm[k+3]+1));
- out_fix(glue(3*tfm[k+3]+2));
- end;
- right;
- end;
-end
-
-@ list the |char_type| table in a similar way to the type table.
-The code is based on the new JFM spec by texjporg.
-
-@d char_type(#)==4*(type_base+#) {here \#\ is an index, not a character}
-@d JIS_code(#)==tfm[char_type(#)+0]*@'400+tfm[char_type(#)+1]+tfm[char_type(#)+2]*@'400*@'400 {JIS code from |char_type| table}
-@d JIS_type(#)==tfm[char_type(#)+3] {JIS type from |char_type| table}
-
-@<list |char_type| table@>=
-this_code:=JIS_code(0);
-this_type:=JIS_type(0);
-if (this_code<>0)or(this_type<>0) then
- begin bad('the first entry in char_type is not zero. I''ll zero it.');
- print_ln('JIS code is ', this_code:1, '. Type is ', this_type:1, '.');
- end;
-for kanji_index:=0 to max_kanji do kanji_type[kanji_index]:=-1;
-for type_index:=1 to nt-1 do
- begin this_code:=JIS_code(type_index);
- this_type:=JIS_type(type_index);
- if not valid_jis_code(this_code) then
- bad('jis code ', this_code:1,
- ' in char_type table entry ', type_index:1,
- ' is not valid. Ignoring it.')
- else if (this_type <= 0) or (this_type > ec) then
- bad('type ', this_type:1, ' of jis code ', this_code:1,
- ' in char_type table is not valid. Ignoring character.')
- else
- kanji_type[jis_to_index(this_code)] := this_type;
- end;
-@#
-for type_num:=1 to ec do
- begin left; out('CHARSINTYPE');
- tfm[0]:=type_num; out_octal(0,1);
- type_count:=0;
- for kanji_index:=0 to max_kanji do
- if kanji_type[kanji_index]=type_num then
- begin if (type_count mod 10)=0 then out_ln else out(' ');
- incr(type_count);
- out_kanji(index_to_jis(kanji_index));
- end;
- if type_count=0 then bad('type ', type_num:1, ' has no characters in it!');
- out_ln; right;
- end;
-
-@ Some subroutines to handle kanji codes and i/o
-
-@<Globals...@>=
-@!xchr:array[char] of byte; {specifiles conversion of output charcter}
-
-@ @<Set init...@>=
-for k:=@'0 to @'37 do xchr[k]:='?';
-for k:=@'40 to 255 do xchr[k]:=k;
-
-@ @<declare kanji conversion functions@>=
-procedure out_kanji(jis_code:integer); { prints a kanji character }
-var @!cx:integer; {KANJI code}
-i:0..3; {index of array}
-begin@/
-if (charcode_format=charcode_octal)or(jis_code<128) then
- begin cx:=jis_code; out('J '); {specify jiscode format}
- dig[0]:=Hi(cx) div 16; dig[1]:=Hi(cx) mod 16;
- dig[2]:=Lo(cx) div 16; dig[3]:=Lo(cx) mod 16;
- for i:=0 to 3 do
- if dig[i]<10 then out(dig[i]) else
- case dig[i] of
- 10: out('A'); 11: out('B'); 12: out('C');
- 13: out('D'); 14: out('E'); 15: out('F');
- end;
- end
-else begin
- cx:=toBUFF(fromDVI(jis_code));
- out(xchr[Hi(cx)]); out(xchr[Lo(cx)]);
- end;
-end;
-
-@ @<declare kanji conversion functions@>=
-function valid_jis_code(cx:integer):boolean;
-var first_byte, second_byte:integer; { jis code bytes }
-begin valid_jis_code:=true;
-first_byte:=cx div @'400; second_byte:=cx mod @'400;
-if (first_byte<@"21)
- or((first_byte>@"28)and(first_byte<@"30))
- or(first_byte>@"74) then valid_jis_code:=false;
-if (second_byte<@"21)or(second_byte>@"7E) then valid_jis_code:=false;
-end;
-
-@ @<declare kanji conversion functions@>=
-function index_to_jis(ix:integer):integer;
-begin
-if ix<=8*94-1 then
- index_to_jis:=(ix div 94 + @"21) * @'400 + (ix mod 94 + @"21)
-else
- index_to_jis:=((ix+7 * 94) div 94 + @"21) * @'400 + ((ix+7*94) mod 94 + @"21);
-end;
-
-@ @<declare kanji conversion functions@>=
-function jis_to_index(cx:integer):integer;
-var first_byte,second_byte:integer; { jis code bytes }
-begin
-first_byte:=cx div @'400 - @"21;
-second_byte:=cx mod @'400 - @"21;
-if first_byte<8 then
- jis_to_index:=first_byte*94+second_byte
-else
- jis_to_index:=(first_byte-7)*94+second_byte;
-end
-
-@* Index.
-@z
diff --git a/Build/source/texk/web2c/ptexdir/ptftopl.test b/Build/source/texk/web2c/ptexdir/ptftopl.test
deleted file mode 100755
index e13d960b427..00000000000
--- a/Build/source/texk/web2c/ptexdir/ptftopl.test
+++ /dev/null
@@ -1,11 +0,0 @@
-#! /bin/sh -vx
-# $Id$
-# Copyright 2017 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.
-
-test -d ptests || mkdir -p ptests
-
-TEXMFCNF=$srcdir/../kpathsea \
- ./ptftopl -verbose $srcdir/tests/cmr10 ptests/xcmr10 || exit 1
-
diff --git a/Build/source/texk/web2c/ptexdir/sample.test b/Build/source/texk/web2c/ptexdir/sample.test
deleted file mode 100755
index 51831fd4f4f..00000000000
--- a/Build/source/texk/web2c/ptexdir/sample.test
+++ /dev/null
@@ -1,23 +0,0 @@
-#! /bin/sh -vx
-# $Id$
-# Copyright 2017-2020 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.
-
-test -d ptests || mkdir -p ptests
-
-tfmpath=`$KPSEWHICH cmbx10.tfm` || exit 77
-
-tfmparent=`dirname "$tfmpath"`
-tfmgrandparent=`dirname "$tfmparent"`
-
-# Test inputs
-testdir=$srcdir/ptexdir/tests
-
-TEXMFCNF=$srcdir/../kpathsea \
- TFMFONTS=$testdir:`dirname "$tfmgrandparent"`// \
- ./pdvitype -show-opcodes $testdir/sample >ptests/xsample.typ || exit 1
-
-sed 1d ptests/xsample.typ >ptests/xsamplea.typ
-diff $testdir/samplea.typ ptests/xsamplea.typ || exit 1
-
diff --git a/Build/source/texk/web2c/ptexdir/skipjfmp.test b/Build/source/texk/web2c/ptexdir/skipjfmp.test
deleted file mode 100755
index dee7c206db0..00000000000
--- a/Build/source/texk/web2c/ptexdir/skipjfmp.test
+++ /dev/null
@@ -1,23 +0,0 @@
-#! /bin/sh -vx
-# $Id$
-# Copyright 2018-2022 Japanese TeX Development Community <issue@texjp.org>
-# Copyright 2018 Karl Berry <tex-live@tug.org>
-# You may freely use, modify and/or distribute this file.
-
-test -d ptests || mkdir -p ptests
-
-# Test inputs
-testdir=$srcdir/ptexdir/tests
-
-# Testing pPLtoTF/pTFtoPL for SKIP property in GLUEKERN.
-for font in skipjfmp; do
-
- ./ppltotf -verbose $testdir/$font.pl ptests/x$font.tfm && \
- cmp $testdir/$font.tfm ptests/x$font.tfm && echo || exit 1
-
- TEXMFCNF=$srcdir/../kpathsea \
- ./ptftopl -charcode-format octal -verbose $testdir/$font.tfm ptests/x$font.pl && \
- diff $testdir/$font.pl ptests/x$font.pl && echo || exit 1
-
-done
-
diff --git a/Build/source/texk/web2c/ptexdir/yokotate.test b/Build/source/texk/web2c/ptexdir/yokotate.test
deleted file mode 100755
index 81fcc415759..00000000000
--- a/Build/source/texk/web2c/ptexdir/yokotate.test
+++ /dev/null
@@ -1,53 +0,0 @@
-#! /bin/sh -vx
-# $Id$
-# Copyright 2022 Japanese TeX Development Community <issue@texjp.org>
-# Copyright 2017 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.
-
-test -d ptests || mkdir -p ptests
-
-TEXMFCNF=$srcdir/../kpathsea
-export TEXMFCNF
-
-# Test inputs
-testdir=$srcdir/ptexdir/tests
-
-# Testing pPLtoTF/pTFtoPL for min10 (yoko=horiz) and tmin10 (tate=vert).
-for font in min10 tmin10; do
-
- ./ppltotf -verbose $testdir/$font.pl ptests/x$font.tfm && \
- cmp $testdir/$font.tfm ptests/x$font.tfm && echo || exit 1
-
- ./ptftopl -charcode-format octal -verbose $testdir/$font.tfm ptests/x$font.pl && \
- diff $testdir/$font.pl ptests/x$font.pl && echo || exit 2
-
-done
-
-
-# Testing pPLtoTF/pTFtoPL for character range & encoding.
-for font in chcode; do
-
- ./ppltotf $testdir/$font.pl ptests/x$font.tfm && \
- cmp $testdir/$font.tfm ptests/x$font.tfm && echo || exit 3
-
- ./ptftopl -charcode-format octal $testdir/$font.tfm ptests/x$font.pl && \
- diff $testdir/$font.pl ptests/x$font.pl && echo || exit 4
-
-for enc in utf8 euc sjis jis; do
-
- ./ppltotf -kanji=$enc $testdir/$font-$enc.pl ptests/x$font-$enc.tfm && \
- cmp $testdir/$font.tfm ptests/x$font-$enc.tfm && echo || exit 5
-
- ./ptftopl -kanji=$enc $testdir/$font.tfm ptests/x$font-$enc.pl && \
- if [ $enc = utf8 ]; then \
- perl -i".orig" -CD -pe "use utf8; tr/―~∥-¢£¬/—〜‖−¢£¬/" ptests/x$font-$enc.pl; fi && \
- diff $testdir/$font-$enc.pl ptests/x$font-$enc.pl && echo || exit 6
-
- if [ $enc = utf8 ]; then
- ./ppltotf -kanji=$enc ptests/x$font-$enc.pl.orig ptests/x$font-$enc.tfm && \
- cmp $testdir/$font.tfm ptests/x$font-$enc.tfm && echo || exit 7
- fi
-
-done
-done