summaryrefslogtreecommitdiff
path: root/Build
diff options
context:
space:
mode:
authorPeter Breitenlohner <peb@mppmu.mpg.de>2009-09-17 07:36:47 +0000
committerPeter Breitenlohner <peb@mppmu.mpg.de>2009-09-17 07:36:47 +0000
commitec1b55e58ef1767afd329c2e44ebdea8fe502f89 (patch)
treeadfc94d7e4701db4efd00e929bd152d74d90d531 /Build
parentf83ff5e42379a04ed7d13704e1baff7ef5cedb81 (diff)
Version 1.12 of omegaware font programs
git-svn-id: svn://tug.org/texlive/trunk@15332 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build')
-rw-r--r--Build/source/texk/web2c/omegaware/ChangeLog31
-rw-r--r--Build/source/texk/web2c/omegaware/ofm2opl.ch4
-rw-r--r--Build/source/texk/web2c/omegaware/ofm2opl.web42
-rw-r--r--Build/source/texk/web2c/omegaware/opl2ofm.ch19
-rw-r--r--Build/source/texk/web2c/omegaware/opl2ofm.web11
-rw-r--r--Build/source/texk/web2c/omegaware/ovf2ovp.ch46
-rw-r--r--Build/source/texk/web2c/omegaware/ovf2ovp.web40
-rw-r--r--Build/source/texk/web2c/omegaware/ovp2ovf.ch17
-rw-r--r--Build/source/texk/web2c/omegaware/ovp2ovf.web12
-rw-r--r--Build/source/texk/web2c/pdftexdir/ChangeLog1
10 files changed, 180 insertions, 43 deletions
diff --git a/Build/source/texk/web2c/omegaware/ChangeLog b/Build/source/texk/web2c/omegaware/ChangeLog
index 72ad7e03905..d541601ab3a 100644
--- a/Build/source/texk/web2c/omegaware/ChangeLog
+++ b/Build/source/texk/web2c/omegaware/ChangeLog
@@ -1,3 +1,34 @@
+2009-09-17 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * ofm2opl.web, opl2ofm.web, ovf2ovp.web, ovp2ovf.web: Use correct
+ 8-bit italic index for ofm_level=0 as in C versions and engines.
+
+2009-09-13 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * ofm2opl.web, ovf2ovp.web: Check for ofm_level<=1.
+ Bugfix: ensure that ofm2opl and ovf2ovp can read TFM files.
+ Handle the seven_bit_safe_flag of TFM files as TFtoPL/VFtoVP do.
+ Add newline after '...WAS BAD, SO THE DATA HAS BEEN CHANGED!'
+
+2009-09-11 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ Version 1.12 (September 2009) of OFM2OPL & Co.
+
+ * opl2ofm.web, ovp2ovf.web: Accept NATURALFONTDIR as alias for
+ NFONTDIR for compatibility with omegafonts (C) versions.
+
+2009-09-05 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * ovf2ovp.ch (ASCII04 etc.): Declare as const_c_string.
+ (vf_input, organize, do_map): Eliminate unused labels.
+ * ofm2opl.ch (ASCII04 etc.): Declare as const_c_string.
+ * opl2ofm.ch: Define char (used as array index) as 0..255.
+ (ASCII04 etc.): Declare as const_c_string.
+ (read_lig_kern): Eliminate unused variables.
+ * ovp2ovf.ch: Define char (used as array index) as 0..255.
+ (HEX): Declare as const_c_string.
+ (read_lig_kern): Eliminate unused variables.
+
2009-07-15 Peter Breitenlohner <peb@mppmu.mpg.de>
* specialhex.test (new): Shell script to test specials.
diff --git a/Build/source/texk/web2c/omegaware/ofm2opl.ch b/Build/source/texk/web2c/omegaware/ofm2opl.ch
index 4b99c98d152..0ec25dd3792 100644
--- a/Build/source/texk/web2c/omegaware/ofm2opl.ch
+++ b/Build/source/texk/web2c/omegaware/ofm2opl.ch
@@ -165,10 +165,10 @@ if 4*lf-1>tfm_size then abort('The file is bigger than I can handle!');
@!MBL_string,@!RI_string,@!RCE_string:packed array [1..3] of char;
{handy string constants for |face| codes}
@y
-@!ASCII_04,@!ASCII_10,@!ASCII_14,HEX: c_string;
+@!ASCII_04,@!ASCII_10,@!ASCII_14,HEX: const_c_string;
{strings for output in the user's external character set}
@!ASCII_all: packed array[0..256] of char;
-@!MBL_string,@!RI_string,@!RCE_string: c_string;
+@!MBL_string,@!RI_string,@!RCE_string: const_c_string;
{handy string constants for |face| codes}
@z
diff --git a/Build/source/texk/web2c/omegaware/ofm2opl.web b/Build/source/texk/web2c/omegaware/ofm2opl.web
index d18931fd3a9..7ad21791472 100644
--- a/Build/source/texk/web2c/omegaware/ofm2opl.web
+++ b/Build/source/texk/web2c/omegaware/ofm2opl.web
@@ -21,6 +21,8 @@
% Version 3.1 (November 1989) renamed z[] to lig_z[] for better portability.
% Version 1.0 of OFM2OPL (December 1995) allows one to read OFM files.
+% Version 1.11 (February 2000).
+% Version 1.12 (September 2009) various bug fixes by Peter Breitenlohner.
% Here is TeX material that gets inserted after \input webmac
\def\hang{\hangindent 3em\indent\ignorespaces}
@@ -39,7 +41,7 @@
\vfill
\centerline{\titlefont The {\ttitlefont OFM2OPL} processor}
\vskip 15pt
- \centerline{(Version 1.11, February 2000)}
+ \centerline{(Version 1.12, September 2009)}
\vfill}
\def\botofcontents{\vfill
\centerline{\hsize 5in\baselineskip9pt
@@ -81,7 +83,7 @@ and \.{OPL} files.
The |banner| string defined here should be changed whenever \.{OFM2OPL}
gets modified.
-@d banner=='This is OFM2OPL, Version 1.11'
+@d banner=='This is OFM2OPL, Version 1.12'
@ This program is written entirely in standard \PASCAL, except that
it occasionally has lower case letters in strings that are output.
@@ -195,7 +197,7 @@ This is called BigEndian order.
@<Glob...@>=
@!ofm_level,
@!nco,@!ncw,@!npc,@!nki,@!nwi,@!nkf,@!nwf,@!nkr,@!nwr,@!nkg,@!nwg,@!nkp,@!nwp,
-@!nkm,@!nwm,@!real_lf,
+@!nkm,@!nwm,@!real_lf,@!nlw,@!neew,
@!lf,@!lh,@!bc,@!ec,@!nw,@!nh,@!nd,@!ni,@!nl,@!nk,@!ne,@!np,@!font_dir:integer;
{subfile sizes}
@!ofm_on:boolean;
@@ -497,7 +499,11 @@ if lf=0 then begin
read(tfm_file, tfm[i]);
end;
ofm_on := true; ofm_level := tfm[2]*@"100+tfm[3];
+ if ofm_level>1 then
+ abort('OFMLEVEL ',ofm_level:1,' not supported, must be 0 or 1!');
+@.OFMLEVEL...must be 0 or 1@>
if tfm[4]>127 then abort('The fifth byte of the input file exceeds 127!');
+@.The fifth byte...@>
lf := tfm[4]*@"1000000 + tfm[5]*@"10000 + tfm[6]*@"100 + tfm[7];
end
else
@@ -563,6 +569,8 @@ if not ofm_on then begin
eval_two_bytes(ne);
eval_two_bytes(np);
ncw:=(ec-bc+1);
+ nlw:=nl;
+ neew:=ne;
header_length:=6;
top_char:=255;
top_width:=255;
@@ -584,6 +592,8 @@ else begin
eval_four_bytes(ne);
eval_four_bytes(np);
eval_four_bytes(font_dir);
+ nlw:=2*nl;
+ neew:=2*ne;
top_char:=65535;
top_width:=65535;
top_height:=255;
@@ -612,13 +622,13 @@ else begin
eval_four_bytes(nwp); {Words of font penalties}
end;
end;
-if lf<>(header_length+lh+ncw+nw+nh+nd+ni+2*nl+nk+2*ne+np+
+if lf<>(header_length+lh+ncw+nw+nh+nd+ni+nlw+nk+neew+np+
nki+nwi+nkf+nwf+nkm+nwm+nkr+nwr+nkg+nwg+nkp+nwp) then
abort('Subfile sizes don''t add up to the stated total!');
@.Subfile sizes don't add up...@>
if lh<2 then abort('The header length is only ',lh:1,'!');
@.The header length...@>
-if (2*nl)>(4*lig_size) then
+if nl>4*lig_size then
abort('The lig/kern program is longer than I can handle!');
@.The lig/kern program...@>
if (bc>ec+1)or(ec>top_char) then abort('The character code range ',
@@ -698,9 +708,9 @@ height_base:=width_base+nw;
depth_base:=height_base+nh;
italic_base:=depth_base+nd;
lig_kern_base:=italic_base+ni;
-kern_base:=lig_kern_base+2*nl;
+kern_base:=lig_kern_base+nlw;
exten_base:=kern_base+nk;
-param_base:=exten_base+2*ne-1;
+param_base:=exten_base+neew-1;
end
@ Of course we want to define macros that suppress the detail of how the
@@ -743,8 +753,6 @@ end;
function italic_index(c:char_type):integer;
begin if not ofm_on then
italic_index:=tfm[char_info(c)+2] div 4
-else if ofm_level=0 then
- italic_index:=tfm[char_info(c)+4]*64 + tfm[char_info(c)+5] div 4
else
italic_index:=tfm[char_info(c)+4];
end;
@@ -1341,9 +1349,15 @@ the \.{TFM} file; the stated value is merely put into the \.{PL} file.
The \.{PLtoTF} program will store a correct value and give a warning
message if a file falsely claims to be safe.
+\.{OFM} files are assumed to be seven-bit-unsafe.
+
@<Output the |seven_bit_safe_flag|@>=
-begin left; out('SEVENBITSAFEFLAG FALSE'); right;
-end
+if ofm_on then
+ begin left; out('SEVENBITSAFEFLAG FALSE'); right;
+ end
+else if (lh>17) and (tfm[random_word]>127) then
+ begin left; out('SEVENBITSAFEFLAG TRUE'); right;
+ end
@ The next thing to take care of is the list of parameters.
@@ -1756,7 +1770,7 @@ for clabel_runner:=0 to 256 do
@ @<Output any labels...@>=
while i=label_table[sort_ptr].rr do begin
- if not label_table[sort_ptr].ischar then begin
+ if label_table[sort_ptr].cc<>xmax_char and not label_table[sort_ptr].ischar then begin
if not output_clabels[label_table[sort_ptr].cc] then begin
output_clabels[label_table[sort_ptr].cc]:=true;
left;
@@ -2303,8 +2317,10 @@ do_characters; print_ln('.');@/
if level<>0 then print_ln('This program isn''t working!');
@.This program isn't working@>
if not perfect then
- out('(COMMENT THE OFM FILE WAS BAD, SO THE DATA HAS BEEN CHANGED!)');
+ begin out('(COMMENT THE OFM FILE WAS BAD, SO THE DATA HAS BEEN CHANGED!)');
@.THE OFM FILE WAS BAD...@>
+ write_ln(pl_file);
+ end;
final_end:end.
@* System-dependent changes.
diff --git a/Build/source/texk/web2c/omegaware/opl2ofm.ch b/Build/source/texk/web2c/omegaware/opl2ofm.ch
index d4b4b372b14..6fee355c5e4 100644
--- a/Build/source/texk/web2c/omegaware/opl2ofm.ch
+++ b/Build/source/texk/web2c/omegaware/opl2ofm.ch
@@ -86,6 +86,13 @@ packed file of bytes. It's no problem in C.
rewritebin (tfm_file, tfm_name);
@z
+@x [18] Pascal Web's char
+@d first_ord=0 {ordinal number of the smallest element of |char|}
+@y
+@d char == 0..255
+@d first_ord=0 {ordinal number of the smallest element of |char|}
+@z
+
@x [79] `index' might be a library routine.
|k|th element of its list.
@y
@@ -107,10 +114,10 @@ if verbose then @<Print |c| in hex notation@>;
@!MBL_string,@!RI_string,@!RCE_string:packed array [1..3] of char;
{handy string constants for |face| codes}
@y
-@!ASCII_04,@!ASCII_10,@!ASCII_14,HEX: c_string;
+@!ASCII_04,@!ASCII_10,@!ASCII_14,HEX: const_c_string;
{strings for output in the user's external character set}
@!ASCII_all: packed array[0..256] of char;
-@!MBL_string,@!RI_string,@!RCE_string: c_string;
+@!MBL_string,@!RI_string,@!RCE_string: const_c_string;
{handy string constants for |face| codes}
@z
@@ -217,7 +224,13 @@ begin if fabs(x/design_units)>=16.0 then begin
while label_table[sort_ptr].rr>intcast(char_remainder[c]) do begin
@z
-@x [147] Be quiet unless verbose.
+@x [170] Eliminate unused variables.
+var @!krn_ptr:0..max_kerns; {an index into |kern|}
+@!c:integer; {runs through all character codes}
+@y
+@z
+
+@x [147?] Be quiet unless verbose.
read_input; print('.');@/
@y
read_input;
diff --git a/Build/source/texk/web2c/omegaware/opl2ofm.web b/Build/source/texk/web2c/omegaware/opl2ofm.web
index df91a25dfee..529c4afbb36 100644
--- a/Build/source/texk/web2c/omegaware/opl2ofm.web
+++ b/Build/source/texk/web2c/omegaware/opl2ofm.web
@@ -27,6 +27,8 @@
% Version 1.0 of OPL2OFM (March 1997) allows one to read OPL files
% and generate OFM files.
+% Version 1.11 (February 2000).
+% Version 1.12 (September 2009) various bug fixes by Peter Breitenlohner.
% Here is TeX material that gets inserted after \input webmac
\def\hang{\hangindent 3em\indent\ignorespaces}
@@ -47,7 +49,7 @@
\vfill
\centerline{\titlefont The {\ttitlefont OPL2OFM} processor}
\vskip 15pt
- \centerline{(Version 1.11, February 2000)}
+ \centerline{(Version 1.12, September 2009)}
\vfill}
\def\botofcontents{\vfill
\centerline{\hsize 5in\baselineskip9pt
@@ -82,7 +84,7 @@ apply to the \.{OPLtoOFM} program and to \.{OFM} and \.{OPL} files.
The |banner| string defined here should be changed whenever \.{OPLtoOFM}
gets modified.
-@d banner=='This is OPL2OFM, Version 1.11'
+@d banner=='This is OPL2OFM, Version 1.12'
@ This program is written entirely in standard \PASCAL, except that
it has to do some slightly system-dependent character code conversion
@@ -1131,6 +1133,8 @@ load4("C")("K")("R")("N")(ckrn_code);@/
load8("O")("F")("M")("L")("E")("V")("E")("L")(ofm_level_code);@/
load7("F")("O")("N")("T")("D")("I")("R")(font_dir_code);@/
load8("N")("F")("O")("N")("T")("D")("I")("R")(n_font_dir_code);@/
+load14("N")("A")("T")("U")("R")("A")("L")("F")("O")("N")("T")("D")("I")("R")(n_font_dir_code);
+ {compatibility with \.{omegafonts} (\.{C}) version}
load10("C")("H")("A")("R")("R")("E")("P")("E")("A")("T")(char_repeat_code);@/
load10("C")("H")("A")("R")("I")("V")("A")("L")("U")("E")(char_ivalue_code);@/
load10("C")("H")("A")("R")("F")("V")("A")("L")("U")("E")(char_fvalue_code);@/
@@ -3068,7 +3072,7 @@ case ofm_level of
0: begin
out(index[char_wd[c]] div 256); out(index[char_wd[c]] mod 256);
out(index[char_ht[c]]); out(index[char_dp[c]]);
- out(index[char_ic[c]] div 64);out((index[char_ic[c]] mod 64)*4+char_tag[c]);
+ out(index[char_ic[c]]); out(char_tag[c]);
out(char_remainder[c] div 256); out(char_remainder[c] mod 256);
end;
1: begin
@@ -3093,7 +3097,6 @@ case ofm_level of
end;
end;
-
@ When a scaled quantity is output, we may need to divide it by |design_units|.
The following subroutine takes care of this, using floating point arithmetic
only if |design_units<>1.0|.
diff --git a/Build/source/texk/web2c/omegaware/ovf2ovp.ch b/Build/source/texk/web2c/omegaware/ovf2ovp.ch
index 167509717ac..9bc7054d2b8 100644
--- a/Build/source/texk/web2c/omegaware/ovf2ovp.ch
+++ b/Build/source/texk/web2c/omegaware/ovf2ovp.ch
@@ -239,11 +239,11 @@ cur_name[r] := 0; {Append null byte since this is C.}
@!MBL_string,@!RI_string,@!RCE_string:packed array [1..3] of char;
{handy string constants for |face| codes}
@y
-@!ASCII_04,@!ASCII_10,@!ASCII_14,HEX: c_string;
+@!ASCII_04,@!ASCII_10,@!ASCII_14,HEX: const_c_string;
{strings for output in the user's external character set}
@!ASCII_all: packed array[0..256] of char;
@!xchr:packed array [0..255] of char;
-@!MBL_string,@!RI_string,@!RCE_string: c_string;
+@!MBL_string,@!RI_string,@!RCE_string: const_c_string;
{handy string constants for |face| codes}
@z
@@ -308,7 +308,7 @@ f:=((tfm[k+1] mod 16)*@'400+tfm[k+2])*@'400+tfm[k+3];
f:=((tfm[k+1] mod 16)*intcast(@'400)+tfm[k+2])*@'400+tfm[k+3];
@z
-% [100] No progress reports unless verbose.
+% [101] No progress reports unless verbose.
@x
incr(chars_on_line);
end;
@@ -450,7 +450,45 @@ sixty_four_cases(set_char_0),sixty_four_cases(set_char_0+64),
(These cases moved outside the case statement, section 124.)
@z
-@x [134] No final newline unless verbose.
+@x [132] Eliminate the |final_end| and |exit| labels.
+label final_end, exit;
+@y
+@z
+@x
+vf_input:=true; return;
+final_end: vf_input:=false;
+exit: end;
+@y
+vf_input:=true;
+end;
+@z
+@x
+label final_end, exit;
+@y
+@z
+@x
+organize:=vf_input; return;
+final_end: organize:=false;
+exit: end;
+@y
+organize:=vf_input;
+end;
+@z
+
+@x [134] Eliminate the |final_end| and |exit| labels.
+label final_end,exit;
+@y
+@z
+@x
+do_map:=true; return;
+final_end: do_map:=false;
+exit:end;
+@y
+do_map:=true;
+end;
+@z
+
+@x [135] No final newline unless verbose.
print_ln('.');@/
@y
if verbose then print_ln('.');@/
diff --git a/Build/source/texk/web2c/omegaware/ovf2ovp.web b/Build/source/texk/web2c/omegaware/ovf2ovp.web
index 2e2e374dca5..9a6615c477e 100644
--- a/Build/source/texk/web2c/omegaware/ovf2ovp.web
+++ b/Build/source/texk/web2c/omegaware/ovf2ovp.web
@@ -10,6 +10,10 @@
% Version 1.1 fixed problems of strict Pascal (April 1990).
% Version 1.2 fixed various bugs found by Peter Breitenlohner (September 1990).
+% Version 1.0 of OVF2OVP (Month Year).
+% Version 1.11 (February 2000).
+% Version 1.12 (September 2009) various bug fixes by Peter Breitenlohner.
+
% Here is TeX material that gets inserted after \input webmac
\def\hang{\hangindent 3em\indent\ignorespaces}
\font\ninerm=cmr9
@@ -27,7 +31,7 @@
\vfill
\centerline{\titlefont The {\ttitlefont OVF2OVP} processor}
\vskip 15pt
- \centerline{(Version 1.11, February 2000)}
+ \centerline{(Version 1.12, September 2009)}
\vfill}
\def\botofcontents{\vfill
\centerline{\hsize 5in\baselineskip9pt
@@ -62,7 +66,7 @@ called \.{AMFtoXPL}.
The |banner| string defined here should be changed whenever \.{VFtoVP}
gets modified.
-@d banner=='This is OVF2OVP, Version 1.11' {printed when the program starts}
+@d banner=='This is OVF2OVP, Version 1.12' {printed when the program starts}
@ This program is written entirely in standard \PASCAL, except that
it occasionally has lower case letters in strings that are output.
@@ -340,7 +344,7 @@ This is called BigEndian order.
@<Glob...@>=
@!ofm_level,
@!nco,@!ncw,@!npc,@!nki,@!nwi,@!nkf,@!nwf,@!nkr,@!nwr,@!nkg,@!nwg,@!nkp,@!nwp,
-@!nkm,@!nwm,@!real_lf,
+@!nkm,@!nwm,@!real_lf,@!nlw,@!neew,
@!lf,@!lh,@!bc,@!ec,@!nw,@!nh,@!nd,@!ni,@!nl,@!nk,@!ne,@!np,@!font_dir:integer;
{subfile sizes}
@!ofm_on:boolean;
@@ -640,7 +644,11 @@ if lf=0 then begin
read(tfm_file, tfm[i]);
end;
ofm_on := true; ofm_level := tfm[2]*@"100+tfm[3];
+ if ofm_level>1 then
+ abort('OFMLEVEL ',ofm_level:1,' not supported, must be 0 or 1!');
+@.OFMLEVEL...must be 0 or 1@>
if tfm[4]>127 then abort('The fifth byte of the input file exceeds 127!');
+@.The fifth byte...@>
lf := tfm[4]*@"1000000 + tfm[5]*@"10000 + tfm[6]*@"100 + tfm[7];
end
else begin
@@ -705,6 +713,8 @@ if not ofm_on then begin
eval_two_bytes(ne);
eval_two_bytes(np);
ncw:=(ec-bc+1);
+ nlw:=nl;
+ neew:=ne;
header_length:=6;
top_char:=255;
top_width:=255;
@@ -726,6 +736,8 @@ else begin
eval_four_bytes(ne);
eval_four_bytes(np);
eval_four_bytes(font_dir);
+ nlw:=2*nl;
+ neew:=2*ne;
top_char:=65535;
top_width:=65535;
top_height:=255;
@@ -754,13 +766,13 @@ else begin
eval_four_bytes(nwp); {Words of font penalties}
end;
end;
-if lf<>(header_length+lh+ncw+nw+nh+nd+ni+2*nl+nk+2*ne+np+
+if lf<>(header_length+lh+ncw+nw+nh+nd+ni+nlw+nk+neew+np+
nki+nwi+nkf+nwf+nkr+nwr+nkg+nwg+nkp+nwp) then
abort('Subfile sizes don''t add up to the stated total!');
@.Subfile sizes don't add up...@>
if lh<2 then abort('The header length is only ',lh:1,'!');
@.The header length...@>
-if (2*nl)>(4*lig_size) then
+if nl>4*lig_size then
abort('The lig/kern program is longer than I can handle!');
@.The lig/kern program...@>
if (bc>ec+1)or(ec>top_char) then abort('The character code range ',
@@ -840,9 +852,9 @@ height_base:=width_base+nw;
depth_base:=height_base+nh;
italic_base:=depth_base+nd;
lig_kern_base:=italic_base+ni;
-kern_base:=lig_kern_base+2*nl;
+kern_base:=lig_kern_base+nlw;
exten_base:=kern_base+nk;
-param_base:=exten_base+2*ne-1;
+param_base:=exten_base+neew-1;
end
@ Of course we want to define macros that suppress the detail of how the
@@ -885,8 +897,6 @@ end;
function italic_index(c:char_type):integer;
begin if not ofm_on then
italic_index:=tfm[char_info(c)+2] div 4
-else if ofm_level=0 then
- italic_index:=tfm[char_info(c)+4]*64 + tfm[char_info(c)+5] div 4
else
italic_index:=tfm[char_info(c)+4];
end;
@@ -1871,9 +1881,14 @@ the \.{TFM} file; the stated value is merely put into the \.{VPL} file.
The \.{VPtoVF} program will store a correct value and give a warning
message if a file falsely claims to be safe.
+\.{OFM} files are assumed to be seven-bit-unsafe.
+
@<Output the |seven_bit_safe_flag|@>=
-if (lh>17) and (tfm[random_word]>127) then begin
- left; out('SEVENBITSAFEFLAG FALSE'); right;
+if ofm_on then
+ begin left; out('SEVENBITSAFEFLAG FALSE'); right;
+ end
+else if (lh>17) and (tfm[random_word]>127) then
+ begin left; out('SEVENBITSAFEFLAG TRUE'); right;
end
@ The next thing to take care of is the list of parameters.
@@ -2287,7 +2302,7 @@ for clabel_runner:=0 to 256 do
@ @<Output any labels...@>=
while i=label_table[sort_ptr].rr do begin
- if not label_table[sort_ptr].ischar then begin
+ if label_table[sort_ptr].cc<>xmax_char and not label_table[sort_ptr].ischar then begin
if not output_clabels[label_table[sort_ptr].cc] then begin
output_clabels[label_table[sort_ptr].cc]:=true;
left;
@@ -3119,6 +3134,7 @@ if level<>0 then print_ln('This program isn''t working!');
if not perfect then begin
out('(COMMENT THE OFM AND/OR OVF FILE WAS BAD, ');
out('SO THE DATA HAS BEEN CHANGED!)');
+ write_ln(vpl_file);
end;
@.THE OFM AND/OR OVF FILE WAS BAD...@>
final_end:end.
diff --git a/Build/source/texk/web2c/omegaware/ovp2ovf.ch b/Build/source/texk/web2c/omegaware/ovp2ovf.ch
index cad20f24a83..503a32fef37 100644
--- a/Build/source/texk/web2c/omegaware/ovp2ovf.ch
+++ b/Build/source/texk/web2c/omegaware/ovp2ovf.ch
@@ -82,6 +82,13 @@ rewritebin (vf_file, vf_name);
rewritebin (tfm_file, tfm_name);
@z
+@x [24] Pascal Web's char
+@d first_ord=0 {ordinal number of the smallest element of |char|}
+@y
+@d char == 0..255
+@d first_ord=0 {ordinal number of the smallest element of |char|}
+@z
+
% [89] `index' is not a good choice for an identifier on Unix systems.
% Neither is `class', on AIX.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -103,7 +110,7 @@ if verbose then @<Print |c| in hex notation@>;
@x
@!HEX: packed array [1..32] of char;
@y
-@!HEX: c_string;
+@!HEX: const_c_string;
@z
@x
@@ -189,7 +196,13 @@ begin if fabs(x/design_units)>=16.0 then begin
@d vout(#)==putbyte(#,vf_file)
@z
-@x [181] Be quiet unless verbose.
+@x [204] Eliminate unused variables.
+var @!krn_ptr:0..max_kerns; {an index into |kern|}
+@!c:byte; {runs through all character codes}
+@y
+@z
+
+@x [181?] Be quiet unless verbose.
read_input; print_ln('.');@/
@y
read_input;
diff --git a/Build/source/texk/web2c/omegaware/ovp2ovf.web b/Build/source/texk/web2c/omegaware/ovp2ovf.web
index 0b6a6a329a7..cbb3404bf35 100644
--- a/Build/source/texk/web2c/omegaware/ovp2ovf.web
+++ b/Build/source/texk/web2c/omegaware/ovp2ovf.web
@@ -12,6 +12,10 @@
% Version 1.3 has more robust `out_scaled' (March 1991).
% Version 1.4 (March 1995) initialized lk_step_ended (Armin K\"ollner).
+% Version 1.0 of OVP2OVF (Month Year).
+% Version 1.11 (February 2000).
+% Version 1.12 (September 2009) various bug fixes by Peter Breitenlohner.
+
% Here is TeX material that gets inserted after \input webmac
\def\hang{\hangindent 3em\indent\ignorespaces}
\font\ninerm=cmr9
@@ -31,7 +35,7 @@
\vfill
\centerline{\titlefont The {\ttitlefont OVP2OVF} processor}
\vskip 15pt
- \centerline{(Version 1.11, February 2000)}
+ \centerline{(Version 1.12, September 2009)}
\vfill}
\def\botofcontents{\vfill
\centerline{\hsize 5in\baselineskip9pt
@@ -67,7 +71,7 @@ called \.{PLFONT}.
The |banner| string defined here should be changed whenever \.{OVP2OVF}
gets modified.
-@d banner=='This is OVP2OVF, Version 1.11'
+@d banner=='This is OVP2OVF, Version 1.12'
{printed when the program starts}
@ This program is written entirely in standard \PASCAL, except that
@@ -1372,6 +1376,8 @@ load4("C")("K")("R")("N")(ckrn_code);@/
load8("O")("F")("M")("L")("E")("V")("E")("L")(ofm_level_code);@/
load7("F")("O")("N")("T")("D")("I")("R")(font_dir_code);@/
load8("N")("F")("O")("N")("T")("D")("I")("R")(n_font_dir_code);@/
+load14("N")("A")("T")("U")("R")("A")("L")("F")("O")("N")("T")("D")("I")("R")(n_font_dir_code);
+ {compatibility with \.{omegafonts} (\.{C}) version}
load10("C")("H")("A")("R")("R")("E")("P")("E")("A")("T")(char_repeat_code);@/
load10("C")("H")("A")("R")("I")("V")("A")("L")("U")("E")(char_ivalue_code);@/
load10("C")("H")("A")("R")("F")("V")("A")("L")("U")("E")(char_fvalue_code);@/
@@ -3702,7 +3708,7 @@ case ofm_level of
0: begin
out(index[char_wd[c]] div 256); out(index[char_wd[c]] mod 256);
out(index[char_ht[c]]); out(index[char_dp[c]]);
- out(index[char_ic[c]] div 64);out((index[char_ic[c]] mod 64)*4+char_tag[c]);
+ out(index[char_ic[c]]); out(char_tag[c]);
out(char_remainder[c] div 256); out(char_remainder[c] mod 256);
end;
1: begin
diff --git a/Build/source/texk/web2c/pdftexdir/ChangeLog b/Build/source/texk/web2c/pdftexdir/ChangeLog
index 24378872da5..fd510692aa4 100644
--- a/Build/source/texk/web2c/pdftexdir/ChangeLog
+++ b/Build/source/texk/web2c/pdftexdir/ChangeLog
@@ -1,4 +1,5 @@
2009-09-16 Han The Thanh <hanthethanh@gmail.com>
+
* writettf.c: patch for TTC from Liu Yubao <yubao.liu@gmail.com>
2009-08-12 Karl Berry <karl@tug.org>