diff options
author | Peter Breitenlohner <peb@mppmu.mpg.de> | 2014-05-05 14:16:23 +0000 |
---|---|---|
committer | Peter Breitenlohner <peb@mppmu.mpg.de> | 2014-05-05 14:16:23 +0000 |
commit | 4293a52a3030bd12a329509dec779b57e0323355 (patch) | |
tree | 6c5fbdc9a8ef35e33e65070c28152148fe620371 /Build/source | |
parent | 9f82f3972871f1e20daef6631f79614da1619514 (diff) |
texk/web2c: Minor bug fix and typos for (o)dvicopy
git-svn-id: svn://tug.org/texlive/trunk@33845 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source')
-rw-r--r-- | Build/source/texk/web2c/ChangeLog | 5 | ||||
-rw-r--r-- | Build/source/texk/web2c/dvicopy.ch | 4 | ||||
-rw-r--r-- | Build/source/texk/web2c/dvicopy.web | 37 | ||||
-rw-r--r-- | Build/source/texk/web2c/omegaware/ChangeLog | 6 | ||||
-rw-r--r-- | Build/source/texk/web2c/omegaware/odvicopy.ch | 4 | ||||
-rw-r--r-- | Build/source/texk/web2c/omegaware/odvicopy.web | 66 |
6 files changed, 70 insertions, 52 deletions
diff --git a/Build/source/texk/web2c/ChangeLog b/Build/source/texk/web2c/ChangeLog index a5c3e00b0b3..f9315f17785 100644 --- a/Build/source/texk/web2c/ChangeLog +++ b/Build/source/texk/web2c/ChangeLog @@ -1,3 +1,8 @@ +2014-05-05 Peter Breitenlohner <peb@mppmu.mpg.de> + + * dvicopy.ch, dvicopy.web: Fixed a non-Web2C bug and several + typos, mostly from Udo Wermuth <u.wermuth@icloud.com>. + 2014-05-02 Peter Breitenlohner <peb@mppmu.mpg.de> * mftraptest: Separate generic and capsule diffs. diff --git a/Build/source/texk/web2c/dvicopy.ch b/Build/source/texk/web2c/dvicopy.ch index 9f0e044c7cf..6c0ed00ec0c 100644 --- a/Build/source/texk/web2c/dvicopy.ch +++ b/Build/source/texk/web2c/dvicopy.ch @@ -192,7 +192,7 @@ else #:=(((a-intcast(256))*intcast(256)+b)*intcast(256)+c)*intcast(256)+d @z @x [63] Ignore arguments to make_font_name. -@ For \.{TFM} and \.{VF} files we just append the apropriate extension +@ For \.{TFM} and \.{VF} files we just append the appropriate extension to the file name packet; in addition a system dependent area part (usually different for \.{TFM} and \.{VF} files) is prepended if the file name packet contains no area part. @@ -239,7 +239,7 @@ cur_loc:=pckt_start[n]; cur_limit:=pckt_start[n+1]; @z @x - if (b>="a")and(b<="z") then Decr(b)("a"-"A"); {convert to upper case} + if (b>="a")and(b<="z") then Decr(b)(("a"-"A")); {convert to upper case} @y @z diff --git a/Build/source/texk/web2c/dvicopy.web b/Build/source/texk/web2c/dvicopy.web index d1b8ff7b7ca..8e3bccdd15b 100644 --- a/Build/source/texk/web2c/dvicopy.web +++ b/Build/source/texk/web2c/dvicopy.web @@ -1,4 +1,4 @@ -% Copyright (C) 1990,1991,1992,1995,2009 Peter Breitenlohner (peb@@mppmu.mpg.de) +% Copyright (C) 1990--2014 Peter Breitenlohner (peb@@mppmu.mpg.de) % % This program is free software; you can redistribute it and/or modify % it under the terms of the GNU General Public License as published by @@ -19,6 +19,8 @@ % Version 1.5 avoided cur_name_length identifier conflict (October 15, 1995). % Version 1.6 minor cleanup: avoid unused or uninitialized variables, % diagnose impossible cases (September 2009). +% bug fix (not for Web2C) and some typos (May 2014) +% from Udo Wermuth (u.wermuth@@icloud.com). % Here is TeX material that gets inserted after \input webmac \def\hang{\hangindent 3em\indent\ignorespaces} @@ -40,7 +42,7 @@ \vfill \centerline{\titlefont The {\ttitlefont DVIcopy} processor} \vskip 5pt - \centerline{Copyright (C) 1990,95 Peter Breitenlohner} + \centerline{Copyright (C) 1990--2014 Peter Breitenlohner} \centerline{Distributed under terms of GNU General Public License} \vskip 15pt \centerline{(Version 1.6, September 2009)} @@ -933,7 +935,7 @@ begin decr(pckt_ptr); byte_ptr:=pckt_start[pckt_ptr]; end; @ The |print_packet| procedure prints the contents of a packet; such a -packets should, of course, consists of a sequence of |ASCII_code|s. +packet should, of course, consists of a sequence of |ASCII_code|s. @<Basic printing...@>= procedure print_packet(p:pckt_pointer); @@ -1234,7 +1236,7 @@ with its external name. @!l_cur_name:int_15; {this many characters are actually relevant in |cur_name|} -@ For \.{TFM} and \.{VF} files we just append the apropriate extension +@ For \.{TFM} and \.{VF} files we just append the appropriate extension to the file name packet; in addition a system dependent area part (usually different for \.{TFM} and \.{VF} files) is prepended if the file name packet contains no area part. @@ -1251,7 +1253,7 @@ the file name packet contains no area part. l_cur_name:=0; for l:=1 to # do make_font_name_end @ For files with character raster data (e.g., \.{GF} or \.{PK} files) the -the extension and\slash or area part will in most cases depend on the +extension and\slash or area part will in most cases depend on the resolution of the output device (corrected for font magnification). If the special character |res_char| occurs in the extension and\slash or default area, a character string representing the device resolution will @@ -1311,7 +1313,7 @@ pckt_extract(b); {length of area part} if b>0 then l_cur_name:=0; while cur_loc<cur_limit do begin pckt_extract(b); - if (b>="a")and(b<="z") then Decr(b)("a"-"A"); {convert to upper case} + if (b>="a")and(b<="z") then Decr(b)(("a"-"A")); {convert to upper case} append_to_name(xchr[b]); end; cur_loc:=pckt_start[e]; cur_limit:=pckt_start[e+1]; @@ -1474,7 +1476,7 @@ known font: |font_check|, |font_scaled|, |font_design|, |font_name|, and |font_design| are measured in \.{DVI} units and |font_chars| is of type |char_offset|: the width pointer for character~|c| of the font is stored in |char_widths[char_offset+c]| (for |font_bc<=c<=font_ec|). -Lateron we will need additional information depending on the font type: +Later on we will need additional information depending on the font type: \.{VF} or real (\.{GF}, \.{PK}, or \.{PXL}). @<Types...@>= @@ -2184,7 +2186,7 @@ statements efficiently -- in particular those as the one used in the |dvi_cl| determines the command class. A slight complication arises from the fact that we want to decompose the -character code of each character to be typset into a residue +character code of each character to be typeset into a residue |0<=char_res<256| and extension: |char_code=char_res+256*char_ext|; the \.{TFM} widths as well as the pixel widths for a given resolution are the same for all characters in a font with the same residue. @@ -2244,7 +2246,7 @@ for i:=0 to 3 do @ Next we define the values used as array elements of |dvi_cl|; several \.{DVI} commands (e.g., |nop|, |bop|, |eop|, |pre|, |post|) will -always be treated separately and are therfore assigned to the invalid +always be treated separately and are therefore assigned to the invalid class here. @d char_cl=0 @@ -2318,7 +2320,7 @@ dvi_down_cmd[down_cl]:=down1; dvi_down_cmd[y_cl]:=y1; dvi_down_cmd[z_cl]:=z1; -@ The global variables |cur_cmd|, |cur_parm| and |cur_class| are used +@ The global variables |cur_cmd|, |cur_parm|, and |cur_class| are used for the current \.{DVI} command, its first parameter (if any), and its command class respectively. @@ -2413,7 +2415,7 @@ end; f:=0; dvi_e_fnts[dvi_nf]:=cur_parm; while cur_parm<>dvi_e_fnts[f] do incr(f) -@ Finally the |dvi_do_font| procedure is called when one of the command +@ Finally the |dvi_do_font| procedure is called when one of the commands |fnt_def1..fnt_def4| and its first parameter have been read from the \.{DVI} file; the argument indicates whether this should be the second definition of the font (|true|) or not (|false|). @@ -2677,7 +2679,7 @@ end; f:=0; vf_e_fnts[vf_nf]:=cur_parm; while cur_parm<>vf_e_fnts[f] do incr(f) -@ Finally the |vf_do_font| procedure is called when one of the command +@ Finally the |vf_do_font| procedure is called when one of the commands |fnt_def1..fnt_def4| and its first parameter have been read from the \.{VF} file. @@ -2774,8 +2776,8 @@ these initial values will be ignored. @<Types...@>= @!vf_state=array[0..1,0..1] of boolean; {state of |w|, |x|, |y|, and |z|} -@ As implied by the \.{VF} format the \.{DVI} commands read from the -\.{VF} file are enclosed by |push| and |pop|; as we read \.{DVI} +@ As implied by the \.{VF} format the \.{DVI} commands read from the \.{VF} +file are enclosed by |push| and |pop|; as we read \.{DVI} commands and append them to |byte_mem|, we perform a set of transformations in order to simplify the resulting packet: Let |zero| be any of the commands |put|, |put_rule|, |fnt_num|, |fnt|, or |xxx| which @@ -2843,7 +2845,7 @@ vf_rule_type[false]:=vf_other; vf_rule_type[true]:=vf_rule; @ Here we read the first bytes of a character packet from the \.{VF} file and initialize the packet being built in |byte_mem|; the start of the whole packet is stored in |vf_push_loc[0]|. When the character -packet is finished, a type is be assigned to it: |vf_simple| if the +packet is finished, a type is assigned to it: |vf_simple| if the packet ends with a character of the correct width, or |vf_complex| otherwise. Moreover, if such a packet for a character with extension zero consists of just one character with extension zero and @@ -3103,7 +3105,7 @@ to skip the dialog and use the default options. The system-dependent initialization code should set the |n_opt| variable to the number of options found in the command line. If |n_opt=0| the -|input_ln| procedure defined below will promt the user for options. If +|input_ln| procedure defined below will prompt the user for options. If |n_opt>0| the |k_opt| variable will be incremented and another piece of system-dependent code is invoked instead of the dialog; that code should place the value of command line option number |k_opt| as temporary @@ -3692,8 +3694,8 @@ and draw boxes or leave blank spaces in the output. @p procedure do_font;@/ label done;@/ -var p:char_pointer; {index into |char_widths| and |char_pixels|} @<OUT: Declare additional local variables for |do_font|@>@; +@!p:char_pointer; {index into |char_widths| and |char_pixels|} begin @!debug if font_type(cur_fnt)=defined_font then confusion(str_fonts); gubed@; p:=0; {such that |p| is used} @@ -4391,6 +4393,7 @@ out_four(cur_v_dimen); out_four(cur_h_dimen); the variable |@!p| is already declared. @<OUT: Declare additional local variables for |do_font|@>= +var @ And here is the device dependent code for |do_font|; if the \.{VF} file for a font could not be found, we simply assume this must be a real font. diff --git a/Build/source/texk/web2c/omegaware/ChangeLog b/Build/source/texk/web2c/omegaware/ChangeLog index 8b8ba2033d0..8e91f067725 100644 --- a/Build/source/texk/web2c/omegaware/ChangeLog +++ b/Build/source/texk/web2c/omegaware/ChangeLog @@ -1,3 +1,9 @@ +2014-05-05 Peter Breitenlohner <peb@mppmu.mpg.de> + + * odvicopy.ch, odvicopy.web: Fixed a non-Web2C bug and several + typos, mostly from Udo Wermuth <u.wermuth@icloud.com>. + Removed some trivial diffs with ../dvicopy.web. + 2014-01-23 Peter Breitenlohner <peb@mppmu.mpg.de> * ofm2opl.web, ovf2ovp.web: Drop duplicate semicolon. diff --git a/Build/source/texk/web2c/omegaware/odvicopy.ch b/Build/source/texk/web2c/omegaware/odvicopy.ch index 762751acde5..0d26ad3191c 100644 --- a/Build/source/texk/web2c/omegaware/odvicopy.ch +++ b/Build/source/texk/web2c/omegaware/odvicopy.ch @@ -197,7 +197,7 @@ else #:=(((a-intcast(256))*intcast(256)+b)*intcast(256)+c)*intcast(256)+d @z @x [63] Ignore arguments to make_font_name. -@ For \.{TFM} and \.{VF} files we just append the apropriate extension +@ For \.{TFM} and \.{VF} files we just append the appropriate extension to the file name packet; in addition a system dependent area part (usually different for \.{TFM} and \.{VF} files) is prepended if the file name packet contains no area part. @@ -244,7 +244,7 @@ cur_loc:=pckt_start[n]; cur_limit:=pckt_start[n+1]; @z @x - if (b>="a")and(b<="z") then Decr(b)("a"-"A"); {convert to upper case} + if (b>="a")and(b<="z") then Decr(b)(("a"-"A")); {convert to upper case} @y @z diff --git a/Build/source/texk/web2c/omegaware/odvicopy.web b/Build/source/texk/web2c/omegaware/odvicopy.web index a1bb27e5c78..7c31f0266ab 100644 --- a/Build/source/texk/web2c/omegaware/odvicopy.web +++ b/Build/source/texk/web2c/omegaware/odvicopy.web @@ -25,6 +25,8 @@ % Version 1.5 avoided cur_name_length identifier conflict (October 15, 1995). % Version 1.6 minor cleanup: avoid unused or uninitialized variables, % diagnose impossible cases (September 2009). +% bug fix (not for Web2C) and some typos (May 2014) +% from Udo Wermuth (u.wermuth@@icloud.com). % Here is TeX material that gets inserted after \input webmac \def\hang{\hangindent 3em\indent\ignorespaces} @@ -46,8 +48,8 @@ \vfill \centerline{\titlefont The {\ttitlefont ODVIcopy} processor} \vskip 5pt - \centerline{Copyright (C) 1990,95 Peter Breitenlohner, -1994,97 John Plaice and Yannis Haralambous} + \centerline{Copyright (C) 1990--2014 Peter Breitenlohner, +1994--1998 John Plaice and Yannis Haralambous} \centerline{Distributed under terms of GNU General Public License} \vskip 15pt \centerline{(Version 1.6, September 2009)} @@ -147,8 +149,8 @@ postamble first. will mostly be filled in later. The \.{DVI} input comes from file |dvi_file|, the \.{DVI} output goes to file |out_file|, and messages go to \PASCAL's standard |output| file. -The \.{TFM} and \.{VF} files are defined later since their external names -are determined dynamically. +The \.{TFM} and \.{VF} files are defined later since their external +names are determined dynamically. If it is necessary to abort the job because of a fatal error, the program calls the `|jump_out|' procedure, which goes to the label |final_end|. @@ -957,7 +959,7 @@ begin decr(pckt_ptr); byte_ptr:=pckt_start[pckt_ptr]; end; @ The |print_packet| procedure prints the contents of a packet; such a -packets should, of course, consists of a sequence of |ASCII_code|s. +packet should, of course, consists of a sequence of |ASCII_code|s. @<Basic printing...@>= procedure print_packet(p:pckt_pointer); @@ -1275,7 +1277,7 @@ with its external name. @!l_cur_name:int_15; {this many characters are actually relevant in |cur_name|} -@ For \.{TFM} and \.{VF} files we just append the apropriate extension +@ For \.{TFM} and \.{VF} files we just append the appropriate extension to the file name packet; in addition a system dependent area part (usually different for \.{TFM} and \.{VF} files) is prepended if the file name packet contains no area part. @@ -1292,7 +1294,7 @@ the file name packet contains no area part. l_cur_name:=0; for l:=1 to # do make_font_name_end @ For files with character raster data (e.g., \.{GF} or \.{PK} files) the -the extension and\slash or area part will in most cases depend on the +extension and\slash or area part will in most cases depend on the resolution of the output device (corrected for font magnification). If the special character |res_char| occurs in the extension and\slash or default area, a character string representing the device resolution will @@ -1352,7 +1354,7 @@ pckt_extract(b); {length of area part} if b>0 then l_cur_name:=0; while cur_loc<cur_limit do begin pckt_extract(b); - if (b>="a")and(b<="z") then Decr(b)("a"-"A"); {convert to upper case} + if (b>="a")and(b<="z") then Decr(b)(("a"-"A")); {convert to upper case} append_to_name(xchr[b]); end; cur_loc:=pckt_start[e]; cur_limit:=pckt_start[e+1]; @@ -1365,7 +1367,7 @@ while l_cur_name<name_length do end; @* Font data. -@ \.{DVI} file format does not include information about character widths, since +\.{DVI} file format does not include information about character widths, since that would tend to make the files a lot longer. But a program that reads a \.{DVI} file is supposed to know the widths of the characters that appear in \\{set\_char} commands. Therefore \.{\title} looks at the font metric @@ -1522,7 +1524,7 @@ and |font_design| are measured in \.{DVI} units and |font_chars| is of type |char_offset|: the width pointer for character~|c| of the font is stored in |char_widths[char_offset+c]| (for |font_bc<=c<=font_ec|). Later on we will need additional information depending on the font type: -\.{VF} or real (\.{GF}, \.{PK} or \.{PXL}). +\.{VF} or real (\.{GF}, \.{PK}, or \.{PXL}). @<Types...@>= @!f_type=defined_font..max_font_type; {type of a font} @@ -1820,8 +1822,8 @@ if eof(tfm_file) then begin @ It turns out to be convenient to read four bytes at a time, when we are inputting from \.{TFM} files. The input goes into global variables -|tfm_b0|, |tfm_b1|, |tfm_b2|, and |tfm_b3|, with |tfm_b0| getting -the first byte and |tfm_b3| the fourth. +|tfm_b0|, |tfm_b1|, |tfm_b2|, and |tfm_b3|, with |tfm_b0| getting the +first byte and |tfm_b3| the fourth. @<Glob...@>= @!tfm_b0,@!tfm_b1,@!tfm_b2,@!tfm_b3: eight_bits; {four bytes input at once} @@ -1830,10 +1832,10 @@ the first byte and |tfm_b3| the fourth. particular system; on many systems this means that a large number of bytes from |tfm_file| is read into a buffer and will then be extracted from that buffer. In order to simplify such system dependent changes -we use the \.{WEB} macro |tfm_byte| to extract the next \.{TFM} or \.{OFM} -byte; this macro and |eof(tfm_file)| are used only in the |read_tfm_word| +we use the \.{WEB} macro |tfm_byte| to extract the next \.{TFM} or \.{OFM} byte; +this macro and |eof(tfm_file)| are used only in the |read_tfm_word| procedure which sets |tfm_b0| through |tfm_b3| to the next four bytes -in the current \.{TFM} file. Here we give simple-minded definitions in +in the current \.{TFM} file. Here we give simple minded definitions in terms of standard \PASCAL. @^system dependencies@> @^optimization@> @@ -2425,7 +2427,7 @@ for i:=0 to 3 do @ Next we define the values used as array elements of |dvi_cl|; several \.{DVI} commands (e.g., |nop|, |bop|, |eop|, |pre|, |post|) will -always be treated separately and are therfore assigned to the invalid +always be treated separately and are therefore assigned to the invalid class here. @d char_cl=0 @@ -2499,7 +2501,7 @@ dvi_down_cmd[down_cl]:=down1; dvi_down_cmd[y_cl]:=y1; dvi_down_cmd[z_cl]:=z1; -@ The global variables |cur_cmd|, |cur_parm| and |cur_class| are used +@ The global variables |cur_cmd|, |cur_parm|, and |cur_class| are used for the current \.{DVI} command, its first parameter (if any), and its command class respectively. @@ -2563,7 +2565,8 @@ rule_par: cur_upd:=(cur_cmd=set_rule); end; fnt_par:cur_parm:=cur_cmd-fnt_num_0; -end; {there are no other cases} +othercases abort('internal error'); +endcases; cur_class:=dvi_cl[cur_cmd]; end; @@ -2598,7 +2601,7 @@ end; f:=0; dvi_e_fnts[dvi_nf]:=cur_parm; while cur_parm<>dvi_e_fnts[f] do incr(f) -@ Finally the |dvi_do_font| procedure is called when one of the command +@ Finally the |dvi_do_font| procedure is called when one of the commands |fnt_def1..fnt_def4| and its first parameter have been read from the \.{DVI} file; the argument indicates whether this should be the second definition of the font (|true|) or not (|false|). @@ -2626,8 +2629,8 @@ else if dvi_i_fnts[f]<>dvi_i_fnts[dvi_nf] then bad_dvi; end; @* Low-level VF input routines. -A detailed description of the \.{VF} file format can be found in -the documentation of \.{VFtoVP}; here we just define symbolic names for +A detailed description of the \.{VF} file format can be found in the +documentation of \.{VFtoVP}; here we just define symbolic names for some of the \.{VF} command bytes. @d long_char=242 {\.{VF} command for general character packet} @@ -2651,8 +2654,8 @@ id3(".")("V")("F")(vf_ext); {file name extension for \.{VF} files} id4(".")("O")("V")("F")(ovf_ext); {file name extension for \.{OVF} files} @ If a \.{VF} file is badly malformed, we say |bad_font|; this procedure -gives an error message which refers the user to \.{VFtoVP} and -\.{OVPtoOVF}, and terminates \.{\title}. +gives an error message which refers the user to \.{VFtoVP} and \.{OVPtoOVF}, +and terminates \.{\title}. @<Cases for |bad_font|@>= vf_font_type: begin print('Bad (O)VF file'); print_font(cur_fnt); @@ -2843,9 +2846,9 @@ font~|f|. @^font types@> The global variable |vf_nf| is used for the number of different local -fonts defined in a \.{VF} file so far; their external font numbers -(as extracted from the \.{VF} file) are stored in the array |vf_e_fnts|, -the corresponding internal font numbers used internally by \.{\title} are +fonts defined in a \.{VF} file so far; their external font numbers (as +extracted from the \.{VF} file) are stored in the array |vf_e_fnts|, the +corresponding internal font numbers used internally by \.{\title} are stored in the array |vf_i_fnts|. @<Glob...@>= @@ -2873,7 +2876,7 @@ end; f:=0; vf_e_fnts[vf_nf]:=cur_parm; while cur_parm<>vf_e_fnts[f] do incr(f) -@ Finally the |vf_do_font| procedure is called when one of the command +@ Finally the |vf_do_font| procedure is called when one of the commands |fnt_def1..fnt_def4| and its first parameter have been read from the \.{VF} file. @@ -3041,7 +3044,7 @@ vf_rule_type[false]:=vf_other; vf_rule_type[true]:=vf_rule; @ Here we read the first bytes of a character packet from the \.{VF} or \.{OVF} file and initialize the packet being built in |byte_mem|; the start of the whole packet is stored in |vf_push_loc[0]|. When the character -packet is finished, a type is be assigned to it: |vf_simple| if the +packet is finished, a type is assigned to it: |vf_simple| if the packet ends with a character of the correct width, or |vf_complex| otherwise. Moreover, if such a packet for a character with extension zero consists of just one character with extension zero and @@ -3248,7 +3251,7 @@ begin incr(vf_ptr); decr(vf_push_num[vf_ptr]); end -@ The \.{VF} formats specify that after a character packet invoked by a +@ The \.{VF} format specifies that after a character packet invoked by a |set_char| or \\{set} command, ``|h|~is increased by the \.{TFM} width (properly scaled)---just as if a simple character had been typeset''; for |vf_simple| packets this is achieved by changing the final |put| @@ -3305,7 +3308,7 @@ to skip the dialog and use the default options. The system-dependent initialization code should set the |n_opt| variable to the number of options found in the command line. If |n_opt=0| the -|input_ln| procedure defined below will promt the user for options. If +|input_ln| procedure defined below will prompt the user for options. If |n_opt>0| the |k_opt| variable will be incremented and another piece of system-dependent code is invoked instead of the dialog; that code should place the value of command line option number |k_opt| as temporary @@ -3894,8 +3897,8 @@ and draw boxes or leave blank spaces in the output. @p procedure do_font;@/ label done;@/ -var p:char_pointer; {index into |char_widths| and |char_pixels|} @<OUT: Declare additional local variables for |do_font|@>@; +@!p:char_pointer; {index into |char_widths| and |char_pixels|} begin @!debug if font_type(cur_fnt)=defined_font then confusion(str_fonts); gubed@; p:=0; {such that |p| is used} @@ -4593,6 +4596,7 @@ out_four(cur_v_dimen); out_four(cur_h_dimen); the variable |@!p| is already declared. @<OUT: Declare additional local variables for |do_font|@>= +var @ And here is the device dependent code for |do_font|; if the \.{VF} file for a font could not be found, we simply assume this must be a real font. |