Copyright (C) 1997, 1998 Aladdin Enterprises. All rights reserved. Unauthorized use, copying, and/or distribution prohibited. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - This file, NEWS-PCL, describes the changes in the most recent releases of PCL5e/c, entries are made in reverse chronological order. This news file differs from other Aladdin news files it is automatically generated from the revision control logs. The dates provided for each entry are the dates the sources were committed to the source code repository. Version 1.07 (03/04/99) ======================= Thu Mar 4 20:00:00 1999 Henry Stiles henrys@artifex.com * pcl_top.mak [1.14]: version number updated. Thu Mar 4 08:00:00 1999 Henry Stiles henrys@artifex.com * Anomalies.txt [1.14]: adds 2 new ats anomalies. Thu Mar 4 03:00:00 1999 Jan Stoeckenius,,,, jan@artifex.com * rtraster.c [1.14], Anomalies.txt [1.13]: Adds fts 765 and reverts adaptive compression fix. Wed Mar 3 08:00:00 1999 Henry Stiles henrys@artifex.com * rtmisc.c [1.6]: hpgl/2 does not free the polygon buffer when entering pcl. * pclfont.c [1.5]: Albertus Medium was incorrectly identified with weight 0 instead of 1. Tue Mar 2 07:00:00 1999 Henry Stiles henrys@artifex.com * pgdraw.c [1.31]: new evidence from the ats test indicates the IW soft clip command defines a half-closed clip box and the hpgl/2 picture frame defines an closed clip box. Also add more path and clip path debugging information for hpgl/2. Mon Mar 1 08:00:00 1999 Henry Stiles henrys@artifex.com * pgconfig.c [1.11]: IW was not stroking the current path unless parameters were given. Mon Mar 1 05:00:00 1999 Henry Stiles henrys@artifex.com * pgconfig.c [1.10]: 2 current ctm fixes: SC does not reset the ctm before deriving the current user position in device space, and the routine to get the default picture frame did not properly restore the ctm. Sun Feb 28 07:00:00 1999 Henry Stiles henrys@artifex.com * pglabel.c [1.15], pgdraw.c [1.30]: corrects label offset calculation when SI and SR are enabled. Fri Feb 26 05:00:00 1999 Jan Stoeckenius,,,, jan@artifex.com * pccid.c [1.7]: HP ignores the bits-per-primary setting for device-independent color spaces, and always uses [255, 0] as white and black reference points for these spaces. We have modified the routine check_cid_hdr in pccid.c to set bits-per-primary to 8 for all device-independent color spaces. The modified file is attached. Thu Feb 25 09:00:00 1999 Henry Stiles henrys@artifex.com * pgvector.c [1.8]: It is not necessary to return to the starting point of a circle when drawing in polygon mode. Thu Feb 25 08:00:00 1999 Henry Stiles henrys@artifex.com * rtgmode.c [1.7]: rtgmode.c was truncated at the last checkin (not analyzed). Thu Feb 25 04:00:00 1999 Jan Stoeckenius,,,, jan@artifex.com * rtgmode.c [1.6]: Fixes ats file floating poing rounding and truncating error. For the particular transformation in effect, the initial horizontal position of 7008 centi-points would come back as 7007.9994... centi-points, which was converted to 7007 centipoints, which would come back as 7006.9994... centi-points, and so on. The process finally stopped at about 6600 centi-points, due to a change in the least significant bit of the tx field of transformation matrix. Now we round the calculated centipoint position before converting to an integer. Version 1.06 (02/24/99) ====================== Wed Feb 24 11:00:00 1999 Henry Stiles henrys@artifex.com * pcstate.h [1.11], pcsfont.c [1.10], pcpage.c [1.20], pcmain.c [1.23], pclfont.c [1.4], pcl.mak [1.23], pcfont.c [1.10]: Modifications to support PJL fontsource and fontnumber environment variables. Fri Feb 19 00:00:00 1999 ray@artifex.com * pcl_watc.mak [1.6]: Fix problems that kept this from working. Change to make 32-bit tools and target the default. Update it to work with the new directory structure. This is probably the first workable version for Watcom. * pcindxed.h [1.3], pcindxed.c [1.3]: Change cs_indexed_..._ptrs to pcl_cs_indexed_..._ptrs to prevent conflict with gscolor2.c when building NOPRIVATE=1. Thu Feb 18 23:00:00 1999 ray@artifex.com * pcl_top.mak [1.13]: Fix building of pclver.h to use '-x 23' instead of '#' which breaks under Watcom/Dos. * pcl.mak [1.22]: Fix PCLCCC to use $(I_) macro instead of hard coded -I which doesn't work on Watcom, VMS, etc. Thu Feb 18 06:00:00 1999 Henry Stiles henrys@artifex.com * Anomalies.txt [1.12]: removes pcl clipping region bug - not actually a bug but a problem with the device driver. * Anomalies.txt [1.11]: removes clipping anomaly. * pgdraw.c [1.29], pcpage.c [1.19]: Rounding of device clip boxes and ctm translation components. Also, modifies GL/2 to use a closed clipping region instead of the default half-open region. Wed Feb 17 08:00:00 1999 Henry Stiles henrys@artifex.com * pgchar.c [1.8], pcursor.c [1.8], pcl.mak [1.21], pcjob.c [1.9], pcfont.c [1.9]: modifications to support PCLXL processing of PJL. Tue Feb 16 00:00:00 1999 Henry Stiles henrys@artifex.com * pglabel.c [1.14]: moves SR, SI line spacing hack to cursor positioning routine. Sun Feb 14 08:00:00 1999 marcos@artifex.com * rtraster.c [1.13]: Added check for adaptive compression mode in transfer_raster_row() to avoid duplicating last line of raster data (fixes fts.0717). Sun Feb 14 06:00:00 1999 marcos@artifex.com * rtraster.c [1.12]: Fixed problem with adaptive compression (if the last command was repeat previous row it was ignored, showed up in adaptivecompression.pcl). Sat Feb 13 20:00:00 1999 Henry Stiles henrys@artifex.com * pgdraw.c [1.28]: hpgl/2 vector fills now support assymetric scaling properly. * pgconfig.c [1.9]: draws the current path when IP is issued. * pglabel.c [1.13]: corrects multiplier for cell height. Sat Feb 13 06:00:00 1999 Henry Stiles henrys@artifex.com * pglabel.c [1.12]: modified to properly handle label placement with SI, SR. Sat Feb 13 05:00:00 1999 Henry Stiles henrys@artifex.com * pglfill.c [1.10]: removes obsolete comment. Sat Feb 13 00:00:00 1999 Henry Stiles henrys@artifex.com * pgfont.c [1.3], pgdraw.c [1.27]: all labels use round caps and round joins. Fri Feb 12 05:00:00 1999 Henry Stiles henrys@artifex.com * rtraster.c [1.11]: removes optimization that prints raster as rectangle. The code only worked properly with short edge feed devices. We might reimplement this in the future if this part of the code is indeed a performance bottleneck. Fri Feb 12 03:00:00 1999 Henry Stiles henrys@artifex.com * pgvector.c [1.7], pgstate.h [1.6], pglfill.c [1.9], pglabel.c [1.11], pginit.c [1.10], pgdraw.c [1.26], Anomalies.txt [1.10]: Improvement of fill line anchoring in gl/2. Now use gl/2's position in user space instead of tracking device space position, which resulted in rounding errors when tranforming and doing comparisons. Label code updated to use gl/2 line drawing instead of using gs functions directly. Also we now draw the current path when the for relative/absolution mode changes in the pen. Updates Anomalies.txt to reflect changes. Thu Feb 11 18:00:00 1999 ray@artifex.com * pcl.mak [1.20]: Remove the extra space after $(O_). This messes up platforms which cannot have a space. Correct fix is to define O_ correctly for platforms that require a space. See common/unixdefs.mak where O_=-o $(NULL). Mon Feb 8 09:00:00 1999 Henry Stiles henrys@artifex.com * pcsfont.c [1.9], pcparse.c [1.4]: Quiets pcl in DEBUG mode. Sun Feb 7 09:00:00 1999 Henry Stiles henrys@artifex.com * pglfill.c [1.8], pglabel.c [1.10], pgdraw.h [1.7], pgdraw.c [1.25], pgchar.c [1.7]: Addition to properly select and wrap the current pen. Adds an accessor function for getting the currently selected pen. * pcpatrn.c [1.15]: Sample implementation of driver configuration. * Anomalies.txt [1.9]: removes bezier problem. Sun Feb 7 08:00:00 1999 Henry Stiles henrys@artifex.com * pgdraw.c [1.24]: fixes a stupid typo that was messing up the clipping region in gl/2. Fri Feb 5 18:00:00 1999 marcos@artifex.com * pcl.mak [1.19]: Added space for solaris gcc: $(O_) $(PCLOBJ). Fri Feb 5 06:00:00 1999 Henry Stiles henrys@artifex.com * pgdraw.c [1.23]: set dot orientation immediately after setting the ctm. * pgvector.c [1.6]: a hack to clear the current path before printing bezier curves. The drawing machinery is not set up to apply line joins between lines and curves. Lines of zero length are frequently used to set up for drawing a bezier. We clear these points so they will not print as "orthogonal dots". Thu Feb 4 00:00:00 1999 Henry Stiles henrys@artifex.com * pgdraw.c [1.22], pcpage.c [1.18]: intersect pcl's clipping region with the hardware margins. Mon Feb 1 19:00:00 1999 marcos@artifex.com * pcl_ugcc.mak [1.19]: Added bmpa32b.dev device. Mon Feb 1 19:00:00 1999 Henry Stiles henrys@artifex.com * Anomalies.txt [1.8]: updates for recent fixes. Mon Feb 1 02:00:00 1999 Henry Stiles henrys@artifex.com * pgdraw.c [1.21]: modifications to support dot orientation. HPGL/2 dots (zero length lines) are always drawn parallel to the HPGL/2 X-axis. Also, makes dot orientation independent of device space. Sun Jan 31 06:00:00 1999 Henry Stiles henrys@artifex.com * rtmisc.c [1.5], pgvector.c [1.5], pglabel.c [1.9], pgdraw.h [1.6], pgdraw.c [1.20], pgconfig.c [1.8], pgchar.c [1.6]: Properly update carriage return position when entering HPGL/2 with the the current pcl cap. Provides a function for updating a carriage return position to the current position. Sat Jan 30 22:00:00 1999 Henry Stiles henrys@artifex.com * pccrd.c [1.8]: removes redundant call to initialize the crd. Fri Jan 29 22:00:00 1999 Henry Stiles henrys@artifex.com * pccrd.c [1.7]: use the new interface to initialize a new crd derived from an old one. Wed Jan 27 07:00:00 1999 Henry Stiles henrys@artifex.com * pcpage.c [1.17]: added warning message if the bbox is not installed properly. Mon Jan 18 07:00:00 1999 Henry Stiles henrys@artifex.com * rtraster.c [1.10], pgdraw.c [1.19], pctext.c [1.14], pcstate.h [1.10], pcrect.c [1.7], pcpage.c [1.16], pcmain.c [1.22], pcht.c [1.11]: Properly installs the bbox device and removes the "dubious" dirty page optimization that avoided using the bbox device to check if a page was dirty. Mon Jan 18 05:00:00 1999 Henry Stiles henrys@artifex.com * pcdraw.c [1.9]: fixes comment. Sat Jan 16 07:00:00 1999 Henry Stiles henrys@artifex.com * pcl_top.mak [1.12]: updates version number. Thu Jan 14 08:00:00 1999 Henry Stiles henrys@artifex.com * NEWS-PCL [1.13]: chinook check-in. Version 1.05 (01/14/99) ====================== Mon Jan 11 16:00:00 1999 Henry Stiles henrys@artifex.com * pgdraw.c [1.18], pcpatrn.c [1.14], pcdraw.c [1.8]: pattern_set_pen() modified to correctly install CIE color spaces for pcl raster, as suggested by jan. * pccid.c [1.6]: normalizing min and max ranges is only necessary for the RGB colorimetric color space. Mon Jan 11 15:00:00 1999 Henry Stiles henrys@artifex.com * pglfill.c [1.7]: line pattern was not specified correctly. Mon Jan 9 07:00:00 1999 Henry Stiles henrys@artifex.com * pcmain.c [1.21]: Explicitly closes pcl's target device, forwarding devices like the color mapper do not close the target device automatically. Mon Jan 6 22:00:00 1999 Marcos H. Woehrmann marcos@artifex.com * pcmain.c [1.20], pcl_top.mak [1.11]: Fixed problem with version number under msvc (and watcom). Mon Jan 5 23:00:00 1999 Henry Stiles henrys@artifex.com * pglfill.c [1.6]: hpgl_RF() was not properly saving and restoring the index when the parser ran out of data and reinvokes hpgl_RF(). Mon Jan 4 14:00:00 1999 Henry Stiles henrys@artifex.com * pcmain.c [1.19], pcl_top.mak [1.10]: Version number and build date for PCL. Mon Jan 4 05:00:00 1999 Henry Stiles henrys@artifex.com * pgdraw.c [1.17]: pixel placement was being applied in gl/2 to graphical objects other than polygons. * Anomalies.txt [1.7]: updates anomalies. * pgconfig.c [1.7]: PP is not reset by IN on the color laserjet but is on the 6MP. * pcpatrn.c [1.13], pccsbase.c [1.8], pccid.c [1.5]: normalizes min max range value when they are parsed from the long form of the cid command. Previously the decode procedures accounted for the normalization. Also a hack in pcpatrn.c to force install of cie even if the current pen is white. The last change is incorrect and will take a different form in the next release. Mon Dec 29 02:00:00 1998 Henry Stiles henrys@artifex.com * pglabel.c [1.8]: ES (extra space) is independent of the current text direction. Mon Dec 23 08:00:00 1998 Henry Stiles henrys@artifex.com * pcmain.c [1.18]: changes to use gs standard i/o - gs_stderr, gs_stdout, and gs_stderr. Mon Dec 23 00:00:00 1998 Henry Stiles henrys@artifex.com * pgdraw.c [1.16]: removes unwanted debugging print statements mistakenly added to the last revision. Mon Dec 22 20:00:00 1998 Henry Stiles henrys@artifex.com * pcl_watc.mak [1.5], pcl_ugcc.mak [1.18], pcl_top.mak [1.9], pcl_sgi.mak [1.7], pcl_msvc.mak [1.4]: Prefixes devices with $(DD) and moves zlib configuration variable initialization to the to the top level unix makefiles. Someone else will need to check the other makefile systems. This change requires that we set ZLIB variable in # PLATFORMS SUPPORTED * 2 (pcl and XL) places instead of one, but will allow the code to be compiled with gs5.66. * pginit.c [1.9]: adds warning message for resetting the picture frame. This is handled directly by the picture frame and plot size commands. Mon Dec 22 19:00:00 1998 Henry Stiles henrys@artifex.com * pgvector.c [1.4]: replaces explicit setting of the ctm with clearing the current path which has the same result for the ctm but also updates gl/2's current path to the correct state. Specifically, CI adds a point to the path for positioning after drawing to set the current position to the center of the circle. It is not necessary to leave this moveto in the path, adding the point has already updated the current position. * pgdraw.c [1.15]: (1) comments to indicate setting of the current line width is wrong, (2) Saves and restores the CTM "around" setting plu ctm and stroking gl line fills, and (3) adds warning message for bogus picture frame. * Anomalies.txt [1.6]: identifies fts 2080 anomaly. * pgframe.c [1.5]: Reorganizes picture frame and plot size logic. Mon Dec 18 17:00:00 1998 Henry Stiles henrys@artifex.com * pcl_ugcc.mak [1.17]: adds full color bmp asyncronous device. * pcstate.h [1.9], pcommand.c [1.9], pcmain.c [1.17], pcl.mak [1.18], pcht.c [1.10], pccrd.c [1.6]: Change to set the target device in pcl's state. Adds accessor functions to set and get the target device. Modifies all put param like functions in pcl to use the real device. Mon Dec 16 08:00:00 1998 Henry Stiles henrys@artifex.com * pcl_ugcc.mak [1.16]: add cljet5 device. Mon Dec 2 21:00:00 1998 Henry Stiles henrys@artifex.com * NEWS-PCL [1.12]: news file update. Version 1.04 (12/01/98) ====================== Mon Nov 30 23:23:29 1998 Henry Stiles * pcl_msvc.mak: adds new drivers for MSVC builds. * pcpage.c: removed unused variable. * pgchar.c, pgdraw.c, pgmisc.h: adds accessor function to get the current pen for character fill edge mode. * pcursor.c, pcjob.c: adds stdlib and documents its use for atoi(). * Anomalies.txt: updates for fixed bugs and a spell check. * pcl_ugcc.mak: changes order of devices. Thu Nov 26 19:54:46 1998 Henry Stiles * pcfont.c, pcjob.c, pcpage.c: changed to use pjl_compare() instead of strcmp(). * pcl_ugcc.mak: asynchronous drivers are now included by default on unix platforms. * Anomalies.txt: updated for recent bug fixes. Tue Nov 24 23:24:22 1998 Henry Stiles * rtraster.c, rtgmode.c, pcwhtidx.c, pcwhtidx.h, pcuptrn.c, pcpatrn.c, pcpatrn.h, pcindxed.h, pcpalet.h, pcindxed.c: changes #inlclude to 8.3 * Attic/pcwhtindx.h, Attic/pcindexed.c, Attic/pcindexed.h, Attic/pcwhtindx.c: removes >8.3 file names. * pgdraw.c: hpgl_rm_vector_fill was not handled properly. * pgframe.c: factors out common code for side effect of changing the picture frame. And fixes a fixes bug where we were not setting the default plot size correctly. * pginit.c: provides initialization for the plot size being set. * pcindxed.h, pcwhtidx.c, pcwhtidx.h, pcindxed.c, pcl.mak: canonicalizes filenames to 8.3 and fixes clean makes for msvc. Thu Nov 19 06:16:42 1998 Henry Stiles * pgdraw.c: We now correctly implement the background of hpgl/2 vector fills. Strangely HP draws the backgrounds with an opaque or transparent white depending on the current transparency mode. * pcursor.c: pcl support for pjl formlines. * pgconfig.c, pggeom.h: hpgl_PS command #ifdef in for the sole purpose of being able to print large plot sizes for RTL customers. * pcpage.c, pcstate.h: First cut at wide a4 implementation. Sun Nov 8 09:00:53 1998 Henry Stiles * NEWS-PCL: *** empty log message *** Thu Nov 5 21:50:43 1998 Henry Stiles * pgvector.c: bezier curves appear to be hardwired to no joins - they do not use the current LA setting for join type * pgdraw.c, pgchar.c: fixes for character edging the pen was not being defaulted correctly in CF and the hpgl/2 drawing machinery was filling the character in addition to stroking hpgl/2 vector fills Thu Nov 5 06:57:31 1998 Marcos H. Woehrmann * pcfont.c: Added /winnt/fonts/ to tt font search path. Version 1.03 (11/06/98) ===================== Thu Nov 5 21:50:43 1998 Red Hat Linux User * pgvector.c: bezier curves appear to be hardwired to no joins - they do not use the current LA setting for join type * pgdraw.c, pgchar.c: fixes for character edging the pen was not being defaulted correctly in CF and the hpgl/2 drawing machinery was filling the character in addition to stroking hpgl/2 vector fills Thu Nov 5 06:57:31 1998 marcos * pcfont.c: Added /winnt/fonts/ to tt font search path. Thu Nov 5 05:48:16 1998 Red Hat Linux User * pcpage.c: adds a call to erase page after new paper size is called. Tue Nov 3 08:01:38 1998 Red Hat Linux User * pctext.c, pcfsel.c: returns in error instead of noting an error if symbol mapping fails * pcmain.c: forgetting to close the device at the end of processing Fri Oct 30 22:49:06 1998 Red Hat Linux User * pccsbase.c: normalizes ranges to (0,1) for independent color spaces Sun Oct 25 08:05:36 1998 Red Hat Linux User * pcmain.c: proper usage of debugging memory switches * rtraster.c: better bit twiddling for performance Fri Oct 16 15:41:39 1998 Red Hat Linux User * pcmain.c: "canocalizes" args to **args. * pgdraw.h: adds prototype for exported function hpgl_close_path(). * pglabel.c: corrects a parameter mismatch with fetching the next character. This code was not updated when the gs text interface changed in 550. * pcpage.c, pcsfont.c: removes an incorrect const qualifier. * pccsbase.c, pcindexed.c: corrects improper aggregate initialization. * pcl.mak: reviewed and added new include file dependencies. * pgstate.h: removes obsolete boolean which detected a path * pcjob.c, pcmtx3.c, pcommand.c, pgdraw.c, pcbiptrn.c, pccrd.c, pcfont.c, pctext.c, pcuptrn.c, rtraster.c, rtrstcmp.c: adds include files for correct prototypes we also corrected a problem in correctly detecting if a path was actually being rendered Wed Oct 14 20:50:48 1998 Red Hat Linux User * pcpatrn.c: fixes benevolant type mismatch Tue Oct 6 17:49:00 1998 Red Hat Linux User * pcmtx3.h: changes math.h to math_h. Version 1.02 (10/05/98) ===================== Mon Oct 5 02:12:39 1998 Red Hat Linux User * pcstate.h, pcsymbol.h, pcmain.c, pcommand.c, pcpage.c, pcfsel.c, pcjob.c, pclfont.c, pcfont.c: Updates for getting intitial state from the pjl environment. * pcl_ugcc.mak: adds contone color laserjet device for testing purposes Sun Oct 4 06:50:52 1998 Red Hat Linux User * pgpoly.c, pgdraw.c, pctext.c: a more conservative approach to page ejecting. The have_page boolean was being updated to true unnecessarily * pcfsel.c: Did not score symbol set correctly during font selection. Version 1.01 (9/26/98) ===================== Sat Sep 26 18:50:50 1998 Red Hat Linux User * Attic/pcl_conf.mak, pcl.mak, pcl_msvc.mak, pcl_top.mak, pcl_watc.mak: changes to support msvc builds Version 1.00 (9/18/98) ======================= Fri Sep 18 06:22:58 1998 Henry Stiles * All files * Removes ghostscript license and replaces it with the shorter Aladdin license notice. * pcindexed.h, rtgmode.c, pcfrgrnd.c, pcindexed.c: Changes a variable name from fixed to pfixed to avoid a spurious warning from the Solaris C compiler. * pcl.mak: corrected typos in dependency lists and removes ghostscript copyright notice. Tue Sep 15 07:04:00 1998 Henry Stiles * pcl_ugcc.mak: adds tiff devices to the makefile. * Anomalies.txt: A new file that describes known anomalies. Mon Sep 14 05:28:27 1998 Henry Stiles * pcpatrn.c: sets pen to 1 if the pen number equals the number of entries in the palette. Sun Sep 13 05:51:08 1998 Henry Stiles * rtraster.c, rtrstcmp.c, pgdraw.c, pcpatxfm.c, pcrect.c, pctext.c, pcwhtindx.c, pgcolor.c, pgconfig.c, pcl.mak, pcl_ugcc.mak, pcmain.c, pcmtx3.c, pcpalet.c, pcpatrn.c, pcht.c, pcindexed.c, pccid.c, pccprint.c, pccsbase.c: adds color laserjet driver, fixes makefile header file dependency typos and, removes unused variables. Sat Sep 12 08:09:46 1998 Henry Stiles * pcpage.c: modification so that pcl can request page sizes. * pcparam.h: modifications so pcl can request page sizes. Fri Sep 11 03:42:59 1998 Henry Stiles * pcpage.c, pcparam.h: reverts page device media changes to support cljet5. Thu Sep 10 17:07:39 1998 Henry Stiles * pcl_msvc.mak: adds broken msvc files for shipment to johnd's. * pcpatrn.c: removes SGI NFS null from the end of a file. * pcl_ugcc.mak: removes cljet driver temporarily. Tue Sep 8 07:35:55 1998 Red Hat Linux User * pcl.mak: adds .h file dependencies. * pcl_top.mak: changes to not compile main with debug. * pcsymbol.c: We were allocating extra for the symbol set codes but they are actually allocated through the structure allocation since the symbol code array is defined statically. * pctext.c: Modified the handling of the right text margin. It turns out that the case of no-line-wrap must be handle differently that the case in which line wrapping is enabled. * pcpatrn.c: Fixed typo in pattern_set_shade_gl: a solid pattern should be used for an unrecognized intensity if the intensity is > 0, not <= 0. This gave rise to an anomally on panel 1815 of the PCL 5c FTS. * pcpalet.c: Modified invocations of pcl_crd_build_default_crd to pass a pcl_state_t pointer rather than a memory structure pointer; see pccrd.h above. * pcmain.c: Modified code to not always define DEBUG. * pcindexed.c: Modified the code to handle the situation in which the black and white reference points for a component are the same. This is tested in the PCL 5c FTS. * pcht.h, pcht.c: Changed from a single color mapping device to multiple color mapping devices, one for each mapping type. This is needed because the rendering method used by the foreground may be different from that used by the palette (which, in turn, is used by a raster), so it is necessary to have two different color mapping device present at the same time. Added support for table-dither (mask, non-monotonic) halftones to be used with the (not fixed) built-in rendering methods. Added code to allow device-specific halftones and re-mapping arrays encoded as gs_param dictionaries to be read from the device on start-up. Added support for table dither halftones. Also provided a structure descriptor for pcl_ht_builtin_dither_t structures, as these may now need to be allocated when read from a device. * pccrd.c, pccrd.h: Added facility to read a device-specific CRD encoded as a gs_param dictionary. Changed the operand to pcl_crd_build_default_crd from a memory pointer to a pcl_state_t pointer. This is necessary to allow the default dictionary to be read from a device. Mon Sep 7 02:02:19 1998 Henry Stiles * pcsfont.c: bad revision. Sun Sep 6 19:50:14 1998 Henry Stiles * pcsymbol.c: fixes memory allocation problem introduced because a new field was added to the symbol set data structure. Sat Sep 5 05:55:09 1998 Henry Stiles * pcpage.c, pcparam.h, pcommand.c, pcl_sgi.mak, pcl_ugcc.mak: modifications to support paper size specification from pcl. Fri Sep 4 02:47:44 1998 Red Hat Linux User * pcl.mak: add new header file dependencies. Fri Sep 4 02:45:08 1998 Henry Stiles * pcl.mak: update documentation. Fri Sep 4 02:39:01 1998 Red Hat Linux User * pcl_top.mak: adds decmap device. * pcsymbol.c: Modified pcsymbol_do_reset to support overlay macros. * pcbiptrn.c, pcbiptrn.h: Modified the shade pattern for the 11% - 20% case; this had been entered incorrectly previously. Added the "un-solid" pattern. This is a masked patter that has no foreground pixels. It is used with GL/2, as a solid white foreground is transparent in GL/2 (if GL's "source transparency" is set), but opaque in PCL. Added prototype for the pcl_pattern_get_unsolid_pattern. * pccprint.c: Modified the code for the pixel placement operator for the new manner in which pixel placement information is kept in the PCL state. Modified the pccprint_do_reset routine to support overlay macros. * pcdraw.c: Added code to handle GL/2's source transparency separately from PCL's pattern transparency. The two parameters have the same effect (all GL/2 objects are masks, and hence do not support notion of "source" transparency similar to PCL's), but must be maintained independently in the PCL-GL/2 state. Turned off fill-adjust for all PCL objects. This used to (incorrectly) implement pixel placement, which is now implemented directly for rectangles (the only object affected by pixel placement for most printers (the CLJ 5/5M allows pixel placement to also affect scalable characters)). * pcht.c: Modified to support color-mapping as part of a rendering method, and to support monochrome mode. As part of this change, the never-used device field of the rend_info_t structure is replaced with a color mapping parameter, which is used with a color-mapping forwarding device that is always present. To support monochrome mode, the nature of the remapping array has been change somewhat, and the render_method field of the pcl_ht_t structure modified to be the mapped rather than raw rendering method. Fields for print mode (monochrome or color) and raw rendering method have been added to the PCL state. * pcht.h: Added prototype for the new procedure pcl_ht_set_print_mode, which can be used to set monochrome or colored print mode. Changed the render_method field/operand to be unsigned. * pcindexed.h, pcindexed.c: Generalixed the pcl_cs_indexed_0_is_{black | white} routines to check for the blackness or whiteness of any entry. The routines are now know as pcl_cs_indexed_is_{black | white}. Replaced prototypes for pcl_cs_indexed_0_is_{black | white} with those for pcl_cs_indexed_is_{black | white}. Defined macros to correspond to the former prototypes, for backwards compatibility. * pcfont.c, pcmacros.c, pcjob.c: Modified pcmacros_do_reset to support overlay macros. * pcmain.c: Added a pair of calls to gs_reclaim prior to running the first job. This is very important; until gs_reclaim is called for the first time, freed string objects are not recovered. Hence, the memory they use is lost. Added some debugging code to assist with memory leak detection. * pcmisc.c: Modified pcmisc_do_reset to support overlay marcos. * pcommand.c: Modifed pcl_init_state for the deletion of the grid_adjust field and the addition of the addition of the monochrome_mode and render_mode fields in the graphic state. * pcpage.c: Modified print quality command ( * o # Q) to home the cursor. Modified pcpage_do_reset to support overlay macros. * pcpalet.c: Added command for setting monochrome/normal print mode. Modified pcl_palette_set_render_method to reflect the addition of the render_mode field in the PCL state. Modified palette_do_reset to support overlay macros. * pcpalet.h: Changed render_method operand to be unsigned. * pcpatrn.c: Modified pattern_set_gl_RF to account for the fact that patterns defined with the RF command may be either masked or colored patterns, and in the former case are fully transparent if GL/2's source transparency is set and the current pen is white. Also modified this routine to use the current pen if the pattern does not exist, even if the applicable SV or FT command specified using pen 1 (this requires a hack regarding the interpretation of the current pen operand when it is negative). Modified several other pattern_set_*_gl routines for mask patterns (shades, cross-hatch, user-defined) to make these fully transparent if the current pen is white. Also modified pattern_do_reset to support overlay macros. * pcrect.c: Moved implementation of pixel placement for PCL objects to this module (rectangles are the only PCL object affected by pixel placement in this and most other PCL interpreters, including most but not all HP implementations. Modified pcrect_do_reset to support overlay macros. * pcsfont.c: Modified pcsfont_do_reset to support overlay macros. * pcstate.h: Added pcl_pattern_transparent field, so that PCL's pattern transparency setting and GL/2's source transparency setting may be separately maintained. Added the render_mode and monochrome_mode fields, to support the monochrome/normal print mode selection command. Replaced the grid_adjust field with the pp_mode field. * pcstatus.c: Modified pcsymbol_do_reset to support overlay macros. * pctext.c: Removed no longer needed invocation of gs_setfilladjust (for PCL, fill adjust is now always set to 0). Modified pctext_do_reset to support overlay macros. * pcuptrn.c: Modified pcl_pattern_RF to handle both colored and uncolored patterns created via the RF command. * pcursor.c: Modified pcursor_do_reset to support overlay macros. * pgconfig.c: Split the hpgl_DF command into two sections, one of which is accessible separately to support the reset required for overlay macros. * pgdraw.c: Modified the handling of patterns generated with the RF command to allow both colored and uncolored variations. Modified the manner in which the current pen is specified for uncolored patterns generated via the RF command. If pen 1 is desired, the opposite of the current pen is specified, to allow for the possibility that the pattern may not exist. Changed the handling of fill adjust to reflect the replacement of the grid_adjust state parameter with pp_mode (note that the actual implementation of pixel placement for GL objects is still broken). * pginit.c: Added support for overlay macros. * pglfill.c: Modified hpgl_FT to read and use the second optional parameter for mode 11 patterns (this is contrary to the documentation, but consistent with the SV command and has been empirically verified on two HP PCL implementations). Modified hpgl_RF to allow for both colored and uncolored patterns. * pgmand.h: Added prototype for the new procedure hpgl_reset_overlay. This is used to reset the GL/2 state prior to the execution of an overlay macro. * pgstate.h: 1. Replaced the su_ union with the sp_ structure, and made the latter part of the fp_ structure consistent with the sp_ structure. Though not documented as such, for fills other than line fills the FT and SV commands are symmetric. 2. Added the is_mask field to the rf_ structure. This is used to support uncolored patterns created via the RF command. * rtgmode.c: Modified gmode_do_reset to support overlay macros. Tue Aug 25 19:18:59 1998 Henry Stiles * pcl.mak: adds code to clean up gs generated files. Mon Aug 24 08:03:18 1998 Henry Stiles * pcl.mak: removed device files from current working source directory that should not exist there in the first place... Mon Aug 24 07:36:32 1998 Red Hat Linux User * pglabel.c: whitespace difference. * pcwhtindx.c: Fixed a bug/memory leak in pcl_cmap_map_raster. If a new raster array was allocated to hold the re-mapped pattern data, its pointer was never being placed in *pout_pixinfo. * pcuptrn.c: 1. Modified code to support (up to) two rendered instances per pattern: one mask and one colored. 2. Modified the reset code to clear the pattern cache. This is an attempt to limit memory fragmenation. * pcpatrn.h: Modified the pattern structure to be able to hold two rendered instances: one colored and one uncolored. This is an attempt to reduce memory thrashing due to the frequent and unnecessary re-allocation of mask patterns. * pcpatrn.c: Modified to the pattern handling code to allow for two rendered instances per pattern: one mask and one colored. This is an attempt to reduce memory thrashing due to the frequent and unnecessary re-allocation of mask patterns. * pcpalet.c: 1. Fixed a pair of memory-related problems in the push/pop palette code: pop palettes were erroneously getting an extra reference, and the palette stack global was not being set to NULL after the palette had been cleared. 2. Removed code in build_default_palette that undefined the current palette before redefining it. This avoids a release/allocate operation for a dictionary entry that otherwise would confuse the memory leak detection tool. 3. Fixed a bug in a never-used case in pcl_palette_PW. If the palette does not exist when this routine is called, it is created, but in the earlier code the ppalet pointer was not being updated after the creation. 4. Modified clear_palette_store to leave the current palette alone if it already is the default palette. This simplifies work with the memory leak detector. This change also moves the invocation of the build_default_palette routine to this procedure from its various callers. * pcmain.c: Moved the reporting points for the memory leak detection code to more convenient locations. * pcht.c: Fixed a memory leak in set_threshold_ht. A fourth threshold string was being generated to handle the case of a 4-color output device, but this was overwritting the red-component threshold array allocated previously. Not output error occurred because the two arrays were meant to be the same, but the previously allocated array could no longer be freed. * pcfsel.c: *** empty log message *** * pccolor.c: Modified the set color component and assign color index commands to be permitted but ignored in raster graphics mode (i.e.: they do not end raster graphics mode). This is contrary to the documentation but matches the behavior of the CLJ 5/5M and DJ 1600C/CM. The effect is visible in PCL 5c FTS panel 845. * pcindexed.c: Fixed bug in pcl_cs_indexed_update_lookup_tbl. A new indexed color space may have been created via the "unshare" operation, but the color space pointer was never being updated. Hence, the lookup table was being modified in the old color space. This bug is visible on PCL 5c FTS panels 2410 and 2411. * pcmain.c, pcindexed.c, pcl.mak, pcht.c, pcfsel.c, pccolor.c: *** empty log message *** Sun Aug 23 05:30:05 1998 Henry Stiles * pgdraw.c: Work around to stroke lines gl/2 style fills individually instead of accumulating the entire fill in one path. This guarantees that a fixed amount of memory will be used for fills. It was changed to fix fts 1462 which creates a path that is much to large, not due to the size of the graphical object being filled but the algorithm fills from GL/2's anchor corner and clips the resulting fill to the graphical object. We should find the equivalent maximum value for the anchor corner such that the coordinates are less than the X and Y origin coordinates of the bounding box of the object being filled. Sun Aug 23 05:10:18 1998 Red Hat Linux User * rtraster.c: Modified to properly (if quite slowly) handle the case of a raster with source transaprency off but pattern transparency on. * pcwhtindx.c: Modified pcl_cmap_create_remap_ary to potentially provide a remap array if source of pattern transparency is set. This is necessary to support the "two part" image structure required for rendering images with opaque source\ s but transparent patterns. Also removed a remnant of the temporary hack that made all rasters opaque. * pctext.c: fills in a missing else. * pcpatrn.h: Added the "colored" bit to the pattern object, to indicate if it was rendered as a colored pattern. * pcpatrn.c: 1. Moved the retained copy of the special white base color space to pccsbase.c, and the retained copy of the default halftone to pcht.c. This improves modularity and simplifies work with memory leak detection tools. 2. Modified the rendering of uncolored, transparent, foreground patterns. If the halftone or color rendering dictionary in the foreground varies from that in the current palette, these must be rendered as colored patterns (because the graphic library's state cannot retain two halftones). 3. Plugged a memory leak in render_pattern: the pattern instance of the previous pattern was not being released. 4. Added stub for the driver configuratioin command. This will absorb any data provided. * pcpalet.c: Modified to retain a copy of the default palette, and to set the default drawing color during initialization. This reduces memory thrashing slightly and simplies work with memory leak detection tools. * pcpage.c: Modified new_page_size to reset the default transformation in the graphic state. This is necessary for devices that feed different size sheets in different directions. * pcmain.c: Removed initialization of the PCL coordinate system; this is now handled in pcpage.c * pcindexed.h: Changed the third operand of pcl_cs_indexed_build_special to be a const byte pointer rather than a byte pointer. Also added the prototype for the new initialization routine pcl_cs_indexed_init. * pcindexed.c: Modified default pen widths to be in plotter units rather than millemeters. Also modified to retain the default indexed color space. This reduces memory thrashing slightly, and makes working with memory leak detection tools simpler. The latter change requires the addition of the an intialization procedure, pcl_cs_indexed_init. * pcht.c: Modified to provide a default transfer map (color lookup table) for the default (K) component of the output. This is necessary to properly handle cases in which the provided transfer function for the other components is an inverting function, for otherwise the results will be very black. Also modified to maintain a copy of the default halftone, which is allocated at boot time. This reduces memory trhashing slight, but more significantly it greatly simplifies working with the memory leak detection tools. * pcfrgrnd.c: Modified to retain a copy of the default foreground. This reduces memory thrashing slightly, and more significantly simplifies work with memory leak detection tools. * pcdraw.c: Modified pcl_grestore to release the references held by the pcl_gstate_ids_t structure that will be discarded. This plugs a major memory leak. VS: ---------------------------------------------------------------------- * pccsbase.h: Added prototype for initialization routine pcl_cs_base_init. * pccsbase.c: Modified to keep a copy of the special "white" color space. Previously, this was kept in pcpatrn.c, which was not ideal from a modularity point of view. As part of the change, an initialization routine, pcl_cs_base_init, has been added. Thu Aug 20 20:56:10 1998 Henry Stiles * Anomalies.txt: remove cvs anomalies * pglabel.c, pcindexed.c, pcmain.c: changes default translation (pcmain.c) to put pcl's origin correctly on devices that have a non-zero imageable area. Also, pcl was not using the default plu to initialize line width and the character code was not properly initializing the line width prior to stroking "stroke" font characters.