diff options
Diffstat (limited to 'Build/source/texk/web2c/omegaware/ovf2ovp.web')
-rw-r--r-- | Build/source/texk/web2c/omegaware/ovf2ovp.web | 89 |
1 files changed, 46 insertions, 43 deletions
diff --git a/Build/source/texk/web2c/omegaware/ovf2ovp.web b/Build/source/texk/web2c/omegaware/ovf2ovp.web index edc2c5c8b39..589271cd5ec 100644 --- a/Build/source/texk/web2c/omegaware/ovf2ovp.web +++ b/Build/source/texk/web2c/omegaware/ovf2ovp.web @@ -1,4 +1,4 @@ -% +% % This file is part of the Omega project, which % is based in the web2c distribution of TeX. % @@ -160,7 +160,7 @@ purposes, when fonts designed for one output device are unavailable on another. @ A \.{VF} file is organized as a stream of 8-bit bytes, using conventions borrowed from \.{DVI} and \.{PK} files. Thus, a device driver that knows about \.{DVI} and \.{PK} format will already -contain most of the mechanisms necessary to process \.{VF} files. +contain most of the mechanisms necessary to process \.{VF} files. We shall assume that \.{DVI} format is understood; the conventions in the \.{DVI} documentation (see, for example, {\sl \TeX: The Program}, part 31) are adopted here to define \.{VF} format. @@ -204,7 +204,7 @@ is a |fix_word| relative to the design size of the virtual font. Thus if the local font is to be used at the same size as the design size of the virtual font itself, |s| will be the integer value $2^{20}$. The value of |s| must be positive and less than -$2^{24}$ (thus less than 16 when considered as a |fix_word|). +$2^{24}$ (thus less than 16 when considered as a |fix_word|). The dimension~|d| is a |fix_word| in units of printer's points; hence it is identical to the design size found in the corresponding \.{TFM} file. @@ -615,7 +615,7 @@ bytes, |tfm[0..(4*lf-1)]|. @!xxchar_type=0..65537; @!xxxchar_type=0..65538; -@ +@ @<Glob...@>= @!tfm:array [-1000..tfm_size] of byte; {the input data all goes here} {the negative addresses avoid range checks for invalid characters} @@ -730,7 +730,7 @@ else begin eval_four_bytes(ec); eval_four_bytes(nw); eval_four_bytes(nh); - eval_four_bytes(nd); + eval_four_bytes(nd); eval_four_bytes(ni); eval_four_bytes(nl); eval_four_bytes(nk); @@ -809,7 +809,7 @@ integer; @!bytes_per_entry:integer; @ @<Compute the base addresses@>= -begin +begin ivalues_start:=header_length+lh; fvalues_start:=ivalues_start+nki; mvalues_start:=fvalues_start+nkf; @@ -833,7 +833,7 @@ else if ofm_level=0 then begin for i:=bc to ec do begin char_start[i]:=4*char_base+8*(i-bc); end; - end + end else begin char_ptr:=4*char_base; i:=bc; @@ -939,7 +939,7 @@ end; procedure set_no_ctag(c:char_type); begin if not (ofm_level=1) then - tfm[char_info(c)+5] := + tfm[char_info(c)+5] := tfm[char_info(c)+5] div 8 * 8 + tfm[char_info(c)+5] mod 4; end; @@ -1263,7 +1263,7 @@ else begin read_tfm_word; font_bc:=((b0*256+b1)*256+b2)*256+b3; read_tfm_word; font_ec:=((b0*256+b1)*256+b2)*256+b3; if font_ec<font_bc then font_bc:=font_ec+1; - read_tfm_word; + read_tfm_word; for k:=1 to 8 do begin read_tfm_word; end; @@ -1983,10 +1983,10 @@ if nki>0 then begin @ @<Check and output the $i$th ivalue table@>= begin -left; out('FONTIVALUE'); out_hex_number(i); out_ln; +left; out('FONTIVALUE'); out_hex_number(i); out_ln; number_entries:=256*tfm[start_counter+2]+tfm[start_counter+3]; for j:=0 to number_entries-1 do begin - left; out('IVALUE'); out_hex_number(j); out_ln; + left; out('IVALUE'); out_hex_number(j); out_ln; value:=256*tfm[base_counter+2]+tfm[base_counter+3]; left; out('IVALUEVAL'); out_hex_number(value); right; right; @@ -2005,10 +2005,10 @@ if nkf>0 then begin @ @<Check and output the $i$th fvalue table@>= begin -left; out('FONTFVALUE'); out_hex_number(i); out_ln; +left; out('FONTFVALUE'); out_hex_number(i); out_ln; number_entries:=256*tfm[start_counter+2]+tfm[start_counter+3]; for j:=0 to number_entries-1 do begin - left; out('FVALUE'); out_hex_number(j); out_ln; + left; out('FVALUE'); out_hex_number(j); out_ln; left; out('FVALUEVAL'); out_fix(base_counter); right; right; base_counter:=base_counter+4; @@ -2026,10 +2026,10 @@ if nkm>0 then begin @ @<Check and output the $i$th mvalue table@>= begin -left; out('FONTMVALUE'); out_hex_number(i); out_ln; +left; out('FONTMVALUE'); out_hex_number(i); out_ln; number_entries:=256*tfm[start_counter+2]+tfm[start_counter+3]; for j:=0 to number_entries-1 do begin - left; out('MVALUE'); out_hex_number(j); out_ln; + left; out('MVALUE'); out_hex_number(j); out_ln; left; out('MVALUEVAL'); out_fix(base_counter); right; right; base_counter:=base_counter+4; @@ -2047,10 +2047,10 @@ if nkr>0 then begin @ @<Check and output the $i$th rule table@>= begin -left; out('FONTRULE'); out_hex_number(i); out_ln; +left; out('FONTRULE'); out_hex_number(i); out_ln; number_entries:=256*tfm[start_counter+2]+tfm[start_counter+3]; for j:=0 to number_entries-1 do begin - left; out('RULE'); out_hex_number(j); out_ln; + left; out('RULE'); out_hex_number(j); out_ln; left; out('RULEWD'); out_fix(base_counter); right; left; out('RULEHT'); out_fix(base_counter+4); right; left; out('RULEDP'); out_fix(base_counter+8); right; @@ -2074,17 +2074,17 @@ if nkg>0 then begin @ @<Check and output the $i$th glue table@>= begin -left; out('FONTGLUE'); out_hex_number(i); out_ln; +left; out('FONTGLUE'); out_hex_number(i); out_ln; number_entries:=256*tfm[start_counter+2]+tfm[start_counter+3]; for j:=0 to number_entries-1 do begin - left; out('GLUE'); out_hex_number(j); out_ln; + left; out('GLUE'); out_hex_number(j); out_ln; glue_subtype:=tfm[base_counter] div 16; glue_argument_kind:=tfm[base_counter] mod 16; glue_stretch_order:=tfm[base_counter+1] div 16; glue_shrink_order:=tfm[base_counter+1] mod 16; glue_argument:=tfm[base_counter+2]*256+tfm[base_counter+3]; left; - out('GLUETYPE'); + out('GLUETYPE'); case glue_subtype of 0: out(' H 0'); 1: out(' H 1'); @@ -2095,13 +2095,13 @@ for j:=0 to number_entries-1 do begin case glue_argument_kind of 1: begin left; out('GLUERULE'); out_hex_number(glue_argument); right; - end; + end; 2: begin left; out('GLUECHAR'); out_hex_number(glue_argument); right; - end; + end; end; left; - out('GLUESTRETCHORDER'); + out('GLUESTRETCHORDER'); case glue_stretch_order of 0: out(' H 0'); 1: out(' H 1'); @@ -2111,7 +2111,7 @@ for j:=0 to number_entries-1 do begin end; right; left; - out('GLUESHRINKORDER'); + out('GLUESHRINKORDER'); case glue_shrink_order of 0: out(' H 0'); 1: out(' H 1'); @@ -2136,20 +2136,20 @@ if nkp>0 then begin base_counter:=penalties_base*4; for i:=0 to nkp-1 do @<Check and output the $i$th penalty table@>; end; - + @ @<Check and output the $i$th penalty table@>= -begin -left; out('FONTPENALTY'); out_hex_number(i); out_ln; -number_entries:=256*tfm[start_counter+2]+tfm[start_counter+3]; -for j:=0 to number_entries-1 do begin +begin +left; out('FONTPENALTY'); out_hex_number(i); out_ln; +number_entries:=256*tfm[start_counter+2]+tfm[start_counter+3]; +for j:=0 to number_entries-1 do begin left; out('PENALTY'); out_hex_number(j); out_ln; - value:=256*tfm[base_counter+2]+tfm[base_counter+3]; - left; out('PENALTYVAL'); out_hex_number(value); right; - right; - base_counter:=base_counter+4; - end; + value:=256*tfm[base_counter+2]+tfm[base_counter+3]; + left; out('PENALTYVAL'); out_hex_number(value); right; + right; + base_counter:=base_counter+4; + end; right; -start_counter:=start_counter+4; +start_counter:=start_counter+4; end; @ We need to check the range of all the remaining |fix_word| values, @@ -2491,14 +2491,17 @@ while (c<=ec) do begin else if i<(nki+nkf) then begin out('CHARFVALUE'); out_hex_number(i-nki); end - else if i<(nki+nkf+nkr) then begin - out('CHARRULE'); out_hex_number(i-nki-nkf); + else if i<(nki+nkf+nkm) then begin + out('CHARMVALUE'); out_hex_number(i-nki-nkf); end - else if i<(nki+nkf+nkr+nkg) then begin - out('CHARGLUE'); out_hex_number(i-nki-nkf-nkr); + else if i<(nki+nkf+nkm+nkr) then begin + out('CHARRULE'); out_hex_number(i-nki-nkf-nkm); end - else if i<(nki+nkf+nkr+nkg+nkp) then begin - out('CHARPENALTY'); out_hex_number(i-nki-nkf-nkr-nkg); + else if i<(nki+nkf+nkm+nkr+nkg) then begin + out('CHARGLUE'); out_hex_number(i-nki-nkf-nkm-nkr); + end + else if i<(nki+nkf+nkm+nkr+nkg+nkp) then begin + out('CHARPENALTY'); out_hex_number(i-nki-nkf-nkm-nkr-nkg); end; out_hex_number(char_param(c,i)); right; @@ -2809,7 +2812,7 @@ both_z: begin class[h]:=pending; lig_z[h]:=eval(eval(x,lig_z[h]),y); end; pending: begin x_lig_cycle:=x; y_lig_cycle:=y; lig_z[h]:=xxmax_char; class[h]:=simple; - end; {the value |xxmax_char| will break all cycles, + end; {the value |xxmax_char| will break all cycles, since it's not in |hash|} end; {there are no other cases} f:=lig_z[h]; @@ -2973,7 +2976,7 @@ push:begin if top=max_stack then incr(top); wstack[top]:=wstack[top-1]; xstack[top]:=xstack[top-1]; ystack[top]:=ystack[top-1]; zstack[top]:=zstack[top-1]; out('(PUSH)'); out_ln; - end; + end; pop:if top=0 then bad_vf('More pops than pushes!') @.More pops than pushes@> else begin decr(top); out('(POP)'); out_ln; |