home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The World of Computer Software
/
World_Of_Computer_Software-02-385-Vol-1of3.iso
/
g
/
gs241j11.zip
/
GS241J.DIF
< prev
next >
Wrap
Text File
|
1992-07-01
|
51KB
|
1,763 lines
*** font.h.orig Thu Jan 17 03:46:10 1991
--- font.h Thu May 21 12:56:23 1992
***************
*** 36,38 ****
--- 36,42 ----
/* The current font in the graphics state */
#define ifont (igs->font)
+
+ #ifdef COMPFONT
+ int make_composite_font(P5(ref *, gs_font *, gs_matrix *, ref *, gs_font **));
+ #endif
*** gs_init.ps.orig Tue Apr 21 19:22:08 1992
--- gs_init.ps Fri May 15 17:28:32 1992
***************
*** 242,247 ****
--- 242,265 ----
(>>) cvn /dicttomark load odef
/deviceinfo { getdeviceprops dicttomark } odef
+ %
+ % Define the composite font operators
+ %
+
+ systemdict /show0 known systemdict /NOKANJI known not and
+ /.encodingdict null def
+ {
+ % Replace base font operators with composite font operators
+
+ /show /show0 load def
+ /ashow /ashow0 load def
+ /widthshow /widthshow0 load def
+ /awidthshow /awidthshow0 load def
+ /charpath /charpath0 load def
+ /stringwidth /stringwidth0 load def
+ /cshow /cshow0 load def
+ }
+ {
% Define simplified versions of the composite font operators
% that work with (and only with) non-composite fonts.
***************
*** 260,267 ****
{ //.encodingdict exch get exec } odef
/rootfont
{ currentfont } odef
! /setcachedevice2
! { pop pop pop pop setcachdevice } odef
% Define some additional built-in procedures (beyond the ones defined by
% the PostScript Language Reference Manual).
--- 278,285 ----
{ //.encodingdict exch get exec } odef
/rootfont
{ currentfont } odef
! }
! ifelse
% Define some additional built-in procedures (beyond the ones defined by
% the PostScript Language Reference Manual).
***************
*** 513,519 ****
--- 531,541 ----
% Define the font directory.
% Make it big to leave room for transformed fonts.
+ currentdict /NOKANJI known {
/FontDirectory 100 dict def
+ }{
+ /FontDirectory 600 dict def
+ } ifelse
% Define the standard encoding vector.
/StandardEncoding
***************
*** 660,665 ****
--- 682,697 ----
(END GS_FONTS ) VMDEBUG
+ % Load the WMode environment.
+ systemdict /setcachedevice2 known systemdict /NOKANJI known not and
+ {
+ (wmode.ps) run
+ }
+ {
+ /setcachedevice2
+ { pop pop pop pop setcachdevice } odef
+ } ifelse
+
% Create a null font. This is the initial font.
7 dict dup begin
/FontMatrix [ 1 0 0 1 0 0 ] def
***************
*** 830,834 ****
--- 862,871 ----
(END INIT ) VMDEBUG
QUIET not { (done.\n) print flush } if
+
+ % Load the kanji font environment.
+ systemdict /NOKANJI known not {
+ (kanji.ps) run
+ } if
% The interpreter will run the initial procedure (start).
*** gschar.c.orig Wed Apr 8 23:29:36 1992
--- gschar.c Fri May 15 17:28:32 1992
***************
*** 106,114 ****
--- 106,121 ----
}
/* widthshow[_n] */
+ #ifndef ORIGINAL /* enable to use an integer more than 127
+ as the character specification for widthshow */
int
gs_widthshow_init(register gs_show_enum *penum,
+ gs_state *pgs, floatp cx, floatp cy, byte chr, char *str)
+ #else
+ int
+ gs_widthshow_init(register gs_show_enum *penum,
gs_state *pgs, floatp cx, floatp cy, char chr, char *str)
+ #endif
{ int code;
setup_show();
code = show_setup(penum, pgs, str);
***************
*** 115,123 ****
--- 122,137 ----
setup_width();
return code;
}
+ #ifndef ORIGINAL /* enable to use an integer more than 127
+ as the character specification for widthshow */
int
gs_widthshow_n_init(register gs_show_enum *penum,
+ gs_state *pgs, floatp cx, floatp cy, byte chr, char *str, uint size)
+ #else
+ int
+ gs_widthshow_n_init(register gs_show_enum *penum,
gs_state *pgs, floatp cx, floatp cy, char chr, char *str, uint size)
+ #endif
{ int code;
setup_show_n();
code = show_setup(penum, pgs, str);
***************
*** 126,135 ****
--- 140,157 ----
}
/* awidthshow[_n] */
+ #ifndef ORIGINAL /* enable to use an integer more than 127
+ as the character specification for awidthshow */
int
gs_awidthshow_init(register gs_show_enum *penum,
+ gs_state *pgs, floatp cx, floatp cy, byte chr, floatp ax, floatp ay,
+ char *str)
+ #else
+ int
+ gs_awidthshow_init(register gs_show_enum *penum,
gs_state *pgs, floatp cx, floatp cy, char chr, floatp ax, floatp ay,
char *str)
+ #endif
{ int code;
setup_show();
code = show_setup(penum, pgs, str);
***************
*** 137,146 ****
--- 159,176 ----
setup_width();
return code;
}
+ #ifndef ORIGINAL /* enable to use an integer more than 127
+ as the character specification for awidthshow */
int
gs_awidthshow_n_init(register gs_show_enum *penum,
+ gs_state *pgs, floatp cx, floatp cy, byte chr, floatp ax, floatp ay,
+ char *str, uint size)
+ #else
+ int
+ gs_awidthshow_n_init(register gs_show_enum *penum,
gs_state *pgs, floatp cx, floatp cy, char chr, floatp ax, floatp ay,
char *str, uint size)
+ #endif
{ int code;
setup_show_n();
code = show_setup(penum, pgs, str);
***************
*** 225,240 ****
--- 255,304 ----
/* ------ Width/cache operators ------ */
+ #ifdef WMODE /* define setcachedevice with setcachedevice2 */
/* setcachedevice */
int
gs_setcachedevice(register gs_show_enum *penum, gs_state *pgs,
floatp wx, floatp wy, floatp llx, floatp lly, floatp urx, floatp ury)
+ {
+ return gs_setcachedevice2(penum, pgs, wx, wy, llx, lly, urx, ury,
+ wx, wy, 0.0, 0.0);
+ }
+ #endif
+
+ #ifdef WMODE /* modify gs_setcachedevice() into gs_setcachedevice2() */
+ /* setcachedevice2 */
+ int
+ gs_setcachedevice2(register gs_show_enum *penum, gs_state *pgs,
+ floatp w0x, floatp w0y, floatp llx, floatp lly, floatp urx, floatp ury,
+ floatp w1x, floatp w1y, floatp vx, floatp vy)
+ { int code;
+ if(penum->wmode == 0)
+ code = gs_setcharwidth(penum, pgs, w0x, w0y);
+ else
+ code = gs_setcharwidth(penum, pgs, w1x, w1y);
+ if(code < 0)
+ return code;
+ #else
+ /* setcachedevice */
+ int
+ gs_setcachedevice(register gs_show_enum *penum, gs_state *pgs,
+ floatp wx, floatp wy, floatp llx, floatp lly, floatp urx, floatp ury)
{ int code = gs_setcharwidth(penum, pgs, wx, wy); /* default is don't cache */
if ( code < 0 ) return code;
+ #endif
/* See if we want to cache this character. */
if ( pgs->in_cachedevice ) /* no recursion! */
return 0;
pgs->in_cachedevice = 1; /* disable color/gray/image operators */
+ #ifdef WMODE /* adjust zero point when WMode is 1 */
+ if(penum->wmode == 1) {
+ gs_point zero1;
+ gs_transform(pgs, -vx, -vy, &zero1);
+ gs_translate_to_fixed(pgs,
+ float2fixed(zero1.x), float2fixed(zero1.y));
+ }
+ #endif
/* We can only use the cache if ctm is unchanged */
/* (aside from a possible translation), */
/* and if the extent of the box is non-negative. */
***************
*** 302,308 ****
--- 366,378 ----
/* Nothing can go wrong now.... */
penum->cc = cc;
cc->code = gs_show_current_char(penum);
+ #ifdef WMODE /* WMode facility requests three vectors, w0, w1 and v */
+ gs_distance_transform2fixed(&pgs->ctm, w0x, w0y, &cc->wxy[0]);
+ gs_distance_transform2fixed(&pgs->ctm, w1x, w1y, &cc->wxy[1]);
+ gs_distance_transform2fixed(&pgs->ctm, vx, vy, &cc->vxy);
+ #else
cc->wxy = penum->wxy;
+ #endif
/* Install the device */
pgs->device = &penum->dev_cache_dev;
pgs->device_is_shared = 1; /* don't deallocate */
***************
*** 419,424 ****
--- 489,503 ----
}
case sws_no_cache: ;
}
+ #ifndef ORIGINAL /* moveto the initial zero point if in charpath */
+ if(penum->charpath_flag) {
+ int code = gs_grestore(pgs);
+ if(code < 0)
+ return code;
+ return gx_path_add_point(pgs->path,
+ penum->zxy.x, penum->zxy.y);
+ }
+ #endif
return gs_grestore(pgs);
}
***************
*** 463,469 ****
--- 542,552 ----
cc = gx_lookup_cached_char(pgs, pair, chr);
if ( cc == 0 ) goto no_cache;
/* Character is in cache. */
+ #ifdef WMODE /* modification for writing in the vertical direction */
+ code = show_fast_move(cc->wxy[penum->wmode], pgs);
+ #else
code = show_fast_move(cc->wxy, pgs);
+ #endif
if ( code ) return code;
}
else
***************
*** 477,487 ****
--- 560,579 ----
if ( code < 0 ) return code;
else if ( code > 0 ) goto no_cache;
if ( penum->slow_show )
+ #ifdef WMODE /* modification for writing in the vertical direction */
+ { penum->wxy = cc->wxy[penum->wmode];
+ #else
{ penum->wxy = cc->wxy;
+ #endif
code = show_move(penum);
}
else
+ #ifdef WMODE /* modification for writing in the vertical direction */
+ code = show_fast_move(cc->wxy[penum->wmode],
+ pgs);
+ #else
code = show_fast_move(cc->wxy, pgs);
+ #endif
if ( code ) return code;
}
/* All done. */
***************
*** 506,511 ****
--- 598,607 ----
gx_path *ppath = pgs->path;
if ( (code = gx_path_current_point_inline(ppath, &cpt)) < 0 )
return code;
+ #ifndef ORIGINAL /* save the initial zero point
+ to be used in show_update */
+ penum->zxy = cpt;
+ #endif
cpt.x -= pgs->ctm.tx_fixed;
cpt.y -= pgs->ctm.ty_fixed;
gs_setmatrix(pgs, &pgs->char_tm);
***************
*** 603,608 ****
--- 699,708 ----
penum->dev_cache_set = 0;
penum->index = 0;
penum->continue_proc = continue_show;
+ #ifdef WMODE /* set WMode of the rootfont as the current WMode */
+ penum->wmode = pgs->rootfont->WMode;
+ #endif
+ #ifndef COMPFONT /* skip */
if ( (penum->is_composite = pfont->FontType == ft_composite) )
{ gs_font *rfont = pgs->font;
penum->fstack[0] = rfont;
***************
*** 610,615 ****
--- 710,716 ----
penum->pfont =
rfont->data.type0_data.FDepVector[rfont->data.type0_data.Encoding[0]];
}
+ #endif
if ( !pgs->char_tm_valid )
{ /* Compute combined transformation */
gs_make_identity(&pgs->char_tm); /* make sure type */
*** gschar.h.orig Thu Mar 26 01:05:16 1992
--- gschar.h Fri May 15 17:28:32 1992
***************
*** 32,41 ****
--- 32,48 ----
gs_show_n_init(P4(gs_show_enum *, gs_state *, char *, uint)),
gs_ashow_init(P5(gs_show_enum *, gs_state *, floatp, floatp, char *)),
gs_ashow_n_init(P6(gs_show_enum *, gs_state *, floatp, floatp, char *, uint)),
+ #ifndef ORIGINAL
+ gs_widthshow_init(P6(gs_show_enum *, gs_state *, floatp, floatp, byte, char *)),
+ gs_widthshow_n_init(P7(gs_show_enum *, gs_state *, floatp, floatp, byte, char *, uint)),
+ gs_awidthshow_init(P8(gs_show_enum *, gs_state *, floatp, floatp, byte, floatp, floatp, char *)),
+ gs_awidthshow_n_init(P9(gs_show_enum *, gs_state *, floatp, floatp, byte, floatp, floatp, char *, uint)),
+ #else
gs_widthshow_init(P6(gs_show_enum *, gs_state *, floatp, floatp, char, char *)),
gs_widthshow_n_init(P7(gs_show_enum *, gs_state *, floatp, floatp, char, char *, uint)),
gs_awidthshow_init(P8(gs_show_enum *, gs_state *, floatp, floatp, char, floatp, floatp, char *)),
gs_awidthshow_n_init(P9(gs_show_enum *, gs_state *, floatp, floatp, char, floatp, floatp, char *, uint)),
+ #endif
gs_kshow_init(P3(gs_show_enum *, gs_state *, char *)),
gs_kshow_n_init(P4(gs_show_enum *, gs_state *, char *, uint)),
gs_stringwidth_init(P3(gs_show_enum *, gs_state *, char *)),
*** gsfont.c.orig Tue Nov 26 13:20:44 1991
--- gsfont.c Fri May 15 17:28:33 1992
***************
*** 50,55 ****
--- 50,62 ----
#define mmax_SMALL 40 /* mmax - # of cached font/matrix pairs */
#define cmax_SMALL 500 /* cmax - # of cached chars */
#define blimit_SMALL 100 /* blimit/upper - max size of a single cached char */
+ #ifdef KANJI
+ /* adjustment for Japanese Kanji fonts which request a lot of base fonts */
+ #undef smax_LARGE
+ #define smax_LARGE 500 /* smax - # of scaled fonts */
+ #undef mmax_LARGE
+ #define mmax_LARGE 1000 /* mmax - # of cached font/matrix pairs */
+ #endif
/* Allocate a font directory */
gs_font_dir *
***************
*** 147,153 ****
--- 154,166 ----
pmat->tx, pmat->ty);
}
#endif
+ #ifdef COMPFONT /* Composite fonts cannot be cached
+ because UniqueID of a composite font has no meaning. */
+ if ( pfont->FontType != ft_composite &&
+ pfont->data.base.UniqueID != -1 )
+ #else
if ( pfont->data.base.UniqueID != -1 )
+ #endif
for ( ; pf_out != 0; prev = pf_out, pf_out = pf_out->next )
if ( pf_out->data.base.UniqueID == pfont->data.base.UniqueID &&
pf_out->FontType == pfont->FontType &&
***************
*** 169,174 ****
--- 182,192 ----
if ( !pf_out ) return_error(gs_error_VMerror);
*pf_out = *pfont;
pf_out->FontMatrix = newmat;
+ #ifdef COMPFONT /* prevent the font which is not cached
+ from being linked in the cache chain */
+ if ( pfont->FontType != ft_composite &&
+ pfont->data.base.UniqueID != -1 ) {
+ #endif
if ( pdir->ssize == pdir->smax )
{ /* Must discard a cached scaled font. */
/* Scan for the oldest font if we didn't already. */
***************
*** 187,192 ****
--- 205,214 ----
else
pdir->ssize++;
link_first(pdir->scaled_fonts, pf_out);
+ #ifdef COMPFONT /* prevent the font which is not cached
+ from being linked in the cache chain */
+ }
+ #endif
pf_out->base = pfont->base;
pf_out->dir = pdir;
*ppfont = pf_out;
***************
*** 210,215 ****
--- 232,252 ----
gs_currentfont(gs_state *pgs)
{ return pgs->font;
}
+
+ #ifdef COMPFONT /* define gs_setrootfont() and gs_currentrootfont() */
+ /* setrootfont */
+ int
+ gs_setrootfont(gs_state *pgs, gs_font *pfont)
+ { pgs->rootfont = pfont;
+ return 0;
+ }
+
+ /* currentrootfont */
+ gs_font *
+ gs_currentrootfont(gs_state *pgs)
+ { return pgs->rootfont;
+ }
+ #endif
/* cachestatus */
void
*** gstype1.c.orig Tue Apr 7 06:11:56 1992
--- gstype1.c Fri May 15 17:28:34 1992
***************
*** 304,310 ****
--- 304,316 ----
private stem_hint *near type1_stem(P3(stem_hint_table *, fixed, fixed));
private int near type1_endchar(P3(gs_type1_state *, gs_state *, gx_path *));
int
+ #ifdef WMODE /* enable gs_type1_interpret()
+ to be used only for drawing path */
+ gs_type1_interpret(register gs_type1_state *pis, byte *str, int *pindex,
+ floatp *pwx, floatp *pwy, int only_drawing)
+ #else
gs_type1_interpret(register gs_type1_state *pis, byte *str, int *pindex)
+ #endif
{ gs_state *pgs = pis->pgs;
gs_type1_data *pdata = pis->pdata;
gs_op1_state s;
***************
*** 514,519 ****
--- 520,533 ----
/* base character string. */
return type1_result_seac;
}
+ #ifdef WMODE /* store width vector encrypted in type1 string and
+ skip setcharwidth or setcachedevice
+ if only_drawing flag is true */
+ *pwx = fixed2float(pis->width.x);
+ *pwy = fixed2float(pis->width.y);
+ if(only_drawing)
+ return 0;
+ #endif
/* This is a real endchar. Handle it below. */
return type1_endchar(pis, pgs, sppath);
case c_undoc15: dc(" undoc15")
*** gstype1.h.orig Sat Mar 21 17:29:26 1992
--- gstype1.h Fri May 15 17:28:34 1992
***************
*** 46,51 ****
--- 46,56 ----
/* or the othersubr # for callothersubr. */
#define type1_result_seac 1
#define type1_result_callothersubr 2
+ #ifdef WMODE
+ int gs_type1_interpret(P6(gs_type1_state *, byte *, int *,
+ floatp *, floatp *, int));
+ #else
int gs_type1_interpret(P3(gs_type1_state *, byte *, int *));
+ #endif
/* Pop a (fixed) number off the internal stack */
int gs_type1_pop(P2(gs_type1_state *, fixed *));
*** gxcache.c.orig Sat Apr 18 16:21:50 1992
--- gxcache.c Fri May 15 17:28:34 1992
***************
*** 269,276 ****
--- 269,284 ----
/* quick-check clipping rectangle, we have to */
/* set up an intermediate clipping device. */
pt.x -= cc->offset.x;
+ #ifdef WMODE /* move zero point if WMode is 1 */
+ if(penum->wmode)
+ pt.x -= cc->vxy.x;
+ #endif
x = fixed2int_var_rounded(pt.x) + penum->ftx;
pt.y -= cc->offset.y;
+ #ifdef WMODE /* move zero point if WMode is 1 */
+ if(penum->wmode)
+ pt.y -= cc->vxy.y;
+ #endif
y = fixed2int_var_rounded(pt.y) + penum->fty;
w = cc->width;
h = cc->height;
*** gxcache.h.orig Wed Feb 26 19:38:42 1992
--- gxcache.h Fri May 15 17:28:34 1992
***************
*** 41,47 ****
--- 41,52 ----
ushort raster, height; /* dimensions of bitmap */
ushort width;
gx_bitmap_id id;
+ #ifdef WMODE /* WMode facility requests three vectors, w0, w1 and v */
+ gs_fixed_point wxy[2]; /* width in device coords */
+ gs_fixed_point vxy; /* vector to zero1 */
+ #else
gs_fixed_point wxy; /* width in device coords */
+ #endif
gs_fixed_point offset; /* (-llx, -lly) in device coords */
};
#define cc_is_free(cc) cc_head_is_free(&(cc)->head)
*** gxchar.h.orig Sat Mar 21 17:27:28 1992
--- gxchar.h Fri May 15 17:28:35 1992
***************
*** 68,73 ****
--- 68,76 ----
/* clipping box */
int is_composite; /* true if composite font */
int ftx, fty; /* transformed font translation */
+ #ifdef WMODE
+ int wmode; /* WMode of rootfont */
+ #endif
/* Following are set at most once */
gx_device_memory dev_cache_info;
device dev_cache_dev;
***************
*** 75,80 ****
--- 78,86 ----
/* Following are updated dynamically */
uint index; /* index within string */
gs_fixed_point wxy; /* for current char in device coords */
+ #ifndef ORIGINAL
+ gs_fixed_point zxy; /* zero point for current char */
+ #endif
cached_char *cc; /* being accumulated */
gs_point width; /* total width of string, set at end */
show_width_status width_status;
*** gzstate.h.orig Fri Feb 28 07:16:46 1992
--- gzstate.h Fri May 15 17:28:35 1992
***************
*** 48,53 ****
--- 48,56 ----
struct gx_transfer_s *transfer;
/* Font: */
struct gs_font_s *font;
+ #ifdef COMPFONT
+ struct gs_font_s *rootfont;
+ #endif
gs_matrix char_tm; /* font matrix * ctm */
int char_tm_valid; /* true if char_tm is valid */
byte in_cachedevice; /* true after a setcachedevice */
*** state.h.orig Mon Dec 30 00:22:46 1991
--- state.h Fri May 15 17:28:35 1992
***************
*** 33,45 ****
--- 33,55 ----
ref red, green, blue, gray; /* transfer procedures */
} transfer_procs;
ref font; /* font object (dictionary) */
+ #ifdef COMPFONT
+ ref rootfont; /* root font object (dictionary) */
+ #endif
int_gstate *saved; /* previous int_gstate from gsave */
};
/* Enumerate the refs in an int_gstate. */
+ #ifdef COMPFONT
#define int_gstate_map_refs(p,m)\
(m(&(p)->screen_proc), m(&(p)->transfer_procs.red),\
m(&(p)->transfer_procs.green), m(&(p)->transfer_procs.blue),\
+ m(&(p)->font), m(&(p)->rootfont))
+ #else
+ #define int_gstate_map_refs(p,m)\
+ (m(&(p)->screen_proc), m(&(p)->transfer_procs.red),\
+ m(&(p)->transfer_procs.green), m(&(p)->transfer_procs.blue),\
m(&(p)->font))
+ #endif
/* The current instances. */
extern int_gstate istate;
*** string_.h.orig Mon Dec 31 05:34:38 1990
--- string_.h Fri May 15 17:28:39 1992
***************
*** 28,34 ****
extern char *strcat(), *strchr(), *strcpy(), *strupr();
extern int strcmp(), strlen(), strncmp();
# else
! # ifdef __MSDOS__
# undef memset /* see memory_.h */
# include <string.h>
# define memset(dest,chr,cnt) setmem(dest,cnt,chr)
--- 28,34 ----
extern char *strcat(), *strchr(), *strcpy(), *strupr();
extern int strcmp(), strlen(), strncmp();
# else
! # if (defined(ORIGINAL) && defined(__MSDOS__)) || defined(__TURBOC__)
# undef memset /* see memory_.h */
# include <string.h>
# define memset(dest,chr,cnt) setmem(dest,cnt,chr)
*** zchar.c.orig Sat Apr 18 23:39:22 1992
--- zchar.c Fri May 15 17:28:40 1992
***************
*** 108,114 ****
--- 108,119 ----
)
return code;
if ( (code = gs_widthshow_n_init(senum, igs, cxy[0], cxy[1],
+ #ifndef ORIGINAL /* enable to use an integer more than 127
+ as the character specification for widthshow */
+ (byte)op[-1].value.intval,
+ #else
(char)op[-1].value.intval,
+ #endif
(char *)op->value.bytes,
r_size(op))) < 0 )
{ free_show();
***************
*** 131,137 ****
--- 136,147 ----
)
return code;
if ( (code = gs_awidthshow_n_init(senum, igs, cxy[0], cxy[1],
+ #ifndef ORIGINAL /* enable to use an integer more than 127
+ as the character specification for awidthshow */
+ (byte)op[-3].value.intval,
+ #else
(char)op[-3].value.intval,
+ #endif
axy[0], axy[1],
(char *)op->value.bytes,
r_size(op))) < 0 )
***************
*** 229,234 ****
--- 239,276 ----
return 0;
}
+ #ifdef WMODE /* define setcachedevice2() */
+ /* setcachedevice2 */
+ int
+ zsetcachedevice2(register os_ptr op)
+ { float wbox[10];
+ int npop = 10;
+ gs_show_enum *penum = find_show();
+ int code = num_params(op, 10, wbox);
+ if ( penum == 0 ) return e_undefined;
+ if ( code < 0 )
+ { /* P*stScr*pt implementations apparently allow the */
+ /* bounding box to be specified as a 4-element array. */
+ /* Check for this here. */
+ check_array(op[-4]);
+ if ( r_size(op - 4) != 4 ||
+ num_params(op - 5, 2, wbox) < 0 ||
+ num_params(op[-4].value.refs + 3, 4, wbox + 2) < 0 ||
+ num_params(op, 4, wbox + 6) < 0
+ )
+ return code;
+ npop = 7;
+ }
+
+ if ( (code = gs_setcachedevice2(penum, igs,
+ wbox[0], wbox[1], wbox[2], wbox[3], wbox[4], wbox[5],
+ wbox[6], wbox[7], wbox[8], wbox[9])) < 0 )
+ return code;
+ pop(npop);
+ return 0;
+ }
+ #endif /* WMODE */
+
/* setcharwidth */
int
zsetcharwidth(register os_ptr op)
***************
*** 300,305 ****
--- 342,357 ----
z1_data zdata;
byte *charstring = 0;
ref enc_entry;
+ #ifdef WMODE /* if there is a boolean value on the top of
+ operand stack, assume it as only_drawing flag */
+ floatp wx, wy;
+ int only_drawing = 0;
+ if(r_has_type(op, t_boolean) && op->value.index) {
+ only_drawing = 1;
+ pop(1);
+ op --;
+ }
+ #endif
if ( penum == 0 ) return e_undefined;
check_type(*op, t_string);
tdata = pfont->data.base.type1_data;
***************
*** 308,314 ****
--- 360,377 ----
tdata.proc_data = (char *)&zdata;
if ( r_size(op) <= tdata.lenIV )
{ /* String is empty, or too short. Just ignore it. */
+ #ifdef WMODE /* if only_drawing flag is true, push x, y coordinates
+ of width vector in operand stack */
+ if(only_drawing) {
+ push(1);
+ make_real(op - 1, 0.0);
+ make_real(op, 0.0);
+ }
+ else
+ pop(1);
+ #else
pop(1);
+ #endif
return 0;
}
pis = (gs_type1_state *)alloc(1, gs_type1_state_sizeof, "type1addpath");
***************
*** 321,327 ****
--- 384,395 ----
return code;
}
charstring = op->value.bytes;
+ #ifdef WMODE
+ more: code = gs_type1_interpret(pis, charstring, &value,
+ &wx, &wy, only_drawing);
+ #else
more: code = gs_type1_interpret(pis, charstring, &value);
+ #endif
charstring = 0;
switch ( code )
{
***************
*** 380,386 ****
--- 448,467 ----
} break;
}
alloc_free((char *)pis, 1, gs_type1_state_sizeof, "type1addpath");
+ #ifdef WMODE /* if only_drawing flag is true, push x, y coordinates
+ of width vector in operand stack */
+ if ( code < 0 )
+ return code;
+ if(only_drawing) {
+ push(1);
+ make_real(op - 1, wx);
+ make_real(op, wy);
+ }
+ else
+ pop(1);
+ #else
if ( code >= 0 ) pop(1);
+ #endif
return code;
}
***************
*** 434,439 ****
--- 515,523 ----
{"2charpath", zcharpath},
{"2kshow", zkshow},
{"3setcachedevice", zsetcachedevice},
+ #ifdef WMODE
+ {"7setcachedevice2", zsetcachedevice2},
+ #endif
{"2setcharwidth", zsetcharwidth},
{"1.setmetrics", zsetmetrics},
{"1show", zshow},
*** zfont.c.orig Wed Apr 8 06:27:38 1992
--- zfont.c Fri May 15 17:28:40 1992
***************
*** 112,117 ****
--- 112,122 ----
if ( code < 0 || (code = gs_setfont(igs, pfont)) < 0 )
return code;
istate.font = *op;
+ #ifdef COMPFONT /* set current font as rootfont */
+ if((code = gs_setrootfont(igs, pfont)) < 0)
+ return code;
+ istate.rootfont = *op;
+ #endif
pop(1);
return code;
}
***************
*** 232,237 ****
--- 237,254 ----
ref newmat;
ref *mbody;
int code;
+ #ifdef COMPFONT
+ if((code = font_param(fp, &oldfont)) < 0)
+ return code;
+ if(oldfont->FontType == ft_composite) {
+ if((code = make_composite_font(fp, oldfont, pmat,
+ &newdict, &newfont)) < 0)
+ return code;
+ *fp = newdict;
+ pop(1);
+ return 0;
+ }
+ #endif
if ( (code = font_param(fp, &oldfont)) < 0 ||
(code = gs_makefont(ifont_dir, oldfont, pmat,
&newfont, &ffont)) < 0 ||
*** zfont0.c.orig Wed Nov 27 07:47:46 1991
--- zfont0.c Fri May 22 16:05:04 1992
***************
*** 45,53 ****
--- 45,60 ----
/* Imports */
extern int build_gs_font(P4(os_ptr, gs_font **, font_type, ref *));
extern ref name_FID;
+ #ifdef COMPFONT
+ extern ref name_FontMatrix;
+ extern gs_font_dir *ifont_dir; /* needed for make_composite_font */
+ #endif
/* Forward references */
private int ensure_char_entry(P4(os_ptr, ref *, byte *, int));
+ #ifdef COMPFONT
+ private int make_descender_fonts(P3(ref *, gs_font *, gs_matrix *));
+ #endif
/* Names of system-known keys in type 0 font dictionaries: */
private ref name_EscChar;
***************
*** 150,155 ****
--- 157,168 ----
(r_size(psubsvector) - 1) % data.subs_width != 0
)
return e_invalidfont;
+
+ #ifdef COMPFONT /* reference to SubsVector must be done
+ only when FMapType is 6 (fmap_SubsVector). */
+ data.subs_size = (r_size(psubsvector) - 1) / data.subs_width;
+ data.SubsVector = psubsvector->value.bytes + 1;
+ #endif
default:
code = 0;
}
***************
*** 164,171 ****
--- 177,187 ----
}
/* Fill in the font data */
pdata = (font_data *)(pfont->client_data);
+ #ifndef COMPFONT /* reference to SubsVector must be done
+ only when FMapType is 6 (fmap_SubsVector). */
data.subs_size = (r_size(psubsvector) - 1) / data.subs_width;
data.SubsVector = psubsvector->value.bytes + 1;
+ #endif
data.encoding_size = r_size(&pdata->Encoding);
data.Encoding =
(uint *)alloc(data.encoding_size, sizeof(uint),
***************
*** 190,195 ****
--- 206,226 ----
data.FDepVector[i] = pfid->value.pfont;
}
pfont->data.type0_data = data;
+ #ifdef COMPFONT
+ /* check if the FDepVector contains any composite fonts. */
+ for(i=0; i<data.fdep_size; i++) {
+ ref *pdep, *pfid;
+ pdep = pfdepvector->value.refs + i;
+ if((code = dict_find(pdep, &name_FID, &pfid)) <= 0)
+ return code;
+ if(pfid->value.pfont->FontType == ft_composite)
+ break;
+ }
+ if(i != data.fdep_size) {
+ /* Make transformed descender fonts and update FDepVector */
+ make_descender_fonts(op, pfont, &pfont->FontMatrix);
+ }
+ #endif
return 0;
}
/* Private routine to find or add an integer entry in a font dictionary. */
***************
*** 199,204 ****
--- 230,238 ----
if ( dict_find(op, pname, &pentry) <= 0 )
{ ref ent;
make_int(&ent, default_value);
+ #ifdef COMPFONT /* if the entry is not found, default_value should be used */
+ *pvalue = (byte)default_value;
+ #endif
return dict_put(op, pname, &ent);
}
else
***************
*** 210,215 ****
--- 244,343 ----
return 0;
}
+ #ifdef COMPFONT
+ /* Make a transformed composite font. */
+
+ int
+ make_composite_font(ref *olddict, gs_font *oldfont, gs_matrix *pmat,
+ ref *newdict, gs_font **pnewfont)
+ {
+ int code;
+ gs_font *newfont, *ffont;
+ ref newmat;
+ ref *mbody;
+
+ if((code = gs_makefont(ifont_dir, oldfont, pmat,
+ &newfont, &ffont)) < 0 ||
+ (code = dict_create(dict_maxlength(olddict), newdict)) < 0 ||
+ (code = dict_copy(olddict, newdict)) < 0 ||
+ (code = ((mbody = alloc_refs(6, "make_composite_font")) == 0 ?
+ e_VMerror : 0)) < 0 ||
+ (make_tasv_new(&newmat, t_array, a_all, 6, refs, mbody),
+ (code = dict_put(newdict, &name_FontMatrix, &newmat))) < 0 ||
+ (code = add_FID(newdict, newfont)) < 0
+ )
+ return code;
+ *(gs_matrix *)mbody = newfont->FontMatrix;
+ if ( ffont )
+ { /****** SHOULD DECREMENT REFCT ******/
+ }
+
+ /* Make transformed descender fonts and update FDepVector */
+ make_descender_fonts(newdict, newfont, pmat);
+
+ r_clear_attrs(dict_access_ref(newdict), a_write);
+ *pnewfont = newfont;
+ return 0;
+ }
+
+ /* Make transformed descender composite fonts and update FDepVector */
+
+ private int
+ make_descender_fonts(ref *pdict, gs_font *pfont, gs_matrix *pmat)
+ {
+ int code;
+ int i, size;
+ ref *pfdepvector, newfdepvector;
+ ref *abody;
+ gs_type0_data *type0_data = &pfont->data.type0_data;
+
+ /* find old FDepVector */
+ if((code = dict_find(pdict, &name_FDepVector, &pfdepvector)) <= 0)
+ return code;
+ if((size = r_size(pfdepvector)) != type0_data->fdep_size)
+ return e_invalidfont;
+
+ /* allocate new FDepVector body */
+ if((abody = alloc_refs(size, "make_descender_fonts")) == 0)
+ return e_VMerror;
+
+ for(i=0; i<size; i++) {
+ gs_font *oldfont, *newfont;
+ ref newdict;
+ ref *pdep, *pfid;
+
+ /* get FID */
+ pdep = pfdepvector->value.refs + i;
+ if((code = dict_find(pdep, &name_FID, &pfid)) <= 0)
+ return code;
+ oldfont = pfid->value.pfont;
+
+ /* if the child font is a composite font,
+ replace it with a transformed font. */
+ if(oldfont->FontType == ft_composite) {
+ /* make a transformed composite font */
+ code = make_composite_font(pdep, oldfont, pmat,
+ &newdict, &newfont);
+ if(code < 0)
+ return code;
+ abody[i] = newdict;
+ type0_data->FDepVector[i] = newfont;
+ }
+ else {
+ abody[i] = *pdep;
+ type0_data->FDepVector[i] = oldfont;
+ }
+ }
+
+ /* update the FDepVector in the font dictionary */
+ make_tasv_new(&newfdepvector, t_array, a_all, size, refs, abody);
+ if((code = dict_put(pdict, &name_FDepVector, &newfdepvector)) < 0)
+ return code;
+
+ return 0;
+ }
+ #endif
+
/* ------ Initialization procedure ------ */
op_def zfont0_op_defs[] = {
*** zfont2.c.orig Wed Apr 8 06:27:14 1992
--- zfont2.c Fri May 15 17:28:41 1992
***************
*** 150,156 ****
--- 150,172 ----
/* because UniqueID need not be present in all fonts, */
/* and if it is, the legal range is 0 to 2^24-1. */
if ( dict_find(op, &name_UniqueID, &puniqueid) <= 0 )
+ #ifdef COMPFONT
+ /* Using composite fonts require to execute gs_makefont */
+ /* many times, and UniqueID is the key identifier of */
+ /* the gs_makefont cache (i.e. scaled font cashe). */
+ /* Hence, it is essential for cache performance */
+ /* whether fonts have a valid UniqueID. */
+ {
+ /* Generate a fake UniqueID */
+ static long fake_unique_id = (1L << 24);
+ if(fake_unique_id < (((unsigned long)1L) << 31) - 1)
+ unique_id = ++ fake_unique_id;
+ else
+ unique_id = -1;
+ }
+ #else
unique_id = -1;
+ #endif
else
{ if ( !r_has_type(puniqueid, t_integer) ||
puniqueid->value.intval < 0 ||
*** zmisc.c.orig Fri Apr 17 02:53:22 1992
--- zmisc.c Fri May 15 17:28:41 1992
***************
*** 35,41 ****
--- 35,45 ----
#include "gstype1.h"
/* Import the C getenv function */
+ #ifdef ORIGINAL
extern char *getenv(P1(char *));
+ #else
+ extern char *getenv(P1(const char *));
+ #endif
/* bind */
int
*** gs.mak.orig Tue Apr 21 18:15:04 1992
--- gs.mak Fri May 15 17:28:42 1992
***************
*** 526,541 ****
### Composite font support
- gschar0.$(OBJ): gschar0.c $(GXERR) \
- $(gxfixed_h) $(gxmatrix_h) $(gzdevice_h) $(gxdevmem_h) $(gxfont_h) $(gxchar_h) $(gzstate_h)
-
zfont0.$(OBJ): zfont0.c $(OP) $(gsmatrix_h) $(gxdevice_h) $(gxfont_h) \
$(alloc_h) $(font_h) $(dict_h) $(name_h) $(state_h) $(store_h)
! compfont_=zfont0.$(OBJ) gschar0.$(OBJ)
compfont.dev: $(compfont_)
$(SHP)gssetmod compfont $(compfont_)
! $(SHP)gsaddmod compfont -oper zfont0
### Filters other than eexec and ASCIIHex
--- 526,607 ----
### Composite font support
zfont0.$(OBJ): zfont0.c $(OP) $(gsmatrix_h) $(gxdevice_h) $(gxfont_h) \
$(alloc_h) $(font_h) $(dict_h) $(name_h) $(state_h) $(store_h)
! zcomp.$(OBJ): zcomp.c $(OP) $(gxfixed_h) $(gxmatrix_h) $(gschar_h) \
! $(gxdevice_h) $(gxfont_h) $(gspath_h) $(gzstate_h) \
! $(alloc_h) $(dict_h) $(font_h) $(iutil_h) $(name_h) \
! $(estack_h) $(state_h) $(store_h)
!
! compfont_=zfont0.$(OBJ) zcomp.$(OBJ)
compfont.dev: $(compfont_)
$(SHP)gssetmod compfont $(compfont_)
! $(SHP)gsaddmod compfont -oper zfont0 zcomp
!
! ### Kanji font support
!
! zimpath.$(OBJ): zimpath.c $(OP) $(gsmatrix_h) $(gspath_h) $(state_h) $(store_h)
!
! kfutil.$(OBJ): kfutil.c $(OP) $(gsmatrix_h)
!
! kanji_=zimpath.$(OBJ) kfutil.$(OBJ)
! kanji.dev: $(kanji_)
! $(SHP)gssetmod kanji $(kanji_)
! $(SHP)gsaddmod kanji -oper zimpath
!
! zkfpcf.$(OBJ): zkfpcf.c $(OP) $(gsmatrix_h) $(state_h) $(store_h)
! $(CCC) -Iinclude.pcf zkfpcf.c
!
! kfpcf_=zkfpcf.$(OBJ)
! kfpcf.dev: $(kfpcf_)
! $(SHP)gssetmod kfpcf $(kfpcf_)
! $(SHP)gsaddmod kfpcf -oper zkfpcf
! $(SHP)gsaddmod kfpcf -ps kfpcf
!
! zkfsnf.$(OBJ): zkfsnf.c $(OP) $(gsmatrix_h) $(state_h) $(store_h)
! $(CCC) -Iinclude.snf zkfsnf.c
!
! kfsnf_=zkfsnf.$(OBJ)
! kfsnf.dev: $(kfsnf_)
! $(SHP)gssetmod kfsnf $(kfsnf_)
! $(SHP)gsaddmod kfsnf -oper zkfsnf
! $(SHP)gsaddmod kfsnf -ps kfsnf
!
! zkfsony.$(OBJ): zkfsony.c $(OP) $(gspath_h) $(state_h)
!
! kfsony_=zkfsony.$(OBJ)
! kfsony.dev: $(kfsony_)
! $(SHP)gssetmod kfsony $(kfsony_)
! $(SHP)gsaddmod kfsony -oper zkfsony
! $(SHP)gsaddmod kfsony -ps kfsony
! $(SHP)gsaddmod kfsony -lib FSlib
!
! zkfjtex.$(OBJ): zkfjtex.c $(OP) $(gsmatrix_h) $(state_h) $(store_h)
!
! kfjtex_=zkfjtex.$(OBJ)
! kfjtex.dev: $(kfjtex_)
! $(SHP)gssetmod kfjtex $(kfjtex_)
! $(SHP)gsaddmod kfjtex -oper zkfjtex
! $(SHP)gsaddmod kfjtex -ps kfjtex
!
! zkfzeit.$(OBJ): zkfzeit.c $(OP) \
! $(gspath_h) $(gsmatrix_h) $(gscoord_h) $(gsstate_h) $(state_h)
!
! kfzeit_=zkfzeit.$(OBJ)
! kfzeit.dev: $(kfzeit_)
! $(SHP)gssetmod kfzeit $(kfzeit_)
! $(SHP)gsaddmod kfzeit -oper zkfzeit
! $(SHP)gsaddmod kfzeit -ps kfzeit
!
! zkfpc98.$(OBJ): zkfpc98.c $(OP) $(gsmatrix_h) $(state_h) $(store_h) $(alloc_h)
!
! kfpc98_=zkfpc98.$(OBJ)
! kfpc98.dev: $(kfpc98_)
! $(SHP)gssetmod kfpc98 $(kfpc98_)
! $(SHP)gsaddmod kfpc98 -oper zkfpc98
! $(SHP)gsaddmod kfpc98 -ps kfpc98
! $(SHP)gsaddmod kfpc98 -lib pc
### Filters other than eexec and ASCIIHex
*** cc-head.mak.orig Fri Apr 10 19:46:10 1992
--- cc-head.mak Fri May 15 17:28:42 1992
***************
*** 59,65 ****
# Add -DSVR4 (not -DSYSV) for System V release 4.
# XCFLAGS can be set from the command line.
! CFLAGS=-O $(XCFLAGS)
# Define platform flags for ld.
# SunOS and some others want -X; Ultrix wants -x.
--- 59,65 ----
# Add -DSVR4 (not -DSYSV) for System V release 4.
# XCFLAGS can be set from the command line.
! CFLAGS=-O $(XCFLAGS) -DCOMPFONT -DWMODE -DKANJI
# Define platform flags for ld.
# SunOS and some others want -X; Ultrix wants -x.
***************
*** 100,106 ****
# Choose the language feature(s) to include. See gs.mak for details.
! FEATURE_DEVS=filter.dev dps.dev level2.dev
# Choose the device(s) to include. See devs.mak for details.
--- 100,107 ----
# Choose the language feature(s) to include. See gs.mak for details.
! FEATURE_DEVS=filter.dev dps.dev level2.dev compfont.dev kanji.dev \
! kfpcf.dev kfsnf.dev kfzeit.dev kfjtex.dev
# Choose the device(s) to include. See devs.mak for details.
*** gcc-head.mak.orig Fri Apr 10 19:46:10 1992
--- gcc-head.mak Fri May 15 17:28:42 1992
***************
*** 67,73 ****
# specific stuff that <math.h> typically needs; nevertheless, we expect
# gcc to accept ANSI-style function prototypes and function definitions.
! CFLAGS=-g -O $(XCFLAGS)
# Define platform flags for ld.
# SunOS and some others want -X; Ultrix wants -x.
--- 67,73 ----
# specific stuff that <math.h> typically needs; nevertheless, we expect
# gcc to accept ANSI-style function prototypes and function definitions.
! CFLAGS=-g -O $(XCFLAGS) -DCOMPFONT -DWMODE -DKANJI
# Define platform flags for ld.
# SunOS and some others want -X; Ultrix wants -x.
***************
*** 108,114 ****
# Choose the language feature(s) to include. See gs.mak for details.
! FEATURE_DEVS=filter.dev dps.dev level2.dev
# Choose the device(s) to include. See devs.mak for details.
--- 108,115 ----
# Choose the language feature(s) to include. See gs.mak for details.
! FEATURE_DEVS=filter.dev dps.dev level2.dev compfont.dev kanji.dev \
! kfpcf.dev kfsnf.dev kfzeit.dev kfjtex.dev
# Choose the device(s) to include. See devs.mak for details.
*** ansihead.mak.orig Thu Mar 26 01:24:08 1992
--- ansihead.mak Fri May 15 17:28:43 1992
***************
*** 64,70 ****
# The HP 400 seems to want -Aa -w -D_HPUX_SOURCE.
# XCFLAGS can be set from the command line.
! CFLAGS=-O $(XCFLAGS)
# Define platform flags for ld.
# SunOS and some others want -X; Ultrix wants -x.
--- 64,70 ----
# The HP 400 seems to want -Aa -w -D_HPUX_SOURCE.
# XCFLAGS can be set from the command line.
! CFLAGS=-O $(XCFLAGS) -DCOMPFONT -DWMODE -DKANJI
# Define platform flags for ld.
# SunOS and some others want -X; Ultrix wants -x.
***************
*** 104,110 ****
# Choose the language feature(s) to include. See gs.mak for details.
! FEATURE_DEVS=filter.dev dps.dev level2.dev
# Choose the device(s) to include. See devs.mak for details.
--- 104,111 ----
# Choose the language feature(s) to include. See gs.mak for details.
! FEATURE_DEVS=filter.dev dps.dev level2.dev compfont.dev kanji.dev \
! kfpcf.dev kfsnf.dev kfzeit.dev kfjtex.dev
# Choose the device(s) to include. See devs.mak for details.
*** unixhead.mak.orig Mon May 25 19:20:19 1992
--- unixhead.mak Mon May 25 19:00:57 1992
***************
*** 49,55 ****
CCFLAGS=$(GENOPT) $(CFLAGS)
! .c.o: $(AK)
$(CCC) $*.c
CC0=$(CCC)
--- 49,55 ----
CCFLAGS=$(GENOPT) $(CFLAGS)
! .c.o:
$(CCC) $*.c
CC0=$(CCC)
*** unix-cc.mak.orig Wed Apr 22 05:24:49 1992
--- unix-cc.mak Wed Jul 1 18:58:15 1992
***************
*** 59,65 ****
# Add -DSVR4 (not -DSYSV) for System V release 4.
# XCFLAGS can be set from the command line.
! CFLAGS=-O $(XCFLAGS)
# Define platform flags for ld.
# SunOS and some others want -X; Ultrix wants -x.
--- 59,65 ----
# Add -DSVR4 (not -DSYSV) for System V release 4.
# XCFLAGS can be set from the command line.
! CFLAGS=-O $(XCFLAGS) -DCOMPFONT -DWMODE -DKANJI
# Define platform flags for ld.
# SunOS and some others want -X; Ultrix wants -x.
***************
*** 100,106 ****
# Choose the language feature(s) to include. See gs.mak for details.
! FEATURE_DEVS=filter.dev dps.dev level2.dev
# Choose the device(s) to include. See devs.mak for details.
--- 100,107 ----
# Choose the language feature(s) to include. See gs.mak for details.
! FEATURE_DEVS=filter.dev dps.dev level2.dev compfont.dev kanji.dev \
! kfpcf.dev kfsnf.dev kfzeit.dev kfjtex.dev
# Choose the device(s) to include. See devs.mak for details.
***************
*** 175,181 ****
CCFLAGS=$(GENOPT) $(CFLAGS)
! .c.o: $(AK)
$(CCC) $*.c
CC0=$(CCC)
--- 176,182 ----
CCFLAGS=$(GENOPT) $(CFLAGS)
! .c.o:
$(CCC) $*.c
CC0=$(CCC)
***************
*** 708,723 ****
### Composite font support
- gschar0.$(OBJ): gschar0.c $(GXERR) \
- $(gxfixed_h) $(gxmatrix_h) $(gzdevice_h) $(gxdevmem_h) $(gxfont_h) $(gxchar_h) $(gzstate_h)
-
zfont0.$(OBJ): zfont0.c $(OP) $(gsmatrix_h) $(gxdevice_h) $(gxfont_h) \
$(alloc_h) $(font_h) $(dict_h) $(name_h) $(state_h) $(store_h)
! compfont_=zfont0.$(OBJ) gschar0.$(OBJ)
compfont.dev: $(compfont_)
$(SHP)gssetmod compfont $(compfont_)
! $(SHP)gsaddmod compfont -oper zfont0
### Filters other than eexec and ASCIIHex
--- 709,790 ----
### Composite font support
zfont0.$(OBJ): zfont0.c $(OP) $(gsmatrix_h) $(gxdevice_h) $(gxfont_h) \
$(alloc_h) $(font_h) $(dict_h) $(name_h) $(state_h) $(store_h)
! zcomp.$(OBJ): zcomp.c $(OP) $(gxfixed_h) $(gxmatrix_h) $(gschar_h) \
! $(gxdevice_h) $(gxfont_h) $(gspath_h) $(gzstate_h) \
! $(alloc_h) $(dict_h) $(font_h) $(iutil_h) $(name_h) \
! $(estack_h) $(state_h) $(store_h)
!
! compfont_=zfont0.$(OBJ) zcomp.$(OBJ)
compfont.dev: $(compfont_)
$(SHP)gssetmod compfont $(compfont_)
! $(SHP)gsaddmod compfont -oper zfont0 zcomp
!
! ### Kanji font support
!
! zimpath.$(OBJ): zimpath.c $(OP) $(gsmatrix_h) $(gspath_h) $(state_h) $(store_h)
!
! kfutil.$(OBJ): kfutil.c $(OP) $(gsmatrix_h)
!
! kanji_=zimpath.$(OBJ) kfutil.$(OBJ)
! kanji.dev: $(kanji_)
! $(SHP)gssetmod kanji $(kanji_)
! $(SHP)gsaddmod kanji -oper zimpath
!
! zkfpcf.$(OBJ): zkfpcf.c $(OP) $(gsmatrix_h) $(state_h) $(store_h)
! $(CCC) -Iinclude.pcf zkfpcf.c
!
! kfpcf_=zkfpcf.$(OBJ)
! kfpcf.dev: $(kfpcf_)
! $(SHP)gssetmod kfpcf $(kfpcf_)
! $(SHP)gsaddmod kfpcf -oper zkfpcf
! $(SHP)gsaddmod kfpcf -ps kfpcf
!
! zkfsnf.$(OBJ): zkfsnf.c $(OP) $(gsmatrix_h) $(state_h) $(store_h)
! $(CCC) -Iinclude.snf zkfsnf.c
!
! kfsnf_=zkfsnf.$(OBJ)
! kfsnf.dev: $(kfsnf_)
! $(SHP)gssetmod kfsnf $(kfsnf_)
! $(SHP)gsaddmod kfsnf -oper zkfsnf
! $(SHP)gsaddmod kfsnf -ps kfsnf
!
! zkfsony.$(OBJ): zkfsony.c $(OP) $(gspath_h) $(state_h)
!
! kfsony_=zkfsony.$(OBJ)
! kfsony.dev: $(kfsony_)
! $(SHP)gssetmod kfsony $(kfsony_)
! $(SHP)gsaddmod kfsony -oper zkfsony
! $(SHP)gsaddmod kfsony -ps kfsony
! $(SHP)gsaddmod kfsony -lib FSlib
!
! zkfjtex.$(OBJ): zkfjtex.c $(OP) $(gsmatrix_h) $(state_h) $(store_h)
!
! kfjtex_=zkfjtex.$(OBJ)
! kfjtex.dev: $(kfjtex_)
! $(SHP)gssetmod kfjtex $(kfjtex_)
! $(SHP)gsaddmod kfjtex -oper zkfjtex
! $(SHP)gsaddmod kfjtex -ps kfjtex
!
! zkfzeit.$(OBJ): zkfzeit.c $(OP) \
! $(gspath_h) $(gsmatrix_h) $(gscoord_h) $(gsstate_h) $(state_h)
!
! kfzeit_=zkfzeit.$(OBJ)
! kfzeit.dev: $(kfzeit_)
! $(SHP)gssetmod kfzeit $(kfzeit_)
! $(SHP)gsaddmod kfzeit -oper zkfzeit
! $(SHP)gsaddmod kfzeit -ps kfzeit
!
! zkfpc98.$(OBJ): zkfpc98.c $(OP) $(gsmatrix_h) $(state_h) $(store_h) $(alloc_h)
!
! kfpc98_=zkfpc98.$(OBJ)
! kfpc98.dev: $(kfpc98_)
! $(SHP)gssetmod kfpc98 $(kfpc98_)
! $(SHP)gsaddmod kfpc98 -oper zkfpc98
! $(SHP)gsaddmod kfpc98 -ps kfpc98
! $(SHP)gsaddmod kfpc98 -lib pc
### Filters other than eexec and ASCIIHex
*** unix-gcc.mak.orig Wed Apr 22 05:24:49 1992
--- unix-gcc.mak Wed Jul 1 18:58:15 1992
***************
*** 67,73 ****
# specific stuff that <math.h> typically needs; nevertheless, we expect
# gcc to accept ANSI-style function prototypes and function definitions.
! CFLAGS=-g -O $(XCFLAGS)
# Define platform flags for ld.
# SunOS and some others want -X; Ultrix wants -x.
--- 67,73 ----
# specific stuff that <math.h> typically needs; nevertheless, we expect
# gcc to accept ANSI-style function prototypes and function definitions.
! CFLAGS=-g -O $(XCFLAGS) -DCOMPFONT -DWMODE -DKANJI
# Define platform flags for ld.
# SunOS and some others want -X; Ultrix wants -x.
***************
*** 108,114 ****
# Choose the language feature(s) to include. See gs.mak for details.
! FEATURE_DEVS=filter.dev dps.dev level2.dev
# Choose the device(s) to include. See devs.mak for details.
--- 108,115 ----
# Choose the language feature(s) to include. See gs.mak for details.
! FEATURE_DEVS=filter.dev dps.dev level2.dev compfont.dev kanji.dev \
! kfpcf.dev kfsnf.dev kfzeit.dev kfjtex.dev
# Choose the device(s) to include. See devs.mak for details.
***************
*** 183,189 ****
CCFLAGS=$(GENOPT) $(CFLAGS)
! .c.o: $(AK)
$(CCC) $*.c
CC0=$(CCC)
--- 184,190 ----
CCFLAGS=$(GENOPT) $(CFLAGS)
! .c.o:
$(CCC) $*.c
CC0=$(CCC)
***************
*** 716,731 ****
### Composite font support
- gschar0.$(OBJ): gschar0.c $(GXERR) \
- $(gxfixed_h) $(gxmatrix_h) $(gzdevice_h) $(gxdevmem_h) $(gxfont_h) $(gxchar_h) $(gzstate_h)
-
zfont0.$(OBJ): zfont0.c $(OP) $(gsmatrix_h) $(gxdevice_h) $(gxfont_h) \
$(alloc_h) $(font_h) $(dict_h) $(name_h) $(state_h) $(store_h)
! compfont_=zfont0.$(OBJ) gschar0.$(OBJ)
compfont.dev: $(compfont_)
$(SHP)gssetmod compfont $(compfont_)
! $(SHP)gsaddmod compfont -oper zfont0
### Filters other than eexec and ASCIIHex
--- 717,798 ----
### Composite font support
zfont0.$(OBJ): zfont0.c $(OP) $(gsmatrix_h) $(gxdevice_h) $(gxfont_h) \
$(alloc_h) $(font_h) $(dict_h) $(name_h) $(state_h) $(store_h)
! zcomp.$(OBJ): zcomp.c $(OP) $(gxfixed_h) $(gxmatrix_h) $(gschar_h) \
! $(gxdevice_h) $(gxfont_h) $(gspath_h) $(gzstate_h) \
! $(alloc_h) $(dict_h) $(font_h) $(iutil_h) $(name_h) \
! $(estack_h) $(state_h) $(store_h)
!
! compfont_=zfont0.$(OBJ) zcomp.$(OBJ)
compfont.dev: $(compfont_)
$(SHP)gssetmod compfont $(compfont_)
! $(SHP)gsaddmod compfont -oper zfont0 zcomp
!
! ### Kanji font support
!
! zimpath.$(OBJ): zimpath.c $(OP) $(gsmatrix_h) $(gspath_h) $(state_h) $(store_h)
!
! kfutil.$(OBJ): kfutil.c $(OP) $(gsmatrix_h)
!
! kanji_=zimpath.$(OBJ) kfutil.$(OBJ)
! kanji.dev: $(kanji_)
! $(SHP)gssetmod kanji $(kanji_)
! $(SHP)gsaddmod kanji -oper zimpath
!
! zkfpcf.$(OBJ): zkfpcf.c $(OP) $(gsmatrix_h) $(state_h) $(store_h)
! $(CCC) -Iinclude.pcf zkfpcf.c
!
! kfpcf_=zkfpcf.$(OBJ)
! kfpcf.dev: $(kfpcf_)
! $(SHP)gssetmod kfpcf $(kfpcf_)
! $(SHP)gsaddmod kfpcf -oper zkfpcf
! $(SHP)gsaddmod kfpcf -ps kfpcf
!
! zkfsnf.$(OBJ): zkfsnf.c $(OP) $(gsmatrix_h) $(state_h) $(store_h)
! $(CCC) -Iinclude.snf zkfsnf.c
!
! kfsnf_=zkfsnf.$(OBJ)
! kfsnf.dev: $(kfsnf_)
! $(SHP)gssetmod kfsnf $(kfsnf_)
! $(SHP)gsaddmod kfsnf -oper zkfsnf
! $(SHP)gsaddmod kfsnf -ps kfsnf
!
! zkfsony.$(OBJ): zkfsony.c $(OP) $(gspath_h) $(state_h)
!
! kfsony_=zkfsony.$(OBJ)
! kfsony.dev: $(kfsony_)
! $(SHP)gssetmod kfsony $(kfsony_)
! $(SHP)gsaddmod kfsony -oper zkfsony
! $(SHP)gsaddmod kfsony -ps kfsony
! $(SHP)gsaddmod kfsony -lib FSlib
!
! zkfjtex.$(OBJ): zkfjtex.c $(OP) $(gsmatrix_h) $(state_h) $(store_h)
!
! kfjtex_=zkfjtex.$(OBJ)
! kfjtex.dev: $(kfjtex_)
! $(SHP)gssetmod kfjtex $(kfjtex_)
! $(SHP)gsaddmod kfjtex -oper zkfjtex
! $(SHP)gsaddmod kfjtex -ps kfjtex
!
! zkfzeit.$(OBJ): zkfzeit.c $(OP) \
! $(gspath_h) $(gsmatrix_h) $(gscoord_h) $(gsstate_h) $(state_h)
!
! kfzeit_=zkfzeit.$(OBJ)
! kfzeit.dev: $(kfzeit_)
! $(SHP)gssetmod kfzeit $(kfzeit_)
! $(SHP)gsaddmod kfzeit -oper zkfzeit
! $(SHP)gsaddmod kfzeit -ps kfzeit
!
! zkfpc98.$(OBJ): zkfpc98.c $(OP) $(gsmatrix_h) $(state_h) $(store_h) $(alloc_h)
!
! kfpc98_=zkfpc98.$(OBJ)
! kfpc98.dev: $(kfpc98_)
! $(SHP)gssetmod kfpc98 $(kfpc98_)
! $(SHP)gsaddmod kfpc98 -oper zkfpc98
! $(SHP)gsaddmod kfpc98 -ps kfpc98
! $(SHP)gsaddmod kfpc98 -lib pc
### Filters other than eexec and ASCIIHex
*** unix-ansi.mak.orig Wed Apr 22 05:24:48 1992
--- unix-ansi.mak Wed Jul 1 18:58:15 1992
***************
*** 64,70 ****
# The HP 400 seems to want -Aa -w -D_HPUX_SOURCE.
# XCFLAGS can be set from the command line.
! CFLAGS=-O $(XCFLAGS)
# Define platform flags for ld.
# SunOS and some others want -X; Ultrix wants -x.
--- 64,70 ----
# The HP 400 seems to want -Aa -w -D_HPUX_SOURCE.
# XCFLAGS can be set from the command line.
! CFLAGS=-O $(XCFLAGS) -DCOMPFONT -DWMODE -DKANJI
# Define platform flags for ld.
# SunOS and some others want -X; Ultrix wants -x.
***************
*** 104,110 ****
# Choose the language feature(s) to include. See gs.mak for details.
! FEATURE_DEVS=filter.dev dps.dev level2.dev
# Choose the device(s) to include. See devs.mak for details.
--- 104,111 ----
# Choose the language feature(s) to include. See gs.mak for details.
! FEATURE_DEVS=filter.dev dps.dev level2.dev compfont.dev kanji.dev \
! kfpcf.dev kfsnf.dev kfzeit.dev kfjtex.dev
# Choose the device(s) to include. See devs.mak for details.
***************
*** 179,185 ****
CCFLAGS=$(GENOPT) $(CFLAGS)
! .c.o: $(AK)
$(CCC) $*.c
CC0=$(CCC)
--- 180,186 ----
CCFLAGS=$(GENOPT) $(CFLAGS)
! .c.o:
$(CCC) $*.c
CC0=$(CCC)
***************
*** 712,727 ****
### Composite font support
- gschar0.$(OBJ): gschar0.c $(GXERR) \
- $(gxfixed_h) $(gxmatrix_h) $(gzdevice_h) $(gxdevmem_h) $(gxfont_h) $(gxchar_h) $(gzstate_h)
-
zfont0.$(OBJ): zfont0.c $(OP) $(gsmatrix_h) $(gxdevice_h) $(gxfont_h) \
$(alloc_h) $(font_h) $(dict_h) $(name_h) $(state_h) $(store_h)
! compfont_=zfont0.$(OBJ) gschar0.$(OBJ)
compfont.dev: $(compfont_)
$(SHP)gssetmod compfont $(compfont_)
! $(SHP)gsaddmod compfont -oper zfont0
### Filters other than eexec and ASCIIHex
--- 713,794 ----
### Composite font support
zfont0.$(OBJ): zfont0.c $(OP) $(gsmatrix_h) $(gxdevice_h) $(gxfont_h) \
$(alloc_h) $(font_h) $(dict_h) $(name_h) $(state_h) $(store_h)
! zcomp.$(OBJ): zcomp.c $(OP) $(gxfixed_h) $(gxmatrix_h) $(gschar_h) \
! $(gxdevice_h) $(gxfont_h) $(gspath_h) $(gzstate_h) \
! $(alloc_h) $(dict_h) $(font_h) $(iutil_h) $(name_h) \
! $(estack_h) $(state_h) $(store_h)
!
! compfont_=zfont0.$(OBJ) zcomp.$(OBJ)
compfont.dev: $(compfont_)
$(SHP)gssetmod compfont $(compfont_)
! $(SHP)gsaddmod compfont -oper zfont0 zcomp
!
! ### Kanji font support
!
! zimpath.$(OBJ): zimpath.c $(OP) $(gsmatrix_h) $(gspath_h) $(state_h) $(store_h)
!
! kfutil.$(OBJ): kfutil.c $(OP) $(gsmatrix_h)
!
! kanji_=zimpath.$(OBJ) kfutil.$(OBJ)
! kanji.dev: $(kanji_)
! $(SHP)gssetmod kanji $(kanji_)
! $(SHP)gsaddmod kanji -oper zimpath
!
! zkfpcf.$(OBJ): zkfpcf.c $(OP) $(gsmatrix_h) $(state_h) $(store_h)
! $(CCC) -Iinclude.pcf zkfpcf.c
!
! kfpcf_=zkfpcf.$(OBJ)
! kfpcf.dev: $(kfpcf_)
! $(SHP)gssetmod kfpcf $(kfpcf_)
! $(SHP)gsaddmod kfpcf -oper zkfpcf
! $(SHP)gsaddmod kfpcf -ps kfpcf
!
! zkfsnf.$(OBJ): zkfsnf.c $(OP) $(gsmatrix_h) $(state_h) $(store_h)
! $(CCC) -Iinclude.snf zkfsnf.c
!
! kfsnf_=zkfsnf.$(OBJ)
! kfsnf.dev: $(kfsnf_)
! $(SHP)gssetmod kfsnf $(kfsnf_)
! $(SHP)gsaddmod kfsnf -oper zkfsnf
! $(SHP)gsaddmod kfsnf -ps kfsnf
!
! zkfsony.$(OBJ): zkfsony.c $(OP) $(gspath_h) $(state_h)
!
! kfsony_=zkfsony.$(OBJ)
! kfsony.dev: $(kfsony_)
! $(SHP)gssetmod kfsony $(kfsony_)
! $(SHP)gsaddmod kfsony -oper zkfsony
! $(SHP)gsaddmod kfsony -ps kfsony
! $(SHP)gsaddmod kfsony -lib FSlib
!
! zkfjtex.$(OBJ): zkfjtex.c $(OP) $(gsmatrix_h) $(state_h) $(store_h)
!
! kfjtex_=zkfjtex.$(OBJ)
! kfjtex.dev: $(kfjtex_)
! $(SHP)gssetmod kfjtex $(kfjtex_)
! $(SHP)gsaddmod kfjtex -oper zkfjtex
! $(SHP)gsaddmod kfjtex -ps kfjtex
!
! zkfzeit.$(OBJ): zkfzeit.c $(OP) \
! $(gspath_h) $(gsmatrix_h) $(gscoord_h) $(gsstate_h) $(state_h)
!
! kfzeit_=zkfzeit.$(OBJ)
! kfzeit.dev: $(kfzeit_)
! $(SHP)gssetmod kfzeit $(kfzeit_)
! $(SHP)gsaddmod kfzeit -oper zkfzeit
! $(SHP)gsaddmod kfzeit -ps kfzeit
!
! zkfpc98.$(OBJ): zkfpc98.c $(OP) $(gsmatrix_h) $(state_h) $(store_h) $(alloc_h)
!
! kfpc98_=zkfpc98.$(OBJ)
! kfpc98.dev: $(kfpc98_)
! $(SHP)gssetmod kfpc98 $(kfpc98_)
! $(SHP)gsaddmod kfpc98 -oper zkfpc98
! $(SHP)gsaddmod kfpc98 -ps kfpc98
! $(SHP)gsaddmod kfpc98 -lib pc
### Filters other than eexec and ASCIIHex