diff options
author | Thomas Deutschmann <whissi@gentoo.org> | 2020-09-10 18:10:49 +0200 |
---|---|---|
committer | Thomas Deutschmann <whissi@gentoo.org> | 2020-09-11 20:06:36 +0200 |
commit | acfc02c1747065fe450c7cfeb6f1844b62335f08 (patch) | |
tree | 5887806a2e6b99bbb0255e013a9028810e230a7f /devices | |
parent | Import Ghostscript 9.52 (diff) | |
download | ghostscript-gpl-patches-acfc02c1747065fe450c7cfeb6f1844b62335f08.tar.gz ghostscript-gpl-patches-acfc02c1747065fe450c7cfeb6f1844b62335f08.tar.bz2 ghostscript-gpl-patches-acfc02c1747065fe450c7cfeb6f1844b62335f08.zip |
Import Ghostscript 9.53ghostscript-9.53
Signed-off-by: Thomas Deutschmann <whissi@gentoo.org>
Diffstat (limited to 'devices')
193 files changed, 4495 insertions, 2474 deletions
diff --git a/devices/contrib.mak b/devices/dcontrib.mak index 7f1cf863..975c68bd 100644 --- a/devices/contrib.mak +++ b/devices/dcontrib.mak @@ -1,4 +1,4 @@ -# Copyright (C) 2001-2019 Artifex Software, Inc. +# Copyright (C) 2001-2020 Artifex Software, Inc. # All Rights Reserved. # # This software is provided AS-IS with no warranty, either express or @@ -16,7 +16,7 @@ # makefile for contributed device drivers. # Define the name of this makefile. -DCONTRIB_MAK=$(DEVSRC)contrib.mak $(TOP_MAKEFILES) +DCONTRIB_MAK=$(DEVSRC)dcontrib.mak $(TOP_MAKEFILES) ###### --------------------------- Catalog -------------------------- ###### @@ -82,7 +82,7 @@ DCONTRIB_MAK=$(DEVSRC)contrib.mak $(TOP_MAKEFILES) # okiibm Okidata MicroLine IBM-compatible printers # paintjet alternate H-P PaintJet color printer # photoex Epson Stylus Color Photo, Photo EX, Photo 700 -# pj H-P PaintJet XL driver +# pj H-P PaintJet XL driver # pjetxl alternate H-P PaintJet XL driver # pjxl H-P PaintJet XL color printer # pjxl300 H-P PaintJet XL300 color printer; @@ -427,7 +427,7 @@ $(DD)paintjet.dev : $(PJET) $(DD)page.dev $(DCONTRIB_MAK) $(MAKEDIRS) $(DD)pjetxl.dev : $(PJET) $(DD)page.dev $(DCONTRIB_MAK) $(MAKEDIRS) $(SETPDEV) $(DD)pjetxl $(PJET) -###--------------------- The Brother HL 7x0 printer --------------------- ### +###--------------------- The Brother HL 7x0 printer --------------------- ### ### Note: this driver was contributed by users: please contact ### ### Pierre-Olivier Gaillard (pierre.gaillard@hol.fr) ### ### for questions about the basic driver; ### @@ -754,305 +754,305 @@ $(DEVSRC)gdevmeds.h:$(GLSRC)gxclthrd.h $(DEVSRC)gdevmeds.h:$(GLSRC)gxclpage.h $(DEVSRC)gdevmeds.h:$(GLSRC)gxclist.h $(DEVSRC)gdevmeds.h:$(GLSRC)gxgstate.h -$(DEVSRC)gdevmeds.h:$(GLSRC)gxline.h $(DEVSRC)gdevmeds.h:$(GLSRC)gstrans.h +$(DEVSRC)gdevmeds.h:$(GLSRC)gdevp14.h +$(DEVSRC)gdevmeds.h:$(GLSRC)gxline.h $(DEVSRC)gdevmeds.h:$(GLSRC)gsht1.h +$(DEVSRC)gdevmeds.h:$(GLSRC)gxcomp.h $(DEVSRC)gdevmeds.h:$(GLSRC)math_.h -$(DEVSRC)gdevmeds.h:$(GLSRC)gdevp14.h $(DEVSRC)gdevmeds.h:$(GLSRC)gxcolor2.h $(DEVSRC)gdevmeds.h:$(GLSRC)gxpcolor.h +$(DEVSRC)gdevmeds.h:$(GLSRC)gxdevmem.h $(DEVSRC)gdevmeds.h:$(GLSRC)gdevdevn.h -$(DEVSRC)gdevmeds.h:$(GLSRC)gsequivc.h $(DEVSRC)gdevmeds.h:$(GLSRC)gx.h -$(DEVSRC)gdevmeds.h:$(GLSRC)gxblend.h $(DEVSRC)gdevmeds.h:$(GLSRC)gxclipsr.h -$(DEVSRC)gdevmeds.h:$(GLSRC)gxcomp.h -$(DEVSRC)gdevmeds.h:$(GLSRC)gxdcolor.h $(DEVSRC)gdevmeds.h:$(GLSRC)gdebug.h -$(DEVSRC)gdevmeds.h:$(GLSRC)gxmatrix.h -$(DEVSRC)gdevmeds.h:$(GLSRC)gxbitfmt.h $(DEVSRC)gdevmeds.h:$(GLSRC)gxdevbuf.h +$(DEVSRC)gdevmeds.h:$(GLSRC)gxdcolor.h $(DEVSRC)gdevmeds.h:$(GLSRC)gxband.h +$(DEVSRC)gdevmeds.h:$(GLSRC)gxblend.h $(DEVSRC)gdevmeds.h:$(GLSRC)gscolor2.h -$(DEVSRC)gdevmeds.h:$(GLSRC)gscindex.h +$(DEVSRC)gdevmeds.h:$(GLSRC)gxmatrix.h $(DEVSRC)gdevmeds.h:$(GLSRC)gxdevice.h -$(DEVSRC)gdevmeds.h:$(GLSRC)gsht.h $(DEVSRC)gdevmeds.h:$(GLSRC)gxcpath.h -$(DEVSRC)gdevmeds.h:$(GLSRC)gxdevmem.h +$(DEVSRC)gdevmeds.h:$(GLSRC)gsht.h +$(DEVSRC)gdevmeds.h:$(GLSRC)gsequivc.h $(DEVSRC)gdevmeds.h:$(GLSRC)gxdevcli.h $(DEVSRC)gdevmeds.h:$(GLSRC)gxpcache.h +$(DEVSRC)gdevmeds.h:$(GLSRC)gscindex.h +$(DEVSRC)gdevmeds.h:$(GLSRC)gxcmap.h $(DEVSRC)gdevmeds.h:$(GLSRC)gsptype1.h -$(DEVSRC)gdevmeds.h:$(GLSRC)gxtext.h $(DEVSRC)gdevmeds.h:$(GLSRC)gscie.h +$(DEVSRC)gdevmeds.h:$(GLSRC)gxtext.h $(DEVSRC)gdevmeds.h:$(GLSRC)gstext.h +$(DEVSRC)gdevmeds.h:$(GLSRC)gxstate.h $(DEVSRC)gdevmeds.h:$(GLSRC)gsnamecl.h $(DEVSRC)gdevmeds.h:$(GLSRC)gstparam.h -$(DEVSRC)gdevmeds.h:$(GLSRC)gxstate.h $(DEVSRC)gdevmeds.h:$(GLSRC)gspcolor.h -$(DEVSRC)gdevmeds.h:$(GLSRC)gxfcache.h -$(DEVSRC)gdevmeds.h:$(GLSRC)gxcspace.h -$(DEVSRC)gdevmeds.h:$(GLSRC)gsropt.h -$(DEVSRC)gdevmeds.h:$(GLSRC)gsfunc.h +$(DEVSRC)gdevmeds.h:$(GLSRC)gxfmap.h $(DEVSRC)gdevmeds.h:$(GLSRC)gsmalloc.h -$(DEVSRC)gdevmeds.h:$(GLSRC)gxrplane.h +$(DEVSRC)gdevmeds.h:$(GLSRC)gsfunc.h +$(DEVSRC)gdevmeds.h:$(GLSRC)gxcspace.h $(DEVSRC)gdevmeds.h:$(GLSRC)gxctable.h -$(DEVSRC)gdevmeds.h:$(GLSRC)gsuid.h -$(DEVSRC)gdevmeds.h:$(GLSRC)gxcmap.h +$(DEVSRC)gdevmeds.h:$(GLSRC)gxrplane.h +$(DEVSRC)gdevmeds.h:$(GLSRC)gscsel.h +$(DEVSRC)gdevmeds.h:$(GLSRC)gxfcache.h +$(DEVSRC)gdevmeds.h:$(GLSRC)gsfont.h $(DEVSRC)gdevmeds.h:$(GLSRC)gsimage.h $(DEVSRC)gdevmeds.h:$(GLSRC)gsdcolor.h -$(DEVSRC)gdevmeds.h:$(GLSRC)gxdda.h $(DEVSRC)gdevmeds.h:$(GLSRC)gxcvalue.h -$(DEVSRC)gdevmeds.h:$(GLSRC)gsfont.h -$(DEVSRC)gdevmeds.h:$(GLSRC)gxfmap.h +$(DEVSRC)gdevmeds.h:$(GLSRC)gxbcache.h +$(DEVSRC)gdevmeds.h:$(GLSRC)gsropt.h +$(DEVSRC)gdevmeds.h:$(GLSRC)gxdda.h +$(DEVSRC)gdevmeds.h:$(GLSRC)gxpath.h $(DEVSRC)gdevmeds.h:$(GLSRC)gxiclass.h -$(DEVSRC)gdevmeds.h:$(GLSRC)gxftype.h $(DEVSRC)gdevmeds.h:$(GLSRC)gxfrac.h +$(DEVSRC)gdevmeds.h:$(GLSRC)gxtmap.h +$(DEVSRC)gdevmeds.h:$(GLSRC)gxftype.h $(DEVSRC)gdevmeds.h:$(GLSRC)gscms.h -$(DEVSRC)gdevmeds.h:$(GLSRC)gscspace.h -$(DEVSRC)gdevmeds.h:$(GLSRC)gxpath.h -$(DEVSRC)gdevmeds.h:$(GLSRC)gxbcache.h -$(DEVSRC)gdevmeds.h:$(GLSRC)gsdevice.h -$(DEVSRC)gdevmeds.h:$(GLSRC)gxarith.h -$(DEVSRC)gdevmeds.h:$(GLSRC)gxstdio.h -$(DEVSRC)gdevmeds.h:$(GLSRC)gspenum.h -$(DEVSRC)gdevmeds.h:$(GLSRC)gxhttile.h $(DEVSRC)gdevmeds.h:$(GLSRC)gsrect.h $(DEVSRC)gdevmeds.h:$(GLSRC)gslparam.h +$(DEVSRC)gdevmeds.h:$(GLSRC)gsdevice.h +$(DEVSRC)gdevmeds.h:$(GLSRC)gxbitfmt.h +$(DEVSRC)gdevmeds.h:$(GLSRC)gscpm.h +$(DEVSRC)gdevmeds.h:$(GLSRC)gscspace.h +$(DEVSRC)gdevmeds.h:$(GLSRC)gsgstate.h +$(DEVSRC)gdevmeds.h:$(GLSRC)gxstdio.h $(DEVSRC)gdevmeds.h:$(GLSRC)gsxfont.h -$(DEVSRC)gdevmeds.h:$(GLSRC)gxclio.h -$(DEVSRC)gdevmeds.h:$(GLSRC)gsiparam.h $(DEVSRC)gdevmeds.h:$(GLSRC)gsdsrc.h $(DEVSRC)gdevmeds.h:$(GLSRC)gsio.h -$(DEVSRC)gdevmeds.h:$(GLSRC)gxbitmap.h -$(DEVSRC)gdevmeds.h:$(GLSRC)gsmatrix.h -$(DEVSRC)gdevmeds.h:$(GLSRC)gscpm.h +$(DEVSRC)gdevmeds.h:$(GLSRC)gsiparam.h $(DEVSRC)gdevmeds.h:$(GLSRC)gxfixed.h -$(DEVSRC)gdevmeds.h:$(GLSRC)gsrefct.h +$(DEVSRC)gdevmeds.h:$(GLSRC)gxclio.h +$(DEVSRC)gdevmeds.h:$(GLSRC)gscompt.h +$(DEVSRC)gdevmeds.h:$(GLSRC)gsmatrix.h +$(DEVSRC)gdevmeds.h:$(GLSRC)gspenum.h +$(DEVSRC)gdevmeds.h:$(GLSRC)gxhttile.h $(DEVSRC)gdevmeds.h:$(GLSRC)gsparam.h +$(DEVSRC)gdevmeds.h:$(GLSRC)gsrefct.h $(DEVSRC)gdevmeds.h:$(GLSRC)gp.h -$(DEVSRC)gdevmeds.h:$(GLSRC)gsccolor.h -$(DEVSRC)gdevmeds.h:$(GLSRC)gsstruct.h -$(DEVSRC)gdevmeds.h:$(GLSRC)gxsync.h +$(DEVSRC)gdevmeds.h:$(GLSRC)memento.h +$(DEVSRC)gdevmeds.h:$(GLSRC)memory_.h $(DEVSRC)gdevmeds.h:$(GLSRC)gsutil.h +$(DEVSRC)gdevmeds.h:$(GLSRC)gsuid.h $(DEVSRC)gdevmeds.h:$(GLSRC)gsstrl.h +$(DEVSRC)gdevmeds.h:$(GLSRC)gsstruct.h $(DEVSRC)gdevmeds.h:$(GLSRC)gdbflags.h -$(DEVSRC)gdevmeds.h:$(GLSRC)srdline.h +$(DEVSRC)gdevmeds.h:$(GLSRC)gxsync.h $(DEVSRC)gdevmeds.h:$(GLSRC)gserrors.h -$(DEVSRC)gdevmeds.h:$(GLSRC)scommon.h -$(DEVSRC)gdevmeds.h:$(GLSRC)memento.h +$(DEVSRC)gdevmeds.h:$(GLSRC)gxbitmap.h $(DEVSRC)gdevmeds.h:$(GLSRC)vmsmath.h -$(DEVSRC)gdevmeds.h:$(GLSRC)gscsel.h -$(DEVSRC)gdevmeds.h:$(GLSRC)gsbitmap.h +$(DEVSRC)gdevmeds.h:$(GLSRC)srdline.h +$(DEVSRC)gdevmeds.h:$(GLSRC)scommon.h $(DEVSRC)gdevmeds.h:$(GLSRC)gsfname.h -$(DEVSRC)gdevmeds.h:$(GLSRC)gsstype.h +$(DEVSRC)gdevmeds.h:$(GLSRC)gsbitmap.h +$(DEVSRC)gdevmeds.h:$(GLSRC)gsccolor.h +$(DEVSRC)gdevmeds.h:$(GLSRC)gxarith.h $(DEVSRC)gdevmeds.h:$(GLSRC)stat_.h -$(DEVSRC)gdevmeds.h:$(GLSRC)gxtmap.h -$(DEVSRC)gdevmeds.h:$(GLSRC)gsmemory.h $(DEVSRC)gdevmeds.h:$(GLSRC)gpsync.h -$(DEVSRC)gdevmeds.h:$(GLSRC)memory_.h +$(DEVSRC)gdevmeds.h:$(GLSRC)gsstype.h +$(DEVSRC)gdevmeds.h:$(GLSRC)gsmemory.h $(DEVSRC)gdevmeds.h:$(GLSRC)gpgetenv.h -$(DEVSRC)gdevmeds.h:$(GLSRC)gslibctx.h $(DEVSRC)gdevmeds.h:$(GLSRC)gscdefs.h -$(DEVSRC)gdevmeds.h:$(GLSRC)gs_dll_call.h -$(DEVSRC)gdevmeds.h:$(GLSRC)stdio_.h -$(DEVSRC)gdevmeds.h:$(GLSRC)gscompt.h +$(DEVSRC)gdevmeds.h:$(GLSRC)gslibctx.h $(DEVSRC)gdevmeds.h:$(GLSRC)gxcindex.h -$(DEVSRC)gdevmeds.h:$(GLSRC)gsgstate.h +$(DEVSRC)gdevmeds.h:$(GLSRC)stdio_.h +$(DEVSRC)gdevmeds.h:$(GLSRC)gsccode.h $(DEVSRC)gdevmeds.h:$(GLSRC)stdint_.h $(DEVSRC)gdevmeds.h:$(GLSRC)gssprintf.h -$(DEVSRC)gdevmeds.h:$(GLSRC)gsccode.h -$(DEVSRC)gdevmeds.h:$(GLSRC)std.h $(DEVSRC)gdevmeds.h:$(GLSRC)gstypes.h +$(DEVSRC)gdevmeds.h:$(GLSRC)std.h $(DEVSRC)gdevmeds.h:$(GLSRC)stdpre.h $(DEVSRC)gdevmeds.h:$(GLGEN)arch.h +$(DEVSRC)gdevmeds.h:$(GLSRC)gs_dll_call.h $(DEVSRC)gdevstc.h:$(GLSRC)gdevprn.h -$(DEVSRC)gdevstc.h:$(GLSRC)gsstate.h $(DEVSRC)gdevstc.h:$(GLSRC)string_.h $(DEVSRC)gdevstc.h:$(GLSRC)gsstrtok.h -$(DEVSRC)gdevstc.h:$(GLSRC)gsovrc.h +$(DEVSRC)gdevstc.h:$(GLSRC)gsstate.h $(DEVSRC)gdevstc.h:$(GLSRC)gxclthrd.h +$(DEVSRC)gdevstc.h:$(GLSRC)gsovrc.h $(DEVSRC)gdevstc.h:$(GLSRC)gxclpage.h $(DEVSRC)gdevstc.h:$(GLSRC)gxclist.h $(DEVSRC)gdevstc.h:$(GLSRC)gxgstate.h -$(DEVSRC)gdevstc.h:$(GLSRC)gxline.h $(DEVSRC)gdevstc.h:$(GLSRC)gstrans.h +$(DEVSRC)gdevstc.h:$(GLSRC)gdevp14.h +$(DEVSRC)gdevstc.h:$(GLSRC)gxline.h $(DEVSRC)gdevstc.h:$(GLSRC)gscolor.h $(DEVSRC)gdevstc.h:$(GLSRC)gsht1.h +$(DEVSRC)gdevstc.h:$(GLSRC)gsline.h +$(DEVSRC)gdevstc.h:$(GLSRC)gxcomp.h $(DEVSRC)gdevstc.h:$(GLSRC)math_.h -$(DEVSRC)gdevstc.h:$(GLSRC)gdevp14.h $(DEVSRC)gdevstc.h:$(GLSRC)gxcolor2.h $(DEVSRC)gdevstc.h:$(GLSRC)gxpcolor.h +$(DEVSRC)gdevstc.h:$(GLSRC)gxdevmem.h $(DEVSRC)gdevstc.h:$(GLSRC)gdevdevn.h -$(DEVSRC)gdevstc.h:$(GLSRC)gsequivc.h $(DEVSRC)gdevstc.h:$(GLSRC)gx.h -$(DEVSRC)gdevstc.h:$(GLSRC)gxblend.h $(DEVSRC)gdevstc.h:$(GLSRC)gxclipsr.h -$(DEVSRC)gdevstc.h:$(GLSRC)gxcomp.h -$(DEVSRC)gdevstc.h:$(GLSRC)gsline.h -$(DEVSRC)gdevstc.h:$(GLSRC)gxdcolor.h $(DEVSRC)gdevstc.h:$(GLSRC)gdebug.h -$(DEVSRC)gdevstc.h:$(GLSRC)gxmatrix.h -$(DEVSRC)gdevstc.h:$(GLSRC)gxbitfmt.h $(DEVSRC)gdevstc.h:$(GLSRC)gxdevbuf.h +$(DEVSRC)gdevstc.h:$(GLSRC)gxdcolor.h $(DEVSRC)gdevstc.h:$(GLSRC)gxband.h +$(DEVSRC)gdevstc.h:$(GLSRC)gxblend.h $(DEVSRC)gdevstc.h:$(GLSRC)gscolor2.h -$(DEVSRC)gdevstc.h:$(GLSRC)gscindex.h +$(DEVSRC)gdevstc.h:$(GLSRC)gxmatrix.h $(DEVSRC)gdevstc.h:$(GLSRC)gxdevice.h -$(DEVSRC)gdevstc.h:$(GLSRC)gsht.h $(DEVSRC)gdevstc.h:$(GLSRC)gxcpath.h -$(DEVSRC)gdevstc.h:$(GLSRC)gxdevmem.h +$(DEVSRC)gdevstc.h:$(GLSRC)gsht.h +$(DEVSRC)gdevstc.h:$(GLSRC)gsequivc.h $(DEVSRC)gdevstc.h:$(GLSRC)gxdevcli.h $(DEVSRC)gdevstc.h:$(GLSRC)gxpcache.h +$(DEVSRC)gdevstc.h:$(GLSRC)gscindex.h +$(DEVSRC)gdevstc.h:$(GLSRC)gxcmap.h $(DEVSRC)gdevstc.h:$(GLSRC)gsptype1.h -$(DEVSRC)gdevstc.h:$(GLSRC)gxtext.h $(DEVSRC)gdevstc.h:$(GLSRC)gscie.h +$(DEVSRC)gdevstc.h:$(GLSRC)gxtext.h $(DEVSRC)gdevstc.h:$(GLSRC)gstext.h +$(DEVSRC)gdevstc.h:$(GLSRC)gxstate.h $(DEVSRC)gdevstc.h:$(GLSRC)gsnamecl.h $(DEVSRC)gdevstc.h:$(GLSRC)gstparam.h -$(DEVSRC)gdevstc.h:$(GLSRC)gxstate.h $(DEVSRC)gdevstc.h:$(GLSRC)gspcolor.h -$(DEVSRC)gdevstc.h:$(GLSRC)gxfcache.h -$(DEVSRC)gdevstc.h:$(GLSRC)gxcspace.h -$(DEVSRC)gdevstc.h:$(GLSRC)gsropt.h -$(DEVSRC)gdevstc.h:$(GLSRC)gsfunc.h +$(DEVSRC)gdevstc.h:$(GLSRC)gxfmap.h $(DEVSRC)gdevstc.h:$(GLSRC)gsmalloc.h -$(DEVSRC)gdevstc.h:$(GLSRC)gxrplane.h +$(DEVSRC)gdevstc.h:$(GLSRC)gsfunc.h +$(DEVSRC)gdevstc.h:$(GLSRC)gxcspace.h $(DEVSRC)gdevstc.h:$(GLSRC)gxctable.h -$(DEVSRC)gdevstc.h:$(GLSRC)gsuid.h -$(DEVSRC)gdevstc.h:$(GLSRC)gxcmap.h +$(DEVSRC)gdevstc.h:$(GLSRC)gxrplane.h +$(DEVSRC)gdevstc.h:$(GLSRC)gscsel.h +$(DEVSRC)gdevstc.h:$(GLSRC)gxfcache.h +$(DEVSRC)gdevstc.h:$(GLSRC)gsfont.h $(DEVSRC)gdevstc.h:$(GLSRC)gsimage.h $(DEVSRC)gdevstc.h:$(GLSRC)gsdcolor.h -$(DEVSRC)gdevstc.h:$(GLSRC)gxdda.h $(DEVSRC)gdevstc.h:$(GLSRC)gxcvalue.h -$(DEVSRC)gdevstc.h:$(GLSRC)gsfont.h -$(DEVSRC)gdevstc.h:$(GLSRC)gxfmap.h +$(DEVSRC)gdevstc.h:$(GLSRC)gxbcache.h +$(DEVSRC)gdevstc.h:$(GLSRC)gsropt.h +$(DEVSRC)gdevstc.h:$(GLSRC)gxdda.h +$(DEVSRC)gdevstc.h:$(GLSRC)gxpath.h $(DEVSRC)gdevstc.h:$(GLSRC)gxiclass.h -$(DEVSRC)gdevstc.h:$(GLSRC)gxftype.h $(DEVSRC)gdevstc.h:$(GLSRC)gxfrac.h +$(DEVSRC)gdevstc.h:$(GLSRC)gxtmap.h +$(DEVSRC)gdevstc.h:$(GLSRC)gxftype.h $(DEVSRC)gdevstc.h:$(GLSRC)gscms.h -$(DEVSRC)gdevstc.h:$(GLSRC)gscspace.h -$(DEVSRC)gdevstc.h:$(GLSRC)gxpath.h -$(DEVSRC)gdevstc.h:$(GLSRC)gxbcache.h -$(DEVSRC)gdevstc.h:$(GLSRC)gsdevice.h -$(DEVSRC)gdevstc.h:$(GLSRC)gxarith.h -$(DEVSRC)gdevstc.h:$(GLSRC)gxstdio.h -$(DEVSRC)gdevstc.h:$(GLSRC)gspenum.h -$(DEVSRC)gdevstc.h:$(GLSRC)gxhttile.h $(DEVSRC)gdevstc.h:$(GLSRC)gsrect.h $(DEVSRC)gdevstc.h:$(GLSRC)gslparam.h +$(DEVSRC)gdevstc.h:$(GLSRC)gsdevice.h +$(DEVSRC)gdevstc.h:$(GLSRC)gxbitfmt.h +$(DEVSRC)gdevstc.h:$(GLSRC)gscpm.h +$(DEVSRC)gdevstc.h:$(GLSRC)gscspace.h +$(DEVSRC)gdevstc.h:$(GLSRC)gsgstate.h +$(DEVSRC)gdevstc.h:$(GLSRC)gxstdio.h $(DEVSRC)gdevstc.h:$(GLSRC)gsxfont.h -$(DEVSRC)gdevstc.h:$(GLSRC)gxclio.h -$(DEVSRC)gdevstc.h:$(GLSRC)gsiparam.h $(DEVSRC)gdevstc.h:$(GLSRC)gsdsrc.h $(DEVSRC)gdevstc.h:$(GLSRC)gsio.h -$(DEVSRC)gdevstc.h:$(GLSRC)gxbitmap.h -$(DEVSRC)gdevstc.h:$(GLSRC)gsmatrix.h -$(DEVSRC)gdevstc.h:$(GLSRC)gscpm.h +$(DEVSRC)gdevstc.h:$(GLSRC)gsiparam.h $(DEVSRC)gdevstc.h:$(GLSRC)gxfixed.h -$(DEVSRC)gdevstc.h:$(GLSRC)gsrefct.h +$(DEVSRC)gdevstc.h:$(GLSRC)gxclio.h +$(DEVSRC)gdevstc.h:$(GLSRC)gscompt.h +$(DEVSRC)gdevstc.h:$(GLSRC)gsmatrix.h +$(DEVSRC)gdevstc.h:$(GLSRC)gspenum.h +$(DEVSRC)gdevstc.h:$(GLSRC)gxhttile.h $(DEVSRC)gdevstc.h:$(GLSRC)gsparam.h +$(DEVSRC)gdevstc.h:$(GLSRC)gsrefct.h $(DEVSRC)gdevstc.h:$(GLSRC)gp.h -$(DEVSRC)gdevstc.h:$(GLSRC)gsccolor.h -$(DEVSRC)gdevstc.h:$(GLSRC)gsstruct.h -$(DEVSRC)gdevstc.h:$(GLSRC)gxsync.h +$(DEVSRC)gdevstc.h:$(GLSRC)memento.h +$(DEVSRC)gdevstc.h:$(GLSRC)memory_.h $(DEVSRC)gdevstc.h:$(GLSRC)gsutil.h +$(DEVSRC)gdevstc.h:$(GLSRC)gsuid.h $(DEVSRC)gdevstc.h:$(GLSRC)gsstrl.h +$(DEVSRC)gdevstc.h:$(GLSRC)gsstruct.h $(DEVSRC)gdevstc.h:$(GLSRC)gdbflags.h -$(DEVSRC)gdevstc.h:$(GLSRC)srdline.h +$(DEVSRC)gdevstc.h:$(GLSRC)gxsync.h $(DEVSRC)gdevstc.h:$(GLSRC)gserrors.h -$(DEVSRC)gdevstc.h:$(GLSRC)scommon.h -$(DEVSRC)gdevstc.h:$(GLSRC)memento.h +$(DEVSRC)gdevstc.h:$(GLSRC)gxbitmap.h $(DEVSRC)gdevstc.h:$(GLSRC)vmsmath.h -$(DEVSRC)gdevstc.h:$(GLSRC)gscsel.h -$(DEVSRC)gdevstc.h:$(GLSRC)gsbitmap.h +$(DEVSRC)gdevstc.h:$(GLSRC)srdline.h +$(DEVSRC)gdevstc.h:$(GLSRC)scommon.h $(DEVSRC)gdevstc.h:$(GLSRC)gsfname.h -$(DEVSRC)gdevstc.h:$(GLSRC)gsstype.h +$(DEVSRC)gdevstc.h:$(GLSRC)gsbitmap.h +$(DEVSRC)gdevstc.h:$(GLSRC)gsccolor.h +$(DEVSRC)gdevstc.h:$(GLSRC)gxarith.h $(DEVSRC)gdevstc.h:$(GLSRC)stat_.h -$(DEVSRC)gdevstc.h:$(GLSRC)gxtmap.h -$(DEVSRC)gdevstc.h:$(GLSRC)gsmemory.h $(DEVSRC)gdevstc.h:$(GLSRC)gpsync.h -$(DEVSRC)gdevstc.h:$(GLSRC)memory_.h +$(DEVSRC)gdevstc.h:$(GLSRC)gsstype.h +$(DEVSRC)gdevstc.h:$(GLSRC)gsmemory.h $(DEVSRC)gdevstc.h:$(GLSRC)gpgetenv.h -$(DEVSRC)gdevstc.h:$(GLSRC)gslibctx.h $(DEVSRC)gdevstc.h:$(GLSRC)gscdefs.h -$(DEVSRC)gdevstc.h:$(GLSRC)gs_dll_call.h -$(DEVSRC)gdevstc.h:$(GLSRC)stdio_.h -$(DEVSRC)gdevstc.h:$(GLSRC)gscompt.h +$(DEVSRC)gdevstc.h:$(GLSRC)gslibctx.h $(DEVSRC)gdevstc.h:$(GLSRC)gxcindex.h -$(DEVSRC)gdevstc.h:$(GLSRC)gsgstate.h +$(DEVSRC)gdevstc.h:$(GLSRC)stdio_.h +$(DEVSRC)gdevstc.h:$(GLSRC)gsccode.h $(DEVSRC)gdevstc.h:$(GLSRC)stdint_.h $(DEVSRC)gdevstc.h:$(GLSRC)gssprintf.h -$(DEVSRC)gdevstc.h:$(GLSRC)gsccode.h -$(DEVSRC)gdevstc.h:$(GLSRC)std.h $(DEVSRC)gdevstc.h:$(GLSRC)gstypes.h +$(DEVSRC)gdevstc.h:$(GLSRC)std.h $(DEVSRC)gdevstc.h:$(GLSRC)stdpre.h $(DEVSRC)gdevstc.h:$(GLGEN)arch.h +$(DEVSRC)gdevstc.h:$(GLSRC)gs_dll_call.h $(DEVSRC)gdevmgr.h:$(GLSRC)gxdevcli.h +$(DEVSRC)gdevmgr.h:$(GLSRC)gxcmap.h $(DEVSRC)gdevmgr.h:$(GLSRC)gxtext.h $(DEVSRC)gdevmgr.h:$(GLSRC)gstext.h $(DEVSRC)gdevmgr.h:$(GLSRC)gsnamecl.h $(DEVSRC)gdevmgr.h:$(GLSRC)gstparam.h -$(DEVSRC)gdevmgr.h:$(GLSRC)gxfcache.h -$(DEVSRC)gdevmgr.h:$(GLSRC)gxcspace.h -$(DEVSRC)gdevmgr.h:$(GLSRC)gsropt.h +$(DEVSRC)gdevmgr.h:$(GLSRC)gxfmap.h $(DEVSRC)gdevmgr.h:$(GLSRC)gsfunc.h +$(DEVSRC)gdevmgr.h:$(GLSRC)gxcspace.h $(DEVSRC)gdevmgr.h:$(GLSRC)gxrplane.h -$(DEVSRC)gdevmgr.h:$(GLSRC)gsuid.h -$(DEVSRC)gdevmgr.h:$(GLSRC)gxcmap.h +$(DEVSRC)gdevmgr.h:$(GLSRC)gscsel.h +$(DEVSRC)gdevmgr.h:$(GLSRC)gxfcache.h +$(DEVSRC)gdevmgr.h:$(GLSRC)gsfont.h $(DEVSRC)gdevmgr.h:$(GLSRC)gsimage.h $(DEVSRC)gdevmgr.h:$(GLSRC)gsdcolor.h -$(DEVSRC)gdevmgr.h:$(GLSRC)gxdda.h $(DEVSRC)gdevmgr.h:$(GLSRC)gxcvalue.h -$(DEVSRC)gdevmgr.h:$(GLSRC)gsfont.h -$(DEVSRC)gdevmgr.h:$(GLSRC)gxfmap.h -$(DEVSRC)gdevmgr.h:$(GLSRC)gxftype.h +$(DEVSRC)gdevmgr.h:$(GLSRC)gxbcache.h +$(DEVSRC)gdevmgr.h:$(GLSRC)gsropt.h +$(DEVSRC)gdevmgr.h:$(GLSRC)gxdda.h +$(DEVSRC)gdevmgr.h:$(GLSRC)gxpath.h $(DEVSRC)gdevmgr.h:$(GLSRC)gxfrac.h +$(DEVSRC)gdevmgr.h:$(GLSRC)gxtmap.h +$(DEVSRC)gdevmgr.h:$(GLSRC)gxftype.h $(DEVSRC)gdevmgr.h:$(GLSRC)gscms.h -$(DEVSRC)gdevmgr.h:$(GLSRC)gscspace.h -$(DEVSRC)gdevmgr.h:$(GLSRC)gxpath.h -$(DEVSRC)gdevmgr.h:$(GLSRC)gxbcache.h -$(DEVSRC)gdevmgr.h:$(GLSRC)gsdevice.h -$(DEVSRC)gdevmgr.h:$(GLSRC)gxarith.h -$(DEVSRC)gdevmgr.h:$(GLSRC)gspenum.h -$(DEVSRC)gdevmgr.h:$(GLSRC)gxhttile.h $(DEVSRC)gdevmgr.h:$(GLSRC)gsrect.h $(DEVSRC)gdevmgr.h:$(GLSRC)gslparam.h +$(DEVSRC)gdevmgr.h:$(GLSRC)gsdevice.h +$(DEVSRC)gdevmgr.h:$(GLSRC)gscpm.h +$(DEVSRC)gdevmgr.h:$(GLSRC)gscspace.h +$(DEVSRC)gdevmgr.h:$(GLSRC)gsgstate.h $(DEVSRC)gdevmgr.h:$(GLSRC)gsxfont.h -$(DEVSRC)gdevmgr.h:$(GLSRC)gsiparam.h $(DEVSRC)gdevmgr.h:$(GLSRC)gsdsrc.h -$(DEVSRC)gdevmgr.h:$(GLSRC)gxbitmap.h -$(DEVSRC)gdevmgr.h:$(GLSRC)gsmatrix.h -$(DEVSRC)gdevmgr.h:$(GLSRC)gscpm.h +$(DEVSRC)gdevmgr.h:$(GLSRC)gsiparam.h $(DEVSRC)gdevmgr.h:$(GLSRC)gxfixed.h -$(DEVSRC)gdevmgr.h:$(GLSRC)gsrefct.h +$(DEVSRC)gdevmgr.h:$(GLSRC)gscompt.h +$(DEVSRC)gdevmgr.h:$(GLSRC)gsmatrix.h +$(DEVSRC)gdevmgr.h:$(GLSRC)gspenum.h +$(DEVSRC)gdevmgr.h:$(GLSRC)gxhttile.h $(DEVSRC)gdevmgr.h:$(GLSRC)gsparam.h +$(DEVSRC)gdevmgr.h:$(GLSRC)gsrefct.h $(DEVSRC)gdevmgr.h:$(GLSRC)gp.h -$(DEVSRC)gdevmgr.h:$(GLSRC)gsccolor.h +$(DEVSRC)gdevmgr.h:$(GLSRC)memento.h +$(DEVSRC)gdevmgr.h:$(GLSRC)memory_.h +$(DEVSRC)gdevmgr.h:$(GLSRC)gsuid.h $(DEVSRC)gdevmgr.h:$(GLSRC)gsstruct.h $(DEVSRC)gdevmgr.h:$(GLSRC)gxsync.h +$(DEVSRC)gdevmgr.h:$(GLSRC)gxbitmap.h $(DEVSRC)gdevmgr.h:$(GLSRC)srdline.h $(DEVSRC)gdevmgr.h:$(GLSRC)scommon.h -$(DEVSRC)gdevmgr.h:$(GLSRC)memento.h -$(DEVSRC)gdevmgr.h:$(GLSRC)gscsel.h $(DEVSRC)gdevmgr.h:$(GLSRC)gsbitmap.h -$(DEVSRC)gdevmgr.h:$(GLSRC)gsstype.h +$(DEVSRC)gdevmgr.h:$(GLSRC)gsccolor.h +$(DEVSRC)gdevmgr.h:$(GLSRC)gxarith.h $(DEVSRC)gdevmgr.h:$(GLSRC)stat_.h -$(DEVSRC)gdevmgr.h:$(GLSRC)gxtmap.h -$(DEVSRC)gdevmgr.h:$(GLSRC)gsmemory.h $(DEVSRC)gdevmgr.h:$(GLSRC)gpsync.h -$(DEVSRC)gdevmgr.h:$(GLSRC)memory_.h +$(DEVSRC)gdevmgr.h:$(GLSRC)gsstype.h +$(DEVSRC)gdevmgr.h:$(GLSRC)gsmemory.h $(DEVSRC)gdevmgr.h:$(GLSRC)gpgetenv.h -$(DEVSRC)gdevmgr.h:$(GLSRC)gslibctx.h $(DEVSRC)gdevmgr.h:$(GLSRC)gscdefs.h -$(DEVSRC)gdevmgr.h:$(GLSRC)gs_dll_call.h -$(DEVSRC)gdevmgr.h:$(GLSRC)stdio_.h -$(DEVSRC)gdevmgr.h:$(GLSRC)gscompt.h +$(DEVSRC)gdevmgr.h:$(GLSRC)gslibctx.h $(DEVSRC)gdevmgr.h:$(GLSRC)gxcindex.h -$(DEVSRC)gdevmgr.h:$(GLSRC)gsgstate.h +$(DEVSRC)gdevmgr.h:$(GLSRC)stdio_.h +$(DEVSRC)gdevmgr.h:$(GLSRC)gsccode.h $(DEVSRC)gdevmgr.h:$(GLSRC)stdint_.h $(DEVSRC)gdevmgr.h:$(GLSRC)gssprintf.h -$(DEVSRC)gdevmgr.h:$(GLSRC)gsccode.h -$(DEVSRC)gdevmgr.h:$(GLSRC)std.h $(DEVSRC)gdevmgr.h:$(GLSRC)gstypes.h +$(DEVSRC)gdevmgr.h:$(GLSRC)std.h $(DEVSRC)gdevmgr.h:$(GLSRC)stdpre.h $(DEVSRC)gdevmgr.h:$(GLGEN)arch.h +$(DEVSRC)gdevmgr.h:$(GLSRC)gs_dll_call.h diff --git a/devices/devs.mak b/devices/devs.mak index a9c6ec18..5526a907 100644 --- a/devices/devs.mak +++ b/devices/devs.mak @@ -1,4 +1,4 @@ -# Copyright (C) 2001-2019 Artifex Software, Inc. +# Copyright (C) 2001-2020 Artifex Software, Inc. # All Rights Reserved. # # This software is provided AS-IS with no warranty, either express or @@ -295,7 +295,7 @@ $(DD)display.dev : $(display_) $(GDEV) $(DEVS_MAK) $(MAKEDIRS) $(DEVOBJ)gdevdsp.$(OBJ) : $(DEVSRC)gdevdsp.c $(string__h) $(gdevkrnlsclass_h)\ $(gp_h) $(gpcheck_h) $(gdevpccm_h) $(gsparam_h) $(gsdevice_h)\ $(GDEVH) $(gxdevmem_h) $(gdevdevn_h) $(gsequivc_h) $(gdevdsp_h) $(gdevdsp2_h) \ - $(DEVS_MAK) $(MAKEDIRS) + $(gsicc_manage_h) $(DEVS_MAK) $(MAKEDIRS) $(DEVCC) $(DEVO_)gdevdsp.$(OBJ) $(C_) $(DEVSRC)gdevdsp.c ### -------------------------- The X11 device -------------------------- ### @@ -1455,6 +1455,28 @@ $(DD)pamcmyk32.dev : $(pxm_) $(GLD)page.dev $(GDEV) \ $(DD)pam.dev : $(pxm_) $(GLD)page.dev $(GDEV) $(DEVS_MAK) $(MAKEDIRS) $(SETPDEV2) $(DD)pam $(pxm_) +### --------------- OCR device --------------- ### + +ocr_=$(DEVOBJ)gdevocr.$(OBJ) +libocr_dev=$(DEVOBJ)libocr.dev +ocr_i_=-include $(DEVOBJ)libocr + +$(DEVOBJ)gdevocr.$(OBJ) : $(DEVSRC)gdevocr.c\ + $(gdevprn_h) $(gdevpccm_h) $(gscdefs_h) $(ocr__h) $(DEVS_MAK) $(MAKEDIRS) + $(CC_) $(I_)$(DEVI_) $(II)$(PI_)$(_I) $(PCF_) $(GLF_) $(DEVO_)gdevocr.$(OBJ) $(C_) $(DEVSRC)gdevocr.c + +$(DD)ocr.dev : $(libocr_dev) $(ocr_) $(GLD)page.dev $(GDEV) \ + $(DEVS_MAK) $(MAKEDIRS) + $(SETPDEV2) $(DD)ocr $(ocr_) + $(ADDMOD) $(DD)ocr $(ocr_i_) + +### --------------- OCR device --------------- ### + +$(DD)hocr.dev : $(libocr_dev) $(hocr_) $(GLD)page.dev $(GDEV) \ + $(DEVS_MAK) $(MAKEDIRS) + $(SETPDEV2) $(DD)hocr $(hocr_) + $(ADDMOD) $(DD)hocr $(hocr_i_) + ### --------------- Portable Network Graphics file format --------------- ### ### Requires libpng 0.81 and zlib 0.95 (or more recent versions). ### ### See png.mak and zlib.mak for more details. ### @@ -1464,7 +1486,7 @@ libpng_dev=$(PNGGENDIR)$(D)libpng.dev png_i_=-include $(PNGGENDIR)$(D)libpng $(DEVOBJ)gdevpng.$(OBJ) : $(DEVSRC)gdevpng.c\ - $(gdevprn_h) $(gdevpccm_h) $(gscdefs_h) $(png__h) $(DEVS_MAK) $(MAKEDIRS) + $(gdevprn_h) $(gdevpccm_h) $(gscdefs_h) $(png__h) $(gxdevsop_h) $(DEVS_MAK) $(MAKEDIRS) $(CC_) $(I_)$(DEVI_) $(II)$(PI_)$(_I) $(PCF_) $(GLF_) $(DEVO_)gdevpng.$(OBJ) $(C_) $(DEVSRC)gdevpng.c $(DD)pngmono.dev : $(libpng_dev) $(png_) $(GLD)page.dev $(GDEV) \ @@ -1915,6 +1937,9 @@ $(DEVOBJ)gdevcmykog.$(OBJ) : $(DEVSRC)gdevcmykog.c $(GDEV) \ $(DEVCC) $(DEVO_)gdevcmykog.$(OBJ) $(C_) $(DEVSRC)gdevcmykog.c ### -------- PDF as an image downscaled device --------------------- ### + +gdevpdfimg_h=$(DEVSRC)gdevpdfimg.h + $(DD)pdfimage8.dev : $(DEVOBJ)gdevpdfimg.$(OBJ) $(GLD)page.dev $(GDEV) $(DEVS_MAK) $(MAKEDIRS) $(SETPDEV2) $(DD)pdfimage8 $(DEVOBJ)gdevpdfimg.$(OBJ) $(ADDMOD) $(DD)pdfimage8 -include $(GLD)page @@ -1932,11 +1957,31 @@ $(DD)PCLm.dev : $(DEVOBJ)gdevpdfimg.$(OBJ) $(GLD)page.dev $(GDEV) $(DEVS_MAK) $( $(ADDMOD) $(DD)PCLm -include $(GLD)page $(DEVOBJ)gdevpdfimg.$(OBJ) : $(DEVSRC)gdevpdfimg.c $(AK) $(gdevkrnlsclass_h) \ - $(DEVS_MAK) $(MAKEDIRS) $(arch_h) $(stdint__h) $(gdevprn_h) $(gxdownscale_h) \ + $(DEVS_MAK) $(arch_h) $(stdint__h) $(gdevprn_h) $(gxdownscale_h) \ $(stream_h) $(spprint_h) $(time__h) $(smd5_h) $(sstring_h) $(strimpl_h) \ - $(slzwx_h) $(szlibx_h) $(jpeglib__h) $(sdct_h) $(srlx_h) $(gsicc_cache_h) $(sjpeg_h) + $(slzwx_h) $(szlibx_h) $(jpeglib__h) $(sdct_h) $(srlx_h) $(gsicc_cache_h) $(sjpeg_h) $(gdevpdfimg_h) $(MAKEDIRS) $(DEVCC) $(DEVO_)gdevpdfimg.$(OBJ) $(C_) $(DEVSRC)gdevpdfimg.c +### -------- PDF image with OCRd text overlay --------------------- ### + +$(DD)pdfocr8.dev : $(DEVOBJ)gdevpdfocr.$(OBJ) $(GLD)page.dev $(GDEV) $(DEVS_MAK) $(MAKEDIRS) + $(SETPDEV2) $(DD)pdfocr8 $(DEVOBJ)gdevpdfocr.$(OBJ) + $(ADDMOD) $(DD)pdfocr8 -include $(GLD)page + +$(DD)pdfocr24.dev : $(DEVOBJ)gdevpdfocr.$(OBJ) $(GLD)page.dev $(GDEV) $(DEVS_MAK) $(MAKEDIRS) + $(SETPDEV2) $(DD)pdfocr24 $(DEVOBJ)gdevpdfocr.$(OBJ) + $(ADDMOD) $(DD)pdfocr24 -include $(GLD)page + +$(DD)pdfocr32.dev : $(DEVOBJ)gdevpdfocr.$(OBJ) $(GLD)page.dev $(GDEV) $(DEVS_MAK) $(MAKEDIRS) + $(SETPDEV2) $(DD)pdfocr32 $(DEVOBJ)gdevpdfocr.$(OBJ) + $(ADDMOD) $(DD)pdfocr32 -include $(GLD)page + +$(DEVOBJ)gdevpdfocr.$(OBJ) : $(DEVSRC)gdevpdfocr.c $(AK) $(gdevkrnlsclass_h) \ + $(DEVS_MAK) $(MAKEDIRS) $(arch_h) $(stdint__h) $(gdevprn_h) $(gxdownscale_h) \ + $(stream_h) $(spprint_h) $(time__h) $(smd5_h) $(sstring_h) $(strimpl_h) \ + $(slzwx_h) $(szlibx_h) $(jpeglib__h) $(sdct_h) $(srlx_h) $(gsicc_cache_h) $(sjpeg_h) $(gdevpdfimg_h) + $(DEVCC) $(DEVO_)gdevpdfocr.$(OBJ) $(C_) $(DEVSRC)gdevpdfocr.c + ### -------- URF device --------------------- ### urf=$(DEVOBJ)gdevurf.$(OBJ) $(DD)urfgray.dev : $(urf) $(GLD)page.dev $(GDEV) $(DEVS_MAK) $(MAKEDIRS) @@ -1958,227 +2003,227 @@ $(DEVOBJ)gdevurf.$(OBJ) : $(URFSRCDIR)$(D)gdevurf.c $(AK) $(PDEVH) \ # Dependencies: $(DEVSRC)gxfcopy.h:$(GLSRC)gsfont.h +$(DEVSRC)gxfcopy.h:$(GLSRC)gsgstate.h $(DEVSRC)gxfcopy.h:$(GLSRC)gsmatrix.h $(DEVSRC)gxfcopy.h:$(GLSRC)scommon.h $(DEVSRC)gxfcopy.h:$(GLSRC)gsstype.h $(DEVSRC)gxfcopy.h:$(GLSRC)gsmemory.h $(DEVSRC)gxfcopy.h:$(GLSRC)gslibctx.h -$(DEVSRC)gxfcopy.h:$(GLSRC)gs_dll_call.h $(DEVSRC)gxfcopy.h:$(GLSRC)stdio_.h -$(DEVSRC)gxfcopy.h:$(GLSRC)gsgstate.h +$(DEVSRC)gxfcopy.h:$(GLSRC)gsccode.h $(DEVSRC)gxfcopy.h:$(GLSRC)stdint_.h $(DEVSRC)gxfcopy.h:$(GLSRC)gssprintf.h -$(DEVSRC)gxfcopy.h:$(GLSRC)gsccode.h -$(DEVSRC)gxfcopy.h:$(GLSRC)std.h $(DEVSRC)gxfcopy.h:$(GLSRC)gstypes.h +$(DEVSRC)gxfcopy.h:$(GLSRC)std.h $(DEVSRC)gxfcopy.h:$(GLSRC)stdpre.h $(DEVSRC)gxfcopy.h:$(GLGEN)arch.h +$(DEVSRC)gxfcopy.h:$(GLSRC)gs_dll_call.h $(DEVSRC)gdev8bcm.h:$(GLSRC)gxcvalue.h $(DEVSRC)gdev8bcm.h:$(GLSRC)stdpre.h $(DEVSRC)gdevpcl.h:$(GLSRC)gxdevcli.h +$(DEVSRC)gdevpcl.h:$(GLSRC)gxcmap.h $(DEVSRC)gdevpcl.h:$(GLSRC)gxtext.h $(DEVSRC)gdevpcl.h:$(GLSRC)gstext.h $(DEVSRC)gdevpcl.h:$(GLSRC)gsnamecl.h $(DEVSRC)gdevpcl.h:$(GLSRC)gstparam.h -$(DEVSRC)gdevpcl.h:$(GLSRC)gxfcache.h -$(DEVSRC)gdevpcl.h:$(GLSRC)gxcspace.h -$(DEVSRC)gdevpcl.h:$(GLSRC)gsropt.h +$(DEVSRC)gdevpcl.h:$(GLSRC)gxfmap.h $(DEVSRC)gdevpcl.h:$(GLSRC)gsfunc.h +$(DEVSRC)gdevpcl.h:$(GLSRC)gxcspace.h $(DEVSRC)gdevpcl.h:$(GLSRC)gxrplane.h -$(DEVSRC)gdevpcl.h:$(GLSRC)gsuid.h -$(DEVSRC)gdevpcl.h:$(GLSRC)gxcmap.h +$(DEVSRC)gdevpcl.h:$(GLSRC)gscsel.h +$(DEVSRC)gdevpcl.h:$(GLSRC)gxfcache.h +$(DEVSRC)gdevpcl.h:$(GLSRC)gsfont.h $(DEVSRC)gdevpcl.h:$(GLSRC)gsimage.h $(DEVSRC)gdevpcl.h:$(GLSRC)gsdcolor.h -$(DEVSRC)gdevpcl.h:$(GLSRC)gxdda.h $(DEVSRC)gdevpcl.h:$(GLSRC)gxcvalue.h -$(DEVSRC)gdevpcl.h:$(GLSRC)gsfont.h -$(DEVSRC)gdevpcl.h:$(GLSRC)gxfmap.h -$(DEVSRC)gdevpcl.h:$(GLSRC)gxftype.h +$(DEVSRC)gdevpcl.h:$(GLSRC)gxbcache.h +$(DEVSRC)gdevpcl.h:$(GLSRC)gsropt.h +$(DEVSRC)gdevpcl.h:$(GLSRC)gxdda.h +$(DEVSRC)gdevpcl.h:$(GLSRC)gxpath.h $(DEVSRC)gdevpcl.h:$(GLSRC)gxfrac.h +$(DEVSRC)gdevpcl.h:$(GLSRC)gxtmap.h +$(DEVSRC)gdevpcl.h:$(GLSRC)gxftype.h $(DEVSRC)gdevpcl.h:$(GLSRC)gscms.h -$(DEVSRC)gdevpcl.h:$(GLSRC)gscspace.h -$(DEVSRC)gdevpcl.h:$(GLSRC)gxpath.h -$(DEVSRC)gdevpcl.h:$(GLSRC)gxbcache.h -$(DEVSRC)gdevpcl.h:$(GLSRC)gsdevice.h -$(DEVSRC)gdevpcl.h:$(GLSRC)gxarith.h -$(DEVSRC)gdevpcl.h:$(GLSRC)gspenum.h -$(DEVSRC)gdevpcl.h:$(GLSRC)gxhttile.h $(DEVSRC)gdevpcl.h:$(GLSRC)gsrect.h $(DEVSRC)gdevpcl.h:$(GLSRC)gslparam.h +$(DEVSRC)gdevpcl.h:$(GLSRC)gsdevice.h +$(DEVSRC)gdevpcl.h:$(GLSRC)gscpm.h +$(DEVSRC)gdevpcl.h:$(GLSRC)gscspace.h +$(DEVSRC)gdevpcl.h:$(GLSRC)gsgstate.h $(DEVSRC)gdevpcl.h:$(GLSRC)gsxfont.h -$(DEVSRC)gdevpcl.h:$(GLSRC)gsiparam.h $(DEVSRC)gdevpcl.h:$(GLSRC)gsdsrc.h -$(DEVSRC)gdevpcl.h:$(GLSRC)gxbitmap.h -$(DEVSRC)gdevpcl.h:$(GLSRC)gsmatrix.h -$(DEVSRC)gdevpcl.h:$(GLSRC)gscpm.h +$(DEVSRC)gdevpcl.h:$(GLSRC)gsiparam.h $(DEVSRC)gdevpcl.h:$(GLSRC)gxfixed.h -$(DEVSRC)gdevpcl.h:$(GLSRC)gsrefct.h +$(DEVSRC)gdevpcl.h:$(GLSRC)gscompt.h +$(DEVSRC)gdevpcl.h:$(GLSRC)gsmatrix.h +$(DEVSRC)gdevpcl.h:$(GLSRC)gspenum.h +$(DEVSRC)gdevpcl.h:$(GLSRC)gxhttile.h $(DEVSRC)gdevpcl.h:$(GLSRC)gsparam.h +$(DEVSRC)gdevpcl.h:$(GLSRC)gsrefct.h $(DEVSRC)gdevpcl.h:$(GLSRC)gp.h -$(DEVSRC)gdevpcl.h:$(GLSRC)gsccolor.h +$(DEVSRC)gdevpcl.h:$(GLSRC)memento.h +$(DEVSRC)gdevpcl.h:$(GLSRC)memory_.h +$(DEVSRC)gdevpcl.h:$(GLSRC)gsuid.h $(DEVSRC)gdevpcl.h:$(GLSRC)gsstruct.h $(DEVSRC)gdevpcl.h:$(GLSRC)gxsync.h +$(DEVSRC)gdevpcl.h:$(GLSRC)gxbitmap.h $(DEVSRC)gdevpcl.h:$(GLSRC)srdline.h $(DEVSRC)gdevpcl.h:$(GLSRC)scommon.h -$(DEVSRC)gdevpcl.h:$(GLSRC)memento.h -$(DEVSRC)gdevpcl.h:$(GLSRC)gscsel.h $(DEVSRC)gdevpcl.h:$(GLSRC)gsbitmap.h -$(DEVSRC)gdevpcl.h:$(GLSRC)gsstype.h +$(DEVSRC)gdevpcl.h:$(GLSRC)gsccolor.h +$(DEVSRC)gdevpcl.h:$(GLSRC)gxarith.h $(DEVSRC)gdevpcl.h:$(GLSRC)stat_.h -$(DEVSRC)gdevpcl.h:$(GLSRC)gxtmap.h -$(DEVSRC)gdevpcl.h:$(GLSRC)gsmemory.h $(DEVSRC)gdevpcl.h:$(GLSRC)gpsync.h -$(DEVSRC)gdevpcl.h:$(GLSRC)memory_.h +$(DEVSRC)gdevpcl.h:$(GLSRC)gsstype.h +$(DEVSRC)gdevpcl.h:$(GLSRC)gsmemory.h $(DEVSRC)gdevpcl.h:$(GLSRC)gpgetenv.h -$(DEVSRC)gdevpcl.h:$(GLSRC)gslibctx.h $(DEVSRC)gdevpcl.h:$(GLSRC)gscdefs.h -$(DEVSRC)gdevpcl.h:$(GLSRC)gs_dll_call.h -$(DEVSRC)gdevpcl.h:$(GLSRC)stdio_.h -$(DEVSRC)gdevpcl.h:$(GLSRC)gscompt.h +$(DEVSRC)gdevpcl.h:$(GLSRC)gslibctx.h $(DEVSRC)gdevpcl.h:$(GLSRC)gxcindex.h -$(DEVSRC)gdevpcl.h:$(GLSRC)gsgstate.h +$(DEVSRC)gdevpcl.h:$(GLSRC)stdio_.h +$(DEVSRC)gdevpcl.h:$(GLSRC)gsccode.h $(DEVSRC)gdevpcl.h:$(GLSRC)stdint_.h $(DEVSRC)gdevpcl.h:$(GLSRC)gssprintf.h -$(DEVSRC)gdevpcl.h:$(GLSRC)gsccode.h -$(DEVSRC)gdevpcl.h:$(GLSRC)std.h $(DEVSRC)gdevpcl.h:$(GLSRC)gstypes.h +$(DEVSRC)gdevpcl.h:$(GLSRC)std.h $(DEVSRC)gdevpcl.h:$(GLSRC)stdpre.h $(DEVSRC)gdevpcl.h:$(GLGEN)arch.h +$(DEVSRC)gdevpcl.h:$(GLSRC)gs_dll_call.h $(DEVVECSRC)gdevpsu.h:$(GLSRC)gsdevice.h +$(DEVVECSRC)gdevpsu.h:$(GLSRC)gsgstate.h $(DEVVECSRC)gdevpsu.h:$(GLSRC)gsmatrix.h $(DEVVECSRC)gdevpsu.h:$(GLSRC)gsparam.h $(DEVVECSRC)gdevpsu.h:$(GLSRC)scommon.h $(DEVVECSRC)gdevpsu.h:$(GLSRC)gsstype.h $(DEVVECSRC)gdevpsu.h:$(GLSRC)gsmemory.h $(DEVVECSRC)gdevpsu.h:$(GLSRC)gslibctx.h -$(DEVVECSRC)gdevpsu.h:$(GLSRC)gs_dll_call.h $(DEVVECSRC)gdevpsu.h:$(GLSRC)stdio_.h -$(DEVVECSRC)gdevpsu.h:$(GLSRC)gsgstate.h $(DEVVECSRC)gdevpsu.h:$(GLSRC)stdint_.h $(DEVVECSRC)gdevpsu.h:$(GLSRC)gssprintf.h -$(DEVVECSRC)gdevpsu.h:$(GLSRC)std.h $(DEVVECSRC)gdevpsu.h:$(GLSRC)gstypes.h +$(DEVVECSRC)gdevpsu.h:$(GLSRC)std.h $(DEVVECSRC)gdevpsu.h:$(GLSRC)stdpre.h $(DEVVECSRC)gdevpsu.h:$(GLGEN)arch.h +$(DEVVECSRC)gdevpsu.h:$(GLSRC)gs_dll_call.h $(DEVSRC)gdevdljm.h:$(GLSRC)gdevprn.h $(DEVSRC)gdevdljm.h:$(GLSRC)string_.h $(DEVSRC)gdevdljm.h:$(GLSRC)gsstrtok.h $(DEVSRC)gdevdljm.h:$(GLSRC)gxclthrd.h $(DEVSRC)gdevdljm.h:$(GLSRC)gxclpage.h $(DEVSRC)gdevdljm.h:$(GLSRC)gxclist.h -$(DEVSRC)gdevdljm.h:$(DEVSRC)gdevpcl.h $(DEVSRC)gdevdljm.h:$(GLSRC)gxgstate.h -$(DEVSRC)gdevdljm.h:$(GLSRC)gxline.h +$(DEVSRC)gdevdljm.h:$(DEVSRC)gdevpcl.h $(DEVSRC)gdevdljm.h:$(GLSRC)gstrans.h +$(DEVSRC)gdevdljm.h:$(GLSRC)gdevp14.h +$(DEVSRC)gdevdljm.h:$(GLSRC)gxline.h $(DEVSRC)gdevdljm.h:$(GLSRC)gsht1.h +$(DEVSRC)gdevdljm.h:$(GLSRC)gxcomp.h $(DEVSRC)gdevdljm.h:$(GLSRC)math_.h -$(DEVSRC)gdevdljm.h:$(GLSRC)gdevp14.h $(DEVSRC)gdevdljm.h:$(GLSRC)gxcolor2.h $(DEVSRC)gdevdljm.h:$(GLSRC)gxpcolor.h +$(DEVSRC)gdevdljm.h:$(GLSRC)gxdevmem.h $(DEVSRC)gdevdljm.h:$(GLSRC)gdevdevn.h -$(DEVSRC)gdevdljm.h:$(GLSRC)gsequivc.h $(DEVSRC)gdevdljm.h:$(GLSRC)gx.h -$(DEVSRC)gdevdljm.h:$(GLSRC)gxblend.h $(DEVSRC)gdevdljm.h:$(GLSRC)gxclipsr.h -$(DEVSRC)gdevdljm.h:$(GLSRC)gxcomp.h -$(DEVSRC)gdevdljm.h:$(GLSRC)gxdcolor.h $(DEVSRC)gdevdljm.h:$(GLSRC)gdebug.h -$(DEVSRC)gdevdljm.h:$(GLSRC)gxmatrix.h -$(DEVSRC)gdevdljm.h:$(GLSRC)gxbitfmt.h $(DEVSRC)gdevdljm.h:$(GLSRC)gxdevbuf.h +$(DEVSRC)gdevdljm.h:$(GLSRC)gxdcolor.h $(DEVSRC)gdevdljm.h:$(GLSRC)gxband.h +$(DEVSRC)gdevdljm.h:$(GLSRC)gxblend.h $(DEVSRC)gdevdljm.h:$(GLSRC)gscolor2.h -$(DEVSRC)gdevdljm.h:$(GLSRC)gscindex.h +$(DEVSRC)gdevdljm.h:$(GLSRC)gxmatrix.h $(DEVSRC)gdevdljm.h:$(GLSRC)gxdevice.h -$(DEVSRC)gdevdljm.h:$(GLSRC)gsht.h $(DEVSRC)gdevdljm.h:$(GLSRC)gxcpath.h -$(DEVSRC)gdevdljm.h:$(GLSRC)gxdevmem.h +$(DEVSRC)gdevdljm.h:$(GLSRC)gsht.h +$(DEVSRC)gdevdljm.h:$(GLSRC)gsequivc.h $(DEVSRC)gdevdljm.h:$(GLSRC)gxdevcli.h $(DEVSRC)gdevdljm.h:$(GLSRC)gxpcache.h +$(DEVSRC)gdevdljm.h:$(GLSRC)gscindex.h +$(DEVSRC)gdevdljm.h:$(GLSRC)gxcmap.h $(DEVSRC)gdevdljm.h:$(GLSRC)gsptype1.h -$(DEVSRC)gdevdljm.h:$(GLSRC)gxtext.h $(DEVSRC)gdevdljm.h:$(GLSRC)gscie.h +$(DEVSRC)gdevdljm.h:$(GLSRC)gxtext.h $(DEVSRC)gdevdljm.h:$(GLSRC)gstext.h +$(DEVSRC)gdevdljm.h:$(GLSRC)gxstate.h $(DEVSRC)gdevdljm.h:$(GLSRC)gsnamecl.h $(DEVSRC)gdevdljm.h:$(GLSRC)gstparam.h -$(DEVSRC)gdevdljm.h:$(GLSRC)gxstate.h $(DEVSRC)gdevdljm.h:$(GLSRC)gspcolor.h -$(DEVSRC)gdevdljm.h:$(GLSRC)gxfcache.h -$(DEVSRC)gdevdljm.h:$(GLSRC)gxcspace.h -$(DEVSRC)gdevdljm.h:$(GLSRC)gsropt.h -$(DEVSRC)gdevdljm.h:$(GLSRC)gsfunc.h +$(DEVSRC)gdevdljm.h:$(GLSRC)gxfmap.h $(DEVSRC)gdevdljm.h:$(GLSRC)gsmalloc.h -$(DEVSRC)gdevdljm.h:$(GLSRC)gxrplane.h +$(DEVSRC)gdevdljm.h:$(GLSRC)gsfunc.h +$(DEVSRC)gdevdljm.h:$(GLSRC)gxcspace.h $(DEVSRC)gdevdljm.h:$(GLSRC)gxctable.h -$(DEVSRC)gdevdljm.h:$(GLSRC)gsuid.h -$(DEVSRC)gdevdljm.h:$(GLSRC)gxcmap.h +$(DEVSRC)gdevdljm.h:$(GLSRC)gxrplane.h +$(DEVSRC)gdevdljm.h:$(GLSRC)gscsel.h +$(DEVSRC)gdevdljm.h:$(GLSRC)gxfcache.h +$(DEVSRC)gdevdljm.h:$(GLSRC)gsfont.h $(DEVSRC)gdevdljm.h:$(GLSRC)gsimage.h $(DEVSRC)gdevdljm.h:$(GLSRC)gsdcolor.h -$(DEVSRC)gdevdljm.h:$(GLSRC)gxdda.h $(DEVSRC)gdevdljm.h:$(GLSRC)gxcvalue.h -$(DEVSRC)gdevdljm.h:$(GLSRC)gsfont.h -$(DEVSRC)gdevdljm.h:$(GLSRC)gxfmap.h +$(DEVSRC)gdevdljm.h:$(GLSRC)gxbcache.h +$(DEVSRC)gdevdljm.h:$(GLSRC)gsropt.h +$(DEVSRC)gdevdljm.h:$(GLSRC)gxdda.h +$(DEVSRC)gdevdljm.h:$(GLSRC)gxpath.h $(DEVSRC)gdevdljm.h:$(GLSRC)gxiclass.h -$(DEVSRC)gdevdljm.h:$(GLSRC)gxftype.h $(DEVSRC)gdevdljm.h:$(GLSRC)gxfrac.h +$(DEVSRC)gdevdljm.h:$(GLSRC)gxtmap.h +$(DEVSRC)gdevdljm.h:$(GLSRC)gxftype.h $(DEVSRC)gdevdljm.h:$(GLSRC)gscms.h -$(DEVSRC)gdevdljm.h:$(GLSRC)gscspace.h -$(DEVSRC)gdevdljm.h:$(GLSRC)gxpath.h -$(DEVSRC)gdevdljm.h:$(GLSRC)gxbcache.h -$(DEVSRC)gdevdljm.h:$(GLSRC)gsdevice.h -$(DEVSRC)gdevdljm.h:$(GLSRC)gxarith.h -$(DEVSRC)gdevdljm.h:$(GLSRC)gxstdio.h -$(DEVSRC)gdevdljm.h:$(GLSRC)gspenum.h -$(DEVSRC)gdevdljm.h:$(GLSRC)gxhttile.h $(DEVSRC)gdevdljm.h:$(GLSRC)gsrect.h $(DEVSRC)gdevdljm.h:$(GLSRC)gslparam.h +$(DEVSRC)gdevdljm.h:$(GLSRC)gsdevice.h +$(DEVSRC)gdevdljm.h:$(GLSRC)gxbitfmt.h +$(DEVSRC)gdevdljm.h:$(GLSRC)gscpm.h +$(DEVSRC)gdevdljm.h:$(GLSRC)gscspace.h +$(DEVSRC)gdevdljm.h:$(GLSRC)gsgstate.h +$(DEVSRC)gdevdljm.h:$(GLSRC)gxstdio.h $(DEVSRC)gdevdljm.h:$(GLSRC)gsxfont.h -$(DEVSRC)gdevdljm.h:$(GLSRC)gxclio.h -$(DEVSRC)gdevdljm.h:$(GLSRC)gsiparam.h $(DEVSRC)gdevdljm.h:$(GLSRC)gsdsrc.h $(DEVSRC)gdevdljm.h:$(GLSRC)gsio.h -$(DEVSRC)gdevdljm.h:$(GLSRC)gxbitmap.h -$(DEVSRC)gdevdljm.h:$(GLSRC)gsmatrix.h -$(DEVSRC)gdevdljm.h:$(GLSRC)gscpm.h +$(DEVSRC)gdevdljm.h:$(GLSRC)gsiparam.h $(DEVSRC)gdevdljm.h:$(GLSRC)gxfixed.h -$(DEVSRC)gdevdljm.h:$(GLSRC)gsrefct.h +$(DEVSRC)gdevdljm.h:$(GLSRC)gxclio.h +$(DEVSRC)gdevdljm.h:$(GLSRC)gscompt.h +$(DEVSRC)gdevdljm.h:$(GLSRC)gsmatrix.h +$(DEVSRC)gdevdljm.h:$(GLSRC)gspenum.h +$(DEVSRC)gdevdljm.h:$(GLSRC)gxhttile.h $(DEVSRC)gdevdljm.h:$(GLSRC)gsparam.h +$(DEVSRC)gdevdljm.h:$(GLSRC)gsrefct.h $(DEVSRC)gdevdljm.h:$(GLSRC)gp.h -$(DEVSRC)gdevdljm.h:$(GLSRC)gsccolor.h -$(DEVSRC)gdevdljm.h:$(GLSRC)gsstruct.h -$(DEVSRC)gdevdljm.h:$(GLSRC)gxsync.h +$(DEVSRC)gdevdljm.h:$(GLSRC)memento.h +$(DEVSRC)gdevdljm.h:$(GLSRC)memory_.h $(DEVSRC)gdevdljm.h:$(GLSRC)gsutil.h +$(DEVSRC)gdevdljm.h:$(GLSRC)gsuid.h $(DEVSRC)gdevdljm.h:$(GLSRC)gsstrl.h +$(DEVSRC)gdevdljm.h:$(GLSRC)gsstruct.h $(DEVSRC)gdevdljm.h:$(GLSRC)gdbflags.h -$(DEVSRC)gdevdljm.h:$(GLSRC)srdline.h +$(DEVSRC)gdevdljm.h:$(GLSRC)gxsync.h $(DEVSRC)gdevdljm.h:$(GLSRC)gserrors.h -$(DEVSRC)gdevdljm.h:$(GLSRC)scommon.h -$(DEVSRC)gdevdljm.h:$(GLSRC)memento.h +$(DEVSRC)gdevdljm.h:$(GLSRC)gxbitmap.h $(DEVSRC)gdevdljm.h:$(GLSRC)vmsmath.h -$(DEVSRC)gdevdljm.h:$(GLSRC)gscsel.h -$(DEVSRC)gdevdljm.h:$(GLSRC)gsbitmap.h +$(DEVSRC)gdevdljm.h:$(GLSRC)srdline.h +$(DEVSRC)gdevdljm.h:$(GLSRC)scommon.h $(DEVSRC)gdevdljm.h:$(GLSRC)gsfname.h -$(DEVSRC)gdevdljm.h:$(GLSRC)gsstype.h +$(DEVSRC)gdevdljm.h:$(GLSRC)gsbitmap.h +$(DEVSRC)gdevdljm.h:$(GLSRC)gsccolor.h +$(DEVSRC)gdevdljm.h:$(GLSRC)gxarith.h $(DEVSRC)gdevdljm.h:$(GLSRC)stat_.h -$(DEVSRC)gdevdljm.h:$(GLSRC)gxtmap.h -$(DEVSRC)gdevdljm.h:$(GLSRC)gsmemory.h $(DEVSRC)gdevdljm.h:$(GLSRC)gpsync.h -$(DEVSRC)gdevdljm.h:$(GLSRC)memory_.h +$(DEVSRC)gdevdljm.h:$(GLSRC)gsstype.h +$(DEVSRC)gdevdljm.h:$(GLSRC)gsmemory.h $(DEVSRC)gdevdljm.h:$(GLSRC)gpgetenv.h -$(DEVSRC)gdevdljm.h:$(GLSRC)gslibctx.h $(DEVSRC)gdevdljm.h:$(GLSRC)gscdefs.h -$(DEVSRC)gdevdljm.h:$(GLSRC)gs_dll_call.h -$(DEVSRC)gdevdljm.h:$(GLSRC)stdio_.h -$(DEVSRC)gdevdljm.h:$(GLSRC)gscompt.h +$(DEVSRC)gdevdljm.h:$(GLSRC)gslibctx.h $(DEVSRC)gdevdljm.h:$(GLSRC)gxcindex.h -$(DEVSRC)gdevdljm.h:$(GLSRC)gsgstate.h +$(DEVSRC)gdevdljm.h:$(GLSRC)stdio_.h +$(DEVSRC)gdevdljm.h:$(GLSRC)gsccode.h $(DEVSRC)gdevdljm.h:$(GLSRC)stdint_.h $(DEVSRC)gdevdljm.h:$(GLSRC)gssprintf.h -$(DEVSRC)gdevdljm.h:$(GLSRC)gsccode.h -$(DEVSRC)gdevdljm.h:$(GLSRC)std.h $(DEVSRC)gdevdljm.h:$(GLSRC)gstypes.h +$(DEVSRC)gdevdljm.h:$(GLSRC)std.h $(DEVSRC)gdevdljm.h:$(GLSRC)stdpre.h $(DEVSRC)gdevdljm.h:$(GLGEN)arch.h +$(DEVSRC)gdevdljm.h:$(GLSRC)gs_dll_call.h $(DEVSRC)gdevxcmp.h:$(GLSRC)gxcvalue.h $(DEVSRC)gdevxcmp.h:$(GLSRC)x_.h $(DEVSRC)gdevxcmp.h:$(GLSRC)std.h @@ -2187,78 +2232,79 @@ $(DEVSRC)gdevxcmp.h:$(GLGEN)arch.h $(DEVSRC)gdevx.h:$(GLSRC)gdevbbox.h $(DEVSRC)gdevx.h:$(DEVSRC)gdevxcmp.h $(DEVSRC)gdevx.h:$(GLSRC)gxdevcli.h +$(DEVSRC)gdevx.h:$(GLSRC)gxcmap.h $(DEVSRC)gdevx.h:$(GLSRC)gxtext.h $(DEVSRC)gdevx.h:$(GLSRC)gstext.h $(DEVSRC)gdevx.h:$(GLSRC)gsnamecl.h $(DEVSRC)gdevx.h:$(GLSRC)gstparam.h -$(DEVSRC)gdevx.h:$(GLSRC)gxfcache.h -$(DEVSRC)gdevx.h:$(GLSRC)gxcspace.h -$(DEVSRC)gdevx.h:$(GLSRC)gsropt.h +$(DEVSRC)gdevx.h:$(GLSRC)gxfmap.h $(DEVSRC)gdevx.h:$(GLSRC)gsfunc.h +$(DEVSRC)gdevx.h:$(GLSRC)gxcspace.h $(DEVSRC)gdevx.h:$(GLSRC)gxrplane.h -$(DEVSRC)gdevx.h:$(GLSRC)gsuid.h -$(DEVSRC)gdevx.h:$(GLSRC)gxcmap.h +$(DEVSRC)gdevx.h:$(GLSRC)gscsel.h +$(DEVSRC)gdevx.h:$(GLSRC)gxfcache.h +$(DEVSRC)gdevx.h:$(GLSRC)gsfont.h $(DEVSRC)gdevx.h:$(GLSRC)gsimage.h $(DEVSRC)gdevx.h:$(GLSRC)gsdcolor.h -$(DEVSRC)gdevx.h:$(GLSRC)gxdda.h $(DEVSRC)gdevx.h:$(GLSRC)gxcvalue.h -$(DEVSRC)gdevx.h:$(GLSRC)gsfont.h -$(DEVSRC)gdevx.h:$(GLSRC)gxfmap.h -$(DEVSRC)gdevx.h:$(GLSRC)gxftype.h +$(DEVSRC)gdevx.h:$(GLSRC)gxbcache.h +$(DEVSRC)gdevx.h:$(GLSRC)gsropt.h +$(DEVSRC)gdevx.h:$(GLSRC)gxdda.h +$(DEVSRC)gdevx.h:$(GLSRC)gxpath.h $(DEVSRC)gdevx.h:$(GLSRC)gxfrac.h +$(DEVSRC)gdevx.h:$(GLSRC)gxtmap.h +$(DEVSRC)gdevx.h:$(GLSRC)gxftype.h $(DEVSRC)gdevx.h:$(GLSRC)gscms.h -$(DEVSRC)gdevx.h:$(GLSRC)gscspace.h -$(DEVSRC)gdevx.h:$(GLSRC)gxpath.h -$(DEVSRC)gdevx.h:$(GLSRC)gxbcache.h -$(DEVSRC)gdevx.h:$(GLSRC)gsdevice.h -$(DEVSRC)gdevx.h:$(GLSRC)gxarith.h -$(DEVSRC)gdevx.h:$(GLSRC)gspenum.h -$(DEVSRC)gdevx.h:$(GLSRC)gxhttile.h -$(DEVSRC)gdevx.h:$(GLSRC)x_.h $(DEVSRC)gdevx.h:$(GLSRC)gsrect.h $(DEVSRC)gdevx.h:$(GLSRC)gslparam.h +$(DEVSRC)gdevx.h:$(GLSRC)gsdevice.h +$(DEVSRC)gdevx.h:$(GLSRC)gscpm.h +$(DEVSRC)gdevx.h:$(GLSRC)x_.h +$(DEVSRC)gdevx.h:$(GLSRC)gscspace.h +$(DEVSRC)gdevx.h:$(GLSRC)gsgstate.h $(DEVSRC)gdevx.h:$(GLSRC)gsxfont.h -$(DEVSRC)gdevx.h:$(GLSRC)gsiparam.h $(DEVSRC)gdevx.h:$(GLSRC)gsdsrc.h -$(DEVSRC)gdevx.h:$(GLSRC)gxbitmap.h -$(DEVSRC)gdevx.h:$(GLSRC)gsmatrix.h -$(DEVSRC)gdevx.h:$(GLSRC)gscpm.h +$(DEVSRC)gdevx.h:$(GLSRC)gsiparam.h $(DEVSRC)gdevx.h:$(GLSRC)gxfixed.h -$(DEVSRC)gdevx.h:$(GLSRC)gsrefct.h +$(DEVSRC)gdevx.h:$(GLSRC)gscompt.h +$(DEVSRC)gdevx.h:$(GLSRC)gsmatrix.h +$(DEVSRC)gdevx.h:$(GLSRC)gspenum.h +$(DEVSRC)gdevx.h:$(GLSRC)gxhttile.h $(DEVSRC)gdevx.h:$(GLSRC)gsparam.h +$(DEVSRC)gdevx.h:$(GLSRC)gsrefct.h $(DEVSRC)gdevx.h:$(GLSRC)gp.h -$(DEVSRC)gdevx.h:$(GLSRC)gsccolor.h +$(DEVSRC)gdevx.h:$(GLSRC)memento.h +$(DEVSRC)gdevx.h:$(GLSRC)memory_.h +$(DEVSRC)gdevx.h:$(GLSRC)gsuid.h $(DEVSRC)gdevx.h:$(GLSRC)gsstruct.h $(DEVSRC)gdevx.h:$(GLSRC)gxsync.h +$(DEVSRC)gdevx.h:$(GLSRC)gxbitmap.h $(DEVSRC)gdevx.h:$(GLSRC)srdline.h $(DEVSRC)gdevx.h:$(GLSRC)scommon.h -$(DEVSRC)gdevx.h:$(GLSRC)memento.h -$(DEVSRC)gdevx.h:$(GLSRC)gscsel.h $(DEVSRC)gdevx.h:$(GLSRC)gsbitmap.h -$(DEVSRC)gdevx.h:$(GLSRC)gsstype.h +$(DEVSRC)gdevx.h:$(GLSRC)gsccolor.h +$(DEVSRC)gdevx.h:$(GLSRC)gxarith.h $(DEVSRC)gdevx.h:$(GLSRC)stat_.h -$(DEVSRC)gdevx.h:$(GLSRC)gxtmap.h -$(DEVSRC)gdevx.h:$(GLSRC)gsmemory.h $(DEVSRC)gdevx.h:$(GLSRC)gpsync.h -$(DEVSRC)gdevx.h:$(GLSRC)memory_.h +$(DEVSRC)gdevx.h:$(GLSRC)gsstype.h +$(DEVSRC)gdevx.h:$(GLSRC)gsmemory.h $(DEVSRC)gdevx.h:$(GLSRC)gpgetenv.h -$(DEVSRC)gdevx.h:$(GLSRC)gslibctx.h $(DEVSRC)gdevx.h:$(GLSRC)gscdefs.h -$(DEVSRC)gdevx.h:$(GLSRC)gs_dll_call.h -$(DEVSRC)gdevx.h:$(GLSRC)stdio_.h -$(DEVSRC)gdevx.h:$(GLSRC)gscompt.h +$(DEVSRC)gdevx.h:$(GLSRC)gslibctx.h $(DEVSRC)gdevx.h:$(GLSRC)gxcindex.h -$(DEVSRC)gdevx.h:$(GLSRC)gsgstate.h +$(DEVSRC)gdevx.h:$(GLSRC)stdio_.h +$(DEVSRC)gdevx.h:$(GLSRC)gsccode.h $(DEVSRC)gdevx.h:$(GLSRC)stdint_.h $(DEVSRC)gdevx.h:$(GLSRC)gssprintf.h -$(DEVSRC)gdevx.h:$(GLSRC)gsccode.h -$(DEVSRC)gdevx.h:$(GLSRC)std.h $(DEVSRC)gdevx.h:$(GLSRC)gstypes.h +$(DEVSRC)gdevx.h:$(GLSRC)std.h $(DEVSRC)gdevx.h:$(GLSRC)stdpre.h $(DEVSRC)gdevx.h:$(GLGEN)arch.h +$(DEVSRC)gdevx.h:$(GLSRC)gs_dll_call.h $(DEVSRC)gdevpxut.h:$(GLSRC)gsdevice.h -$(DEVSRC)gdevpxut.h:$(GLSRC)gsmatrix.h +$(DEVSRC)gdevpxut.h:$(GLSRC)gsgstate.h $(DEVSRC)gdevpxut.h:$(GLSRC)gxfixed.h +$(DEVSRC)gdevpxut.h:$(GLSRC)gsmatrix.h $(DEVSRC)gdevpxut.h:$(GLSRC)gsparam.h $(DEVSRC)gdevpxut.h:$(GLSRC)scommon.h $(DEVSRC)gdevpxut.h:$(GLSRC)gdevpxat.h @@ -2267,1102 +2313,1101 @@ $(DEVSRC)gdevpxut.h:$(GLSRC)gdevpxop.h $(DEVSRC)gdevpxut.h:$(GLSRC)gsstype.h $(DEVSRC)gdevpxut.h:$(GLSRC)gsmemory.h $(DEVSRC)gdevpxut.h:$(GLSRC)gslibctx.h -$(DEVSRC)gdevpxut.h:$(GLSRC)gs_dll_call.h $(DEVSRC)gdevpxut.h:$(GLSRC)stdio_.h -$(DEVSRC)gdevpxut.h:$(GLSRC)gsgstate.h $(DEVSRC)gdevpxut.h:$(GLSRC)stdint_.h $(DEVSRC)gdevpxut.h:$(GLSRC)gssprintf.h -$(DEVSRC)gdevpxut.h:$(GLSRC)std.h $(DEVSRC)gdevpxut.h:$(GLSRC)gstypes.h +$(DEVSRC)gdevpxut.h:$(GLSRC)std.h $(DEVSRC)gdevpxut.h:$(GLSRC)stdpre.h $(DEVSRC)gdevpxut.h:$(GLGEN)arch.h +$(DEVSRC)gdevpxut.h:$(GLSRC)gs_dll_call.h $(DEVVECSRC)gdevpsdf.h:$(GLSRC)gdevvec.h $(DEVVECSRC)gdevpsdf.h:$(GLSRC)gxgstate.h -$(DEVVECSRC)gdevpsdf.h:$(GLSRC)gxline.h $(DEVVECSRC)gdevpsdf.h:$(GLSRC)gstrans.h +$(DEVVECSRC)gdevpsdf.h:$(GLSRC)gdevp14.h +$(DEVVECSRC)gdevpsdf.h:$(GLSRC)gxline.h $(DEVVECSRC)gdevpsdf.h:$(GLSRC)gsht1.h -$(DEVVECSRC)gdevpsdf.h:$(GLSRC)gdevbbox.h +$(DEVVECSRC)gdevpsdf.h:$(GLSRC)gxcomp.h $(DEVVECSRC)gdevpsdf.h:$(GLSRC)math_.h $(DEVVECSRC)gdevpsdf.h:$(GLSRC)scfx.h -$(DEVVECSRC)gdevpsdf.h:$(GLSRC)gdevp14.h +$(DEVVECSRC)gdevpsdf.h:$(GLSRC)gdevbbox.h $(DEVVECSRC)gdevpsdf.h:$(GLSRC)gxcolor2.h -$(DEVVECSRC)gdevpsdf.h:$(GLSRC)spsdf.h $(DEVVECSRC)gdevpsdf.h:$(GLSRC)gxpcolor.h +$(DEVVECSRC)gdevpsdf.h:$(GLSRC)spsdf.h +$(DEVVECSRC)gdevpsdf.h:$(GLSRC)gxdevmem.h $(DEVVECSRC)gdevpsdf.h:$(GLSRC)gdevdevn.h -$(DEVVECSRC)gdevpsdf.h:$(GLSRC)gsequivc.h -$(DEVVECSRC)gdevpsdf.h:$(GLSRC)gxblend.h $(DEVVECSRC)gdevpsdf.h:$(GLSRC)gxclipsr.h -$(DEVVECSRC)gdevpsdf.h:$(GLSRC)gxcomp.h $(DEVVECSRC)gdevpsdf.h:$(GLSRC)gxdcolor.h -$(DEVVECSRC)gdevpsdf.h:$(GLSRC)gxmatrix.h -$(DEVVECSRC)gdevpsdf.h:$(GLSRC)gxbitfmt.h +$(DEVVECSRC)gdevpsdf.h:$(GLSRC)gxblend.h $(DEVVECSRC)gdevpsdf.h:$(GLSRC)shc.h $(DEVVECSRC)gdevpsdf.h:$(GLSRC)gscolor2.h -$(DEVVECSRC)gdevpsdf.h:$(GLSRC)gscindex.h +$(DEVVECSRC)gdevpsdf.h:$(GLSRC)gxmatrix.h $(DEVVECSRC)gdevpsdf.h:$(GLSRC)gxdevice.h -$(DEVVECSRC)gdevpsdf.h:$(GLSRC)gsht.h $(DEVVECSRC)gdevpsdf.h:$(GLSRC)gxcpath.h -$(DEVVECSRC)gdevpsdf.h:$(GLSRC)sa85x.h +$(DEVVECSRC)gdevpsdf.h:$(GLSRC)gsht.h $(DEVVECSRC)gdevpsdf.h:$(GLSRC)gxiparam.h +$(DEVVECSRC)gdevpsdf.h:$(GLSRC)sa85x.h +$(DEVVECSRC)gdevpsdf.h:$(GLSRC)gsequivc.h $(DEVVECSRC)gdevpsdf.h:$(GLSRC)sa85d.h -$(DEVVECSRC)gdevpsdf.h:$(GLSRC)gxdevmem.h $(DEVVECSRC)gdevpsdf.h:$(GLSRC)gxdevcli.h $(DEVVECSRC)gdevpsdf.h:$(GLSRC)gxpcache.h +$(DEVVECSRC)gdevpsdf.h:$(GLSRC)gscindex.h +$(DEVVECSRC)gdevpsdf.h:$(GLSRC)gxcmap.h $(DEVVECSRC)gdevpsdf.h:$(GLSRC)gsptype1.h -$(DEVVECSRC)gdevpsdf.h:$(GLSRC)gxtext.h $(DEVVECSRC)gdevpsdf.h:$(GLSRC)gscie.h +$(DEVVECSRC)gdevpsdf.h:$(GLSRC)gxtext.h $(DEVVECSRC)gdevpsdf.h:$(GLSRC)gstext.h +$(DEVVECSRC)gdevpsdf.h:$(GLSRC)gxstate.h $(DEVVECSRC)gdevpsdf.h:$(GLSRC)gsnamecl.h $(DEVVECSRC)gdevpsdf.h:$(GLSRC)gstparam.h -$(DEVVECSRC)gdevpsdf.h:$(GLSRC)gxstate.h $(DEVVECSRC)gdevpsdf.h:$(GLSRC)gspcolor.h -$(DEVVECSRC)gdevpsdf.h:$(GLSRC)gxfcache.h +$(DEVVECSRC)gdevpsdf.h:$(GLSRC)gxfmap.h $(DEVVECSRC)gdevpsdf.h:$(GLSRC)stream.h -$(DEVVECSRC)gdevpsdf.h:$(GLSRC)gxcspace.h -$(DEVVECSRC)gdevpsdf.h:$(GLSRC)gsropt.h -$(DEVVECSRC)gdevpsdf.h:$(GLSRC)gsfunc.h $(DEVVECSRC)gdevpsdf.h:$(GLSRC)gsmalloc.h -$(DEVVECSRC)gdevpsdf.h:$(GLSRC)gxrplane.h +$(DEVVECSRC)gdevpsdf.h:$(GLSRC)gsfunc.h +$(DEVVECSRC)gdevpsdf.h:$(GLSRC)gxcspace.h +$(DEVVECSRC)gdevpsdf.h:$(GLSRC)gxhldevc.h $(DEVVECSRC)gdevpsdf.h:$(GLSRC)gxctable.h $(DEVVECSRC)gdevpsdf.h:$(GLSRC)gxiodev.h -$(DEVVECSRC)gdevpsdf.h:$(GLSRC)gsuid.h -$(DEVVECSRC)gdevpsdf.h:$(GLSRC)gxcmap.h -$(DEVVECSRC)gdevpsdf.h:$(GLSRC)gxhldevc.h $(DEVVECSRC)gdevpsdf.h:$(GLSRC)strimpl.h +$(DEVVECSRC)gdevpsdf.h:$(GLSRC)gxrplane.h +$(DEVVECSRC)gdevpsdf.h:$(GLSRC)gscsel.h +$(DEVVECSRC)gdevpsdf.h:$(GLSRC)gxfcache.h +$(DEVVECSRC)gdevpsdf.h:$(GLSRC)gsfont.h $(DEVVECSRC)gdevpsdf.h:$(GLSRC)gsimage.h $(DEVVECSRC)gdevpsdf.h:$(GLSRC)gsdcolor.h -$(DEVVECSRC)gdevpsdf.h:$(GLSRC)gxdda.h $(DEVVECSRC)gdevpsdf.h:$(GLSRC)gxcvalue.h -$(DEVVECSRC)gdevpsdf.h:$(GLSRC)gsfont.h -$(DEVVECSRC)gdevpsdf.h:$(GLSRC)gxfmap.h +$(DEVVECSRC)gdevpsdf.h:$(GLSRC)gxbcache.h +$(DEVVECSRC)gdevpsdf.h:$(GLSRC)gsropt.h +$(DEVVECSRC)gdevpsdf.h:$(GLSRC)gxdda.h +$(DEVVECSRC)gdevpsdf.h:$(GLSRC)gxpath.h $(DEVVECSRC)gdevpsdf.h:$(GLSRC)gxiclass.h -$(DEVVECSRC)gdevpsdf.h:$(GLSRC)gxftype.h $(DEVVECSRC)gdevpsdf.h:$(GLSRC)gxfrac.h +$(DEVVECSRC)gdevpsdf.h:$(GLSRC)gxtmap.h +$(DEVVECSRC)gdevpsdf.h:$(GLSRC)gxftype.h $(DEVVECSRC)gdevpsdf.h:$(GLSRC)gscms.h -$(DEVVECSRC)gdevpsdf.h:$(GLSRC)gscspace.h -$(DEVVECSRC)gdevpsdf.h:$(GLSRC)gxpath.h -$(DEVVECSRC)gdevpsdf.h:$(GLSRC)gxbcache.h -$(DEVVECSRC)gdevpsdf.h:$(GLSRC)gsdevice.h -$(DEVVECSRC)gdevpsdf.h:$(GLSRC)gxarith.h -$(DEVVECSRC)gdevpsdf.h:$(GLSRC)gxstdio.h -$(DEVVECSRC)gdevpsdf.h:$(GLSRC)gspenum.h -$(DEVVECSRC)gdevpsdf.h:$(GLSRC)gxhttile.h $(DEVVECSRC)gdevpsdf.h:$(GLSRC)gsrect.h $(DEVVECSRC)gdevpsdf.h:$(GLSRC)gslparam.h +$(DEVVECSRC)gdevpsdf.h:$(GLSRC)gsdevice.h +$(DEVVECSRC)gdevpsdf.h:$(GLSRC)gxbitfmt.h +$(DEVVECSRC)gdevpsdf.h:$(GLSRC)gscpm.h +$(DEVVECSRC)gdevpsdf.h:$(GLSRC)gscspace.h +$(DEVVECSRC)gdevpsdf.h:$(GLSRC)gsgstate.h +$(DEVVECSRC)gdevpsdf.h:$(GLSRC)gxstdio.h $(DEVVECSRC)gdevpsdf.h:$(GLSRC)gsxfont.h -$(DEVVECSRC)gdevpsdf.h:$(GLSRC)gsiparam.h $(DEVVECSRC)gdevpsdf.h:$(GLSRC)gsdsrc.h $(DEVVECSRC)gdevpsdf.h:$(GLSRC)gsio.h -$(DEVVECSRC)gdevpsdf.h:$(GLSRC)gxbitmap.h -$(DEVVECSRC)gdevpsdf.h:$(GLSRC)gsmatrix.h -$(DEVVECSRC)gdevpsdf.h:$(GLSRC)gscpm.h +$(DEVVECSRC)gdevpsdf.h:$(GLSRC)gsiparam.h $(DEVVECSRC)gdevpsdf.h:$(GLSRC)gxfixed.h -$(DEVVECSRC)gdevpsdf.h:$(GLSRC)gsrefct.h +$(DEVVECSRC)gdevpsdf.h:$(GLSRC)gscompt.h +$(DEVVECSRC)gdevpsdf.h:$(GLSRC)gsmatrix.h +$(DEVVECSRC)gdevpsdf.h:$(GLSRC)gspenum.h +$(DEVVECSRC)gdevpsdf.h:$(GLSRC)gxhttile.h $(DEVVECSRC)gdevpsdf.h:$(GLSRC)gsparam.h +$(DEVVECSRC)gdevpsdf.h:$(GLSRC)gsrefct.h $(DEVVECSRC)gdevpsdf.h:$(GLSRC)gp.h -$(DEVVECSRC)gdevpsdf.h:$(GLSRC)gsccolor.h +$(DEVVECSRC)gdevpsdf.h:$(GLSRC)memento.h +$(DEVVECSRC)gdevpsdf.h:$(GLSRC)memory_.h +$(DEVVECSRC)gdevpsdf.h:$(GLSRC)gsuid.h $(DEVVECSRC)gdevpsdf.h:$(GLSRC)gsstruct.h $(DEVVECSRC)gdevpsdf.h:$(GLSRC)gxsync.h +$(DEVVECSRC)gdevpsdf.h:$(GLSRC)gxbitmap.h +$(DEVVECSRC)gdevpsdf.h:$(GLSRC)vmsmath.h $(DEVVECSRC)gdevpsdf.h:$(GLSRC)srdline.h $(DEVVECSRC)gdevpsdf.h:$(GLSRC)scommon.h -$(DEVVECSRC)gdevpsdf.h:$(GLSRC)memento.h -$(DEVVECSRC)gdevpsdf.h:$(GLSRC)vmsmath.h -$(DEVVECSRC)gdevpsdf.h:$(GLSRC)gscsel.h -$(DEVVECSRC)gdevpsdf.h:$(GLSRC)gsbitmap.h $(DEVVECSRC)gdevpsdf.h:$(GLSRC)gsfname.h -$(DEVVECSRC)gdevpsdf.h:$(GLSRC)gsstype.h +$(DEVVECSRC)gdevpsdf.h:$(GLSRC)gsbitmap.h +$(DEVVECSRC)gdevpsdf.h:$(GLSRC)gsccolor.h +$(DEVVECSRC)gdevpsdf.h:$(GLSRC)gxarith.h $(DEVVECSRC)gdevpsdf.h:$(GLSRC)stat_.h -$(DEVVECSRC)gdevpsdf.h:$(GLSRC)gxtmap.h -$(DEVVECSRC)gdevpsdf.h:$(GLSRC)gsmemory.h $(DEVVECSRC)gdevpsdf.h:$(GLSRC)gpsync.h -$(DEVVECSRC)gdevpsdf.h:$(GLSRC)memory_.h +$(DEVVECSRC)gdevpsdf.h:$(GLSRC)gsstype.h +$(DEVVECSRC)gdevpsdf.h:$(GLSRC)gsmemory.h $(DEVVECSRC)gdevpsdf.h:$(GLSRC)gpgetenv.h -$(DEVVECSRC)gdevpsdf.h:$(GLSRC)gslibctx.h $(DEVVECSRC)gdevpsdf.h:$(GLSRC)gscdefs.h -$(DEVVECSRC)gdevpsdf.h:$(GLSRC)gs_dll_call.h -$(DEVVECSRC)gdevpsdf.h:$(GLSRC)stdio_.h -$(DEVVECSRC)gdevpsdf.h:$(GLSRC)gscompt.h -$(DEVVECSRC)gdevpsdf.h:$(GLSRC)gsbittab.h +$(DEVVECSRC)gdevpsdf.h:$(GLSRC)gslibctx.h $(DEVVECSRC)gdevpsdf.h:$(GLSRC)gxcindex.h -$(DEVVECSRC)gdevpsdf.h:$(GLSRC)gsgstate.h +$(DEVVECSRC)gdevpsdf.h:$(GLSRC)stdio_.h +$(DEVVECSRC)gdevpsdf.h:$(GLSRC)gsccode.h $(DEVVECSRC)gdevpsdf.h:$(GLSRC)stdint_.h $(DEVVECSRC)gdevpsdf.h:$(GLSRC)gssprintf.h -$(DEVVECSRC)gdevpsdf.h:$(GLSRC)gsccode.h -$(DEVVECSRC)gdevpsdf.h:$(GLSRC)std.h +$(DEVVECSRC)gdevpsdf.h:$(GLSRC)gsbittab.h $(DEVVECSRC)gdevpsdf.h:$(GLSRC)gstypes.h +$(DEVVECSRC)gdevpsdf.h:$(GLSRC)std.h $(DEVVECSRC)gdevpsdf.h:$(GLSRC)stdpre.h $(DEVVECSRC)gdevpsdf.h:$(GLGEN)arch.h +$(DEVVECSRC)gdevpsdf.h:$(GLSRC)gs_dll_call.h $(DEVVECSRC)gdevpsds.h:$(GLSRC)strimpl.h $(DEVVECSRC)gdevpsds.h:$(GLSRC)gsdevice.h +$(DEVVECSRC)gdevpsds.h:$(GLSRC)gsgstate.h $(DEVVECSRC)gdevpsds.h:$(GLSRC)gsiparam.h -$(DEVVECSRC)gdevpsds.h:$(GLSRC)gxbitmap.h $(DEVVECSRC)gdevpsds.h:$(GLSRC)gsmatrix.h $(DEVVECSRC)gdevpsds.h:$(GLSRC)gsparam.h -$(DEVVECSRC)gdevpsds.h:$(GLSRC)gsccolor.h $(DEVVECSRC)gdevpsds.h:$(GLSRC)gsstruct.h +$(DEVVECSRC)gdevpsds.h:$(GLSRC)gxbitmap.h $(DEVVECSRC)gdevpsds.h:$(GLSRC)scommon.h $(DEVVECSRC)gdevpsds.h:$(GLSRC)gsbitmap.h +$(DEVVECSRC)gdevpsds.h:$(GLSRC)gsccolor.h $(DEVVECSRC)gdevpsds.h:$(GLSRC)gsstype.h $(DEVVECSRC)gdevpsds.h:$(GLSRC)gsmemory.h $(DEVVECSRC)gdevpsds.h:$(GLSRC)gslibctx.h -$(DEVVECSRC)gdevpsds.h:$(GLSRC)gs_dll_call.h $(DEVVECSRC)gdevpsds.h:$(GLSRC)stdio_.h -$(DEVVECSRC)gdevpsds.h:$(GLSRC)gsgstate.h $(DEVVECSRC)gdevpsds.h:$(GLSRC)stdint_.h $(DEVVECSRC)gdevpsds.h:$(GLSRC)gssprintf.h -$(DEVVECSRC)gdevpsds.h:$(GLSRC)std.h $(DEVVECSRC)gdevpsds.h:$(GLSRC)gstypes.h +$(DEVVECSRC)gdevpsds.h:$(GLSRC)std.h $(DEVVECSRC)gdevpsds.h:$(GLSRC)stdpre.h $(DEVVECSRC)gdevpsds.h:$(GLGEN)arch.h +$(DEVVECSRC)gdevpsds.h:$(GLSRC)gs_dll_call.h $(DEVVECSRC)gdevpdfc.h:$(DEVVECSRC)gdevpdfx.h $(DEVVECSRC)gdevpdfc.h:$(DEVVECSRC)gdevpsdf.h $(DEVVECSRC)gdevpdfc.h:$(GLSRC)gdevvec.h $(DEVVECSRC)gdevpdfc.h:$(GLSRC)gxgstate.h -$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gxline.h $(DEVVECSRC)gdevpdfc.h:$(GLSRC)gstrans.h -$(DEVVECSRC)gdevpdfc.h:$(GLSRC)sarc4.h +$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gdevp14.h +$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gxline.h $(DEVVECSRC)gdevpdfc.h:$(GLSRC)gsht1.h -$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gxfont.h -$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gdevbbox.h +$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gxcomp.h +$(DEVVECSRC)gdevpdfc.h:$(GLSRC)sarc4.h $(DEVVECSRC)gdevpdfc.h:$(GLSRC)math_.h $(DEVVECSRC)gdevpdfc.h:$(GLSRC)scfx.h -$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gdevp14.h +$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gdevbbox.h $(DEVVECSRC)gdevpdfc.h:$(GLSRC)gxcolor2.h +$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gxpcolor.h $(DEVVECSRC)gdevpdfc.h:$(GLSRC)spprint.h $(DEVVECSRC)gdevpdfc.h:$(GLSRC)spsdf.h -$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gxpcolor.h +$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gxdevmem.h +$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gxfont.h $(DEVVECSRC)gdevpdfc.h:$(GLSRC)gdevdevn.h -$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gsequivc.h $(DEVVECSRC)gdevpdfc.h:$(GLSRC)gspath.h -$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gxblend.h $(DEVVECSRC)gdevpdfc.h:$(GLSRC)gxclipsr.h -$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gxcomp.h -$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gxdcolor.h -$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gxmatrix.h $(DEVVECSRC)gdevpdfc.h:$(GLSRC)gsgdata.h -$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gxbitfmt.h +$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gxdcolor.h +$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gxblend.h $(DEVVECSRC)gdevpdfc.h:$(GLSRC)shc.h -$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gsgcache.h $(DEVVECSRC)gdevpdfc.h:$(GLSRC)gscolor2.h +$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gxmatrix.h $(DEVVECSRC)gdevpdfc.h:$(GLSRC)gxfapi.h -$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gscindex.h -$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gsnotify.h -$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gsfcmap.h $(DEVVECSRC)gdevpdfc.h:$(GLSRC)gxdevice.h -$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gsht.h +$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gsfcmap.h $(DEVVECSRC)gdevpdfc.h:$(GLSRC)gxcpath.h -$(DEVVECSRC)gdevpdfc.h:$(GLSRC)sa85x.h +$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gsht.h $(DEVVECSRC)gdevpdfc.h:$(GLSRC)gxiparam.h +$(DEVVECSRC)gdevpdfc.h:$(GLSRC)sa85x.h +$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gsequivc.h $(DEVVECSRC)gdevpdfc.h:$(GLSRC)sa85d.h -$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gxdevmem.h $(DEVVECSRC)gdevpdfc.h:$(GLSRC)gxdevcli.h $(DEVVECSRC)gdevpdfc.h:$(GLSRC)gxpcache.h +$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gscindex.h +$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gxcmap.h $(DEVVECSRC)gdevpdfc.h:$(GLSRC)gsptype1.h -$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gxtext.h $(DEVVECSRC)gdevpdfc.h:$(GLSRC)gscie.h +$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gxtext.h $(DEVVECSRC)gdevpdfc.h:$(GLSRC)gstext.h +$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gxstate.h $(DEVVECSRC)gdevpdfc.h:$(GLSRC)gsnamecl.h $(DEVVECSRC)gdevpdfc.h:$(GLSRC)gstparam.h -$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gxstate.h $(DEVVECSRC)gdevpdfc.h:$(GLSRC)gspcolor.h -$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gxfcache.h +$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gxfmap.h $(DEVVECSRC)gdevpdfc.h:$(GLSRC)stream.h -$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gxcspace.h -$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gsropt.h -$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gsfunc.h $(DEVVECSRC)gdevpdfc.h:$(GLSRC)gsmalloc.h -$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gxrplane.h +$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gsfunc.h +$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gxcspace.h +$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gxhldevc.h $(DEVVECSRC)gdevpdfc.h:$(GLSRC)gxctable.h $(DEVVECSRC)gdevpdfc.h:$(GLSRC)gxiodev.h -$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gsuid.h -$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gxcmap.h -$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gxhldevc.h $(DEVVECSRC)gdevpdfc.h:$(GLSRC)strimpl.h +$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gxrplane.h +$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gscsel.h +$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gxfcache.h +$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gsfont.h $(DEVVECSRC)gdevpdfc.h:$(GLSRC)gsimage.h $(DEVVECSRC)gdevpdfc.h:$(GLSRC)gsdcolor.h -$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gxdda.h $(DEVVECSRC)gdevpdfc.h:$(GLSRC)gxcvalue.h -$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gsfont.h -$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gxfmap.h +$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gxbcache.h +$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gsropt.h +$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gxdda.h +$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gxpath.h $(DEVVECSRC)gdevpdfc.h:$(GLSRC)gxiclass.h -$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gxftype.h $(DEVVECSRC)gdevpdfc.h:$(GLSRC)gxfrac.h +$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gxtmap.h +$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gxftype.h $(DEVVECSRC)gdevpdfc.h:$(GLSRC)gscms.h -$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gscspace.h -$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gxpath.h -$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gxbcache.h -$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gsdevice.h -$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gxarith.h -$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gxstdio.h -$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gspenum.h -$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gxhttile.h $(DEVVECSRC)gdevpdfc.h:$(GLSRC)gsrect.h $(DEVVECSRC)gdevpdfc.h:$(GLSRC)gslparam.h +$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gsdevice.h +$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gxbitfmt.h +$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gscpm.h +$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gsgcache.h +$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gscspace.h +$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gsgstate.h +$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gsnotify.h +$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gxstdio.h $(DEVVECSRC)gdevpdfc.h:$(GLSRC)gsxfont.h -$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gsiparam.h $(DEVVECSRC)gdevpdfc.h:$(GLSRC)gsdsrc.h $(DEVVECSRC)gdevpdfc.h:$(GLSRC)gsio.h -$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gxbitmap.h -$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gsmatrix.h -$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gscpm.h +$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gsiparam.h $(DEVVECSRC)gdevpdfc.h:$(GLSRC)gxfixed.h -$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gsrefct.h +$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gscompt.h +$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gsmatrix.h +$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gspenum.h +$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gxhttile.h $(DEVVECSRC)gdevpdfc.h:$(GLSRC)gsparam.h +$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gsrefct.h $(DEVVECSRC)gdevpdfc.h:$(GLSRC)gp.h -$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gsccolor.h +$(DEVVECSRC)gdevpdfc.h:$(GLSRC)memento.h +$(DEVVECSRC)gdevpdfc.h:$(GLSRC)memory_.h +$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gsuid.h $(DEVVECSRC)gdevpdfc.h:$(GLSRC)gsstruct.h $(DEVVECSRC)gdevpdfc.h:$(GLSRC)gxsync.h +$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gxbitmap.h +$(DEVVECSRC)gdevpdfc.h:$(GLSRC)vmsmath.h $(DEVVECSRC)gdevpdfc.h:$(GLSRC)srdline.h $(DEVVECSRC)gdevpdfc.h:$(GLSRC)scommon.h -$(DEVVECSRC)gdevpdfc.h:$(GLSRC)memento.h -$(DEVVECSRC)gdevpdfc.h:$(GLSRC)vmsmath.h -$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gscsel.h -$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gsbitmap.h $(DEVVECSRC)gdevpdfc.h:$(GLSRC)gsfname.h -$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gsstype.h +$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gsbitmap.h +$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gsccolor.h +$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gxarith.h $(DEVVECSRC)gdevpdfc.h:$(GLSRC)stat_.h -$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gxtmap.h -$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gsmemory.h $(DEVVECSRC)gdevpdfc.h:$(GLSRC)gpsync.h -$(DEVVECSRC)gdevpdfc.h:$(GLSRC)memory_.h +$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gsstype.h +$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gsmemory.h $(DEVVECSRC)gdevpdfc.h:$(GLSRC)gpgetenv.h -$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gslibctx.h $(DEVVECSRC)gdevpdfc.h:$(GLSRC)gscdefs.h -$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gs_dll_call.h -$(DEVVECSRC)gdevpdfc.h:$(GLSRC)stdio_.h -$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gscompt.h -$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gsbittab.h +$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gslibctx.h $(DEVVECSRC)gdevpdfc.h:$(GLSRC)gxcindex.h -$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gsgstate.h +$(DEVVECSRC)gdevpdfc.h:$(GLSRC)stdio_.h +$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gsccode.h $(DEVVECSRC)gdevpdfc.h:$(GLSRC)stdint_.h $(DEVVECSRC)gdevpdfc.h:$(GLSRC)gssprintf.h -$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gsccode.h -$(DEVVECSRC)gdevpdfc.h:$(GLSRC)std.h +$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gsbittab.h $(DEVVECSRC)gdevpdfc.h:$(GLSRC)gstypes.h +$(DEVVECSRC)gdevpdfc.h:$(GLSRC)std.h $(DEVVECSRC)gdevpdfc.h:$(GLSRC)stdpre.h $(DEVVECSRC)gdevpdfc.h:$(GLGEN)arch.h +$(DEVVECSRC)gdevpdfc.h:$(GLSRC)gs_dll_call.h $(DEVVECSRC)gdevpdfg.h:$(DEVVECSRC)gdevpdfx.h $(DEVVECSRC)gdevpdfg.h:$(DEVVECSRC)gdevpsdf.h $(DEVVECSRC)gdevpdfg.h:$(GLSRC)gdevvec.h $(DEVVECSRC)gdevpdfg.h:$(GLSRC)gxgstate.h -$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gxline.h $(DEVVECSRC)gdevpdfg.h:$(GLSRC)gstrans.h -$(DEVVECSRC)gdevpdfg.h:$(GLSRC)sarc4.h +$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gdevp14.h +$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gxline.h $(DEVVECSRC)gdevpdfg.h:$(GLSRC)gsht1.h -$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gxfont.h -$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gdevbbox.h +$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gxcomp.h +$(DEVVECSRC)gdevpdfg.h:$(GLSRC)sarc4.h $(DEVVECSRC)gdevpdfg.h:$(GLSRC)math_.h $(DEVVECSRC)gdevpdfg.h:$(GLSRC)scfx.h -$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gdevp14.h +$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gdevbbox.h $(DEVVECSRC)gdevpdfg.h:$(GLSRC)gxcolor2.h +$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gxpcolor.h $(DEVVECSRC)gdevpdfg.h:$(GLSRC)spprint.h $(DEVVECSRC)gdevpdfg.h:$(GLSRC)spsdf.h -$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gxpcolor.h +$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gxdevmem.h +$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gxfont.h $(DEVVECSRC)gdevpdfg.h:$(GLSRC)gdevdevn.h -$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gsequivc.h $(DEVVECSRC)gdevpdfg.h:$(GLSRC)gspath.h -$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gxblend.h $(DEVVECSRC)gdevpdfg.h:$(GLSRC)gxclipsr.h -$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gxcomp.h -$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gxdcolor.h -$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gxmatrix.h $(DEVVECSRC)gdevpdfg.h:$(GLSRC)gsgdata.h -$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gxbitfmt.h +$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gxdcolor.h +$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gxblend.h $(DEVVECSRC)gdevpdfg.h:$(GLSRC)shc.h -$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gsgcache.h $(DEVVECSRC)gdevpdfg.h:$(GLSRC)gscolor2.h +$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gxmatrix.h $(DEVVECSRC)gdevpdfg.h:$(GLSRC)gxfapi.h -$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gscindex.h -$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gsnotify.h -$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gsfcmap.h $(DEVVECSRC)gdevpdfg.h:$(GLSRC)gxdevice.h -$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gsht.h +$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gsfcmap.h $(DEVVECSRC)gdevpdfg.h:$(GLSRC)gxcpath.h -$(DEVVECSRC)gdevpdfg.h:$(GLSRC)sa85x.h +$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gsht.h $(DEVVECSRC)gdevpdfg.h:$(GLSRC)gxiparam.h +$(DEVVECSRC)gdevpdfg.h:$(GLSRC)sa85x.h +$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gsequivc.h $(DEVVECSRC)gdevpdfg.h:$(GLSRC)sa85d.h -$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gxdevmem.h $(DEVVECSRC)gdevpdfg.h:$(GLSRC)gxdevcli.h $(DEVVECSRC)gdevpdfg.h:$(GLSRC)gxpcache.h +$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gscindex.h +$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gxcmap.h $(DEVVECSRC)gdevpdfg.h:$(GLSRC)gsptype1.h -$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gxtext.h $(DEVVECSRC)gdevpdfg.h:$(GLSRC)gscie.h +$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gxtext.h $(DEVVECSRC)gdevpdfg.h:$(GLSRC)gstext.h +$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gxstate.h $(DEVVECSRC)gdevpdfg.h:$(GLSRC)gsnamecl.h $(DEVVECSRC)gdevpdfg.h:$(GLSRC)gstparam.h -$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gxstate.h $(DEVVECSRC)gdevpdfg.h:$(GLSRC)gspcolor.h -$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gxfcache.h +$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gxfmap.h $(DEVVECSRC)gdevpdfg.h:$(GLSRC)stream.h -$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gxcspace.h -$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gsropt.h -$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gsfunc.h $(DEVVECSRC)gdevpdfg.h:$(GLSRC)gsmalloc.h -$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gxrplane.h +$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gsfunc.h +$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gxcspace.h +$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gxhldevc.h $(DEVVECSRC)gdevpdfg.h:$(GLSRC)gxctable.h $(DEVVECSRC)gdevpdfg.h:$(GLSRC)gxiodev.h -$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gsuid.h -$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gxcmap.h -$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gxhldevc.h $(DEVVECSRC)gdevpdfg.h:$(GLSRC)strimpl.h +$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gxrplane.h +$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gscsel.h +$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gxfcache.h +$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gsfont.h $(DEVVECSRC)gdevpdfg.h:$(GLSRC)gsimage.h $(DEVVECSRC)gdevpdfg.h:$(GLSRC)gsdcolor.h -$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gxdda.h $(DEVVECSRC)gdevpdfg.h:$(GLSRC)gxcvalue.h -$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gsfont.h -$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gxfmap.h +$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gxbcache.h +$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gsropt.h +$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gxdda.h +$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gxpath.h $(DEVVECSRC)gdevpdfg.h:$(GLSRC)gxiclass.h -$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gxftype.h $(DEVVECSRC)gdevpdfg.h:$(GLSRC)gxfrac.h +$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gxtmap.h +$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gxftype.h $(DEVVECSRC)gdevpdfg.h:$(GLSRC)gscms.h -$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gscspace.h -$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gxpath.h -$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gxbcache.h -$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gsdevice.h -$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gxarith.h -$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gxstdio.h -$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gspenum.h -$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gxhttile.h $(DEVVECSRC)gdevpdfg.h:$(GLSRC)gsrect.h $(DEVVECSRC)gdevpdfg.h:$(GLSRC)gslparam.h +$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gsdevice.h +$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gxbitfmt.h +$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gscpm.h +$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gsgcache.h +$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gscspace.h +$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gsgstate.h +$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gsnotify.h +$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gxstdio.h $(DEVVECSRC)gdevpdfg.h:$(GLSRC)gsxfont.h -$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gsiparam.h $(DEVVECSRC)gdevpdfg.h:$(GLSRC)gsdsrc.h $(DEVVECSRC)gdevpdfg.h:$(GLSRC)gsio.h -$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gxbitmap.h -$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gsmatrix.h -$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gscpm.h +$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gsiparam.h $(DEVVECSRC)gdevpdfg.h:$(GLSRC)gxfixed.h -$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gsrefct.h +$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gscompt.h +$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gsmatrix.h +$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gspenum.h +$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gxhttile.h $(DEVVECSRC)gdevpdfg.h:$(GLSRC)gsparam.h +$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gsrefct.h $(DEVVECSRC)gdevpdfg.h:$(GLSRC)gp.h -$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gsccolor.h +$(DEVVECSRC)gdevpdfg.h:$(GLSRC)memento.h +$(DEVVECSRC)gdevpdfg.h:$(GLSRC)memory_.h +$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gsuid.h $(DEVVECSRC)gdevpdfg.h:$(GLSRC)gsstruct.h $(DEVVECSRC)gdevpdfg.h:$(GLSRC)gxsync.h +$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gxbitmap.h +$(DEVVECSRC)gdevpdfg.h:$(GLSRC)vmsmath.h $(DEVVECSRC)gdevpdfg.h:$(GLSRC)srdline.h $(DEVVECSRC)gdevpdfg.h:$(GLSRC)scommon.h -$(DEVVECSRC)gdevpdfg.h:$(GLSRC)memento.h -$(DEVVECSRC)gdevpdfg.h:$(GLSRC)vmsmath.h -$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gscsel.h -$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gsbitmap.h $(DEVVECSRC)gdevpdfg.h:$(GLSRC)gsfname.h -$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gsstype.h +$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gsbitmap.h +$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gsccolor.h +$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gxarith.h $(DEVVECSRC)gdevpdfg.h:$(GLSRC)stat_.h -$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gxtmap.h -$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gsmemory.h $(DEVVECSRC)gdevpdfg.h:$(GLSRC)gpsync.h -$(DEVVECSRC)gdevpdfg.h:$(GLSRC)memory_.h +$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gsstype.h +$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gsmemory.h $(DEVVECSRC)gdevpdfg.h:$(GLSRC)gpgetenv.h -$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gslibctx.h $(DEVVECSRC)gdevpdfg.h:$(GLSRC)gscdefs.h -$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gs_dll_call.h -$(DEVVECSRC)gdevpdfg.h:$(GLSRC)stdio_.h -$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gscompt.h -$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gsbittab.h +$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gslibctx.h $(DEVVECSRC)gdevpdfg.h:$(GLSRC)gxcindex.h -$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gsgstate.h +$(DEVVECSRC)gdevpdfg.h:$(GLSRC)stdio_.h +$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gsccode.h $(DEVVECSRC)gdevpdfg.h:$(GLSRC)stdint_.h $(DEVVECSRC)gdevpdfg.h:$(GLSRC)gssprintf.h -$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gsccode.h -$(DEVVECSRC)gdevpdfg.h:$(GLSRC)std.h +$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gsbittab.h $(DEVVECSRC)gdevpdfg.h:$(GLSRC)gstypes.h +$(DEVVECSRC)gdevpdfg.h:$(GLSRC)std.h $(DEVVECSRC)gdevpdfg.h:$(GLSRC)stdpre.h $(DEVVECSRC)gdevpdfg.h:$(GLGEN)arch.h +$(DEVVECSRC)gdevpdfg.h:$(GLSRC)gs_dll_call.h $(DEVVECSRC)gdevpdfo.h:$(DEVVECSRC)gdevpdfx.h $(DEVVECSRC)gdevpdfo.h:$(DEVVECSRC)gdevpsdf.h $(DEVVECSRC)gdevpdfo.h:$(GLSRC)gdevvec.h $(DEVVECSRC)gdevpdfo.h:$(GLSRC)gxgstate.h -$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gxline.h $(DEVVECSRC)gdevpdfo.h:$(GLSRC)gstrans.h -$(DEVVECSRC)gdevpdfo.h:$(GLSRC)sarc4.h +$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gdevp14.h +$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gxline.h $(DEVVECSRC)gdevpdfo.h:$(GLSRC)gsht1.h -$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gxfont.h -$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gdevbbox.h +$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gxcomp.h +$(DEVVECSRC)gdevpdfo.h:$(GLSRC)sarc4.h $(DEVVECSRC)gdevpdfo.h:$(GLSRC)math_.h $(DEVVECSRC)gdevpdfo.h:$(GLSRC)scfx.h -$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gdevp14.h +$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gdevbbox.h $(DEVVECSRC)gdevpdfo.h:$(GLSRC)gxcolor2.h +$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gxpcolor.h $(DEVVECSRC)gdevpdfo.h:$(GLSRC)spprint.h -$(DEVVECSRC)gdevpdfo.h:$(GLSRC)smd5.h $(DEVVECSRC)gdevpdfo.h:$(GLSRC)spsdf.h -$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gxpcolor.h +$(DEVVECSRC)gdevpdfo.h:$(GLSRC)smd5.h +$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gxdevmem.h +$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gxfont.h $(DEVVECSRC)gdevpdfo.h:$(GLSRC)gdevdevn.h -$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gsequivc.h $(DEVVECSRC)gdevpdfo.h:$(GLSRC)gspath.h -$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gxblend.h $(DEVVECSRC)gdevpdfo.h:$(GLSRC)gxclipsr.h -$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gxcomp.h -$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gxdcolor.h -$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gxmatrix.h $(DEVVECSRC)gdevpdfo.h:$(GLSRC)gsgdata.h -$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gxbitfmt.h +$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gxdcolor.h +$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gxblend.h $(DEVVECSRC)gdevpdfo.h:$(GLSRC)shc.h -$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gsgcache.h $(DEVVECSRC)gdevpdfo.h:$(GLSRC)gscolor2.h +$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gxmatrix.h $(DEVVECSRC)gdevpdfo.h:$(GLSRC)gxfapi.h -$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gscindex.h -$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gsnotify.h -$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gsfcmap.h $(DEVVECSRC)gdevpdfo.h:$(GLSRC)gxdevice.h -$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gsht.h +$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gsfcmap.h $(DEVVECSRC)gdevpdfo.h:$(GLSRC)gxcpath.h -$(DEVVECSRC)gdevpdfo.h:$(GLSRC)sa85x.h +$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gsht.h $(DEVVECSRC)gdevpdfo.h:$(GLSRC)gxiparam.h +$(DEVVECSRC)gdevpdfo.h:$(GLSRC)sa85x.h +$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gsequivc.h $(DEVVECSRC)gdevpdfo.h:$(GLSRC)sa85d.h -$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gxdevmem.h $(DEVVECSRC)gdevpdfo.h:$(GLSRC)gxdevcli.h $(DEVVECSRC)gdevpdfo.h:$(GLSRC)gxpcache.h +$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gscindex.h +$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gxcmap.h $(DEVVECSRC)gdevpdfo.h:$(GLSRC)gsptype1.h -$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gxtext.h $(DEVVECSRC)gdevpdfo.h:$(GLSRC)gscie.h +$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gxtext.h $(DEVVECSRC)gdevpdfo.h:$(GLSRC)gstext.h +$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gxstate.h $(DEVVECSRC)gdevpdfo.h:$(GLSRC)gsnamecl.h $(DEVVECSRC)gdevpdfo.h:$(GLSRC)gstparam.h -$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gxstate.h $(DEVVECSRC)gdevpdfo.h:$(GLSRC)gspcolor.h -$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gxfcache.h +$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gxfmap.h $(DEVVECSRC)gdevpdfo.h:$(GLSRC)stream.h -$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gxcspace.h -$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gsropt.h -$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gsfunc.h $(DEVVECSRC)gdevpdfo.h:$(GLSRC)gsmalloc.h -$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gxrplane.h +$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gsfunc.h +$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gxcspace.h +$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gxhldevc.h $(DEVVECSRC)gdevpdfo.h:$(GLSRC)gxctable.h $(DEVVECSRC)gdevpdfo.h:$(GLSRC)gxiodev.h -$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gsuid.h -$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gxcmap.h -$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gxhldevc.h $(DEVVECSRC)gdevpdfo.h:$(GLSRC)strimpl.h +$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gxrplane.h +$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gscsel.h +$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gxfcache.h +$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gsfont.h $(DEVVECSRC)gdevpdfo.h:$(GLSRC)gsimage.h $(DEVVECSRC)gdevpdfo.h:$(GLSRC)gsdcolor.h -$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gxdda.h $(DEVVECSRC)gdevpdfo.h:$(GLSRC)gxcvalue.h -$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gsfont.h -$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gxfmap.h +$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gxbcache.h +$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gsropt.h +$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gxdda.h +$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gxpath.h $(DEVVECSRC)gdevpdfo.h:$(GLSRC)gxiclass.h -$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gxftype.h $(DEVVECSRC)gdevpdfo.h:$(GLSRC)gxfrac.h +$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gxtmap.h +$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gxftype.h $(DEVVECSRC)gdevpdfo.h:$(GLSRC)gscms.h -$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gscspace.h -$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gxpath.h -$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gxbcache.h -$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gsdevice.h -$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gxarith.h -$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gxstdio.h -$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gspenum.h -$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gxhttile.h $(DEVVECSRC)gdevpdfo.h:$(GLSRC)gsrect.h -$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gsmd5.h $(DEVVECSRC)gdevpdfo.h:$(GLSRC)gslparam.h +$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gsdevice.h +$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gxbitfmt.h +$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gscpm.h +$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gsgcache.h +$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gscspace.h +$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gsmd5.h +$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gsgstate.h +$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gsnotify.h +$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gxstdio.h $(DEVVECSRC)gdevpdfo.h:$(GLSRC)gsxfont.h -$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gsiparam.h $(DEVVECSRC)gdevpdfo.h:$(GLSRC)gsdsrc.h $(DEVVECSRC)gdevpdfo.h:$(GLSRC)gsio.h -$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gxbitmap.h -$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gsmatrix.h -$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gscpm.h +$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gsiparam.h $(DEVVECSRC)gdevpdfo.h:$(GLSRC)gxfixed.h -$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gsrefct.h +$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gscompt.h +$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gsmatrix.h +$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gspenum.h +$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gxhttile.h $(DEVVECSRC)gdevpdfo.h:$(GLSRC)gsparam.h +$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gsrefct.h $(DEVVECSRC)gdevpdfo.h:$(GLSRC)gp.h -$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gsccolor.h +$(DEVVECSRC)gdevpdfo.h:$(GLSRC)memento.h +$(DEVVECSRC)gdevpdfo.h:$(GLSRC)memory_.h +$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gsuid.h $(DEVVECSRC)gdevpdfo.h:$(GLSRC)gsstruct.h $(DEVVECSRC)gdevpdfo.h:$(GLSRC)gxsync.h +$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gxbitmap.h +$(DEVVECSRC)gdevpdfo.h:$(GLSRC)vmsmath.h $(DEVVECSRC)gdevpdfo.h:$(GLSRC)srdline.h $(DEVVECSRC)gdevpdfo.h:$(GLSRC)scommon.h -$(DEVVECSRC)gdevpdfo.h:$(GLSRC)memento.h -$(DEVVECSRC)gdevpdfo.h:$(GLSRC)vmsmath.h -$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gscsel.h -$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gsbitmap.h $(DEVVECSRC)gdevpdfo.h:$(GLSRC)gsfname.h -$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gsstype.h +$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gsbitmap.h +$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gsccolor.h +$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gxarith.h $(DEVVECSRC)gdevpdfo.h:$(GLSRC)stat_.h -$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gxtmap.h -$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gsmemory.h $(DEVVECSRC)gdevpdfo.h:$(GLSRC)gpsync.h -$(DEVVECSRC)gdevpdfo.h:$(GLSRC)memory_.h +$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gsstype.h +$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gsmemory.h $(DEVVECSRC)gdevpdfo.h:$(GLSRC)gpgetenv.h -$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gslibctx.h $(DEVVECSRC)gdevpdfo.h:$(GLSRC)gscdefs.h -$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gs_dll_call.h -$(DEVVECSRC)gdevpdfo.h:$(GLSRC)stdio_.h -$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gscompt.h -$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gsbittab.h +$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gslibctx.h $(DEVVECSRC)gdevpdfo.h:$(GLSRC)gxcindex.h -$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gsgstate.h +$(DEVVECSRC)gdevpdfo.h:$(GLSRC)stdio_.h +$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gsccode.h $(DEVVECSRC)gdevpdfo.h:$(GLSRC)stdint_.h $(DEVVECSRC)gdevpdfo.h:$(GLSRC)gssprintf.h -$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gsccode.h -$(DEVVECSRC)gdevpdfo.h:$(GLSRC)std.h +$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gsbittab.h $(DEVVECSRC)gdevpdfo.h:$(GLSRC)gstypes.h +$(DEVVECSRC)gdevpdfo.h:$(GLSRC)std.h $(DEVVECSRC)gdevpdfo.h:$(GLSRC)stdpre.h $(DEVVECSRC)gdevpdfo.h:$(GLGEN)arch.h +$(DEVVECSRC)gdevpdfo.h:$(GLSRC)gs_dll_call.h $(DEVVECSRC)gdevpdfx.h:$(DEVVECSRC)gdevpsdf.h $(DEVVECSRC)gdevpdfx.h:$(GLSRC)gdevvec.h $(DEVVECSRC)gdevpdfx.h:$(GLSRC)gxgstate.h -$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gxline.h $(DEVVECSRC)gdevpdfx.h:$(GLSRC)gstrans.h -$(DEVVECSRC)gdevpdfx.h:$(GLSRC)sarc4.h +$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gdevp14.h +$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gxline.h $(DEVVECSRC)gdevpdfx.h:$(GLSRC)gsht1.h -$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gxfont.h -$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gdevbbox.h +$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gxcomp.h +$(DEVVECSRC)gdevpdfx.h:$(GLSRC)sarc4.h $(DEVVECSRC)gdevpdfx.h:$(GLSRC)math_.h $(DEVVECSRC)gdevpdfx.h:$(GLSRC)scfx.h -$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gdevp14.h +$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gdevbbox.h $(DEVVECSRC)gdevpdfx.h:$(GLSRC)gxcolor2.h +$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gxpcolor.h $(DEVVECSRC)gdevpdfx.h:$(GLSRC)spprint.h $(DEVVECSRC)gdevpdfx.h:$(GLSRC)spsdf.h -$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gxpcolor.h +$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gxdevmem.h +$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gxfont.h $(DEVVECSRC)gdevpdfx.h:$(GLSRC)gdevdevn.h -$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gsequivc.h $(DEVVECSRC)gdevpdfx.h:$(GLSRC)gspath.h -$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gxblend.h $(DEVVECSRC)gdevpdfx.h:$(GLSRC)gxclipsr.h -$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gxcomp.h -$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gxdcolor.h -$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gxmatrix.h $(DEVVECSRC)gdevpdfx.h:$(GLSRC)gsgdata.h -$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gxbitfmt.h +$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gxdcolor.h +$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gxblend.h $(DEVVECSRC)gdevpdfx.h:$(GLSRC)shc.h -$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gsgcache.h $(DEVVECSRC)gdevpdfx.h:$(GLSRC)gscolor2.h +$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gxmatrix.h $(DEVVECSRC)gdevpdfx.h:$(GLSRC)gxfapi.h -$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gscindex.h -$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gsnotify.h -$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gsfcmap.h $(DEVVECSRC)gdevpdfx.h:$(GLSRC)gxdevice.h -$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gsht.h +$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gsfcmap.h $(DEVVECSRC)gdevpdfx.h:$(GLSRC)gxcpath.h -$(DEVVECSRC)gdevpdfx.h:$(GLSRC)sa85x.h +$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gsht.h $(DEVVECSRC)gdevpdfx.h:$(GLSRC)gxiparam.h +$(DEVVECSRC)gdevpdfx.h:$(GLSRC)sa85x.h +$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gsequivc.h $(DEVVECSRC)gdevpdfx.h:$(GLSRC)sa85d.h -$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gxdevmem.h $(DEVVECSRC)gdevpdfx.h:$(GLSRC)gxdevcli.h $(DEVVECSRC)gdevpdfx.h:$(GLSRC)gxpcache.h +$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gscindex.h +$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gxcmap.h $(DEVVECSRC)gdevpdfx.h:$(GLSRC)gsptype1.h -$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gxtext.h $(DEVVECSRC)gdevpdfx.h:$(GLSRC)gscie.h +$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gxtext.h $(DEVVECSRC)gdevpdfx.h:$(GLSRC)gstext.h +$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gxstate.h $(DEVVECSRC)gdevpdfx.h:$(GLSRC)gsnamecl.h $(DEVVECSRC)gdevpdfx.h:$(GLSRC)gstparam.h -$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gxstate.h $(DEVVECSRC)gdevpdfx.h:$(GLSRC)gspcolor.h -$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gxfcache.h +$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gxfmap.h $(DEVVECSRC)gdevpdfx.h:$(GLSRC)stream.h -$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gxcspace.h -$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gsropt.h -$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gsfunc.h $(DEVVECSRC)gdevpdfx.h:$(GLSRC)gsmalloc.h -$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gxrplane.h +$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gsfunc.h +$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gxcspace.h +$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gxhldevc.h $(DEVVECSRC)gdevpdfx.h:$(GLSRC)gxctable.h $(DEVVECSRC)gdevpdfx.h:$(GLSRC)gxiodev.h -$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gsuid.h -$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gxcmap.h -$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gxhldevc.h $(DEVVECSRC)gdevpdfx.h:$(GLSRC)strimpl.h +$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gxrplane.h +$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gscsel.h +$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gxfcache.h +$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gsfont.h $(DEVVECSRC)gdevpdfx.h:$(GLSRC)gsimage.h $(DEVVECSRC)gdevpdfx.h:$(GLSRC)gsdcolor.h -$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gxdda.h $(DEVVECSRC)gdevpdfx.h:$(GLSRC)gxcvalue.h -$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gsfont.h -$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gxfmap.h +$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gxbcache.h +$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gsropt.h +$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gxdda.h +$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gxpath.h $(DEVVECSRC)gdevpdfx.h:$(GLSRC)gxiclass.h -$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gxftype.h $(DEVVECSRC)gdevpdfx.h:$(GLSRC)gxfrac.h +$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gxtmap.h +$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gxftype.h $(DEVVECSRC)gdevpdfx.h:$(GLSRC)gscms.h -$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gscspace.h -$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gxpath.h -$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gxbcache.h -$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gsdevice.h -$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gxarith.h -$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gxstdio.h -$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gspenum.h -$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gxhttile.h $(DEVVECSRC)gdevpdfx.h:$(GLSRC)gsrect.h $(DEVVECSRC)gdevpdfx.h:$(GLSRC)gslparam.h +$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gsdevice.h +$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gxbitfmt.h +$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gscpm.h +$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gsgcache.h +$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gscspace.h +$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gsgstate.h +$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gsnotify.h +$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gxstdio.h $(DEVVECSRC)gdevpdfx.h:$(GLSRC)gsxfont.h -$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gsiparam.h $(DEVVECSRC)gdevpdfx.h:$(GLSRC)gsdsrc.h $(DEVVECSRC)gdevpdfx.h:$(GLSRC)gsio.h -$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gxbitmap.h -$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gsmatrix.h -$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gscpm.h +$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gsiparam.h $(DEVVECSRC)gdevpdfx.h:$(GLSRC)gxfixed.h -$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gsrefct.h +$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gscompt.h +$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gsmatrix.h +$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gspenum.h +$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gxhttile.h $(DEVVECSRC)gdevpdfx.h:$(GLSRC)gsparam.h +$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gsrefct.h $(DEVVECSRC)gdevpdfx.h:$(GLSRC)gp.h -$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gsccolor.h +$(DEVVECSRC)gdevpdfx.h:$(GLSRC)memento.h +$(DEVVECSRC)gdevpdfx.h:$(GLSRC)memory_.h +$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gsuid.h $(DEVVECSRC)gdevpdfx.h:$(GLSRC)gsstruct.h $(DEVVECSRC)gdevpdfx.h:$(GLSRC)gxsync.h +$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gxbitmap.h +$(DEVVECSRC)gdevpdfx.h:$(GLSRC)vmsmath.h $(DEVVECSRC)gdevpdfx.h:$(GLSRC)srdline.h $(DEVVECSRC)gdevpdfx.h:$(GLSRC)scommon.h -$(DEVVECSRC)gdevpdfx.h:$(GLSRC)memento.h -$(DEVVECSRC)gdevpdfx.h:$(GLSRC)vmsmath.h -$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gscsel.h -$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gsbitmap.h $(DEVVECSRC)gdevpdfx.h:$(GLSRC)gsfname.h -$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gsstype.h +$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gsbitmap.h +$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gsccolor.h +$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gxarith.h $(DEVVECSRC)gdevpdfx.h:$(GLSRC)stat_.h -$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gxtmap.h -$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gsmemory.h $(DEVVECSRC)gdevpdfx.h:$(GLSRC)gpsync.h -$(DEVVECSRC)gdevpdfx.h:$(GLSRC)memory_.h +$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gsstype.h +$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gsmemory.h $(DEVVECSRC)gdevpdfx.h:$(GLSRC)gpgetenv.h -$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gslibctx.h $(DEVVECSRC)gdevpdfx.h:$(GLSRC)gscdefs.h -$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gs_dll_call.h -$(DEVVECSRC)gdevpdfx.h:$(GLSRC)stdio_.h -$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gscompt.h -$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gsbittab.h +$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gslibctx.h $(DEVVECSRC)gdevpdfx.h:$(GLSRC)gxcindex.h -$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gsgstate.h +$(DEVVECSRC)gdevpdfx.h:$(GLSRC)stdio_.h +$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gsccode.h $(DEVVECSRC)gdevpdfx.h:$(GLSRC)stdint_.h $(DEVVECSRC)gdevpdfx.h:$(GLSRC)gssprintf.h -$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gsccode.h -$(DEVVECSRC)gdevpdfx.h:$(GLSRC)std.h +$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gsbittab.h $(DEVVECSRC)gdevpdfx.h:$(GLSRC)gstypes.h +$(DEVVECSRC)gdevpdfx.h:$(GLSRC)std.h $(DEVVECSRC)gdevpdfx.h:$(GLSRC)stdpre.h $(DEVVECSRC)gdevpdfx.h:$(GLGEN)arch.h +$(DEVVECSRC)gdevpdfx.h:$(GLSRC)gs_dll_call.h $(DEVVECSRC)gdevpsf.h:$(GLSRC)gxfcid.h $(DEVVECSRC)gdevpsf.h:$(GLSRC)gstype1.h $(DEVVECSRC)gdevpsf.h:$(GLSRC)gxfont42.h $(DEVVECSRC)gdevpsf.h:$(GLSRC)gxfont.h $(DEVVECSRC)gdevpsf.h:$(GLSRC)gspath.h -$(DEVVECSRC)gdevpsf.h:$(GLSRC)gxcid.h -$(DEVVECSRC)gdevpsf.h:$(GLSRC)gxmatrix.h $(DEVVECSRC)gdevpsf.h:$(GLSRC)gsgdata.h -$(DEVVECSRC)gdevpsf.h:$(GLSRC)gsgcache.h +$(DEVVECSRC)gdevpsf.h:$(GLSRC)gxmatrix.h $(DEVVECSRC)gdevpsf.h:$(GLSRC)gxfapi.h -$(DEVVECSRC)gdevpsf.h:$(GLSRC)gsnotify.h $(DEVVECSRC)gdevpsf.h:$(GLSRC)gsfcmap.h $(DEVVECSRC)gdevpsf.h:$(GLSRC)gstext.h $(DEVVECSRC)gdevpsf.h:$(GLSRC)gxfcache.h -$(DEVVECSRC)gdevpsf.h:$(GLSRC)gsuid.h -$(DEVVECSRC)gdevpsf.h:$(GLSRC)gsdcolor.h $(DEVVECSRC)gdevpsf.h:$(GLSRC)gsfont.h +$(DEVVECSRC)gdevpsf.h:$(GLSRC)gsdcolor.h +$(DEVVECSRC)gdevpsf.h:$(GLSRC)gxbcache.h +$(DEVVECSRC)gdevpsf.h:$(GLSRC)gxpath.h $(DEVVECSRC)gdevpsf.h:$(GLSRC)gxftype.h $(DEVVECSRC)gdevpsf.h:$(GLSRC)gscms.h -$(DEVVECSRC)gdevpsf.h:$(GLSRC)gscspace.h -$(DEVVECSRC)gdevpsf.h:$(GLSRC)gxpath.h -$(DEVVECSRC)gdevpsf.h:$(GLSRC)gxbcache.h -$(DEVVECSRC)gdevpsf.h:$(GLSRC)gsdevice.h -$(DEVVECSRC)gdevpsf.h:$(GLSRC)gxarith.h -$(DEVVECSRC)gdevpsf.h:$(GLSRC)gspenum.h -$(DEVVECSRC)gdevpsf.h:$(GLSRC)gxhttile.h $(DEVVECSRC)gdevpsf.h:$(GLSRC)gsrect.h $(DEVVECSRC)gdevpsf.h:$(GLSRC)gslparam.h +$(DEVVECSRC)gdevpsf.h:$(GLSRC)gsdevice.h +$(DEVVECSRC)gdevpsf.h:$(GLSRC)gscpm.h +$(DEVVECSRC)gdevpsf.h:$(GLSRC)gsgcache.h +$(DEVVECSRC)gdevpsf.h:$(GLSRC)gscspace.h +$(DEVVECSRC)gdevpsf.h:$(GLSRC)gsgstate.h +$(DEVVECSRC)gdevpsf.h:$(GLSRC)gsnotify.h $(DEVVECSRC)gdevpsf.h:$(GLSRC)gsxfont.h +$(DEVVECSRC)gdevpsf.h:$(GLSRC)gxcid.h $(DEVVECSRC)gdevpsf.h:$(GLSRC)gsiparam.h -$(DEVVECSRC)gdevpsf.h:$(GLSRC)gxbitmap.h -$(DEVVECSRC)gdevpsf.h:$(GLSRC)gsmatrix.h -$(DEVVECSRC)gdevpsf.h:$(GLSRC)gscpm.h $(DEVVECSRC)gdevpsf.h:$(GLSRC)gxfixed.h -$(DEVVECSRC)gdevpsf.h:$(GLSRC)gsrefct.h +$(DEVVECSRC)gdevpsf.h:$(GLSRC)gsmatrix.h +$(DEVVECSRC)gdevpsf.h:$(GLSRC)gspenum.h +$(DEVVECSRC)gdevpsf.h:$(GLSRC)gxhttile.h $(DEVVECSRC)gdevpsf.h:$(GLSRC)gsparam.h -$(DEVVECSRC)gdevpsf.h:$(GLSRC)gsccolor.h +$(DEVVECSRC)gdevpsf.h:$(GLSRC)gsrefct.h +$(DEVVECSRC)gdevpsf.h:$(GLSRC)memento.h +$(DEVVECSRC)gdevpsf.h:$(GLSRC)gsuid.h $(DEVVECSRC)gdevpsf.h:$(GLSRC)gxsync.h +$(DEVVECSRC)gdevpsf.h:$(GLSRC)gxbitmap.h $(DEVVECSRC)gdevpsf.h:$(GLSRC)scommon.h -$(DEVVECSRC)gdevpsf.h:$(GLSRC)memento.h $(DEVVECSRC)gdevpsf.h:$(GLSRC)gsbitmap.h +$(DEVVECSRC)gdevpsf.h:$(GLSRC)gsccolor.h +$(DEVVECSRC)gdevpsf.h:$(GLSRC)gxarith.h +$(DEVVECSRC)gdevpsf.h:$(GLSRC)gpsync.h $(DEVVECSRC)gdevpsf.h:$(GLSRC)gsstype.h $(DEVVECSRC)gdevpsf.h:$(GLSRC)gsmemory.h -$(DEVVECSRC)gdevpsf.h:$(GLSRC)gpsync.h $(DEVVECSRC)gdevpsf.h:$(GLSRC)gslibctx.h -$(DEVVECSRC)gdevpsf.h:$(GLSRC)gs_dll_call.h -$(DEVVECSRC)gdevpsf.h:$(GLSRC)stdio_.h $(DEVVECSRC)gdevpsf.h:$(GLSRC)gxcindex.h -$(DEVVECSRC)gdevpsf.h:$(GLSRC)gsgstate.h +$(DEVVECSRC)gdevpsf.h:$(GLSRC)stdio_.h +$(DEVVECSRC)gdevpsf.h:$(GLSRC)gsccode.h $(DEVVECSRC)gdevpsf.h:$(GLSRC)stdint_.h $(DEVVECSRC)gdevpsf.h:$(GLSRC)gssprintf.h -$(DEVVECSRC)gdevpsf.h:$(GLSRC)gsccode.h -$(DEVVECSRC)gdevpsf.h:$(GLSRC)std.h $(DEVVECSRC)gdevpsf.h:$(GLSRC)gstypes.h +$(DEVVECSRC)gdevpsf.h:$(GLSRC)std.h $(DEVVECSRC)gdevpsf.h:$(GLSRC)stdpre.h $(DEVVECSRC)gdevpsf.h:$(GLGEN)arch.h +$(DEVVECSRC)gdevpsf.h:$(GLSRC)gs_dll_call.h $(DEVVECSRC)gdevpdt.h:$(DEVVECSRC)gdevpdfx.h $(DEVVECSRC)gdevpdt.h:$(DEVVECSRC)gdevpsdf.h $(DEVVECSRC)gdevpdt.h:$(GLSRC)gdevvec.h $(DEVVECSRC)gdevpdt.h:$(GLSRC)gxgstate.h -$(DEVVECSRC)gdevpdt.h:$(GLSRC)gxline.h $(DEVVECSRC)gdevpdt.h:$(GLSRC)gstrans.h -$(DEVVECSRC)gdevpdt.h:$(GLSRC)sarc4.h +$(DEVVECSRC)gdevpdt.h:$(GLSRC)gdevp14.h +$(DEVVECSRC)gdevpdt.h:$(GLSRC)gxline.h $(DEVVECSRC)gdevpdt.h:$(GLSRC)gsht1.h -$(DEVVECSRC)gdevpdt.h:$(GLSRC)gxfont.h -$(DEVVECSRC)gdevpdt.h:$(GLSRC)gdevbbox.h +$(DEVVECSRC)gdevpdt.h:$(GLSRC)gxcomp.h +$(DEVVECSRC)gdevpdt.h:$(GLSRC)sarc4.h $(DEVVECSRC)gdevpdt.h:$(GLSRC)math_.h $(DEVVECSRC)gdevpdt.h:$(GLSRC)scfx.h -$(DEVVECSRC)gdevpdt.h:$(GLSRC)gdevp14.h +$(DEVVECSRC)gdevpdt.h:$(GLSRC)gdevbbox.h $(DEVVECSRC)gdevpdt.h:$(GLSRC)gxcolor2.h +$(DEVVECSRC)gdevpdt.h:$(GLSRC)gxpcolor.h $(DEVVECSRC)gdevpdt.h:$(GLSRC)spprint.h $(DEVVECSRC)gdevpdt.h:$(GLSRC)spsdf.h -$(DEVVECSRC)gdevpdt.h:$(GLSRC)gxpcolor.h +$(DEVVECSRC)gdevpdt.h:$(GLSRC)gxdevmem.h +$(DEVVECSRC)gdevpdt.h:$(GLSRC)gxfont.h $(DEVVECSRC)gdevpdt.h:$(GLSRC)gdevdevn.h -$(DEVVECSRC)gdevpdt.h:$(GLSRC)gsequivc.h $(DEVVECSRC)gdevpdt.h:$(GLSRC)gspath.h -$(DEVVECSRC)gdevpdt.h:$(GLSRC)gxblend.h $(DEVVECSRC)gdevpdt.h:$(GLSRC)gxclipsr.h -$(DEVVECSRC)gdevpdt.h:$(GLSRC)gxcomp.h -$(DEVVECSRC)gdevpdt.h:$(GLSRC)gxdcolor.h -$(DEVVECSRC)gdevpdt.h:$(GLSRC)gxmatrix.h $(DEVVECSRC)gdevpdt.h:$(GLSRC)gsgdata.h -$(DEVVECSRC)gdevpdt.h:$(GLSRC)gxbitfmt.h +$(DEVVECSRC)gdevpdt.h:$(GLSRC)gxdcolor.h +$(DEVVECSRC)gdevpdt.h:$(GLSRC)gxblend.h $(DEVVECSRC)gdevpdt.h:$(GLSRC)shc.h -$(DEVVECSRC)gdevpdt.h:$(GLSRC)gsgcache.h $(DEVVECSRC)gdevpdt.h:$(GLSRC)gscolor2.h +$(DEVVECSRC)gdevpdt.h:$(GLSRC)gxmatrix.h $(DEVVECSRC)gdevpdt.h:$(GLSRC)gxfapi.h -$(DEVVECSRC)gdevpdt.h:$(GLSRC)gscindex.h -$(DEVVECSRC)gdevpdt.h:$(GLSRC)gsnotify.h -$(DEVVECSRC)gdevpdt.h:$(GLSRC)gsfcmap.h $(DEVVECSRC)gdevpdt.h:$(GLSRC)gxdevice.h -$(DEVVECSRC)gdevpdt.h:$(GLSRC)gsht.h +$(DEVVECSRC)gdevpdt.h:$(GLSRC)gsfcmap.h $(DEVVECSRC)gdevpdt.h:$(GLSRC)gxcpath.h -$(DEVVECSRC)gdevpdt.h:$(GLSRC)sa85x.h +$(DEVVECSRC)gdevpdt.h:$(GLSRC)gsht.h $(DEVVECSRC)gdevpdt.h:$(GLSRC)gxiparam.h +$(DEVVECSRC)gdevpdt.h:$(GLSRC)sa85x.h +$(DEVVECSRC)gdevpdt.h:$(GLSRC)gsequivc.h $(DEVVECSRC)gdevpdt.h:$(GLSRC)sa85d.h -$(DEVVECSRC)gdevpdt.h:$(GLSRC)gxdevmem.h $(DEVVECSRC)gdevpdt.h:$(GLSRC)gxdevcli.h $(DEVVECSRC)gdevpdt.h:$(GLSRC)gxpcache.h +$(DEVVECSRC)gdevpdt.h:$(GLSRC)gscindex.h +$(DEVVECSRC)gdevpdt.h:$(GLSRC)gxcmap.h $(DEVVECSRC)gdevpdt.h:$(GLSRC)gsptype1.h -$(DEVVECSRC)gdevpdt.h:$(GLSRC)gxtext.h $(DEVVECSRC)gdevpdt.h:$(GLSRC)gscie.h +$(DEVVECSRC)gdevpdt.h:$(GLSRC)gxtext.h $(DEVVECSRC)gdevpdt.h:$(GLSRC)gstext.h +$(DEVVECSRC)gdevpdt.h:$(GLSRC)gxstate.h $(DEVVECSRC)gdevpdt.h:$(GLSRC)gsnamecl.h $(DEVVECSRC)gdevpdt.h:$(GLSRC)gstparam.h -$(DEVVECSRC)gdevpdt.h:$(GLSRC)gxstate.h $(DEVVECSRC)gdevpdt.h:$(GLSRC)gspcolor.h -$(DEVVECSRC)gdevpdt.h:$(GLSRC)gxfcache.h +$(DEVVECSRC)gdevpdt.h:$(GLSRC)gxfmap.h $(DEVVECSRC)gdevpdt.h:$(GLSRC)stream.h -$(DEVVECSRC)gdevpdt.h:$(GLSRC)gxcspace.h -$(DEVVECSRC)gdevpdt.h:$(GLSRC)gsropt.h -$(DEVVECSRC)gdevpdt.h:$(GLSRC)gsfunc.h $(DEVVECSRC)gdevpdt.h:$(GLSRC)gsmalloc.h -$(DEVVECSRC)gdevpdt.h:$(GLSRC)gxrplane.h +$(DEVVECSRC)gdevpdt.h:$(GLSRC)gsfunc.h +$(DEVVECSRC)gdevpdt.h:$(GLSRC)gxcspace.h +$(DEVVECSRC)gdevpdt.h:$(GLSRC)gxhldevc.h $(DEVVECSRC)gdevpdt.h:$(GLSRC)gxctable.h $(DEVVECSRC)gdevpdt.h:$(GLSRC)gxiodev.h -$(DEVVECSRC)gdevpdt.h:$(GLSRC)gsuid.h -$(DEVVECSRC)gdevpdt.h:$(GLSRC)gxcmap.h -$(DEVVECSRC)gdevpdt.h:$(GLSRC)gxhldevc.h $(DEVVECSRC)gdevpdt.h:$(GLSRC)strimpl.h +$(DEVVECSRC)gdevpdt.h:$(GLSRC)gxrplane.h +$(DEVVECSRC)gdevpdt.h:$(GLSRC)gscsel.h +$(DEVVECSRC)gdevpdt.h:$(GLSRC)gxfcache.h +$(DEVVECSRC)gdevpdt.h:$(GLSRC)gsfont.h $(DEVVECSRC)gdevpdt.h:$(GLSRC)gsimage.h $(DEVVECSRC)gdevpdt.h:$(GLSRC)gsdcolor.h -$(DEVVECSRC)gdevpdt.h:$(GLSRC)gxdda.h $(DEVVECSRC)gdevpdt.h:$(GLSRC)gxcvalue.h -$(DEVVECSRC)gdevpdt.h:$(GLSRC)gsfont.h -$(DEVVECSRC)gdevpdt.h:$(GLSRC)gxfmap.h +$(DEVVECSRC)gdevpdt.h:$(GLSRC)gxbcache.h +$(DEVVECSRC)gdevpdt.h:$(GLSRC)gsropt.h +$(DEVVECSRC)gdevpdt.h:$(GLSRC)gxdda.h +$(DEVVECSRC)gdevpdt.h:$(GLSRC)gxpath.h $(DEVVECSRC)gdevpdt.h:$(GLSRC)gxiclass.h -$(DEVVECSRC)gdevpdt.h:$(GLSRC)gxftype.h $(DEVVECSRC)gdevpdt.h:$(GLSRC)gxfrac.h +$(DEVVECSRC)gdevpdt.h:$(GLSRC)gxtmap.h +$(DEVVECSRC)gdevpdt.h:$(GLSRC)gxftype.h $(DEVVECSRC)gdevpdt.h:$(GLSRC)gscms.h -$(DEVVECSRC)gdevpdt.h:$(GLSRC)gscspace.h -$(DEVVECSRC)gdevpdt.h:$(GLSRC)gxpath.h -$(DEVVECSRC)gdevpdt.h:$(GLSRC)gxbcache.h -$(DEVVECSRC)gdevpdt.h:$(GLSRC)gsdevice.h -$(DEVVECSRC)gdevpdt.h:$(GLSRC)gxarith.h -$(DEVVECSRC)gdevpdt.h:$(GLSRC)gxstdio.h -$(DEVVECSRC)gdevpdt.h:$(GLSRC)gspenum.h -$(DEVVECSRC)gdevpdt.h:$(GLSRC)gxhttile.h $(DEVVECSRC)gdevpdt.h:$(GLSRC)gsrect.h $(DEVVECSRC)gdevpdt.h:$(GLSRC)gslparam.h +$(DEVVECSRC)gdevpdt.h:$(GLSRC)gsdevice.h +$(DEVVECSRC)gdevpdt.h:$(GLSRC)gxbitfmt.h +$(DEVVECSRC)gdevpdt.h:$(GLSRC)gscpm.h +$(DEVVECSRC)gdevpdt.h:$(GLSRC)gsgcache.h +$(DEVVECSRC)gdevpdt.h:$(GLSRC)gscspace.h +$(DEVVECSRC)gdevpdt.h:$(GLSRC)gsgstate.h +$(DEVVECSRC)gdevpdt.h:$(GLSRC)gsnotify.h +$(DEVVECSRC)gdevpdt.h:$(GLSRC)gxstdio.h $(DEVVECSRC)gdevpdt.h:$(GLSRC)gsxfont.h -$(DEVVECSRC)gdevpdt.h:$(GLSRC)gsiparam.h $(DEVVECSRC)gdevpdt.h:$(GLSRC)gsdsrc.h $(DEVVECSRC)gdevpdt.h:$(GLSRC)gsio.h -$(DEVVECSRC)gdevpdt.h:$(GLSRC)gxbitmap.h -$(DEVVECSRC)gdevpdt.h:$(GLSRC)gsmatrix.h -$(DEVVECSRC)gdevpdt.h:$(GLSRC)gscpm.h +$(DEVVECSRC)gdevpdt.h:$(GLSRC)gsiparam.h $(DEVVECSRC)gdevpdt.h:$(GLSRC)gxfixed.h -$(DEVVECSRC)gdevpdt.h:$(GLSRC)gsrefct.h +$(DEVVECSRC)gdevpdt.h:$(GLSRC)gscompt.h +$(DEVVECSRC)gdevpdt.h:$(GLSRC)gsmatrix.h +$(DEVVECSRC)gdevpdt.h:$(GLSRC)gspenum.h +$(DEVVECSRC)gdevpdt.h:$(GLSRC)gxhttile.h $(DEVVECSRC)gdevpdt.h:$(GLSRC)gsparam.h +$(DEVVECSRC)gdevpdt.h:$(GLSRC)gsrefct.h $(DEVVECSRC)gdevpdt.h:$(GLSRC)gp.h -$(DEVVECSRC)gdevpdt.h:$(GLSRC)gsccolor.h +$(DEVVECSRC)gdevpdt.h:$(GLSRC)memento.h +$(DEVVECSRC)gdevpdt.h:$(GLSRC)memory_.h +$(DEVVECSRC)gdevpdt.h:$(GLSRC)gsuid.h $(DEVVECSRC)gdevpdt.h:$(GLSRC)gsstruct.h $(DEVVECSRC)gdevpdt.h:$(GLSRC)gxsync.h +$(DEVVECSRC)gdevpdt.h:$(GLSRC)gxbitmap.h +$(DEVVECSRC)gdevpdt.h:$(GLSRC)vmsmath.h $(DEVVECSRC)gdevpdt.h:$(GLSRC)srdline.h $(DEVVECSRC)gdevpdt.h:$(GLSRC)scommon.h -$(DEVVECSRC)gdevpdt.h:$(GLSRC)memento.h -$(DEVVECSRC)gdevpdt.h:$(GLSRC)vmsmath.h -$(DEVVECSRC)gdevpdt.h:$(GLSRC)gscsel.h -$(DEVVECSRC)gdevpdt.h:$(GLSRC)gsbitmap.h $(DEVVECSRC)gdevpdt.h:$(GLSRC)gsfname.h -$(DEVVECSRC)gdevpdt.h:$(GLSRC)gsstype.h +$(DEVVECSRC)gdevpdt.h:$(GLSRC)gsbitmap.h +$(DEVVECSRC)gdevpdt.h:$(GLSRC)gsccolor.h +$(DEVVECSRC)gdevpdt.h:$(GLSRC)gxarith.h $(DEVVECSRC)gdevpdt.h:$(GLSRC)stat_.h -$(DEVVECSRC)gdevpdt.h:$(GLSRC)gxtmap.h -$(DEVVECSRC)gdevpdt.h:$(GLSRC)gsmemory.h $(DEVVECSRC)gdevpdt.h:$(GLSRC)gpsync.h -$(DEVVECSRC)gdevpdt.h:$(GLSRC)memory_.h +$(DEVVECSRC)gdevpdt.h:$(GLSRC)gsstype.h +$(DEVVECSRC)gdevpdt.h:$(GLSRC)gsmemory.h $(DEVVECSRC)gdevpdt.h:$(GLSRC)gpgetenv.h -$(DEVVECSRC)gdevpdt.h:$(GLSRC)gslibctx.h $(DEVVECSRC)gdevpdt.h:$(GLSRC)gscdefs.h -$(DEVVECSRC)gdevpdt.h:$(GLSRC)gs_dll_call.h -$(DEVVECSRC)gdevpdt.h:$(GLSRC)stdio_.h -$(DEVVECSRC)gdevpdt.h:$(GLSRC)gscompt.h -$(DEVVECSRC)gdevpdt.h:$(GLSRC)gsbittab.h +$(DEVVECSRC)gdevpdt.h:$(GLSRC)gslibctx.h $(DEVVECSRC)gdevpdt.h:$(GLSRC)gxcindex.h -$(DEVVECSRC)gdevpdt.h:$(GLSRC)gsgstate.h +$(DEVVECSRC)gdevpdt.h:$(GLSRC)stdio_.h +$(DEVVECSRC)gdevpdt.h:$(GLSRC)gsccode.h $(DEVVECSRC)gdevpdt.h:$(GLSRC)stdint_.h $(DEVVECSRC)gdevpdt.h:$(GLSRC)gssprintf.h -$(DEVVECSRC)gdevpdt.h:$(GLSRC)gsccode.h -$(DEVVECSRC)gdevpdt.h:$(GLSRC)std.h +$(DEVVECSRC)gdevpdt.h:$(GLSRC)gsbittab.h $(DEVVECSRC)gdevpdt.h:$(GLSRC)gstypes.h +$(DEVVECSRC)gdevpdt.h:$(GLSRC)std.h $(DEVVECSRC)gdevpdt.h:$(GLSRC)stdpre.h $(DEVVECSRC)gdevpdt.h:$(GLGEN)arch.h +$(DEVVECSRC)gdevpdt.h:$(GLSRC)gs_dll_call.h $(DEVVECSRC)gdevpdtx.h:$(DEVVECSRC)gdevpdt.h $(DEVVECSRC)gdevpdtx.h:$(DEVVECSRC)gdevpdfx.h $(DEVVECSRC)gdevpdtx.h:$(DEVVECSRC)gdevpsdf.h $(DEVVECSRC)gdevpdtx.h:$(GLSRC)gdevvec.h $(DEVVECSRC)gdevpdtx.h:$(GLSRC)gxgstate.h -$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gxline.h $(DEVVECSRC)gdevpdtx.h:$(GLSRC)gstrans.h -$(DEVVECSRC)gdevpdtx.h:$(GLSRC)sarc4.h +$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gdevp14.h +$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gxline.h $(DEVVECSRC)gdevpdtx.h:$(GLSRC)gsht1.h -$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gxfont.h -$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gdevbbox.h +$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gxcomp.h +$(DEVVECSRC)gdevpdtx.h:$(GLSRC)sarc4.h $(DEVVECSRC)gdevpdtx.h:$(GLSRC)math_.h $(DEVVECSRC)gdevpdtx.h:$(GLSRC)scfx.h -$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gdevp14.h +$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gdevbbox.h $(DEVVECSRC)gdevpdtx.h:$(GLSRC)gxcolor2.h +$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gxpcolor.h $(DEVVECSRC)gdevpdtx.h:$(GLSRC)spprint.h $(DEVVECSRC)gdevpdtx.h:$(GLSRC)spsdf.h -$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gxpcolor.h +$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gxdevmem.h +$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gxfont.h $(DEVVECSRC)gdevpdtx.h:$(GLSRC)gdevdevn.h -$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gsequivc.h $(DEVVECSRC)gdevpdtx.h:$(GLSRC)gspath.h -$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gxblend.h $(DEVVECSRC)gdevpdtx.h:$(GLSRC)gxclipsr.h -$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gxcomp.h -$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gxdcolor.h -$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gxmatrix.h $(DEVVECSRC)gdevpdtx.h:$(GLSRC)gsgdata.h -$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gxbitfmt.h +$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gxdcolor.h +$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gxblend.h $(DEVVECSRC)gdevpdtx.h:$(GLSRC)shc.h -$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gsgcache.h $(DEVVECSRC)gdevpdtx.h:$(GLSRC)gscolor2.h +$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gxmatrix.h $(DEVVECSRC)gdevpdtx.h:$(GLSRC)gxfapi.h -$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gscindex.h -$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gsnotify.h -$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gsfcmap.h $(DEVVECSRC)gdevpdtx.h:$(GLSRC)gxdevice.h -$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gsht.h +$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gsfcmap.h $(DEVVECSRC)gdevpdtx.h:$(GLSRC)gxcpath.h -$(DEVVECSRC)gdevpdtx.h:$(GLSRC)sa85x.h +$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gsht.h $(DEVVECSRC)gdevpdtx.h:$(GLSRC)gxiparam.h +$(DEVVECSRC)gdevpdtx.h:$(GLSRC)sa85x.h +$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gsequivc.h $(DEVVECSRC)gdevpdtx.h:$(GLSRC)sa85d.h -$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gxdevmem.h $(DEVVECSRC)gdevpdtx.h:$(GLSRC)gxdevcli.h $(DEVVECSRC)gdevpdtx.h:$(GLSRC)gxpcache.h +$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gscindex.h +$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gxcmap.h $(DEVVECSRC)gdevpdtx.h:$(GLSRC)gsptype1.h -$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gxtext.h $(DEVVECSRC)gdevpdtx.h:$(GLSRC)gscie.h +$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gxtext.h $(DEVVECSRC)gdevpdtx.h:$(GLSRC)gstext.h +$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gxstate.h $(DEVVECSRC)gdevpdtx.h:$(GLSRC)gsnamecl.h $(DEVVECSRC)gdevpdtx.h:$(GLSRC)gstparam.h -$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gxstate.h $(DEVVECSRC)gdevpdtx.h:$(GLSRC)gspcolor.h -$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gxfcache.h +$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gxfmap.h $(DEVVECSRC)gdevpdtx.h:$(GLSRC)stream.h -$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gxcspace.h -$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gsropt.h -$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gsfunc.h $(DEVVECSRC)gdevpdtx.h:$(GLSRC)gsmalloc.h -$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gxrplane.h +$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gsfunc.h +$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gxcspace.h +$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gxhldevc.h $(DEVVECSRC)gdevpdtx.h:$(GLSRC)gxctable.h $(DEVVECSRC)gdevpdtx.h:$(GLSRC)gxiodev.h -$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gsuid.h -$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gxcmap.h -$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gxhldevc.h $(DEVVECSRC)gdevpdtx.h:$(GLSRC)strimpl.h +$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gxrplane.h +$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gscsel.h +$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gxfcache.h +$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gsfont.h $(DEVVECSRC)gdevpdtx.h:$(GLSRC)gsimage.h $(DEVVECSRC)gdevpdtx.h:$(GLSRC)gsdcolor.h -$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gxdda.h $(DEVVECSRC)gdevpdtx.h:$(GLSRC)gxcvalue.h -$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gsfont.h -$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gxfmap.h +$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gxbcache.h +$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gsropt.h +$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gxdda.h +$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gxpath.h $(DEVVECSRC)gdevpdtx.h:$(GLSRC)gxiclass.h -$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gxftype.h $(DEVVECSRC)gdevpdtx.h:$(GLSRC)gxfrac.h +$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gxtmap.h +$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gxftype.h $(DEVVECSRC)gdevpdtx.h:$(GLSRC)gscms.h -$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gscspace.h -$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gxpath.h -$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gxbcache.h -$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gsdevice.h -$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gxarith.h -$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gxstdio.h -$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gspenum.h -$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gxhttile.h $(DEVVECSRC)gdevpdtx.h:$(GLSRC)gsrect.h $(DEVVECSRC)gdevpdtx.h:$(GLSRC)gslparam.h +$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gsdevice.h +$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gxbitfmt.h +$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gscpm.h +$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gsgcache.h +$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gscspace.h +$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gsgstate.h +$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gsnotify.h +$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gxstdio.h $(DEVVECSRC)gdevpdtx.h:$(GLSRC)gsxfont.h -$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gsiparam.h $(DEVVECSRC)gdevpdtx.h:$(GLSRC)gsdsrc.h $(DEVVECSRC)gdevpdtx.h:$(GLSRC)gsio.h -$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gxbitmap.h -$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gsmatrix.h -$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gscpm.h +$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gsiparam.h $(DEVVECSRC)gdevpdtx.h:$(GLSRC)gxfixed.h -$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gsrefct.h +$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gscompt.h +$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gsmatrix.h +$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gspenum.h +$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gxhttile.h $(DEVVECSRC)gdevpdtx.h:$(GLSRC)gsparam.h +$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gsrefct.h $(DEVVECSRC)gdevpdtx.h:$(GLSRC)gp.h -$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gsccolor.h +$(DEVVECSRC)gdevpdtx.h:$(GLSRC)memento.h +$(DEVVECSRC)gdevpdtx.h:$(GLSRC)memory_.h +$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gsuid.h $(DEVVECSRC)gdevpdtx.h:$(GLSRC)gsstruct.h $(DEVVECSRC)gdevpdtx.h:$(GLSRC)gxsync.h +$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gxbitmap.h +$(DEVVECSRC)gdevpdtx.h:$(GLSRC)vmsmath.h $(DEVVECSRC)gdevpdtx.h:$(GLSRC)srdline.h $(DEVVECSRC)gdevpdtx.h:$(GLSRC)scommon.h -$(DEVVECSRC)gdevpdtx.h:$(GLSRC)memento.h -$(DEVVECSRC)gdevpdtx.h:$(GLSRC)vmsmath.h -$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gscsel.h -$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gsbitmap.h $(DEVVECSRC)gdevpdtx.h:$(GLSRC)gsfname.h -$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gsstype.h +$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gsbitmap.h +$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gsccolor.h +$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gxarith.h $(DEVVECSRC)gdevpdtx.h:$(GLSRC)stat_.h -$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gxtmap.h -$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gsmemory.h $(DEVVECSRC)gdevpdtx.h:$(GLSRC)gpsync.h -$(DEVVECSRC)gdevpdtx.h:$(GLSRC)memory_.h +$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gsstype.h +$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gsmemory.h $(DEVVECSRC)gdevpdtx.h:$(GLSRC)gpgetenv.h -$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gslibctx.h $(DEVVECSRC)gdevpdtx.h:$(GLSRC)gscdefs.h -$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gs_dll_call.h -$(DEVVECSRC)gdevpdtx.h:$(GLSRC)stdio_.h -$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gscompt.h -$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gsbittab.h +$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gslibctx.h $(DEVVECSRC)gdevpdtx.h:$(GLSRC)gxcindex.h -$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gsgstate.h +$(DEVVECSRC)gdevpdtx.h:$(GLSRC)stdio_.h +$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gsccode.h $(DEVVECSRC)gdevpdtx.h:$(GLSRC)stdint_.h $(DEVVECSRC)gdevpdtx.h:$(GLSRC)gssprintf.h -$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gsccode.h -$(DEVVECSRC)gdevpdtx.h:$(GLSRC)std.h +$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gsbittab.h $(DEVVECSRC)gdevpdtx.h:$(GLSRC)gstypes.h +$(DEVVECSRC)gdevpdtx.h:$(GLSRC)std.h $(DEVVECSRC)gdevpdtx.h:$(GLSRC)stdpre.h $(DEVVECSRC)gdevpdtx.h:$(GLGEN)arch.h +$(DEVVECSRC)gdevpdtx.h:$(GLSRC)gs_dll_call.h $(DEVVECSRC)gdevpdtb.h:$(DEVVECSRC)gdevpdtx.h $(DEVVECSRC)gdevpdtb.h:$(DEVVECSRC)gdevpdt.h $(DEVVECSRC)gdevpdtb.h:$(DEVVECSRC)gdevpdfx.h $(DEVVECSRC)gdevpdtb.h:$(DEVVECSRC)gdevpsdf.h $(DEVVECSRC)gdevpdtb.h:$(GLSRC)gdevvec.h $(DEVVECSRC)gdevpdtb.h:$(GLSRC)gxgstate.h -$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gxline.h $(DEVVECSRC)gdevpdtb.h:$(GLSRC)gstrans.h -$(DEVVECSRC)gdevpdtb.h:$(GLSRC)sarc4.h +$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gdevp14.h +$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gxline.h $(DEVVECSRC)gdevpdtb.h:$(GLSRC)gsht1.h -$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gxfont.h -$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gdevbbox.h +$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gxcomp.h +$(DEVVECSRC)gdevpdtb.h:$(GLSRC)sarc4.h $(DEVVECSRC)gdevpdtb.h:$(GLSRC)math_.h $(DEVVECSRC)gdevpdtb.h:$(GLSRC)scfx.h -$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gdevp14.h +$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gdevbbox.h $(DEVVECSRC)gdevpdtb.h:$(GLSRC)gxcolor2.h +$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gxpcolor.h $(DEVVECSRC)gdevpdtb.h:$(GLSRC)spprint.h $(DEVVECSRC)gdevpdtb.h:$(GLSRC)spsdf.h -$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gxpcolor.h +$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gxdevmem.h +$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gxfont.h $(DEVVECSRC)gdevpdtb.h:$(GLSRC)gdevdevn.h -$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gsequivc.h $(DEVVECSRC)gdevpdtb.h:$(GLSRC)gspath.h -$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gxblend.h $(DEVVECSRC)gdevpdtb.h:$(GLSRC)gxclipsr.h -$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gxcomp.h -$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gxdcolor.h -$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gxmatrix.h $(DEVVECSRC)gdevpdtb.h:$(GLSRC)gsgdata.h -$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gxbitfmt.h +$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gxdcolor.h +$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gxblend.h $(DEVVECSRC)gdevpdtb.h:$(GLSRC)shc.h -$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gsgcache.h $(DEVVECSRC)gdevpdtb.h:$(GLSRC)gscolor2.h +$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gxmatrix.h $(DEVVECSRC)gdevpdtb.h:$(GLSRC)gxfapi.h -$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gscindex.h -$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gsnotify.h -$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gsfcmap.h $(DEVVECSRC)gdevpdtb.h:$(GLSRC)gxdevice.h -$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gsht.h +$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gsfcmap.h $(DEVVECSRC)gdevpdtb.h:$(GLSRC)gxcpath.h -$(DEVVECSRC)gdevpdtb.h:$(GLSRC)sa85x.h +$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gsht.h $(DEVVECSRC)gdevpdtb.h:$(GLSRC)gxiparam.h +$(DEVVECSRC)gdevpdtb.h:$(GLSRC)sa85x.h +$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gsequivc.h $(DEVVECSRC)gdevpdtb.h:$(GLSRC)sa85d.h -$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gxdevmem.h $(DEVVECSRC)gdevpdtb.h:$(GLSRC)gxdevcli.h $(DEVVECSRC)gdevpdtb.h:$(GLSRC)gxpcache.h +$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gscindex.h +$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gxcmap.h $(DEVVECSRC)gdevpdtb.h:$(GLSRC)gsptype1.h -$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gxtext.h $(DEVVECSRC)gdevpdtb.h:$(GLSRC)gscie.h +$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gxtext.h $(DEVVECSRC)gdevpdtb.h:$(GLSRC)gstext.h +$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gxstate.h $(DEVVECSRC)gdevpdtb.h:$(GLSRC)gsnamecl.h $(DEVVECSRC)gdevpdtb.h:$(GLSRC)gstparam.h -$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gxstate.h $(DEVVECSRC)gdevpdtb.h:$(GLSRC)gspcolor.h -$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gxfcache.h +$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gxfmap.h $(DEVVECSRC)gdevpdtb.h:$(GLSRC)stream.h -$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gxcspace.h -$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gsropt.h -$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gsfunc.h $(DEVVECSRC)gdevpdtb.h:$(GLSRC)gsmalloc.h -$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gxrplane.h +$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gsfunc.h +$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gxcspace.h +$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gxhldevc.h $(DEVVECSRC)gdevpdtb.h:$(GLSRC)gxctable.h $(DEVVECSRC)gdevpdtb.h:$(GLSRC)gxiodev.h -$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gsuid.h -$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gxcmap.h -$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gxhldevc.h $(DEVVECSRC)gdevpdtb.h:$(GLSRC)strimpl.h +$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gxrplane.h +$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gscsel.h +$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gxfcache.h +$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gsfont.h $(DEVVECSRC)gdevpdtb.h:$(GLSRC)gsimage.h $(DEVVECSRC)gdevpdtb.h:$(GLSRC)gsdcolor.h -$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gxdda.h $(DEVVECSRC)gdevpdtb.h:$(GLSRC)gxcvalue.h -$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gsfont.h -$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gxfmap.h +$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gxbcache.h +$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gsropt.h +$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gxdda.h +$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gxpath.h $(DEVVECSRC)gdevpdtb.h:$(GLSRC)gxiclass.h -$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gxftype.h $(DEVVECSRC)gdevpdtb.h:$(GLSRC)gxfrac.h +$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gxtmap.h +$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gxftype.h $(DEVVECSRC)gdevpdtb.h:$(GLSRC)gscms.h -$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gscspace.h -$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gxpath.h -$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gxbcache.h -$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gsdevice.h -$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gxarith.h -$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gxstdio.h -$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gspenum.h -$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gxhttile.h $(DEVVECSRC)gdevpdtb.h:$(GLSRC)gsrect.h $(DEVVECSRC)gdevpdtb.h:$(GLSRC)gslparam.h +$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gsdevice.h +$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gxbitfmt.h +$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gscpm.h +$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gsgcache.h +$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gscspace.h +$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gsgstate.h +$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gsnotify.h +$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gxstdio.h $(DEVVECSRC)gdevpdtb.h:$(GLSRC)gsxfont.h -$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gsiparam.h $(DEVVECSRC)gdevpdtb.h:$(GLSRC)gsdsrc.h $(DEVVECSRC)gdevpdtb.h:$(GLSRC)gsio.h -$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gxbitmap.h -$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gsmatrix.h -$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gscpm.h +$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gsiparam.h $(DEVVECSRC)gdevpdtb.h:$(GLSRC)gxfixed.h -$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gsrefct.h +$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gscompt.h +$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gsmatrix.h +$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gspenum.h +$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gxhttile.h $(DEVVECSRC)gdevpdtb.h:$(GLSRC)gsparam.h +$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gsrefct.h $(DEVVECSRC)gdevpdtb.h:$(GLSRC)gp.h -$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gsccolor.h +$(DEVVECSRC)gdevpdtb.h:$(GLSRC)memento.h +$(DEVVECSRC)gdevpdtb.h:$(GLSRC)memory_.h +$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gsuid.h $(DEVVECSRC)gdevpdtb.h:$(GLSRC)gsstruct.h $(DEVVECSRC)gdevpdtb.h:$(GLSRC)gxsync.h +$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gxbitmap.h +$(DEVVECSRC)gdevpdtb.h:$(GLSRC)vmsmath.h $(DEVVECSRC)gdevpdtb.h:$(GLSRC)srdline.h $(DEVVECSRC)gdevpdtb.h:$(GLSRC)scommon.h -$(DEVVECSRC)gdevpdtb.h:$(GLSRC)memento.h -$(DEVVECSRC)gdevpdtb.h:$(GLSRC)vmsmath.h -$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gscsel.h -$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gsbitmap.h $(DEVVECSRC)gdevpdtb.h:$(GLSRC)gsfname.h -$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gsstype.h +$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gsbitmap.h +$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gsccolor.h +$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gxarith.h $(DEVVECSRC)gdevpdtb.h:$(GLSRC)stat_.h -$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gxtmap.h -$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gsmemory.h $(DEVVECSRC)gdevpdtb.h:$(GLSRC)gpsync.h -$(DEVVECSRC)gdevpdtb.h:$(GLSRC)memory_.h +$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gsstype.h +$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gsmemory.h $(DEVVECSRC)gdevpdtb.h:$(GLSRC)gpgetenv.h -$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gslibctx.h $(DEVVECSRC)gdevpdtb.h:$(GLSRC)gscdefs.h -$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gs_dll_call.h -$(DEVVECSRC)gdevpdtb.h:$(GLSRC)stdio_.h -$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gscompt.h -$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gsbittab.h +$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gslibctx.h $(DEVVECSRC)gdevpdtb.h:$(GLSRC)gxcindex.h -$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gsgstate.h +$(DEVVECSRC)gdevpdtb.h:$(GLSRC)stdio_.h +$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gsccode.h $(DEVVECSRC)gdevpdtb.h:$(GLSRC)stdint_.h $(DEVVECSRC)gdevpdtb.h:$(GLSRC)gssprintf.h -$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gsccode.h -$(DEVVECSRC)gdevpdtb.h:$(GLSRC)std.h +$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gsbittab.h $(DEVVECSRC)gdevpdtb.h:$(GLSRC)gstypes.h +$(DEVVECSRC)gdevpdtb.h:$(GLSRC)std.h $(DEVVECSRC)gdevpdtb.h:$(GLSRC)stdpre.h $(DEVVECSRC)gdevpdtb.h:$(GLGEN)arch.h +$(DEVVECSRC)gdevpdtb.h:$(GLSRC)gs_dll_call.h $(DEVVECSRC)gdevpdtd.h:$(DEVVECSRC)gdevpdtb.h $(DEVVECSRC)gdevpdtd.h:$(DEVVECSRC)gdevpdtx.h $(DEVVECSRC)gdevpdtd.h:$(DEVVECSRC)gdevpdt.h @@ -3370,516 +3415,516 @@ $(DEVVECSRC)gdevpdtd.h:$(DEVVECSRC)gdevpdfx.h $(DEVVECSRC)gdevpdtd.h:$(DEVVECSRC)gdevpsdf.h $(DEVVECSRC)gdevpdtd.h:$(GLSRC)gdevvec.h $(DEVVECSRC)gdevpdtd.h:$(GLSRC)gxgstate.h -$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gxline.h $(DEVVECSRC)gdevpdtd.h:$(GLSRC)gstrans.h -$(DEVVECSRC)gdevpdtd.h:$(GLSRC)sarc4.h +$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gdevp14.h +$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gxline.h $(DEVVECSRC)gdevpdtd.h:$(GLSRC)gsht1.h -$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gxfont.h -$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gdevbbox.h +$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gxcomp.h +$(DEVVECSRC)gdevpdtd.h:$(GLSRC)sarc4.h $(DEVVECSRC)gdevpdtd.h:$(GLSRC)math_.h $(DEVVECSRC)gdevpdtd.h:$(GLSRC)scfx.h -$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gdevp14.h +$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gdevbbox.h $(DEVVECSRC)gdevpdtd.h:$(GLSRC)gxcolor2.h +$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gxpcolor.h $(DEVVECSRC)gdevpdtd.h:$(GLSRC)spprint.h $(DEVVECSRC)gdevpdtd.h:$(GLSRC)spsdf.h -$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gxpcolor.h +$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gxdevmem.h +$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gxfont.h $(DEVVECSRC)gdevpdtd.h:$(GLSRC)gdevdevn.h -$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gsequivc.h $(DEVVECSRC)gdevpdtd.h:$(GLSRC)gspath.h -$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gxblend.h $(DEVVECSRC)gdevpdtd.h:$(GLSRC)gxclipsr.h -$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gxcomp.h -$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gxdcolor.h -$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gxmatrix.h $(DEVVECSRC)gdevpdtd.h:$(GLSRC)gsgdata.h -$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gxbitfmt.h +$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gxdcolor.h +$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gxblend.h $(DEVVECSRC)gdevpdtd.h:$(GLSRC)shc.h -$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gsgcache.h $(DEVVECSRC)gdevpdtd.h:$(GLSRC)gscolor2.h +$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gxmatrix.h $(DEVVECSRC)gdevpdtd.h:$(GLSRC)gxfapi.h -$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gscindex.h -$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gsnotify.h -$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gsfcmap.h $(DEVVECSRC)gdevpdtd.h:$(GLSRC)gxdevice.h -$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gsht.h +$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gsfcmap.h $(DEVVECSRC)gdevpdtd.h:$(GLSRC)gxcpath.h -$(DEVVECSRC)gdevpdtd.h:$(GLSRC)sa85x.h +$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gsht.h $(DEVVECSRC)gdevpdtd.h:$(GLSRC)gxiparam.h +$(DEVVECSRC)gdevpdtd.h:$(GLSRC)sa85x.h +$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gsequivc.h $(DEVVECSRC)gdevpdtd.h:$(GLSRC)sa85d.h -$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gxdevmem.h $(DEVVECSRC)gdevpdtd.h:$(GLSRC)gxdevcli.h $(DEVVECSRC)gdevpdtd.h:$(GLSRC)gxpcache.h +$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gscindex.h +$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gxcmap.h $(DEVVECSRC)gdevpdtd.h:$(GLSRC)gsptype1.h -$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gxtext.h $(DEVVECSRC)gdevpdtd.h:$(GLSRC)gscie.h +$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gxtext.h $(DEVVECSRC)gdevpdtd.h:$(GLSRC)gstext.h +$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gxstate.h $(DEVVECSRC)gdevpdtd.h:$(GLSRC)gsnamecl.h $(DEVVECSRC)gdevpdtd.h:$(GLSRC)gstparam.h -$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gxstate.h $(DEVVECSRC)gdevpdtd.h:$(GLSRC)gspcolor.h -$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gxfcache.h +$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gxfmap.h $(DEVVECSRC)gdevpdtd.h:$(GLSRC)stream.h -$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gxcspace.h -$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gsropt.h -$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gsfunc.h $(DEVVECSRC)gdevpdtd.h:$(GLSRC)gsmalloc.h -$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gxrplane.h +$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gsfunc.h +$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gxcspace.h +$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gxhldevc.h $(DEVVECSRC)gdevpdtd.h:$(GLSRC)gxctable.h $(DEVVECSRC)gdevpdtd.h:$(GLSRC)gxiodev.h -$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gsuid.h -$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gxcmap.h -$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gxhldevc.h $(DEVVECSRC)gdevpdtd.h:$(GLSRC)strimpl.h +$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gxrplane.h +$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gscsel.h +$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gxfcache.h +$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gsfont.h $(DEVVECSRC)gdevpdtd.h:$(GLSRC)gsimage.h $(DEVVECSRC)gdevpdtd.h:$(GLSRC)gsdcolor.h -$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gxdda.h $(DEVVECSRC)gdevpdtd.h:$(GLSRC)gxcvalue.h -$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gsfont.h -$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gxfmap.h +$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gxbcache.h +$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gsropt.h +$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gxdda.h +$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gxpath.h $(DEVVECSRC)gdevpdtd.h:$(GLSRC)gxiclass.h -$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gxftype.h $(DEVVECSRC)gdevpdtd.h:$(GLSRC)gxfrac.h +$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gxtmap.h +$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gxftype.h $(DEVVECSRC)gdevpdtd.h:$(GLSRC)gscms.h -$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gscspace.h -$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gxpath.h -$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gxbcache.h -$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gsdevice.h -$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gxarith.h -$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gxstdio.h -$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gspenum.h -$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gxhttile.h $(DEVVECSRC)gdevpdtd.h:$(GLSRC)gsrect.h $(DEVVECSRC)gdevpdtd.h:$(GLSRC)gslparam.h +$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gsdevice.h +$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gxbitfmt.h +$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gscpm.h +$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gsgcache.h +$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gscspace.h +$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gsgstate.h +$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gsnotify.h +$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gxstdio.h $(DEVVECSRC)gdevpdtd.h:$(GLSRC)gsxfont.h -$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gsiparam.h $(DEVVECSRC)gdevpdtd.h:$(GLSRC)gsdsrc.h $(DEVVECSRC)gdevpdtd.h:$(GLSRC)gsio.h -$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gxbitmap.h -$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gsmatrix.h -$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gscpm.h +$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gsiparam.h $(DEVVECSRC)gdevpdtd.h:$(GLSRC)gxfixed.h -$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gsrefct.h +$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gscompt.h +$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gsmatrix.h +$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gspenum.h +$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gxhttile.h $(DEVVECSRC)gdevpdtd.h:$(GLSRC)gsparam.h +$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gsrefct.h $(DEVVECSRC)gdevpdtd.h:$(GLSRC)gp.h -$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gsccolor.h +$(DEVVECSRC)gdevpdtd.h:$(GLSRC)memento.h +$(DEVVECSRC)gdevpdtd.h:$(GLSRC)memory_.h +$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gsuid.h $(DEVVECSRC)gdevpdtd.h:$(GLSRC)gsstruct.h $(DEVVECSRC)gdevpdtd.h:$(GLSRC)gxsync.h +$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gxbitmap.h +$(DEVVECSRC)gdevpdtd.h:$(GLSRC)vmsmath.h $(DEVVECSRC)gdevpdtd.h:$(GLSRC)srdline.h $(DEVVECSRC)gdevpdtd.h:$(GLSRC)scommon.h -$(DEVVECSRC)gdevpdtd.h:$(GLSRC)memento.h -$(DEVVECSRC)gdevpdtd.h:$(GLSRC)vmsmath.h -$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gscsel.h -$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gsbitmap.h $(DEVVECSRC)gdevpdtd.h:$(GLSRC)gsfname.h -$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gsstype.h +$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gsbitmap.h +$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gsccolor.h +$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gxarith.h $(DEVVECSRC)gdevpdtd.h:$(GLSRC)stat_.h -$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gxtmap.h -$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gsmemory.h $(DEVVECSRC)gdevpdtd.h:$(GLSRC)gpsync.h -$(DEVVECSRC)gdevpdtd.h:$(GLSRC)memory_.h +$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gsstype.h +$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gsmemory.h $(DEVVECSRC)gdevpdtd.h:$(GLSRC)gpgetenv.h -$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gslibctx.h $(DEVVECSRC)gdevpdtd.h:$(GLSRC)gscdefs.h -$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gs_dll_call.h -$(DEVVECSRC)gdevpdtd.h:$(GLSRC)stdio_.h -$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gscompt.h -$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gsbittab.h +$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gslibctx.h $(DEVVECSRC)gdevpdtd.h:$(GLSRC)gxcindex.h -$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gsgstate.h +$(DEVVECSRC)gdevpdtd.h:$(GLSRC)stdio_.h +$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gsccode.h $(DEVVECSRC)gdevpdtd.h:$(GLSRC)stdint_.h $(DEVVECSRC)gdevpdtd.h:$(GLSRC)gssprintf.h -$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gsccode.h -$(DEVVECSRC)gdevpdtd.h:$(GLSRC)std.h +$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gsbittab.h $(DEVVECSRC)gdevpdtd.h:$(GLSRC)gstypes.h +$(DEVVECSRC)gdevpdtd.h:$(GLSRC)std.h $(DEVVECSRC)gdevpdtd.h:$(GLSRC)stdpre.h $(DEVVECSRC)gdevpdtd.h:$(GLGEN)arch.h +$(DEVVECSRC)gdevpdtd.h:$(GLSRC)gs_dll_call.h $(DEVVECSRC)gdevpdtf.h:$(DEVVECSRC)gdevpdtx.h $(DEVVECSRC)gdevpdtf.h:$(DEVVECSRC)gdevpdt.h $(DEVVECSRC)gdevpdtf.h:$(DEVVECSRC)gdevpdfx.h $(DEVVECSRC)gdevpdtf.h:$(DEVVECSRC)gdevpsdf.h $(DEVVECSRC)gdevpdtf.h:$(GLSRC)gdevvec.h $(DEVVECSRC)gdevpdtf.h:$(GLSRC)gxgstate.h -$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gxline.h $(DEVVECSRC)gdevpdtf.h:$(GLSRC)gstrans.h -$(DEVVECSRC)gdevpdtf.h:$(GLSRC)sarc4.h +$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gdevp14.h +$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gxline.h $(DEVVECSRC)gdevpdtf.h:$(GLSRC)gsht1.h -$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gxfont.h -$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gdevbbox.h +$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gxcomp.h +$(DEVVECSRC)gdevpdtf.h:$(GLSRC)sarc4.h $(DEVVECSRC)gdevpdtf.h:$(GLSRC)math_.h $(DEVVECSRC)gdevpdtf.h:$(GLSRC)scfx.h -$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gdevp14.h +$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gdevbbox.h $(DEVVECSRC)gdevpdtf.h:$(GLSRC)gxcolor2.h +$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gxpcolor.h $(DEVVECSRC)gdevpdtf.h:$(GLSRC)spprint.h $(DEVVECSRC)gdevpdtf.h:$(GLSRC)spsdf.h -$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gxpcolor.h +$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gxdevmem.h +$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gxfont.h $(DEVVECSRC)gdevpdtf.h:$(GLSRC)gdevdevn.h -$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gsequivc.h $(DEVVECSRC)gdevpdtf.h:$(GLSRC)gspath.h -$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gxblend.h $(DEVVECSRC)gdevpdtf.h:$(GLSRC)gxclipsr.h -$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gxcomp.h -$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gxdcolor.h -$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gxmatrix.h $(DEVVECSRC)gdevpdtf.h:$(GLSRC)gsgdata.h -$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gxbitfmt.h +$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gxdcolor.h +$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gxblend.h $(DEVVECSRC)gdevpdtf.h:$(GLSRC)shc.h -$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gsgcache.h $(DEVVECSRC)gdevpdtf.h:$(GLSRC)gscolor2.h +$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gxmatrix.h $(DEVVECSRC)gdevpdtf.h:$(GLSRC)gxfapi.h -$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gscindex.h -$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gsnotify.h -$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gsfcmap.h $(DEVVECSRC)gdevpdtf.h:$(GLSRC)gxdevice.h -$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gsht.h +$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gsfcmap.h $(DEVVECSRC)gdevpdtf.h:$(GLSRC)gxcpath.h -$(DEVVECSRC)gdevpdtf.h:$(GLSRC)sa85x.h +$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gsht.h $(DEVVECSRC)gdevpdtf.h:$(GLSRC)gxiparam.h +$(DEVVECSRC)gdevpdtf.h:$(GLSRC)sa85x.h +$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gsequivc.h $(DEVVECSRC)gdevpdtf.h:$(GLSRC)sa85d.h -$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gxdevmem.h $(DEVVECSRC)gdevpdtf.h:$(GLSRC)gxdevcli.h $(DEVVECSRC)gdevpdtf.h:$(GLSRC)gxpcache.h +$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gscindex.h +$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gxcmap.h $(DEVVECSRC)gdevpdtf.h:$(GLSRC)gsptype1.h -$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gxtext.h $(DEVVECSRC)gdevpdtf.h:$(GLSRC)gscie.h +$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gxtext.h $(DEVVECSRC)gdevpdtf.h:$(GLSRC)gstext.h +$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gxstate.h $(DEVVECSRC)gdevpdtf.h:$(GLSRC)gsnamecl.h $(DEVVECSRC)gdevpdtf.h:$(GLSRC)gstparam.h -$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gxstate.h $(DEVVECSRC)gdevpdtf.h:$(GLSRC)gspcolor.h -$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gxfcache.h +$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gxfmap.h $(DEVVECSRC)gdevpdtf.h:$(GLSRC)stream.h -$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gxcspace.h -$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gsropt.h -$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gsfunc.h $(DEVVECSRC)gdevpdtf.h:$(GLSRC)gsmalloc.h -$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gxrplane.h +$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gsfunc.h +$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gxcspace.h +$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gxhldevc.h $(DEVVECSRC)gdevpdtf.h:$(GLSRC)gxctable.h $(DEVVECSRC)gdevpdtf.h:$(GLSRC)gxiodev.h -$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gsuid.h -$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gxcmap.h -$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gxhldevc.h $(DEVVECSRC)gdevpdtf.h:$(GLSRC)strimpl.h +$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gxrplane.h +$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gscsel.h +$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gxfcache.h +$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gsfont.h $(DEVVECSRC)gdevpdtf.h:$(GLSRC)gsimage.h $(DEVVECSRC)gdevpdtf.h:$(GLSRC)gsdcolor.h -$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gxdda.h $(DEVVECSRC)gdevpdtf.h:$(GLSRC)gxcvalue.h -$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gsfont.h -$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gxfmap.h +$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gxbcache.h +$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gsropt.h +$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gxdda.h +$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gxpath.h $(DEVVECSRC)gdevpdtf.h:$(GLSRC)gxiclass.h -$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gxftype.h $(DEVVECSRC)gdevpdtf.h:$(GLSRC)gxfrac.h +$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gxtmap.h +$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gxftype.h $(DEVVECSRC)gdevpdtf.h:$(GLSRC)gscms.h -$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gscspace.h -$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gxpath.h -$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gxbcache.h -$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gsdevice.h -$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gxarith.h -$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gxstdio.h -$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gspenum.h -$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gxhttile.h $(DEVVECSRC)gdevpdtf.h:$(GLSRC)gsrect.h $(DEVVECSRC)gdevpdtf.h:$(GLSRC)gslparam.h +$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gsdevice.h +$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gxbitfmt.h +$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gscpm.h +$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gsgcache.h +$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gscspace.h +$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gsgstate.h +$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gsnotify.h +$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gxstdio.h $(DEVVECSRC)gdevpdtf.h:$(GLSRC)gsxfont.h -$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gsiparam.h $(DEVVECSRC)gdevpdtf.h:$(GLSRC)gsdsrc.h $(DEVVECSRC)gdevpdtf.h:$(GLSRC)gsio.h -$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gxbitmap.h -$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gsmatrix.h -$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gscpm.h +$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gsiparam.h $(DEVVECSRC)gdevpdtf.h:$(GLSRC)gxfixed.h -$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gsrefct.h +$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gscompt.h +$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gsmatrix.h +$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gspenum.h +$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gxhttile.h $(DEVVECSRC)gdevpdtf.h:$(GLSRC)gsparam.h +$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gsrefct.h $(DEVVECSRC)gdevpdtf.h:$(GLSRC)gp.h -$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gsccolor.h +$(DEVVECSRC)gdevpdtf.h:$(GLSRC)memento.h +$(DEVVECSRC)gdevpdtf.h:$(GLSRC)memory_.h +$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gsuid.h $(DEVVECSRC)gdevpdtf.h:$(GLSRC)gsstruct.h $(DEVVECSRC)gdevpdtf.h:$(GLSRC)gxsync.h +$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gxbitmap.h +$(DEVVECSRC)gdevpdtf.h:$(GLSRC)vmsmath.h $(DEVVECSRC)gdevpdtf.h:$(GLSRC)srdline.h $(DEVVECSRC)gdevpdtf.h:$(GLSRC)scommon.h -$(DEVVECSRC)gdevpdtf.h:$(GLSRC)memento.h -$(DEVVECSRC)gdevpdtf.h:$(GLSRC)vmsmath.h -$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gscsel.h -$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gsbitmap.h $(DEVVECSRC)gdevpdtf.h:$(GLSRC)gsfname.h -$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gsstype.h +$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gsbitmap.h +$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gsccolor.h +$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gxarith.h $(DEVVECSRC)gdevpdtf.h:$(GLSRC)stat_.h -$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gxtmap.h -$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gsmemory.h $(DEVVECSRC)gdevpdtf.h:$(GLSRC)gpsync.h -$(DEVVECSRC)gdevpdtf.h:$(GLSRC)memory_.h +$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gsstype.h +$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gsmemory.h $(DEVVECSRC)gdevpdtf.h:$(GLSRC)gpgetenv.h -$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gslibctx.h $(DEVVECSRC)gdevpdtf.h:$(GLSRC)gscdefs.h -$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gs_dll_call.h -$(DEVVECSRC)gdevpdtf.h:$(GLSRC)stdio_.h -$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gscompt.h -$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gsbittab.h +$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gslibctx.h $(DEVVECSRC)gdevpdtf.h:$(GLSRC)gxcindex.h -$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gsgstate.h +$(DEVVECSRC)gdevpdtf.h:$(GLSRC)stdio_.h +$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gsccode.h $(DEVVECSRC)gdevpdtf.h:$(GLSRC)stdint_.h $(DEVVECSRC)gdevpdtf.h:$(GLSRC)gssprintf.h -$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gsccode.h -$(DEVVECSRC)gdevpdtf.h:$(GLSRC)std.h +$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gsbittab.h $(DEVVECSRC)gdevpdtf.h:$(GLSRC)gstypes.h +$(DEVVECSRC)gdevpdtf.h:$(GLSRC)std.h $(DEVVECSRC)gdevpdtf.h:$(GLSRC)stdpre.h $(DEVVECSRC)gdevpdtf.h:$(GLGEN)arch.h +$(DEVVECSRC)gdevpdtf.h:$(GLSRC)gs_dll_call.h $(DEVVECSRC)gdevpdti.h:$(DEVVECSRC)gdevpdtx.h $(DEVVECSRC)gdevpdti.h:$(DEVVECSRC)gdevpdt.h $(DEVVECSRC)gdevpdti.h:$(DEVVECSRC)gdevpdfx.h $(DEVVECSRC)gdevpdti.h:$(DEVVECSRC)gdevpsdf.h $(DEVVECSRC)gdevpdti.h:$(GLSRC)gdevvec.h $(DEVVECSRC)gdevpdti.h:$(GLSRC)gxgstate.h -$(DEVVECSRC)gdevpdti.h:$(GLSRC)gxline.h $(DEVVECSRC)gdevpdti.h:$(GLSRC)gstrans.h -$(DEVVECSRC)gdevpdti.h:$(GLSRC)sarc4.h +$(DEVVECSRC)gdevpdti.h:$(GLSRC)gdevp14.h +$(DEVVECSRC)gdevpdti.h:$(GLSRC)gxline.h $(DEVVECSRC)gdevpdti.h:$(GLSRC)gsht1.h -$(DEVVECSRC)gdevpdti.h:$(GLSRC)gxfont.h -$(DEVVECSRC)gdevpdti.h:$(GLSRC)gdevbbox.h +$(DEVVECSRC)gdevpdti.h:$(GLSRC)gxcomp.h +$(DEVVECSRC)gdevpdti.h:$(GLSRC)sarc4.h $(DEVVECSRC)gdevpdti.h:$(GLSRC)math_.h $(DEVVECSRC)gdevpdti.h:$(GLSRC)scfx.h -$(DEVVECSRC)gdevpdti.h:$(GLSRC)gdevp14.h +$(DEVVECSRC)gdevpdti.h:$(GLSRC)gdevbbox.h $(DEVVECSRC)gdevpdti.h:$(GLSRC)gxcolor2.h +$(DEVVECSRC)gdevpdti.h:$(GLSRC)gxpcolor.h $(DEVVECSRC)gdevpdti.h:$(GLSRC)spprint.h $(DEVVECSRC)gdevpdti.h:$(GLSRC)spsdf.h -$(DEVVECSRC)gdevpdti.h:$(GLSRC)gxpcolor.h +$(DEVVECSRC)gdevpdti.h:$(GLSRC)gxdevmem.h +$(DEVVECSRC)gdevpdti.h:$(GLSRC)gxfont.h $(DEVVECSRC)gdevpdti.h:$(GLSRC)gdevdevn.h -$(DEVVECSRC)gdevpdti.h:$(GLSRC)gsequivc.h $(DEVVECSRC)gdevpdti.h:$(GLSRC)gspath.h -$(DEVVECSRC)gdevpdti.h:$(GLSRC)gxblend.h $(DEVVECSRC)gdevpdti.h:$(GLSRC)gxclipsr.h -$(DEVVECSRC)gdevpdti.h:$(GLSRC)gxcomp.h -$(DEVVECSRC)gdevpdti.h:$(GLSRC)gxdcolor.h -$(DEVVECSRC)gdevpdti.h:$(GLSRC)gxmatrix.h $(DEVVECSRC)gdevpdti.h:$(GLSRC)gsgdata.h -$(DEVVECSRC)gdevpdti.h:$(GLSRC)gxbitfmt.h +$(DEVVECSRC)gdevpdti.h:$(GLSRC)gxdcolor.h +$(DEVVECSRC)gdevpdti.h:$(GLSRC)gxblend.h $(DEVVECSRC)gdevpdti.h:$(GLSRC)shc.h -$(DEVVECSRC)gdevpdti.h:$(GLSRC)gsgcache.h $(DEVVECSRC)gdevpdti.h:$(GLSRC)gscolor2.h +$(DEVVECSRC)gdevpdti.h:$(GLSRC)gxmatrix.h $(DEVVECSRC)gdevpdti.h:$(GLSRC)gxfapi.h -$(DEVVECSRC)gdevpdti.h:$(GLSRC)gscindex.h -$(DEVVECSRC)gdevpdti.h:$(GLSRC)gsnotify.h -$(DEVVECSRC)gdevpdti.h:$(GLSRC)gsfcmap.h $(DEVVECSRC)gdevpdti.h:$(GLSRC)gxdevice.h -$(DEVVECSRC)gdevpdti.h:$(GLSRC)gsht.h +$(DEVVECSRC)gdevpdti.h:$(GLSRC)gsfcmap.h $(DEVVECSRC)gdevpdti.h:$(GLSRC)gxcpath.h -$(DEVVECSRC)gdevpdti.h:$(GLSRC)sa85x.h +$(DEVVECSRC)gdevpdti.h:$(GLSRC)gsht.h $(DEVVECSRC)gdevpdti.h:$(GLSRC)gxiparam.h +$(DEVVECSRC)gdevpdti.h:$(GLSRC)sa85x.h +$(DEVVECSRC)gdevpdti.h:$(GLSRC)gsequivc.h $(DEVVECSRC)gdevpdti.h:$(GLSRC)sa85d.h -$(DEVVECSRC)gdevpdti.h:$(GLSRC)gxdevmem.h $(DEVVECSRC)gdevpdti.h:$(GLSRC)gxdevcli.h $(DEVVECSRC)gdevpdti.h:$(GLSRC)gxpcache.h +$(DEVVECSRC)gdevpdti.h:$(GLSRC)gscindex.h +$(DEVVECSRC)gdevpdti.h:$(GLSRC)gxcmap.h $(DEVVECSRC)gdevpdti.h:$(GLSRC)gsptype1.h -$(DEVVECSRC)gdevpdti.h:$(GLSRC)gxtext.h $(DEVVECSRC)gdevpdti.h:$(GLSRC)gscie.h +$(DEVVECSRC)gdevpdti.h:$(GLSRC)gxtext.h $(DEVVECSRC)gdevpdti.h:$(GLSRC)gstext.h +$(DEVVECSRC)gdevpdti.h:$(GLSRC)gxstate.h $(DEVVECSRC)gdevpdti.h:$(GLSRC)gsnamecl.h $(DEVVECSRC)gdevpdti.h:$(GLSRC)gstparam.h -$(DEVVECSRC)gdevpdti.h:$(GLSRC)gxstate.h $(DEVVECSRC)gdevpdti.h:$(GLSRC)gspcolor.h -$(DEVVECSRC)gdevpdti.h:$(GLSRC)gxfcache.h +$(DEVVECSRC)gdevpdti.h:$(GLSRC)gxfmap.h $(DEVVECSRC)gdevpdti.h:$(GLSRC)stream.h -$(DEVVECSRC)gdevpdti.h:$(GLSRC)gxcspace.h -$(DEVVECSRC)gdevpdti.h:$(GLSRC)gsropt.h -$(DEVVECSRC)gdevpdti.h:$(GLSRC)gsfunc.h $(DEVVECSRC)gdevpdti.h:$(GLSRC)gsmalloc.h -$(DEVVECSRC)gdevpdti.h:$(GLSRC)gxrplane.h +$(DEVVECSRC)gdevpdti.h:$(GLSRC)gsfunc.h +$(DEVVECSRC)gdevpdti.h:$(GLSRC)gxcspace.h +$(DEVVECSRC)gdevpdti.h:$(GLSRC)gxhldevc.h $(DEVVECSRC)gdevpdti.h:$(GLSRC)gxctable.h $(DEVVECSRC)gdevpdti.h:$(GLSRC)gxiodev.h -$(DEVVECSRC)gdevpdti.h:$(GLSRC)gsuid.h -$(DEVVECSRC)gdevpdti.h:$(GLSRC)gxcmap.h -$(DEVVECSRC)gdevpdti.h:$(GLSRC)gxhldevc.h $(DEVVECSRC)gdevpdti.h:$(GLSRC)strimpl.h +$(DEVVECSRC)gdevpdti.h:$(GLSRC)gxrplane.h +$(DEVVECSRC)gdevpdti.h:$(GLSRC)gscsel.h +$(DEVVECSRC)gdevpdti.h:$(GLSRC)gxfcache.h +$(DEVVECSRC)gdevpdti.h:$(GLSRC)gsfont.h $(DEVVECSRC)gdevpdti.h:$(GLSRC)gsimage.h $(DEVVECSRC)gdevpdti.h:$(GLSRC)gsdcolor.h -$(DEVVECSRC)gdevpdti.h:$(GLSRC)gxdda.h $(DEVVECSRC)gdevpdti.h:$(GLSRC)gxcvalue.h -$(DEVVECSRC)gdevpdti.h:$(GLSRC)gsfont.h -$(DEVVECSRC)gdevpdti.h:$(GLSRC)gxfmap.h +$(DEVVECSRC)gdevpdti.h:$(GLSRC)gxbcache.h +$(DEVVECSRC)gdevpdti.h:$(GLSRC)gsropt.h +$(DEVVECSRC)gdevpdti.h:$(GLSRC)gxdda.h +$(DEVVECSRC)gdevpdti.h:$(GLSRC)gxpath.h $(DEVVECSRC)gdevpdti.h:$(GLSRC)gxiclass.h -$(DEVVECSRC)gdevpdti.h:$(GLSRC)gxftype.h $(DEVVECSRC)gdevpdti.h:$(GLSRC)gxfrac.h +$(DEVVECSRC)gdevpdti.h:$(GLSRC)gxtmap.h +$(DEVVECSRC)gdevpdti.h:$(GLSRC)gxftype.h $(DEVVECSRC)gdevpdti.h:$(GLSRC)gscms.h -$(DEVVECSRC)gdevpdti.h:$(GLSRC)gscspace.h -$(DEVVECSRC)gdevpdti.h:$(GLSRC)gxpath.h -$(DEVVECSRC)gdevpdti.h:$(GLSRC)gxbcache.h -$(DEVVECSRC)gdevpdti.h:$(GLSRC)gsdevice.h -$(DEVVECSRC)gdevpdti.h:$(GLSRC)gxarith.h -$(DEVVECSRC)gdevpdti.h:$(GLSRC)gxstdio.h -$(DEVVECSRC)gdevpdti.h:$(GLSRC)gspenum.h -$(DEVVECSRC)gdevpdti.h:$(GLSRC)gxhttile.h $(DEVVECSRC)gdevpdti.h:$(GLSRC)gsrect.h $(DEVVECSRC)gdevpdti.h:$(GLSRC)gslparam.h +$(DEVVECSRC)gdevpdti.h:$(GLSRC)gsdevice.h +$(DEVVECSRC)gdevpdti.h:$(GLSRC)gxbitfmt.h +$(DEVVECSRC)gdevpdti.h:$(GLSRC)gscpm.h +$(DEVVECSRC)gdevpdti.h:$(GLSRC)gsgcache.h +$(DEVVECSRC)gdevpdti.h:$(GLSRC)gscspace.h +$(DEVVECSRC)gdevpdti.h:$(GLSRC)gsgstate.h +$(DEVVECSRC)gdevpdti.h:$(GLSRC)gsnotify.h +$(DEVVECSRC)gdevpdti.h:$(GLSRC)gxstdio.h $(DEVVECSRC)gdevpdti.h:$(GLSRC)gsxfont.h -$(DEVVECSRC)gdevpdti.h:$(GLSRC)gsiparam.h $(DEVVECSRC)gdevpdti.h:$(GLSRC)gsdsrc.h $(DEVVECSRC)gdevpdti.h:$(GLSRC)gsio.h -$(DEVVECSRC)gdevpdti.h:$(GLSRC)gxbitmap.h -$(DEVVECSRC)gdevpdti.h:$(GLSRC)gsmatrix.h -$(DEVVECSRC)gdevpdti.h:$(GLSRC)gscpm.h +$(DEVVECSRC)gdevpdti.h:$(GLSRC)gsiparam.h $(DEVVECSRC)gdevpdti.h:$(GLSRC)gxfixed.h -$(DEVVECSRC)gdevpdti.h:$(GLSRC)gsrefct.h +$(DEVVECSRC)gdevpdti.h:$(GLSRC)gscompt.h +$(DEVVECSRC)gdevpdti.h:$(GLSRC)gsmatrix.h +$(DEVVECSRC)gdevpdti.h:$(GLSRC)gspenum.h +$(DEVVECSRC)gdevpdti.h:$(GLSRC)gxhttile.h $(DEVVECSRC)gdevpdti.h:$(GLSRC)gsparam.h +$(DEVVECSRC)gdevpdti.h:$(GLSRC)gsrefct.h $(DEVVECSRC)gdevpdti.h:$(GLSRC)gp.h -$(DEVVECSRC)gdevpdti.h:$(GLSRC)gsccolor.h +$(DEVVECSRC)gdevpdti.h:$(GLSRC)memento.h +$(DEVVECSRC)gdevpdti.h:$(GLSRC)memory_.h +$(DEVVECSRC)gdevpdti.h:$(GLSRC)gsuid.h $(DEVVECSRC)gdevpdti.h:$(GLSRC)gsstruct.h $(DEVVECSRC)gdevpdti.h:$(GLSRC)gxsync.h +$(DEVVECSRC)gdevpdti.h:$(GLSRC)gxbitmap.h +$(DEVVECSRC)gdevpdti.h:$(GLSRC)vmsmath.h $(DEVVECSRC)gdevpdti.h:$(GLSRC)srdline.h $(DEVVECSRC)gdevpdti.h:$(GLSRC)scommon.h -$(DEVVECSRC)gdevpdti.h:$(GLSRC)memento.h -$(DEVVECSRC)gdevpdti.h:$(GLSRC)vmsmath.h -$(DEVVECSRC)gdevpdti.h:$(GLSRC)gscsel.h -$(DEVVECSRC)gdevpdti.h:$(GLSRC)gsbitmap.h $(DEVVECSRC)gdevpdti.h:$(GLSRC)gsfname.h -$(DEVVECSRC)gdevpdti.h:$(GLSRC)gsstype.h +$(DEVVECSRC)gdevpdti.h:$(GLSRC)gsbitmap.h +$(DEVVECSRC)gdevpdti.h:$(GLSRC)gsccolor.h +$(DEVVECSRC)gdevpdti.h:$(GLSRC)gxarith.h $(DEVVECSRC)gdevpdti.h:$(GLSRC)stat_.h -$(DEVVECSRC)gdevpdti.h:$(GLSRC)gxtmap.h -$(DEVVECSRC)gdevpdti.h:$(GLSRC)gsmemory.h $(DEVVECSRC)gdevpdti.h:$(GLSRC)gpsync.h -$(DEVVECSRC)gdevpdti.h:$(GLSRC)memory_.h +$(DEVVECSRC)gdevpdti.h:$(GLSRC)gsstype.h +$(DEVVECSRC)gdevpdti.h:$(GLSRC)gsmemory.h $(DEVVECSRC)gdevpdti.h:$(GLSRC)gpgetenv.h -$(DEVVECSRC)gdevpdti.h:$(GLSRC)gslibctx.h $(DEVVECSRC)gdevpdti.h:$(GLSRC)gscdefs.h -$(DEVVECSRC)gdevpdti.h:$(GLSRC)gs_dll_call.h -$(DEVVECSRC)gdevpdti.h:$(GLSRC)stdio_.h -$(DEVVECSRC)gdevpdti.h:$(GLSRC)gscompt.h -$(DEVVECSRC)gdevpdti.h:$(GLSRC)gsbittab.h +$(DEVVECSRC)gdevpdti.h:$(GLSRC)gslibctx.h $(DEVVECSRC)gdevpdti.h:$(GLSRC)gxcindex.h -$(DEVVECSRC)gdevpdti.h:$(GLSRC)gsgstate.h +$(DEVVECSRC)gdevpdti.h:$(GLSRC)stdio_.h +$(DEVVECSRC)gdevpdti.h:$(GLSRC)gsccode.h $(DEVVECSRC)gdevpdti.h:$(GLSRC)stdint_.h $(DEVVECSRC)gdevpdti.h:$(GLSRC)gssprintf.h -$(DEVVECSRC)gdevpdti.h:$(GLSRC)gsccode.h -$(DEVVECSRC)gdevpdti.h:$(GLSRC)std.h +$(DEVVECSRC)gdevpdti.h:$(GLSRC)gsbittab.h $(DEVVECSRC)gdevpdti.h:$(GLSRC)gstypes.h +$(DEVVECSRC)gdevpdti.h:$(GLSRC)std.h $(DEVVECSRC)gdevpdti.h:$(GLSRC)stdpre.h $(DEVVECSRC)gdevpdti.h:$(GLGEN)arch.h +$(DEVVECSRC)gdevpdti.h:$(GLSRC)gs_dll_call.h $(DEVVECSRC)gdevpdts.h:$(DEVVECSRC)gdevpdtx.h $(DEVVECSRC)gdevpdts.h:$(DEVVECSRC)gdevpdt.h $(DEVVECSRC)gdevpdts.h:$(DEVVECSRC)gdevpdfx.h $(DEVVECSRC)gdevpdts.h:$(DEVVECSRC)gdevpsdf.h $(DEVVECSRC)gdevpdts.h:$(GLSRC)gdevvec.h $(DEVVECSRC)gdevpdts.h:$(GLSRC)gxgstate.h -$(DEVVECSRC)gdevpdts.h:$(GLSRC)gxline.h $(DEVVECSRC)gdevpdts.h:$(GLSRC)gstrans.h -$(DEVVECSRC)gdevpdts.h:$(GLSRC)sarc4.h +$(DEVVECSRC)gdevpdts.h:$(GLSRC)gdevp14.h +$(DEVVECSRC)gdevpdts.h:$(GLSRC)gxline.h $(DEVVECSRC)gdevpdts.h:$(GLSRC)gsht1.h -$(DEVVECSRC)gdevpdts.h:$(GLSRC)gxfont.h -$(DEVVECSRC)gdevpdts.h:$(GLSRC)gdevbbox.h +$(DEVVECSRC)gdevpdts.h:$(GLSRC)gxcomp.h +$(DEVVECSRC)gdevpdts.h:$(GLSRC)sarc4.h $(DEVVECSRC)gdevpdts.h:$(GLSRC)math_.h $(DEVVECSRC)gdevpdts.h:$(GLSRC)scfx.h -$(DEVVECSRC)gdevpdts.h:$(GLSRC)gdevp14.h +$(DEVVECSRC)gdevpdts.h:$(GLSRC)gdevbbox.h $(DEVVECSRC)gdevpdts.h:$(GLSRC)gxcolor2.h +$(DEVVECSRC)gdevpdts.h:$(GLSRC)gxpcolor.h $(DEVVECSRC)gdevpdts.h:$(GLSRC)spprint.h $(DEVVECSRC)gdevpdts.h:$(GLSRC)spsdf.h -$(DEVVECSRC)gdevpdts.h:$(GLSRC)gxpcolor.h +$(DEVVECSRC)gdevpdts.h:$(GLSRC)gxdevmem.h +$(DEVVECSRC)gdevpdts.h:$(GLSRC)gxfont.h $(DEVVECSRC)gdevpdts.h:$(GLSRC)gdevdevn.h -$(DEVVECSRC)gdevpdts.h:$(GLSRC)gsequivc.h $(DEVVECSRC)gdevpdts.h:$(GLSRC)gspath.h -$(DEVVECSRC)gdevpdts.h:$(GLSRC)gxblend.h $(DEVVECSRC)gdevpdts.h:$(GLSRC)gxclipsr.h -$(DEVVECSRC)gdevpdts.h:$(GLSRC)gxcomp.h -$(DEVVECSRC)gdevpdts.h:$(GLSRC)gxdcolor.h -$(DEVVECSRC)gdevpdts.h:$(GLSRC)gxmatrix.h $(DEVVECSRC)gdevpdts.h:$(GLSRC)gsgdata.h -$(DEVVECSRC)gdevpdts.h:$(GLSRC)gxbitfmt.h +$(DEVVECSRC)gdevpdts.h:$(GLSRC)gxdcolor.h +$(DEVVECSRC)gdevpdts.h:$(GLSRC)gxblend.h $(DEVVECSRC)gdevpdts.h:$(GLSRC)shc.h -$(DEVVECSRC)gdevpdts.h:$(GLSRC)gsgcache.h $(DEVVECSRC)gdevpdts.h:$(GLSRC)gscolor2.h +$(DEVVECSRC)gdevpdts.h:$(GLSRC)gxmatrix.h $(DEVVECSRC)gdevpdts.h:$(GLSRC)gxfapi.h -$(DEVVECSRC)gdevpdts.h:$(GLSRC)gscindex.h -$(DEVVECSRC)gdevpdts.h:$(GLSRC)gsnotify.h -$(DEVVECSRC)gdevpdts.h:$(GLSRC)gsfcmap.h $(DEVVECSRC)gdevpdts.h:$(GLSRC)gxdevice.h -$(DEVVECSRC)gdevpdts.h:$(GLSRC)gsht.h +$(DEVVECSRC)gdevpdts.h:$(GLSRC)gsfcmap.h $(DEVVECSRC)gdevpdts.h:$(GLSRC)gxcpath.h -$(DEVVECSRC)gdevpdts.h:$(GLSRC)sa85x.h +$(DEVVECSRC)gdevpdts.h:$(GLSRC)gsht.h $(DEVVECSRC)gdevpdts.h:$(GLSRC)gxiparam.h +$(DEVVECSRC)gdevpdts.h:$(GLSRC)sa85x.h +$(DEVVECSRC)gdevpdts.h:$(GLSRC)gsequivc.h $(DEVVECSRC)gdevpdts.h:$(GLSRC)sa85d.h -$(DEVVECSRC)gdevpdts.h:$(GLSRC)gxdevmem.h $(DEVVECSRC)gdevpdts.h:$(GLSRC)gxdevcli.h $(DEVVECSRC)gdevpdts.h:$(GLSRC)gxpcache.h +$(DEVVECSRC)gdevpdts.h:$(GLSRC)gscindex.h +$(DEVVECSRC)gdevpdts.h:$(GLSRC)gxcmap.h $(DEVVECSRC)gdevpdts.h:$(GLSRC)gsptype1.h -$(DEVVECSRC)gdevpdts.h:$(GLSRC)gxtext.h $(DEVVECSRC)gdevpdts.h:$(GLSRC)gscie.h +$(DEVVECSRC)gdevpdts.h:$(GLSRC)gxtext.h $(DEVVECSRC)gdevpdts.h:$(GLSRC)gstext.h +$(DEVVECSRC)gdevpdts.h:$(GLSRC)gxstate.h $(DEVVECSRC)gdevpdts.h:$(GLSRC)gsnamecl.h $(DEVVECSRC)gdevpdts.h:$(GLSRC)gstparam.h -$(DEVVECSRC)gdevpdts.h:$(GLSRC)gxstate.h $(DEVVECSRC)gdevpdts.h:$(GLSRC)gspcolor.h -$(DEVVECSRC)gdevpdts.h:$(GLSRC)gxfcache.h +$(DEVVECSRC)gdevpdts.h:$(GLSRC)gxfmap.h $(DEVVECSRC)gdevpdts.h:$(GLSRC)stream.h -$(DEVVECSRC)gdevpdts.h:$(GLSRC)gxcspace.h -$(DEVVECSRC)gdevpdts.h:$(GLSRC)gsropt.h -$(DEVVECSRC)gdevpdts.h:$(GLSRC)gsfunc.h $(DEVVECSRC)gdevpdts.h:$(GLSRC)gsmalloc.h -$(DEVVECSRC)gdevpdts.h:$(GLSRC)gxrplane.h +$(DEVVECSRC)gdevpdts.h:$(GLSRC)gsfunc.h +$(DEVVECSRC)gdevpdts.h:$(GLSRC)gxcspace.h +$(DEVVECSRC)gdevpdts.h:$(GLSRC)gxhldevc.h $(DEVVECSRC)gdevpdts.h:$(GLSRC)gxctable.h $(DEVVECSRC)gdevpdts.h:$(GLSRC)gxiodev.h -$(DEVVECSRC)gdevpdts.h:$(GLSRC)gsuid.h -$(DEVVECSRC)gdevpdts.h:$(GLSRC)gxcmap.h -$(DEVVECSRC)gdevpdts.h:$(GLSRC)gxhldevc.h $(DEVVECSRC)gdevpdts.h:$(GLSRC)strimpl.h +$(DEVVECSRC)gdevpdts.h:$(GLSRC)gxrplane.h +$(DEVVECSRC)gdevpdts.h:$(GLSRC)gscsel.h +$(DEVVECSRC)gdevpdts.h:$(GLSRC)gxfcache.h +$(DEVVECSRC)gdevpdts.h:$(GLSRC)gsfont.h $(DEVVECSRC)gdevpdts.h:$(GLSRC)gsimage.h $(DEVVECSRC)gdevpdts.h:$(GLSRC)gsdcolor.h -$(DEVVECSRC)gdevpdts.h:$(GLSRC)gxdda.h $(DEVVECSRC)gdevpdts.h:$(GLSRC)gxcvalue.h -$(DEVVECSRC)gdevpdts.h:$(GLSRC)gsfont.h -$(DEVVECSRC)gdevpdts.h:$(GLSRC)gxfmap.h +$(DEVVECSRC)gdevpdts.h:$(GLSRC)gxbcache.h +$(DEVVECSRC)gdevpdts.h:$(GLSRC)gsropt.h +$(DEVVECSRC)gdevpdts.h:$(GLSRC)gxdda.h +$(DEVVECSRC)gdevpdts.h:$(GLSRC)gxpath.h $(DEVVECSRC)gdevpdts.h:$(GLSRC)gxiclass.h -$(DEVVECSRC)gdevpdts.h:$(GLSRC)gxftype.h $(DEVVECSRC)gdevpdts.h:$(GLSRC)gxfrac.h +$(DEVVECSRC)gdevpdts.h:$(GLSRC)gxtmap.h +$(DEVVECSRC)gdevpdts.h:$(GLSRC)gxftype.h $(DEVVECSRC)gdevpdts.h:$(GLSRC)gscms.h -$(DEVVECSRC)gdevpdts.h:$(GLSRC)gscspace.h -$(DEVVECSRC)gdevpdts.h:$(GLSRC)gxpath.h -$(DEVVECSRC)gdevpdts.h:$(GLSRC)gxbcache.h -$(DEVVECSRC)gdevpdts.h:$(GLSRC)gsdevice.h -$(DEVVECSRC)gdevpdts.h:$(GLSRC)gxarith.h -$(DEVVECSRC)gdevpdts.h:$(GLSRC)gxstdio.h -$(DEVVECSRC)gdevpdts.h:$(GLSRC)gspenum.h -$(DEVVECSRC)gdevpdts.h:$(GLSRC)gxhttile.h $(DEVVECSRC)gdevpdts.h:$(GLSRC)gsrect.h $(DEVVECSRC)gdevpdts.h:$(GLSRC)gslparam.h +$(DEVVECSRC)gdevpdts.h:$(GLSRC)gsdevice.h +$(DEVVECSRC)gdevpdts.h:$(GLSRC)gxbitfmt.h +$(DEVVECSRC)gdevpdts.h:$(GLSRC)gscpm.h +$(DEVVECSRC)gdevpdts.h:$(GLSRC)gsgcache.h +$(DEVVECSRC)gdevpdts.h:$(GLSRC)gscspace.h +$(DEVVECSRC)gdevpdts.h:$(GLSRC)gsgstate.h +$(DEVVECSRC)gdevpdts.h:$(GLSRC)gsnotify.h +$(DEVVECSRC)gdevpdts.h:$(GLSRC)gxstdio.h $(DEVVECSRC)gdevpdts.h:$(GLSRC)gsxfont.h -$(DEVVECSRC)gdevpdts.h:$(GLSRC)gsiparam.h $(DEVVECSRC)gdevpdts.h:$(GLSRC)gsdsrc.h $(DEVVECSRC)gdevpdts.h:$(GLSRC)gsio.h -$(DEVVECSRC)gdevpdts.h:$(GLSRC)gxbitmap.h -$(DEVVECSRC)gdevpdts.h:$(GLSRC)gsmatrix.h -$(DEVVECSRC)gdevpdts.h:$(GLSRC)gscpm.h +$(DEVVECSRC)gdevpdts.h:$(GLSRC)gsiparam.h $(DEVVECSRC)gdevpdts.h:$(GLSRC)gxfixed.h -$(DEVVECSRC)gdevpdts.h:$(GLSRC)gsrefct.h +$(DEVVECSRC)gdevpdts.h:$(GLSRC)gscompt.h +$(DEVVECSRC)gdevpdts.h:$(GLSRC)gsmatrix.h +$(DEVVECSRC)gdevpdts.h:$(GLSRC)gspenum.h +$(DEVVECSRC)gdevpdts.h:$(GLSRC)gxhttile.h $(DEVVECSRC)gdevpdts.h:$(GLSRC)gsparam.h +$(DEVVECSRC)gdevpdts.h:$(GLSRC)gsrefct.h $(DEVVECSRC)gdevpdts.h:$(GLSRC)gp.h -$(DEVVECSRC)gdevpdts.h:$(GLSRC)gsccolor.h +$(DEVVECSRC)gdevpdts.h:$(GLSRC)memento.h +$(DEVVECSRC)gdevpdts.h:$(GLSRC)memory_.h +$(DEVVECSRC)gdevpdts.h:$(GLSRC)gsuid.h $(DEVVECSRC)gdevpdts.h:$(GLSRC)gsstruct.h $(DEVVECSRC)gdevpdts.h:$(GLSRC)gxsync.h +$(DEVVECSRC)gdevpdts.h:$(GLSRC)gxbitmap.h +$(DEVVECSRC)gdevpdts.h:$(GLSRC)vmsmath.h $(DEVVECSRC)gdevpdts.h:$(GLSRC)srdline.h $(DEVVECSRC)gdevpdts.h:$(GLSRC)scommon.h -$(DEVVECSRC)gdevpdts.h:$(GLSRC)memento.h -$(DEVVECSRC)gdevpdts.h:$(GLSRC)vmsmath.h -$(DEVVECSRC)gdevpdts.h:$(GLSRC)gscsel.h -$(DEVVECSRC)gdevpdts.h:$(GLSRC)gsbitmap.h $(DEVVECSRC)gdevpdts.h:$(GLSRC)gsfname.h -$(DEVVECSRC)gdevpdts.h:$(GLSRC)gsstype.h +$(DEVVECSRC)gdevpdts.h:$(GLSRC)gsbitmap.h +$(DEVVECSRC)gdevpdts.h:$(GLSRC)gsccolor.h +$(DEVVECSRC)gdevpdts.h:$(GLSRC)gxarith.h $(DEVVECSRC)gdevpdts.h:$(GLSRC)stat_.h -$(DEVVECSRC)gdevpdts.h:$(GLSRC)gxtmap.h -$(DEVVECSRC)gdevpdts.h:$(GLSRC)gsmemory.h $(DEVVECSRC)gdevpdts.h:$(GLSRC)gpsync.h -$(DEVVECSRC)gdevpdts.h:$(GLSRC)memory_.h +$(DEVVECSRC)gdevpdts.h:$(GLSRC)gsstype.h +$(DEVVECSRC)gdevpdts.h:$(GLSRC)gsmemory.h $(DEVVECSRC)gdevpdts.h:$(GLSRC)gpgetenv.h -$(DEVVECSRC)gdevpdts.h:$(GLSRC)gslibctx.h $(DEVVECSRC)gdevpdts.h:$(GLSRC)gscdefs.h -$(DEVVECSRC)gdevpdts.h:$(GLSRC)gs_dll_call.h -$(DEVVECSRC)gdevpdts.h:$(GLSRC)stdio_.h -$(DEVVECSRC)gdevpdts.h:$(GLSRC)gscompt.h -$(DEVVECSRC)gdevpdts.h:$(GLSRC)gsbittab.h +$(DEVVECSRC)gdevpdts.h:$(GLSRC)gslibctx.h $(DEVVECSRC)gdevpdts.h:$(GLSRC)gxcindex.h -$(DEVVECSRC)gdevpdts.h:$(GLSRC)gsgstate.h +$(DEVVECSRC)gdevpdts.h:$(GLSRC)stdio_.h +$(DEVVECSRC)gdevpdts.h:$(GLSRC)gsccode.h $(DEVVECSRC)gdevpdts.h:$(GLSRC)stdint_.h $(DEVVECSRC)gdevpdts.h:$(GLSRC)gssprintf.h -$(DEVVECSRC)gdevpdts.h:$(GLSRC)gsccode.h -$(DEVVECSRC)gdevpdts.h:$(GLSRC)std.h +$(DEVVECSRC)gdevpdts.h:$(GLSRC)gsbittab.h $(DEVVECSRC)gdevpdts.h:$(GLSRC)gstypes.h +$(DEVVECSRC)gdevpdts.h:$(GLSRC)std.h $(DEVVECSRC)gdevpdts.h:$(GLSRC)stdpre.h $(DEVVECSRC)gdevpdts.h:$(GLGEN)arch.h +$(DEVVECSRC)gdevpdts.h:$(GLSRC)gs_dll_call.h $(DEVVECSRC)gdevpdtt.h:$(DEVVECSRC)gdevpdts.h $(DEVVECSRC)gdevpdtt.h:$(DEVVECSRC)gdevpdtf.h $(DEVVECSRC)gdevpdtt.h:$(DEVVECSRC)gdevpdtx.h @@ -3888,367 +3933,367 @@ $(DEVVECSRC)gdevpdtt.h:$(DEVVECSRC)gdevpdfx.h $(DEVVECSRC)gdevpdtt.h:$(DEVVECSRC)gdevpsdf.h $(DEVVECSRC)gdevpdtt.h:$(GLSRC)gdevvec.h $(DEVVECSRC)gdevpdtt.h:$(GLSRC)gxgstate.h -$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gxline.h $(DEVVECSRC)gdevpdtt.h:$(GLSRC)gstrans.h -$(DEVVECSRC)gdevpdtt.h:$(GLSRC)sarc4.h +$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gdevp14.h +$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gxline.h $(DEVVECSRC)gdevpdtt.h:$(GLSRC)gsht1.h -$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gxfont.h -$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gdevbbox.h +$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gxcomp.h +$(DEVVECSRC)gdevpdtt.h:$(GLSRC)sarc4.h $(DEVVECSRC)gdevpdtt.h:$(GLSRC)math_.h $(DEVVECSRC)gdevpdtt.h:$(GLSRC)scfx.h -$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gdevp14.h +$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gdevbbox.h $(DEVVECSRC)gdevpdtt.h:$(GLSRC)gxcolor2.h +$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gxpcolor.h $(DEVVECSRC)gdevpdtt.h:$(GLSRC)spprint.h $(DEVVECSRC)gdevpdtt.h:$(GLSRC)spsdf.h -$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gxpcolor.h +$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gxdevmem.h +$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gxfont.h $(DEVVECSRC)gdevpdtt.h:$(GLSRC)gdevdevn.h -$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gsequivc.h $(DEVVECSRC)gdevpdtt.h:$(GLSRC)gspath.h -$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gxblend.h $(DEVVECSRC)gdevpdtt.h:$(GLSRC)gxclipsr.h -$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gxcomp.h -$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gxdcolor.h -$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gxmatrix.h $(DEVVECSRC)gdevpdtt.h:$(GLSRC)gsgdata.h -$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gxbitfmt.h +$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gxdcolor.h +$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gxblend.h $(DEVVECSRC)gdevpdtt.h:$(GLSRC)shc.h -$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gsgcache.h $(DEVVECSRC)gdevpdtt.h:$(GLSRC)gscolor2.h +$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gxmatrix.h $(DEVVECSRC)gdevpdtt.h:$(GLSRC)gxfapi.h -$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gscindex.h -$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gsnotify.h -$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gsfcmap.h $(DEVVECSRC)gdevpdtt.h:$(GLSRC)gxdevice.h -$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gsht.h +$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gsfcmap.h $(DEVVECSRC)gdevpdtt.h:$(GLSRC)gxcpath.h -$(DEVVECSRC)gdevpdtt.h:$(GLSRC)sa85x.h +$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gsht.h $(DEVVECSRC)gdevpdtt.h:$(GLSRC)gxiparam.h +$(DEVVECSRC)gdevpdtt.h:$(GLSRC)sa85x.h +$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gsequivc.h $(DEVVECSRC)gdevpdtt.h:$(GLSRC)sa85d.h -$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gxdevmem.h $(DEVVECSRC)gdevpdtt.h:$(GLSRC)gxdevcli.h $(DEVVECSRC)gdevpdtt.h:$(GLSRC)gxpcache.h +$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gscindex.h +$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gxcmap.h $(DEVVECSRC)gdevpdtt.h:$(GLSRC)gsptype1.h -$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gxtext.h $(DEVVECSRC)gdevpdtt.h:$(GLSRC)gscie.h +$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gxtext.h $(DEVVECSRC)gdevpdtt.h:$(GLSRC)gstext.h +$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gxstate.h $(DEVVECSRC)gdevpdtt.h:$(GLSRC)gsnamecl.h $(DEVVECSRC)gdevpdtt.h:$(GLSRC)gstparam.h -$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gxstate.h $(DEVVECSRC)gdevpdtt.h:$(GLSRC)gspcolor.h -$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gxfcache.h +$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gxfmap.h $(DEVVECSRC)gdevpdtt.h:$(GLSRC)stream.h -$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gxcspace.h -$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gsropt.h -$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gsfunc.h $(DEVVECSRC)gdevpdtt.h:$(GLSRC)gsmalloc.h -$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gxrplane.h +$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gsfunc.h +$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gxcspace.h +$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gxhldevc.h $(DEVVECSRC)gdevpdtt.h:$(GLSRC)gxctable.h $(DEVVECSRC)gdevpdtt.h:$(GLSRC)gxiodev.h -$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gsuid.h -$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gxcmap.h -$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gxhldevc.h $(DEVVECSRC)gdevpdtt.h:$(GLSRC)strimpl.h +$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gxrplane.h +$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gscsel.h +$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gxfcache.h +$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gsfont.h $(DEVVECSRC)gdevpdtt.h:$(GLSRC)gsimage.h $(DEVVECSRC)gdevpdtt.h:$(GLSRC)gsdcolor.h -$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gxdda.h $(DEVVECSRC)gdevpdtt.h:$(GLSRC)gxcvalue.h -$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gsfont.h -$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gxfmap.h +$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gxbcache.h +$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gsropt.h +$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gxdda.h +$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gxpath.h $(DEVVECSRC)gdevpdtt.h:$(GLSRC)gxiclass.h -$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gxftype.h $(DEVVECSRC)gdevpdtt.h:$(GLSRC)gxfrac.h +$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gxtmap.h +$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gxftype.h $(DEVVECSRC)gdevpdtt.h:$(GLSRC)gscms.h -$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gscspace.h -$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gxpath.h -$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gxbcache.h -$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gsdevice.h -$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gxarith.h -$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gxstdio.h -$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gspenum.h -$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gxhttile.h $(DEVVECSRC)gdevpdtt.h:$(GLSRC)gsrect.h $(DEVVECSRC)gdevpdtt.h:$(GLSRC)gslparam.h +$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gsdevice.h +$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gxbitfmt.h +$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gscpm.h +$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gsgcache.h +$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gscspace.h +$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gsgstate.h +$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gsnotify.h +$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gxstdio.h $(DEVVECSRC)gdevpdtt.h:$(GLSRC)gsxfont.h -$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gsiparam.h $(DEVVECSRC)gdevpdtt.h:$(GLSRC)gsdsrc.h $(DEVVECSRC)gdevpdtt.h:$(GLSRC)gsio.h -$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gxbitmap.h -$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gsmatrix.h -$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gscpm.h +$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gsiparam.h $(DEVVECSRC)gdevpdtt.h:$(GLSRC)gxfixed.h -$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gsrefct.h +$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gscompt.h +$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gsmatrix.h +$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gspenum.h +$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gxhttile.h $(DEVVECSRC)gdevpdtt.h:$(GLSRC)gsparam.h +$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gsrefct.h $(DEVVECSRC)gdevpdtt.h:$(GLSRC)gp.h -$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gsccolor.h +$(DEVVECSRC)gdevpdtt.h:$(GLSRC)memento.h +$(DEVVECSRC)gdevpdtt.h:$(GLSRC)memory_.h +$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gsuid.h $(DEVVECSRC)gdevpdtt.h:$(GLSRC)gsstruct.h $(DEVVECSRC)gdevpdtt.h:$(GLSRC)gxsync.h +$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gxbitmap.h +$(DEVVECSRC)gdevpdtt.h:$(GLSRC)vmsmath.h $(DEVVECSRC)gdevpdtt.h:$(GLSRC)srdline.h $(DEVVECSRC)gdevpdtt.h:$(GLSRC)scommon.h -$(DEVVECSRC)gdevpdtt.h:$(GLSRC)memento.h -$(DEVVECSRC)gdevpdtt.h:$(GLSRC)vmsmath.h -$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gscsel.h -$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gsbitmap.h $(DEVVECSRC)gdevpdtt.h:$(GLSRC)gsfname.h -$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gsstype.h +$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gsbitmap.h +$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gsccolor.h +$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gxarith.h $(DEVVECSRC)gdevpdtt.h:$(GLSRC)stat_.h -$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gxtmap.h -$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gsmemory.h $(DEVVECSRC)gdevpdtt.h:$(GLSRC)gpsync.h -$(DEVVECSRC)gdevpdtt.h:$(GLSRC)memory_.h +$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gsstype.h +$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gsmemory.h $(DEVVECSRC)gdevpdtt.h:$(GLSRC)gpgetenv.h -$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gslibctx.h $(DEVVECSRC)gdevpdtt.h:$(GLSRC)gscdefs.h -$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gs_dll_call.h -$(DEVVECSRC)gdevpdtt.h:$(GLSRC)stdio_.h -$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gscompt.h -$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gsbittab.h +$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gslibctx.h $(DEVVECSRC)gdevpdtt.h:$(GLSRC)gxcindex.h -$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gsgstate.h +$(DEVVECSRC)gdevpdtt.h:$(GLSRC)stdio_.h +$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gsccode.h $(DEVVECSRC)gdevpdtt.h:$(GLSRC)stdint_.h $(DEVVECSRC)gdevpdtt.h:$(GLSRC)gssprintf.h -$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gsccode.h -$(DEVVECSRC)gdevpdtt.h:$(GLSRC)std.h +$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gsbittab.h $(DEVVECSRC)gdevpdtt.h:$(GLSRC)gstypes.h +$(DEVVECSRC)gdevpdtt.h:$(GLSRC)std.h $(DEVVECSRC)gdevpdtt.h:$(GLSRC)stdpre.h $(DEVVECSRC)gdevpdtt.h:$(GLGEN)arch.h +$(DEVVECSRC)gdevpdtt.h:$(GLSRC)gs_dll_call.h $(DEVVECSRC)gdevpdtw.h:$(DEVVECSRC)gdevpdtx.h -$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gxfcmap.h $(DEVVECSRC)gdevpdtw.h:$(DEVVECSRC)gdevpdt.h $(DEVVECSRC)gdevpdtw.h:$(DEVVECSRC)gdevpdfx.h $(DEVVECSRC)gdevpdtw.h:$(DEVVECSRC)gdevpsdf.h $(DEVVECSRC)gdevpdtw.h:$(GLSRC)gdevvec.h $(DEVVECSRC)gdevpdtw.h:$(GLSRC)gxgstate.h -$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gxline.h $(DEVVECSRC)gdevpdtw.h:$(GLSRC)gstrans.h -$(DEVVECSRC)gdevpdtw.h:$(GLSRC)sarc4.h +$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gdevp14.h +$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gxline.h $(DEVVECSRC)gdevpdtw.h:$(GLSRC)gsht1.h -$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gxfont.h -$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gdevbbox.h +$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gxcomp.h +$(DEVVECSRC)gdevpdtw.h:$(GLSRC)sarc4.h $(DEVVECSRC)gdevpdtw.h:$(GLSRC)math_.h $(DEVVECSRC)gdevpdtw.h:$(GLSRC)scfx.h -$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gdevp14.h +$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gdevbbox.h $(DEVVECSRC)gdevpdtw.h:$(GLSRC)gxcolor2.h +$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gxpcolor.h $(DEVVECSRC)gdevpdtw.h:$(GLSRC)spprint.h $(DEVVECSRC)gdevpdtw.h:$(GLSRC)spsdf.h -$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gxpcolor.h +$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gxdevmem.h +$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gxfont.h $(DEVVECSRC)gdevpdtw.h:$(GLSRC)gdevdevn.h -$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gsequivc.h $(DEVVECSRC)gdevpdtw.h:$(GLSRC)gspath.h -$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gxblend.h $(DEVVECSRC)gdevpdtw.h:$(GLSRC)gxclipsr.h -$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gxcomp.h -$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gxdcolor.h -$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gxcid.h -$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gxmatrix.h $(DEVVECSRC)gdevpdtw.h:$(GLSRC)gsgdata.h -$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gxbitfmt.h +$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gxfcmap.h +$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gxdcolor.h +$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gxblend.h $(DEVVECSRC)gdevpdtw.h:$(GLSRC)shc.h -$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gsgcache.h $(DEVVECSRC)gdevpdtw.h:$(GLSRC)gscolor2.h +$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gxmatrix.h $(DEVVECSRC)gdevpdtw.h:$(GLSRC)gxfapi.h -$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gscindex.h -$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gsnotify.h -$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gsfcmap.h $(DEVVECSRC)gdevpdtw.h:$(GLSRC)gxdevice.h -$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gsht.h +$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gsfcmap.h $(DEVVECSRC)gdevpdtw.h:$(GLSRC)gxcpath.h -$(DEVVECSRC)gdevpdtw.h:$(GLSRC)sa85x.h +$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gsht.h $(DEVVECSRC)gdevpdtw.h:$(GLSRC)gxiparam.h +$(DEVVECSRC)gdevpdtw.h:$(GLSRC)sa85x.h +$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gsequivc.h $(DEVVECSRC)gdevpdtw.h:$(GLSRC)sa85d.h -$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gxdevmem.h $(DEVVECSRC)gdevpdtw.h:$(GLSRC)gxdevcli.h $(DEVVECSRC)gdevpdtw.h:$(GLSRC)gxpcache.h +$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gscindex.h +$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gxcmap.h $(DEVVECSRC)gdevpdtw.h:$(GLSRC)gsptype1.h -$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gxtext.h $(DEVVECSRC)gdevpdtw.h:$(GLSRC)gscie.h +$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gxtext.h $(DEVVECSRC)gdevpdtw.h:$(GLSRC)gstext.h +$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gxstate.h $(DEVVECSRC)gdevpdtw.h:$(GLSRC)gsnamecl.h $(DEVVECSRC)gdevpdtw.h:$(GLSRC)gstparam.h -$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gxstate.h $(DEVVECSRC)gdevpdtw.h:$(GLSRC)gspcolor.h -$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gxfcache.h +$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gxfmap.h $(DEVVECSRC)gdevpdtw.h:$(GLSRC)stream.h -$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gxcspace.h -$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gsropt.h -$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gsfunc.h $(DEVVECSRC)gdevpdtw.h:$(GLSRC)gsmalloc.h -$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gxrplane.h +$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gsfunc.h +$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gxcspace.h +$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gxhldevc.h $(DEVVECSRC)gdevpdtw.h:$(GLSRC)gxctable.h $(DEVVECSRC)gdevpdtw.h:$(GLSRC)gxiodev.h -$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gsuid.h -$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gxcmap.h -$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gxhldevc.h $(DEVVECSRC)gdevpdtw.h:$(GLSRC)strimpl.h +$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gxrplane.h +$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gscsel.h +$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gxfcache.h +$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gsfont.h $(DEVVECSRC)gdevpdtw.h:$(GLSRC)gsimage.h $(DEVVECSRC)gdevpdtw.h:$(GLSRC)gsdcolor.h -$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gxdda.h $(DEVVECSRC)gdevpdtw.h:$(GLSRC)gxcvalue.h -$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gsfont.h -$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gxfmap.h +$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gxbcache.h +$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gsropt.h +$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gxdda.h +$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gxpath.h $(DEVVECSRC)gdevpdtw.h:$(GLSRC)gxiclass.h -$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gxftype.h $(DEVVECSRC)gdevpdtw.h:$(GLSRC)gxfrac.h +$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gxtmap.h +$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gxftype.h $(DEVVECSRC)gdevpdtw.h:$(GLSRC)gscms.h -$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gscspace.h -$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gxpath.h -$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gxbcache.h -$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gsdevice.h -$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gxarith.h -$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gxstdio.h -$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gspenum.h -$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gxhttile.h $(DEVVECSRC)gdevpdtw.h:$(GLSRC)gsrect.h $(DEVVECSRC)gdevpdtw.h:$(GLSRC)gslparam.h +$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gsdevice.h +$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gxbitfmt.h +$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gscpm.h +$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gsgcache.h +$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gscspace.h +$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gsgstate.h +$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gsnotify.h +$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gxstdio.h $(DEVVECSRC)gdevpdtw.h:$(GLSRC)gsxfont.h -$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gsiparam.h +$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gxcid.h $(DEVVECSRC)gdevpdtw.h:$(GLSRC)gsdsrc.h $(DEVVECSRC)gdevpdtw.h:$(GLSRC)gsio.h -$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gxbitmap.h -$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gsmatrix.h -$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gscpm.h +$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gsiparam.h $(DEVVECSRC)gdevpdtw.h:$(GLSRC)gxfixed.h -$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gsrefct.h +$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gscompt.h +$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gsmatrix.h +$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gspenum.h +$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gxhttile.h $(DEVVECSRC)gdevpdtw.h:$(GLSRC)gsparam.h +$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gsrefct.h $(DEVVECSRC)gdevpdtw.h:$(GLSRC)gp.h -$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gsccolor.h +$(DEVVECSRC)gdevpdtw.h:$(GLSRC)memento.h +$(DEVVECSRC)gdevpdtw.h:$(GLSRC)memory_.h +$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gsuid.h $(DEVVECSRC)gdevpdtw.h:$(GLSRC)gsstruct.h $(DEVVECSRC)gdevpdtw.h:$(GLSRC)gxsync.h +$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gxbitmap.h +$(DEVVECSRC)gdevpdtw.h:$(GLSRC)vmsmath.h $(DEVVECSRC)gdevpdtw.h:$(GLSRC)srdline.h $(DEVVECSRC)gdevpdtw.h:$(GLSRC)scommon.h -$(DEVVECSRC)gdevpdtw.h:$(GLSRC)memento.h -$(DEVVECSRC)gdevpdtw.h:$(GLSRC)vmsmath.h -$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gscsel.h -$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gsbitmap.h $(DEVVECSRC)gdevpdtw.h:$(GLSRC)gsfname.h -$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gsstype.h +$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gsbitmap.h +$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gsccolor.h +$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gxarith.h $(DEVVECSRC)gdevpdtw.h:$(GLSRC)stat_.h -$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gxtmap.h -$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gsmemory.h $(DEVVECSRC)gdevpdtw.h:$(GLSRC)gpsync.h -$(DEVVECSRC)gdevpdtw.h:$(GLSRC)memory_.h +$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gsstype.h +$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gsmemory.h $(DEVVECSRC)gdevpdtw.h:$(GLSRC)gpgetenv.h -$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gslibctx.h $(DEVVECSRC)gdevpdtw.h:$(GLSRC)gscdefs.h -$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gs_dll_call.h -$(DEVVECSRC)gdevpdtw.h:$(GLSRC)stdio_.h -$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gscompt.h -$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gsbittab.h +$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gslibctx.h $(DEVVECSRC)gdevpdtw.h:$(GLSRC)gxcindex.h -$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gsgstate.h +$(DEVVECSRC)gdevpdtw.h:$(GLSRC)stdio_.h +$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gsccode.h $(DEVVECSRC)gdevpdtw.h:$(GLSRC)stdint_.h $(DEVVECSRC)gdevpdtw.h:$(GLSRC)gssprintf.h -$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gsccode.h -$(DEVVECSRC)gdevpdtw.h:$(GLSRC)std.h +$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gsbittab.h $(DEVVECSRC)gdevpdtw.h:$(GLSRC)gstypes.h +$(DEVVECSRC)gdevpdtw.h:$(GLSRC)std.h $(DEVVECSRC)gdevpdtw.h:$(GLSRC)stdpre.h $(DEVVECSRC)gdevpdtw.h:$(GLGEN)arch.h +$(DEVVECSRC)gdevpdtw.h:$(GLSRC)gs_dll_call.h $(DEVSRC)gdevbmp.h:$(GLSRC)gxclist.h $(DEVSRC)gdevbmp.h:$(GLSRC)gxgstate.h -$(DEVSRC)gdevbmp.h:$(GLSRC)gxline.h $(DEVSRC)gdevbmp.h:$(GLSRC)gstrans.h +$(DEVSRC)gdevbmp.h:$(GLSRC)gdevp14.h +$(DEVSRC)gdevbmp.h:$(GLSRC)gxline.h $(DEVSRC)gdevbmp.h:$(GLSRC)gsht1.h +$(DEVSRC)gdevbmp.h:$(GLSRC)gxcomp.h $(DEVSRC)gdevbmp.h:$(GLSRC)math_.h -$(DEVSRC)gdevbmp.h:$(GLSRC)gdevp14.h $(DEVSRC)gdevbmp.h:$(GLSRC)gxcolor2.h $(DEVSRC)gdevbmp.h:$(GLSRC)gxpcolor.h +$(DEVSRC)gdevbmp.h:$(GLSRC)gxdevmem.h $(DEVSRC)gdevbmp.h:$(GLSRC)gdevdevn.h -$(DEVSRC)gdevbmp.h:$(GLSRC)gsequivc.h -$(DEVSRC)gdevbmp.h:$(GLSRC)gxblend.h $(DEVSRC)gdevbmp.h:$(GLSRC)gxclipsr.h -$(DEVSRC)gdevbmp.h:$(GLSRC)gxcomp.h -$(DEVSRC)gdevbmp.h:$(GLSRC)gxdcolor.h -$(DEVSRC)gdevbmp.h:$(GLSRC)gxmatrix.h -$(DEVSRC)gdevbmp.h:$(GLSRC)gxbitfmt.h $(DEVSRC)gdevbmp.h:$(GLSRC)gxdevbuf.h +$(DEVSRC)gdevbmp.h:$(GLSRC)gxdcolor.h $(DEVSRC)gdevbmp.h:$(GLSRC)gxband.h +$(DEVSRC)gdevbmp.h:$(GLSRC)gxblend.h $(DEVSRC)gdevbmp.h:$(GLSRC)gscolor2.h -$(DEVSRC)gdevbmp.h:$(GLSRC)gscindex.h +$(DEVSRC)gdevbmp.h:$(GLSRC)gxmatrix.h $(DEVSRC)gdevbmp.h:$(GLSRC)gxdevice.h -$(DEVSRC)gdevbmp.h:$(GLSRC)gsht.h $(DEVSRC)gdevbmp.h:$(GLSRC)gxcpath.h -$(DEVSRC)gdevbmp.h:$(GLSRC)gxdevmem.h +$(DEVSRC)gdevbmp.h:$(GLSRC)gsht.h +$(DEVSRC)gdevbmp.h:$(GLSRC)gsequivc.h $(DEVSRC)gdevbmp.h:$(GLSRC)gxdevcli.h $(DEVSRC)gdevbmp.h:$(GLSRC)gxpcache.h +$(DEVSRC)gdevbmp.h:$(GLSRC)gscindex.h +$(DEVSRC)gdevbmp.h:$(GLSRC)gxcmap.h $(DEVSRC)gdevbmp.h:$(GLSRC)gsptype1.h -$(DEVSRC)gdevbmp.h:$(GLSRC)gxtext.h $(DEVSRC)gdevbmp.h:$(GLSRC)gscie.h +$(DEVSRC)gdevbmp.h:$(GLSRC)gxtext.h $(DEVSRC)gdevbmp.h:$(GLSRC)gstext.h +$(DEVSRC)gdevbmp.h:$(GLSRC)gxstate.h $(DEVSRC)gdevbmp.h:$(GLSRC)gsnamecl.h $(DEVSRC)gdevbmp.h:$(GLSRC)gstparam.h -$(DEVSRC)gdevbmp.h:$(GLSRC)gxstate.h $(DEVSRC)gdevbmp.h:$(GLSRC)gspcolor.h -$(DEVSRC)gdevbmp.h:$(GLSRC)gxfcache.h -$(DEVSRC)gdevbmp.h:$(GLSRC)gxcspace.h -$(DEVSRC)gdevbmp.h:$(GLSRC)gsropt.h -$(DEVSRC)gdevbmp.h:$(GLSRC)gsfunc.h +$(DEVSRC)gdevbmp.h:$(GLSRC)gxfmap.h $(DEVSRC)gdevbmp.h:$(GLSRC)gsmalloc.h -$(DEVSRC)gdevbmp.h:$(GLSRC)gxrplane.h +$(DEVSRC)gdevbmp.h:$(GLSRC)gsfunc.h +$(DEVSRC)gdevbmp.h:$(GLSRC)gxcspace.h $(DEVSRC)gdevbmp.h:$(GLSRC)gxctable.h -$(DEVSRC)gdevbmp.h:$(GLSRC)gsuid.h -$(DEVSRC)gdevbmp.h:$(GLSRC)gxcmap.h +$(DEVSRC)gdevbmp.h:$(GLSRC)gxrplane.h +$(DEVSRC)gdevbmp.h:$(GLSRC)gscsel.h +$(DEVSRC)gdevbmp.h:$(GLSRC)gxfcache.h +$(DEVSRC)gdevbmp.h:$(GLSRC)gsfont.h $(DEVSRC)gdevbmp.h:$(GLSRC)gsimage.h $(DEVSRC)gdevbmp.h:$(GLSRC)gsdcolor.h -$(DEVSRC)gdevbmp.h:$(GLSRC)gxdda.h $(DEVSRC)gdevbmp.h:$(GLSRC)gxcvalue.h -$(DEVSRC)gdevbmp.h:$(GLSRC)gsfont.h -$(DEVSRC)gdevbmp.h:$(GLSRC)gxfmap.h +$(DEVSRC)gdevbmp.h:$(GLSRC)gxbcache.h +$(DEVSRC)gdevbmp.h:$(GLSRC)gsropt.h +$(DEVSRC)gdevbmp.h:$(GLSRC)gxdda.h +$(DEVSRC)gdevbmp.h:$(GLSRC)gxpath.h $(DEVSRC)gdevbmp.h:$(GLSRC)gxiclass.h -$(DEVSRC)gdevbmp.h:$(GLSRC)gxftype.h $(DEVSRC)gdevbmp.h:$(GLSRC)gxfrac.h +$(DEVSRC)gdevbmp.h:$(GLSRC)gxtmap.h +$(DEVSRC)gdevbmp.h:$(GLSRC)gxftype.h $(DEVSRC)gdevbmp.h:$(GLSRC)gscms.h -$(DEVSRC)gdevbmp.h:$(GLSRC)gscspace.h -$(DEVSRC)gdevbmp.h:$(GLSRC)gxpath.h -$(DEVSRC)gdevbmp.h:$(GLSRC)gxbcache.h -$(DEVSRC)gdevbmp.h:$(GLSRC)gsdevice.h -$(DEVSRC)gdevbmp.h:$(GLSRC)gxarith.h -$(DEVSRC)gdevbmp.h:$(GLSRC)gxstdio.h -$(DEVSRC)gdevbmp.h:$(GLSRC)gspenum.h -$(DEVSRC)gdevbmp.h:$(GLSRC)gxhttile.h $(DEVSRC)gdevbmp.h:$(GLSRC)gsrect.h $(DEVSRC)gdevbmp.h:$(GLSRC)gslparam.h +$(DEVSRC)gdevbmp.h:$(GLSRC)gsdevice.h +$(DEVSRC)gdevbmp.h:$(GLSRC)gxbitfmt.h +$(DEVSRC)gdevbmp.h:$(GLSRC)gscpm.h +$(DEVSRC)gdevbmp.h:$(GLSRC)gscspace.h +$(DEVSRC)gdevbmp.h:$(GLSRC)gsgstate.h +$(DEVSRC)gdevbmp.h:$(GLSRC)gxstdio.h $(DEVSRC)gdevbmp.h:$(GLSRC)gsxfont.h -$(DEVSRC)gdevbmp.h:$(GLSRC)gxclio.h -$(DEVSRC)gdevbmp.h:$(GLSRC)gsiparam.h $(DEVSRC)gdevbmp.h:$(GLSRC)gsdsrc.h $(DEVSRC)gdevbmp.h:$(GLSRC)gsio.h -$(DEVSRC)gdevbmp.h:$(GLSRC)gxbitmap.h -$(DEVSRC)gdevbmp.h:$(GLSRC)gsmatrix.h -$(DEVSRC)gdevbmp.h:$(GLSRC)gscpm.h +$(DEVSRC)gdevbmp.h:$(GLSRC)gsiparam.h $(DEVSRC)gdevbmp.h:$(GLSRC)gxfixed.h -$(DEVSRC)gdevbmp.h:$(GLSRC)gsrefct.h +$(DEVSRC)gdevbmp.h:$(GLSRC)gxclio.h +$(DEVSRC)gdevbmp.h:$(GLSRC)gscompt.h +$(DEVSRC)gdevbmp.h:$(GLSRC)gsmatrix.h +$(DEVSRC)gdevbmp.h:$(GLSRC)gspenum.h +$(DEVSRC)gdevbmp.h:$(GLSRC)gxhttile.h $(DEVSRC)gdevbmp.h:$(GLSRC)gsparam.h +$(DEVSRC)gdevbmp.h:$(GLSRC)gsrefct.h $(DEVSRC)gdevbmp.h:$(GLSRC)gp.h -$(DEVSRC)gdevbmp.h:$(GLSRC)gsccolor.h +$(DEVSRC)gdevbmp.h:$(GLSRC)memento.h +$(DEVSRC)gdevbmp.h:$(GLSRC)memory_.h +$(DEVSRC)gdevbmp.h:$(GLSRC)gsuid.h $(DEVSRC)gdevbmp.h:$(GLSRC)gsstruct.h $(DEVSRC)gdevbmp.h:$(GLSRC)gxsync.h +$(DEVSRC)gdevbmp.h:$(GLSRC)gxbitmap.h +$(DEVSRC)gdevbmp.h:$(GLSRC)vmsmath.h $(DEVSRC)gdevbmp.h:$(GLSRC)srdline.h $(DEVSRC)gdevbmp.h:$(GLSRC)scommon.h -$(DEVSRC)gdevbmp.h:$(GLSRC)memento.h -$(DEVSRC)gdevbmp.h:$(GLSRC)vmsmath.h -$(DEVSRC)gdevbmp.h:$(GLSRC)gscsel.h -$(DEVSRC)gdevbmp.h:$(GLSRC)gsbitmap.h $(DEVSRC)gdevbmp.h:$(GLSRC)gsfname.h -$(DEVSRC)gdevbmp.h:$(GLSRC)gsstype.h +$(DEVSRC)gdevbmp.h:$(GLSRC)gsbitmap.h +$(DEVSRC)gdevbmp.h:$(GLSRC)gsccolor.h +$(DEVSRC)gdevbmp.h:$(GLSRC)gxarith.h $(DEVSRC)gdevbmp.h:$(GLSRC)stat_.h -$(DEVSRC)gdevbmp.h:$(GLSRC)gxtmap.h -$(DEVSRC)gdevbmp.h:$(GLSRC)gsmemory.h $(DEVSRC)gdevbmp.h:$(GLSRC)gpsync.h -$(DEVSRC)gdevbmp.h:$(GLSRC)memory_.h +$(DEVSRC)gdevbmp.h:$(GLSRC)gsstype.h +$(DEVSRC)gdevbmp.h:$(GLSRC)gsmemory.h $(DEVSRC)gdevbmp.h:$(GLSRC)gpgetenv.h -$(DEVSRC)gdevbmp.h:$(GLSRC)gslibctx.h $(DEVSRC)gdevbmp.h:$(GLSRC)gscdefs.h -$(DEVSRC)gdevbmp.h:$(GLSRC)gs_dll_call.h -$(DEVSRC)gdevbmp.h:$(GLSRC)stdio_.h -$(DEVSRC)gdevbmp.h:$(GLSRC)gscompt.h +$(DEVSRC)gdevbmp.h:$(GLSRC)gslibctx.h $(DEVSRC)gdevbmp.h:$(GLSRC)gxcindex.h -$(DEVSRC)gdevbmp.h:$(GLSRC)gsgstate.h +$(DEVSRC)gdevbmp.h:$(GLSRC)stdio_.h +$(DEVSRC)gdevbmp.h:$(GLSRC)gsccode.h $(DEVSRC)gdevbmp.h:$(GLSRC)stdint_.h $(DEVSRC)gdevbmp.h:$(GLSRC)gssprintf.h -$(DEVSRC)gdevbmp.h:$(GLSRC)gsccode.h -$(DEVSRC)gdevbmp.h:$(GLSRC)std.h $(DEVSRC)gdevbmp.h:$(GLSRC)gstypes.h +$(DEVSRC)gdevbmp.h:$(GLSRC)std.h $(DEVSRC)gdevbmp.h:$(GLSRC)stdpre.h $(DEVSRC)gdevbmp.h:$(GLGEN)arch.h +$(DEVSRC)gdevbmp.h:$(GLSRC)gs_dll_call.h $(DEVSRC)gdevpsd.h:$(GLSRC)gdevdevnprn.h $(DEVSRC)gdevpsd.h:$(GLSRC)gdevprn.h $(DEVSRC)gdevpsd.h:$(GLSRC)string_.h @@ -4257,117 +4302,117 @@ $(DEVSRC)gdevpsd.h:$(GLSRC)gxclthrd.h $(DEVSRC)gdevpsd.h:$(GLSRC)gxclpage.h $(DEVSRC)gdevpsd.h:$(GLSRC)gxclist.h $(DEVSRC)gdevpsd.h:$(GLSRC)gxgstate.h -$(DEVSRC)gdevpsd.h:$(GLSRC)gxline.h $(DEVSRC)gdevpsd.h:$(GLSRC)gstrans.h +$(DEVSRC)gdevpsd.h:$(GLSRC)gdevp14.h +$(DEVSRC)gdevpsd.h:$(GLSRC)gxline.h $(DEVSRC)gdevpsd.h:$(GLSRC)gsht1.h +$(DEVSRC)gdevpsd.h:$(GLSRC)gxcomp.h $(DEVSRC)gdevpsd.h:$(GLSRC)math_.h -$(DEVSRC)gdevpsd.h:$(GLSRC)gdevp14.h $(DEVSRC)gdevpsd.h:$(GLSRC)gxcolor2.h $(DEVSRC)gdevpsd.h:$(GLSRC)gxpcolor.h +$(DEVSRC)gdevpsd.h:$(GLSRC)gxdevmem.h $(DEVSRC)gdevpsd.h:$(GLSRC)gdevdevn.h -$(DEVSRC)gdevpsd.h:$(GLSRC)gsequivc.h $(DEVSRC)gdevpsd.h:$(GLSRC)gx.h -$(DEVSRC)gdevpsd.h:$(GLSRC)gxblend.h $(DEVSRC)gdevpsd.h:$(GLSRC)gxclipsr.h -$(DEVSRC)gdevpsd.h:$(GLSRC)gxcomp.h -$(DEVSRC)gdevpsd.h:$(GLSRC)gxdcolor.h $(DEVSRC)gdevpsd.h:$(GLSRC)gdebug.h -$(DEVSRC)gdevpsd.h:$(GLSRC)gxmatrix.h -$(DEVSRC)gdevpsd.h:$(GLSRC)gxbitfmt.h $(DEVSRC)gdevpsd.h:$(GLSRC)gxdevbuf.h +$(DEVSRC)gdevpsd.h:$(GLSRC)gxdcolor.h $(DEVSRC)gdevpsd.h:$(GLSRC)gxband.h +$(DEVSRC)gdevpsd.h:$(GLSRC)gxblend.h $(DEVSRC)gdevpsd.h:$(GLSRC)gscolor2.h -$(DEVSRC)gdevpsd.h:$(GLSRC)gscindex.h +$(DEVSRC)gdevpsd.h:$(GLSRC)gxmatrix.h $(DEVSRC)gdevpsd.h:$(GLSRC)gxdevice.h -$(DEVSRC)gdevpsd.h:$(GLSRC)gsht.h $(DEVSRC)gdevpsd.h:$(GLSRC)gxcpath.h -$(DEVSRC)gdevpsd.h:$(GLSRC)gxdevmem.h +$(DEVSRC)gdevpsd.h:$(GLSRC)gsht.h +$(DEVSRC)gdevpsd.h:$(GLSRC)gsequivc.h $(DEVSRC)gdevpsd.h:$(GLSRC)gxdevcli.h $(DEVSRC)gdevpsd.h:$(GLSRC)gxpcache.h +$(DEVSRC)gdevpsd.h:$(GLSRC)gscindex.h +$(DEVSRC)gdevpsd.h:$(GLSRC)gxcmap.h $(DEVSRC)gdevpsd.h:$(GLSRC)gsptype1.h -$(DEVSRC)gdevpsd.h:$(GLSRC)gxtext.h $(DEVSRC)gdevpsd.h:$(GLSRC)gscie.h +$(DEVSRC)gdevpsd.h:$(GLSRC)gxtext.h $(DEVSRC)gdevpsd.h:$(GLSRC)gstext.h +$(DEVSRC)gdevpsd.h:$(GLSRC)gxstate.h $(DEVSRC)gdevpsd.h:$(GLSRC)gsnamecl.h $(DEVSRC)gdevpsd.h:$(GLSRC)gstparam.h -$(DEVSRC)gdevpsd.h:$(GLSRC)gxstate.h $(DEVSRC)gdevpsd.h:$(GLSRC)gspcolor.h -$(DEVSRC)gdevpsd.h:$(GLSRC)gxfcache.h -$(DEVSRC)gdevpsd.h:$(GLSRC)gxcspace.h -$(DEVSRC)gdevpsd.h:$(GLSRC)gsropt.h -$(DEVSRC)gdevpsd.h:$(GLSRC)gsfunc.h +$(DEVSRC)gdevpsd.h:$(GLSRC)gxfmap.h $(DEVSRC)gdevpsd.h:$(GLSRC)gsmalloc.h -$(DEVSRC)gdevpsd.h:$(GLSRC)gxrplane.h +$(DEVSRC)gdevpsd.h:$(GLSRC)gsfunc.h +$(DEVSRC)gdevpsd.h:$(GLSRC)gxcspace.h $(DEVSRC)gdevpsd.h:$(GLSRC)gxctable.h -$(DEVSRC)gdevpsd.h:$(GLSRC)gsuid.h -$(DEVSRC)gdevpsd.h:$(GLSRC)gxcmap.h +$(DEVSRC)gdevpsd.h:$(GLSRC)gxrplane.h +$(DEVSRC)gdevpsd.h:$(GLSRC)gscsel.h +$(DEVSRC)gdevpsd.h:$(GLSRC)gxfcache.h +$(DEVSRC)gdevpsd.h:$(GLSRC)gsfont.h $(DEVSRC)gdevpsd.h:$(GLSRC)gsimage.h $(DEVSRC)gdevpsd.h:$(GLSRC)gsdcolor.h -$(DEVSRC)gdevpsd.h:$(GLSRC)gxdda.h $(DEVSRC)gdevpsd.h:$(GLSRC)gxcvalue.h -$(DEVSRC)gdevpsd.h:$(GLSRC)gsfont.h -$(DEVSRC)gdevpsd.h:$(GLSRC)gxfmap.h +$(DEVSRC)gdevpsd.h:$(GLSRC)gxbcache.h +$(DEVSRC)gdevpsd.h:$(GLSRC)gsropt.h +$(DEVSRC)gdevpsd.h:$(GLSRC)gxdda.h +$(DEVSRC)gdevpsd.h:$(GLSRC)gxpath.h $(DEVSRC)gdevpsd.h:$(GLSRC)gxiclass.h -$(DEVSRC)gdevpsd.h:$(GLSRC)gxftype.h $(DEVSRC)gdevpsd.h:$(GLSRC)gxfrac.h +$(DEVSRC)gdevpsd.h:$(GLSRC)gxtmap.h +$(DEVSRC)gdevpsd.h:$(GLSRC)gxftype.h $(DEVSRC)gdevpsd.h:$(GLSRC)gscms.h -$(DEVSRC)gdevpsd.h:$(GLSRC)gscspace.h -$(DEVSRC)gdevpsd.h:$(GLSRC)gxpath.h -$(DEVSRC)gdevpsd.h:$(GLSRC)gxbcache.h -$(DEVSRC)gdevpsd.h:$(GLSRC)gsdevice.h -$(DEVSRC)gdevpsd.h:$(GLSRC)gxarith.h -$(DEVSRC)gdevpsd.h:$(GLSRC)gxstdio.h -$(DEVSRC)gdevpsd.h:$(GLSRC)gspenum.h -$(DEVSRC)gdevpsd.h:$(GLSRC)gxhttile.h $(DEVSRC)gdevpsd.h:$(GLSRC)gsrect.h $(DEVSRC)gdevpsd.h:$(GLSRC)gslparam.h +$(DEVSRC)gdevpsd.h:$(GLSRC)gsdevice.h +$(DEVSRC)gdevpsd.h:$(GLSRC)gxbitfmt.h +$(DEVSRC)gdevpsd.h:$(GLSRC)gscpm.h +$(DEVSRC)gdevpsd.h:$(GLSRC)gscspace.h +$(DEVSRC)gdevpsd.h:$(GLSRC)gsgstate.h +$(DEVSRC)gdevpsd.h:$(GLSRC)gxstdio.h $(DEVSRC)gdevpsd.h:$(GLSRC)gsxfont.h -$(DEVSRC)gdevpsd.h:$(GLSRC)gxclio.h -$(DEVSRC)gdevpsd.h:$(GLSRC)gsiparam.h $(DEVSRC)gdevpsd.h:$(GLSRC)gsdsrc.h $(DEVSRC)gdevpsd.h:$(GLSRC)gsio.h -$(DEVSRC)gdevpsd.h:$(GLSRC)gxbitmap.h -$(DEVSRC)gdevpsd.h:$(GLSRC)gsmatrix.h -$(DEVSRC)gdevpsd.h:$(GLSRC)gscpm.h +$(DEVSRC)gdevpsd.h:$(GLSRC)gsiparam.h $(DEVSRC)gdevpsd.h:$(GLSRC)gxfixed.h -$(DEVSRC)gdevpsd.h:$(GLSRC)gsrefct.h +$(DEVSRC)gdevpsd.h:$(GLSRC)gxclio.h +$(DEVSRC)gdevpsd.h:$(GLSRC)gscompt.h +$(DEVSRC)gdevpsd.h:$(GLSRC)gsmatrix.h +$(DEVSRC)gdevpsd.h:$(GLSRC)gspenum.h +$(DEVSRC)gdevpsd.h:$(GLSRC)gxhttile.h $(DEVSRC)gdevpsd.h:$(GLSRC)gsparam.h +$(DEVSRC)gdevpsd.h:$(GLSRC)gsrefct.h $(DEVSRC)gdevpsd.h:$(GLSRC)gp.h -$(DEVSRC)gdevpsd.h:$(GLSRC)gsccolor.h -$(DEVSRC)gdevpsd.h:$(GLSRC)gsstruct.h -$(DEVSRC)gdevpsd.h:$(GLSRC)gxsync.h +$(DEVSRC)gdevpsd.h:$(GLSRC)memento.h +$(DEVSRC)gdevpsd.h:$(GLSRC)memory_.h $(DEVSRC)gdevpsd.h:$(GLSRC)gsutil.h +$(DEVSRC)gdevpsd.h:$(GLSRC)gsuid.h $(DEVSRC)gdevpsd.h:$(GLSRC)gsstrl.h +$(DEVSRC)gdevpsd.h:$(GLSRC)gsstruct.h $(DEVSRC)gdevpsd.h:$(GLSRC)gdbflags.h -$(DEVSRC)gdevpsd.h:$(GLSRC)srdline.h +$(DEVSRC)gdevpsd.h:$(GLSRC)gxsync.h $(DEVSRC)gdevpsd.h:$(GLSRC)gserrors.h -$(DEVSRC)gdevpsd.h:$(GLSRC)scommon.h -$(DEVSRC)gdevpsd.h:$(GLSRC)memento.h +$(DEVSRC)gdevpsd.h:$(GLSRC)gxbitmap.h $(DEVSRC)gdevpsd.h:$(GLSRC)vmsmath.h -$(DEVSRC)gdevpsd.h:$(GLSRC)gscsel.h -$(DEVSRC)gdevpsd.h:$(GLSRC)gsbitmap.h +$(DEVSRC)gdevpsd.h:$(GLSRC)srdline.h +$(DEVSRC)gdevpsd.h:$(GLSRC)scommon.h $(DEVSRC)gdevpsd.h:$(GLSRC)gsfname.h -$(DEVSRC)gdevpsd.h:$(GLSRC)gsstype.h +$(DEVSRC)gdevpsd.h:$(GLSRC)gsbitmap.h +$(DEVSRC)gdevpsd.h:$(GLSRC)gsccolor.h +$(DEVSRC)gdevpsd.h:$(GLSRC)gxarith.h $(DEVSRC)gdevpsd.h:$(GLSRC)stat_.h -$(DEVSRC)gdevpsd.h:$(GLSRC)gxtmap.h -$(DEVSRC)gdevpsd.h:$(GLSRC)gsmemory.h $(DEVSRC)gdevpsd.h:$(GLSRC)gpsync.h -$(DEVSRC)gdevpsd.h:$(GLSRC)memory_.h +$(DEVSRC)gdevpsd.h:$(GLSRC)gsstype.h +$(DEVSRC)gdevpsd.h:$(GLSRC)gsmemory.h $(DEVSRC)gdevpsd.h:$(GLSRC)gpgetenv.h -$(DEVSRC)gdevpsd.h:$(GLSRC)gslibctx.h $(DEVSRC)gdevpsd.h:$(GLSRC)gscdefs.h -$(DEVSRC)gdevpsd.h:$(GLSRC)gs_dll_call.h -$(DEVSRC)gdevpsd.h:$(GLSRC)stdio_.h -$(DEVSRC)gdevpsd.h:$(GLSRC)gscompt.h +$(DEVSRC)gdevpsd.h:$(GLSRC)gslibctx.h $(DEVSRC)gdevpsd.h:$(GLSRC)gxcindex.h -$(DEVSRC)gdevpsd.h:$(GLSRC)gsgstate.h +$(DEVSRC)gdevpsd.h:$(GLSRC)stdio_.h +$(DEVSRC)gdevpsd.h:$(GLSRC)gsccode.h $(DEVSRC)gdevpsd.h:$(GLSRC)stdint_.h $(DEVSRC)gdevpsd.h:$(GLSRC)gssprintf.h -$(DEVSRC)gdevpsd.h:$(GLSRC)gsccode.h -$(DEVSRC)gdevpsd.h:$(GLSRC)std.h $(DEVSRC)gdevpsd.h:$(GLSRC)gstypes.h +$(DEVSRC)gdevpsd.h:$(GLSRC)std.h $(DEVSRC)gdevpsd.h:$(GLSRC)stdpre.h $(DEVSRC)gdevpsd.h:$(GLGEN)arch.h +$(DEVSRC)gdevpsd.h:$(GLSRC)gs_dll_call.h $(DEVSRC)minftrsz.h:$(GLSRC)std.h $(DEVSRC)minftrsz.h:$(GLSRC)stdpre.h $(DEVSRC)minftrsz.h:$(GLGEN)arch.h @@ -4378,239 +4423,239 @@ $(DEVSRC)gdevfax.h:$(GLSRC)gxclthrd.h $(DEVSRC)gdevfax.h:$(GLSRC)gxclpage.h $(DEVSRC)gdevfax.h:$(GLSRC)gxclist.h $(DEVSRC)gdevfax.h:$(GLSRC)gxgstate.h -$(DEVSRC)gdevfax.h:$(GLSRC)gxline.h $(DEVSRC)gdevfax.h:$(GLSRC)gstrans.h +$(DEVSRC)gdevfax.h:$(GLSRC)gdevp14.h +$(DEVSRC)gdevfax.h:$(GLSRC)gxline.h $(DEVSRC)gdevfax.h:$(GLSRC)gsht1.h +$(DEVSRC)gdevfax.h:$(GLSRC)gxcomp.h $(DEVSRC)gdevfax.h:$(GLSRC)math_.h $(DEVSRC)gdevfax.h:$(GLSRC)scfx.h -$(DEVSRC)gdevfax.h:$(GLSRC)gdevp14.h $(DEVSRC)gdevfax.h:$(GLSRC)gxcolor2.h $(DEVSRC)gdevfax.h:$(GLSRC)gxpcolor.h +$(DEVSRC)gdevfax.h:$(GLSRC)gxdevmem.h $(DEVSRC)gdevfax.h:$(GLSRC)gdevdevn.h -$(DEVSRC)gdevfax.h:$(GLSRC)gsequivc.h $(DEVSRC)gdevfax.h:$(GLSRC)gx.h -$(DEVSRC)gdevfax.h:$(GLSRC)gxblend.h $(DEVSRC)gdevfax.h:$(GLSRC)gxclipsr.h -$(DEVSRC)gdevfax.h:$(GLSRC)gxcomp.h -$(DEVSRC)gdevfax.h:$(GLSRC)gxdcolor.h $(DEVSRC)gdevfax.h:$(GLSRC)gdebug.h -$(DEVSRC)gdevfax.h:$(GLSRC)gxmatrix.h -$(DEVSRC)gdevfax.h:$(GLSRC)gxbitfmt.h $(DEVSRC)gdevfax.h:$(GLSRC)gxdevbuf.h +$(DEVSRC)gdevfax.h:$(GLSRC)gxdcolor.h $(DEVSRC)gdevfax.h:$(GLSRC)gxband.h +$(DEVSRC)gdevfax.h:$(GLSRC)gxblend.h $(DEVSRC)gdevfax.h:$(GLSRC)shc.h $(DEVSRC)gdevfax.h:$(GLSRC)gscolor2.h -$(DEVSRC)gdevfax.h:$(GLSRC)gscindex.h +$(DEVSRC)gdevfax.h:$(GLSRC)gxmatrix.h $(DEVSRC)gdevfax.h:$(GLSRC)gxdevice.h -$(DEVSRC)gdevfax.h:$(GLSRC)gsht.h $(DEVSRC)gdevfax.h:$(GLSRC)gxcpath.h -$(DEVSRC)gdevfax.h:$(GLSRC)gxdevmem.h +$(DEVSRC)gdevfax.h:$(GLSRC)gsht.h +$(DEVSRC)gdevfax.h:$(GLSRC)gsequivc.h $(DEVSRC)gdevfax.h:$(GLSRC)gxdevcli.h $(DEVSRC)gdevfax.h:$(GLSRC)gxpcache.h +$(DEVSRC)gdevfax.h:$(GLSRC)gscindex.h +$(DEVSRC)gdevfax.h:$(GLSRC)gxcmap.h $(DEVSRC)gdevfax.h:$(GLSRC)gsptype1.h -$(DEVSRC)gdevfax.h:$(GLSRC)gxtext.h $(DEVSRC)gdevfax.h:$(GLSRC)gscie.h +$(DEVSRC)gdevfax.h:$(GLSRC)gxtext.h $(DEVSRC)gdevfax.h:$(GLSRC)gstext.h +$(DEVSRC)gdevfax.h:$(GLSRC)gxstate.h $(DEVSRC)gdevfax.h:$(GLSRC)gsnamecl.h $(DEVSRC)gdevfax.h:$(GLSRC)gstparam.h -$(DEVSRC)gdevfax.h:$(GLSRC)gxstate.h $(DEVSRC)gdevfax.h:$(GLSRC)gspcolor.h -$(DEVSRC)gdevfax.h:$(GLSRC)gxfcache.h -$(DEVSRC)gdevfax.h:$(GLSRC)gxcspace.h -$(DEVSRC)gdevfax.h:$(GLSRC)gsropt.h -$(DEVSRC)gdevfax.h:$(GLSRC)gsfunc.h +$(DEVSRC)gdevfax.h:$(GLSRC)gxfmap.h $(DEVSRC)gdevfax.h:$(GLSRC)gsmalloc.h -$(DEVSRC)gdevfax.h:$(GLSRC)gxrplane.h +$(DEVSRC)gdevfax.h:$(GLSRC)gsfunc.h +$(DEVSRC)gdevfax.h:$(GLSRC)gxcspace.h $(DEVSRC)gdevfax.h:$(GLSRC)gxctable.h -$(DEVSRC)gdevfax.h:$(GLSRC)gsuid.h -$(DEVSRC)gdevfax.h:$(GLSRC)gxcmap.h +$(DEVSRC)gdevfax.h:$(GLSRC)gxrplane.h +$(DEVSRC)gdevfax.h:$(GLSRC)gscsel.h +$(DEVSRC)gdevfax.h:$(GLSRC)gxfcache.h +$(DEVSRC)gdevfax.h:$(GLSRC)gsfont.h $(DEVSRC)gdevfax.h:$(GLSRC)gsimage.h $(DEVSRC)gdevfax.h:$(GLSRC)gsdcolor.h -$(DEVSRC)gdevfax.h:$(GLSRC)gxdda.h $(DEVSRC)gdevfax.h:$(GLSRC)gxcvalue.h -$(DEVSRC)gdevfax.h:$(GLSRC)gsfont.h -$(DEVSRC)gdevfax.h:$(GLSRC)gxfmap.h +$(DEVSRC)gdevfax.h:$(GLSRC)gxbcache.h +$(DEVSRC)gdevfax.h:$(GLSRC)gsropt.h +$(DEVSRC)gdevfax.h:$(GLSRC)gxdda.h +$(DEVSRC)gdevfax.h:$(GLSRC)gxpath.h $(DEVSRC)gdevfax.h:$(GLSRC)gxiclass.h -$(DEVSRC)gdevfax.h:$(GLSRC)gxftype.h $(DEVSRC)gdevfax.h:$(GLSRC)gxfrac.h +$(DEVSRC)gdevfax.h:$(GLSRC)gxtmap.h +$(DEVSRC)gdevfax.h:$(GLSRC)gxftype.h $(DEVSRC)gdevfax.h:$(GLSRC)gscms.h -$(DEVSRC)gdevfax.h:$(GLSRC)gscspace.h -$(DEVSRC)gdevfax.h:$(GLSRC)gxpath.h -$(DEVSRC)gdevfax.h:$(GLSRC)gxbcache.h -$(DEVSRC)gdevfax.h:$(GLSRC)gsdevice.h -$(DEVSRC)gdevfax.h:$(GLSRC)gxarith.h -$(DEVSRC)gdevfax.h:$(GLSRC)gxstdio.h -$(DEVSRC)gdevfax.h:$(GLSRC)gspenum.h -$(DEVSRC)gdevfax.h:$(GLSRC)gxhttile.h $(DEVSRC)gdevfax.h:$(GLSRC)gsrect.h $(DEVSRC)gdevfax.h:$(GLSRC)gslparam.h +$(DEVSRC)gdevfax.h:$(GLSRC)gsdevice.h +$(DEVSRC)gdevfax.h:$(GLSRC)gxbitfmt.h +$(DEVSRC)gdevfax.h:$(GLSRC)gscpm.h +$(DEVSRC)gdevfax.h:$(GLSRC)gscspace.h +$(DEVSRC)gdevfax.h:$(GLSRC)gsgstate.h +$(DEVSRC)gdevfax.h:$(GLSRC)gxstdio.h $(DEVSRC)gdevfax.h:$(GLSRC)gsxfont.h -$(DEVSRC)gdevfax.h:$(GLSRC)gxclio.h -$(DEVSRC)gdevfax.h:$(GLSRC)gsiparam.h $(DEVSRC)gdevfax.h:$(GLSRC)gsdsrc.h $(DEVSRC)gdevfax.h:$(GLSRC)gsio.h -$(DEVSRC)gdevfax.h:$(GLSRC)gxbitmap.h -$(DEVSRC)gdevfax.h:$(GLSRC)gsmatrix.h -$(DEVSRC)gdevfax.h:$(GLSRC)gscpm.h +$(DEVSRC)gdevfax.h:$(GLSRC)gsiparam.h $(DEVSRC)gdevfax.h:$(GLSRC)gxfixed.h -$(DEVSRC)gdevfax.h:$(GLSRC)gsrefct.h +$(DEVSRC)gdevfax.h:$(GLSRC)gxclio.h +$(DEVSRC)gdevfax.h:$(GLSRC)gscompt.h +$(DEVSRC)gdevfax.h:$(GLSRC)gsmatrix.h +$(DEVSRC)gdevfax.h:$(GLSRC)gspenum.h +$(DEVSRC)gdevfax.h:$(GLSRC)gxhttile.h $(DEVSRC)gdevfax.h:$(GLSRC)gsparam.h +$(DEVSRC)gdevfax.h:$(GLSRC)gsrefct.h $(DEVSRC)gdevfax.h:$(GLSRC)gp.h -$(DEVSRC)gdevfax.h:$(GLSRC)gsccolor.h -$(DEVSRC)gdevfax.h:$(GLSRC)gsstruct.h -$(DEVSRC)gdevfax.h:$(GLSRC)gxsync.h +$(DEVSRC)gdevfax.h:$(GLSRC)memento.h +$(DEVSRC)gdevfax.h:$(GLSRC)memory_.h $(DEVSRC)gdevfax.h:$(GLSRC)gsutil.h +$(DEVSRC)gdevfax.h:$(GLSRC)gsuid.h $(DEVSRC)gdevfax.h:$(GLSRC)gsstrl.h +$(DEVSRC)gdevfax.h:$(GLSRC)gsstruct.h $(DEVSRC)gdevfax.h:$(GLSRC)gdbflags.h -$(DEVSRC)gdevfax.h:$(GLSRC)srdline.h +$(DEVSRC)gdevfax.h:$(GLSRC)gxsync.h $(DEVSRC)gdevfax.h:$(GLSRC)gserrors.h -$(DEVSRC)gdevfax.h:$(GLSRC)scommon.h -$(DEVSRC)gdevfax.h:$(GLSRC)memento.h +$(DEVSRC)gdevfax.h:$(GLSRC)gxbitmap.h $(DEVSRC)gdevfax.h:$(GLSRC)vmsmath.h -$(DEVSRC)gdevfax.h:$(GLSRC)gscsel.h -$(DEVSRC)gdevfax.h:$(GLSRC)gsbitmap.h +$(DEVSRC)gdevfax.h:$(GLSRC)srdline.h +$(DEVSRC)gdevfax.h:$(GLSRC)scommon.h $(DEVSRC)gdevfax.h:$(GLSRC)gsfname.h -$(DEVSRC)gdevfax.h:$(GLSRC)gsstype.h +$(DEVSRC)gdevfax.h:$(GLSRC)gsbitmap.h +$(DEVSRC)gdevfax.h:$(GLSRC)gsccolor.h +$(DEVSRC)gdevfax.h:$(GLSRC)gxarith.h $(DEVSRC)gdevfax.h:$(GLSRC)stat_.h -$(DEVSRC)gdevfax.h:$(GLSRC)gxtmap.h -$(DEVSRC)gdevfax.h:$(GLSRC)gsmemory.h $(DEVSRC)gdevfax.h:$(GLSRC)gpsync.h -$(DEVSRC)gdevfax.h:$(GLSRC)memory_.h +$(DEVSRC)gdevfax.h:$(GLSRC)gsstype.h +$(DEVSRC)gdevfax.h:$(GLSRC)gsmemory.h $(DEVSRC)gdevfax.h:$(GLSRC)gpgetenv.h -$(DEVSRC)gdevfax.h:$(GLSRC)gslibctx.h $(DEVSRC)gdevfax.h:$(GLSRC)gscdefs.h -$(DEVSRC)gdevfax.h:$(GLSRC)gs_dll_call.h -$(DEVSRC)gdevfax.h:$(GLSRC)stdio_.h -$(DEVSRC)gdevfax.h:$(GLSRC)gscompt.h -$(DEVSRC)gdevfax.h:$(GLSRC)gsbittab.h +$(DEVSRC)gdevfax.h:$(GLSRC)gslibctx.h $(DEVSRC)gdevfax.h:$(GLSRC)gxcindex.h -$(DEVSRC)gdevfax.h:$(GLSRC)gsgstate.h +$(DEVSRC)gdevfax.h:$(GLSRC)stdio_.h +$(DEVSRC)gdevfax.h:$(GLSRC)gsccode.h $(DEVSRC)gdevfax.h:$(GLSRC)stdint_.h $(DEVSRC)gdevfax.h:$(GLSRC)gssprintf.h -$(DEVSRC)gdevfax.h:$(GLSRC)gsccode.h -$(DEVSRC)gdevfax.h:$(GLSRC)std.h +$(DEVSRC)gdevfax.h:$(GLSRC)gsbittab.h $(DEVSRC)gdevfax.h:$(GLSRC)gstypes.h +$(DEVSRC)gdevfax.h:$(GLSRC)std.h $(DEVSRC)gdevfax.h:$(GLSRC)stdpre.h $(DEVSRC)gdevfax.h:$(GLGEN)arch.h -$(DEVSRC)gdevtifs.h:$(GLSRC)gdevprn.h +$(DEVSRC)gdevfax.h:$(GLSRC)gs_dll_call.h $(DEVSRC)gdevtifs.h:$(GLSRC)gxdownscale.h +$(DEVSRC)gdevtifs.h:$(GLSRC)gdevprn.h $(DEVSRC)gdevtifs.h:$(GLSRC)string_.h $(DEVSRC)gdevtifs.h:$(GLSRC)gsstrtok.h $(DEVSRC)gdevtifs.h:$(GLSRC)gxclthrd.h $(DEVSRC)gdevtifs.h:$(GLSRC)gxclpage.h $(DEVSRC)gdevtifs.h:$(GLSRC)gxclist.h $(DEVSRC)gdevtifs.h:$(GLSRC)gxgstate.h -$(DEVSRC)gdevtifs.h:$(GLSRC)gxline.h $(DEVSRC)gdevtifs.h:$(GLSRC)gstrans.h +$(DEVSRC)gdevtifs.h:$(GLSRC)gdevp14.h +$(DEVSRC)gdevtifs.h:$(GLSRC)gxline.h $(DEVSRC)gdevtifs.h:$(GLSRC)gxgetbit.h $(DEVSRC)gdevtifs.h:$(GLSRC)gsht1.h +$(DEVSRC)gdevtifs.h:$(GLSRC)gxcomp.h $(DEVSRC)gdevtifs.h:$(GLSRC)math_.h -$(DEVSRC)gdevtifs.h:$(GLSRC)gdevp14.h $(DEVSRC)gdevtifs.h:$(GLSRC)gxcolor2.h $(DEVSRC)gdevtifs.h:$(GLSRC)gxpcolor.h +$(DEVSRC)gdevtifs.h:$(GLSRC)gxdevmem.h $(DEVSRC)gdevtifs.h:$(GLSRC)gdevdevn.h -$(DEVSRC)gdevtifs.h:$(GLSRC)gsequivc.h $(DEVSRC)gdevtifs.h:$(GLSRC)gx.h -$(DEVSRC)gdevtifs.h:$(GLSRC)gxblend.h $(DEVSRC)gdevtifs.h:$(GLSRC)gxclipsr.h -$(DEVSRC)gdevtifs.h:$(GLSRC)gxcomp.h -$(DEVSRC)gdevtifs.h:$(GLSRC)gxdcolor.h $(DEVSRC)gdevtifs.h:$(GLSRC)gdebug.h -$(DEVSRC)gdevtifs.h:$(GLSRC)gxmatrix.h -$(DEVSRC)gdevtifs.h:$(GLSRC)gxbitfmt.h $(DEVSRC)gdevtifs.h:$(GLSRC)gxdevbuf.h +$(DEVSRC)gdevtifs.h:$(GLSRC)gxdcolor.h $(DEVSRC)gdevtifs.h:$(GLSRC)gxband.h +$(DEVSRC)gdevtifs.h:$(GLSRC)gxblend.h $(DEVSRC)gdevtifs.h:$(GLSRC)gscolor2.h -$(DEVSRC)gdevtifs.h:$(GLSRC)gscindex.h +$(DEVSRC)gdevtifs.h:$(GLSRC)gxmatrix.h $(DEVSRC)gdevtifs.h:$(GLSRC)gxdevice.h -$(DEVSRC)gdevtifs.h:$(GLSRC)gsht.h $(DEVSRC)gdevtifs.h:$(GLSRC)gxcpath.h -$(DEVSRC)gdevtifs.h:$(GLSRC)gxdevmem.h +$(DEVSRC)gdevtifs.h:$(GLSRC)gsht.h +$(DEVSRC)gdevtifs.h:$(GLSRC)gsequivc.h $(DEVSRC)gdevtifs.h:$(GLSRC)gxdevcli.h $(DEVSRC)gdevtifs.h:$(GLSRC)gxpcache.h +$(DEVSRC)gdevtifs.h:$(GLSRC)gscindex.h +$(DEVSRC)gdevtifs.h:$(GLSRC)gxcmap.h $(DEVSRC)gdevtifs.h:$(GLSRC)gsptype1.h -$(DEVSRC)gdevtifs.h:$(GLSRC)gxtext.h $(DEVSRC)gdevtifs.h:$(GLSRC)gscie.h +$(DEVSRC)gdevtifs.h:$(GLSRC)gxtext.h $(DEVSRC)gdevtifs.h:$(GLSRC)gstext.h +$(DEVSRC)gdevtifs.h:$(GLSRC)gxstate.h $(DEVSRC)gdevtifs.h:$(GLSRC)gsnamecl.h $(DEVSRC)gdevtifs.h:$(GLSRC)gstparam.h -$(DEVSRC)gdevtifs.h:$(GLSRC)gxstate.h $(DEVSRC)gdevtifs.h:$(GLSRC)gspcolor.h -$(DEVSRC)gdevtifs.h:$(GLSRC)gxfcache.h -$(DEVSRC)gdevtifs.h:$(GLSRC)gxcspace.h -$(DEVSRC)gdevtifs.h:$(GLSRC)gsropt.h -$(DEVSRC)gdevtifs.h:$(GLSRC)gsfunc.h +$(DEVSRC)gdevtifs.h:$(GLSRC)gxfmap.h $(DEVSRC)gdevtifs.h:$(GLSRC)gsmalloc.h -$(DEVSRC)gdevtifs.h:$(GLSRC)gxrplane.h +$(DEVSRC)gdevtifs.h:$(GLSRC)gsfunc.h +$(DEVSRC)gdevtifs.h:$(GLSRC)gxcspace.h $(DEVSRC)gdevtifs.h:$(GLSRC)gxctable.h -$(DEVSRC)gdevtifs.h:$(GLSRC)gsuid.h -$(DEVSRC)gdevtifs.h:$(GLSRC)gxcmap.h +$(DEVSRC)gdevtifs.h:$(GLSRC)gxrplane.h +$(DEVSRC)gdevtifs.h:$(GLSRC)gscsel.h +$(DEVSRC)gdevtifs.h:$(GLSRC)gxfcache.h +$(DEVSRC)gdevtifs.h:$(GLSRC)gsfont.h $(DEVSRC)gdevtifs.h:$(GLSRC)gsimage.h $(DEVSRC)gdevtifs.h:$(GLSRC)gsdcolor.h -$(DEVSRC)gdevtifs.h:$(GLSRC)gxdda.h $(DEVSRC)gdevtifs.h:$(GLSRC)gxcvalue.h -$(DEVSRC)gdevtifs.h:$(GLSRC)gsfont.h -$(DEVSRC)gdevtifs.h:$(GLSRC)gxfmap.h +$(DEVSRC)gdevtifs.h:$(GLSRC)gxbcache.h +$(DEVSRC)gdevtifs.h:$(GLSRC)gsropt.h +$(DEVSRC)gdevtifs.h:$(GLSRC)gxdda.h +$(DEVSRC)gdevtifs.h:$(GLSRC)gxpath.h $(DEVSRC)gdevtifs.h:$(GLSRC)gxiclass.h -$(DEVSRC)gdevtifs.h:$(GLSRC)gxftype.h $(DEVSRC)gdevtifs.h:$(GLSRC)gxfrac.h +$(DEVSRC)gdevtifs.h:$(GLSRC)gxtmap.h +$(DEVSRC)gdevtifs.h:$(GLSRC)gxftype.h $(DEVSRC)gdevtifs.h:$(GLSRC)gscms.h -$(DEVSRC)gdevtifs.h:$(GLSRC)gscspace.h -$(DEVSRC)gdevtifs.h:$(GLSRC)gxpath.h -$(DEVSRC)gdevtifs.h:$(GLSRC)gxbcache.h -$(DEVSRC)gdevtifs.h:$(GLSRC)gsdevice.h -$(DEVSRC)gdevtifs.h:$(GLSRC)gxarith.h -$(DEVSRC)gdevtifs.h:$(GLSRC)gxstdio.h -$(DEVSRC)gdevtifs.h:$(GLSRC)gspenum.h -$(DEVSRC)gdevtifs.h:$(GLSRC)gxhttile.h $(DEVSRC)gdevtifs.h:$(GLSRC)gsrect.h $(DEVSRC)gdevtifs.h:$(GLSRC)gslparam.h +$(DEVSRC)gdevtifs.h:$(GLSRC)gsdevice.h +$(DEVSRC)gdevtifs.h:$(GLSRC)gxbitfmt.h +$(DEVSRC)gdevtifs.h:$(GLSRC)gscpm.h +$(DEVSRC)gdevtifs.h:$(GLSRC)gscspace.h +$(DEVSRC)gdevtifs.h:$(GLSRC)gsgstate.h +$(DEVSRC)gdevtifs.h:$(GLSRC)gxstdio.h $(DEVSRC)gdevtifs.h:$(GLSRC)gsxfont.h -$(DEVSRC)gdevtifs.h:$(GLSRC)gxclio.h -$(DEVSRC)gdevtifs.h:$(GLSRC)gsiparam.h $(DEVSRC)gdevtifs.h:$(GLSRC)gsdsrc.h $(DEVSRC)gdevtifs.h:$(GLSRC)gsio.h -$(DEVSRC)gdevtifs.h:$(GLSRC)gxbitmap.h -$(DEVSRC)gdevtifs.h:$(GLSRC)gsmatrix.h -$(DEVSRC)gdevtifs.h:$(GLSRC)gscpm.h +$(DEVSRC)gdevtifs.h:$(GLSRC)gsiparam.h $(DEVSRC)gdevtifs.h:$(GLSRC)gxfixed.h -$(DEVSRC)gdevtifs.h:$(GLSRC)gsrefct.h +$(DEVSRC)gdevtifs.h:$(GLSRC)gxclio.h +$(DEVSRC)gdevtifs.h:$(GLSRC)gscompt.h +$(DEVSRC)gdevtifs.h:$(GLSRC)gsmatrix.h +$(DEVSRC)gdevtifs.h:$(GLSRC)gspenum.h +$(DEVSRC)gdevtifs.h:$(GLSRC)gxhttile.h $(DEVSRC)gdevtifs.h:$(GLSRC)gsparam.h +$(DEVSRC)gdevtifs.h:$(GLSRC)gsrefct.h $(DEVSRC)gdevtifs.h:$(GLSRC)gp.h -$(DEVSRC)gdevtifs.h:$(GLSRC)gsccolor.h -$(DEVSRC)gdevtifs.h:$(GLSRC)gsstruct.h -$(DEVSRC)gdevtifs.h:$(GLSRC)gxsync.h +$(DEVSRC)gdevtifs.h:$(GLSRC)memento.h +$(DEVSRC)gdevtifs.h:$(GLSRC)memory_.h $(DEVSRC)gdevtifs.h:$(GLSRC)gsutil.h +$(DEVSRC)gdevtifs.h:$(GLSRC)gsuid.h $(DEVSRC)gdevtifs.h:$(GLSRC)gsstrl.h +$(DEVSRC)gdevtifs.h:$(GLSRC)gsstruct.h $(DEVSRC)gdevtifs.h:$(GLSRC)gdbflags.h -$(DEVSRC)gdevtifs.h:$(GLSRC)srdline.h -$(DEVSRC)gdevtifs.h:$(GLSRC)claptrap.h +$(DEVSRC)gdevtifs.h:$(GLSRC)gxsync.h $(DEVSRC)gdevtifs.h:$(GLSRC)gserrors.h -$(DEVSRC)gdevtifs.h:$(GLSRC)scommon.h -$(DEVSRC)gdevtifs.h:$(GLSRC)memento.h +$(DEVSRC)gdevtifs.h:$(GLSRC)gxbitmap.h +$(DEVSRC)gdevtifs.h:$(GLSRC)claptrap.h $(DEVSRC)gdevtifs.h:$(GLSRC)vmsmath.h -$(DEVSRC)gdevtifs.h:$(GLSRC)gscsel.h -$(DEVSRC)gdevtifs.h:$(GLSRC)gsbitmap.h +$(DEVSRC)gdevtifs.h:$(GLSRC)srdline.h +$(DEVSRC)gdevtifs.h:$(GLSRC)scommon.h $(DEVSRC)gdevtifs.h:$(GLSRC)gsfname.h -$(DEVSRC)gdevtifs.h:$(GLSRC)gsstype.h +$(DEVSRC)gdevtifs.h:$(GLSRC)gsbitmap.h +$(DEVSRC)gdevtifs.h:$(GLSRC)gsccolor.h +$(DEVSRC)gdevtifs.h:$(GLSRC)gxarith.h $(DEVSRC)gdevtifs.h:$(GLSRC)stat_.h -$(DEVSRC)gdevtifs.h:$(GLSRC)gxtmap.h -$(DEVSRC)gdevtifs.h:$(GLSRC)gsmemory.h $(DEVSRC)gdevtifs.h:$(GLSRC)gpsync.h -$(DEVSRC)gdevtifs.h:$(GLSRC)memory_.h +$(DEVSRC)gdevtifs.h:$(GLSRC)gsstype.h +$(DEVSRC)gdevtifs.h:$(GLSRC)gsmemory.h $(DEVSRC)gdevtifs.h:$(GLSRC)gpgetenv.h -$(DEVSRC)gdevtifs.h:$(GLSRC)gslibctx.h $(DEVSRC)gdevtifs.h:$(GLSRC)gscdefs.h -$(DEVSRC)gdevtifs.h:$(GLSRC)gs_dll_call.h +$(DEVSRC)gdevtifs.h:$(GLSRC)gslibctx.h $(DEVSRC)gdevtifs.h:$(GLSRC)ctype_.h -$(DEVSRC)gdevtifs.h:$(GLSRC)stdio_.h -$(DEVSRC)gdevtifs.h:$(GLSRC)gscompt.h $(DEVSRC)gdevtifs.h:$(GLSRC)gxcindex.h -$(DEVSRC)gdevtifs.h:$(GLSRC)gsgstate.h +$(DEVSRC)gdevtifs.h:$(GLSRC)stdio_.h +$(DEVSRC)gdevtifs.h:$(GLSRC)gsccode.h $(DEVSRC)gdevtifs.h:$(GLSRC)stdint_.h $(DEVSRC)gdevtifs.h:$(GLSRC)gssprintf.h -$(DEVSRC)gdevtifs.h:$(GLSRC)gsccode.h -$(DEVSRC)gdevtifs.h:$(GLSRC)std.h $(DEVSRC)gdevtifs.h:$(GLSRC)gstypes.h +$(DEVSRC)gdevtifs.h:$(GLSRC)std.h $(DEVSRC)gdevtifs.h:$(GLSRC)stdpre.h $(DEVSRC)gdevtifs.h:$(GLGEN)arch.h +$(DEVSRC)gdevtifs.h:$(GLSRC)gs_dll_call.h diff --git a/devices/gdev3852.c b/devices/gdev3852.c index 84388357..32649bd1 100644 --- a/devices/gdev3852.c +++ b/devices/gdev3852.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/gdev4081.c b/devices/gdev4081.c index bd5c52d8..6a715b8b 100644 --- a/devices/gdev4081.c +++ b/devices/gdev4081.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/gdev8510.c b/devices/gdev8510.c index a7b16b54..ad5c6978 100644 --- a/devices/gdev8510.c +++ b/devices/gdev8510.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/gdev8bcm.c b/devices/gdev8bcm.c index 5f5addc6..0adb7963 100644 --- a/devices/gdev8bcm.c +++ b/devices/gdev8bcm.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/gdev8bcm.h b/devices/gdev8bcm.h index cc7b98ce..4b30675a 100644 --- a/devices/gdev8bcm.h +++ b/devices/gdev8bcm.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/gdevatx.c b/devices/gdevatx.c index aa5462ce..aaf22a5e 100644 --- a/devices/gdevatx.c +++ b/devices/gdevatx.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/gdevbit.c b/devices/gdevbit.c index d0c7711e..86786fb9 100644 --- a/devices/gdevbit.c +++ b/devices/gdevbit.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or @@ -347,7 +347,7 @@ const gx_device_bit gs_bitrgbtags_device = gx_default_end_page }, /* page_procs */ { 0 }, /* procs */ - { 0 }, /* skip */ + GX_CLIST_MUTATABLE_DEVICE_DEFAULTS, { bittags_print_page, gx_default_print_page_copies, @@ -364,17 +364,11 @@ const gx_device_bit gs_bitrgbtags_device = -1, /* Duplex_set */ false, /* file_is_new */ NULL, /* file */ - 0, /* buffer_space */ - NULL, /* buf */ - NULL, /* buffer_memory */ - NULL, /* bandlist_memory */ - 0, /* clist_disable_mask */ false, /* bg_print_requested */ {0}, /* bg_print */ 0, /* num_render_threads_requested */ NULL, /* saved_pages_list */ - {0}, /* save_procs_while_delaying_erasepage */ - {0} /* orig_procs */ + {0} /* save_procs_while_delaying_erasepage */ }; static void diff --git a/devices/gdevbj10.c b/devices/gdevbj10.c index 3423ebc5..cbb9c469 100644 --- a/devices/gdevbj10.c +++ b/devices/gdevbj10.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/gdevbjc.h b/devices/gdevbjc.h index fbf676aa..9d58211e 100644 --- a/devices/gdevbjc.h +++ b/devices/gdevbjc.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/gdevbjcl.c b/devices/gdevbjcl.c index 4034aef9..4692266b 100644 --- a/devices/gdevbjcl.c +++ b/devices/gdevbjcl.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/gdevbjcl.h b/devices/gdevbjcl.h index 05c3d1ed..a3bc9987 100644 --- a/devices/gdevbjcl.h +++ b/devices/gdevbjcl.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/gdevbmp.c b/devices/gdevbmp.c index f8ce596e..14033dca 100644 --- a/devices/gdevbmp.c +++ b/devices/gdevbmp.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/gdevbmp.h b/devices/gdevbmp.h index b7cb97f9..aec8f12c 100644 --- a/devices/gdevbmp.h +++ b/devices/gdevbmp.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/gdevbmpc.c b/devices/gdevbmpc.c index 4741d55e..81b2abd6 100644 --- a/devices/gdevbmpc.c +++ b/devices/gdevbmpc.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/gdevccr.c b/devices/gdevccr.c index 2080d785..5c9b7098 100644 --- a/devices/gdevccr.c +++ b/devices/gdevccr.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/gdevcdj.c b/devices/gdevcdj.c index 50a1d62c..ce74cc29 100644 --- a/devices/gdevcdj.c +++ b/devices/gdevcdj.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or @@ -2150,7 +2150,7 @@ hp_colour_print_page(gx_device_printer * pdev, gp_file * prn_stream, int ptype) ep_p += plane_size; } /* Make a sentinel and align to word size. */ - eg.print_buf = (byte *)((word)(ep_p + sizeof(word)) & ~(sizeof(word)-1)); + eg.print_buf = (byte *)((intptr_t)(ep_p + sizeof(word)) & ~(sizeof(word)-1)); } eg.num_comps = num_comps; } @@ -3312,8 +3312,8 @@ cdj_set_bpp(gx_device *pdev, int bpp, int ccomps) gs_closedevice(pdev); } if (pdev->is_open) { - int code; /* Return code */ - gdev_prn_space_params sp; /* Space parameter data */ + int code; /* Return code */ + gdev_space_params sp; /* Space parameter data */ /* Reallocate memory for device */ sp = ((gx_device_printer *)pdev)->space_params; diff --git a/devices/gdevcfax.c b/devices/gdevcfax.c index 6f6419ae..a6d0db44 100644 --- a/devices/gdevcfax.c +++ b/devices/gdevcfax.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/gdevchameleon.c b/devices/gdevchameleon.c index 1a470972..74421244 100644 --- a/devices/gdevchameleon.c +++ b/devices/gdevchameleon.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or @@ -636,19 +636,16 @@ chameleon_print_page(gx_device_printer * pdev, gp_file * prn_stream) return gs_error_rangecheck; } - code = gx_downscaler_init_trapped_cm_halftone - (&ds, - (gx_device *)pdev, - pcdev->bpc, - pcdev->dst_bpc, - pcdev->num_components, - pcdev->downscale.downscale_factor, - pcdev->downscale.min_feature_size, - NULL, 0, /* Adjust width */ - 0, 0, NULL, /* Trapping w/h/comp_order */ - col_convert, col_convert_arg, /* Color Management */ - pcdev->dst_num_components, - default_ht); + code = gx_downscaler_init_cm_halftone(&ds, + (gx_device *)pdev, + pcdev->bpc, + pcdev->dst_bpc, + pcdev->num_components, + &pcdev->downscale, + NULL, 0, /* Adjust width */ + col_convert, col_convert_arg, /* Color Management */ + pcdev->dst_num_components, + default_ht); if (code < 0) goto cleanup; diff --git a/devices/gdevcif.c b/devices/gdevcif.c index 66f61ce3..d2e09b79 100644 --- a/devices/gdevcif.c +++ b/devices/gdevcif.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/gdevclj.c b/devices/gdevclj.c index 542bb8ed..4c5ffb7b 100644 --- a/devices/gdevclj.c +++ b/devices/gdevclj.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/gdevcljc.c b/devices/gdevcljc.c index 65933260..15405cbd 100644 --- a/devices/gdevcljc.c +++ b/devices/gdevcljc.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/gdevcmykog.c b/devices/gdevcmykog.c index d2f0442a..4330258e 100644 --- a/devices/gdevcmykog.c +++ b/devices/gdevcmykog.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or @@ -225,7 +225,7 @@ cmykog_dev_spec_op(gx_device *dev_, int op, void *data, int datasize) if (code != gs_error_undefined) return code; } - if (op == gxdso_supports_devn) { + if (op == gxdso_supports_devn || op == gxdso_skip_icc_component_validation) { return true; } return gdev_prn_dev_spec_op(dev_, op, data, datasize); diff --git a/devices/gdevcslw.c b/devices/gdevcslw.c index 471a82e4..4ded7ccd 100644 --- a/devices/gdevcslw.c +++ b/devices/gdevcslw.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/gdevdfax.c b/devices/gdevdfax.c index cfd2a696..3d2a579f 100644 --- a/devices/gdevdfax.c +++ b/devices/gdevdfax.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/gdevdjet.c b/devices/gdevdjet.c index 3ea96599..ea81dead 100644 --- a/devices/gdevdjet.c +++ b/devices/gdevdjet.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/gdevdjtc.c b/devices/gdevdjtc.c index 5fb1a4ba..a0ffe625 100644 --- a/devices/gdevdjtc.c +++ b/devices/gdevdjtc.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/gdevdljm.c b/devices/gdevdljm.c index 876b1dbb..fa859164 100644 --- a/devices/gdevdljm.c +++ b/devices/gdevdljm.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/gdevdljm.h b/devices/gdevdljm.h index 1481b827..679bd561 100644 --- a/devices/gdevdljm.h +++ b/devices/gdevdljm.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/gdevdm24.c b/devices/gdevdm24.c index 62b7ba89..42706eee 100644 --- a/devices/gdevdm24.c +++ b/devices/gdevdm24.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or @@ -150,7 +150,7 @@ dot24_print_page (gx_device_printer *pdev, gp_file *prn_stream, char *init_strin if (code == 0) { /* Pad with lines of zeros. */ - memset (inp, 0, (24 - lcnt) * line_size); + memset (inp, 0, (size_t)(24 - lcnt) * line_size); break; } } @@ -162,7 +162,7 @@ dot24_print_page (gx_device_printer *pdev, gp_file *prn_stream, char *init_strin if (code == 0) { /* Pad with lines of zeros. */ - memset (inp, 0, (24 - lcnt) * line_size); + memset (inp, 0, (size_t)(24 - lcnt) * line_size); break; } } diff --git a/devices/gdevdsp.c b/devices/gdevdsp.c index 8ac211d4..0a66a027 100644 --- a/devices/gdevdsp.c +++ b/devices/gdevdsp.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or @@ -54,6 +54,12 @@ #include "gsequivc.h" #include "gdevdsp.h" #include "gdevdsp2.h" +#include "gxclist.h" +#include "gxdevbuf.h" +#include "gxgetbit.h" +#include "gdevmpla.h" +#include "gdevprn.h" /* For gdev_create_buf_device */ +#include "gsicc_manage.h" #include "gdevkrnlsclass.h" /* 'standard' built in subclasses, currently First/Last Page and obejct filter */ @@ -108,12 +114,12 @@ static const gx_device_procs display_procs = display_close, gx_default_w_b_map_rgb_color, gx_default_w_b_map_color_rgb, - display_fill_rectangle, + NULL, /* display_fill_rectangle - will be inserted later */ NULL, /* tile rectangle */ - display_copy_mono, - display_copy_color, + NULL, /* display_copy_mono - will be inserted later */ + NULL, /* display_copy_color - will be inserted later */ NULL, /* draw line */ - display_get_bits, + NULL, /* display_get_bits - will be inserted later */ display_get_params, display_put_params, gx_default_cmyk_map_cmyk_color, /* map_cmyk_color */ @@ -175,24 +181,16 @@ public_st_device_display(); static ENUM_PTRS_WITH(display_enum_ptrs, gx_device_display *ddev) - if (index == 0) { - if (ddev->mdev) { - return ENUM_OBJ(gx_device_enum_ptr((gx_device *)ddev->mdev)); - } - return 0; - } - else if (index-1 < ddev->devn_params.separations.num_separations) - ENUM_RETURN(ddev->devn_params.separations.names[index-1].data); + if (index < ddev->devn_params.separations.num_separations) + ENUM_RETURN(ddev->devn_params.separations.names[index].data); else - return 0; + ENUM_PREFIX(st_device_clist_mutatable, ddev->devn_params.separations.num_separations); + return 0; ENUM_PTRS_END static RELOC_PTRS_WITH(display_reloc_ptrs, gx_device_display *ddev) - if (ddev->mdev) { - ddev->mdev = (gx_device_memory *) - gx_device_reloc_ptr((gx_device *)ddev->mdev, gcst); - } + RELOC_PREFIX(st_device_clist_mutatable); { int i; for (i = 0; i < ddev->devn_params.separations.num_separations; ++i) { RELOC_PTR(gx_device_display, devn_params.separations.names[i].data); @@ -207,12 +205,13 @@ const gx_device_display gs_display_device = INITIAL_WIDTH, INITIAL_HEIGHT, INITIAL_RESOLUTION, INITIAL_RESOLUTION), {0}, /* std_procs */ - NULL, /* mdev */ + GX_CLIST_MUTATABLE_DEVICE_DEFAULTS, NULL, /* callback */ NULL, /* pHandle */ + 0, /* pHandle_set */ 0, /* nFormat */ NULL, /* pBitmap */ - 0, /* ulBitmapSize */ + 0, /* zBitmapSize */ 0, /* HWResolution_set */ { /* devn_params specific parameters */ @@ -242,11 +241,34 @@ display_open(gx_device * dev) { gx_device_display *ddev = (gx_device_display *) dev; int ccode; + gs_display_get_callback_t data; /* Erase these, in case we are opening a copied device. */ - ddev->mdev = NULL; ddev->pBitmap = NULL; - ddev->ulBitmapSize = 0; + ddev->zBitmapSize = 0; + + ddev->orig_procs = ddev->procs; + + /* Fetch our callback procedures. */ + data.callback = NULL; + data.caller_handle = NULL; + ccode = gx_callout(dev, DISPLAY_CALLOUT_GET_CALLBACK, sizeof(data), &data); + if (ccode < 0) { + ccode = gx_callout(dev, DISPLAY_CALLOUT_GET_CALLBACK_LEGACY, sizeof(data), &data); + if (ccode < 0) { + ddev->callback = NULL; + ddev->pHandle = NULL; + if (ccode != gs_error_unknownerror) + return ccode; + } else { + ddev->callback = data.callback; + ddev->pHandle_set = 0; + } + } else { + ddev->callback = data.callback; + ddev->pHandle = data.caller_handle; + ddev->pHandle_set = 1; + } /* Allow device to be opened "disabled" without a callback. */ /* The callback will be set later and the device re-opened. */ @@ -290,9 +312,11 @@ display_open(gx_device * dev) } /* Tell caller the device parameters */ - ccode = (*(ddev->callback->display_size)) (ddev->pHandle, dev, - dev->width, dev->height, display_raster(ddev), ddev->nFormat, - ddev->mdev->base); + ccode = (*(ddev->callback->display_size))(ddev->pHandle, dev, + dev->width, dev->height, + display_raster(ddev), ddev->nFormat, + CLIST_MUTATABLE_HAS_MUTATED(ddev) ? + NULL : ((gx_device_memory *)ddev)->base); if (ccode < 0) { display_free_bitmap(ddev); (*(ddev->callback->display_close))(ddev->pHandle, dev); @@ -335,6 +359,10 @@ display_output_page(gx_device * dev, int copies, int flush) { gx_device_display *ddev = (gx_device_display *) dev; int code; + int is_planar = (ddev->nFormat & (DISPLAY_PLANAR | + DISPLAY_PLANAR_INTERLEAVED)) && + (ddev->color_info.num_components > 1); + if (ddev->callback == NULL) return gs_error_Fatal; display_set_separations(ddev); @@ -342,8 +370,72 @@ display_output_page(gx_device * dev, int copies, int flush) while(dev->parent) dev = dev->parent; - code = (*(ddev->callback->display_page)) + if (CLIST_MUTATABLE_HAS_MUTATED(ddev)) { + /* Rectangle request mode! */ + gs_get_bits_options_t options; + + options = GB_RETURN_COPY | GB_ALIGN_STANDARD | + GB_OFFSET_SPECIFIED | GB_RASTER_SPECIFIED | + GB_COLORS_NATIVE; + switch (ddev->nFormat & DISPLAY_ALPHA_MASK) { + default: + case DISPLAY_ALPHA_NONE: + break; + case DISPLAY_ALPHA_FIRST: + case DISPLAY_UNUSED_FIRST: + options |= GB_ALPHA_FIRST; + break; + case DISPLAY_ALPHA_LAST: + case DISPLAY_UNUSED_LAST: + options |= GB_ALPHA_LAST; + break; + } + if (is_planar) + options |= GB_PACKING_PLANAR; + else + options |= GB_PACKING_CHUNKY; + + while (1) { + void *mem = NULL; + int ox, oy, x, y, w, h, i, raster, plane_raster; + gs_int_rect rect; + gs_get_bits_params_t params; + + code = ddev->callback->display_rectangle_request + (ddev->pHandle, dev, + &mem, &ox, &oy, + &raster, &plane_raster, + &x, &y, &w, &h); + if (w == 0 || h == 0) + break; + if (mem == NULL) { + code = gs_note_error(gs_error_VMerror); + break; + } + rect.p.x = x; + rect.p.y = y; + rect.q.x = x + w; + rect.q.y = y + h; + params.options = options; + if (is_planar) { + for (i = 0; i < ddev->color_info.num_components; i++) + params.data[i] = (byte *)mem + i * plane_raster; + } else { + params.data[0] = (byte *)mem; + } + params.x_offset = ox; + params.original_y = oy; + params.raster = raster; + code = dev_proc(ddev, get_bits_rectangle)((gx_device *)ddev, + &rect, ¶ms, NULL); + if (code < 0) + break; + } + } else { + /* Full page mode. Just claim completion! */ + code = (*(ddev->callback->display_page)) (ddev->pHandle, dev, copies, flush); + } if (code >= 0) code = gx_finish_output_page(dev, copies, flush); @@ -358,19 +450,24 @@ display_close(gx_device * dev) if (ddev->callback == NULL) return 0; /* ignore the call since we were never properly opened */ + while(dev->parent) + dev = dev->parent; + /* Tell caller that device is about to be closed. */ (*(ddev->callback->display_preclose))(ddev->pHandle, dev); /* Release memory. */ display_free_bitmap(ddev); - while(dev->parent) - dev = dev->parent; - /* Tell caller that device is closed. */ /* This is always the last callback */ (*(ddev->callback->display_close))(ddev->pHandle, dev); + /* Reset device proc vector to default */ + if (ddev->orig_procs.open_device != NULL) + ddev->procs = ddev->orig_procs; + ddev->orig_procs.open_device = NULL; /* prevent uninit'd restore of procs */ + return 0; } @@ -726,13 +823,12 @@ display_map_color_rgb_bgr24(gx_device * dev, gx_color_index color, /* Fill a rectangle */ static int display_fill_rectangle(gx_device * dev, int x, int y, int w, int h, - gx_color_index color) + gx_color_index color) { gx_device_display *ddev = (gx_device_display *) dev; if (ddev->callback == NULL) return 0; /* ignore -- needed for fillpage when device wasn't really opened */ - dev_proc(ddev->mdev, fill_rectangle)((gx_device *)ddev->mdev, - x, y, w, h, color); + ddev->mutated_procs.fill_rectangle(dev, x, y, w, h, color); while(dev->parent) dev = dev->parent; @@ -745,15 +841,15 @@ display_fill_rectangle(gx_device * dev, int x, int y, int w, int h, /* Copy a monochrome bitmap */ static int display_copy_mono(gx_device * dev, - const byte * base, int sourcex, int raster, gx_bitmap_id id, - int x, int y, int w, int h, - gx_color_index zero, gx_color_index one) + const byte * base, int sourcex, int raster, + gx_bitmap_id id, int x, int y, int w, int h, + gx_color_index zero, gx_color_index one) { gx_device_display *ddev = (gx_device_display *) dev; if (ddev->callback == NULL) return gs_error_Fatal; - dev_proc(ddev->mdev, copy_mono)((gx_device *)ddev->mdev, - base, sourcex, raster, id, x, y, w, h, zero, one); + ddev->mutated_procs.copy_mono(dev, base, sourcex, raster, id, + x, y, w, h, zero, one); while(dev->parent) dev = dev->parent; @@ -766,14 +862,13 @@ display_copy_mono(gx_device * dev, /* Copy a color pixel map */ static int display_copy_color(gx_device * dev, - const byte * base, int sourcex, int raster, gx_bitmap_id id, - int x, int y, int w, int h) + const byte * base, int sourcex, int raster, + gx_bitmap_id id, int x, int y, int w, int h) { gx_device_display *ddev = (gx_device_display *) dev; if (ddev->callback == NULL) return gs_error_Fatal; - dev_proc(ddev->mdev, copy_color)((gx_device *)ddev->mdev, - base, sourcex, raster, id, x, y, w, h); + ddev->mutated_procs.copy_color(dev, base, sourcex, raster, id, x, y, w, h); while(dev->parent) dev = dev->parent; @@ -789,8 +884,7 @@ display_get_bits(gx_device * dev, int y, byte * str, byte ** actual_data) gx_device_display *ddev = (gx_device_display *) dev; if (ddev->callback == NULL) return gs_error_Fatal; - return dev_proc(ddev->mdev, get_bits)((gx_device *)ddev->mdev, - y, str, actual_data); + return ddev->mutated_procs.get_bits(dev, y, str, actual_data); } static int @@ -805,27 +899,31 @@ display_get_params(gx_device * dev, gs_param_list * plist) size_t dptr; char buf[64]; - idx = ((int)sizeof(size_t)) * 8 - 4; - buf[i++] = '1'; - buf[i++] = '6'; - buf[i++] = '#'; - dptr = (size_t)(ddev->pHandle); - while (idx >= 0) { - val = (int)(dptr >> idx) & 0xf; - if (val <= 9) - buf[i++] = '0' + val; - else - buf[i++] = 'a' - 10 + val; - idx -= 4; - } - buf[i] = '\0'; + code = gx_default_get_params(dev, plist); + if (code < 0) + return code; + + if (!ddev->pHandle_set) { + idx = ((int)sizeof(size_t)) * 8 - 4; + buf[i++] = '1'; + buf[i++] = '6'; + buf[i++] = '#'; + dptr = (size_t)(ddev->pHandle); + while (idx >= 0) { + val = (int)(dptr >> idx) & 0xf; + if (val <= 9) + buf[i++] = '0' + val; + else + buf[i++] = 'a' - 10 + val; + idx -= 4; + } + buf[i] = '\0'; - param_string_from_transient_string(dhandle, buf); + param_string_from_transient_string(dhandle, buf); + code = param_write_string(plist, "DisplayHandle", &dhandle); + } - code = gx_default_get_params(dev, plist); (void)(code < 0 || - (code = param_write_string(plist, - "DisplayHandle", &dhandle)) < 0 || (code = param_write_int(plist, "DisplayFormat", &ddev->nFormat)) < 0 || (code = param_write_float(plist, @@ -890,96 +988,98 @@ display_put_params(gx_device * dev, gs_param_list * plist) break; } - /* 64-bit systems need to use DisplayHandle as a string */ - switch (code = param_read_string(plist, "DisplayHandle", &dh)) { - case 0: - found_string_handle = 1; - break; - default: - if ((code == gs_error_typecheck) && (sizeof(size_t) <= 4)) { - /* 32-bit systems can use the older long type */ - switch (code = param_read_long(plist, "DisplayHandle", - (long *)(&handle))) { - case 0: - if (dev->is_open) { - if (ddev->pHandle != handle) - ecode = gs_error_rangecheck; - else + if (!ddev->pHandle_set) { + /* 64-bit systems need to use DisplayHandle as a string */ + switch (code = param_read_string(plist, "DisplayHandle", &dh)) { + case 0: + found_string_handle = 1; + break; + default: + if ((code == gs_error_typecheck) && (sizeof(size_t) <= 4)) { + /* 32-bit systems can use the older long type */ + switch (code = param_read_long(plist, "DisplayHandle", + (long *)(&handle))) { + case 0: + if (dev->is_open) { + if (ddev->pHandle != handle) + ecode = gs_error_rangecheck; + else + break; + } + else { + ddev->pHandle = handle; break; - } - else { - ddev->pHandle = handle; + } + goto hdle; + default: + ecode = code; + hdle:param_signal_error(plist, "DisplayHandle", ecode); + case 1: break; - } - goto hdle; - default: - ecode = code; - hdle:param_signal_error(plist, "DisplayHandle", ecode); - case 1: - break; + } + break; } + ecode = code; + param_signal_error(plist, "DisplayHandle", ecode); + /* fall through */ + case 1: + dh.data = 0; break; - } - ecode = code; - param_signal_error(plist, "DisplayHandle", ecode); - /* fall through */ - case 1: - dh.data = 0; - break; - } - if (found_string_handle) { - /* - * Convert from a string to a pointer. - * It is assumed that size_t has the same size as a pointer. - * Allow formats (1234), (10#1234) or (16#04d2). - */ - size_t ptr = 0; - int i; - int base = 10; - int val; - code = 0; - for (i=0; i<dh.size; i++) { - val = dh.data[i]; - if ((val >= '0') && (val <= '9')) - val = val - '0'; - else if ((val >= 'A') && (val <= 'F')) - val = val - 'A' + 10; - else if ((val >= 'a') && (val <= 'f')) - val = val - 'a' + 10; - else if (val == '#') { - base = (int)ptr; - ptr = 0; - if ((base != 10) && (base != 16)) { + } + if (found_string_handle) { + /* + * Convert from a string to a pointer. + * It is assumed that size_t has the same size as a pointer. + * Allow formats (1234), (10#1234) or (16#04d2). + */ + size_t ptr = 0; + int i; + int base = 10; + int val; + code = 0; + for (i=0; i<dh.size; i++) { + val = dh.data[i]; + if ((val >= '0') && (val <= '9')) + val = val - '0'; + else if ((val >= 'A') && (val <= 'F')) + val = val - 'A' + 10; + else if ((val >= 'a') && (val <= 'f')) + val = val - 'a' + 10; + else if (val == '#') { + base = (int)ptr; + ptr = 0; + if ((base != 10) && (base != 16)) { + code = gs_error_rangecheck; + break; + } + continue; + } + else { code = gs_error_rangecheck; break; } - continue; - } - else { - code = gs_error_rangecheck; - break; - } - if (base == 10) - ptr = ptr * 10 + val; - else if (base == 16) - ptr = ptr * 16 + val; - else { - code = gs_error_rangecheck; - break; - } - } - if (code == 0) { - if (dev->is_open) { - if (ddev->pHandle != (void *)ptr) + if (base == 10) + ptr = ptr * 10 + val; + else if (base == 16) + ptr = ptr * 16 + val; + else { code = gs_error_rangecheck; + break; + } + } + if (code == 0) { + if (dev->is_open) { + if (ddev->pHandle != (void *)ptr) + code = gs_error_rangecheck; + } + else + ddev->pHandle = (void *)ptr; + } + if (code < 0) { + ecode = code; + param_signal_error(plist, "DisplayHandle", ecode); } - else - ddev->pHandle = (void *)ptr; - } - if (code < 0) { - ecode = code; - param_signal_error(plist, "DisplayHandle", ecode); } } @@ -1094,19 +1194,20 @@ display_put_params(gx_device * dev, gs_param_list * plist) /* tell caller about the new size */ if ((*ddev->callback->display_size)(ddev->pHandle, dev, - dev->width, dev->height, display_raster(ddev), - ddev->nFormat, ddev->mdev->base) < 0) + dev->width, dev->height, display_raster(ddev), ddev->nFormat, + CLIST_MUTATABLE_HAS_MUTATED(ddev) ? NULL : + ((gx_device_memory *)ddev)->base) < 0) return_error(gs_error_rangecheck); } - /* - * Make the color_info.depth correct for the bpc and num_components since - * devn mode always has the display bitmap set up for 64-bits, but others, - * such as pdf14 compositor expect it to match (for "deep" detection). - */ - if (ddev->icc_struct && ddev->icc_struct->supports_devn) { - ddev->color_info.depth = ddev->devn_params.bitspercomponent * - ddev->color_info.num_components; - } + /* + * Make the color_info.depth correct for the bpc and num_components since + * devn mode always has the display bitmap set up for 64-bits, but others, + * such as pdf14 compositor expect it to match (for "deep" detection). + */ + if (ddev->icc_struct && ddev->icc_struct->supports_devn) { + ddev->color_info.depth = ddev->devn_params.bitspercomponent * + ddev->color_info.num_components; + } return 0; } @@ -1120,9 +1221,8 @@ display_finish_copydevice(gx_device *dev, const gx_device *from_dev) ddev->is_open = false; /* Clear pointers */ - ddev->mdev = NULL; ddev->pBitmap = NULL; - ddev->ulBitmapSize = 0; + ddev->zBitmapSize = 0; return 0; } @@ -1245,10 +1345,23 @@ display_ret_devn_params(gx_device * dev) static int display_spec_op(gx_device *dev, int op, void *data, int datasize) { + gx_device_display *ddev = (gx_device_display *)dev; - if (op == gxdso_supports_devn) { + if (op == gxdso_supports_devn || op == gxdso_skip_icc_component_validation) { return (dev_proc(dev, fill_rectangle_hl_color) == display_fill_rectangle_hl_color); } + if (op == gxdso_reopen_after_init) { + return 1; + } + if (op == gxdso_adjust_bandheight) + { + if (ddev->callback->display_adjust_band_height) + return ddev->callback->display_adjust_band_height(ddev->pHandle, + ddev, + datasize); + return 0; + } + return gx_default_dev_spec_op(dev, op, data, datasize); } @@ -1269,8 +1382,8 @@ display_fill_rectangle_hl_color(gx_device *dev, const gs_fixed_rect *rect, if (pdcolor->type != gx_dc_type_devn && pdcolor->type != &gx_dc_devn_masked) { return gx_fill_rectangle_device_rop( x, y, w, h, pdcolor, dev, lop_default); } - pure_color = display_separation_encode_color(dev, pdcolor->colors.devn.values); - return display_fill_rectangle(dev, x, y, w, h, pure_color); + pure_color = dev_proc(dev, encode_color)(dev, pdcolor->colors.devn.values); + return dev_proc(dev, fill_rectangle)(dev, x, y, w, h, pure_color); } /* @@ -1303,7 +1416,7 @@ display_separation_get_color_comp_index(gx_device * dev, /* Return 0 on success, gs_error_rangecheck on failure */ static int display_check_structure(gx_device_display *ddev) { - if (ddev->callback == 0) + if (ddev->callback == NULL) return_error(gs_error_rangecheck); if (ddev->callback->size == sizeof(struct display_callback_v1_s)) { @@ -1315,11 +1428,23 @@ static int display_check_structure(gx_device_display *ddev) if (ddev->callback->version_minor > DISPLAY_VERSION_MINOR_V1) return_error(gs_error_rangecheck); } - else { + else if (ddev->callback->size == sizeof(struct display_callback_v2_s)) { /* V2 structure with added display_separation callback */ if (ddev->callback->size != sizeof(display_callback)) return_error(gs_error_rangecheck); + if (ddev->callback->version_major != DISPLAY_VERSION_MAJOR_V2) + return_error(gs_error_rangecheck); + + /* complain if caller asks for newer features */ + if (ddev->callback->version_minor > DISPLAY_VERSION_MINOR_V2) + return_error(gs_error_rangecheck); + } + else { + /* V3 structure with added display_separation callback */ + if (ddev->callback->size != sizeof(display_callback)) + return_error(gs_error_rangecheck); + if (ddev->callback->version_major != DISPLAY_VERSION_MAJOR) return_error(gs_error_rangecheck); @@ -1362,13 +1487,33 @@ display_free_bitmap(gx_device_display * ddev) ddev->pBitmap, "display_free_bitmap"); } ddev->pBitmap = NULL; - if (ddev->mdev) - ddev->mdev->base = NULL; + if (!CLIST_MUTATABLE_HAS_MUTATED(ddev)) + ((gx_device_memory *)ddev)->base = NULL; } - if (ddev->mdev) { - dev_proc(ddev->mdev, close_device)((gx_device *)ddev->mdev); - gx_device_retain((gx_device *)(ddev->mdev), false); - ddev->mdev = NULL; + + if (CLIST_MUTATABLE_HAS_MUTATED(ddev)) { + gx_device_clist *const pclist_dev = (gx_device_clist *)ddev; + gx_device_clist_common * const pcldev = &pclist_dev->common; + gx_device_clist_reader * const pcrdev = &pclist_dev->reader; + /* Close cmd list device & point to the storage */ + (*gs_clist_device_procs.close_device)( (gx_device *)pcldev ); + ddev->buf = NULL; + ddev->buffer_space = 0; + + gs_free_object(pcldev->memory->non_gc_memory, pcldev->cache_chunk, "free tile cache for clist"); + pcldev->cache_chunk = 0; + + rc_decrement(pcldev->icc_cache_cl, "gdev_prn_tear_down"); + pcldev->icc_cache_cl = NULL; + + clist_free_icc_table(pcldev->icc_table, pcldev->memory); + pcldev->icc_table = NULL; + + /* If the clist is a reader clist, free any color_usage_array + * memory used by same. + */ + if (!CLIST_IS_WRITER(pclist_dev)) + gs_free_object(pcrdev->memory, pcrdev->color_usage_array, "clist_color_usage_array"); } } @@ -1377,7 +1522,9 @@ static int display_raster(gx_device_display *dev) { int align = 0; - int bytewidth = ((dev->width * dev->color_info.depth) + 7) /8; + int n = (dev->nFormat & (DISPLAY_PLANAR | DISPLAY_PLANAR_INTERLEAVED)) ? + dev->color_info.num_components : 1; + int bytewidth = ((dev->width * dev->color_info.depth / n) + 7) /8; switch (dev->nFormat & DISPLAY_ROW_ALIGN_MASK) { case DISPLAY_ROW_ALIGN_4: align = 4; @@ -1399,79 +1546,340 @@ display_raster(gx_device_display *dev) align = ARCH_ALIGN_PTR_MOD; align -= 1; bytewidth = (bytewidth + align) & (~align); + if (dev->nFormat & DISPLAY_PLANAR_INTERLEAVED) + bytewidth *= n; return bytewidth; } -/* Allocate the backing bitmap. */ +/* Set the buffer device to planar mode. */ static int -display_alloc_bitmap(gx_device_display * ddev, gx_device * param_dev) +set_planar(gx_device_memory *mdev, const gx_device *tdev, int interleaved) { - int ccode; - const gx_device_memory *mdproto; + int num_comp = tdev->color_info.num_components; + gx_render_plane_t planes[GX_DEVICE_COLOR_MAX_COMPONENTS]; + int depth = tdev->color_info.depth / num_comp; + int k; - if (ddev->callback == NULL) - return gs_error_Fatal; + if (num_comp < 1 || num_comp > GX_DEVICE_COLOR_MAX_COMPONENTS) + return_error(gs_error_rangecheck); + /* Round up the depth per plane to a power of 2. */ + while (depth & (depth - 1)) + --depth, depth = (depth | (depth >> 1)) + 1; + + /* We want the most significant plane to come out first. */ + planes[num_comp-1].shift = 0; + planes[num_comp-1].depth = depth; + for (k = (num_comp - 2); k >= 0; k--) { + planes[k].depth = depth; + planes[k].shift = planes[k + 1].shift + depth; + } + return gdev_mem_set_planar_interleaved(mdev, num_comp, planes, + interleaved); +} - /* free old bitmap (if any) */ - display_free_bitmap(ddev); +static int +display_create_buf_device(gx_device **pbdev, gx_device *target, int y, + const gx_render_plane_t *render_plane, + gs_memory_t *mem, gx_color_usage_t *color_usage) +{ + int depth; + const gx_device_memory *mdproto; + gx_device_memory *mdev; + gx_device_display *ddev = (gx_device_display *)target; + + depth = target->color_info.depth; + if (target->is_planar) + depth /= target->color_info.num_components; - /* allocate a memory device for rendering */ - mdproto = gdev_mem_device_for_bits(ddev->color_info.depth); - if (mdproto == 0) + mdproto = gdev_mem_device_for_bits(depth); + if (mdproto == NULL) return_error(gs_error_rangecheck); + if (mem) { + mdev = gs_alloc_struct(mem, gx_device_memory, &st_device_memory, + "create_buf_device"); + if (mdev == NULL) + return_error(gs_error_VMerror); + } else { + mdev = (gx_device_memory *)*pbdev; + } + if (target == (gx_device *)mdev) { + dev_t_proc_dev_spec_op((*orig_dso), gx_device) = dev_proc(mdev, dev_spec_op); + /* The following is a special hack for setting up printer devices. */ + assign_dev_procs(mdev, mdproto); + /* Do not override the dev_spec_op! */ + dev_proc(mdev, dev_spec_op) = orig_dso; + check_device_separable((gx_device *)mdev); + gx_device_fill_in_procs((gx_device *)mdev); + } else { + gs_make_mem_device(mdev, mdproto, mem, (color_usage == NULL ? 1 : 0), + target); + if (ddev->nFormat & DISPLAY_COLORS_SEPARATION) + mdev->procs.fill_rectangle_hl_color = display_fill_rectangle_hl_color; + } + mdev->width = target->width; + mdev->band_y = y; + mdev->log2_align_mod = target->log2_align_mod; + mdev->pad = target->pad; + mdev->is_planar = target->is_planar; + /* + * The matrix in the memory device is irrelevant, + * because all we do with the device is call the device-level + * output procedures, but we may as well set it to + * something halfway reasonable. + */ + gs_deviceinitialmatrix(target, &mdev->initial_matrix); + /****** QUESTIONABLE, BUT BETTER THAN OMITTING ******/ + if (&mdev->color_info != &target->color_info) /* Pacify Valgrind */ + mdev->color_info = target->color_info; + *pbdev = (gx_device *)mdev; + + if (ddev->nFormat & (DISPLAY_PLANAR | DISPLAY_PLANAR_INTERLEAVED)) { + int interleaved = (ddev->nFormat & DISPLAY_PLANAR_INTERLEAVED); + if (gs_device_is_memory(*pbdev) /* == render_plane->index < 0 */) { + return set_planar((gx_device_memory *)*pbdev, *pbdev, interleaved); + } + } + + return 0; +} - ddev->mdev = gs_alloc_struct(gs_memory_stable(ddev->memory), - gx_device_memory, &st_device_memory, "display_memory_device"); - if (ddev->mdev == 0) +static int +display_size_buf_device(gx_device_buf_space_t *space, gx_device *target, + const gx_render_plane_t *render_plane, + int height, bool for_band) +{ + gx_device_display *ddev = (gx_device_display *)target; + gx_device_memory mdev; + int code; + int planar = ddev->nFormat & (DISPLAY_PLANAR | DISPLAY_PLANAR_INTERLEAVED); + int interleaved = (ddev->nFormat & DISPLAY_PLANAR_INTERLEAVED); + + if (!planar || (render_plane && render_plane->index >= 0)) + return gx_default_size_buf_device(space, target, render_plane, + height, for_band); + + /* Planar case */ + mdev.color_info = target->color_info; + mdev.pad = target->pad; + mdev.log2_align_mod = target->log2_align_mod; + mdev.is_planar = target->is_planar; + code = set_planar(&mdev, target, interleaved); + if (code < 0) + return code; + if (gdev_mem_bits_size(&mdev, target->width, height, &(space->bits)) < 0) return_error(gs_error_VMerror); + space->line_ptrs = gdev_mem_line_ptrs_size(&mdev, target->width, height); + space->raster = display_raster(ddev); + return 0; +} - gs_make_mem_device(ddev->mdev, mdproto, gs_memory_stable(ddev->memory), - 0, (gx_device *) NULL); - check_device_separable((gx_device *)(ddev->mdev)); - gx_device_fill_in_procs((gx_device *)(ddev->mdev)); - /* Mark the memory device as retained. When the bitmap is closed, - * we will clear this and the memory device will be then be freed. - */ - gx_device_retain((gx_device *)(ddev->mdev), true); +static gx_device_buf_procs_t display_buf_procs = { + display_create_buf_device, + display_size_buf_device, + gx_default_setup_buf_device, + gx_default_destroy_buf_device +}; - /* Memory device width may be larger than device width - * if row alignment is not 4. - */ - ddev->mdev->width = param_dev->width; - ddev->mdev->width = display_raster(ddev) * 8 / ddev->color_info.depth; - ddev->mdev->height = param_dev->height; +static int /* returns 0 ok, else -ve error cde */ +setup_as_clist(gx_device_display *ddev, gs_memory_t *buffer_memory) +{ + gdev_space_params space_params = ddev->space_params; + gx_device *target = (gx_device *)ddev; + uint space; + int code; + gx_device_clist *const pclist_dev = (gx_device_clist *)ddev; + gx_device_clist_common * const pcldev = &pclist_dev->common; + byte *base; + bool save_is_open = ddev->is_open; /* Save around temporary failure in open_c loop */ + + while (target->parent != NULL) { + target = target->parent; + gx_update_from_subclass(target); + } - /* Tell the memory device to allocate the line pointers separately - * so we can place the bitmap in special memory. - */ - ddev->mdev->line_pointer_memory = ddev->mdev->memory; - if (gdev_mem_bits_size(ddev->mdev, ddev->mdev->width, ddev->mdev->height, - &(ddev->ulBitmapSize)) < 0) + /* Try to allocate based simply on param-requested buffer size */ + for ( space = space_params.BufferSpace; ; ) { + base = gs_alloc_bytes(buffer_memory, space, + "cmd list buffer"); + if (base != NULL) + break; + if ((space >>= 1) < MIN_BUFFER_SPACE) + break; + } + if (base == NULL) return_error(gs_error_VMerror); + /* Try opening the command list, to see if we allocated */ + /* enough buffer space. */ +open_c: + ddev->buf = base; + ddev->buffer_space = space; + pclist_dev->common.orig_spec_op = ddev->orig_procs.dev_spec_op; + clist_init_io_procs(pclist_dev, ddev->BLS_force_memory); + clist_init_params(pclist_dev, base, space, target, + display_buf_procs, + space_params.band, + false, /* do_not_open_or_close_bandfiles */ + (ddev->bandlist_memory == NULL ? + ddev->memory->non_gc_memory: + ddev->bandlist_memory), + ddev->clist_disable_mask, + ddev->page_uses_transparency); + code = (*gs_clist_device_procs.open_device)( (gx_device *)pcldev ); + if (code < 0) { + /* If there wasn't enough room, and we haven't */ + /* already shrunk the buffer, try enlarging it. */ + if (code == gs_error_rangecheck && + space >= space_params.BufferSpace) { + space += space / 8; + gs_free_object(buffer_memory, base, + "cmd list buf(retry open)"); + base = gs_alloc_bytes(buffer_memory, space, + "cmd list buf(retry open)"); + ddev->buf = base; + if (base != NULL) { + ddev->is_open = save_is_open; /* allow for success when we loop */ + goto open_c; + } + } + /* Failure. */ + gs_free_object(buffer_memory, base, "cmd list buf"); + ddev->buffer_space = 0; + } + return code; +} + +/* Allocate the backing bitmap. */ +static int +display_alloc_bitmap(gx_device_display * ddev, gx_device * param_dev) +{ + int ccode; + gx_device_buf_space_t buf_space; + + if (ddev->callback == NULL) + return gs_error_Fatal; + + /* free old bitmap (if any) */ + display_free_bitmap(ddev); + + /* Initialise the clist/memory device specific fields. */ + memset(ddev->skip, 0, sizeof(ddev->skip)); + /* Calculate the size required for the a memory device. */ + display_size_buf_device(&buf_space, (gx_device *)ddev, + NULL, ddev->height, false); + ddev->zBitmapSize = buf_space.bits + buf_space.line_ptrs; + + if (ddev->callback->version_major > DISPLAY_VERSION_MAJOR_V2 || + ddev->callback->display_rectangle_request != NULL) { + /* Clist mode is a possibility. Maybe check in here whether + * we want to suggest clist? */ + /* FIXME: For now, we'll just assume that the memalloc callback + * is smart enough to make a sensible decision. */ + } + /* allocate bitmap using an allocator not subject to GC */ if (ddev->callback->display_memalloc && ddev->callback->display_memfree) { - ddev->pBitmap = (*ddev->callback->display_memalloc)(ddev->pHandle, - ddev, ddev->ulBitmapSize); + /* Note: For Planar buffers, we allocate the linepointers + * as part of this allocation, just after the bitmap. Maybe we + * want to allocate them ourselves, so they aren't exposed to + * the caller? (Or the caller can pass in a pointer to a + * structure of it's own without having to allow for these + * pointers?)*/ + if (ddev->callback->version_major > DISPLAY_VERSION_MAJOR_V2) + ddev->pBitmap = (*ddev->callback->display_memalloc)(ddev->pHandle, + ddev, ddev->zBitmapSize); + else if (ddev->zBitmapSize > ARCH_MAX_ULONG) + ddev->pBitmap = NULL; + else { + struct display_callback_v2_s *v2; + v2 = (struct display_callback_v2_s *)(ddev->callback); + ddev->pBitmap = (v2->display_memalloc)(ddev->pHandle, + ddev, (unsigned long)ddev->zBitmapSize); + } } else { ddev->pBitmap = gs_alloc_byte_array_immovable(ddev->memory->non_gc_memory, - (uint)ddev->ulBitmapSize, 1, "display_alloc_bitmap"); + ddev->zBitmapSize, 1, "display_alloc_bitmap"); } if (ddev->pBitmap == NULL) { - ddev->mdev->width = 0; - ddev->mdev->height = 0; - return_error(gs_error_VMerror); + /* Bitmap failed to allocate. Can we recover by using rectangle + * request mode? */ + if (ddev->callback->version_major <= DISPLAY_VERSION_MAJOR_V2 || + ddev->callback->display_rectangle_request == NULL) { + /* No. Hard fail. */ + ddev->width = 0; + ddev->height = 0; + return_error(gs_error_VMerror); + } + /* Let's set up as a clist. */ + ccode = setup_as_clist(ddev, ddev->memory->non_gc_memory); + if (ccode >= 0) + ddev->procs = gs_clist_device_procs; + } else { + /* Set up as PageMode. */ + gx_device *bdev = (gx_device *)ddev; + + /* Ensure we're not seen as a clist device. */ + ddev->buffer_space = 0; + if ((ccode = gdev_create_buf_device + (display_create_buf_device, + &bdev, bdev, 0, NULL, NULL, NULL)) < 0 || + (ccode = gx_default_setup_buf_device + (bdev, ddev->pBitmap, buf_space.raster, + (byte **)((byte *)ddev->pBitmap + buf_space.bits), 0, ddev->height, + ddev->height)) < 0 + ) { + /* Catastrophic. Shouldn't ever happen */ + display_free_bitmap(ddev); + return_error(ccode); + } } - ddev->mdev->base = (byte *) ddev->pBitmap; - ddev->mdev->foreign_bits = true; +#define COPY_PROC(p) set_dev_proc(ddev, p, ddev->orig_procs.p) + COPY_PROC(get_initial_matrix); + COPY_PROC(output_page); + COPY_PROC(close_device); + COPY_PROC(map_rgb_color); + COPY_PROC(map_color_rgb); + COPY_PROC(get_params); + COPY_PROC(put_params); + COPY_PROC(map_cmyk_color); + COPY_PROC(get_xfont_procs); + COPY_PROC(get_xfont_device); + COPY_PROC(map_rgb_alpha_color); + set_dev_proc(ddev, get_page_device, gx_page_device_get_page_device); + COPY_PROC(get_clipping_box); + COPY_PROC(map_color_rgb_alpha); + COPY_PROC(get_hardware_params); + COPY_PROC(get_color_mapping_procs); + COPY_PROC(get_color_comp_index); + COPY_PROC(encode_color); + COPY_PROC(decode_color); + COPY_PROC(update_spot_equivalent_colors); + COPY_PROC(ret_devn_params); + /* This can be set from the memory device (planar) or target */ + if ( dev_proc(ddev, put_image) == gx_default_put_image ) + set_dev_proc(ddev, put_image, ddev->orig_procs.put_image); +#undef COPY_PROC + + /* Now, we want to hook various procs to give the callbacks + * progress reports. But only in non-clist mode. */ + if (!CLIST_MUTATABLE_HAS_MUTATED(ddev)) { + ddev->mutated_procs = ddev->procs; + ddev->procs.fill_rectangle = display_fill_rectangle; + ddev->procs.copy_mono = display_copy_mono; + ddev->procs.copy_color = display_copy_color; + ddev->procs.get_bits = display_get_bits; + } - ccode = dev_proc(ddev->mdev, open_device)((gx_device *)ddev->mdev); - if (ccode < 0) - display_free_bitmap(ddev); + /* In command list mode, we've already opened the device. */ + if (!CLIST_MUTATABLE_HAS_MUTATED(ddev)) { + ccode = dev_proc(ddev, open_device)((gx_device *)ddev); + if (ccode < 0) + display_free_bitmap(ddev); + } /* erase bitmap - before display gets redrawn */ /* @@ -1741,21 +2149,30 @@ display_set_color_format(gx_device_display *ddev, int nFormat) switch (ddev->nFormat & DISPLAY_ROW_ALIGN_MASK) { case DISPLAY_ROW_ALIGN_DEFAULT: align = ARCH_ALIGN_PTR_MOD; + if (sizeof(void *) == 4) + ddev->log2_align_mod = 2; + else + ddev->log2_align_mod = 3; break; case DISPLAY_ROW_ALIGN_4: align = 4; + ddev->log2_align_mod = 2; break; case DISPLAY_ROW_ALIGN_8: align = 8; + ddev->log2_align_mod = 3; break; case DISPLAY_ROW_ALIGN_16: align = 16; + ddev->log2_align_mod = 4; break; case DISPLAY_ROW_ALIGN_32: align = 32; + ddev->log2_align_mod = 5; break; case DISPLAY_ROW_ALIGN_64: align = 64; + ddev->log2_align_mod = 6; break; default: align = 0; /* not permitted */ @@ -1867,6 +2284,11 @@ display_set_color_format(gx_device_display *ddev, int nFormat) maxvalue, maxvalue); if ((nFormat & DISPLAY_DEPTH_MASK) == DISPLAY_DEPTH_8) { ddev->devn_params.bitspercomponent = bpc; + if (ddev->icc_struct == NULL) { + ddev->icc_struct = gsicc_new_device_profile_array(ddev->memory); + if (ddev->icc_struct == NULL) + return_error(gs_error_VMerror); + } ddev->icc_struct->supports_devn = true; set_color_procs(pdev, display_separation_encode_color, @@ -1882,6 +2304,16 @@ display_set_color_format(gx_device_display *ddev, int nFormat) return_error(gs_error_rangecheck); } + switch (nFormat & (DISPLAY_PLANAR | DISPLAY_PLANAR_INTERLEAVED)) + { + case DISPLAY_CHUNKY: + ddev->is_planar = 0; + break; + default: + ddev->is_planar = 1; + break; + } + /* restore old anti_alias info */ dci.anti_alias = ddev->color_info.anti_alias; ddev->color_info = dci; diff --git a/devices/gdevdsp.h b/devices/gdevdsp.h index e8ddd9af..a062374b 100644 --- a/devices/gdevdsp.h +++ b/devices/gdevdsp.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or @@ -19,30 +19,45 @@ # define gdevdsp_INCLUDED /* - * The callback structure must be provided by calling the - * Ghostscript APIs in the following order: + * There are 2 mechanisms to provide the callback structure to + * Ghostscript. A legacy one, and a modern one. The legacy one is + * deprecated and should not be used in new code - at some point it may + * be removed. + * + * Modern method: Call the Ghostscript APIs in the following order: * gsapi_new_instance(&minst); - * gsapi_set_display_callback(minst, callback); + * gsapi_register_callout(minst, callout, callout_handle); * gsapi_init_with_args(minst, argc, argv); * + * The callout handler should look for a callout from the 'display' + * device, with id=DISPLAY_CALLOUT_GET_CALLBACK and respond by filling + * in the supplied gs_display_get_callback_t structure. + * * Supported parameters and default values are: + * -dDisplayFormat=0 long + * Color format specified using bitfields below. + * Included as argument of display_size() and display_presize() + * These can only be changed when the device is closed. + * + * Legacy method: Call the Ghostscript APIs in the following order: + * gsapi_new_instance(&minst); + * gsapi_set_display_callback(minst, callback); + * gsapi_init_with_args(minst, argc, argv); + * + * An additional parameter is supported, with default value NULL: * -sDisplayHandle=16#04d2 or 1234 string * Caller supplied handle as a decimal or hexadecimal number * in a string. On 32-bit platforms, it may be set * using -dDisplayHandle=1234 for backward compatibility. * Included as first parameter of all callback functions. * - * -dDisplayFormat=0 long - * Color format specified using bitfields below. - * Included as argument of display_size() and display_presize() - * These can only be changed when the device is closed. - * * The second parameter of all callback functions "void *device" * is the address of the Ghostscript display device instance. * The arguments "void *handle" and "void *device" together * uniquely identify an instance of the display device. * - * A typical sequence of callbacks would be + * A typical sequence of callbacks (when running without a + * display_choose_mode) would be: * open, presize, memalloc, size, sync, page * presize, memfree, memalloc, size, sync, page * preclose, memfree, close @@ -53,14 +68,43 @@ * If opening the device fails, you might see the following: * open, presize, memalloc, memfree, close * + * A typical sequence of callbacks (when running with a + * display_choose_mode) will depend upon whether display_choose_mode + * selects pagemode or request-rectangle mode: + * + * In the pagemode case: + * open, presize, display_choose_mode, memalloc, size, sync, page + * presize, display_choose_mode, memfree, memalloc, size, sync, page + * preclose, memfree, close + * The caller should not access the image buffer: + * - before the first sync + * - between presize and size + * - after preclose + * If opening the device fails, you might see the following: + * open, presize, memalloc, memfree, close + * + * In the request-rectangle mode: + * open, presize, display_choose_mode, {rectangle_request}* + * presize, display_choose_mode, {rectangle_request}* + * preclose, close + * + * In a run that mixed request-rectangle and pagemode: + * open, presize, display_choose_mode, memalloc, size, sync, page + * presize, display_choose_mode, memfree, {rectangle_request}* + * presize, display_choose_mode, {rectangle_request}* + * presize, display_choose_mode, memalloc, size, sync, page + * preclose, memfree, close */ -#define DISPLAY_VERSION_MAJOR 2 +#define DISPLAY_VERSION_MAJOR 3 #define DISPLAY_VERSION_MINOR 0 #define DISPLAY_VERSION_MAJOR_V1 1 /* before separation format was added */ #define DISPLAY_VERSION_MINOR_V1 0 +#define DISPLAY_VERSION_MAJOR_V2 2 /* before planar and banding were added */ +#define DISPLAY_VERSION_MINOR_V2 0 + /* The display format is set by a combination of the following bitfields */ /* Define the color space alternatives */ @@ -144,6 +188,14 @@ typedef enum { } DISPLAY_FORMAT_ROW_ALIGN; #define DISPLAY_ROW_ALIGN_MASK 0x00700000L +/* Define whether we are using chunky, planar or planar interleaved + * representation. */ +typedef enum { + DISPLAY_CHUNKY = (0<<23), + DISPLAY_PLANAR = (1<<23), + DISPLAY_PLANAR_INTERLEAVED = (2<<23), +} DISPLAY_FORMAT_PLANARNESS; + #ifndef display_callback_DEFINED #define display_callback_DEFINED typedef struct display_callback_s display_callback; @@ -204,6 +256,10 @@ struct display_callback_s { /* This can be used for cooperative multitasking or for * progressive update of the display. * This function pointer may be set to NULL if not required. + * NOTE: This is actually a really bad thing to work on. It may well + * end up not being called back at all during the rendering process, + * in particular if transparency is in use, or if rectangle request + * mode is used. */ int (*display_update)(void *handle, void *device, int x, int y, int w, int h); @@ -214,8 +270,14 @@ struct display_callback_s { * allocates the bitmap. This will only called to allocate the * image buffer. The first row will be placed at the address * returned by display_memalloc. + * + * In the event of this callback returning NULL, Ghostscript will + * look for a display_rectangle_request callback. If one is not + * supplied, then this will be reported as memory exhaustion. If + * one is supplied, then Ghostscript will switch to working in + * rectangle request mode. */ - void *(*display_memalloc)(void *handle, void *device, unsigned long size); + void *(*display_memalloc)(void *handle, void *device, size_t size); /* Free memory for bitmap */ /* If this is NULL, the Ghostscript memory device will free the bitmap */ @@ -238,13 +300,80 @@ struct display_callback_s { int component, const char *component_name, unsigned short c, unsigned short m, unsigned short y, unsigned short k); + + /* Added in V3 */ + /* If non NULL, then this gives the callback provider a chance to + * a) be informed of and b) control the bandheight used by the + * display device. If a call to allocate the page mode bitmap fails + * (either an internal allocation or a display_memalloc call), then + * Ghostscript will look for the presence of a + * display_rectangle_request callback. If it exists, then it will + * attempt to use retangle request mode. + * + * As part of this, it will pick an appropriate bandheight. If + * this callback exists, it will be called so the callback provider + * can know (and, optionally, tweak) the bandheight to be used. + * This is purely for performance. The callback should only ever + * *reduce* the bandheight given here. + * + * Return the adjusted bandheight (or 0 for no change). + */ + int (*display_adjust_band_height)(void *handle, void *device, + int bandheight); + + /* Ask the callback for a rectangle to render (and a block to render + * it in). Each subsequent call tells the caller that any previous + * call has finished. To signal 'no more rectangles' return with + * *w or *h = 0. + * + * On entry: *raster and *plane_raster are set to the standard + * values. All other values are undefined. + * On return: *memory should point to a block of memory to use. + * Pixel (*ox,*oy) is the first pixel represented in that block. + * *raster = the number of bytes difference between the address of + * component 0 of Pixel(*ox,*oy) and the address of component 0 of + * Pixel(*ox,1+*oy). + * *plane_raster = the number of bytes difference between the + * address of component 0 of Pixel(*ox,*oy) and the address of + * component 1 of Pixel(*ox,*oy), if in planar mode, 0 otherwise. + * *x, *y, *w, *h = rectangle requested within that memory block. + * + */ + int (*display_rectangle_request)(void *handle, void *device, + void **memory, int *ox, int *oy, + int *raster, int *plane_raster, + int *x, int *y, int *w, int *h); +}; + +/* This is the V2 structure, before banding and planar support was added */ +struct display_callback_v2_s { + int size; /* sizeof(struct display_callback_v2) */ + int version_major; /* DISPLAY_VERSION_MAJOR_V2 */ + int version_minor; /* DISPLAY_VERSION_MINOR_V2 */ + int (*display_open)(void *handle, void *device); + int (*display_preclose)(void *handle, void *device); + int (*display_close)(void *handle, void *device); + int (*display_presize)(void *handle, void *device, + int width, int height, int raster, unsigned int format); + int (*display_size)(void *handle, void *device, int width, int height, + int raster, unsigned int format, unsigned char *pimage); + int (*display_sync)(void *handle, void *device); + int (*display_page)(void *handle, void *device, int copies, int flush); + int (*display_update)(void *handle, void *device, int x, int y, + int w, int h); + void *(*display_memalloc)(void *handle, void *device, unsigned long size); + int (*display_memfree)(void *handle, void *device, void *mem); + int (*display_separation)(void *handle, void *device, + int component, const char *component_name, + unsigned short c, unsigned short m, + unsigned short y, unsigned short k); }; /* This is the V1 structure, before separation format was added */ struct display_callback_v1_s { - int size; - int version_major; - int version_minor; + int size; /* sizeof(struct display_callback_v1) */ + int version_major; /* DISPLAY_VERSION_MAJOR_V1 */ + int version_minor; /* DISPLAY_VERSION_MINOR_V1 */ int (*display_open)(void *handle, void *device); int (*display_preclose)(void *handle, void *device); int (*display_close)(void *handle, void *device); @@ -262,4 +391,27 @@ struct display_callback_v1_s { #define DISPLAY_CALLBACK_V1_SIZEOF sizeof(struct display_callback_v1_s) +#define DISPLAY_CALLOUT_GET_CALLBACK 0 +#define DISPLAY_CALLOUT_GET_CALLBACK_LEGACY 1 + +typedef struct { + display_callback *callback; + void *caller_handle; +} gs_display_get_callback_t; + +/* The display device calls a callout to find the callback structure + * and caller_handle from the environment (the DLL caller/user of the + * API). + * It passes: + * id = DISPLAY_CALLOUT_GET_CALLBACK. + * size = sizeof(gs_display_get_callback_t) (or larger); + * data = pointer to gs_display_get_callback_t instance for callout + * handler to fill in. + * + * In order to support the old gsapi_set_display_callback we have a + * related callout, DISPLAY_CALLOUT_GET_CALLBACK_LEGACY. Do not use + * this! + */ + + #endif /* gdevdsp_INCLUDED */ diff --git a/devices/gdevdsp2.h b/devices/gdevdsp2.h index 4dddbf58..3a098873 100644 --- a/devices/gdevdsp2.h +++ b/devices/gdevdsp2.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or @@ -20,23 +20,26 @@ #include "gdevdevn.h" #include "gdevdsp.h" +#include "gxclist.h" typedef struct gx_device_display_s gx_device_display; #define gx_device_display_common\ - gx_device_memory *mdev;\ display_callback *callback;\ void *pHandle;\ + int pHandle_set;\ int nFormat;\ void *pBitmap;\ - unsigned long ulBitmapSize;\ + size_t zBitmapSize;\ int HWResolution_set;\ gs_devn_params devn_params;\ - equivalent_cmyk_color_params equiv_cmyk_colors + equivalent_cmyk_color_params equiv_cmyk_colors;\ + gx_device_procs mutated_procs /* The device descriptor */ struct gx_device_display_s { gx_device_common; + gx_device_clist_mutatable_common; gx_device_display_common; }; diff --git a/devices/gdevepsc.c b/devices/gdevepsc.c index f6fa2b30..830d7668 100644 --- a/devices/gdevepsc.c +++ b/devices/gdevepsc.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/gdevepsn.c b/devices/gdevepsn.c index c69e4b53..7b77b998 100644 --- a/devices/gdevepsn.c +++ b/devices/gdevepsn.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/gdevescp.c b/devices/gdevescp.c index 005fa58a..14e420b5 100644 --- a/devices/gdevescp.c +++ b/devices/gdevescp.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/gdevfax.c b/devices/gdevfax.c index dd783239..27b3c888 100644 --- a/devices/gdevfax.c +++ b/devices/gdevfax.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or @@ -239,14 +239,14 @@ gdev_fax_print_strip(gx_device_printer * pdev, gp_file * prn_stream, int status; if_debug7m('w', mem, - "[w]lnum=%d r=0x%lx,0x%lx,0x%lx w=0x%lx,0x%lx,0x%lx\n", lnum, - (ulong)in, (ulong)r.ptr, (ulong)r.limit, - (ulong)out, (ulong)w.ptr, (ulong)w.limit); + "[w]lnum=%d r="PRI_INTPTR","PRI_INTPTR","PRI_INTPTR" w="PRI_INTPTR","PRI_INTPTR","PRI_INTPTR"\n", lnum, + (intptr_t)in, (intptr_t)r.ptr, (intptr_t)r.limit, + (intptr_t)out, (intptr_t)w.ptr, (intptr_t)w.limit); status = temp->process(ss, &r, &w, lnum == row_end); if_debug7m('w', mem, - "...%d, r=0x%lx,0x%lx,0x%lx w=0x%lx,0x%lx,0x%lx\n", status, - (ulong)in, (ulong)r.ptr, (ulong)r.limit, - (ulong)out, (ulong)w.ptr, (ulong)w.limit); + "...%d, r="PRI_INTPTR","PRI_INTPTR","PRI_INTPTR" w="PRI_INTPTR","PRI_INTPTR","PRI_INTPTR"\n", status, + (intptr_t)in, (intptr_t)r.ptr, (intptr_t)r.limit, + (intptr_t)out, (intptr_t)w.ptr, (intptr_t)w.limit); switch (status) { case 0: /* need more input data */ if (lnum == row_end) diff --git a/devices/gdevfax.h b/devices/gdevfax.h index ca989269..b0419d31 100644 --- a/devices/gdevfax.h +++ b/devices/gdevfax.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/gdevfpng.c b/devices/gdevfpng.c index cc91f672..74cfac70 100644 --- a/devices/gdevfpng.c +++ b/devices/gdevfpng.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/gdevhl7x.c b/devices/gdevhl7x.c index 1a3e5949..66d1db29 100644 --- a/devices/gdevhl7x.c +++ b/devices/gdevhl7x.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/gdevicov.c b/devices/gdevicov.c index 517ca4ff..355be240 100644 --- a/devices/gdevicov.c +++ b/devices/gdevicov.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/gdevijs.c b/devices/gdevijs.c index 3d337c5d..42e1e916 100644 --- a/devices/gdevijs.c +++ b/devices/gdevijs.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or @@ -78,7 +78,7 @@ /* This should go into gdevprn.h, or, better yet, gdevprn should acquire an API for changing resolution. */ int gdev_prn_maybe_realloc_memory(gx_device_printer *pdev, - gdev_prn_space_params *old_space, + gdev_space_params *old_space, int old_width, int old_height, bool old_page_uses_transparency); diff --git a/devices/gdevimgn.c b/devices/gdevimgn.c index 7c707bda..c6e291a4 100644 --- a/devices/gdevimgn.c +++ b/devices/gdevimgn.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/gdevjbig2.c b/devices/gdevjbig2.c index a0dda91f..d6b4ef96 100644 --- a/devices/gdevjbig2.c +++ b/devices/gdevjbig2.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/gdevjpeg.c b/devices/gdevjpeg.c index 229e6ccb..7162acdb 100644 --- a/devices/gdevjpeg.c +++ b/devices/gdevjpeg.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or @@ -437,7 +437,8 @@ jpeg_print_page(gx_device_printer * pdev, gp_file * prn_stream) goto fail; } code = gx_downscaler_init(&ds, (gx_device *)jdev, 8, 8, - jdev->color_info.depth/8, jdev->downscale.downscale_factor, 0, NULL, 0); + jdev->color_info.depth/8, + &jdev->downscale, NULL, 0); if (code < 0) { gs_free_object(mem, jcdp, "jpeg_print_page(jpeg_compress_data)"); jcdp = NULL; @@ -462,8 +463,9 @@ jpeg_print_page(gx_device_printer * pdev, gp_file * prn_stream) state.data.compress = jcdp; /* Add in ICC profile */ state.icc_profile = NULL; /* In case it is not set here */ - if (pdev->icc_struct != NULL && pdev->icc_struct->device_profile[0] != NULL) { - cmm_profile_t *icc_profile = pdev->icc_struct->device_profile[0]; + if (pdev->icc_struct != NULL && + pdev->icc_struct->device_profile[GS_DEFAULT_DEVICE_PROFILE] != NULL) { + cmm_profile_t *icc_profile = pdev->icc_struct->device_profile[GS_DEFAULT_DEVICE_PROFILE]; if (icc_profile->num_comps == pdev->color_info.num_components && !(pdev->icc_struct->usefastcolor)) { state.icc_profile = icc_profile; diff --git a/devices/gdevjpx.c b/devices/gdevjpx.c index e38f5402..b3c3690b 100644 --- a/devices/gdevjpx.c +++ b/devices/gdevjpx.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/gdevl31s.c b/devices/gdevl31s.c index b21b18c8..a3225ea9 100644 --- a/devices/gdevl31s.c +++ b/devices/gdevl31s.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/gdevlbp8.c b/devices/gdevlbp8.c index 3136772a..ca96b69c 100644 --- a/devices/gdevlbp8.c +++ b/devices/gdevlbp8.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/gdevlj56.c b/devices/gdevlj56.c index 6199e5be..a3314e03 100644 --- a/devices/gdevlj56.c +++ b/devices/gdevlj56.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/gdevlp8k.c b/devices/gdevlp8k.c index 58ae0702..60d3c6e3 100644 --- a/devices/gdevlp8k.c +++ b/devices/gdevlp8k.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/gdevlxm.c b/devices/gdevlxm.c index fe577c32..6e557ede 100644 --- a/devices/gdevlxm.c +++ b/devices/gdevlxm.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/gdevmeds.c b/devices/gdevmeds.c index c7899ea3..9435fed3 100644 --- a/devices/gdevmeds.c +++ b/devices/gdevmeds.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/gdevmeds.h b/devices/gdevmeds.h index 8400f5d8..2c247299 100644 --- a/devices/gdevmeds.h +++ b/devices/gdevmeds.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/gdevmgr.c b/devices/gdevmgr.c index 79c299d5..d0b81b11 100644 --- a/devices/gdevmgr.c +++ b/devices/gdevmgr.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or @@ -218,10 +218,11 @@ mgrN_print_page(gx_device_printer *pdev, gp_file *pstream) } } - if ( bdev->mgr_depth != 8 ) + if ( bdev->mgr_depth != 8 ) { data = (byte *)gs_malloc(pdev->memory, mgr_line_size, 1, "mgrN_print_page"); - if (data == NULL) - return_error(gs_error_VMerror); + if (data == NULL) + return_error(gs_error_VMerror); + } while ( !(code = mgr_next_row(&cur)) ) { diff --git a/devices/gdevmgr.h b/devices/gdevmgr.h index 6b8056a5..483237ec 100644 --- a/devices/gdevmgr.h +++ b/devices/gdevmgr.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/gdevmiff.c b/devices/gdevmiff.c index ed45474d..c1d56496 100644 --- a/devices/gdevmiff.c +++ b/devices/gdevmiff.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/gdevn533.c b/devices/gdevn533.c index 35720364..c697d441 100644 --- a/devices/gdevn533.c +++ b/devices/gdevn533.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/gdevo182.c b/devices/gdevo182.c index 713596a0..ec26205c 100644 --- a/devices/gdevo182.c +++ b/devices/gdevo182.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/gdevocr.c b/devices/gdevocr.c new file mode 100644 index 00000000..ddfaa809 --- /dev/null +++ b/devices/gdevocr.c @@ -0,0 +1,265 @@ +/* Copyright (C) 2001-2020 Artifex Software, Inc. + All Rights Reserved. + + This software is provided AS-IS with no warranty, either express or + implied. + + This software is distributed under license and may not be copied, + modified or distributed except as expressly authorized under the terms + of the license contained in the file LICENSE in this distribution. + + Refer to licensing information at http://www.artifex.com or contact + Artifex Software, Inc., 1305 Grant Avenue - Suite 200, Novato, + CA 94945, U.S.A., +1(415)492-9861, for further information. +*/ + + +#include "gdevprn.h" +#include "gdevmem.h" +#include "gdevpccm.h" +#include "gscdefs.h" +#include "gxgetbit.h" +#include "tessocr.h" +#include "gxdownscale.h" + +/* ------ The device descriptors ------ */ + +/* + * Default X and Y resolution. + */ +#define X_DPI 72 +#define Y_DPI 72 + +static dev_proc_print_page(ocr_print_page); +static dev_proc_print_page(hocr_print_page); +static dev_proc_get_params(ocr_get_params); +static dev_proc_put_params(ocr_put_params); +static dev_proc_open_device(hocr_open); +static dev_proc_close_device(hocr_close); + +typedef struct gx_device_ocr_s gx_device_ocr; +struct gx_device_ocr_s { + gx_device_common; + gx_prn_device_common; + gx_downscaler_params downscale; + char language[1024]; + int page_count; +}; + +/* 8-bit gray bitmap -> UTF8 OCRd text */ + +static const gx_device_procs ocr_procs = +prn_color_params_procs(gdev_prn_open, gdev_prn_bg_output_page, gdev_prn_close, + gx_default_gray_map_rgb_color, + gx_default_gray_map_color_rgb, + ocr_get_params, ocr_put_params); +const gx_device_ocr gs_ocr_device = +{ + prn_device_body(gx_device_ocr, ocr_procs, "ocr", + DEFAULT_WIDTH_10THS, DEFAULT_HEIGHT_10THS, + X_DPI, Y_DPI, + 0, 0, 0, 0, /* margins */ + 1, 8, 255, 0, 256, 0, ocr_print_page), + GX_DOWNSCALER_PARAMS_DEFAULTS +}; + +/* 8-bit gray bitmap -> HTML OCRd text */ + +static const gx_device_procs hocr_procs = +prn_color_params_procs(hocr_open, gdev_prn_bg_output_page, hocr_close, + gx_default_gray_map_rgb_color, + gx_default_gray_map_color_rgb, + ocr_get_params, ocr_put_params); +const gx_device_ocr gs_hocr_device = +{ + prn_device_body(gx_device_ocr, hocr_procs, "hocr", + DEFAULT_WIDTH_10THS, DEFAULT_HEIGHT_10THS, + X_DPI, Y_DPI, + 0, 0, 0, 0, /* margins */ + 1, 8, 255, 0, 256, 0, hocr_print_page), + GX_DOWNSCALER_PARAMS_DEFAULTS +}; + +/* ------ Private definitions ------ */ + +#define HOCR_HEADER "<html>\n <body>\n" +#define HOCR_TRAILER " </body>\n</html>\n" + +static int +hocr_open(gx_device *pdev) +{ + gx_device_ocr *dev = (gx_device_ocr *)pdev; + + dev->page_count = 0; + + return gdev_prn_open(pdev); +} + +static int +hocr_close(gx_device *pdev) +{ + gx_device_ocr *dev = (gx_device_ocr *)pdev; + gx_device_printer * const ppdev = (gx_device_printer *)pdev; + + if (dev->page_count > 0 && dev->file != NULL) { + gp_fwrite(HOCR_TRAILER, 1, sizeof(HOCR_TRAILER)-1, dev->file); + } + + return gdev_prn_close(pdev); +} + +static int +ocr_get_params(gx_device * dev, gs_param_list * plist) +{ + gx_device_ocr *pdev = (gx_device_ocr *)dev; + int code, ecode = 0; + gs_param_string langstr; + + if (pdev->language[0]) { + langstr.data = (const byte *)pdev->language; + langstr.size = strlen(pdev->language); + langstr.persistent = false; + } else { + langstr.data = (const byte *)"eng"; + langstr.size = 3; + langstr.persistent = false; + } + if ((code = param_write_string(plist, "OCRLanguage", &langstr)) < 0) + ecode = code; + + if ((code = gx_downscaler_write_params(plist, &pdev->downscale, + GX_DOWNSCALER_PARAMS_MFS)) < 0) + ecode = code; + + code = gdev_prn_get_params(dev, plist); + if (code < 0) + ecode = code; + + return ecode; +} + +static int +ocr_put_params(gx_device *dev, gs_param_list *plist) +{ + gx_device_ocr *pdev = (gx_device_ocr *)dev; + int code, ecode = 0; + gs_param_string langstr; + const char *param_name; + size_t len; + + switch (code = param_read_string(plist, (param_name = "OCRLanguage"), &langstr)) { + case 0: + len = langstr.size; + if (len >= sizeof(pdev->language)) + len = sizeof(pdev->language)-1; + memcpy(pdev->language, langstr.data, len); + pdev->language[len] = 0; + break; + case 1: + break; + default: + ecode = code; + param_signal_error(plist, param_name, ecode); + } + + code = gx_downscaler_read_params(plist, &pdev->downscale, + GX_DOWNSCALER_PARAMS_MFS); + if (code < 0) + { + ecode = code; + param_signal_error(plist, param_name, ecode); + } + + code = gdev_prn_put_params(dev, plist); + if (code < 0) + ecode = code; + + return ecode; +} + +/* OCR a page and write it out. */ +static int +do_ocr_print_page(gx_device_ocr * pdev, gp_file * file, int hocr) +{ + gs_memory_t *mem = pdev->memory; + int row; + byte *data = NULL; + char *out; + int factor = pdev->downscale.downscale_factor; + int height = gx_downscaler_scale(pdev->height, factor); + int width = gx_downscaler_scale(pdev->width, factor); + int raster = bitmap_raster(width*8); + gx_downscaler_t ds; + int code; + + code = gx_downscaler_init(&ds, + (gx_device *)pdev, + 8, /* src_bpc */ + 8, /* dst_bpc */ + 1, /* num_comps */ + &pdev->downscale, + NULL, 0); /* adjust_width_proc, width */ + if (code < 0) + return code; + + data = gs_alloc_bytes(pdev->memory, + raster * height, + "do_ocr_print_page"); + if (data == NULL) { + gx_downscaler_fin(&ds); + code = gs_error_VMerror; + goto done; + } + + for (row = 0; row < height && code >= 0; row++) { + code = gx_downscaler_getbits(&ds, data + row * raster, row); + } + gx_downscaler_fin(&ds); + if (code < 0) + goto done; + + if (hocr) + code = ocr_image_to_hocr(pdev->memory, + width, height, + 8, raster, + (int)pdev->HWResolution[0], + (int)pdev->HWResolution[1], + data, 0, pdev->page_count, + "eng", &out); + else + code = ocr_image_to_utf8(pdev->memory, + width, height, + 8, raster, + (int)pdev->HWResolution[0], + (int)pdev->HWResolution[1], + data, 0, "eng", &out); + if (code < 0) + goto done; + if (out) + { + if (hocr && pdev->page_count == 0) { + gp_fwrite(HOCR_HEADER, 1, sizeof(HOCR_HEADER)-1, file); + } + gp_fwrite(out, 1, strlen(out), file); + gs_free_object(pdev->memory, out, "ocr_image_to_utf8"); + } + + done: + if (data) + gs_free_object(pdev->memory, data, "do_ocr_print_page"); + pdev->page_count++; + + return code; +} + +static int +ocr_print_page(gx_device_printer * pdev, gp_file * file) +{ + return do_ocr_print_page((gx_device_ocr *)pdev, file, 0); +} + +static int +hocr_print_page(gx_device_printer * pdev, gp_file * file) +{ + return do_ocr_print_page((gx_device_ocr *)pdev, file, 1); +} diff --git a/devices/gdevokii.c b/devices/gdevokii.c index 3350f6d9..62fe616c 100644 --- a/devices/gdevokii.c +++ b/devices/gdevokii.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/gdevpbm.c b/devices/gdevpbm.c index 412d0109..fd9b2619 100644 --- a/devices/gdevpbm.c +++ b/devices/gdevpbm.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/gdevpcl.c b/devices/gdevpcl.c index befb1bf2..be196663 100644 --- a/devices/gdevpcl.c +++ b/devices/gdevpcl.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/gdevpcl.h b/devices/gdevpcl.h index 24496cf2..3d167ae4 100644 --- a/devices/gdevpcl.h +++ b/devices/gdevpcl.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/gdevpcx.c b/devices/gdevpcx.c index 91de4abb..137955cb 100644 --- a/devices/gdevpcx.c +++ b/devices/gdevpcx.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/gdevpdfimg.c b/devices/gdevpdfimg.c index 998574c8..313d714f 100644 --- a/devices/gdevpdfimg.c +++ b/devices/gdevpdfimg.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or @@ -30,6 +30,8 @@ #include "gsicc_cache.h" #include "sjpeg.h" +#include "gdevpdfimg.h" + #define COMPRESSION_NONE 1 /* dump mode */ #define COMPRESSION_LZW 2 /* Lempel-Ziv & Welch */ #define COMPRESSION_FLATE 3 @@ -48,58 +50,9 @@ static struct compression_string { { 0, NULL } }; -int pdf_image_open(gx_device *pdev); int PCLm_open(gx_device *pdev); -int pdf_image_close(gx_device * pdev); int PCLm_close(gx_device * pdev); -int pdf_image_put_params_downscale(gx_device * dev, gs_param_list * plist); -int pdf_image_put_params_downscale_cmyk(gx_device * dev, gs_param_list * plist); -int pdf_image_put_params_downscale_cmyk_ets(gx_device * dev, gs_param_list * plist); -int pdf_image_get_params_downscale(gx_device * dev, gs_param_list * plist); -int pdf_image_get_params_downscale_cmyk(gx_device * dev, gs_param_list * plist); -int pdf_image_get_params_downscale_cmyk_ets(gx_device * dev, gs_param_list * plist); - -typedef struct pdfimage_page_s { - int ImageObjectNumber; - gs_offset_t ImageOffset;int LengthObjectNumber; - gs_offset_t LengthOffset; - int PageStreamObjectNumber; - gs_offset_t PageStreamOffset; - int PageDictObjectNumber; - gs_offset_t PageDictOffset; - void *next; -} pdfimage_page; - -typedef struct PCLm_temp_file_s { - char file_name[gp_file_name_sizeof]; - gp_file *file; - stream *strm; - stream *save; - byte *strm_buf; -} PCLm_temp_file_t; - -typedef struct gx_device_pdf_image_s { - gx_device_common; - gx_prn_device_common; - unsigned char Compression; - gx_downscaler_params downscale; - int StripHeight; - float QFactor; - int JPEGQ; - gsicc_link_t *icclink; - stream *strm; - byte *strm_buf; - int NumPages; - gs_offset_t RootOffset; - gs_offset_t PagesOffset; - gs_offset_t xrefOffset; - pdfimage_page *Pages; - PCLm_temp_file_t xref_stream; - PCLm_temp_file_t temp_stream; - int NextObject; -} gx_device_pdf_image; - -static dev_proc_print_page(pdf_image_print_page); + /* ------ The pdfimage8 device ------ */ @@ -268,7 +221,7 @@ static int gdev_pdf_image_begin_page(gx_device_pdf_image *pdf_dev, &rendering_params); } else { pdf_dev->icclink = gsicc_alloc_link_dev(pdev->memory, - profile_struct->device_profile[0], profile_struct->postren_profile, + profile_struct->device_profile[GS_DEFAULT_DEVICE_PROFILE], profile_struct->postren_profile, &rendering_params); } if (pdf_dev->icclink == NULL) { @@ -291,11 +244,11 @@ static int gdev_pdf_image_begin_page(gx_device_pdf_image *pdf_dev, } pdf_dev->strm_buf = gs_alloc_bytes(pdf_dev->memory->non_gc_memory, pdf_dev->width * (pdf_dev->color_info.depth / 8), "pdfimage_open_temp_stream(strm_buf)"); - if (pdf_dev->strm_buf == 0) { + if (pdf_dev->strm_buf == NULL) { pdf_dev->strm->file = NULL; /* Don't close underlying file when we free the stream */ gs_free_object(pdf_dev->memory->non_gc_memory, pdf_dev->strm, "pdfimage_open_temp_stream(strm)"); - pdf_dev->strm = 0; + pdf_dev->strm = NULL; gs_free_object(pdf_dev->memory->non_gc_memory, page, "pdfimage create new page"); return_error(gs_error_VMerror); } @@ -303,6 +256,20 @@ static int gdev_pdf_image_begin_page(gx_device_pdf_image *pdf_dev, stream_puts(pdf_dev->strm, "%PDF-1.3\n"); stream_puts(pdf_dev->strm, "%\307\354\217\242\n"); + + if (pdf_dev->ocr.file_init) { + code = pdf_dev->ocr.file_init(pdf_dev); + if (code < 0) { + gs_free_object(pdf_dev->memory->non_gc_memory, pdf_dev->strm_buf, "pdfimage_open_temp_stream(strm_buf)"); + pdf_dev->strm->file = NULL; /* Don't close underlying file when we free the stream */ + gs_free_object(pdf_dev->memory->non_gc_memory, pdf_dev->strm, + "pdfimage_open_temp_stream(strm)"); + pdf_dev->strm = NULL; + gs_free_object(pdf_dev->memory->non_gc_memory, page, "pdfimage create new page"); + return code; + } + } + pdfimage_write_args_comment(pdf_dev, pdf_dev->strm); pdf_dev->Pages = page; } else { @@ -311,7 +278,7 @@ static int gdev_pdf_image_begin_page(gx_device_pdf_image *pdf_dev, current = current->next; current->next = page; } - page->ImageObjectNumber = (pdf_dev->NumPages * 4) + 3; + page->ImageObjectNumber = (pdf_dev->NumPages * 4) + 3 + pdf_dev->ocr.file_objects; page->LengthObjectNumber = page->ImageObjectNumber + 1; page->PageStreamObjectNumber = page->LengthObjectNumber + 1; page->PageDictObjectNumber = page->PageStreamObjectNumber + 1; @@ -449,19 +416,19 @@ encode(gx_device *pdev, stream **s, const stream_template *t, gs_memory_t *mem) } static int -pdf_image_downscale_and_print_page(gx_device_printer *dev, int factor, - int mfs, int bpc, int num_comps, - int trap_w, int trap_h, const int *trap_order, - int ets) +pdf_image_downscale_and_print_page(gx_device_printer *dev, + gx_downscaler_params *params, + int bpc, int num_comps) { gx_device_pdf_image *const pdf_dev = (gx_device_pdf_image *)dev; int code = 0; byte *data = NULL; int size = gdev_mem_bytes_per_scan_line((gx_device *)dev); - int max_size =size; + int max_size = size; int row; - int height = dev->height/factor; - int width = dev->width/factor; + int factor = params->downscale_factor; + int height = gx_downscaler_scale(dev->height, factor); + int width = gx_downscaler_scale(dev->width, factor); gx_downscaler_t ds; gs_offset_t stream_pos = 0; pdfimage_page *page = pdf_dev->Pages; @@ -474,24 +441,23 @@ pdf_image_downscale_and_print_page(gx_device_printer *dev, int factor, while(page->next) page = page->next; - if (num_comps == 4) { - if (pdf_dev->icclink == NULL) { - code = gx_downscaler_init_trapped_ets(&ds, (gx_device *)dev, 8, bpc, num_comps, - factor, mfs, NULL, /*&fax_adjusted_width*/ 0, /*aw*/ trap_w, trap_h, trap_order, ets); - } else { - code = gx_downscaler_init_trapped_cm_ets(&ds, (gx_device *)dev, 8, bpc, num_comps, - factor, mfs, NULL, /*&fax_adjusted_width*/ 0, /*aw*/ trap_w, trap_h, trap_order, - pdf_image_chunky_post_cm, pdf_dev->icclink, pdf_dev->icclink->num_output, ets); - } + if (num_comps != 4) + params->trap_w = params->trap_h = 0; + if (pdf_dev->icclink == NULL) { + code = gx_downscaler_init(&ds, (gx_device *)dev, + 8, bpc, num_comps, + params, + NULL, /*&fax_adjusted_width*/ + 0 /*aw*/); } else { - if (pdf_dev->icclink == NULL) { - code = gx_downscaler_init_ets(&ds, (gx_device *)dev, 8, bpc, num_comps, - factor, mfs, NULL, /*&fax_adjusted_width*/ 0, /*aw*/ ets); - } else { - code = gx_downscaler_init_cm_ets(&ds, (gx_device *)dev, 8, bpc, num_comps, - factor, mfs, NULL, /*&fax_adjusted_width*/ 0, /*aw*/ pdf_image_chunky_post_cm, pdf_dev->icclink, - pdf_dev->icclink->num_output, ets); - } + code = gx_downscaler_init_cm(&ds, (gx_device *)dev, + 8, bpc, num_comps, + params, + NULL, /*&fax_adjusted_width*/ + 0, /*aw*/ + pdf_image_chunky_post_cm, + pdf_dev->icclink, + pdf_dev->icclink->num_output); } if (code < 0) return code; @@ -502,6 +468,16 @@ pdf_image_downscale_and_print_page(gx_device_printer *dev, int factor, return_error(gs_error_VMerror); } + if (pdf_dev->ocr.begin_page) { + code = pdf_dev->ocr.begin_page(pdf_dev, width, height, num_comps*8); + if (code < 0) + { + gs_free_object(dev->memory, data, "pdf_image_print_page(data)"); + gx_downscaler_fin(&ds); + return code; + } + } + pprintd1(pdf_dev->strm, "%d 0 obj\n", page->ImageObjectNumber); pprintd1(pdf_dev->strm, "<<\n/Length %d 0 R\n", page->LengthObjectNumber); stream_puts(pdf_dev->strm, "/Subtype /Image\n"); @@ -558,13 +534,15 @@ pdf_image_downscale_and_print_page(gx_device_printer *dev, int factor, code = gx_downscaler_getbits(&ds, data, row); if (code < 0) break; + if (pdf_dev->ocr.line) + pdf_dev->ocr.line(pdf_dev, data); stream_write(pdf_dev->strm, data, width * num_comps); } if (code < 0) { gs_free_object(dev->memory, data, "pdf_image_print_page(data)"); gx_downscaler_fin(&ds); - return code;; + return code; } switch(pdf_dev->Compression) { @@ -588,9 +566,26 @@ pdf_image_downscale_and_print_page(gx_device_printer *dev, int factor, page->PageStreamOffset = stell(pdf_dev->strm); pprintd1(pdf_dev->strm, "%d 0 obj\n", page->PageStreamObjectNumber); - gs_sprintf(Buffer, "%f 0 0 %f 0 0 cm\n/Im1 Do", (width / (pdf_dev->HWResolution[0] / 72)) * factor, (height / (pdf_dev->HWResolution[1] / 72)) * factor); - pprintd1(pdf_dev->strm, "<<\n/Length %d\n>>\nstream\n", strlen(Buffer)); - stream_puts(pdf_dev->strm, Buffer); + stream_puts(pdf_dev->strm, "<<\n/Filter/FlateDecode/Length \n>>\nstream\n"); + stream_pos = stell(pdf_dev->strm); + encode((gx_device *)pdf_dev, &pdf_dev->strm, &s_zlibE_template, pdf_dev->memory->non_gc_memory); + if (pdf_dev->ocr.end_page) + stream_puts(pdf_dev->strm, "q\n"); + pprintd2(pdf_dev->strm, "%d 0 0 %d 0 0 cm\n/Im1 Do", + (int)((width / (pdf_dev->HWResolution[0] / 72)) * factor), + (int)((height / (pdf_dev->HWResolution[1] / 72)) * factor)); + if (pdf_dev->ocr.end_page) { + stream_puts(pdf_dev->strm, "\nQ"); + pdf_dev->ocr.end_page(pdf_dev); + } + s_close_filters(&pdf_dev->strm, s); + { + gs_offset_t pos = stell(pdf_dev->strm); + gs_offset_t len = pos - stream_pos; + sseek(pdf_dev->strm, stream_pos - 21); + pprintd1(pdf_dev->strm, "%d", (int)len); + sseek(pdf_dev->strm, pos); + } stream_puts(pdf_dev->strm, "\nendstream\nendobj\n"); page->PageDictOffset = stell(pdf_dev->strm); @@ -599,8 +594,10 @@ pdf_image_downscale_and_print_page(gx_device_printer *dev, int factor, stream_puts(pdf_dev->strm, "/Type /Page\n/Parent 2 0 R\n"); gs_sprintf(Buffer, "/MediaBox [0 0 %f %f]\n", ((double)pdf_dev->width / pdf_dev->HWResolution[0]) * 72, ((double)pdf_dev->height / pdf_dev->HWResolution[1]) * 72); stream_puts(pdf_dev->strm, Buffer); - pprintd1(pdf_dev->strm, "/Resources <<\n/XObject <<\n/Im1 %d 0 R\n>>\n>>\n>>\n", page->ImageObjectNumber); - stream_puts(pdf_dev->strm, "endobj\n"); + pprintd1(pdf_dev->strm, "/Resources <<\n/XObject <<\n/Im1 %d 0 R\n>>\n", page->ImageObjectNumber); + if (pdf_dev->ocr.file_init) + stream_puts(pdf_dev->strm, "/Font <<\n/Ft0 3 0 R\n>>\n"); + stream_puts(pdf_dev->strm, ">>\n>>\nendobj\n"); gx_downscaler_fin(&ds); gs_free_object(dev->memory, data, "pdf_image_print_page(data)"); @@ -703,10 +700,11 @@ static void write_xref_entry (stream *s, gs_offset_t Offset) static void pdf_store_default_Producer(char *buf) { - if ((gs_revision % 100) == 0) - gs_sprintf(buf, "(%s %1.1f)", gs_product, gs_revision / 100.0); - else - gs_sprintf(buf, "(%s %1.2f)", gs_product, gs_revision / 100.0); + int major = (int)(gs_revision / 1000); + int minor = (int)(gs_revision - (major * 1000)) / 10; + int patch = gs_revision % 10; + + gs_sprintf(buf, "(%s %d.%02d.%d)", gs_product, major, minor, patch); } static int pdf_image_finish_file(gx_device_pdf_image *pdf_dev, int PCLm) @@ -761,9 +759,16 @@ static int pdf_image_finish_file(gx_device_pdf_image *pdf_dev, int PCLm) if (PCLm) pprintd1(pdf_dev->strm, "xref\n0 %d\n0000000000 65536 f \n", pdf_dev->NextObject); else - pprintd1(pdf_dev->strm, "xref\n0 %d\n0000000000 65536 f \n", (pdf_dev->NumPages * 4) + 3); + pprintd1(pdf_dev->strm, "xref\n0 %d\n0000000000 65536 f \n", (pdf_dev->NumPages * 4) + 3 + pdf_dev->ocr.file_objects); write_xref_entry(pdf_dev->strm, pdf_dev->RootOffset); write_xref_entry(pdf_dev->strm, pdf_dev->PagesOffset); + if (pdf_dev->ocr.file_objects) { + int i; + + for (i = 0; i < OCR_MAX_FILE_OBJECTS; i++) + if (pdf_dev->ocr.file_object_offset[i]) + write_xref_entry(pdf_dev->strm, pdf_dev->ocr.file_object_offset[i]); + } if (!PCLm) { page = pdf_dev->Pages; @@ -774,7 +779,7 @@ static int pdf_image_finish_file(gx_device_pdf_image *pdf_dev, int PCLm) write_xref_entry(pdf_dev->strm, page->PageDictOffset); page = page->next; } - pprintd1(pdf_dev->strm, "trailer\n<<\n/Size %d\n/Root 1 0 R\n/ID [", (pdf_dev->NumPages * 4) + 3); + pprintd1(pdf_dev->strm, "trailer\n<<\n/Size %d\n/Root 1 0 R\n/ID [", (pdf_dev->NumPages * 4) + 3 + pdf_dev->ocr.file_objects); pdf_compute_fileID(pdf_dev, fileID, CreationDate, Title, Producer); write_fileID(pdf_dev->strm, (const byte *)&fileID, 16); write_fileID(pdf_dev->strm, (const byte *)&fileID, 16); @@ -844,7 +849,7 @@ static int pdf_image_finish_file(gx_device_pdf_image *pdf_dev, int PCLm) return 0; } -static int +int pdf_image_print_page(gx_device_printer * pdev, gp_file * file) { gx_device_pdf_image *const pdf_dev = (gx_device_pdf_image *)pdev; @@ -857,11 +862,9 @@ pdf_image_print_page(gx_device_printer * pdev, gp_file * file) return code; code = pdf_image_downscale_and_print_page(pdev, - pdf_dev->downscale.downscale_factor, - pdf_dev->downscale.min_feature_size, - 8, pdf_dev->color_info.num_components, - 0, 0, NULL, - pdf_dev->downscale.ets); + &pdf_dev->downscale, + 8, + pdf_dev->color_info.num_components); if (code < 0) return code; @@ -908,6 +911,7 @@ pdf_image_open(gx_device *pdev) } if (ppdev->OpenOutputFile) code = gdev_prn_open_printer_seekable(pdev, 1, true); + return code; } @@ -1209,6 +1213,7 @@ PCLm_open(gx_device *pdev) while(pdev->child) pdev = pdev->child; + memset(&ppdev->ocr, 0, sizeof(ppdev->ocr)); ppdev->file = NULL; ppdev->Pages = NULL; ppdev->NumPages = 0; @@ -1280,7 +1285,7 @@ static int gdev_PCLm_begin_page(gx_device_pdf_image *pdf_dev, &rendering_params); } else { pdf_dev->icclink = gsicc_alloc_link_dev(pdev->memory, - profile_struct->device_profile[0], profile_struct->postren_profile, + profile_struct->device_profile[GS_DEFAULT_DEVICE_PROFILE], profile_struct->postren_profile, &rendering_params); } if (pdf_dev->icclink == NULL) { @@ -1331,19 +1336,19 @@ static int gdev_PCLm_begin_page(gx_device_pdf_image *pdf_dev, } static int -PCLm_downscale_and_print_page(gx_device_printer *dev, int factor, - int mfs, int bpc, int num_comps, - int trap_w, int trap_h, const int *trap_order, - int ets) +PCLm_downscale_and_print_page(gx_device_printer *dev, + int bpc, int num_comps) { gx_device_pdf_image *const pdf_dev = (gx_device_pdf_image *)dev; int code = 0; uint Read; byte *data = NULL; int size = gdev_mem_bytes_per_scan_line((gx_device *)dev); - int max_size =size; + int max_size = size; int row, NumStrips; double StripDecrement; + const gx_downscaler_params *params = &pdf_dev->downscale; + int factor = params->downscale_factor; int height = dev->height/factor; int width = dev->width/factor; gx_downscaler_t ds; @@ -1358,12 +1363,20 @@ PCLm_downscale_and_print_page(gx_device_printer *dev, int factor, page = page->next; if (pdf_dev->icclink == NULL) { - code = gx_downscaler_init_ets(&ds, (gx_device *)dev, 8, bpc, num_comps, - factor, mfs, NULL, /*&fax_adjusted_width*/ 0, /*aw*/ ets); + code = gx_downscaler_init(&ds, (gx_device *)dev, + 8, bpc, num_comps, + params, + NULL, /*&fax_adjusted_width*/ + 0 /*aw*/); } else { - code = gx_downscaler_init_cm_ets(&ds, (gx_device *)dev, 8, bpc, num_comps, - factor, mfs, NULL, /*&fax_adjusted_width*/ 0, /*aw*/ pdf_image_chunky_post_cm, pdf_dev->icclink, - pdf_dev->icclink->num_output, ets); + code = gx_downscaler_init_cm(&ds, (gx_device *)dev, + 8, bpc, num_comps, + params, + NULL, /*&fax_adjusted_width*/ + 0, /*aw*/ + pdf_image_chunky_post_cm, + pdf_dev->icclink, + pdf_dev->icclink->num_output); } if (code < 0) return code; @@ -1386,7 +1399,7 @@ PCLm_downscale_and_print_page(gx_device_printer *dev, int factor, pprintd1(pdf_dev->strm, "%d 0 obj\n", page->PageDictObjectNumber); pprintd1(pdf_dev->strm, "<<\n/Contents %d 0 R\n", page->PageStreamObjectNumber); stream_puts(pdf_dev->strm, "/Type /Page\n/Parent 2 0 R\n"); - gs_sprintf(Buffer, "/MediaBox [0 0 %f %f]\n", ((double)pdf_dev->width / pdf_dev->HWResolution[0]) * 72, ((double)pdf_dev->height / pdf_dev->HWResolution[1]) * 72); + gs_sprintf(Buffer, "/MediaBox [0 0 %.3f %.3f]\n", ((double)pdf_dev->width / pdf_dev->HWResolution[0]) * 72, ((double)pdf_dev->height / pdf_dev->HWResolution[1]) * 72); stream_puts(pdf_dev->strm, Buffer); stream_puts(pdf_dev->strm, "/Resources <<\n/XObject <<\n"); @@ -1405,9 +1418,9 @@ PCLm_downscale_and_print_page(gx_device_printer *dev, int factor, double adjusted; adjusted = height - (row * pdf_dev->StripHeight); adjusted = adjusted / (pdf_dev->HWResolution[1] / (factor * 72)); - gs_sprintf(Buffer, "%f 0 0 %f 0 0 cm\n/Im%d Do Q\n", (width / (pdf_dev->HWResolution[0] / 72)) * factor, adjusted, row); + gs_sprintf(Buffer, "%.3f 0 0 %.3f 0 0 cm\n/Im%d Do Q\n", (width / (pdf_dev->HWResolution[0] / 72)) * factor, adjusted, row); } else - gs_sprintf(Buffer, "%f 0 0 %f 0 %f cm\n/Im%d Do Q\n", (width / (pdf_dev->HWResolution[0] / 72)) * factor, StripDecrement, ((height / (pdf_dev->HWResolution[1] / 72)) * factor) - (StripDecrement * (row + 1)), row); + gs_sprintf(Buffer, "%.3f 0 0 %.3f 0 %f cm\n/Im%d Do Q\n", (width / (pdf_dev->HWResolution[0] / 72)) * factor, StripDecrement, ((height / (pdf_dev->HWResolution[1] / 72)) * factor) - (StripDecrement * (row + 1)), row); stream_puts(pdf_dev->temp_stream.strm, Buffer); pprintd2(pdf_dev->strm, "/Im%d %d 0 R\n", row, page->ImageObjectNumber + (row * 2)); } @@ -1660,11 +1673,7 @@ PCLm_print_page(gx_device_printer * pdev, gp_file * file) return code; code = PCLm_downscale_and_print_page(pdev, - pdf_dev->downscale.downscale_factor, - pdf_dev->downscale.min_feature_size, - 8, pdf_dev->color_info.num_components, - 0, 0, NULL, - pdf_dev->downscale.ets); + 8, pdf_dev->color_info.num_components); if (code < 0) return code; diff --git a/devices/gdevpdfimg.h b/devices/gdevpdfimg.h new file mode 100644 index 00000000..baf8175e --- /dev/null +++ b/devices/gdevpdfimg.h @@ -0,0 +1,105 @@ +/* Copyright (C) 2001-2020 Artifex Software, Inc. + All Rights Reserved. + + This software is provided AS-IS with no warranty, either express or + implied. + + This software is distributed under license and may not be copied, + modified or distributed except as expressly authorized under the terms + of the license contained in the file LICENSE in this distribution. + + Refer to licensing information at http://www.artifex.com or contact + Artifex Software, Inc., 1305 Grant Avenue - Suite 200, Novato, + CA 94945, U.S.A., +1(415)492-9861, for further information. +*/ + +#ifndef gdevpdfimg_h_INCLUDED +#define gdevpdfimg_h_INCLUDED + +#include "gdevprn.h" +#include "gxdownscale.h" + +typedef struct pdfimage_page_s { + int ImageObjectNumber; + gs_offset_t ImageOffset; + int LengthObjectNumber; + gs_offset_t LengthOffset; + int PageStreamObjectNumber; + gs_offset_t PageStreamOffset; + int PageDictObjectNumber; + gs_offset_t PageDictOffset; + void *next; +} pdfimage_page; + +typedef struct PCLm_temp_file_s { + char file_name[gp_file_name_sizeof]; + gp_file *file; + stream *strm; + stream *save; + byte *strm_buf; +} PCLm_temp_file_t; + +#define OCR_MAX_FILE_OBJECTS 8 + +typedef struct gx_device_pdf_image_s { + gx_device_common; + gx_prn_device_common; + unsigned char Compression; + gx_downscaler_params downscale; + int StripHeight; + float QFactor; + int JPEGQ; + gsicc_link_t *icclink; + stream *strm; + byte *strm_buf; + int NumPages; + gs_offset_t RootOffset; + gs_offset_t PagesOffset; + gs_offset_t xrefOffset; + pdfimage_page *Pages; + PCLm_temp_file_t xref_stream; + PCLm_temp_file_t temp_stream; + int NextObject; + + /* OCR data */ + struct { + char language[1024]; + void *state; + + /* Number of "file level" objects - i.e. the number of objects + * required to define the font. */ + int file_objects; + gs_offset_t file_object_offset[OCR_MAX_FILE_OBJECTS]; + int w; + int h; + int y; + int xres; + int yres; + float cur_x; + float cur_y; + float cur_size; + float cur_scale; + float wordbox[4]; + int *word_chars; + int word_len; + int word_max; + void *data; + /* Write the font definition. */ + int (*file_init)(struct gx_device_pdf_image_s *dev); + int (*begin_page)(struct gx_device_pdf_image_s *dev, int w, int h, int bpp); + void (*line)(struct gx_device_pdf_image_s *dev, void *row); + int (*end_page)(struct gx_device_pdf_image_s *dev); + } ocr; +} gx_device_pdf_image; + +int pdf_image_open(gx_device *pdev); +int pdf_image_close(gx_device * pdev); +int pdf_image_put_params_downscale(gx_device * dev, gs_param_list * plist); +int pdf_image_put_params_downscale_cmyk(gx_device * dev, gs_param_list * plist); +int pdf_image_put_params_downscale_cmyk_ets(gx_device * dev, gs_param_list * plist); +int pdf_image_get_params_downscale(gx_device * dev, gs_param_list * plist); +int pdf_image_get_params_downscale_cmyk(gx_device * dev, gs_param_list * plist); +int pdf_image_get_params_downscale_cmyk_ets(gx_device * dev, gs_param_list * plist); +dev_proc_print_page(pdf_image_print_page); + +#endif diff --git a/devices/gdevpdfocr.c b/devices/gdevpdfocr.c new file mode 100644 index 00000000..95d358b1 --- /dev/null +++ b/devices/gdevpdfocr.c @@ -0,0 +1,727 @@ +/* Copyright (C) 2001-2020 Artifex Software, Inc. + All Rights Reserved. + + This software is provided AS-IS with no warranty, either express or + implied. + + This software is distributed under license and may not be copied, + modified or distributed except as expressly authorized under the terms + of the license contained in the file LICENSE in this distribution. + + Refer to licensing information at http://www.artifex.com or contact + Artifex Software, Inc., 1305 Grant Avenue - Suite 200, Novato, + CA 94945, U.S.A., +1(415)492-9861, for further information. +*/ + +#include "stdint_.h" +#include "gdevprn.h" +#include "gxdownscale.h" +#include "gdevkrnlsclass.h" /* 'standard' built in subclasses, currently First/Last Page and obejct filter */ +#include "stream.h" +#include "spprint.h" +#include "time_.h" +#include "smd5.h" +#include "sstring.h" +#include "strimpl.h" +#include "slzwx.h" +#include "szlibx.h" +#include "sdct.h" +#include "srlx.h" +#include "gsicc_cache.h" +#include "sjpeg.h" + +#include "gdevpdfimg.h" + +#define COMPRESSION_NONE 1 /* dump mode */ +#define COMPRESSION_LZW 2 /* Lempel-Ziv & Welch */ +#define COMPRESSION_FLATE 3 +#define COMPRESSION_JPEG 4 +#define COMPRESSION_RLE 5 + +static struct compression_string { + unsigned char id; + const char *str; +} compression_strings [] = { + { COMPRESSION_NONE, "None" }, + { COMPRESSION_LZW, "LZW" }, /* Not supported in PCLm */ + { COMPRESSION_FLATE, "Flate" }, + { COMPRESSION_JPEG, "JPEG" }, + { COMPRESSION_RLE, "RLE" }, + { 0, NULL } +}; + +int pdf_ocr_open(gx_device *pdev); +int pdf_ocr_close(gx_device *pdev); + + +static int +pdfocr_put_some_params(gx_device * dev, gs_param_list * plist) +{ + gx_device_pdf_image *const pdf_dev = (gx_device_pdf_image *)dev; + int ecode = 0; + int code; + gs_param_string langstr; + const char *param_name; + size_t len; + + switch (code = param_read_string(plist, (param_name = "OCRLanguage"), &langstr)) { + case 0: + len = langstr.size; + if (len >= sizeof(pdf_dev->ocr.language)) + len = sizeof(pdf_dev->ocr.language)-1; + memcpy(pdf_dev->ocr.language, langstr.data, len); + pdf_dev->ocr.language[len] = 0; + break; + case 1: + break; + default: + ecode = code; + param_signal_error(plist, param_name, ecode); + } + + return code; +} + +static int +pdfocr_put_params_downscale_cmyk(gx_device * dev, gs_param_list * plist) +{ + int code = pdfocr_put_some_params(dev, plist); + if (code < 0) + return code; + return pdf_image_put_params_downscale_cmyk(dev, plist); +} + +static int +pdfocr_put_params_downscale(gx_device * dev, gs_param_list * plist) +{ + int code = pdfocr_put_some_params(dev, plist); + if (code < 0) + return code; + return pdf_image_put_params_downscale(dev, plist); +} + +static int +pdfocr_get_some_params(gx_device * dev, gs_param_list * plist) +{ + gx_device_pdf_image *const pdf_dev = (gx_device_pdf_image *)dev; + int code = 0; + int ecode = 0; + gs_param_string langstr; + + if (pdf_dev->ocr.language[0]) { + langstr.data = (const byte *)pdf_dev->ocr.language; + langstr.size = strlen(pdf_dev->ocr.language); + langstr.persistent = false; + } else { + langstr.data = (const byte *)"eng"; + langstr.size = 3; + langstr.persistent = false; + } + if ((code = param_write_string(plist, "OCRLanguage", &langstr)) < 0) + ecode = code; + + return ecode; +} + +static int +pdfocr_get_params_downscale_cmyk(gx_device * dev, gs_param_list * plist) +{ + int code = pdfocr_get_some_params(dev, plist); + if (code < 0) + return code; + + return pdf_image_get_params_downscale_cmyk(dev, plist); +} + +static int +pdfocr_get_params_downscale(gx_device * dev, gs_param_list * plist) +{ + int code = pdfocr_get_some_params(dev, plist); + if (code < 0) + return code; + + return pdf_image_get_params_downscale(dev, plist); +} + +/* ------ The pdfocr8 device ------ */ + +static const gx_device_procs pdfocr8_procs = +prn_color_params_procs(pdf_ocr_open, + gdev_prn_output_page_seekable, + pdf_ocr_close, + gx_default_gray_map_rgb_color, + gx_default_gray_map_color_rgb, + pdfocr_get_params_downscale, + pdfocr_put_params_downscale); + +const gx_device_pdf_image gs_pdfocr8_device = { + prn_device_body(gx_device_pdf_image, + pdfocr8_procs, + "pdfocr8", + DEFAULT_WIDTH_10THS, DEFAULT_HEIGHT_10THS, + 600, 600, /* 600 dpi by default */ + 0, 0, 0, 0, /* Margins */ + 1, /* num components */ + 8, /* bits per sample */ + 255, 0, 256, 0, + pdf_image_print_page), + 3, + GX_DOWNSCALER_PARAMS_DEFAULTS, + 0, /* StripHeight */ + 0.0, /* QFactor */ + 0 /* JPEGQ */ +}; + +/* ------ The pdfocr24 device ------ */ + +static const gx_device_procs pdfocr24_procs = +prn_color_params_procs(pdf_ocr_open, + gdev_prn_output_page_seekable, + pdf_ocr_close, + gx_default_rgb_map_rgb_color, + gx_default_rgb_map_color_rgb, + pdfocr_get_params_downscale, + pdfocr_put_params_downscale); + +const gx_device_pdf_image gs_pdfocr24_device = { + prn_device_body(gx_device_pdf_image, + pdfocr24_procs, + "pdfocr24", + DEFAULT_WIDTH_10THS, DEFAULT_HEIGHT_10THS, + 600, 600, /* 600 dpi by default */ + 0, 0, 0, 0, /* Margins */ + 3, /* num components */ + 24, /* bits per sample */ + 255, 255, 256, 256, + pdf_image_print_page), + 3, + GX_DOWNSCALER_PARAMS_DEFAULTS, + 0, /* StripHeight */ + 0.0, /* QFactor */ + 0 /* JPEGQ */ +}; + +/* ------ The pdfocr32 device ------ */ + +static const gx_device_procs pdfocr32_procs = { + pdf_ocr_open, NULL, NULL, gdev_prn_output_page_seekable, pdf_ocr_close, + NULL, cmyk_8bit_map_color_cmyk, NULL, NULL, NULL, NULL, NULL, NULL, + pdfocr_get_params_downscale_cmyk, pdfocr_put_params_downscale_cmyk, + cmyk_8bit_map_cmyk_color, NULL, NULL, NULL, gx_page_device_get_page_device +}; + +const gx_device_pdf_image gs_pdfocr32_device = { + prn_device_body(gx_device_pdf_image, + pdfocr32_procs, + "pdfocr32", + DEFAULT_WIDTH_10THS, DEFAULT_HEIGHT_10THS, + 600, 600, /* 600 dpi by default */ + 0, 0, 0, 0, /* Margins */ + 4, /* num components */ + 32, /* bits per sample */ + 255, 255, 256, 256, + pdf_image_print_page), + 3, + GX_DOWNSCALER_PARAMS_DEFAULTS, + 0, /* StripHeight */ + 0.0, /* QFactor */ + 0 /* JPEGQ */ +}; + +/* Funky font */ +static const char funky_font[] = +"3 0 obj\n<</BaseFont/GlyphLessFont/DescendantFonts[4 0 R]" +"/Encoding/Identity-H/Subtype/Type0/ToUnicode 6 0 R/Type /Font" +">>\nendobj\n"; + +static const char funky_font2[] = +"4 0 obj\n<</BaseFont/GlyphLessFont" +"/CIDToGIDMap 5 0 R\n/CIDSystemInfo<<\n" +"/Ordering (Identity)/Registry (Adobe)/Supplement 0>>" +"/FontDescriptor 7 0 R/Subtype /CIDFontType2/Type/Font" +"/DW 500>>\nendobj\n"; + +static const char funky_font3[] = +"5 0 obj\n<</Length 210/Filter/FlateDecode" +">>stream\n"; + +static const char funky_font3a[] = { +0x78, 0x9c, 0xec, 0xc2, 0x01, 0x09, 0x00, 0x00, +0x00, 0x02, 0xa0, 0xfa, 0x7f, 0xba, 0x21, 0x89, +0xa6, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x80, 0x7b, 0x03, 0x00, 0x00, 0xff, 0xff, 0xec, +0xc2, 0x01, 0x0d, 0x00, 0x00, 0x00, 0xc2, 0x20, +0xdf, 0xbf, 0xb4, 0x45, 0x18, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0xeb, 0x00, 0x00, +0x00, 0xff, 0xff, 0xec, 0xc2, 0x01, 0x0d, 0x00, +0x00, 0x00, 0xc2, 0x20, 0xdf, 0xbf, 0xb4, 0x45, +0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0xeb, 0x00, 0x00, 0x00, 0xff, 0xff, 0xed, +0xc2, 0x01, 0x0d, 0x00, 0x00, 0x00, 0xc2, 0x20, +0xdf, 0xbf, 0xb4, 0x45, 0x18, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0xeb, 0x00, 0xff, +0x00, 0x10 +}; + +static const char funky_font3b[] = +"endstream\nendobj\n"; + +static const char funky_font4[] = +"6 0 obj\n<</Length 353>>\nstream\n" +"/CIDInit /ProcSet findresource begin\n" +"12 dict begin\n" +"begincmap\n" +"/CIDSystemInfo\n" +"<<\n" +" /Registry (Adobe)\n" +" /Ordering (UCS)\n" +" /Supplement 0\n" +">> def\n" +"/CMapName /Adobe-Identify-UCS def\n" +"/CMapType 2 def\n" +"1 begincodespacerange\n" +"<0000> <FFFF>\n" +"endcodespacerange\n" +"1 beginbfrange\n" +"<0000> <FFFF> <0000>\n" +"endbfrange\n" +"endcmap\n" +"CMapName currentdict /CMap defineresource pop\n" +"end\n" +"end\n" +"endstream\n" +"endobj\n"; + +static const char funky_font5[] = +"7 0 obj\n" +"<</Ascent 1000/CapHeight 1000/Descent -1/Flags 5" +"/FontBBox[0 0 500 1000]/FontFile2 8 0 R/FontName/GlyphLessFont" +"/ItalicAngle 0/StemV 80/Type/FontDescriptor>>\nendobj\n"; + +static const char funky_font6[] = +"8 0 obj\n<</Length 572/Length1 572>>\nstream\n"; + +static const char funky_font6a[] = +{ +0x00, 0x01, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x80, +0x00, 0x03, 0x00, 0x20, 0x4f, 0x53, 0x2f, 0x32, +0x56, 0xde, 0xc8, 0x94, 0x00, 0x00, 0x01, 0x28, +0x00, 0x00, 0x00, 0x60, 0x63, 0x6d, 0x61, 0x70, +0x00, 0x0a, 0x00, 0x34, 0x00, 0x00, 0x01, 0x90, +0x00, 0x00, 0x00, 0x1e, 0x67, 0x6c, 0x79, 0x66, +0x15, 0x22, 0x41, 0x24, 0x00, 0x00, 0x01, 0xb8, +0x00, 0x00, 0x00, 0x18, 0x68, 0x65, 0x61, 0x64, +0x0b, 0x78, 0xf1, 0x65, 0x00, 0x00, 0x00, 0xac, +0x00, 0x00, 0x00, 0x36, 0x68, 0x68, 0x65, 0x61, +0x0c, 0x02, 0x04, 0x02, 0x00, 0x00, 0x00, 0xe4, +0x00, 0x00, 0x00, 0x24, 0x68, 0x6d, 0x74, 0x78, +0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x88, +0x00, 0x00, 0x00, 0x08, 0x6c, 0x6f, 0x63, 0x61, +0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x01, 0xb0, +0x00, 0x00, 0x00, 0x06, 0x6d, 0x61, 0x78, 0x70, +0x00, 0x04, 0x00, 0x05, 0x00, 0x00, 0x01, 0x08, +0x00, 0x00, 0x00, 0x20, 0x6e, 0x61, 0x6d, 0x65, +0xf2, 0xeb, 0x16, 0xda, 0x00, 0x00, 0x01, 0xd0, +0x00, 0x00, 0x00, 0x4b, 0x70, 0x6f, 0x73, 0x74, +0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x02, 0x1c, +0x00, 0x00, 0x00, 0x20, 0x00, 0x01, 0x00, 0x00, +0x00, 0x01, 0x00, 0x00, 0xb0, 0x94, 0x71, 0x10, +0x5f, 0x0f, 0x3c, 0xf5, 0x04, 0x07, 0x08, 0x00, +0x00, 0x00, 0x00, 0x00, 0xcf, 0x9a, 0xfc, 0x6e, +0x00, 0x00, 0x00, 0x00, 0xd4, 0xc3, 0xa7, 0xf2, +0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x08, 0x00, +0x00, 0x00, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, +0x08, 0x00, 0xff, 0xff, 0x00, 0x00, 0x04, 0x00, +0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x01, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, +0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x04, +0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x03, 0x00, 0x00, 0x01, 0x90, 0x00, 0x05, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x05, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x47, 0x4f, 0x4f, 0x47, 0x00, 0x40, +0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xff, +0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x80, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, +0x00, 0x00, 0x00, 0x14, 0x00, 0x03, 0x00, 0x00, +0x00, 0x00, 0x00, 0x14, 0x00, 0x06, 0x00, 0x0a, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, +0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, +0x08, 0x00, 0x00, 0x03, 0x00, 0x00, 0x31, 0x21, +0x11, 0x21, 0x04, 0x00, 0xfc, 0x00, 0x08, 0x00, +0x00, 0x00, 0x00, 0x03, 0x00, 0x2a, 0x00, 0x00, +0x00, 0x03, 0x00, 0x00, 0x00, 0x05, 0x00, 0x16, +0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, +0x00, 0x05, 0x00, 0x0b, 0x00, 0x16, 0x00, 0x03, +0x00, 0x01, 0x04, 0x09, 0x00, 0x05, 0x00, 0x16, +0x00, 0x00, 0x00, 0x56, 0x00, 0x65, 0x00, 0x72, +0x00, 0x73, 0x00, 0x69, 0x00, 0x6f, 0x00, 0x6e, +0x00, 0x20, 0x00, 0x31, 0x00, 0x2e, 0x00, 0x30, +0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, +0x31, 0x2e, 0x30, 0x00, 0x00, 0x01, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00 +}; + +static const char funky_font6b[] = +"endstream\nendobj\n"; + +static int +ocr_file_init(gx_device_pdf_image *dev) +{ + const char *language = dev->ocr.language; + if (language == NULL || language[0] == 0) + language = "eng"; + + dev->ocr.file_object_offset[dev->ocr.file_objects++] = stell(dev->strm); + stream_write(dev->strm, funky_font, sizeof(funky_font)-1); + dev->ocr.file_object_offset[dev->ocr.file_objects++] = stell(dev->strm); + stream_write(dev->strm, funky_font2, sizeof(funky_font2)-1); + dev->ocr.file_object_offset[dev->ocr.file_objects++] = stell(dev->strm); + stream_write(dev->strm, funky_font3, sizeof(funky_font3)-1); + stream_write(dev->strm, funky_font3a, sizeof(funky_font3a)); + stream_write(dev->strm, funky_font3b, sizeof(funky_font3b)-1); + dev->ocr.file_object_offset[dev->ocr.file_objects++] = stell(dev->strm); + stream_write(dev->strm, funky_font4, sizeof(funky_font4)-1); + dev->ocr.file_object_offset[dev->ocr.file_objects++] = stell(dev->strm); + stream_write(dev->strm, funky_font5, sizeof(funky_font5)-1); + dev->ocr.file_object_offset[dev->ocr.file_objects++] = stell(dev->strm); + stream_write(dev->strm, funky_font6, sizeof(funky_font6)-1); + stream_write(dev->strm, funky_font6a, sizeof(funky_font6a)); + stream_write(dev->strm, funky_font6b, sizeof(funky_font6b)-1); + + return ocr_init_api(dev->memory, language, &dev->ocr.state); +} + +static void +ocr_line8(gx_device_pdf_image *dev, void *row) +{ + int w = dev->ocr.w; + int raster = (w+3)&~3; + char *in = (char *)row; + char *out = ((char *)dev->ocr.data) + raster * dev->ocr.y++; + int i; + +#if ARCH_IS_BIG_ENDIAN + memcpy(out, in, dev->ocr.w); +#else + for (i = 0; i < w; i++) + out[i^3] = in[i]; +#endif +} + +static void +ocr_line24(gx_device_pdf_image *dev, void *row) +{ + int w = dev->ocr.w; + int raster = (w+3)&~3; + char *in = (char *)row; + char *out = ((char *)dev->ocr.data) + raster * dev->ocr.y++; + int i; + +#if ARCH_IS_BIG_ENDIAN + for (i = 0; i < w; i++) { + int v = *in++; + v += 2* *in++; + v += *in++; + out[i] = v>>2; + } +#else + for (i = 0; i < w; i++) { + int v = *in++; + v += 2* *in++; + v += *in++; + out[i^3] = v>>2; + } +#endif +} + +static void +ocr_line32(gx_device_pdf_image *dev, void *row) +{ + int w = dev->ocr.w; + int raster = (w+3)&~3; + char *in = (char *)row; + char *out = ((char *)dev->ocr.data) + raster * dev->ocr.y++; + int i; + +#if ARCH_IS_BIG_ENDIAN + for (i = 0; i < w; i++) { + int v = 255 - *in++; + v -= *in++; + v -= *in++; + v -= *in++; + if (v < 0) v = 0; + out[i] = v; + } +#else + for (i = 0; i < w; i++) { + int v = 255 - *in++; + v -= *in++; + v -= *in++; + v -= *in++; + if (v < 0) v = 0; + out[i^3] = v; + } +#endif +} + +static int +ocr_begin_page(gx_device_pdf_image *dev, int w, int h, int bpp) +{ + int raster = (w+3)&~3; + + dev->ocr.data = gs_alloc_bytes(dev->memory, raster * h, "ocr_begin_page"); + if (dev->ocr.data == NULL) + return_error(gs_error_VMerror); + dev->ocr.w = w; + dev->ocr.h = h; + dev->ocr.y = 0; + + if (bpp == 32) + dev->ocr.line = ocr_line32; + else if (bpp == 24) + dev->ocr.line = ocr_line24; + else + dev->ocr.line = ocr_line8; + + return 0; +} + +static void +flush_word(gx_device_pdf_image *dev) +{ + char buffer[1024]; + float size, scale; + float *bbox = dev->ocr.wordbox; + int i, len; + + len = dev->ocr.word_len; + if (len == 0) + return; + + size = bbox[3]-bbox[1]; + if (dev->ocr.cur_size != size) { + gs_sprintf(buffer, "/Ft0 %.3f Tf", size); + stream_puts(dev->strm, buffer); + dev->ocr.cur_size = size; + } + scale = (bbox[2]-bbox[0]) / size / len * 200; + if (dev->ocr.cur_scale != scale) { + gs_sprintf(buffer, " %.3f Tz", scale); + stream_puts(dev->strm, buffer); + dev->ocr.cur_scale = scale; + } + gs_sprintf(buffer, " 1 0 0 1 %.3f %.3f Tm[<", bbox[0], bbox[1]); + stream_puts(dev->strm, buffer); + for (i = 0; i < len; i++) { + gs_sprintf(buffer, "%04x", dev->ocr.word_chars[i]); + stream_puts(dev->strm, buffer); + } + stream_puts(dev->strm, ">]TJ\n"); + + dev->ocr.word_len = 0; +} + +static int +ocr_callback(void *arg, const char *rune_, + const int *line_bbox, const int *word_bbox, + const int *char_bbox, int pointsize) +{ + gx_device_pdf_image *ppdev = (gx_device_pdf_image *)arg; + int unicode; + const unsigned char *rune = (const unsigned char *)rune_; + float bbox[4]; + int factor = ppdev->downscale.downscale_factor; + float scale = 72000000.0f / gx_downscaler_scale(1000000, factor); + + if (rune[0] >= 0xF8) + return 0; /* Illegal */ + if (rune[0] < 0x80) + unicode = rune[0]; + else { + unicode = rune[1] & 0x7f; + if (rune[0] < 0xd0) + unicode |= ((rune[0] & 0x1f) << 6); + else { + unicode = (unicode<<6) | (rune[2] & 0x7f); + if (rune[0] < 0xf0) + unicode |= ((rune[0] & 0x0f) << 12); + else + unicode |= ((rune[0] & 0x07) << 18) | (unicode<<6) | (rune[3] & 0x7f); + } + } + +#if 0 + // First attempt; match char bboxes exactly. This is bad, as the + // bboxes given back from tesseract are 'untrustworthy' to say the + // least (they overlap one another in strange ways). Trying to + // match those causes the font height to change repeatedly, and + // gives output that's hard to identify words in. + bbox[0] = char_bbox[0] * 72.0 / ppdev->ocr.xres; + bbox[1] = (ppdev->ocr.h-1 - char_bbox[3]) * 72.0 / ppdev->ocr.yres; + bbox[2] = char_bbox[2] * 72.0 / ppdev->ocr.xres; + bbox[3] = (ppdev->ocr.h-1 - char_bbox[1]) * 72.0 / ppdev->ocr.yres; + + size = bbox[3]-bbox[1]; + if (ppdev->ocr.cur_size != size) { + gs_sprintf(buffer, "/Ft0 %f Tf ", size); + stream_puts(ppdev->strm, buffer); + ppdev->ocr.cur_size = size; + } + scale = (bbox[2]-bbox[0]) / size * 200; + if (ppdev->ocr.cur_scale != scale) { + gs_sprintf(buffer, " %f Tz ", scale); + stream_puts(ppdev->strm, buffer); + ppdev->ocr.cur_scale = scale; + } + gs_sprintf(buffer, "1 0 0 1 %f %f Tm ", bbox[0], bbox[1]); + stream_puts(ppdev->strm, buffer); + gs_sprintf(buffer, "<%04x>Tj\n", unicode); + stream_puts(ppdev->strm, buffer); +#else + bbox[0] = word_bbox[0] * scale / ppdev->ocr.xres; + bbox[1] = (ppdev->ocr.h-1 - line_bbox[3]) * scale / ppdev->ocr.yres; + bbox[2] = word_bbox[2] * scale / ppdev->ocr.xres; + bbox[3] = (ppdev->ocr.h-1 - line_bbox[1]) * scale / ppdev->ocr.yres; + + /* If the word bbox differs, flush the word. */ + if (bbox[0] != ppdev->ocr.wordbox[0] || + bbox[1] != ppdev->ocr.wordbox[1] || + bbox[2] != ppdev->ocr.wordbox[2] || + bbox[3] != ppdev->ocr.wordbox[3]) { + flush_word(ppdev); + ppdev->ocr.wordbox[0] = bbox[0]; + ppdev->ocr.wordbox[1] = bbox[1]; + ppdev->ocr.wordbox[2] = bbox[2]; + ppdev->ocr.wordbox[3] = bbox[3]; + } + + /* Add the char to the current word. */ + if (ppdev->ocr.word_len == ppdev->ocr.word_max) { + int *newblock; + int newmax = ppdev->ocr.word_max * 2; + if (newmax == 0) + newmax = 16; + newblock = (int *)gs_alloc_bytes(ppdev->memory, sizeof(int)*newmax, + "ocr_callback(word)"); + if (newblock == NULL) + return_error(gs_error_VMerror); + if (ppdev->ocr.word_len > 0) + memcpy(newblock, ppdev->ocr.word_chars, + sizeof(int) * ppdev->ocr.word_len); + gs_free_object(ppdev->memory, ppdev->ocr.word_chars, + "ocr_callback(word)"); + ppdev->ocr.word_chars = newblock; + ppdev->ocr.word_max = newmax; + } + ppdev->ocr.word_chars[ppdev->ocr.word_len++] = unicode; +#endif + + return 0; +} + +static int +ocr_end_page(gx_device_pdf_image *dev) +{ + stream_puts(dev->strm, "\nBT 3 Tr\n"); + dev->ocr.cur_x = 0; + dev->ocr.cur_y = 0; + dev->ocr.cur_size = -1; + dev->ocr.cur_scale = 0; + dev->ocr.wordbox[0] = 0; + dev->ocr.wordbox[1] = 0; + dev->ocr.wordbox[2] = -1; + dev->ocr.wordbox[3] = -1; + dev->ocr.word_len = 0; + dev->ocr.word_max = 0; + dev->ocr.word_chars = NULL; + ocr_recognise(dev->ocr.state, + dev->ocr.w, + dev->ocr.h, + dev->ocr.data, + dev->ocr.xres, + dev->ocr.yres, + ocr_callback, + dev); + if (dev->ocr.word_len) + flush_word(dev); + stream_puts(dev->strm, "\nET"); + + gs_free_object(dev->memory, dev->ocr.word_chars, + "ocr_callback(word)"); + gs_free_object(dev->memory, dev->ocr.data, "ocr_end_page"); + dev->ocr.data = NULL; + + return 0; +} + +int +pdf_ocr_open(gx_device *pdev) +{ + gx_device_pdf_image *ppdev; + int code = pdf_image_open(pdev); + + if (code < 0) + return code; + + /* If we've been subclassed, find the terminal device */ + while(pdev->child) + pdev = pdev->child; + ppdev = (gx_device_pdf_image *)pdev; + + ppdev->ocr.file_init = ocr_file_init; + ppdev->ocr.begin_page = ocr_begin_page; + ppdev->ocr.end_page = ocr_end_page; + ppdev->ocr.xres = (int)pdev->HWResolution[0]; + ppdev->ocr.yres = (int)pdev->HWResolution[1]; + + return 0; +} + +int +pdf_ocr_close(gx_device *pdev) +{ + gx_device_pdf_image *pdf_dev; + int code; + + code = pdf_image_close(pdev); + if (code < 0) + return code; + + /* If we've been subclassed, find the terminal device */ + while(pdev->child) + pdev = pdev->child; + pdf_dev = (gx_device_pdf_image *)pdev; + + ocr_fin_api(pdf_dev->memory, pdf_dev->ocr.state); + pdf_dev->ocr.state = NULL; + + return code; +} diff --git a/devices/gdevpe.c b/devices/gdevpe.c index 270084d6..d2590b92 100644 --- a/devices/gdevpe.c +++ b/devices/gdevpe.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/gdevperm.c b/devices/gdevperm.c index f2a5e38c..e03c8cae 100644 --- a/devices/gdevperm.c +++ b/devices/gdevperm.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/gdevphex.c b/devices/gdevphex.c index f3ca5048..3eccb787 100644 --- a/devices/gdevphex.c +++ b/devices/gdevphex.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/gdevpjet.c b/devices/gdevpjet.c index d9fc76ff..bd428295 100644 --- a/devices/gdevpjet.c +++ b/devices/gdevpjet.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/gdevplan.c b/devices/gdevplan.c index 313d08f8..7e5e5f0a 100644 --- a/devices/gdevplan.c +++ b/devices/gdevplan.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/gdevplib.c b/devices/gdevplib.c index 67c25e78..026b4f8f 100644 --- a/devices/gdevplib.c +++ b/devices/gdevplib.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/gdevplib.h b/devices/gdevplib.h index 2f7290a2..e4c87345 100644 --- a/devices/gdevplib.h +++ b/devices/gdevplib.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/gdevpm.h b/devices/gdevpm.h index 29d9f4f2..d79b0f37 100644 --- a/devices/gdevpm.h +++ b/devices/gdevpm.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/gdevpng.c b/devices/gdevpng.c index 73bc5bf3..a564e6c3 100644 --- a/devices/gdevpng.c +++ b/devices/gdevpng.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or @@ -55,6 +55,7 @@ #include "gdevpccm.h" #include "gscdefs.h" #include "gxdownscale.h" +#include "gxdevsop.h" /* ------ The device descriptors ------ */ @@ -79,6 +80,7 @@ static dev_proc_get_params(png_get_params_downscale); static dev_proc_put_params(png_put_params_downscale); static dev_proc_get_params(png_get_params_downscale_mfs); static dev_proc_put_params(png_put_params_downscale_mfs); +static dev_proc_dev_spec_op(pngalpha_spec_op); typedef struct gx_device_png_s gx_device_png; struct gx_device_png_s { @@ -280,7 +282,8 @@ static const gx_device_procs pngalpha_procs = pngalpha_fillpage, NULL, /* push_transparency_state */ NULL, /* pop_transparency_state */ - pngalpha_put_image + pngalpha_put_image, + pngalpha_spec_op /* dev_spec_op */\ }; const gx_device_pngalpha gs_pngalpha_device = { @@ -451,8 +454,6 @@ do_png_print_page(gx_device_png * pdev, gp_file * file, bool monod) png_text text_png; int dst_bpc, src_bpc; bool errdiff = 0; - int factor = pdev->downscale.downscale_factor; - int mfs = pdev->downscale.min_feature_size; bool invert = false, endian_swap = false, bg_needed = false; png_byte bit_depth = 0; @@ -468,14 +469,15 @@ do_png_print_page(gx_device_png * pdev, gp_file * file, bool monod) png_color *palettep; png_uint_16 num_palette; png_uint_32 valid = 0; + int upfactor, downfactor; /* Sanity check params */ - if (factor < 1) - factor = 1; - if (mfs < 1) - mfs = 1; - else if (mfs > 2) - mfs = 2; + if (pdev->downscale.downscale_factor < 1) + pdev->downscale.downscale_factor = 1; + if (pdev->downscale.min_feature_size < 1) + pdev->downscale.min_feature_size = 1; + else if (pdev->downscale.min_feature_size > 2) + pdev->downscale.min_feature_size = 2; /* Slightly nasty, but it saves us duplicating this entire routine. */ if (monod) { @@ -503,11 +505,13 @@ do_png_print_page(gx_device_png * pdev, gp_file * file, bool monod) png_set_write_fn(png_ptr, file, my_png_write, my_png_flush); /* set the file information here */ + gx_downscaler_decode_factor(pdev->downscale.downscale_factor, + &upfactor, &downfactor); /* resolution is in pixels per meter vs. dpi */ x_pixels_per_unit = - (png_uint_32) (pdev->HWResolution[0] * (100.0 / 2.54) / factor + 0.5); + (png_uint_32) (pdev->HWResolution[0] * upfactor * (100.0 / 2.54) / downfactor + 0.5); y_pixels_per_unit = - (png_uint_32) (pdev->HWResolution[1] * (100.0 / 2.54) / factor + 0.5); + (png_uint_32) (pdev->HWResolution[1] * upfactor * (100.0 / 2.54) / downfactor + 0.5); phys_unit_type = PNG_RESOLUTION_METER; valid |= PNG_INFO_pHYs; @@ -597,8 +601,13 @@ do_png_print_page(gx_device_png * pdev, gp_file * file, bool monod) } /* add comment */ strncpy(software_key, "Software", sizeof(software_key)); - gs_sprintf(software_text, "%s %d.%02d", gs_product, - (int)(gs_revision / 100), (int)(gs_revision % 100)); + { + int major = (int)(gs_revision / 1000); + int minor = (int)(gs_revision - (major * 1000)) / 10; + int patch = gs_revision % 10; + + gs_sprintf(software_text, "%s %d.%02d.%d", gs_product, major, minor, patch); + } text_png.compression = -1; /* uncompressed */ text_png.key = software_key; text_png.text = software_text; @@ -609,9 +618,9 @@ do_png_print_page(gx_device_png * pdev, gp_file * file, bool monod) if (errdiff) src_bpc = 8; else - factor = 1; - width = pdev->width/factor; - height = pdev->height/factor; + pdev->downscale.downscale_factor = upfactor = downfactor = 1; + width = pdev->width * upfactor / downfactor; + height = pdev->height * upfactor / downfactor; #if PNG_LIBPNG_VER_MINOR >= 5 png_set_pHYs(png_ptr, info_ptr, @@ -627,8 +636,8 @@ do_png_print_page(gx_device_png * pdev, gp_file * file, bool monod) png_set_text(png_ptr, info_ptr, &text_png, 1); - if (pdev->icc_struct != NULL && pdev->icc_struct->device_profile[0] != NULL) { - cmm_profile_t *icc_profile = pdev->icc_struct->device_profile[0]; + if (pdev->icc_struct != NULL && pdev->icc_struct->device_profile[GS_DEFAULT_DEVICE_PROFILE] != NULL) { + cmm_profile_t *icc_profile = pdev->icc_struct->device_profile[GS_DEFAULT_DEVICE_PROFILE]; /* PNG can only be RGB or gray. No CIELAB :( */ if (icc_profile->data_cs == gsRGB || icc_profile->data_cs == gsGRAY) { if (icc_profile->num_comps == pdev->color_info.num_components && @@ -653,8 +662,8 @@ do_png_print_page(gx_device_png * pdev, gp_file * file, bool monod) info_ptr->text = &text_png; info_ptr->num_text = 1; /* Set up the ICC information */ - if (pdev->icc_struct != NULL && pdev->icc_struct->device_profile[0] != NULL) { - cmm_profile_t *icc_profile = pdev->icc_struct->device_profile[0]; + if (pdev->icc_struct != NULL && pdev->icc_struct->device_profile[GS_DEFAULT_DEVICE_PROFILE] != NULL) { + cmm_profile_t *icc_profile = pdev->icc_struct->device_profile[GS_DEFAULT_DEVICE_PROFILE]; /* PNG can only be RGB or gray. No CIELAB :( */ if (icc_profile->data_cs == gsRGB || icc_profile->data_cs == gsGRAY) { if (icc_profile->num_comps == pdev->color_info.num_components && @@ -697,7 +706,7 @@ do_png_print_page(gx_device_png * pdev, gp_file * file, bool monod) * hit. So ensure that we only trigger downscales when we need them. */ code = gx_downscaler_init(&ds, (gx_device *)pdev, src_bpc, dst_bpc, - depth/dst_bpc, factor, mfs, NULL, 0); + depth/dst_bpc, &pdev->downscale, NULL, 0); if (code >= 0) { #ifdef CLUSTER @@ -1072,3 +1081,15 @@ pngalpha_copy_alpha(gx_device * dev, const byte * data, int data_x, return code; } } + +static int +pngalpha_spec_op(gx_device* pdev, int dso, void* ptr, int size) +{ + switch (dso) + { + case gxdso_supports_alpha: + return 1; + } + + return gdev_prn_dev_spec_op(pdev, dso, ptr, size); +} diff --git a/devices/gdevpsd.c b/devices/gdevpsd.c index 03292469..27a6f262 100644 --- a/devices/gdevpsd.c +++ b/devices/gdevpsd.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or @@ -129,7 +129,7 @@ RELOC_PTRS_END static int psd_spec_op(gx_device *dev_, int op, void *data, int datasize) { - if (op == gxdso_supports_devn) { + if (op == gxdso_supports_devn || op == gxdso_skip_icc_component_validation) { return true; } return gdev_prn_dev_spec_op(dev_, op, data, datasize); @@ -1262,11 +1262,10 @@ psd_write_image_data(psd_write_ctx *xc, gx_device_printer *pdev) if (sep_line == NULL) return_error(gs_error_VMerror); - code = gx_downscaler_init_planar_trapped(&ds, (gx_device *)pdev, ¶ms, num_comp, - psd_dev->downscale.downscale_factor, 0, bpc, bpc, - psd_dev->downscale.trap_w, - psd_dev->downscale.trap_h, - psd_dev->downscale.trap_order); + code = gx_downscaler_init_planar(&ds, (gx_device *)pdev, + bpc, bpc, num_comp, + &psd_dev->downscale, + ¶ms); if (code < 0) goto cleanup; diff --git a/devices/gdevpsd.h b/devices/gdevpsd.h index 3639eb72..98d2e9ae 100644 --- a/devices/gdevpsd.h +++ b/devices/gdevpsd.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/gdevpsim.c b/devices/gdevpsim.c index 7a194c64..4e4080fe 100644 --- a/devices/gdevpsim.c +++ b/devices/gdevpsim.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/gdevpxut.c b/devices/gdevpxut.c index 297f6f90..08d7741a 100644 --- a/devices/gdevpxut.c +++ b/devices/gdevpxut.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/gdevpxut.h b/devices/gdevpxut.h index b854264f..28f55847 100644 --- a/devices/gdevpxut.h +++ b/devices/gdevpxut.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/gdevrinkj.c b/devices/gdevrinkj.c index 509edd07..d10a7a1b 100644 --- a/devices/gdevrinkj.c +++ b/devices/gdevrinkj.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/gdevsj48.c b/devices/gdevsj48.c index 4ef9ece1..8b1304b9 100644 --- a/devices/gdevsj48.c +++ b/devices/gdevsj48.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/gdevsnfb.c b/devices/gdevsnfb.c index fe169b07..76d5cf47 100644 --- a/devices/gdevsnfb.c +++ b/devices/gdevsnfb.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/gdevsppr.c b/devices/gdevsppr.c index ee3c5813..8257aa39 100644 --- a/devices/gdevsppr.c +++ b/devices/gdevsppr.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/gdevstc.c b/devices/gdevstc.c index 951ded0e..22314777 100644 --- a/devices/gdevstc.c +++ b/devices/gdevstc.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/gdevstc.h b/devices/gdevstc.h index f2761349..7db27e9a 100644 --- a/devices/gdevstc.h +++ b/devices/gdevstc.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/gdevstc1.c b/devices/gdevstc1.c index e9650f17..dd10268c 100644 --- a/devices/gdevstc1.c +++ b/devices/gdevstc1.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/gdevstc2.c b/devices/gdevstc2.c index ee2c6701..90dca523 100644 --- a/devices/gdevstc2.c +++ b/devices/gdevstc2.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/gdevstc3.c b/devices/gdevstc3.c index 87205663..56fea31d 100644 --- a/devices/gdevstc3.c +++ b/devices/gdevstc3.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/gdevstc4.c b/devices/gdevstc4.c index 519620fd..1c7c4589 100644 --- a/devices/gdevstc4.c +++ b/devices/gdevstc4.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/gdevtfax.c b/devices/gdevtfax.c index a29f06bd..b8aa7e74 100644 --- a/devices/gdevtfax.c +++ b/devices/gdevtfax.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/gdevtfax.h b/devices/gdevtfax.h index 990e1f5c..deaa6516 100644 --- a/devices/gdevtfax.h +++ b/devices/gdevtfax.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/gdevtfnx.c b/devices/gdevtfnx.c index d9593cd2..b3fea72e 100644 --- a/devices/gdevtfnx.c +++ b/devices/gdevtfnx.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or @@ -102,7 +102,7 @@ static void tiff_set_rgb_fields(gx_device_tiff *tfdev) { /* Put in a switch statement in case we want to have others */ - switch (tfdev->icc_struct->device_profile[0]->data_cs) { + switch (tfdev->icc_struct->device_profile[GS_DEFAULT_DEVICE_PROFILE]->data_cs) { case gsRGB: TIFFSetField(tfdev->tif, TIFFTAG_PHOTOMETRIC, PHOTOMETRIC_RGB); break; diff --git a/devices/gdevtifs.c b/devices/gdevtifs.c index 2d612bac..4ecafa8b 100644 --- a/devices/gdevtifs.c +++ b/devices/gdevtifs.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or @@ -74,7 +74,7 @@ tiff_close(gx_device * pdev) gx_device_tiff *const tfdev = (gx_device_tiff *)pdev; if (tfdev->tif) - TIFFCleanup(tfdev->tif); + TIFFClose(tfdev->tif); if (tfdev->icclink != NULL) { @@ -328,8 +328,8 @@ int gdev_tiff_begin_page(gx_device_tiff *tfdev, &rendering_params); } else { tfdev->icclink = gsicc_alloc_link_dev(pdev->memory, - profile_struct->device_profile[0], profile_struct->postren_profile, - &rendering_params); + profile_struct->device_profile[GS_DEFAULT_DEVICE_PROFILE], + profile_struct->postren_profile, &rendering_params); } if (tfdev->icclink == NULL) { return_error(gs_error_VMerror); @@ -390,13 +390,17 @@ int tiff_set_fields_for_printer(gx_device_printer *pdev, TIFFSetField(tif, TIFFTAG_YRESOLUTION, (float)ypi); { - char revs[10]; + char revs[32]; #define maxSoftware 40 char softwareValue[maxSoftware]; + int revision = gs_revision_number(); + int major = (int)(revision / 1000); + int minor = (int)(revision - (major * 1000)) / 10; + int patch = revision % 10; strncpy(softwareValue, gs_product, maxSoftware); softwareValue[maxSoftware - 1] = 0; - gs_sprintf(revs, " %1.2f", gs_revision / 100.0); + gs_sprintf(revs, " %d.%2d.%d", major, minor, patch); strncat(softwareValue, revs, maxSoftware - strlen(softwareValue) - 1); @@ -437,7 +441,7 @@ int tiff_set_fields_for_printer(gx_device_printer *pdev, else if (pdev->icc_struct->oi_profile != NULL) icc_profile = pdev->icc_struct->oi_profile; else - icc_profile = pdev->icc_struct->device_profile[0]; + icc_profile = pdev->icc_struct->device_profile[GS_DEFAULT_DEVICE_PROFILE]; if (icc_profile->num_comps == pdev->color_info.num_components && icc_profile->data_cs != gsCIELAB && !(pdev->icc_struct->usefastcolor)) { @@ -536,10 +540,9 @@ static int tiff_chunky_post_cm(void *arg, byte **dst, byte **src, int w, int h, /* Special version, called with 8 bit grey input to be downsampled to 1bpp * output. */ int -tiff_downscale_and_print_page(gx_device_printer *dev, TIFF *tif, int factor, - int mfs, int aw, int bpc, int num_comps, - int trap_w, int trap_h, const int *trap_order, - int ets) +tiff_downscale_and_print_page(gx_device_printer *dev, TIFF *tif, + gx_downscaler_params *params, + int aw, int bpc, int num_comps) { gx_device_tiff *const tfdev = (gx_device_tiff *)dev; int code = 0; @@ -547,6 +550,7 @@ tiff_downscale_and_print_page(gx_device_printer *dev, TIFF *tif, int factor, int size = gdev_mem_bytes_per_scan_line((gx_device *)dev); int max_size = max(size, TIFFScanlineSize(tif)); int row; + int factor = params->downscale_factor; int height = dev->height/factor; gx_downscaler_t ds; @@ -554,24 +558,20 @@ tiff_downscale_and_print_page(gx_device_printer *dev, TIFF *tif, int factor, if (code < 0) return code; - if (num_comps == 4) { - if (tfdev->icclink == NULL) { - code = gx_downscaler_init_trapped_ets(&ds, (gx_device *)dev, 8, bpc, num_comps, - factor, mfs, &fax_adjusted_width, aw, trap_w, trap_h, trap_order, ets); - } else { - code = gx_downscaler_init_trapped_cm_ets(&ds, (gx_device *)dev, 8, bpc, num_comps, - factor, mfs, &fax_adjusted_width, aw, trap_w, trap_h, trap_order, - tiff_chunky_post_cm, tfdev->icclink, tfdev->icclink->num_output, ets); - } + if (num_comps == 4) + params->trap_w = params->trap_h = 1; + if (tfdev->icclink == NULL) { + code = gx_downscaler_init(&ds, (gx_device *)dev, + 8, bpc, num_comps, + params, + &fax_adjusted_width, aw); } else { - if (tfdev->icclink == NULL) { - code = gx_downscaler_init_ets(&ds, (gx_device *)dev, 8, bpc, num_comps, - factor, mfs, &fax_adjusted_width, aw, ets); - } else { - code = gx_downscaler_init_cm_ets(&ds, (gx_device *)dev, 8, bpc, num_comps, - factor, mfs, &fax_adjusted_width, aw, tiff_chunky_post_cm, tfdev->icclink, - tfdev->icclink->num_output, ets); - } + code = gx_downscaler_init_cm(&ds, (gx_device *)dev, + 8, bpc, num_comps, + params, + &fax_adjusted_width, aw, + tiff_chunky_post_cm, tfdev->icclink, + tfdev->icclink->num_output); } if (code < 0) return code; diff --git a/devices/gdevtifs.h b/devices/gdevtifs.h index cbdbb374..adc9f4ae 100644 --- a/devices/gdevtifs.h +++ b/devices/gdevtifs.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or @@ -55,10 +55,8 @@ dev_proc_put_params(tiff_put_params_downscale_cmyk_ets); int tiff_print_page(gx_device_printer *dev, TIFF *tif, int min_feature_size); int tiff_downscale_and_print_page(gx_device_printer *dev, TIFF *tif, - int factor, int msf, int aw, int bpc, - int num_comps, - int trap_w, int trap_h, const int *trap_order, - int ets); + gx_downscaler_params *params, + int aw, int bpc, int num_comps); void tiff_set_handlers (void); /* diff --git a/devices/gdevtknk.c b/devices/gdevtknk.c index 35d98bfe..741b5925 100644 --- a/devices/gdevtknk.c +++ b/devices/gdevtknk.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/gdevtrac.c b/devices/gdevtrac.c index 09116144..77b7dc93 100644 --- a/devices/gdevtrac.c +++ b/devices/gdevtrac.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/gdevtsep.c b/devices/gdevtsep.c index 7fddf1c7..3dde3523 100644 --- a/devices/gdevtsep.c +++ b/devices/gdevtsep.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or @@ -329,12 +329,9 @@ tiffscaled_print_page(gx_device_printer * pdev, gp_file * file) return tiff_downscale_and_print_page(pdev, tfdev->tif, - tfdev->downscale.downscale_factor, - tfdev->downscale.min_feature_size, + &tfdev->downscale, tfdev->AdjustWidth, - 1, 1, - 0, 0, NULL, - tfdev->downscale.ets); + 1, 1); } static int @@ -357,12 +354,9 @@ tiffscaled8_print_page(gx_device_printer * pdev, gp_file * file) tfdev->MaxStripSize); } return tiff_downscale_and_print_page(pdev, tfdev->tif, - tfdev->downscale.downscale_factor, - tfdev->downscale.min_feature_size, + &tfdev->downscale, tfdev->AdjustWidth, - 8, 1, - 0, 0, NULL, - 0); + 8, 1); } static void @@ -375,7 +369,7 @@ tiff_set_rgb_fields(gx_device_tiff *tfdev) else if (tfdev->icc_struct->oi_profile != NULL) icc_profile = tfdev->icc_struct->oi_profile; else - icc_profile = tfdev->icc_struct->device_profile[0]; + icc_profile = tfdev->icc_struct->device_profile[GS_DEFAULT_DEVICE_PROFILE]; switch (icc_profile->data_cs) { case gsRGB: @@ -416,12 +410,9 @@ tiffscaled24_print_page(gx_device_printer * pdev, gp_file * file) } return tiff_downscale_and_print_page(pdev, tfdev->tif, - tfdev->downscale.downscale_factor, - tfdev->downscale.min_feature_size, + &tfdev->downscale, tfdev->AdjustWidth, - 8, 3, - 0, 0, NULL, - 0); + 8, 3); } static void @@ -459,13 +450,9 @@ tiffscaled32_print_page(gx_device_printer * pdev, gp_file * file) } return tiff_downscale_and_print_page(pdev, tfdev->tif, - tfdev->downscale.downscale_factor, - tfdev->downscale.min_feature_size, + &tfdev->downscale, tfdev->AdjustWidth, - 8, 4, - tfdev->downscale.trap_w, tfdev->downscale.trap_h, - tfdev->downscale.trap_order, - 0); + 8, 4); } static int @@ -485,13 +472,9 @@ tiffscaled4_print_page(gx_device_printer * pdev, gp_file * file) tfdev->MaxStripSize); return tiff_downscale_and_print_page(pdev, tfdev->tif, - tfdev->downscale.downscale_factor, - tfdev->downscale.min_feature_size, + &tfdev->downscale, tfdev->AdjustWidth, - 1, 4, - tfdev->downscale.trap_w, tfdev->downscale.trap_h, - tfdev->downscale.trap_order, - tfdev->downscale.ets); + 1, 4); } /* Called when the post render ICC profile is in a different color space @@ -525,7 +508,8 @@ tiff_set_icc_color_fields(gx_device_printer *pdev) static int tiffsep_spec_op(gx_device *dev_, int op, void *data, int datasize) { - if (op == gxdso_supports_iccpostrender || op == gxdso_supports_devn) { + if (op == gxdso_supports_iccpostrender || op == gxdso_supports_devn + || op == gxdso_skip_icc_component_validation) { return true; } return gdev_prn_dev_spec_op(dev_, op, data, datasize); @@ -1791,8 +1775,8 @@ tiffsep_prn_open(gx_device * pdev) &rendering_params); } else { pdev_sep->icclink = gsicc_alloc_link_dev(pdev->memory, - profile_struct->device_profile[0], profile_struct->postren_profile, - &rendering_params); + profile_struct->device_profile[GS_DEFAULT_DEVICE_PROFILE], + profile_struct->postren_profile, &rendering_params); } if (pdev_sep->icclink == NULL) { return_error(gs_error_VMerror); @@ -1813,7 +1797,7 @@ tiffsep_close_sep_file(tiffsep_device *tfdev, const char *fn, int comp_num) int code; if (tfdev->tiff[comp_num]) { - TIFFCleanup(tfdev->tiff[comp_num]); + TIFFClose(tfdev->tiff[comp_num]); tfdev->tiff[comp_num] = NULL; } @@ -1832,7 +1816,7 @@ tiffsep_close_comp_file(tiffsep_device *tfdev, const char *fn) int code; if (tfdev->tiff_comp) { - TIFFCleanup(tfdev->tiff_comp); + TIFFClose(tfdev->tiff_comp); tfdev->tiff_comp = NULL; } @@ -2242,7 +2226,6 @@ tiffsep_print_page(gx_device_printer * pdev, gp_file * file) gs_parsed_file_name_t parsed; int plane_count = 0; /* quiet compiler */ int factor = tfdev->downscale.downscale_factor; - int mfs = tfdev->downscale.min_feature_size; int dst_bpc = tfdev->BitsPerComponent; gx_downscaler_t ds; int width = gx_downscaler_scale(tfdev->width, factor); @@ -2481,10 +2464,10 @@ tiffsep_print_page(gx_device_printer * pdev, gp_file * file) } } } - code = gx_downscaler_init_planar_trapped(&ds, (gx_device *)pdev, ¶ms, - num_comp, factor, mfs, 8, dst_bpc, - tfdev->downscale.trap_w, tfdev->downscale.trap_h, - tfdev->downscale.trap_order); + code = gx_downscaler_init_planar(&ds, (gx_device *)pdev, + 8, dst_bpc, num_comp, + &tfdev->downscale, + ¶ms); if (code < 0) goto cleanup; byte_width = (width * dst_bpc + 7)>>3; @@ -2577,9 +2560,7 @@ cleanup: } } TIFFWriteDirectory(tfdev->tiff_comp); - if (fmt) { - code = tiffsep_close_comp_file(tfdev, pdev->fname); - } + code = tiffsep_close_comp_file(tfdev, pdev->fname); if (code1 < 0) { code = code1; } @@ -2970,17 +2951,17 @@ tiff_open_s(gx_device *pdev) /* Take care of any color model changes now */ if (pdev->icc_struct->postren_profile != NULL && - pdev->icc_struct->device_profile[0]->num_comps != pdev->color_info.num_components && + pdev->icc_struct->device_profile[GS_DEFAULT_DEVICE_PROFILE]->num_comps != pdev->color_info.num_components && pdev->color_info.depth == 8 * pdev->color_info.num_components) { code = gx_change_color_model((gx_device*)pdev, - pdev->icc_struct->device_profile[0]->num_comps, 8); + pdev->icc_struct->device_profile[GS_DEFAULT_DEVICE_PROFILE]->num_comps, 8); if (code < 0) return code; /* Reset the device procs */ memset(&(pdev->procs), 0, sizeof(pdev->procs)); - switch (pdev->icc_struct->device_profile[0]->num_comps) { + switch (pdev->icc_struct->device_profile[GS_DEFAULT_DEVICE_PROFILE]->num_comps) { case 1: pdev->procs = tiffscaled8_procs; pdev->color_info.dither_colors = 0; diff --git a/devices/gdevupd.c b/devices/gdevupd.c index 70148905..702548d8 100644 --- a/devices/gdevupd.c +++ b/devices/gdevupd.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or @@ -1048,8 +1048,8 @@ upd_print_page(gx_device_printer *pdev, gp_file *out) */ if(!upd || B_OK4GO != (upd->flags & (B_OK4GO | B_ERROR))) { #if UPD_MESSAGES & (UPD_M_ERROR | UPD_M_TOPCALLS) - errprintf(pdev->memory, "CALL-REJECTED upd_print_page(0x%05lx,0x%05lx)\n", - (long) udev,(long) out); + errprintf(pdev->memory, "CALL-REJECTED upd_print_page(" PRI_INTPTR "," PRI_INTPTR ")\n", + (intptr_t)udev,(intptr_t) out); #endif return_error(gs_error_undefined); } diff --git a/devices/gdevwpr2.c b/devices/gdevwpr2.c index 29af469b..3a4b97b6 100644 --- a/devices/gdevwpr2.c +++ b/devices/gdevwpr2.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/gdevx.c b/devices/gdevx.c index 2539e250..cfde7543 100644 --- a/devices/gdevx.c +++ b/devices/gdevx.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or @@ -978,8 +978,8 @@ set_tile(gx_device * dev, const gx_strip_bitmap * tile) if (gs_debug['H']) { int i; - dmlprintf4(xdev->memory, "[H] 0x%lx: width=%d height=%d raster=%d\n", - (ulong) tile->data, tile->size.x, tile->size.y, tile->raster); + dmlprintf4(xdev->memory, "[H] "PRI_INTPTR": width=%d height=%d raster=%d\n", + (intptr_t)tile->data, tile->size.x, tile->size.y, tile->raster); dmlputs(xdev->memory, ""); for (i = 0; i < tile->raster * tile->size.y; i++) dmprintf1(xdev->memory, " %02x", tile->data[i]); diff --git a/devices/gdevx.h b/devices/gdevx.h index 0e97d934..4becd639 100644 --- a/devices/gdevx.h +++ b/devices/gdevx.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/gdevxalt.c b/devices/gdevxalt.c index 144cf3e7..4d8cc339 100644 --- a/devices/gdevxalt.c +++ b/devices/gdevxalt.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/gdevxcf.c b/devices/gdevxcf.c index a7e66174..c4c44bf6 100644 --- a/devices/gdevxcf.c +++ b/devices/gdevxcf.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/gdevxcmp.c b/devices/gdevxcmp.c index 5cf5a56c..9f7e0401 100644 --- a/devices/gdevxcmp.c +++ b/devices/gdevxcmp.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/gdevxcmp.h b/devices/gdevxcmp.h index 0a71dd50..9d6fca73 100644 --- a/devices/gdevxcmp.h +++ b/devices/gdevxcmp.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/gdevxini.c b/devices/gdevxini.c index 3b46b182..ca8ca2f9 100644 --- a/devices/gdevxini.c +++ b/devices/gdevxini.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/gdevxres.c b/devices/gdevxres.c index 485f0007..748d3c58 100644 --- a/devices/gdevxres.c +++ b/devices/gdevxres.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/gxfcopy.c b/devices/gxfcopy.c index d68ee8f9..c6d90c9a 100644 --- a/devices/gxfcopy.c +++ b/devices/gxfcopy.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or @@ -209,7 +209,10 @@ struct gs_copied_font_data_s { extern_st(st_gs_font_info); static ENUM_PTRS_WITH(gs_copied_font_data_enum_ptrs, gs_copied_font_data_t *cfdata) - if (index == 12) { + /* See comments in gs_copy_font() below regarding the enumeration of names + * and the font's 'dir' member + */ + if (index == 12 && cfdata->dir != NULL) { gs_copied_glyph_name_t *names = cfdata->names; gs_copied_glyph_extra_name_t *en = cfdata->extra_names; int i; @@ -2110,7 +2113,37 @@ gs_copy_font(gs_font *font, const gs_matrix *orig_matrix, gs_memory_t *mem, gs_f goto fail; } cfdata->info = info; - cfdata->dir = font->dir; + + /* This is somewhat unpleasant. We use the 'glyph' as the unique ID for a number + * of purposes, but in particular for determining which CharStrings need to be written + * out by pdfwrite. The 'glyph' appears to be (sometimes) given by the index of the glyph name + * in the *interpreter* name table. For names in one of the standard encodings + * we find the name there and use its ID. However, if the glyph name is non-standard + * then it is added to the interpreter name table and the name index is used to + * identify the glyph. The problem arises if the font is restored away, and a + * vmreclaim causes the (now unreferenced) glyph names to be flushed. If we + * should then use the same font and glyph, its possible that the name table + * might be different, resulting in a different name index. We would then write + * duplicate CharStrings to the output, see Bug 687172. + * The GC enumeration (see top of file) marks the names in the name table to prevent + * them being flushed. As long as everything is in the same memory allocator this + * works (ugly though it is). However, if we are using the pdfi PDF interpreter + * inside the PostScript interpreter, then a problem arises. The pdfwrite device + * holds on to the font copies until the device is destroyed, by which time the + * PDF interpreter has already gone. The vmreclaim prior to the device destruction + * enumerates the name pointers. Because the font was allocated by pdfi these + * are no longer valid. They are also not needed, since the pdfi name table is + * not garbage collected.. + * To cater for both conditions we test the memory allocator the font was using. + * If its a GC'ed allocater then we keep a pointer to the font 'dir' and we enumerate + * the names and mark them in the interpreter table. Otherwise we don't attempt to + * mark them. We use dir being NULL to control whether we mark the names. + */ + if (font->memory != font->memory->non_gc_memory) + cfdata->dir = font->dir; + else + cfdata->dir = NULL; + if ((code = (copy_string(mem, &cfdata->info.Copyright, "gs_copy_font(Copyright)") | copy_string(mem, &cfdata->info.Notice, diff --git a/devices/gxfcopy.h b/devices/gxfcopy.h index c88d43e5..8a6efbaa 100644 --- a/devices/gxfcopy.h +++ b/devices/gxfcopy.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/minftrsz.c b/devices/minftrsz.c index 1822fc59..a8c5d202 100644 --- a/devices/minftrsz.c +++ b/devices/minftrsz.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/minftrsz.h b/devices/minftrsz.h index a24c63fd..d520a62a 100644 --- a/devices/minftrsz.h +++ b/devices/minftrsz.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/rinkj/evenbetter-rll.c b/devices/rinkj/evenbetter-rll.c index 68f17114..5928704a 100644 --- a/devices/rinkj/evenbetter-rll.c +++ b/devices/rinkj/evenbetter-rll.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/rinkj/evenbetter-rll.h b/devices/rinkj/evenbetter-rll.h index c8585ff3..3e1d7fa6 100644 --- a/devices/rinkj/evenbetter-rll.h +++ b/devices/rinkj/evenbetter-rll.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or @@ -16,6 +16,9 @@ /* Header file for testbed implementation of Even Better Screening. */ +#ifndef evenbetter_rll_h_INCLUDED +#define evenbetter_rll_h_INCLUDED + #ifdef __cplusplus extern "C" { #endif @@ -101,3 +104,5 @@ eb_free_aligned(void *p); #ifdef __cplusplus } #endif + +#endif diff --git a/devices/rinkj/rinkj-byte-stream.c b/devices/rinkj/rinkj-byte-stream.c index 6019ec18..9f84ce96 100644 --- a/devices/rinkj/rinkj-byte-stream.c +++ b/devices/rinkj/rinkj-byte-stream.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/rinkj/rinkj-byte-stream.h b/devices/rinkj/rinkj-byte-stream.h index d0cef54a..b2741088 100644 --- a/devices/rinkj/rinkj-byte-stream.h +++ b/devices/rinkj/rinkj-byte-stream.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or @@ -14,6 +14,9 @@ */ +#ifndef rinkj_byte_stream_h_INCLUDED +#define rinkj_byte_stream_h_INCLUDED + #include "gp.h" /* Bytestream abstraction for Rinkj driver. */ @@ -38,3 +41,5 @@ rinkj_byte_stream_close (RinkjByteStream *bs); RinkjByteStream * rinkj_byte_stream_file_new (gp_file *f); + +#endif diff --git a/devices/rinkj/rinkj-config.c b/devices/rinkj/rinkj-config.c index b1d563f0..4b084458 100644 --- a/devices/rinkj/rinkj-config.c +++ b/devices/rinkj/rinkj-config.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/rinkj/rinkj-config.h b/devices/rinkj/rinkj-config.h index 77595955..716caa75 100644 --- a/devices/rinkj/rinkj-config.h +++ b/devices/rinkj/rinkj-config.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or @@ -14,6 +14,9 @@ */ +#ifndef rinkj_config_h_INCLUDED +#define rinkj_config_h_INCLUDED + /* Support for reading Rinkj config files. */ char * @@ -24,3 +27,5 @@ rinkj_config_get (const char *config, const char *key); char * rinkj_config_keyval (const char *config, char **p_val, const char **p_next); + +#endif diff --git a/devices/rinkj/rinkj-device.c b/devices/rinkj/rinkj-device.c index 112ffb47..43ba6f80 100644 --- a/devices/rinkj/rinkj-device.c +++ b/devices/rinkj/rinkj-device.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/rinkj/rinkj-device.h b/devices/rinkj/rinkj-device.h index d5f9f775..c936711f 100644 --- a/devices/rinkj/rinkj-device.h +++ b/devices/rinkj/rinkj-device.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or @@ -13,6 +13,8 @@ CA 94945, U.S.A., +1(415)492-9861, for further information. */ +#ifndef rinkj_device_h_INCLUDED +#define rinkj_device_h_INCLUDED /* The device abstraction within the Rinkj driver. */ @@ -53,3 +55,5 @@ rinkj_device_init (RinkjDevice *self, const RinkjDeviceParams *params); int rinkj_device_write (RinkjDevice *self, const char **data); + +#endif diff --git a/devices/rinkj/rinkj-dither.c b/devices/rinkj/rinkj-dither.c index 5e6247ee..f5a12844 100644 --- a/devices/rinkj/rinkj-dither.c +++ b/devices/rinkj/rinkj-dither.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/rinkj/rinkj-dither.h b/devices/rinkj/rinkj-dither.h index 2720d64e..815368c8 100644 --- a/devices/rinkj/rinkj-dither.h +++ b/devices/rinkj/rinkj-dither.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or @@ -13,6 +13,8 @@ CA 94945, U.S.A., +1(415)492-9861, for further information. */ +#ifndef rinkj_dither_h_INCLUDED +#define rinkj_dither_h_INCLUDED /* The dither object abstraction within the Rinkj driver. */ @@ -28,3 +30,5 @@ rinkj_dither_line (RinkjDither *self, unsigned char *dst, const unsigned char *s void rinkj_dither_close (RinkjDither *self); + +#endif diff --git a/devices/rinkj/rinkj-epson870.c b/devices/rinkj/rinkj-epson870.c index 70102533..59d55f57 100644 --- a/devices/rinkj/rinkj-epson870.c +++ b/devices/rinkj/rinkj-epson870.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/rinkj/rinkj-epson870.h b/devices/rinkj/rinkj-epson870.h index 2293737a..08f135f9 100644 --- a/devices/rinkj/rinkj-epson870.h +++ b/devices/rinkj/rinkj-epson870.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or @@ -13,8 +13,12 @@ CA 94945, U.S.A., +1(415)492-9861, for further information. */ +#ifndef rinkj_epson870_h_INCLUDED +#define rinkj_epson870_h_INCLUDED /* A Rinkj driver for a number of variable-dot Epson devices. */ RinkjDevice * rinkj_epson870_new (RinkjByteStream *out); + +#endif diff --git a/devices/rinkj/rinkj-screen-eb.c b/devices/rinkj/rinkj-screen-eb.c index b4b98bce..e6a9f779 100644 --- a/devices/rinkj/rinkj-screen-eb.c +++ b/devices/rinkj/rinkj-screen-eb.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/rinkj/rinkj-screen-eb.h b/devices/rinkj/rinkj-screen-eb.h index 78044168..8b61fe35 100644 --- a/devices/rinkj/rinkj-screen-eb.h +++ b/devices/rinkj/rinkj-screen-eb.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or @@ -14,6 +14,9 @@ */ +#ifndef rinkj_screen_eb_h_INCLUDED +#define rinkj_screen_eb_h_INCLUDED + /* A Rinkj module encapsulating ETS screening. */ RinkjDevice * @@ -27,3 +30,5 @@ rinkj_screen_eb_set_gamma (RinkjDevice *self, int plane, double gamma, double ma void rinkj_screen_eb_set_lut (RinkjDevice *self, int plane, const double *lut); + +#endif diff --git a/devices/vector/gdevagl.c b/devices/vector/gdevagl.c index f9428a6e..a551bb38 100644 --- a/devices/vector/gdevagl.c +++ b/devices/vector/gdevagl.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/vector/gdevagl.h b/devices/vector/gdevagl.h index e3569226..066eae76 100644 --- a/devices/vector/gdevagl.h +++ b/devices/vector/gdevagl.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or @@ -16,6 +16,9 @@ * Unicode code points. */ +#ifndef gdevagl_h_INCLUDED +#define gdevagl_h_INCLUDED + typedef struct single_glyph_list_s { const char *Glyph; unsigned short Unicode; @@ -35,3 +38,5 @@ typedef struct quad_glyph_list_s { const char *Glyph; unsigned short Unicode[4]; } quad_glyph_list_t; + +#endif diff --git a/devices/vector/gdevpdf.c b/devices/vector/gdevpdf.c index b25a4a6a..6752fabb 100644 --- a/devices/vector/gdevpdf.c +++ b/devices/vector/gdevpdf.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or @@ -467,6 +467,12 @@ pdf_compute_fileID(gx_device_pdf * pdev) pdev->KeyLength = KeyLength; if (code < 0) return code; + /* Generally we would call s_close_filters() here in order to free the data buffer + * associated with the MD5 filter, but the data buffer we passed in to s_MD5E_make_stream() + * is part of the device structure, so we must *NOT* free that buffer. Therefore we must + * instead call sclose(). This confusion over ownership of the stream buffers causes + * a lot of problems...... + */ sclose(s); gs_free_object(mem, s, "pdf_compute_fileID"); return 0; @@ -1410,6 +1416,11 @@ pdf_output_page(gx_device * dev, int num_copies, int flush) gx_device_pdf *const pdev = (gx_device_pdf *) dev; int code; + if (pdev->Eps2Write && pdev->next_page != 0 && !gx_outputfile_is_separate_pages(pdev->fname, dev->memory)) { + emprintf(pdev->memory, "\n *** EPS files may not contain multiple pages.\n *** Use of the %%d filename format is required to output pages to multiple EPS files.\n"); + return_error(gs_error_ioerror); + } + if (pdev->ForOPDFRead) { code = pdf_close_page(pdev, num_copies); if (code < 0) @@ -2555,6 +2566,7 @@ pdf_close(gx_device * dev) int64_t start_section, end_section; char str[256]; pdf_linearisation_t linear_params; + bool file_per_page = false; if (!dev->is_open) return_error(gs_error_undefined); @@ -2577,26 +2589,14 @@ pdf_close(gx_device * dev) * marks. */ if (pdev->next_page == 0) { - /* If we didn't get called from pdf_output_page, and we are doign file-per-page - * output, then the call from close_device will leave an empty file which we don't - * want. So here we delete teh file. - */ - if (!pdev->InOutputPage && gx_outputfile_is_separate_pages(pdev->fname, pdev->memory)) { - code = gdev_vector_close_file((gx_device_vector *) pdev); - if (code != 0) - return code; - code = pdf_close_files(pdev, 0); + file_per_page = !pdev->InOutputPage && + gx_outputfile_is_separate_pages(pdev->fname, pdev->memory); + if (!file_per_page) { + code = pdf_open_page(pdev, PDF_IN_STREAM); + if (code < 0) return code; - code = gx_device_delete_output_file((const gx_device *)pdev, pdev->fname); - if (code != 0) - return gs_note_error(gs_error_ioerror); - return code; } - code = pdf_open_page(pdev, PDF_IN_STREAM); - - if (code < 0) - return code; } if (pdev->contents_id != 0) pdf_close_page(pdev, 1); @@ -2945,6 +2945,14 @@ pdf_close(gx_device * dev) stream_puts(pdev->strm, "%%EOF\n"); } + if (pdev->params.PSPageOptions.size) { + int ix; + + for (ix = 0; ix < pdev->params.PSPageOptions.size;ix++) + gs_free_object(mem->non_gc_memory, (byte *)pdev->params.PSPageOptions.data[ix].data, "freeing old string array copy"); + gs_free_object(mem->non_gc_memory, (byte *)pdev->params.PSPageOptions.data, "freeing old string array"); + } + if (pdev->Linearise) { linear_params.LastResource = pdev->next_id - 1; linear_params.Offsets = (gs_offset_t *)gs_alloc_bytes(pdev->pdf_memory, pdev->next_id * sizeof(gs_offset_t), "temp xref storage"); @@ -3450,6 +3458,18 @@ pdf_close(gx_device * dev) if (code < 0) return code; + /* If we didn't get called from pdf_output_page, and we are doign file-per-page + * output, then the call from close_device will leave an empty file which we don't + * want. So here we delete the file. + * NOTE: We needed to let it process the whole page in order to make sure everything + * got properly freed. + */ + if (file_per_page) { + code = gx_device_delete_output_file((const gx_device *)pdev, pdev->fname); + if (code != 0) + code = gs_note_error(gs_error_ioerror); + } + pdf_free_pdf_font_cache(pdev); return code; } diff --git a/devices/vector/gdevpdfb.c b/devices/vector/gdevpdfb.c index e35531d7..20339038 100644 --- a/devices/vector/gdevpdfb.c +++ b/devices/vector/gdevpdfb.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/vector/gdevpdfb.h b/devices/vector/gdevpdfb.h index 5ea7a355..16521e0d 100644 --- a/devices/vector/gdevpdfb.h +++ b/devices/vector/gdevpdfb.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/vector/gdevpdfc.c b/devices/vector/gdevpdfc.c index 259d143c..3a3096c4 100644 --- a/devices/vector/gdevpdfc.c +++ b/devices/vector/gdevpdfc.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or @@ -643,6 +643,10 @@ pdf_indexed_color_space(gx_device_pdf *pdev, const gs_gstate * pgs, cos_value_t } stream_write(&es, palette, table_size); gs_free_string(mem, palette, table_size, "pdf_color_space(palette)"); + /* Another case where we use sclose() and not sclose_filters(), because the + * buffer we supplied to s_init_filter is a heap based C object, so we + * must not free it. + */ sclose(&es); sflush(&s); string_used = (uint)stell(&s); @@ -874,6 +878,11 @@ pdf_color_space_named(gx_device_pdf *pdev, const gs_gstate * pgs, if (code < 0) return_error(gs_error_unregistered); /* Must not happen. */ serialized_size = stell(&s); + /* I think this is another case where we use sclose() and not sclose_filters(). + * It seems like we don't actually write anything, but it allows us to find the + * length of the serialised data. No buffer hre, so we must no call + * s_close_filters() as that will try to free it. + */ sclose(&s); if (serialized_size <= sizeof(serialized0)) serialized = serialized0; diff --git a/devices/vector/gdevpdfc.h b/devices/vector/gdevpdfc.h index 69770933..e9056be3 100644 --- a/devices/vector/gdevpdfc.h +++ b/devices/vector/gdevpdfc.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/vector/gdevpdfd.c b/devices/vector/gdevpdfd.c index 1e62bad1..32a6c41b 100644 --- a/devices/vector/gdevpdfd.c +++ b/devices/vector/gdevpdfd.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or @@ -181,20 +181,6 @@ pdf_dorect(gx_device_vector * vdev, fixed x0, fixed y0, fixed x1, fixed y1, ymin -= d; ymax += d; } - if (pdev->CompatibilityLevel < 1.5) { - /* - * Clamp coordinates to avoid tripping over Acrobat Reader's limit - * of 32K on user coordinate values. - */ - if (x0 < xmin) - x0 = xmin; - if (x1 > xmax) - x1 = xmax; - if (y0 < ymin) - y0 = ymin; - if (y1 > ymax) - y1 = ymax; - } return psdf_dorect(vdev, x0, y0, x1, y1, type); } @@ -236,6 +222,7 @@ const gx_device_vector_procs pdf_vector_procs = { int pdf_remember_clip_path(gx_device_pdf * pdev, const gx_clip_path * pcpath) { + int code = 0; /* Used for skipping redundant clip paths. SF bug #624168. */ if (pdev->clip_path != 0) { gx_path_free(pdev->clip_path, "pdf clip path"); @@ -247,7 +234,22 @@ pdf_remember_clip_path(gx_device_pdf * pdev, const gx_clip_path * pcpath) pdev->clip_path = gx_path_alloc(pdev->pdf_memory, "pdf clip path"); if (pdev->clip_path == 0) return_error(gs_error_VMerror); - return gx_cpath_to_path((gx_clip_path *)pcpath, pdev->clip_path); + + code = gx_cpath_to_path((gx_clip_path *)pcpath, pdev->clip_path); + if (code < 0) + return code; + + /* gx_cpath_to_path above ends up going through gx_path_assign_preserve + * which specifically states that the segments of the paths (in this case pcpath + * and pdev->clip_path) must have been allocated with the same allocator. + * If that's not true (eg pdfi running inside GS) then we need to 'unshare' + * the path. Otherwise we mauy end up with pcpath being freed and discarded + * while the pdfwrite devcie still thinks it has a pointer to it. + */ + if (pcpath->path.memory != pdev->pdf_memory) + code = gx_path_unshare(pdev->clip_path); + + return code; } /* Check if same clipping path. */ @@ -778,38 +780,6 @@ pdf_put_clip_path(gx_device_pdf * pdev, const gx_clip_path * pcpath) } /* - * Compute the scaling to ensure that user coordinates for a path are within - * Acrobat's range. Return true if scaling was needed. In this case, the - * CTM will be multiplied by *pscale, and all coordinates will be divided by - * *pscale. - */ -static bool -make_rect_scaling(const gx_device_pdf *pdev, const gs_fixed_rect *bbox, - double prescale, double *pscale) -{ - double bmin, bmax; - - if (pdev->CompatibilityLevel > 1.4) { - *pscale = 1; - return false; - } - - bmin = min(bbox->p.x / pdev->scale.x, bbox->p.y / pdev->scale.y) * prescale; - bmax = max(bbox->q.x / pdev->scale.x, bbox->q.y / pdev->scale.y) * prescale; - if (bmin <= int2fixed(-MAX_USER_COORD) || - bmax > int2fixed(MAX_USER_COORD) - ) { - /* Rescale the path. */ - *pscale = max(bmin / int2fixed(-MAX_USER_COORD), - bmax / int2fixed(MAX_USER_COORD)); - return true; - } else { - *pscale = 1; - return false; - } -} - -/* * Prepare a fill with a color anc a clipping path. * Return 1 if there is nothing to paint. * Changes *box to the clipping box. @@ -1652,9 +1622,6 @@ gdev_pdf_fill_path(gx_device * dev, const gs_gstate * pgs, gx_path * ppath, return code; { stream *s = pdev->strm; - double scale; - gs_matrix smat; - gs_matrix *psmat = NULL; gs_path_enum cenum; gdev_vector_dopath_state_t state; @@ -1667,19 +1634,11 @@ gdev_pdf_fill_path(gx_device * dev, const gs_gstate * pgs, gx_path * ppath, pprintg1(s, "%g i\n", params->flatness); pdev->state.flatness = params->flatness; } - if (make_rect_scaling(pdev, &box1, 1.0, &scale)) { - gs_make_scaling(pdev->scale.x * scale, pdev->scale.y * scale, - &smat); - pdf_put_matrix(pdev, "q ", &smat, "cm\n"); - psmat = &smat; - } - code = pdf_write_path(pdev, (gs_path_enum *)&cenum, &state, (gx_path *)ppath, 0, gx_path_type_fill | gx_path_type_optimize, psmat); + code = pdf_write_path(pdev, (gs_path_enum *)&cenum, &state, (gx_path *)ppath, 0, gx_path_type_fill | gx_path_type_optimize, NULL); if (code < 0) return code; stream_puts(s, (params->rule < 0 ? "f\n" : "f*\n")); - if (psmat) - stream_puts(s, "Q\n"); } return 0; } @@ -1693,10 +1652,9 @@ gdev_pdf_stroke_path(gx_device * dev, const gs_gstate * pgs, gx_device_pdf *pdev = (gx_device_pdf *) dev; stream *s; int code; - double scale, path_scale; + double scale; bool set_ctm; gs_matrix mat; - double prescale = 1; gs_fixed_rect bbox; gs_path_enum cenum; gdev_vector_dopath_state_t state; @@ -1782,20 +1740,6 @@ gdev_pdf_stroke_path(gx_device * dev, const gs_gstate * pgs, scale = fabs(pgs->ctm.xx + pgs->ctm.xy + pgs->ctm.yx + pgs->ctm.yy) /* Using the non-zero coeff. */ / sqrt(2); /* Empirically from Adobe. */ } - if (set_ctm) { - /* - * We want a scaling factor that will bring the largest reasonable - * user coordinate within bounds. We choose a factor based on the - * minor axis of the transformation. Thanks to Raph Levien for - * the following formula. - */ - double a = mat.xx, b = mat.xy, c = mat.yx, d = mat.yy; - double u = fabs(a * d - b * c); - double v = a * a + b * b + c * c + d * d; - double minor = (sqrt(v + 2 * u) - sqrt(v - 2 * u)) * 0.5; - - prescale = (minor == 0 || minor > 1 ? 1 : 1 / minor); - } gx_path_bbox(ppath, &bbox); { /* Check whether a painting appears inside the clipping box. @@ -1828,15 +1772,6 @@ gdev_pdf_stroke_path(gx_device * dev, const gs_gstate * pgs, if (stroke_bbox.q.x < stroke_bbox.p.x || stroke_bbox.q.y < stroke_bbox.p.y) return 0; } - if (make_rect_scaling(pdev, &bbox, prescale, &path_scale)) { - scale /= path_scale; - if (set_ctm) - gs_matrix_scale(&mat, path_scale, path_scale, &mat); - else { - gs_make_scaling(path_scale, path_scale, &mat); - set_ctm = true; - } - } code = gdev_vector_prepare_stroke((gx_device_vector *)pdev, pgs, params, pdcolor, scale); if (code < 0) @@ -1903,8 +1838,7 @@ gdev_pdf_fill_stroke_path(gx_device *dev, const gs_gstate *pgs, gx_path *ppath, } else { bool set_ctm; gs_matrix mat; - double scale, path_scale; - double prescale = 1; + double scale; gs_fixed_rect bbox; gs_path_enum cenum; gdev_vector_dopath_state_t state; @@ -1918,7 +1852,6 @@ gdev_pdf_fill_stroke_path(gx_device *dev, const gs_gstate *pgs, gx_path *ppath, gx_cpath_outer_box(pcpath, &cbox); if (cbox.p.x >= cbox.q.x || cbox.p.y >= cbox.q.y) return 1; /* empty clipping path */ -// *box = cbox; } code = pdf_check_soft_mask(pdev, (gs_gstate *)pgs); if (code < 0) @@ -1968,20 +1901,6 @@ gdev_pdf_fill_stroke_path(gx_device *dev, const gs_gstate *pgs, gx_path *ppath, scale = fabs(pgs->ctm.xx + pgs->ctm.xy + pgs->ctm.yx + pgs->ctm.yy) /* Using the non-zero coeff. */ / sqrt(2); /* Empirically from Adobe. */ } - if (set_ctm) { - /* - * We want a scaling factor that will bring the largest reasonable - * user coordinate within bounds. We choose a factor based on the - * minor axis of the transformation. Thanks to Raph Levien for - * the following formula. - */ - double a = mat.xx, b = mat.xy, c = mat.yx, d = mat.yy; - double u = fabs(a * d - b * c); - double v = a * a + b * b + c * c + d * d; - double minor = (sqrt(v + 2 * u) - sqrt(v - 2 * u)) * 0.5; - - prescale = (minor == 0 || minor > 1 ? 1 : 1 / minor); - } gx_path_bbox(ppath, &bbox); { /* Check whether a painting appears inside the clipping box. @@ -2014,15 +1933,6 @@ gdev_pdf_fill_stroke_path(gx_device *dev, const gs_gstate *pgs, gx_path *ppath, if (stroke_bbox.q.x < stroke_bbox.p.x || stroke_bbox.q.y < stroke_bbox.p.y) return 0; } - if (make_rect_scaling(pdev, &bbox, prescale, &path_scale)) { - scale /= path_scale; - if (set_ctm) - gs_matrix_scale(&mat, path_scale, path_scale, &mat); - else { - gs_make_scaling(path_scale, path_scale, &mat); - set_ctm = true; - } - } code = pdf_setfillcolor((gx_device_vector *)pdev, pgs, pdcolor_fill); if (code == gs_error_rangecheck) { @@ -2077,9 +1987,6 @@ gdev_pdf_fill_rectangle_hl_color(gx_device *dev, const gs_fixed_rect *rect, int code; gs_fixed_rect box1 = *rect, box = box1; gx_device_pdf *pdev = (gx_device_pdf *) dev; - double scale; - gs_matrix smat; - gs_matrix *psmat = NULL; const bool convert_to_image = (pdev->CompatibilityLevel <= 1.2 && gx_dc_is_pattern2_color(pdcolor)); @@ -2098,16 +2005,9 @@ gdev_pdf_fill_rectangle_hl_color(gx_device *dev, const gs_fixed_rect *rect, rect_intersect(box1, box); if (box1.p.x > box1.q.x || box1.p.y > box1.q.y) return 0; /* outside the clipping path */ - if (make_rect_scaling(pdev, &box1, 1.0, &scale)) { - gs_make_scaling(pdev->scale.x * scale, pdev->scale.y * scale, &smat); - pdf_put_matrix(pdev, "q ", &smat, "cm\n"); - psmat = &smat; - } pprintg4(pdev->strm, "%g %g %g %g re f\n", - fixed2float(box1.p.x) / scale, fixed2float(box1.p.y) / scale, - fixed2float(box1.q.x - box1.p.x) / scale, fixed2float(box1.q.y - box1.p.y) / scale); - if (psmat) - stream_puts(pdev->strm, "Q\n"); + fixed2float(box1.p.x), fixed2float(box1.p.y), + fixed2float(box1.q.x - box1.p.x) , fixed2float(box1.q.y - box1.p.y)); if (pdev->Eps2Write) { gs_rect *Box; diff --git a/devices/vector/gdevpdfe.c b/devices/vector/gdevpdfe.c index 1c540709..f9544c5d 100644 --- a/devices/vector/gdevpdfe.c +++ b/devices/vector/gdevpdfe.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/vector/gdevpdfg.c b/devices/vector/gdevpdfg.c index 0aa93e53..39da7ea4 100644 --- a/devices/vector/gdevpdfg.c +++ b/devices/vector/gdevpdfg.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or @@ -1467,7 +1467,7 @@ int pdf_reset_color(gx_device_pdf * pdev, const gs_gstate * pgs, * unlike shading patterns we have no fallback. */ if (pdev->CompatibilityLevel < 1.2) { - return_error(gs_error_undefined); + return_error(gs_error_undefined); } code = pdf_put_colored_pattern(pdev, pdc, pcs, ppscc, pgs, &pres); @@ -2426,7 +2426,8 @@ pdf_write_spot_halftone(gx_device_pdf *pdev, const gs_spot_halftone *psht, if (compare_gx_ht_order_levels(&order,porder)) continue; if (memcmp(order.bit_data, porder->bit_data, - order.num_bits * porder->procs->bit_data_elt_size)) + (size_t)order.num_bits * + porder->procs->bit_data_elt_size)) continue; /* We have a match. */ break; @@ -2609,7 +2610,7 @@ pdf_get_halftone_component_index(const gs_multiple_halftone *pmht, return j; } static int -pdf_write_multiple_halftone(gx_device_pdf *pdev, +pdf_write_multiple_halftone(gx_device_pdf *pdev, gs_gstate *pgs, const gs_multiple_halftone *pmht, const gx_device_halftone *pdht, long *pid) { @@ -2679,7 +2680,7 @@ pdf_write_multiple_halftone(gx_device_pdf *pdev, done_Default = true; } phtc = &pmht->components[code]; - if ((code = pmht->get_colorname_string(pdev->memory, phtc->cname, &str, &len)) < 0 || + if ((code = pmht->get_colorname_string(pgs, phtc->cname, &str, &len)) < 0 || (code = pdf_string_to_cos_name(pdev, str, len, &value)) < 0) return code; cos_value_write(&value, pdev); @@ -2739,7 +2740,7 @@ pdf_update_halftone(gx_device_pdf *pdev, const gs_gstate *pgs, break; case ht_type_multiple: case ht_type_multiple_colorscreen: - code = pdf_write_multiple_halftone(pdev, &pht->params.multiple, + code = pdf_write_multiple_halftone(pdev, (gs_gstate *)pgs, &pht->params.multiple, pdht, &id); break; default: diff --git a/devices/vector/gdevpdfg.h b/devices/vector/gdevpdfg.h index e846b1a8..e9faa670 100644 --- a/devices/vector/gdevpdfg.h +++ b/devices/vector/gdevpdfg.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or @@ -347,10 +347,10 @@ int pdf_copy_color_data(gx_device_pdf * pdev, const byte * base, int sourcex, gs_image_t *pim, pdf_image_writer *piw, int for_pattern); -#endif /* gdevpdfg_INCLUDED */ - /* ---------------- Exported by gdevpdfe.c ---------------- */ /* Write metadata */ int pdf_document_metadata(gx_device_pdf *pdev); int pdf_get_docinfo_item(gx_device_pdf *pdev, const char *key, char *buf, int buf_length); + +#endif /* gdevpdfg_INCLUDED */ diff --git a/devices/vector/gdevpdfi.c b/devices/vector/gdevpdfi.c index b73ed3d6..c6bdee9d 100644 --- a/devices/vector/gdevpdfi.c +++ b/devices/vector/gdevpdfi.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or @@ -976,7 +976,7 @@ pdf_begin_typed_image(gx_device_pdf *pdev, const gs_gstate * pgs, const gs_pixel_image_t *pim; gs_int_rect rect; gs_image_format_t format; - const gs_color_space *pcs; + gs_color_space *pcs; int num_components; pdf_image_enum *pie; const pdf_color_space_names_t *names; @@ -1213,6 +1213,7 @@ pdf_begin_typed_image(gx_device_pdf *pdev, const gs_gstate * pgs, } pcs = pim->ColorSpace; + rc_increment_cs(pcs); num_components = (is_mask ? 1 : gs_color_space_num_components(pcs)); code = pdf_check_soft_mask(pdev, (gs_gstate *)pgs); @@ -1238,6 +1239,7 @@ pdf_begin_typed_image(gx_device_pdf *pdev, const gs_gstate * pgs, * to DeviceGray here. */ /* {csrc} make sure this gets freed */ + rc_decrement(pcs, "pdf_begin_typed_image(pcs)"); pcs = gs_cspace_new_DeviceGray(pdev->memory); if (pcs == NULL) code = gs_note_error(gs_error_VMerror); @@ -1401,9 +1403,6 @@ pdf_begin_typed_image(gx_device_pdf *pdev, const gs_gstate * pgs, if (pdev->params.TransferFunctionInfo == tfi_Apply && pdev->transfer_not_identity && !is_mask) pdev->JPEG_PassThrough = 0; -/* if (pdev->JPEG_PassThrough) - uncompressed = pie->writer.binary[0].strm;*/ - /* Code below here deals with setting up the multiple data stream writing. * We can have up to 4 stream writers, which we keep in an array. We must * always have at least one which writes the uncompressed stream. If we @@ -1612,9 +1611,11 @@ pdf_begin_typed_image(gx_device_pdf *pdev, const gs_gstate * pgs, gs_free(mem->non_gc_memory, image, 4, sizeof(image_union_t), "pdf_begin_typed_image(image)"); + rc_decrement(pcs, "pdf_begin_typed_image(pcs)"); return 0; fail_and_fallback: + rc_decrement(pcs, "pdf_begin_typed_image(pcs)"); pdev->JPEG_PassThrough = 0; gs_free(mem->non_gc_memory, image, 4, sizeof(image_union_t), "pdf_begin_typed_image(image)"); @@ -1928,7 +1929,14 @@ pdf_image_end_image_data(gx_image_enum_common_t * info, bool draw_last, /* Clean up any outstanding streams before freeing the enumerator */ while (pie->writer.alt_writer_count-- > 0) { ecode = psdf_end_binary(&(pie->writer.binary[pie->writer.alt_writer_count])); - if (ecode < 0 && code >= 0) code = ecode; + /* If we are skipping an image (because its clipped out or similar) then we + * won't have written any data to it. Some filters (notably the DCTEncode filter) + * throw an error (premature EOD) if we close the filter without writing any data to it. + * So if we are skipping the image, ignore errors when closing the stream. + * Unfortunately we don't set pie->skipping until after begin_typed_image() + * or we could avoid a lot of setup.... + */ + if (ecode < 0 && code >= 0 && !pie->skipping) code = ecode; } gx_image_free_enum(&info); diff --git a/devices/vector/gdevpdfj.c b/devices/vector/gdevpdfj.c index 0af81fc2..4c73e171 100644 --- a/devices/vector/gdevpdfj.c +++ b/devices/vector/gdevpdfj.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/vector/gdevpdfk.c b/devices/vector/gdevpdfk.c index 7914c0ee..e48718d1 100644 --- a/devices/vector/gdevpdfk.c +++ b/devices/vector/gdevpdfk.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or @@ -778,9 +778,10 @@ pdf_iccbased_color_space(gx_device_pdf *pdev, const gs_gstate * pgs, cos_value_t const gs_color_space *pcs, cos_array_t *pca) { cos_stream_t * pcstrm; - int code = 0; + int code = 0, code1 = 0; unsigned char major = 0, minor = 0; bool downgrade_icc = false; + pdf_resource_t *pres = NULL; /* * This would arise only in a pdf ==> pdf translation, but we @@ -864,13 +865,22 @@ pdf_iccbased_color_space(gx_device_pdf *pdev, const gs_gstate * pgs, cos_value_t pcs->cmm_icc_profile_data->buffer_size); } - if (code >= 0) - code = pdf_finish_iccbased(pdev, pcstrm); /* - * The stream has been added to the array: in case of failure, the - * caller will free the array, so there is no need to free the stream - * explicitly here. + * The stream has been added to the array: However because the stream cos object + * has an id (it has to be an indirect object), freeing the colour space won't + * free the ICC profile stream. In order to have the stream freed we must add it to + * a resource chain; we don't have a resource chain for ICC profiles, so add it to + * resourceOther instead. This means it will be among the last objects released. */ + code1 = pdf_alloc_resource(pdev, resourceOther, pcstrm->id, &pres, -1); + if (code1 >= 0) { + COS_FREE(pres->object, "pdf_iccbased_color_space"); + pres->object = (cos_object_t *)pcstrm; + } + + if (code >= 0) + code = pdf_finish_iccbased(pdev, pcstrm); + return code; } diff --git a/devices/vector/gdevpdfm.c b/devices/vector/gdevpdfm.c index 6e018aa4..18ea50c5 100644 --- a/devices/vector/gdevpdfm.c +++ b/devices/vector/gdevpdfm.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/vector/gdevpdfo.c b/devices/vector/gdevpdfo.c index 402d290c..70b66c6b 100644 --- a/devices/vector/gdevpdfo.c +++ b/devices/vector/gdevpdfo.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or @@ -1132,6 +1132,10 @@ static int write_key_as_string_encrypted(const gx_device_pdf *pdev, const byte * memcpy(buffer, str, size); s_arcfour_process_buffer(&sarc4, buffer, size); stream_write(&sout, buffer, size); + /* Another case where we use sclose() and not s_close_filters(), because the + * buffer we supplied to s_init_filter is a heap based C object, so we + * must not free it. + */ sclose(&sout); /* Writes ')'. */ gs_free_object(pdev->pdf_memory, buffer, "Free encryption buffer"); return 0; diff --git a/devices/vector/gdevpdfo.h b/devices/vector/gdevpdfo.h index 0b6ef201..b30e9676 100644 --- a/devices/vector/gdevpdfo.h +++ b/devices/vector/gdevpdfo.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/vector/gdevpdfp.c b/devices/vector/gdevpdfp.c index 2f29dba5..d06e585c 100644 --- a/devices/vector/gdevpdfp.c +++ b/devices/vector/gdevpdfp.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/vector/gdevpdfr.c b/devices/vector/gdevpdfr.c index 6d9f7f6f..b0ee06c4 100644 --- a/devices/vector/gdevpdfr.c +++ b/devices/vector/gdevpdfr.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/vector/gdevpdft.c b/devices/vector/gdevpdft.c index 46f4d312..a963cb51 100644 --- a/devices/vector/gdevpdft.c +++ b/devices/vector/gdevpdft.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or @@ -107,7 +107,7 @@ pdf_make_group_dict(gx_device_pdf * pdev, const gs_pdf14trans_params_t * pparams a group color specified. In this case, the parent group is inherited from the previous group or the device color space */ - if (pgs != NULL && pparams->group_color != UNKNOWN) { + if (pgs != NULL && pparams->group_color_type != UNKNOWN) { const gs_color_space *cs = gs_currentcolorspace_inline(pgs); code = pdf_color_space_named(pdev, pgs, &cs_value, NULL, cs, @@ -274,7 +274,7 @@ pdf_begin_transparency_mask(gs_gstate * pgs, gx_device_pdf * pdev, const gs_pdf14trans_params_t * pparams) { if (pparams->subtype == TRANSPARENCY_MASK_None) { - int code, id = pgs->soft_mask_id; + int code; pdf_resource_t *pres = 0L; /* reset the soft mask ID. Apparently this is only used by pdfwrite, if we don't @@ -284,10 +284,11 @@ pdf_begin_transparency_mask(gs_gstate * pgs, gx_device_pdf * pdev, pgs->soft_mask_id = 0; code = pdf_prepare_drawing(pdev, pgs, &pres, false); if (code == gs_error_interrupt) { - /* Not in an appropriate context, ignore it but restore - * the old soft_mask_id. Not sure this is correct, but it works for now. + /* */ + /* Not in an appropriate context. Do not restore the soft_mask_id. + Otherwise any group push that occurs following this will use that + softmask, which clearly should be NONE here. */ - pgs->soft_mask_id = id; /* ignore return code, we don't care about this graphics state as we aren't * emitting it anyway */ diff --git a/devices/vector/gdevpdfu.c b/devices/vector/gdevpdfu.c index 05ea7881..e5a9df01 100644 --- a/devices/vector/gdevpdfu.c +++ b/devices/vector/gdevpdfu.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or @@ -568,6 +568,7 @@ int ps2write_dsc_header(gx_device_pdf * pdev, int pages) if (code < 0) return code; } + stream_puts(s, "10 dict dup begin\n"); stream_puts(s, "/DSC_OPDFREAD true def\n"); if (pdev->Eps2Write) { stream_puts(s, "/SetPageSize false def\n"); @@ -577,6 +578,7 @@ int ps2write_dsc_header(gx_device_pdf * pdev, int pages) stream_puts(s, "/SetPageSize true def\n"); stream_puts(s, "/EPS2Write false def\n"); } + stream_puts(s, "end\n"); code = copy_procsets(s, pdev->HaveTrueTypes, false); if (code < 0) @@ -626,6 +628,7 @@ pdfwrite_pdf_open_document(gx_device_pdf * pdev) if (code < 0) return code; } + stream_puts(s, "10 dict dup begin\n"); stream_puts(s, "/DSC_OPDFREAD false def\n"); code = copy_procsets(s, pdev->HaveTrueTypes, true); if (code < 0) @@ -646,6 +649,7 @@ pdfwrite_pdf_open_document(gx_device_pdf * pdev) stream_puts(s, "/FitPages true def\n"); if(pdev->CenterPages) stream_puts(s, "/CenterPages true def\n"); + stream_puts(s, "end\n"); pdev->OPDFRead_procset_length = stell(s); } } @@ -1000,21 +1004,6 @@ pdf_begin_encrypt(gx_device_pdf * pdev, stream **s, gs_id object_id) */ } -/* Remove the encryption filter. */ -void -pdf_end_encrypt(gx_device_pdf * pdev) -{ - if (pdev->KeyLength) { - stream *s = pdev->strm; - stream *fs = s->strm; - - sclose(s); - gs_free_object(pdev->pdf_memory, s->cbuf, "encrypt buffer"); - gs_free_object(pdev->pdf_memory, s, "encrypt stream"); - pdev->strm = fs; - } -} - /* Enter stream context. */ static int none_to_stream(gx_device_pdf * pdev) @@ -1168,6 +1157,7 @@ stream_to_none(gx_device_pdf * pdev) stream *s = pdev->strm; gs_offset_t length; int code; + stream *target; if (pdev->ResourcesBeforeUsage) { int code = pdf_exit_substream(pdev); @@ -1180,22 +1170,16 @@ stream_to_none(gx_device_pdf * pdev) if (code < 0) return code; } - if (pdev->compression_at_page_start == pdf_compress_Flate) { /* Terminate the filters. */ - stream *fs = s->strm; - - if (!pdev->binary_ok) { - sclose(s); /* Terminate the ASCII85 filter. */ - gs_free_object(pdev->pdf_memory, s->cbuf, "A85E contents buffer"); - gs_free_object(pdev->pdf_memory, s, "A85E contents stream"); - pdev->strm = s = fs; - fs = s->strm; - } - sclose(s); /* Next terminate the compression filter */ - gs_free_object(pdev->pdf_memory, s->cbuf, "zlib buffer"); - gs_free_object(pdev->pdf_memory, s, "zlib stream"); - pdev->strm = fs; - } - pdf_end_encrypt(pdev); + target = pdev->strm; + + if (pdev->compression_at_page_start == pdf_compress_Flate) + target = target->strm; + if (!pdev->binary_ok) + target = target->strm; + if (pdf_end_encrypt(pdev)) + target = target->strm; + s_close_filters(&pdev->strm, target); + s = pdev->strm; length = pdf_stell(pdev) - pdev->contents_pos; if (pdev->PDFA != 0) @@ -2014,13 +1998,18 @@ pdf_unclip(gx_device_pdf * pdev) /* ------ Miscellaneous output ------ */ /* Generate the default Producer string. */ +/* This calculation is also performed for Ghostscript generally + * The code is in ghostpdl/base/gsmisc.c printf_program_ident(). + * Should we change this calculation both sets of code need to be updated. + */ void pdf_store_default_Producer(char buf[PDF_MAX_PRODUCER]) { - if ((gs_revision % 100) == 0) - gs_sprintf(buf, "(%s %1.1f)", gs_product, gs_revision / 100.0); - else - gs_sprintf(buf, "(%s %1.2f)", gs_product, gs_revision / 100.0); + int major = (int)(gs_revision / 1000); + int minor = (int)(gs_revision - (major * 1000)) / 10; + int patch = gs_revision % 10; + + gs_sprintf(buf, "(%s %d.%02d.%d)", gs_product, major, minor, patch); } /* Write matrix values. */ @@ -2133,6 +2122,10 @@ pdf_encrypt_encoded_string(const gx_device_pdf *pdev, const byte *str, uint size break; } } + /* Another case where we use sclose() and not sclose_filters(), because the + * buffer we supplied to s_init_filter is a heap based C object, so we + * must not free it. + */ sclose(&sout); /* Writes ')'. */ return (int)stell(&sinp) + 1; } @@ -2697,7 +2690,7 @@ pdf_function_aux(gx_device_pdf *pdev, const gs_function_t *pfn, stream_write(writer.strm, ptr, count); } code = psdf_end_binary(&writer); - sclose(s); + s_close_filters(&s, s->strm); } pdev->strm = save; if (code < 0) diff --git a/devices/vector/gdevpdfv.c b/devices/vector/gdevpdfv.c index 2f71d86a..dd7d4c7c 100644 --- a/devices/vector/gdevpdfv.c +++ b/devices/vector/gdevpdfv.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/vector/gdevpdfx.h b/devices/vector/gdevpdfx.h index 0e43a028..c8b44b46 100644 --- a/devices/vector/gdevpdfx.h +++ b/devices/vector/gdevpdfx.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or @@ -41,7 +41,11 @@ * Windows and Linux fail with coordinates outside +/- 16383. Hence, we * limit coordinates to 16k, with a little slop. */ -#define MAX_USER_COORD 16300 +/* 28/05/2020 This was only being applied to text and a subset of paths. Since + * Acrobat 4 is now more than 20 years old, lets just drop support for it. The + * PDF specification never had this limit, just Adobe's software. + */ +/* #define MAX_USER_COORD 16300 */ /* ---------------- Statically allocated sizes ---------------- */ /* These should really be dynamic.... */ @@ -1168,7 +1172,12 @@ int pdf_copy_data_safe(stream *s, gp_file *file, gs_offset_t position, long coun /* Add the encryption filter. */ int pdf_begin_encrypt(gx_device_pdf * pdev, stream **s, gs_id object_id); /* Remove the encryption filter. */ -void pdf_end_encrypt(gx_device_pdf * pdev); +static int inline pdf_end_encrypt(gx_device_pdf *pdev) +{ + if (pdev->KeyLength) + return 1; + return 0; +} /* Initialize encryption. */ int pdf_encrypt_init(const gx_device_pdf * pdev, gs_id object_id, stream_arcfour_state *psarc4); diff --git a/devices/vector/gdevpdt.c b/devices/vector/gdevpdt.c index 6a3b5a7f..970dd76a 100644 --- a/devices/vector/gdevpdt.c +++ b/devices/vector/gdevpdt.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/vector/gdevpdt.h b/devices/vector/gdevpdt.h index a4e736db..ee7a1c1e 100644 --- a/devices/vector/gdevpdt.h +++ b/devices/vector/gdevpdt.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/vector/gdevpdtb.c b/devices/vector/gdevpdtb.c index 9caa640e..61961c4a 100644 --- a/devices/vector/gdevpdtb.c +++ b/devices/vector/gdevpdtb.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or @@ -359,7 +359,7 @@ pdf_base_font_alloc(gx_device_pdf *pdev, pdf_base_font_t **ppbfont, font_name.size -= SUBSET_PREFIX_SIZE; } } else { - gs_sprintf(fnbuf, ".F%lx", (ulong)copied); + gs_sprintf(fnbuf, ".F" PRI_INTPTR, (intptr_t)copied); font_name.data = (byte *)fnbuf; font_name.size = strlen(fnbuf); } diff --git a/devices/vector/gdevpdtb.h b/devices/vector/gdevpdtb.h index 1e160eb1..8753aa98 100644 --- a/devices/vector/gdevpdtb.h +++ b/devices/vector/gdevpdtb.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/vector/gdevpdtc.c b/devices/vector/gdevpdtc.c index 95af86ff..5c6da535 100644 --- a/devices/vector/gdevpdtc.c +++ b/devices/vector/gdevpdtc.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/vector/gdevpdtd.c b/devices/vector/gdevpdtd.c index 45e2888e..ce6efa05 100644 --- a/devices/vector/gdevpdtd.c +++ b/devices/vector/gdevpdtd.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/vector/gdevpdtd.h b/devices/vector/gdevpdtd.h index 9c3078e2..92e64758 100644 --- a/devices/vector/gdevpdtd.h +++ b/devices/vector/gdevpdtd.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/vector/gdevpdte.c b/devices/vector/gdevpdte.c index 3e7e2237..6f0eb158 100644 --- a/devices/vector/gdevpdte.c +++ b/devices/vector/gdevpdte.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or @@ -160,6 +160,8 @@ pdf_add_ToUnicode(gx_device_pdf *pdev, gs_font *font, pdf_font_resource_t *pdfon if (pdfont->cmap_ToUnicode != NULL) gs_cmap_ToUnicode_add_pair(pdfont->cmap_ToUnicode, ch, unicode, length); + if (length > 2 && pdfont->u.simple.Encoding != NULL) + pdfont->TwoByteToUnicode = 0; } if (unicode) gs_free_object(pdev->memory, unicode, "temporary Unicode array"); diff --git a/devices/vector/gdevpdtf.c b/devices/vector/gdevpdtf.c index d14fa346..c823b18c 100644 --- a/devices/vector/gdevpdtf.c +++ b/devices/vector/gdevpdtf.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or @@ -572,6 +572,7 @@ font_resource_simple_alloc(gx_device_pdf *pdev, pdf_font_resource_t **ppfres, pfres->u.simple.BaseEncoding = -1; pfres->u.simple.preferred_encoding_index = -1; pfres->u.simple.last_reserved_char = -1; + pfres->TwoByteToUnicode = 1; *ppfres = pfres; return 0; } diff --git a/devices/vector/gdevpdtf.h b/devices/vector/gdevpdtf.h index 4a9e8961..f0006641 100644 --- a/devices/vector/gdevpdtf.h +++ b/devices/vector/gdevpdtf.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or @@ -203,6 +203,15 @@ struct pdf_font_resource_s { gs_cmap_t *cmap_ToUnicode; /* CMap (not used for CIDFonts) */ gs_glyph_mark_proc_t mark_glyph; void *mark_glyph_data; /* closure data */ + + /* We use this when determining whether we should use an existing ToUnicode + * CMap or just use the Encoding, for s aimple font. Even if the Encoding + * only uses named glyphs, with names we can understand, the original + * ToUnicode may have mapped these in a non-standard way. + * See Bug #702201 where the ffi ligature is mapped to 3 code points + */ + int TwoByteToUnicode; + union { struct /*type0*/ { @@ -253,7 +262,6 @@ struct pdf_font_resource_s { gs_point *v; /* [256], glyph origin for WMode 1 */ int last_reserved_char; /* Except for synthesised Type 3, which stores such data in LastChar */ - gs_glyph standard_glyph_code_for_notdef; union { diff --git a/devices/vector/gdevpdti.c b/devices/vector/gdevpdti.c index 7ba56fd6..0205604a 100644 --- a/devices/vector/gdevpdti.c +++ b/devices/vector/gdevpdti.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or @@ -479,7 +479,9 @@ pdf_end_char_proc(gx_device_pdf * pdev, pdf_stream_position_t * ppos) stream *s; gs_offset_t start_pos, end_pos, length; - pdf_end_encrypt(pdev); + if (pdf_end_encrypt(pdev)) + s_close_filters(&pdev->strm, pdev->strm->strm); + s = pdev->strm; start_pos = ppos->start_pos; end_pos = stell(s); diff --git a/devices/vector/gdevpdti.h b/devices/vector/gdevpdti.h index 65e1efcb..81409e67 100644 --- a/devices/vector/gdevpdti.h +++ b/devices/vector/gdevpdti.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/vector/gdevpdts.c b/devices/vector/gdevpdts.c index 055aeb44..aa41f516 100644 --- a/devices/vector/gdevpdts.c +++ b/devices/vector/gdevpdts.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or @@ -81,11 +81,6 @@ append_text_move(pdf_text_state_t *pts, double dw) rounded = floor(dw + 0.5); if (fabs(dw - rounded) < 0.001) dw = rounded; - if (dw < -MAX_USER_COORD) { - /* Acrobat reader 4.0c, 5.0 can't handle big offsets. - Adobe Reader 6 can. */ - return -1; - } if (dw != 0) { if (count == MAX_TEXT_BUFFER_MOVES) return -1; @@ -173,47 +168,11 @@ add_text_delta_move(gx_device_pdf *pdev, const gs_matrix *pmat) * for the xhow and once for the Width override. Otherwise, we do * want to use TJ as it makes for smaller files. */ - if (pts->can_use_TJ && dnotw == 0 && pts->buffer.count_chars > 0 && - /* - * Acrobat Reader limits the magnitude of user-space - * coordinates. Also, AR apparently doesn't handle large - * positive movement values (negative X displacements), even - * though the PDF Reference says this bug was fixed in AR3. - * - * Old revisions used the upper threshold 1000 for tdw, - * but it appears too big when a font sets a too big - * character width in setcachedevice. Particularly this happens - * with a Type 3 font generated by Aldus Freehand 4.0 - * to represent a texture - see bug #687051. - * The problem is that when the Widths is multiplied - * to the font size, the viewer represents the result - * with insufficient fraction bits to represent the precise width. - * We work around that problem here restricting tdw - * with a smaller threshold 990. Our intention is to - * disable Tj when the real glyph width appears smaller - * than 1% of the width specified in setcachedevice. - * A Td instruction will be generated instead. - * Note that the value 990 is arbitrary and may need a - * further adjustment. - */ - /* Revised the above. It seems unreasonable to use a fixed - * value which is not based on the point size, when the problem is - * caused by a large point size being multiplied by the width. The - * original fix also caused bitmap fonts (from PCL and other sources) - * to fail to use kerning, as these fonts are scaled to 1 point and - * therefore use large kerning values. Instead we check the kerned value - * multiplied by the point size of the font. - */ - (tdw >= -MAX_USER_COORD && (tdw * pts->in.size) < MAX_USER_COORD) - ) { + if (pts->can_use_TJ && dnotw == 0 && pts->buffer.count_chars > 0) { /* Use TJ. */ int code; - if (tdw < MAX_USER_COORD || pdev->CompatibilityLevel > 1.4) - code = append_text_move(pts, tdw); - else - return -1; - + code = append_text_move(pts, tdw); if (code >= 0) goto finish; } diff --git a/devices/vector/gdevpdts.h b/devices/vector/gdevpdts.h index cde7a3c8..b3699eb2 100644 --- a/devices/vector/gdevpdts.h +++ b/devices/vector/gdevpdts.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/vector/gdevpdtt.c b/devices/vector/gdevpdtt.c index f248e998..5884115e 100644 --- a/devices/vector/gdevpdtt.c +++ b/devices/vector/gdevpdtt.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/vector/gdevpdtt.h b/devices/vector/gdevpdtt.h index cf3b7625..9a710151 100644 --- a/devices/vector/gdevpdtt.h +++ b/devices/vector/gdevpdtt.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/vector/gdevpdtv.c b/devices/vector/gdevpdtv.c index eb9a18fe..a16a48d7 100644 --- a/devices/vector/gdevpdtv.c +++ b/devices/vector/gdevpdtv.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/vector/gdevpdtv.h b/devices/vector/gdevpdtv.h index 89502365..5e27ecd1 100644 --- a/devices/vector/gdevpdtv.h +++ b/devices/vector/gdevpdtv.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/vector/gdevpdtw.c b/devices/vector/gdevpdtw.c index be3c874d..6d197bd5 100644 --- a/devices/vector/gdevpdtw.c +++ b/devices/vector/gdevpdtw.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or @@ -119,6 +119,9 @@ pdf_simple_font_needs_ToUnicode(const pdf_font_resource_t *pdfont) In this circumstance, write the ToUnicode map to get a searchable PDF. */ return true; + if (!pdfont->TwoByteToUnicode) + return true; + for (ch = 0; ch < 256; ++ch) { pdf_encoding_element_t *pet = &pdfont->u.simple.Encoding[ch]; gs_glyph glyph = pet->glyph; @@ -136,6 +139,7 @@ pdf_simple_font_needs_ToUnicode(const pdf_font_resource_t *pdfont) if( glyph > GS_C_PDF_MAX_GOOD_GLYPH || !(gs_c_pdf_glyph_type[glyph >> 2] & (mask << (( glyph & 3 )<<1) ))) return true; + } return false; } diff --git a/devices/vector/gdevpdtw.h b/devices/vector/gdevpdtw.h index 4ff32453..34feeed2 100644 --- a/devices/vector/gdevpdtw.h +++ b/devices/vector/gdevpdtw.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/vector/gdevpdtx.h b/devices/vector/gdevpdtx.h index 92374aa0..d5fe6177 100644 --- a/devices/vector/gdevpdtx.h +++ b/devices/vector/gdevpdtx.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/vector/gdevpsdf.h b/devices/vector/gdevpsdf.h index 5047f43a..a20c61b0 100644 --- a/devices/vector/gdevpsdf.h +++ b/devices/vector/gdevpsdf.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or @@ -194,7 +194,7 @@ extern const stream_template s_zlibE_template; 500000, /* ImageMemory */ \ 0, /* LockDistillerParams (false) */ \ 0, /* LZWEncodePages (false) */ \ - 1, /* Overprintmode (OPM) */ \ + 0, /* Overprintmode (OPM) */ \ 0, /* PreserveOPIComments (false) */ \ 1, /* UseFlateCompression (true) */ \ /* Color processing parameters */\ @@ -332,8 +332,7 @@ extern_st(st_device_psdf); params.MonoImage.Dict),\ GC_OBJ_ELT2(gx_device_psdf, params.AlwaysEmbed.data,\ params.NeverEmbed.data),\ - GC_CONST_STRING_ELT(gx_device_psdf, params.PSDocOptions),\ - GC_OBJ_ELT(gx_device_psdf, params.PSPageOptions.data)\ + GC_CONST_STRING_ELT(gx_device_psdf, params.PSDocOptions)\ };\ gs_public_st_basic_super_final(st_device_psdf, gx_device_psdf,\ "gx_device_psdf", device_psdf_ptrs, device_psdf_data,\ diff --git a/devices/vector/gdevpsdi.c b/devices/vector/gdevpsdi.c index 9c2adb72..f093edf1 100644 --- a/devices/vector/gdevpsdi.c +++ b/devices/vector/gdevpsdi.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or @@ -529,7 +529,7 @@ setup_downsampling(psdf_binary_writer * pbw, const psdf_image_params * pdip, ss->params.EntireWidthIn = ss->params.WidthIn = ss->params.PatchWidthIn = pim->Width; ss->params.EntireHeightIn = ss->params.HeightIn = ss->params.PatchHeightIn = pim->Height; ss->params.EntireWidthOut = ss->params.WidthOut = ss->params.PatchWidthOut = s_Downsample_size_out(pim->Width, factor, false); - ss->params.EntireHeightOut = ss->params.HeightOut = s_Downsample_size_out(pim->Height, factor, false); + ss->params.EntireHeightOut = ss->params.HeightOut = ss->params.PatchHeightOut = ss->params.PatchHeightOut2 = s_Downsample_size_out(pim->Height, factor, false); /* Bug #697944 The code below to apply the downsampling filter always * resizes the input data to the filter with 8BPC and then resizes the output back to whatever @@ -539,8 +539,8 @@ setup_downsampling(psdf_binary_writer * pbw, const psdf_image_params * pdip, ss->params.BitsPerComponentIn = ss->params.BitsPerComponentOut = 8; ss->params.spp_interp = ss->params.spp_decode = Colors; - ss->params.TopMarginIn = ss->params.TopMarginOut = ss->params.LeftMarginIn = ss->params.LeftMarginOut = 0; - ss->params.src_y_offset = 0; + ss->params.TopMarginIn = ss->params.TopMarginOut = ss->params.TopMarginOut2 = ss->params.LeftMarginIn = ss->params.LeftMarginOut = 0; + ss->params.src_y_offset = ss->params.pad_y = 0; ss->params.early_cm = true; ss->params.MaxValueIn = ss->params.MaxValueOut = (int)pow(2, pdip->Depth); diff --git a/devices/vector/gdevpsdp.c b/devices/vector/gdevpsdp.c index bda3fe2a..c8a48ee5 100644 --- a/devices/vector/gdevpsdp.c +++ b/devices/vector/gdevpsdp.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or @@ -232,7 +232,7 @@ static const gs_param_item_t psdf_param_items[] = { /* (DefaultRenderingIntent) */ pi("DetectBlends", gs_param_type_bool, DetectBlends), pi("DoThumbnails", gs_param_type_bool, DoThumbnails), - pi("ImageMemory", gs_param_type_long, ImageMemory), + pi("ImageMemory", gs_param_type_size_t, ImageMemory), /* (LockDistillerParams) */ pi("LZWEncodePages", gs_param_type_bool, LZWEncodePages), pi("OPM", gs_param_type_int, OPM), @@ -625,6 +625,10 @@ gdev_psdf_get_params(gx_device * dev, gs_param_list * plist) if (code < 0) return code; + code = param_write_string_array(plist, "PSPageOptions", &pdev->params.PSPageOptions); + if (code < 0) + return code; + code = psdf_write_name(plist, "CannotEmbedFontPolicy", CannotEmbedFontPolicy_names[(int)pdev->params.CannotEmbedFontPolicy]); @@ -1040,6 +1044,65 @@ psdf_put_image_params(const gx_device_psdf * pdev, gs_param_list * plist, return ecode; } +/* This is a convenience routine. There doesn't seem to be any way to have a param_string_array + * enumerated for garbage collection, and we have (currently) three members of the psdf_distiller_params + * structure which store param_string_array. If the interpreter is using garbage collection then there + * is the potential for the array, or its contents, to be relocated or freed while we are still + * maintaining pointers to them, unless we enumerate the pointers. + * Instead, we'll copy the string data from the interpreter, make our own param_string_array, and + * manage the memory ourselves. This allows us to move the data into non-GC memory which is preferable + * anyway. + */ +static int psdf_copy_param_string_array(gs_memory_t *mem, gs_param_list * plist, gs_param_string_array *sa, gs_param_string_array *da) +{ + int code; + + if (sa->size > 0) { + int ix; + byte **dest; + + if (da->data != NULL) { + for (ix = 0; ix < da->size;ix++) + gs_free_object(mem->non_gc_memory, (byte *)da->data[ix].data, "freeing old string array copy"); + gs_free_object(mem->non_gc_memory, (byte *)da->data, "freeing old string array"); + } + da->data = (const gs_param_string *)gs_alloc_bytes(mem->non_gc_memory, sa->size * sizeof(gs_param_string), "allocate new string array"); + if (da->data == NULL) + return_error(gs_note_error(gs_error_VMerror)); + memset((byte *)da->data, 0x00, sa->size * sizeof(gs_param_string)); + da->size = sa->size; + da->persistent = false; + + for(ix=0;ix < sa->size;ix++) { + ((gs_param_string *)&da->data[ix])->data = gs_alloc_bytes(mem->non_gc_memory, sa->data[ix].size, "allocate new strings"); + if (da->data[ix].data == NULL) + return_error(gs_note_error(gs_error_VMerror)); + memcpy((byte *)(da->data[ix].data), sa->data[ix].data, sa->data[ix].size); + ((gs_param_string *)&da->data[ix])->size = sa->data[ix].size; + ((gs_param_string *)&da->data[ix])->persistent = false; + } + gs_free_object(plist->memory, (byte *)sa->data, "freeing temporary param string array"); + sa->data = NULL; + sa->size = 0; + } + return 0; +} + +static int psdf_read_copy_param_string_array(gs_memory_t *mem, gs_param_list * plist, char *Key, gs_param_string_array *da) +{ + gs_param_string_array sa; + int code; + + code = param_read_embed_array(plist, Key, &sa); + if (code < 0) + return code; + + if(sa.size) + code = psdf_copy_param_string_array(mem, plist, &sa, da); + + return code; +} + /* Put parameters. */ int gdev_psdf_put_params(gx_device * dev, gs_param_list * plist) @@ -1076,6 +1139,8 @@ gdev_psdf_put_params(gx_device * dev, gs_param_list * plist) params.MonoImage.ACSDict = params.MonoImage.Dict = 0; params.AlwaysEmbed.data = params.NeverEmbed.data = 0; params.AlwaysEmbed.size = params.AlwaysEmbed.persistent = params.NeverEmbed.size = params.NeverEmbed.persistent = 0; + params.PSPageOptions.data = NULL; + params.PSPageOptions.size = 0; } /* General parameters. */ @@ -1184,6 +1249,7 @@ gdev_psdf_put_params(gx_device * dev, gs_param_list * plist) ¶ms.AlwaysEmbed, mem, ecode); ecode = psdf_put_embed_param(plist, "~NeverEmbed", ".NeverEmbed", ¶ms.NeverEmbed, mem, ecode); + params.CannotEmbedFontPolicy = (enum psdf_cannot_embed_font_policy) psdf_put_enum(plist, "CannotEmbedFontPolicy", (int)params.CannotEmbedFontPolicy, @@ -1199,7 +1265,7 @@ gdev_psdf_put_params(gx_device * dev, gs_param_list * plist) if (code < 0) goto exit; - code = param_read_embed_array(plist, "PSPageOptions", ¶ms.PSPageOptions); + code = psdf_read_copy_param_string_array(pdev->memory, plist, "PSPageOptions", ¶ms.PSPageOptions); if (code < 0) goto exit; @@ -1208,6 +1274,14 @@ gdev_psdf_put_params(gx_device * dev, gs_param_list * plist) exit: if (!(pdev->params.LockDistillerParams && params.LockDistillerParams)) { /* Only update the device paramters if there was no error */ + /* If we have any copied param_string_arrays, start by freeing them */ + if (pdev->params.PSPageOptions.size && params.PSPageOptions.size) { + int ix; + + for (ix = 0; ix < pdev->params.PSPageOptions.size;ix++) + gs_free_object(mem->non_gc_memory, (byte *)pdev->params.PSPageOptions.data[ix].data, "freeing old string array copy"); + gs_free_object(mem->non_gc_memory, (byte *)pdev->params.PSPageOptions.data, "freeing old string array"); + } pdev->params = params; } else { /* We read a bunch of parameters and are now throwing them away. Either because there @@ -1216,10 +1290,15 @@ exit: */ gs_memory_t *stable_mem = gs_memory_stable(mem); - if (params.NeverEmbed.data != 0) - gs_free_object(stable_mem, (void *)params.NeverEmbed.data, "free dummy param NeverEmbed"); - if (params.AlwaysEmbed.data != 0) - gs_free_object(stable_mem, (void *)params.AlwaysEmbed.data, "free dummy param AlwaysEmbed"); + if (params.PSPageOptions.data != NULL) { + int ix; + + for (ix = 0; ix < pdev->params.PSPageOptions.size;ix++) + gs_free_object(mem->non_gc_memory, (byte *)pdev->params.PSPageOptions.data[ix].data, "freeing dummy PSPageOptions"); + gs_free_object(mem->non_gc_memory, (byte *)pdev->params.PSPageOptions.data, "freeing dummy PSPageOptions"); + params.PSPageOptions.data = NULL; + params.PSPageOptions.size = 0; + } if (params.CalCMYKProfile.data != 0) gs_free_string(stable_mem, (void *)params.CalCMYKProfile.data, params.CalCMYKProfile.size, "free dummy param CalCMYKProfile"); if (params.CalGrayProfile.data != 0) diff --git a/devices/vector/gdevpsds.c b/devices/vector/gdevpsds.c index 65bbf544..bc932902 100644 --- a/devices/vector/gdevpsds.c +++ b/devices/vector/gdevpsds.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or @@ -822,7 +822,8 @@ s_Bicubic_data_at(stream_Bicubic_state *const ss, int x, int y, int c) y = ss->HeightIn - 1; y -= ss->y_in; idx = ss->l_size * (y < 0 ? 0 : y) + - (x < 0 ? 0 : x >= ss->WidthIn ? ss->WidthIn-1 : x) * ss->Colors + c; + (size_t)(x < 0 ? 0 : x >= ss->WidthIn ? ss->WidthIn-1 : x) * + ss->Colors + c; return (idx < ss->d_len) ? ss->data[idx] : 0; } @@ -952,7 +953,8 @@ s_compr_chooser_set_dimensions(stream_compr_chooser_state * ss, int width, ss->height = height; ss->depth = depth; ss->bits_per_sample = bits_per_sample; - ss->sample = gs_alloc_bytes(ss->memory, width * depth, "s_compr_chooser_set_dimensions"); + ss->sample = gs_alloc_bytes(ss->memory, (size_t)width * depth, + "s_compr_chooser_set_dimensions"); if (ss->sample == 0) return_error(gs_error_VMerror); return 0; diff --git a/devices/vector/gdevpsds.h b/devices/vector/gdevpsds.h index 35a756f0..207e54c4 100644 --- a/devices/vector/gdevpsds.h +++ b/devices/vector/gdevpsds.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/vector/gdevpsdu.c b/devices/vector/gdevpsdu.c index d626358a..c4be6ac0 100644 --- a/devices/vector/gdevpsdu.c +++ b/devices/vector/gdevpsdu.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/vector/gdevpsf.h b/devices/vector/gdevpsf.h index 275e526d..9105eb86 100644 --- a/devices/vector/gdevpsf.h +++ b/devices/vector/gdevpsf.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/vector/gdevpsf1.c b/devices/vector/gdevpsf1.c index 7e167b45..feed79eb 100644 --- a/devices/vector/gdevpsf1.c +++ b/devices/vector/gdevpsf1.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/vector/gdevpsf2.c b/devices/vector/gdevpsf2.c index 985cd25e..3c38e988 100644 --- a/devices/vector/gdevpsf2.c +++ b/devices/vector/gdevpsf2.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or @@ -703,7 +703,7 @@ cff_write_Top_fdarray(cff_writer_t *pcw, gs_font_base *pbfont, gs_font_info_t info; cff_get_Top_info_common(pcw, pbfont, false, &info); - cff_write_Top_common(pcw, pbfont, false, &info); + cff_write_Top_common(pcw, pbfont, true, &info); cff_put_int(pcw, Private_size); cff_put_int_value(pcw, Private_offset, TOP_Private); if (pfname->size == 0) diff --git a/devices/vector/gdevpsfm.c b/devices/vector/gdevpsfm.c index fea025ef..b38266c2 100644 --- a/devices/vector/gdevpsfm.c +++ b/devices/vector/gdevpsfm.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/vector/gdevpsft.c b/devices/vector/gdevpsft.c index 970a3149..9bc00312 100644 --- a/devices/vector/gdevpsft.c +++ b/devices/vector/gdevpsft.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/vector/gdevpsfu.c b/devices/vector/gdevpsfu.c index 157c7bab..e848bdc8 100644 --- a/devices/vector/gdevpsfu.c +++ b/devices/vector/gdevpsfu.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/vector/gdevpsfx.c b/devices/vector/gdevpsfx.c index b839f9e8..43459327 100644 --- a/devices/vector/gdevpsfx.c +++ b/devices/vector/gdevpsfx.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/vector/gdevpsu.c b/devices/vector/gdevpsu.c index 094ff945..5e3e5a2b 100644 --- a/devices/vector/gdevpsu.c +++ b/devices/vector/gdevpsu.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/vector/gdevpsu.h b/devices/vector/gdevpsu.h index 70cceeaf..c62ed8c6 100644 --- a/devices/vector/gdevpsu.h +++ b/devices/vector/gdevpsu.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/vector/gdevpx.c b/devices/vector/gdevpx.c index a1fce1b7..5195339f 100644 --- a/devices/vector/gdevpx.c +++ b/devices/vector/gdevpx.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/vector/gdevtxtw.c b/devices/vector/gdevtxtw.c index 87f9355d..d46a935e 100644 --- a/devices/vector/gdevtxtw.c +++ b/devices/vector/gdevtxtw.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or @@ -34,6 +34,7 @@ #include "gxdevsop.h" #include "gzpath.h" #include "gdevkrnlsclass.h" /* 'standard' built in subclasses, currently First/Last Page and obejct filter */ +#include "gxchar.h" /* #define TRACE_TXTWRITE 1 */ @@ -73,6 +74,7 @@ typedef struct text_list_entry_s { gs_point end; gs_point FontBBox_bottomleft, FontBBox_topright; float *Widths; + float *Advs; unsigned short *Unicode_Text; int Unicode_Text_Size; int render_mode; @@ -140,10 +142,14 @@ static dev_proc_dev_spec_op(txtwrite_dev_spec_op); /* Define the text enumerator. */ typedef struct textw_text_enum_s { gs_text_enum_common; + gs_text_enum_t *pte_fallback; + double d1_width; + bool d1_width_set; bool charproc_accum; bool cdevproc_callout; double cdevproc_result[10]; float *Widths; + float *Advs; unsigned short *TextBuffer; int TextBufferIndex; text_list_entry_t *text_state; @@ -289,7 +295,7 @@ txtwrite_close_device(gx_device * dev) } #ifdef TRACE_TXTWRITE - fclose(tdev->DebugFile); + gp_fclose(tdev->DebugFile); #endif return code; } @@ -339,14 +345,14 @@ static int merge_vertically(gx_device_txtwrite_t *tdev) to = y_list->x_ordered_list; from = next->x_ordered_list; #ifdef TRACE_TXTWRITE - fprintf(tdev->DebugFile, "\nConsolidating two horizontal lines, line 1:"); + gp_fprintf(tdev->DebugFile, "\nConsolidating two horizontal lines, line 1:"); debug_x = from; while (debug_x) { gp_fprintf(tdev->DebugFile, "\n\t"); gp_fwrite(debug_x->Unicode_Text, sizeof(unsigned short), debug_x->Unicode_Text_Size, tdev->DebugFile); debug_x = debug_x->next; } - fprintf(tdev->DebugFile, "\nConsolidating two horizontal lines, line 2"); + gp_fprintf(tdev->DebugFile, "\nConsolidating two horizontal lines, line 2"); debug_x = to; while (debug_x) { gp_fprintf(tdev->DebugFile, "\n\t"); @@ -384,14 +390,14 @@ static int merge_vertically(gx_device_txtwrite_t *tdev) } y_list->x_ordered_list = new_order; #ifdef TRACE_TXTWRITE - fprintf(tdev->DebugFile, "\nAfter:"); + gp_fprintf(tdev->DebugFile, "\nAfter:"); debug_x = new_order; while (debug_x) { gp_fprintf(tdev->DebugFile, "\n\t"); gp_fwrite(debug_x->Unicode_Text, sizeof(unsigned short), debug_x->Unicode_Text_Size, tdev->DebugFile); debug_x = debug_x->next; } - fprintf(tdev->DebugFile, "\n"); + gp_fprintf(tdev->DebugFile, "\n"); #endif y_list->next = next->next; if (next->next) @@ -830,6 +836,46 @@ static int decorated_text_output(gx_device_txtwrite_t *tdev) return 0; } +static int extract_text_output(gx_device_txtwrite_t *tdev) +{ + text_list_entry_t* entry; + gp_fprintf(tdev->file, "<page>\n"); + for (entry = tdev->PageData.unsorted_text_list; + entry; + entry = entry->next + ) { + float x = entry->start.x; + int i; + gp_fprintf(tdev->file, + "<span bbox=\"%0.4f %0.4f %0.4f %0.4f\" font=\"%s\" size=\"%0.4f\">\n", + entry->start.x, + entry->start.y, + entry->end.x, + entry->end.y, + entry->FontName, + entry->size + ); + for (i=0; i<entry->Unicode_Text_Size; i++) { + float x_next = x + entry->Widths[i]; + char escaped[32]; + escaped_Unicode(entry->Unicode_Text[i], escaped); + gp_fprintf(tdev->file, + "<char bbox=\"%0.4f %0.4f %0.4f %0.4f\" c=\"%s\" adv=\"%0.4f\"/>\n", + x, + entry->start.y, + x_next, + entry->end.y, + escaped, + entry->Advs[i] + ); + x = x_next; + } + gp_fprintf(tdev->file, "</span>\n"); + } + gp_fprintf(tdev->file, "</page>\n"); + return 0; +} + static int txtwrite_output_page(gx_device * dev, int num_copies, int flush) { @@ -866,6 +912,12 @@ txtwrite_output_page(gx_device * dev, int num_copies, int flush) return code; break; + case 4: + code = extract_text_output(tdev); + if (code < 0) + return code; + break; + default: return gs_note_error(gs_error_rangecheck); break; @@ -882,6 +934,7 @@ txtwrite_output_page(gx_device * dev, int num_copies, int flush) while (x_entry) { gs_free(tdev->memory, x_entry->Unicode_Text, x_entry->Unicode_Text_Size, sizeof (usnigned short), "txtwrite free text fragment text buffer"); gs_free(tdev->memory, x_entry->Widths, x_entry->Unicode_Text_Size, sizeof (float), "txtwrite free widths array"); + gs_free(tdev->memory, x_entry->Advs, x_entry->Unicode_Text_Size, sizeof (float), "txtwrite free advs array"); gs_free(tdev->memory, x_entry->FontName, 1, strlen(x_entry->FontName) + 1, "txtwrite free Font Name"); if (x_entry->next) { x_entry = x_entry->next; @@ -907,6 +960,7 @@ txtwrite_output_page(gx_device * dev, int num_copies, int flush) next_x = x_entry->next; gs_free(tdev->memory, x_entry->Unicode_Text, x_entry->Unicode_Text_Size, sizeof (usnigned short), "txtwrite free unsorted text fragment text buffer"); gs_free(tdev->memory, x_entry->Widths, x_entry->Unicode_Text_Size, sizeof (float), "txtwrite free widths array"); + gs_free(tdev->memory, x_entry->Advs, x_entry->Unicode_Text_Size, sizeof (float), "txtwrite free advs array"); gs_free(tdev->memory, x_entry->FontName, 1, strlen(x_entry->FontName) + 1, "txtwrite free Font Name"); gs_free(tdev->memory, x_entry, 1, sizeof(text_list_entry_t), "txtwrite free unsorted text fragment"); x_entry = next_x; @@ -1487,6 +1541,9 @@ get_missing_width(gs_font *font, int wmode, const gs_matrix *scale_c, FONT_INFO_MISSING_WIDTH, &finfo); if (code < 0) return code; + if (!(finfo.members & FONT_INFO_MISSING_WIDTH)) + return_error(gs_error_undefined); + if (wmode) { gs_distance_transform(0.0, -finfo.MissingWidth, scale_c, &pwidths->real_width.xy); pwidths->Width.xy.x = 0; @@ -1561,7 +1618,7 @@ txt_glyph_widths(gs_font *font, int wmode, gs_glyph glyph, && (code == gs_error_undefined || !(info.members & (GLYPH_INFO_WIDTH0 << wmode)))) { code = get_missing_width(font, wmode, &scale_c, pwidths); if (code < 0) - v.y = 0; + return code; else v.y = pwidths->Width.v.y; if (wmode && (ofont->FontType == ft_CID_encrypted || @@ -1812,11 +1869,11 @@ static int get_unicode(textw_text_enum_t *penum, gs_font *font, gs_glyph glyph, #else b = (char *)Buffer; u = (char *)unicode; - while (l >= 0) { - *b++ = *(u + l); - l--; - } + for (l=0;l<length;l+=2, u+=2){ + *b++ = *(u+1); + *b++ = *u; + } #endif gs_free_object(penum->dev->memory, unicode, "free temporary unicode buffer"); return length / sizeof(short); @@ -1930,27 +1987,33 @@ txtwrite_process_plain_text(gs_text_enum_t *pte) uint operation = pte->text.operation; txt_glyph_widths_t widths; gs_point wanted; /* user space */ - gs_point dpt = {0,0}; - for (i=0;i<pte->text.size;i++) { + for (i=pte->index;i<pte->text.size;i++) { + gs_point dpt = {0,0}; if (operation & (TEXT_FROM_STRING | TEXT_FROM_BYTES)) { - ch = pte->text.data.bytes[pte->index++]; + ch = pte->text.data.bytes[pte->index]; } else if (operation & (TEXT_FROM_CHARS | TEXT_FROM_SINGLE_CHAR)) { - ch = pte->text.data.chars[pte->index++]; + ch = pte->text.data.chars[pte->index]; } else if (operation & (TEXT_FROM_GLYPHS | TEXT_FROM_SINGLE_GLYPH)) { if (operation & TEXT_FROM_GLYPHS) { gdata = pte->text.data.glyphs + (pte->index++ * sizeof (gs_glyph)); } else { gdata = &pte->text.data.d_glyph; - pte->index++; } } glyph = (gdata == NULL ? pte->orig_font->procs.encode_char(pte->orig_font, ch, GLYPH_SPACE_NAME) : *gdata); code = txt_glyph_widths(font, font->WMode, glyph, (gs_font *)font, &widths, NULL); - if (code < 0) - return code; + if (code < 0) { + if (penum->d1_width_set) { + widths.Width.w = widths.Width.xy.x = widths.real_width.w = widths.real_width.xy.x = penum->d1_width; + penum->d1_width = 0; + penum->d1_width_set = 0; + } + else + return code; + } penum->cdevproc_callout = false; code = txt_update_text_state(penum->text_state, (textw_text_enum_t *)pte, pte->orig_font, &font->FontMatrix); @@ -1963,7 +2026,8 @@ txtwrite_process_plain_text(gs_text_enum_t *pte) &penum->text_state->matrix, &wanted); pte->returned.total_width.x += wanted.x; pte->returned.total_width.y += wanted.y; - penum->Widths[pte->index - 1] = wanted.x; + penum->Widths[penum->TextBufferIndex] = wanted.x; + penum->Advs[penum->TextBufferIndex] = wanted.x; if (pte->text.operation & TEXT_ADD_TO_ALL_WIDTHS) { gs_point tpt; @@ -1984,8 +2048,20 @@ txtwrite_process_plain_text(gs_text_enum_t *pte) pte->returned.total_width.x += dpt.x; pte->returned.total_width.y += dpt.y; - penum->TextBufferIndex += get_unicode(penum, (gs_font *)pte->orig_font, glyph, ch, &penum->TextBuffer[penum->TextBufferIndex]); - penum->Widths[pte->index - 1] += dpt.x; + penum->Widths[penum->TextBufferIndex] += dpt.x; + code = get_unicode(penum, (gs_font *)pte->orig_font, glyph, ch, &penum->TextBuffer[penum->TextBufferIndex]); + /* If a single text code returned multiple Unicode values, then we need to set the + * 'extra' code points' widths to 0. + */ + if (code > 1) { + memset(&penum->Widths[penum->TextBufferIndex + 1], 0x00, (code - 1) * sizeof(float)); + memset(&penum->Advs[penum->TextBufferIndex + 1], 0x00, (code - 1) * sizeof(float)); + } + penum->TextBufferIndex += code; +/* gs_moveto_aux(penum->pgs, gx_current_path(penum->pgs), + fixed2float(penum->origin.x) + wanted.x + dpt.x, + fixed2float(penum->origin.y) + wanted.y + dpt.y);*/ + pte->index++; } return 0; } @@ -2020,7 +2096,7 @@ txt_add_sorted_fragment(gx_device_txtwrite_t *tdev, textw_text_enum_t *penum) /* Already have text at this y-position */ text_list_entry_t *X_List = Y_List->x_ordered_list; - while (X_List->next && X_List->start.x < penum->text_state->start.x) + while (X_List->next && X_List->start.x <= penum->text_state->start.x) X_List = X_List->next; if (X_List->start.x > penum->text_state->start.x) { @@ -2095,6 +2171,20 @@ txt_add_fragment(gx_device_txtwrite_t *tdev, textw_text_enum_t *penum) { text_list_entry_t *unsorted_entry, *t; +#ifdef TRACE_TXTWRITE + gp_fprintf(tdev->DebugFile, "txt_add_fragment: "); + gp_fwrite(penum->TextBuffer, sizeof(unsigned short), penum->TextBufferIndex, tdev->DebugFile); + gp_fprintf(tdev->DebugFile, "\n"); + { + int i=0; + gp_fprintf(tdev->DebugFile, "widths:"); + for (i=0; i<penum->TextBufferIndex; ++i) { + gp_fprintf(tdev->DebugFile, " %f", penum->Widths[i]); + } + gp_fprintf(tdev->DebugFile, "\n"); + } +#endif + /* Create a duplicate entry for the unsorted list */ unsorted_entry = (text_list_entry_t *)gs_malloc(tdev->memory->stable_memory, 1, sizeof(text_list_entry_t), "txtwrite alloc sorted text state"); @@ -2122,8 +2212,14 @@ txt_add_fragment(gx_device_txtwrite_t *tdev, textw_text_enum_t *penum) penum->TextBufferIndex, sizeof(float), "txtwrite alloc widths array"); if (!penum->text_state->Widths) return gs_note_error(gs_error_VMerror); + penum->text_state->Advs = (float *)gs_malloc(tdev->memory->stable_memory, + penum->TextBufferIndex, sizeof(float), "txtwrite alloc widths array"); + if (!penum->text_state->Advs) + return gs_note_error(gs_error_VMerror); memset(penum->text_state->Widths, 0x00, penum->TextBufferIndex * sizeof(float)); - memcpy(penum->text_state->Widths, penum->Widths, penum->text.size * sizeof(float)); + memcpy(penum->text_state->Widths, penum->Widths, penum->TextBufferIndex * sizeof(float)); + memset(penum->text_state->Advs, 0x00, penum->TextBufferIndex * sizeof(float)); + memcpy(penum->text_state->Advs, penum->Advs, penum->TextBufferIndex * sizeof(float)); unsorted_entry->Unicode_Text = (unsigned short *)gs_malloc(tdev->memory->stable_memory, penum->TextBufferIndex, sizeof(unsigned short), "txtwrite alloc sorted text buffer"); @@ -2135,8 +2231,14 @@ txt_add_fragment(gx_device_txtwrite_t *tdev, textw_text_enum_t *penum) penum->TextBufferIndex, sizeof(float), "txtwrite alloc widths array"); if (!unsorted_entry->Widths) return gs_note_error(gs_error_VMerror); + unsorted_entry->Advs = (float *)gs_malloc(tdev->memory->stable_memory, + penum->TextBufferIndex, sizeof(float), "txtwrite alloc widths array"); + if (!unsorted_entry->Advs) + return gs_note_error(gs_error_VMerror); memset(unsorted_entry->Widths, 0x00, penum->TextBufferIndex * sizeof(float)); - memcpy(unsorted_entry->Widths, penum->Widths, penum->text.size * sizeof(float)); + memcpy(unsorted_entry->Widths, penum->Widths, penum->TextBufferIndex * sizeof(float)); + memset(unsorted_entry->Advs, 0x00, penum->TextBufferIndex * sizeof(float)); + memcpy(unsorted_entry->Advs, penum->Advs, penum->TextBufferIndex * sizeof(float)); unsorted_entry->FontName = (char *)gs_malloc(tdev->memory->stable_memory, (strlen(penum->text_state->FontName) + 1), sizeof(unsigned char), "txtwrite alloc sorted text buffer"); @@ -2175,10 +2277,20 @@ textw_text_process(gs_text_enum_t *pte) gs_font *font = pte->orig_font; gs_font_base *font_base = (gs_font_base *)pte->current_font; int code = 0; + gs_text_enum_t *pte_fallback; if (pte->text.size == 0) return 0; + pte_fallback = penum->pte_fallback; + if (pte_fallback) { + code = gx_default_text_restore_state(pte_fallback); + if (code < 0) + return code; + gs_text_release(pte_fallback, "txtwrite_text_process"); + } + pte_fallback = penum->pte_fallback = NULL; + if (!penum->TextBuffer) { /* We can get up to 4 Unicode points per glyph, and a glyph can be * be represented by as little as one byte. So we make a very large @@ -2192,9 +2304,13 @@ textw_text_process(gs_text_enum_t *pte) if (!penum->TextBuffer) return gs_note_error(gs_error_VMerror); penum->Widths = (float *)gs_malloc(tdev->memory->stable_memory, - pte->text.size, sizeof(float), "txtwrite temporary widths array"); + pte->text.size * 4, sizeof(float), "txtwrite temporary widths array"); if (!penum->Widths) return gs_note_error(gs_error_VMerror); + penum->Advs = (float *)gs_malloc(tdev->memory->stable_memory, + pte->text.size * 4, sizeof(float), "txtwrite temporary advs array"); + if (!penum->Advs) + return gs_note_error(gs_error_VMerror); } { switch (font->FontType) { @@ -2217,6 +2333,8 @@ textw_text_process(gs_text_enum_t *pte) break; } if (code == 0) { + penum->d1_width = 0; + penum->d1_width_set = false; if (font_base->FontBBox.p.x != font_base->FontBBox.q.x || font_base->FontBBox.p.y != font_base->FontBBox.q.y) { gs_point p0, p1, p2, p3; @@ -2239,6 +2357,29 @@ textw_text_process(gs_text_enum_t *pte) return code; code = txt_add_fragment(tdev, penum); + } else { + if (code == gs_error_unregistered) /* Debug purpose only. */ + return code; + if (code == gs_error_VMerror) + return code; + if (code == gs_error_invalidfont) /* Bug 688370. */ + return code; + /* Fall back to the default implementation. */ + code = gx_default_text_begin(pte->dev, pte->pgs, &pte->text, pte->current_font, + pte->path, pte->pdcolor, pte->pcpath, pte->memory, &pte_fallback); + if (code < 0) + return code; + penum->pte_fallback = pte_fallback; + gs_text_enum_copy_dynamic(pte_fallback, pte, false); + + code = gs_text_process(pte_fallback); + if (code != 0) { + penum->returned.current_char = pte_fallback->returned.current_char; + penum->returned.current_glyph = pte_fallback->returned.current_glyph; + return code; + } + gs_text_release(pte_fallback, "txtwrite_text_process"); + penum->pte_fallback = 0; } } return code; @@ -2271,6 +2412,11 @@ textw_text_set_cache(gs_text_enum_t *pte, const double *pw, switch (control) { case TEXT_SET_CHAR_WIDTH: case TEXT_SET_CACHE_DEVICE: + if (penum->pte_fallback != NULL) { + penum->d1_width = *pw; + penum->d1_width_set = true; + return 0; + } return gs_text_set_cache(pte, pw, control); case TEXT_SET_CACHE_DEVICE2: if (penum->cdevproc_callout) { @@ -2355,6 +2501,9 @@ txtwrite_text_begin(gx_device * dev, gs_gstate * pgs, penum->TextBuffer = NULL; penum->TextBufferIndex = 0; penum->Widths = NULL; + penum->pte_fallback = NULL; + penum->d1_width = 0; + penum->d1_width_set = false; /* The enumerator's text_release method frees this memory */ penum->text_state = (text_list_entry_t *)gs_malloc(tdev->memory->stable_memory, 1, sizeof(text_list_entry_t), "txtwrite alloc text state"); diff --git a/devices/vector/gdevxps.c b/devices/vector/gdevxps.c index 5d98c283..8eb26196 100644 --- a/devices/vector/gdevxps.c +++ b/devices/vector/gdevxps.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or @@ -1868,7 +1868,7 @@ xps_begin_image(gx_device *dev, const gs_gstate *pgs, rc_increment(pcs); code = dev_proc(dev, get_profile)(dev, &(dev_profile)); /* Just use the "default" profile for now */ - icc_profile = dev_profile->device_profile[0]; + icc_profile = dev_profile->device_profile[GS_DEFAULT_DEVICE_PROFILE]; force8bit = true; /* Output image is 8 bit regardless of source */ } else { /* An ICC, RGB, CMYK, Gray color space */ diff --git a/devices/vector/opdfread.ps b/devices/vector/opdfread.ps index cff0498e..e0d6f112 100644 --- a/devices/vector/opdfread.ps +++ b/devices/vector/opdfread.ps @@ -1,6 +1,6 @@ %!PS-Adobe-2.0 % -% Copyright (C) 2001-2019 Artifex Software, Inc. +% Copyright (C) 2001-2020 Artifex Software, Inc. % All Rights Reserved. % % This software is provided AS-IS with no warranty, either express or @@ -46,25 +46,44 @@ % ====================== Error handler ======================= % A general error handler prints an error to page. -currentdict /DSC_OPDFREAD known { - % See if our notification from ps2write is present. If it is - % then pick it up. Otherwise define it as false. Used to prevent - % use of setmatrix at start of each page. The DSC-compliant - % output from ps2write wraps pages in a save/restore, so we don't - % need the setmatrix, and it breaks use of psnup with the output. - - currentdict /DSC_OPDFREAD get -}{ - false +% At this point if we have been written by the (e)ps2write device, there will +% be a dictionary on the operand stack which contains some flags controlling the +% later behaviour of this ProcSet. Be aware that this dictionary is present until +% it is processed by the main dictionary handling at line 155 of this file, it is +% important to make sure this dictionary is preserved, and remains top of the stack +% when we reach that point. +% For safety, the code between now and that point which also uses that configuration +% information must check to see that the operand stack has at least one operand and that +% its a dictionary, and must preserve that dictionary if it uses it. + +% Determine whether to create a custom error handler. +% Check to see there's at least one object on the stack, +% and that said object is a dicitonary. If either is not true +% then create a custom error handler. If there is a dictionary, +% assume its the 'global config' dictionary written by ps2write +% (this should always be true!) and look to see if it has a +% EPS2Write key. If it does get it. If EPS2Write is true then +% don't create a custom error handler. If it is false or not present +% then do create a custom error handler. +count 0 ne { + dup type /dicttype eq { + dup /EPS2Write known { + dup /EPS2Write get not + } + { + true + }ifelse + } + { + true + } ifelse +} +{ + true } ifelse 10 dict begin % A dictionary for local binding -% This switch used to control paeg independent values, like -% whether to use InitialMatrix in SetupPageView -% -/DSC_OPDFREAD exch def - /this currentdict def /y 720 def /ebuf 200 string def @@ -79,63 +98,86 @@ currentdict /DSC_OPDFREAD known { //this /y 2 copy get 12 sub put } bind def -errordict /handleerror -{ systemdict begin - $error begin - newerror - { (%%[ Error handled by opdfread.ps : ) print errorname //ebuf cvs print (; OffendingCommand: ) - print /command load //ebuf cvs print ( ]%%) = flush - /newerror false store vmstatus pop pop 0 ne - { grestoreall - } if - errorname (VMerror) ne - { showpage - } if - initgraphics - 0 720 moveto - errorname (VMerror) eq - { //this /ehsave known - { clear //this /ehsave get restore 2 vmreclaim +% We only actually create and push the custom error handler if we are not an EPS. +{ + errordict /handleerror + { systemdict begin + $error begin + newerror + { (%%[ Error handled by opdfread.ps : ) print errorname //ebuf cvs print (; OffendingCommand: ) + print /command load //ebuf cvs print ( ]%%) = flush + /newerror false store vmstatus pop pop 0 ne + { grestoreall } if - vmstatus exch pop exch pop - } - /Courier 12 selectfont - { - (ERROR: ) //prnt exec errorname //prnt exec - (OFFENDING COMMAND: ) //prnt exec - /command load //prnt exec - $error /ostack known { - (%%[STACK:) = - (STACK:) //prnt exec - $error /ostack get aload length { - //newline exec - dup mark eq { - (-mark-) dup = show - } { - dup type /nametype eq { - dup xcheck not { - (/) show - (/) print - } if - } if - dup = //ebuf cvs show - } ifelse - } repeat + errorname (VMerror) ne + { showpage } if - } ifelse - (%%]%) = - //systemdict /showpage get exec - quit - } if - end - end -} bind readonly put + initgraphics + 0 720 moveto + errorname (VMerror) eq + { //this /ehsave known + { clear //this /ehsave get restore 2 vmreclaim + } if + vmstatus exch pop exch pop + } + /Courier 12 selectfont + { + (ERROR: ) //prnt exec errorname //prnt exec + (OFFENDING COMMAND: ) //prnt exec + /command load //prnt exec + $error /ostack known { + (%%[STACK:) = + (STACK:) //prnt exec + $error /ostack get aload length { + //newline exec + dup mark eq { + (-mark-) dup = show + } { + dup type /nametype eq { + dup xcheck not { + (/) show + (/) print + } if + } if + dup = //ebuf cvs show + } ifelse + } repeat + } if + } ifelse + (%%]%) = + //systemdict /showpage get exec + quit + } if + end + end + } bind readonly put +} if end % A dictionary for local binding - 50 dict begin +% Read the definitions of various global parameters from the dictionary +% written at the head of the file by ps2write, and define the parameters +% in this dictionary. Check first to make sure we have a dictionary on the +% stack; if we do, assume its the 'global configuration' dictionary. +count 0 ne { + dup type /dicttype eq { + {def} forall + false + } + { + true + } ifelse +} +{ + true +} ifelse + +{ + ( *** Warning: global definitions dictionary not found, file may be corrupted.\n) print flush +} if + % ===================== Debugging ========================================= /DefaultSwitch % <name> DefaultSwitch - @@ -4176,7 +4218,10 @@ currentdict end readonly def } bind def /ShowText % <string> ShowText - -{ //GraphicState /TextRenderingMode get 0 eq { +{ + //GraphicState /TextRenderingMode get dup 0 eq + exch 3 eq not currentfont /FontType get 3 eq and or + { //GraphicState /WordSpacing get 0 32 //GraphicState /CharacterSpacing get 0 @@ -4236,13 +4281,28 @@ currentdict end readonly def } bind def /ShowTextBeg % - ShowTextBeg - -{ //GraphicState /TextRenderingMode get 0 ne { - currentpoint newpath moveto - } if +{ + //GraphicState /TextRenderingMode get dup 0 ne + { + 3 ne + currentfont /FontType get 3 eq not and { + currentpoint newpath moveto + } if + } + { + pop + } ifelse } bind def /ShowTextEnd % - ShowTextEnd - -{ //GraphicState /TextRenderingMode get +{ + //GraphicState /TextRenderingMode get + currentfont /FontType get 3 eq { + dup 3 ne { + pop 0 + } if + }if + { dup 1 eq { stroke exit } if diff --git a/devices/vector/whitelst.c b/devices/vector/whitelst.c index 652926f4..af4c14fc 100644 --- a/devices/vector/whitelst.c +++ b/devices/vector/whitelst.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or diff --git a/devices/vector/whitelst.h b/devices/vector/whitelst.h index 2e562fd8..a566da54 100644 --- a/devices/vector/whitelst.h +++ b/devices/vector/whitelst.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Artifex Software, Inc. +/* Copyright (C) 2001-2020 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or |