diff options
author | Hironobu Yamashita <h.y.acetaminophen@gmail.com> | 2018-01-19 09:46:02 +0000 |
---|---|---|
committer | Hironobu Yamashita <h.y.acetaminophen@gmail.com> | 2018-01-19 09:46:02 +0000 |
commit | 718c40eeac4f48ed8821a849a4c622bcf048b766 (patch) | |
tree | 9c28935695e31332a4c956247d444acb3d249972 /Build/source/texk/web2c/omegaware/ovp2ovf.web | |
parent | aa296b03e3883c2bc810908e6ffca23b08adfc0e (diff) |
wovp2ovf: throw an error and exit if OFMLEVEL undefined and char>0xff
git-svn-id: svn://tug.org/texlive/trunk@46384 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/texk/web2c/omegaware/ovp2ovf.web')
-rw-r--r-- | Build/source/texk/web2c/omegaware/ovp2ovf.web | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/Build/source/texk/web2c/omegaware/ovp2ovf.web b/Build/source/texk/web2c/omegaware/ovp2ovf.web index 5627fd9b16a..3d765a52d49 100644 --- a/Build/source/texk/web2c/omegaware/ovp2ovf.web +++ b/Build/source/texk/web2c/omegaware/ovp2ovf.web @@ -94,6 +94,7 @@ the |output| file, so that all such output can be easily deflected. @d print_ln(#)==write_ln(#) @p program OVP2OVF(@!vpl_file,@!vf_file,@!tfm_file,@!output); +label @<Labels in the outer block@>@/ const @<Constants in the outer block@>@/ type @<Types in the outer block@>@/ var @<Globals in the outer block@>@/ @@ -103,6 +104,13 @@ procedure initialize; {this procedure gets things started properly} @<Set initial values@>@/ end; +@ If the program has to stop prematurely, it goes to the +`|final_end|' (addition in OVP2OVF). + +@d final_end=9999 {label for the end of it all} + +@<Labels...@>=final_end; + @ The following parameters can be changed at compile time to extend or reduce \.{VPtoVF}'s capacity. @@ -3455,14 +3463,19 @@ will be~1. @<Compute the subfile sizes@>= lh:=header_ptr div 4;@/ not_found:=true; bc:=0; -if (ofm_level=-1) then ec:=255 @+ else ec:=max_char; +if (ofm_level=-1) then ec:=255 @+ else ec:=max_char; {only temporary} while not_found do if (char_wd[bc]>0)or(bc=ec) then not_found:=false else incr(bc); -not_found:=true; +not_found:=true; ec:=max_char; while not_found do if (char_wd[ec]>0)or(ec=0) then not_found:=false else decr(ec); +if (ofm_level=-1)and(ec>255) then begin + print('Char '); print_hex(ec); + print_ln(' too big for TFM (max "FF); use OFM file!'); + goto final_end; + end; if bc>ec then bc:=1; incr(memory[width]); incr(memory[height]); incr(memory[depth]); incr(memory[italic]);@/ @@ -4039,6 +4052,7 @@ read_input; print_ln('.');@/ corr_and_check;@/ @<Do the font metric output@>; vf_output; +final_end: end. @ @<Global...@>= |