From ec1b55e58ef1767afd329c2e44ebdea8fe502f89 Mon Sep 17 00:00:00 2001 From: Peter Breitenlohner Date: Thu, 17 Sep 2009 07:36:47 +0000 Subject: Version 1.12 of omegaware font programs git-svn-id: svn://tug.org/texlive/trunk@15332 c570f23f-e606-0410-a88d-b1316a301751 --- Build/source/texk/web2c/omegaware/ChangeLog | 31 ++++++++++++++++++ Build/source/texk/web2c/omegaware/ofm2opl.ch | 4 +-- Build/source/texk/web2c/omegaware/ofm2opl.web | 42 ++++++++++++++++-------- Build/source/texk/web2c/omegaware/opl2ofm.ch | 19 +++++++++-- Build/source/texk/web2c/omegaware/opl2ofm.web | 11 ++++--- Build/source/texk/web2c/omegaware/ovf2ovp.ch | 46 ++++++++++++++++++++++++--- Build/source/texk/web2c/omegaware/ovf2ovp.web | 40 ++++++++++++++++------- Build/source/texk/web2c/omegaware/ovp2ovf.ch | 17 ++++++++-- Build/source/texk/web2c/omegaware/ovp2ovf.web | 12 +++++-- Build/source/texk/web2c/pdftexdir/ChangeLog | 1 + 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 + + * 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 + + * 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 + + 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 + + * 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 * 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. @= @!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. + @= -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 @ @= 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 @; @!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. @= @!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. + @= -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 @ @= 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 @; @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 + * writettf.c: patch for TTC from Liu Yubao 2009-08-12 Karl Berry -- cgit v1.2.3