History of Ghostscript versions 9.xx

Table of contents

This document is a record of changes in Ghostscript releases numbered 9.xx. For earlier versions, see the the history documents:

History of Ghostscript versions 8.n
History of Ghostscript versions 7.n
History of Ghostscript versions 6.n
History of Ghostscript versions 5.n
History of Ghostscript versions 4.n
History of Ghostscript versions 3.n
History of Ghostscript versions 2.n
History of Ghostscript versions 1.n

For other information, see the Ghostscript overview.


Version 9.06 (2012-07-31)

This is the sixth full release in the stable 9.x series.

Highlights in this release include:

In addition, Ghostscript and GhostPDL 8.71 are now unsupported, and those still using those versions (or earlier ones) should migrate to 9.x as soon as possible since many improvements, features and fixes from the 9.x versions are impractical or impossible to back-port to these legacy versions.

For a list of open issues, or to report problems, please visit bugs.ghostscript.com.

Incompatible changes

No recorded incompatible changes.

Changelog

2012-08-06 23:37:19 -0400
Alex Cherepanov <alex.cherepanov@artifex.com>
291872308da215e1d7e12c8375fcf10dd5e651d2

Backport patches CVE problems.

CVE-2009-5030 http://code.google.com/p/openjpeg/source/detail?r=1703
CVE-2012-1499 http://code.google.com/p/openjpeg/source/detail?r=1330
CVE-2012-3358 http://code.google.com/p/openjpeg/source/detail?r=1727

gs/openjpeg/libopenjpeg/j2k.c
gs/openjpeg/libopenjpeg/jp2.c
gs/openjpeg/libopenjpeg/tcd.c


2012-08-06 08:43:48 +0100
Chris Liddell <chris.liddell@artifex.com>
20157526924fbe59436170085a17e530d08e9807

Bug 693223: remove apparently moribund dumphint tool

dumphint.ps and the scripts which call it seem to be of almost no value
these days, and appear to have suffered "bit rot". So remove them.

CLUSTER_UNTESTED

gs/lib/dumphint
gs/lib/dumphint.bat
gs/lib/dumphint.ps


2012-08-02 23:14:09 -0700
Ray Johnston <ray.johnston@artifex.com>
e48e87f883df0d39d1409d814c5d15444c3dca07

Bug 693185. The limitcheck in validatedevicenspace must match int_remap_color_info_s.

Commit e884e3 masked the failure, but since the test in validatedevicenspace
used GS_CLIENT_COLOR_MAX_COMPONENTS, the array bounds could still be exceeded.

Note that the confusing error message from the PDF interpreter from comment 1
still exists unless -dPDFSTOPONERROR is used, which gives a more meaningful
'limitcheck' immediately following the 'Do' of the image with 17 DeviceN
components. Bug 693185 is reopened for the error message as P3.

gs/base/gsccolor.h
gs/psi/icremap.h
gs/psi/zcolor.c


2012-08-02 20:34:26 -0700
Michael Vrhel <michael.vrhel@artifex.com>
588c2ee040526fbea470e36e7cbc8e87a503cab9

Update documentation for tiffsep planar device

Add in comments about the use of -dMaxSpots as well as the fact that the device,
and psdcmyk are planar and limited to 64 colorants per page. Also add in a
hint about using -dMaxSpots when we are processing a Postscript file and bump
up to the default max limit of 10 colorants. Tested it and it worked nicely.
Thanks Robin Watts.

gs/base/gdevpsd.c
gs/base/gdevtsep.c
gs/doc/Devices.htm


2012-08-02 18:27:45 +0100
Robin Watts <robin.watts@artifex.com>
836a551b97dd4a8436608b6dcebe8f8fb8632bcd

Add -dMaxSpots for tiffsep and psd devices.

psd and tiffsep devices now run with GS_SOFT_MAX_SPOTS spots enabled
by default (ten, unless predefined differently at build time). The
user can change this value using -dMaxSpots=X (where
0 <= X <= GS_CLIENT_COLOR_MAX_COMPONENTS-4).

gs/base/gdevpsd.c
gs/base/gdevtsep.c
gs/base/gsccolor.h


2012-08-01 22:14:44 +0100
Chris Liddell <chris.liddell@artifex.com>
d723d72b3c9f7e171299a5ccc70a5f1ca715a50a

Fix the -disable-gtk "so" build option

No cluster differences.

gs/base/configure.ac


2012-08-01 14:07:49 -0400
Alex Cherepanov <alex.cherepanov@artifex.com>
7e7b4ae93066b841c0b1eac539c220b79d7f7a5d

Fix lcms2 64-bit value decoding on big endian systems
that lack 64-bit types or have these types missed by configuration.

gs/lcms2/src/cmsplugin.c


2012-07-31 17:53:58 +0100
Robin Watts <robin.watts@artifex.com>
c832985cab3b769d460a3f3e0ae894c2a84fa1ba

Update tiffsep/tiffsep1 documentation w.r.t downscaler.

Document 32 and 34 ratios. Add extra info to tiffsep1 to distinguish
it from tiffsep in 1bpp mode.

gs/doc/Devices.htm


2012-07-31 15:25:13 +0100
Chris Liddell <chris.liddell@artifex.com>
af22330035dc852635b2102353cec1a94504cb88

Update docs for 9.06 release candidate 1.

gs/doc/API.htm
gs/doc/C-style.htm
gs/doc/Commprod.htm
gs/doc/DLL.htm
gs/doc/Deprecated.htm
gs/doc/Details8.htm
gs/doc/Details9.htm
gs/doc/Develop.htm
gs/doc/Devices.htm
gs/doc/Drivers.htm
gs/doc/Fonts.htm
gs/doc/Helpers.htm
gs/doc/History1.htm
gs/doc/History2.htm
gs/doc/History3.htm
gs/doc/History4.htm
gs/doc/History5.htm
gs/doc/History6.htm
gs/doc/History7.htm
gs/doc/History8.htm
gs/doc/History9.htm
gs/doc/Install.htm
gs/doc/Issues.htm
gs/doc/Language.htm
gs/doc/Lib.htm
gs/doc/Make.htm
gs/doc/News.htm
gs/doc/Projects.htm
gs/doc/Ps-style.htm
gs/doc/Ps2epsi.htm
gs/doc/Ps2pdf.htm
gs/doc/Ps2ps2.htm
gs/doc/Psfiles.htm
gs/doc/Readme.htm
gs/doc/Release.htm
gs/doc/Source.htm
gs/doc/Unix-lpr.htm
gs/doc/Use.htm
gs/doc/WhatIsGS.htm
gs/doc/Xfonts.htm
gs/doc/gs-vms.hlp
gs/doc/thirdparty.htm
gs/man/dvipdf.1
gs/man/font2c.1
gs/man/gs.1
gs/man/gslp.1
gs/man/gsnd.1
gs/man/pdf2dsc.1
gs/man/pdf2ps.1
gs/man/pdfopt.1
gs/man/pf2afm.1
gs/man/pfbtopfa.1
gs/man/printafm.1
gs/man/ps2ascii.1
gs/man/ps2epsi.1
gs/man/ps2pdf.1
gs/man/ps2pdfwr.1
gs/man/ps2ps.1
gs/man/wftopfa.1


2012-07-31 10:50:43 +0100
Robin Watts <robin.watts@artifex.com>
76722bee735462eedf4f4c6d9dfa552e3c1f7ebc

Fix link warnings about bad memset in gdevtsep.c

Due to a mistake on my part, the tiffsep device had a couple of
memsets in that did nothing; these were intended to clear an array
of pointers before use. Not clearing the array would only have been
a problem if we'd hit an error condition in a very small region of
code, but nonetheless, this is a fix.

gs/base/gdevtsep.c


2012-07-31 08:40:18 +0100
Chris Liddell <chris.liddell@artifex.com>
1e7ca769528b822b94ad8d1e498bde44d861637b

Product string and date updates.

gs/base/gscdef.c
gs/base/version.mak


2012-07-30 19:05:08 +0100
Robin Watts <robin.watts@artifex.com>
443ad5a4885be7abf5a1e0777275eefbc5322cd2

Up default GS_CLIENT_COLOR_MAX_COMPONENTS to 32.

The planar changes have enabled us to increase the default maximum
number of spot changes to 32. Tests show only a few differences
due to roundings.

Hopefully we can push it to 64 soon.

gs/base/gsccolor.h


2012-07-27 13:47:49 -0700
Michael Vrhel <michael.vrhel@artifex.com>
71c939e116dcffe72bf0c8ece9c647805da7e655

Pass the data_cs information into the minimal needed clist icc profile information

The knowledge that the source space is gray is needed so that we handle the gray_to_K
mapping correctly when going out to CMYK devices. Fixes a rendering issue in 29-07A.PS.
Thanks to Robin Watts for doing a lot of the detective work.

gs/base/gxclimag.c
gs/base/gxclist.h
gs/base/gxclrast.c


2012-07-25 23:58:40 -0700
Ray Johnston <ray.johnston@artifex.com>
428869d288d87d95fbcb5dcf8a0563003ff26294

Fix bug 693220. The pdf14 device used compressed encoding in clist mode.

The pdf14 device clist mode did not respect the USE_COMPRESSED_ENCODING
setting always using compressed encoding, and ended up writing pure
colors with num_bytes == -3. This was undetected because tiffsep1 is not
part of the regression testing, and because the tiffsep1 device did not
use 'planar' mode as the tiffsep device did. Also fixed some blanks before
line ends and tab indents.

Also, since planar mode is more efficient and allows for > 8 colorants
tiffsep1 was changed to use planar mode, getting rid of the need for
compressed color encoding in this file (maybe the last one).

gs/base/gdevp14.c
gs/base/gdevtsep.c


2012-07-26 18:55:30 +0100
Robin Watts <robin.watts@artifex.com>
8dfd92bc9d91105bd678940c20479fc9ecebbbdb

Fix clist_copy_planes causing clist corruption.

When clist_copy_planes is used with a planar device, it used to
leave a gap (9 bytes in the debugging example), then write the
first planes data. Then it would write each subsequent plane (preceeded
with a single byte gap). Then it would fill in the 9 bytes.

Unfortunately, if the buffer filled up while copying one of the
non-initial planes in, the date would be copied away and stored before
the header was filled in.

This leads to clist corruption, and all sorts of problems ranging from
rendering issues to SEGVs.

The fix is to move the header writing forward to immediately after
the first plane is successfully written.

This was causing problems with a 72dpi unbanded rendering of
tests_private/comparefiles/Bug692517.pdf to the psdcmyk device
with GS_CLIENT_COLOR_MAX_COMPONENTS set to 32, but was also
causing problems without the change in MAX_COMPONENTS.

gs/base/gxclrect.c


2012-07-26 13:32:36 -0400
Alex Cherepanov <alex.cherepanov@artifex.com>
f43f3d2016ae165a392fad962cda196e60587f8c

Bug 693147: monitors need max alignmrnt.
On 32-bit SunOS 5.11 gp_monitor structure need larger alignment than
4-byte pointer. Make it an union and add 64-bit attributes to ensure
proper alignment.

gs/base/gpsync.h


2012-07-25 16:45:38 -0700
Michael Vrhel <michael.vrhel@artifex.com>
d3bfe9bf857bb804a9bf710cccb36e3b78b9d663

Fix so that the image_render_frac handles sep color spaces correctly

The separation color spaces were not being handled properly in this renderer.
Also, if the device supported devn colors we were not packing them into the
correct type.

gs/base/gxi12bit.c
gs/base/lib.mak


2012-07-25 22:02:00 -0700
Michael Vrhel <michael.vrhel@artifex.com>
c8fc89fe8d72ad87158569825ddf421887c47713

Replace magic 32 number with MAX_COMPONENTS_IN_DEVN

gs/base/gsccolor.h
gs/psi/icremap.h


2012-07-24 21:40:05 -0700
Michael Vrhel <michael.vrhel@artifex.com>
e884e39691346b35ea8b87fe26d8d98857689397

Change the remap_color_info structure so that we can support up to 32 colorants DeviceN

AR supports up to 32 colorants in a DeviceN color space and this brings us in line with
that product's limits. Note that if the number of colorants is greater than
GS_CLIENT_COLOR_MAX_COMPONENTS then we end up using the alternate tint transform.
Previously, the tint transform would fail if we encountered a color DeviceN color
space with more that GS_CLIENT_COLOR_MAX_COMPONENTS colorants. This fixes bug 693185

gs/psi/icremap.h


2012-07-25 13:26:41 -0400
Alex Cherepanov <alex.cherepanov@artifex.com>
61fd8053c2c0b653df3d461b791ca3f61767c4f5

Bug 693210: check for scanning big arrays

Check whether the size of an scanned array exceed the current
max_arra_size and throw /limitcheck. Old code tried to allocate big
arrays, which caused a cascade of obscure errors.

gs/psi/iscan.c


2012-07-25 18:12:23 +0100
Robin Watts <robin.watts@artifex.com>
1e0744128be80ff2a0acb48a2c5e018dbb32c168

More fixes for deep color in the clist.

In the previous commit I missed the reading code for the delta color
form. Updated here.

gs/base/gxclrast.c


2012-07-25 14:14:25 +0100
Chris Liddell <chris.liddell@artifex.com>
b750aec711bde8505173622d590eabdda2f3d789

Bug 692824: only apply word spacing to single byte space

PDF word spacing is defined as only applying to character codes of one byte
with the value 32. We were using widthshow/awidthshow to implement word
spacing, but the character matching for those means any character code
with the value 32 will have the width applied: so both <32> and <0032> will
have word spacing applied, where only the former should.

I've added two customer operators (.pdfwidthshow and .pdfawidthshow) which the
PDF interpreter now uses. Those trigger a small additional capability in the
graphics lib code which ensures space is only allowed to be the single byte
value 32.

Cluster progressions with this patch seen in fts_20_2001.pdf and
fts_22_2202.pdf - no other differences.

gs/Resource/Init/pdf_ops.ps
gs/base/gstext.c
gs/base/gxchar.c
gs/base/gxtext.h
gs/psi/zchar.c


2012-07-25 13:40:31 +0100
Robin Watts <robin.watts@artifex.com>
ee0365f54e5d2cd80f5cae501d13d796094d022a

Avoid cmd_put_color being confused by deep color.

With high level color, we can have depths that are too bit to fit in
a gx_color_index. cmd_put_color has no idea how many bits of a
gx_color_index are used, so assumes that as many bits are used as
are in the target depth. The encoding used goes wrong when the number
of bits is bigger it guesses at is bigger than the number of bits in
a gx_color_index.

The fix is simply to change the writing and reading code to be smarter
about guessing; when writing/reading a gx_color_index you can never
need to write more bits than there are actually in a gx_color_index.

While debugging this code, I spotted that the devn_{write,read}_color
routines were always leaving an unused byte at the end of their commands.
Trim that here.

gs/base/gxclrast.c
gs/base/gxclutil.c
gs/base/gxdcolor.c


2012-07-25 13:05:35 +0100
Chris Liddell <chris.liddell@artifex.com>
7de5b7e3b3c64f8c7dd01df54e8223ab1275684a

Remove a couple of unused variables.

CLUSTER_UNTESTED

gs/base/gxblend.c


2012-07-25 08:12:19 +0100
Chris Liddell <chris.liddell@artifex.com>
0caff3862d36e99ba5d14077c58e88bd9a082c83

Bug 693216: replace "word-wise" copies with memcpy()

Various places in the blending code used a loop to explicitly copy bytes from
the input buffer to the output, with the comment that the idiom used was
actually quicker than using memcpy(). The idiom in question relies on casting
the byte buffer to a four byte type. This raises the spectre of unaligned
accesses.

Testing suggests any difference between the word-wise copying and "modern"
memcpy implementations is non-existent, or too small to measure (my tests
showed more variation between runs than between the two implementations).

We reckon the memcpy() solution is more maintainable in the long term than
forcing the buffers into alignment.

No cluster differences.

gs/base/gxblend.c


2012-07-20 15:46:06 +0100
Robin Watts <robin.watts@artifex.com>
a06bb8cfd8791254655889d85a1d37f173f53597

Rework colors_used to be a color_usage bitfield.

Previously, the clist would collate the colors used in a band/page
by ORing together any color indexs uses into a single gx_color_index.
This relies on the gx_color_index being able to represent the whole
depth.

This is dodgy with compressed encoding, and fails entirely with the
new planar based tiffsep/psdcmyk and high level color stuff, as the
total depth can far exceed the number of bits available in a
gx_color_index.

The fix here is to change to using a bitfield (gx_color_usage_bits)
for this record; this allows us to have up to 64 colorants with a
standard build.

The code here is still imperfect for all the reasons listed within
the original code (only works for subtractive spaces, can falsely
detect 'no colors used', etc), but it is at least consistently
imperfect now.

gs/base/gdevpbm.c
gs/base/gdevprn.c
gs/base/gdevprn.h
gs/base/gxband.h
gs/base/gxcldev.h
gs/base/gxclimag.c
gs/base/gxclist.c
gs/base/gxclist.h
gs/base/gxclpath.c
gs/base/gxclpath.h
gs/base/gxclread.c
gs/base/gxclrect.c


2012-07-24 16:28:00 +0100
Chris Liddell <chris.liddell@artifex.com>
7319a6de58e1986c5500d6181db158d3084da099

Bug 693219 - Clarify default output device description

Patch submitted by: roucaries.bastien+gs@gmail.com

CLUSTER_UNTESTED

gs/man/gs.1


2012-07-24 15:16:46 +0100
Robin Watts <robin.watts@artifex.com>
83f1aed5358d314cc52b5c243f94bbecb1e4469b

When unpacking 16 bit image data, unpack it all.

Ensure we don't miss the last one off. Differences appear on the right
hand edge of the images when rendering:

gs -dNOINTERPOLATE -o out-%d.psd -sDEVICE=psdcmyk -r300 -dMaxBitmap=10000 fts_02_0200.pdf

vs

gs -dNOINTERPOLATE --debug=memfill-empty -o out-%d.psd -sDEVICE=psdcmyk -r300 -dMaxBitmap=10000 fts_02_0200.pdf

gs/base/gxi16bit.c


2012-07-23 17:19:21 +0100
Robin Watts <robin.watts@artifex.com>
ef036b230f33ce1d9cdd135655319d3828ca6008

Bug 693204: Fix masked devn uncolored pattern error

In the old (non device n) code copy_portrait calls
gx_dc_default_fill_masked which calls gx_device_color_fill_rectangle
(actually gx_dc_pure_masked_fill_rect).

In the new code copy_portrait calls gx_dc_devn_fill_masked. This
function is almost identical, but results in calls to the
fill_rectangle_hl_color device procedure. This turns out to be
clist_fill_rectangle_hl_color, which tries to cmd_put_drawing_color.
This fails (and indeed would have failed in the old code) as we cannot
serialise a masked color.

If instead of calling the device procedure to fill_rectangle_hl_color,
we call the device color procedure to fill a rectangle, this exactly
mirrors the old code, and indeed results in calls to the
fill_rectangle_hl_color code in a way that don't give errors.

gs/base/gxdcolor.c


2012-07-23 14:27:30 +0100
Chris Liddell <chris.liddell@artifex.com>
f661e5225bb017d15b50c2aecda7d4283f8f3aa9

Bug 693205: check for "sane" page dimensions in x11 drivers

In the x11 devices, the page size is used to request the window dimensions from
X, and X does not support 0 x 0 sized windows.

If a page size is, or rounds to 0 x 0, inform the user, and return a
rangecheck error.

CLUSTER_UNTESTED

gs/base/gdevxini.c


2012-07-23 14:15:01 +0100
Chris Liddell <chris.liddell@artifex.com>
7dfac701b8a36395a88a69b3a1e9eeaaa70c6b0b

Bug 693208: improve error feedback (when we can)

Have configure check for the presence of strerror() and if it's available,
have gp_strerror() call it.

No cluster differences.

gs/base/Makefile.in
gs/base/configure.ac
gs/base/gp_unix.c


2012-07-22 13:30:12 -0700
Ray Johnston <ray.johnston@artifex.com>
9ef234a8a065f2240173bd1d5131418d171fbf4a

Another fix for bug 692542 for garbled output with NumRenderingThreads > 1.

The multi-threaded rendering "predicts" which direction to start threads,
but the 'next_band' calculation in clist_get_band_from_thread was not
correct if the thread prediction was incorrect as it would be if the
device requested bands in other than the normal order as happens when
the device makes multiple rendering passes (psdcmyk) or NumCopies > 1.

Also, depending on the number of bands, 'clist_teardown_render_threads'
could free the main thread's 'data' area, then later point the cdev->data
to the freed block, also leaving one of the thread's data blocks leaked
(releasing the chunk memory for the thread would free this, so the leak
would be temporary).

gs/base/gxclist.h
gs/base/gxclthrd.c


2012-07-20 22:46:02 -0700
Michael Vrhel <michael.vrhel@artifex.com>
5a7b42637b166615c3c1e3b553bd86d1dced329b

Fix so that when we are doing the sep devices with spots the blend spaces for transparency remain separated

This fixes bug 693144 first part which is the segv for Bug6992217.pdf which likely existed prior to the
planar change for the sep devices. The issue with 12-07C.PS is different. In any event, the
issue was that there was a fill with a pattern in a softmask and there was an RGB transparency group
within the pattern. With the separation devices, the blending space is maintained as a subtractive
space to allow blending of all the spot colorants which means that the parent group is always maintained.
There is a discussion about this in the PDF specification with respect to spot colors and transparency
blending. In any event, the current code has some confusion since the decision as to if we should use
the group color space was based upon the device name (e.g. pdf14cmykspot) which became a problem when we
had the pdf14clistgray device when the pattern was a clist.

gs/base/gdevp14.c


2012-07-20 15:33:24 +0100
Ken Sharp <ken.sharp@artifex.com>
9986753fb7e45556980e5b661dedba2fe9d2f92c

ps2write - Emit a %%BeginResource for FOntFile resources

Previously we were emittign an %%EndResource comment but not a %%BeginResource

No differences sxpected

gs/base/gdevpdtd.c


2012-07-20 13:48:17 +0100
Chris Liddell <chris.liddell@artifex.com>
3f0bee24591c8f690bd121fee272d925247ce307

Stamp on a warning in fapiufst.c

Sort out the path length, and parameters to strncat() with the stand gs maximum path length value.

No cluster differences.

gs/psi/fapiufst.c


2012-07-19 19:02:04 +0100
Robin Watts <robin.watts@artifex.com>
39f5af403d9cf49b9419a85e3569436907ade65d

Solve psdcmyk SEGVs when max components reaches 32.

Max components reaching 32 means that the total depth reaches 256.
Attempting to pack 256 into a byte for the clist leads to obvious
problems.

gs/base/gsptype1.c


2012-07-20 00:03:13 -0400
Alex Cherepanov <alex.cherepanov@artifex.com>
1213e26fd9d71526855e1978c7440f7175413fcb

Bug 693199: Ignore broken %%ViewingOrientation

Add a check whether the comment has been parsed successfully.
If not, ignore the comment.

gs/psi/zdscpars.c


2012-07-20 10:27:32 +0100
Ken Sharp <ken.sharp@artifex.com>
01dc18e8418fc44a993840f0aeaf741929c1921a

ps2write - Always ascii hex encode the eexec portion of type 1 fonts

Bug #693197 "ps2write outputs Type 1 fonts in pfb format"

Technically it is possible for the eexec portion of a type 1 font to be in
binary or ascii hex. Because we always ascii85 encode binary data if the
device does not support it, we left eexec portion as binary.

However it seems that at least some printers (Kyocera, possibly others) are
unable to deal with this.

This patch means that we alays use ascii hex data for the eexec encrypted
portion of a type 1 font. We did consider making this a command line option
but were unable to find any other tools which emitted binary here so opted
simply to conform.

All the investigation and the original patch (see bug report) by Chris Liddell


No differences expected

gs/base/gdevpdtb.c
gs/base/gdevpsf1.c


2012-07-19 15:40:03 -0700
Ray Johnston <ray.johnston@artifex.com>
04392ddc8b6a369b0ec4dfd9d0e9c894d1aa729e

Fix bug 692542. NumRenderingThreads > 1 failed with planar devices.

The tile_cache_size was inconsistent resulting in the 'data' area
being miscalculated if the prn_device was set up in planar mode.

gs/base/gxclthrd.c


2012-07-19 13:16:29 -0700
Michael Vrhel <michael.vrhel@artifex.com>
c7f3d73ea47bba783872ac193585601a4760dcfd

Fix for bug in the named color example support

When the example in gs\toolbin\color\named_color is run we get a segv. It was due to
the name information not getting set up in the nameed color structure that the example uses.
It essentially uses an ICC for with the named spot color data packed into the buffer.

gs/base/gsicc_manage.c


2012-07-19 12:42:38 -0700
Michael Vrhel <michael.vrhel@artifex.com>
ddc361cee517d73f4977c7600d9853cc1813ad1f

Fix of bug in setting source based rendering intent for RGB objects

There were several typos caused by copy and past of the CMYK code for
setting rendering intents. Thanks to Stefan Lietermann for finding this.

gs/base/gsicc_manage.c


2012-07-18 23:05:23 -0700
Michael Vrhel <michael.vrhel@artifex.com>
17a42fca39c61c256cc5bab4d343f6bf38ae5109

Add in support for copy_planes into the overprint device

The copy_planes procedure is used during the default copy_alpha_hl_color and if we
are going out to the overprint device, we need to make sure to copy only those
planes that are specified in the drawn components vector. We also needed to
distinguish from this case and a copy_planes coming from the pattern tiling code.
This was done by adding in a copy_alpha_hl_color proc for the overprint device that
sets a flag and calls the default copy_alpha_hl_color so that later when we get
back to the overprint device's copy_planes proc we will know to do the over print
rather than just pass things along to the target device. Fixes Bug 693184.

gs/base/gsovrc.c


2012-07-19 16:37:27 +0100
Chris Liddell <chris.liddell@artifex.com>
44b01d274db5272055de6afb3d72788b6db84d53

Bug 693188: don't skip glyphs with degenerate matrices

In commit 752397ab, the fix for Bug 692263 was to skip over glyphs when the
matrix in force for the glyph had a zero scale in either dimension.

It seems that this approach had potentially unfavourable side effects in the
glyph cache.

So, when we encounter a degenerate matrix rendering a glyph, we now force a
minimal, non-zero scale before attempting to render the glyph. This placates
the glyph cache.

Cluster testing shows (tiny) progressions in Bug689006.pdf, Bug690179.pdf,
and Bug692634.ps, and pixel differences, not identifiable as progressions
or regressions in Bug690497.pdf and 12-07C.PS.

gs/psi/fapi_ft.c
gs/psi/fapibstm.c
gs/psi/fapiufst.c
gs/psi/ifapi.h
gs/psi/zfapi.c


2012-07-18 20:57:54 +0100
Robin Watts <robin.watts@artifex.com>
71ddb93b2b679c980a4024fcc1089c2d56abc3ab

Recognise Darken and Lighten as idempotent rendering modes.

No need to set the lop_pdf14 bit, and consequently makes files that
use stroking with Darken/Lighten much faster. See Bug 693173.

gs/base/gdevp14.c


2012-07-18 13:11:35 +0100
Robin Watts <robin.watts@artifex.com>
8a25653ddb875c29172b62eff48bec0147d09aab

Update scrollbar handling in Windows windows.

Drag ghostscript kicking and screaming into the 1980s by adding
proportional scrollbar handling.

gs/psi/dwimg.c
gs/psi/dwtext.c
pl/dwimg.c


2012-07-17 12:52:59 -0700
Michael Vrhel <michael.vrhel@artifex.com>
d7b56aa8c3b39e58d2b5faefd33ecb7e377f097e

Fix for bug in clist copy planes procedure.

The clist copy planes procedure was not indexing through the planes during the clist writing.
The 2nd plane was getting replicated into all the other subsequent planes. This is a bug fix
for 693061. I also added a message for when we are in debug and going out to a device that
supports devn color to notify us of a case where we have DeviceN color spaces with \None colorants.
As mentioned in bug 693061 Comment 5 this causes a problem for the composite preview in the
separation devices. Ink amounts for the separations will be correct, but without having the \None
colorant ink amounts, the preview is not going to be correct.

gs/base/devs.mak
gs/base/gsequivc.c
gs/base/gxclrect.c


2012-07-13 13:05:06 +0100
Robin Watts <robin.watts@artifex.com>
a88326f1ca382092c889ffa9be1abe857c118a34

Bug 693166: Optimise interpolation

When interpolating, ghostscript pays no heed to the clipping rectangle.
Hence if we scale (say) a 256x256 image up to (say)17067x17067, even
though only a small portion of the scaled up image is actually visible
we scale the whole lot only to throw away 90%+ of it.

To fix this, we have to extend the capabilities of the interpolation
code.

The existing code already copes with only being given data for a
subsection of the image (for when we split images in the clist, I
guess). This rectangle is referred to in the code as being 'the
subrectangle we are rendering', when it's actually 'the subtrectangle
we are being given data for'. We update the description to be more
accurate.

We introduce a new rectangle, 'the render rectangle' to indicate the
subrectangle that we are actually rendering - this will always be a
subset of the data rectangle.

If we are given a clipping rectangle, we read the outer bbox from it,
and map this back into the source space of the image; we intersect this
with the data rectangle to get the render rectangle.

We update the scaling stream filter to set an 'Active' flag to say
whether we are inside the render rectangle or not. If not, we can
safely skip lines in their totality. By default we leave this set to
1, so that any scaling cores that aren't updated to know about this
will perform in the old way.

We update the scaling code to make use of the Active flag; whole lines
are skipped if we aren't in the active region, and if we are, we skip
prefixes/suffixes of unused pixels.

We update the scaling cores themselves to avoid calculating values
outside the active regions.

Note that for simplicity we still allocate space as if we were
accessing the whole line. We still calculate contributions for the whole
of the images; to do otherwise would require significant changes to
the weight generation code, and this isn't a huge consumer of time.

gs/base/gximage.h
gs/base/gxipixel.c
gs/base/gxiscale.c
gs/base/siscale.c
gs/base/sisparam.h


2012-07-17 13:28:01 +0100
Robin Watts <robin.watts@artifex.com>
cbcd1dc873db397af0866f9fd54a70421dc6692f

Tweak interpolation calculations

In preparation for the next commit, tweak the image interpolation
calculations; rather than doing a matrix multiplication and then
only using the X coords from it, change to doing both width and
height calculations in the same way.

This causes various (350ish) small changes in interpolation output
due to rounding issues.

gs/base/gxiscale.c


2012-07-16 22:16:35 -0400
Alex Cherepanov <alex.cherepanov@artifex.com>
2f12f569672d84a1846905c41701fca52f8dc55e

Bug 689376: fix //name handling on command prompt.

We allocate %statementedit in the system memory. When a is read from
the command prompt we use gs_scan_token() to determine, whether the
line has a complete token. If the line has immediately evaluated names,
gs_scan_token() fails. This is interpreted as the end of the input.
If the line buffer has a complete token, the buffer is rescanned
and everything is fine. Otherwise, scanning a prematurely closed buffer
causes an error.

All we need to do to fix this is to force local memory allocation
instead of inheriting system memory from %statementedit. The scanned
token is discarded after determining whether the input line is
complete.

gs/psi/ziodev.c


2012-07-16 13:00:46 +0100
Ken Sharp <ken.sharp@artifex.com>
b49d3c75a70cbdcdb2214f22ad1a1f62f1bb90fc

ps2write - create document %%BoundingBox from teh individual page Bounding boxes

Bug #693181

The document level BoundingBox is supposed to be the intersection of the
boundingbox of all the pages, whereas in fact it is the device media size.

Now we create the document BoundingBox by taking largest dimensions from all
the pages in the output.

NB the BoundingBox for each page is given from the media request, so this is
not a true BoundingBox anyway, but at least it is better then before.

gs/base/gdevpdfu.c


2012-07-14 16:25:13 -0700
Marcos H. Woehrmann <marcos.woehrmann@artifex.com>
479b462ffa4663a71a88d185aaf7cc5c4f5d1903

Replaced an '==' that was incorrectly being used for equality testing in configure with '='.

gs/tiff/configure
gs/tiff/configure.ac


2012-07-13 12:25:27 +0100
Chris Liddell <chris.liddell@artifex.com>
808f39dd443b1e475f6d9bfd320d79d793124d3f

Bug 692684: stack variable corruption

In alloc_restore_step_in(), we have to make sure that, whenever we back up
a memory space to the previous save level, we hold onto the gc_status.psignal
pointer, and put it into the restored memory space. In case the "save"
happened during an earlier call to interp() and co.

No cluster differences.

gs/psi/isave.c


2012-07-13 14:14:47 -0700
Michael Vrhel <michael.vrhel@artifex.com>
fef9eef583d2ac227d3f9037785e27f1d5ecfc0d

Fix for missing variable set in overprint code from enhancement of simulated RGB overprint

Fixes Bug 693085

gs/base/gscspace.c


2012-07-13 16:15:22 -0400
Wendy <wendyst2@gmail.com>
cdf018f4dc9e7765a8c3851c2e66edaad5642a0b

Add missing '\n' to the last line, required by MSVC 7.

gs/base/gxcldev.h


2012-07-13 13:54:36 +0100
Ken Sharp <ken.sharp@artifex.com>
57fe0115f01724b3c50812678c63924d008a01d9

pdfwrite - code cleanup

Deprecated the undocumented 'MaxViewerMemorySize' parameter whcih wasn't in
fact being used anywhere useful.

Deprecated the 'pdf_write_and_free_all_resoruces' function which is not used
after deprecating MaxViewerMemorySize.

Deprecated the function 'pdf_glyph_origin' as it is unused

made 'write-font_resources' non-static so it can be called from pdf_close

Deprecated pdf_close_text_document and moved the code (which actually writes
fonts and font descriptors) into pdf_close so that its easier to follow the
control flow. Also cleaned up the code so that it isn't one huge 'if' test
but each function call is separated out for easier debugging.

Made a number of '#if 0' blocks into '#ifdef DEPRECATED_906'. All blocks of
code marked this way will be removed after the release of 9.06.

Removed a number of cases where we had #define labels with a bug number, these
now use the #ifdef DEPRECATED_906 lable or are simply removed and the code
compiled in.

Simlarly with '#define RIGHT_SBW' and '#if !RIGHT_SBW'

Updated the ps2ps2.htm document to remove the reference to MaxViewerMemorySize.

No differences expected.

gs/Resource/Init/gs_pdfwr.ps
gs/base/gdevpdf.c
gs/base/gdevpdfb.h
gs/base/gdevpdfc.c
gs/base/gdevpdfp.c
gs/base/gdevpdfu.c
gs/base/gdevpdfx.h
gs/base/gdevpdt.h
gs/base/gdevpdte.c
gs/base/gdevpdtf.h
gs/base/gdevpdtt.c
gs/base/gdevpdtw.c
gs/base/gdevpsds.c
gs/doc/Ps2ps2.htm


2012-07-12 11:56:12 +0100
Chris Liddell <chris.liddell@artifex.com>
9d73413d5ccb44b11a644848422dfb17e51eb7da

Changes to build on msys/mingw

Allows all the system header presence macros previously set in unix-aux.mak to
be set by configure instead. The tests remain unix-aux.mak for backwards
compatibility.

This also changes those macros to the "tri-value" style:
undefined, defined 0 and defined 1.

Also removes jbig2dec/config_types.h from source control.

No cluter differences.

gs/base/Makefile.in
gs/base/configure.ac
gs/base/dirent_.h
gs/base/gp_unifn.c
gs/base/gp_unifs.c
gs/base/openvms.mak
gs/base/pipe_.h
gs/base/time_.h
gs/base/unix-aux.mak
gs/doc/Make.htm
gs/jbig2dec/config_types.h


2012-07-12 17:15:13 +0100
Ken Sharp <ken.sharp@artifex.com>
aa35587db7ba9dc469060d30d3313b318ca45bd5

make the SEAC detector and type 1 -> type 2 charstring converter tolerate broken fonts

Bug #693170 "ps2pdf crashes on a given file"

The fonts in the PostScript file are invalid in that some of the glyphs do not
end with an 'endchar' or other valid termination operator. This was causing
a buffer overrun which eventually could cause access to invalid memory and a crash.

Added limit checking where it was missing and choose to return an 'unknown'
error so that code which is able to handle this can detect the condition. Code
which is not expecting this contdition will continue to signal an error.

No differences expected

gs/base/gdevpsfx.c
gs/base/gxtype1.c
gs/base/gxtype1.h


2012-07-12 15:44:52 +0100
Robin Watts <robin.watts@artifex.com>
82ef3429ec2f3fc891a2f61455027842b7aa7581

Revert "Move GC flag from stack to gs_lib_ctx."

This reverts commit 39b0a515d5101cf48ae35f1ebb14e4558cb78e88.

That commit doubled the runtime in cluster testing, so presumably
gc was being triggered too often.

gs/base/gslibctx.h
gs/psi/imain.c
gs/psi/interp.c


2012-07-12 08:42:38 -0400
SaGS <sags5495@hotmail.com>
b2e2def97f5b1664dc3d8e2be942a2de5857b802

Bug 693155: 'resourceforall' returns truncated names for /CMap resources.

(A)
Comments say that gs_init.ps::.generate_dir_list_templates_with_length returns
the legth of the "directory" part, but if actually returned the length of
"[base] directory" + "template" - 1.

(B)
gs_res.ps::ResourceForAll passes part of the real "directory" (the "Category/")
as part of the "template" argument of .generate_dir_list_templates_with_length,
but failed to take into consideration the length of this string when cutting
"directory" from the full filespec in order to remain with the resource name.

Note that .generate_dir_list_templates_with_length does not check if its
"template" argument contains directories too so cannot adjust the returned
length. The code as written intends to deal with resource names that include
.file_name_separator (see discussion on Bug 688737 "'resourceforall' truncates
names of file-based resources"); such a resource name would be
"Times/Cyrillic".

gs/Resource/Init/gs_init.ps
gs/Resource/Init/gs_res.ps


2012-07-12 13:29:24 +0100
Robin Watts <robin.watts@artifex.com>
29a16f87849a874cd872fc8e2beab2b3986eea51

Bug 693171: Patch OpenJPEG to avoid SEGVs with broken files.

Patch from Shailesh Mistry. In the case of corrupt files, tiles
were failing to be allocated, leaving the code attempting to
work with non existent tiles. The fix is to spot the failure,
mark the tiles as being non-existence and then to check this
before accessing them.

gs/openjpeg/libopenjpeg/j2k.c
gs/openjpeg/libopenjpeg/tcd.c


2012-07-12 11:44:29 +0100
Chris Liddell <chris.liddell@artifex.com>
514595fc2cc84f51efdef563cf7a35a0050902e5

Bug 693038 - allow gsx to build against GTK+ 3.x

Patch from galtgendo@gmail.com applied with changes to maintain compatibility
with GTK+ 2.x, and replace a function deprecated in GTK+ 3.x.

This patch drops GTK+ 1.x support.

No cluster differences.

gs/base/configure.ac
gs/psi/dxmain.c


2012-07-12 09:20:35 +0100
Chris Liddell <chris.liddell@artifex.com>
b6252440c644b4f172c517a931fd3da73828f64c

Fix for OpenJPEG build on FreeBSD

Make sure OpenJPEG does not try to use memalign() on FreeBSD systems.

Credit to Alex Zimnitsky ( aavzz@yandex.ru ) for the patch.

No cluster differences.

gs/openjpeg/libopenjpeg/opj_malloc.h


2012-07-12 00:11:37 -0400
SaGS <sags5495@hotmail.com>
e0deadb4b3661e6c4e0811b45d1c251e124632be

Remove an additional, incorrect, search for resources,
intended for OpenVMS only.

ResourceForAll used a 2nd template for searching file-based resources,
GenericResourceDir + Category
+ .file_name_separator + originaltemplate + .file_name_separator + "*"
in addition to the standard
GenericResourceDir + Category + .file_name_separator + originaltemplate
This was documented as needed for OpenVMS, but it results in
dev:[genericresourcedir.Category]originaltemplate]* ("]" twice)
which is definitely invalid. It is also unnecessary, the "standard" one is OK.

For other platforms, this 2nd form may or may not be syntacticly valid ("*?",
coming in form the original template, in the "directory" part), but it's
definitely not useful.

Of course, it remains the question what was the intent of the person who added
these lines (in case we should keep the code but fix it). I considered:

- "dev:[genericresourcedir.Category.*]template", but this searches one
directory level too deep.
- "dev:[genericresourcedir.Category]template;*", but this would load all
versions of a same file. Definitely not what we want, because we may end
with an obsolete (old) copy of the resource.
- "dev:[genericresourcedir.Category]template.*", but this is unnecessary. And
maybe more important is that the exact template used is the responsability
of the caller; I see no reason for ResourceForAll to modify it.

The most precise documentation on OpenVMS path syntax I found is "Guide to
OpenVMS File Applications"
<http://h71000.www7.hp.com/doc/731final/documentation/pdf/ovms_731_file_app.pdf>
available from <http://h71000.www7.hp.com/doc/os83_index.html>.
I also asked on comp.os.vms, and the response I got confirmed the form used is
invalid.

gs/Resource/Init/gs_res.ps


2012-07-11 23:17:36 -0400
Alex Cherepanov <alex.cherepanov@artifex.com>
39b0a515d5101cf48ae35f1ebb14e4558cb78e88

Move GC flag from stack to gs_lib_ctx.

Move the GC flag from the stack, where it can go out of scope to
lib context structure (gs_lib_ctx_t), which is allocated quite
early in stable memory and never goes out of scope.

Revert the commit a39e4831ba0d74d742b365f3b3b1af192731303c for the
bug 692684 because it didn't really fix anything. That patch just
changed the stack layout and masked the effect of writing into an
out-of-scope location.

The sample file 34_all.PS no longer causes SEGV but continues to
have a resolution-dependant rendering of one character.

gs/base/gslibctx.h
gs/psi/imain.c
gs/psi/interp.c


2012-07-11 18:27:44 +0200
Till Kamppeter <till.kamppeter@gmail.com>
c304a350330b3e333b34c048de009967f1a6caa1

Fixed typos in comments.

gs/base/lcms.mak
gs/base/lcms2.mak


2012-07-11 15:51:27 +0100
Chris Liddell <chris.liddell@artifex.com>
4f6b98548bec2c10b10207d4f25b805fc393ade8

Bug 693176: write transparent type2 pattern color to clist

When using a clist, ensure that the all the color space data for the
pattern gets written to the clist, *and* that the clist correctly
records all the relevant transparency data.

I'm at a loss to explain how COMPILE_INITS influenced this, but this
change brings the clist/non-clist output and code in line with each
other.

No cluster differences.

gs/base/gdevp14.c


2012-07-10 15:03:49 -0700
Marcos H. Woehrmann <marcos.woehrmann@artifex.com>
c7d2fbfef2ea176472c4459b3772ef3ac496ee5d

Expanded -dDOINTERPOLATE section of Use.htm based on Robin's description of same.

gs/doc/Use.htm


2012-07-09 14:04:16 -0700
Michael Vrhel <michael.vrhel@artifex.com>
f5d0a752ccd610aa4a3946e30e2a0917cacacf28

Fix for mistake in commit 951adcd6 . which was the xps transparency fix

Fixes the reopening of bug 693042

xps/xpspath.c


2012-07-09 14:12:24 +0100
Chris Liddell <chris.liddell@artifex.com>
711883fd711772b7856e19207cc64f829033e254

Bug 693172: Truetype: disable hinting for broken glyph program

In the AFS Truetype code, if we encounter a glyph with a broken bytecode
program reset and retry the glyph with the bytcode interpreter disabled.

This reflects what the FAPI/Freetype does, and what most other TTF consumers
seem to do.

No cluster differences.

gs/base/ttfmain.c


2012-07-07 13:50:54 -0700
Ray Johnston <ray.johnston@artifex.com>
c1815bdb424390c21289287d13f7e8747792c098

Simplify the ICC options PS code to do a single .setuserparams2

Use an array of names to collect all options that were set from the command
line and then do a single .setuserparams2 invocation.

gs/Resource/Init/gs_lev2.ps


2012-07-06 16:38:55 -0600
Henry Stiles <henry.stiles@artifex.com>
149974a4a14999d5e336911b262600e5fa950e18

Fixes bug 693162, shifted text due to Vertical Motion Index command not
resetting the cursor to the home position.

pcl/pcpage.c
pcl/pcursor.c


2012-07-06 00:15:51 -0700
Michael Vrhel <michael.vrhel@artifex.com>
74897ff7aeecb9a76dde73a6554444b40a89beec

Use .setuserparams2 instead of .setuserparams when setting the ICC user params

Thanks to Chris for pointing this out. If we use .setuserparams then in gs_lev2.ps the
various user params such as /DefaultCMYKProfile are set. This sets the profile
in the icc manager properly to what ever was set on the command line.
Unfortunately, the currentuserparams dictionary (or what ever object it is)
that is maintained by the interpreter is not updated with the same value, but
instead it has an old default value that it obtained from an earlier call of
.currentuserparams. During a vm_reclaim, context_state_store stores the
outdated userparam information and then context_state_load does a call to
set_user_params with this outdated userparams information. setuserparams2
takes care of this by getting the interpreters list in sync at the time we do
the setting of the parameter. Fixes bug 693159

gs/Resource/Init/gs_lev2.ps


2012-06-29 17:39:31 -0700
Michael Vrhel <michael.vrhel@artifex.com>
951adcd68cf899a472b8c280e58fd7ff589badd3

Fix in XPS interpreter to ensures we only push the smallest transparency group needed + more

For a path that included an opacity mask, the XPS interpreter was pushing a soft mask
that included the entire page (it actually just looked at the current clip path). This
fix incorporates the path that we are filling in the computation of the transparency group
size. Also, there were issues with the softmasks in general that were causing them to be
double applied. Fixes 693042 and also provides improvements for 690951. Also this should fix 693137 and 692892

gs/base/gspath.c
gs/base/gstrans.c
gs/base/gstrans.h
gs/base/gxpath.h
gs/base/lib.mak
gs/psi/ztrans.c
xps/ghostxps.h
xps/xpsglyphs.c
xps/xpsgradient.c
xps/xpsimage.c
xps/xpsopacity.c
xps/xpspage.c
xps/xpspath.c
xps/xpstile.c


2012-07-04 17:32:21 +0200
Tor Andersson <tor@ccxvii.net>
2f71f5166422d5c61cb13c6078b2dfb1c3234db7

Implement XPS style simulations using shearing and fill+stroke.

Special case for pdfwrite to pass through Tr mode without using charpath
by looking for PreserveTrMode in the device parameters.

Fixes bug 689278.

xps/ghostxps.h
xps/xpsglyphs.c
xps/xpstop.c


2012-07-03 22:52:19 +0100
Shailesh Mistry <shailesh.mistry@hotmail.co.uk>
31d9fb2b771272d7ba4712d8887c668d0e86d82e

Bug 693050 : Fix compiler warnings

gs/jbig2dec/jbig2_halftone.c


2012-07-03 15:48:43 +0100
Ken Sharp <ken.sharp@artifex.com>
0bc05670e841517b8a2041999c19c19507874a4a

pdfwrite - when we have /Indexed space or non-identity transfer use lossless compression

Bug #689506

level 1 output from PScript5.dll can create a fake 'Indexed' space by using
a non-identity transfer function. Also if we do have a real /Indexed space,
then using lossy compression or downsmapling (other than Subsample) results
in garbage output.

Previously we disabled compression and subsampling when either condition was
true, but this leads to large files under some conditions. The code here instead
overrides any downsampling and uses Subsample instead, and selects a lossless
compression scheme.

This results in smaller files for some conditions without affecting ordinary files.

Also removed a line with a C++ style comment

No differences expected.

gs/base/gdevpdfi.c


2012-07-03 14:55:30 +0100
Chris Liddell <chris.liddell@artifex.com>
ceac6867c04ef61e5529b0af14a2c4b641ca4206

Bug 693164: PDF (partially) ignore tr mode for type 3 fonts

The PDF spec states that: "The text rendering mode has no effect on text
displayed in a Type 3 font" - unfortunately, not only does Acrobat not
behave like that, it behaves differently with various versions Acrobat.
Worse, Acrobat X Pro seems to produce different results depending on how you
load the file!

This change makes GS match Acrobat X Pro, which ignores text rendering modes
for Type 3 fonts, except mode 3 (non-marking).

As well as the problem file now working, this causes tiny differences in outline
for Bug692129.pdf, chartab.pdf. It causes a progression with pdf-t3-simple.pdf
which now renders more like Acro X.

gs/Resource/Init/pdf_ops.ps


2012-07-02 22:49:17 +0100
Shailesh Mistry <shailesh.mistry@hotmail.co.uk>
e9bbff5f116eccd87946df28fced66ba42cbad1d

Bug 693050 : Fix valgrind error in 0CF9 folder

gs/jbig2dec/jbig2_refinement.c


2012-07-02 21:53:20 +0100
Shailesh Mistry <shailesh.mistry@hotmail.co.uk>
aad5317a0e77dac6fd2766b99c12c3ca7874c7d4

Bug 693050 : Fix error handling in 0717 folder

gs/jbig2dec/jbig2_halftone.c
gs/jbig2dec/jbig2_mmr.c


2012-06-01 14:05:03 -0700
Michael Vrhel <michael.vrhel@artifex.com>
3a5a524ea71a58cc0e9e0200bb98a2fc341ec033

Fix for broken AA support for devices that support the devn color type

This fix involved the addition of a copy_alpha_hl_color for passing along the devn color
value when doing the copy_alpha procedure. This required support through the clist,
special handing in the pdf14 device and a default procedure for the operation.
The only devices that should be affected are tiffsep and psdcmyk. Support for 16bit psd
devices may have issues and I will go back to check on this later as a customer is waiting
for this for 8 bit tiffsep.

gs/base/gdevabuf.c
gs/base/gdevdbit.c
gs/base/gdevdflt.c
gs/base/gdevmem.c
gs/base/gdevmem.h
gs/base/gdevmpla.c
gs/base/gdevnfwd.c
gs/base/gdevp14.c
gs/base/gsdcolor.h
gs/base/gspaint.c
gs/base/gxccman.c
gs/base/gxcldev.h
gs/base/gxclip.c
gs/base/gxclip.h
gs/base/gxclip2.c
gs/base/gxclipm.c
gs/base/gxclist.c
gs/base/gxclpath.h
gs/base/gxclrast.c
gs/base/gxclrect.c
gs/base/gxdevcli.h
gs/base/gxdevice.h
gs/base/gxdevmem.h


2012-06-28 10:53:31 -0600
Henry Stiles <henry.stiles@artifex.com>
58d67647585fdb2707ccdb5eccc0123c77fbe495

Bug 693156 - incorrect units.

PCL distinguishes between device units and native units, and before
this change we had interpreted them to be the same, resulting in what
appeared to resolution dependencies in HPGL/2 - RTL. The native units
can now be set by the PJL resolution given on the command line
independent of the physical units of the device.

pcl/pcjob.c


2012-06-28 11:07:22 +0100
Ken Sharp <ken.sharp@artifex.com>
dc797976bca27ea5c706d93f5fcb42b5386cc6ed

pdfwrite - store widths for regular fonts when there is a vertical displacement.

Bug #691369 "Widths array in font dictionary contains incorrect values for rotated text"

Similar to bug #692365 but this time for regular fonts not CIDFonts. If there
is any vertcial displacement of the glyph then we did not store teh glyph
width, leading to it being emitted as 0.

Fix is very similar also.

No differences expected.

gs/base/gdevpdte.c
gs/base/gdevpdtt.c


2012-06-27 09:34:03 +0100
Ken Sharp <ken.sharp@artifex.com>
2ff29d1f499451c63ddb8b3cc152cb2eda4b5e33

pdfwrite - record glyph vertical metrics evne when the position vector has a vertical shift

Bug #692365

The store_glyph_width routine returns >0 if there is any vertical shift in
addition to a width, this is defined as 'not safe to cache'. The routine
pdf_glyph_widths ORs that into its return value and passes the data back.

scan_cmap_text was checking that value before recording the width, and not
recording it if it was > 0. This is incorrect, at least when in vertical writing
mode, as this is the only place that we record the vertical metrics for use
in the W2 array. If we don't record them here this information is lost. Also
we don't need to worry about the vertical movement here as that is dealt with
elswewhere by modifying the text matrix.

This was leading to pdfwrite emitting a /W2 entry with all 0 values [0 0 0]
which caused significant misplacement of glyphs.

Expected Differences
Bug692576.ps exhibits a progression

gs/base/gdevpdtc.c


2012-06-27 09:07:06 +0100
Chris Liddell <chris.liddell@artifex.com>
d026537beaf869a2792cf5d97e8b5c3555875f28

Bug 693158: initialise the fapi_raster structure before use

Fixes several valgrind errors about use of uninitialised values.

No cluster differences expected.

gs/psi/zfapi.c


2012-06-27 07:50:25 +0100
Chris Liddell <chris.liddell@artifex.com>
bc9efbeb2e69cd6d1aac4d14f30ba3b170e6a8f7

Fix a small typo in README.txt

CLUSTER_UNTESTED

README.txt


2012-06-26 15:34:44 +0100
Robin Watts <robin.watts@artifex.com>
526c580e272ee15c488b9fe4845482a30ce05eef

Bug 693064: raise maximum possible GS_CLIENT_COLOR_MAX_COMPONENTS to 32

By default we support a maximum of 14 components. Supposedly this can be
increased by raising GS_CLIENT_COLOR_MAX_COMPONENTS to a larger number
on startup, but this starts to cause problems in various places throughout
the code.

The first such place is in the bpc_to_depth function (found in gdevdevn
and various other places), where the calculation goes wrong for anything
above 31 components at 8 bpc. We fix that here.

This allows us to get to 32 components. To raise it above 32 presents
problems on most architectures as the code assumes elsewhere that we
can use a bitmask to represent which components are present.

We may be able to tweak the code to use a uint64_t instead, in which
case we can probably get to 64 components; is that high enough?

gs/base/gdevdevn.c
gs/base/gdevrinkj.c
gs/base/gdevxcf.c
gs/base/gxclist.c


2012-06-24 11:11:52 -0400
Alex Cherepanov <alex.cherepanov@artifex.com>
49fd8e8156bb5b751ff8a03e86ea61cb9c496a6b

Bug 693142: Fix shape of highlight annotation.

Draw rotated highlight annotation correctly. Fix a bug in calculation
of the centers of the small arcs at the ends of the highlighted area.

gs/Resource/Init/pdf_draw.ps


2012-06-23 23:57:19 +0100
Shailesh Mistry <shailesh.mistry@hotmail.co.uk>
5eff06782ad8c9b09f132add0d5f8a7458e0c7b2

Bug 693050 : Fix error handling in dcbd folder

gs/jbig2dec/jbig2_page.c


2012-06-23 23:00:47 +0100
Shailesh Mistry <shailesh.mistry@hotmail.co.uk>
b93322df872c8ff026127ea54fe86d3d940f1866

Bug 693050 : Fix error handling in 9557 folder

gs/jbig2dec/jbig2_symbol_dict.c


2012-06-23 22:14:43 +0100
Shailesh Mistry <shailesh.mistry@hotmail.co.uk>
ed7a9680adc24f0063455196d817810ff623f32a

Bug 693050 : Fix memory leak in 4faa folder

gs/jbig2dec/jbig2_symbol_dict.c


2012-06-23 21:12:19 +0100
Shailesh Mistry <shailesh.mistry@hotmail.co.uk>
b306b997740d3ad904d8dc6b82ee981b1db52bd2

Bug 693050 : Fix error handling in 2908 folder

gs/jbig2dec/jbig2_halftone.c


2012-06-22 22:25:44 +0100
Shailesh Mistry <shailesh.mistry@hotmail.co.uk>
8c497936e37bdf430b87fd65db3fa6070716fcdf

Bug 693050 : Fix memory leak in 146f folder

gs/jbig2dec/jbig2_mmr.c
gs/jbig2dec/jbig2_symbol_dict.c


2012-06-22 16:56:39 +0100
Shailesh Mistry <shailesh.mistry@hotmail.co.uk>
b73adca0e4e3b9ad4a2e4fd5ba16f845362fa37b

Bug 693050 : Fix minor typos and memory leak in 040d folder

gs/jbig2dec/jbig2_arith.c
gs/jbig2dec/jbig2_image.c
gs/jbig2dec/jbig2_symbol_dict.c
gs/jbig2dec/jbig2_text.c


2012-06-20 18:18:02 +0100
Shailesh Mistry <shailesh.mistry@hotmail.co.uk>
dc77e931b2a6118092bac21b4dd38bc10d41e644

Bug 690723 : Prevent over writing unallocated memory when parsing an image

gs/jbig2dec/jbig2_mmr.c


2012-06-19 11:57:57 +0100
Chris Liddell <chris.liddell@artifex.com>
9eb67bc021dda346896786e0d813245387649ce2

Fix a parallel build problem......

A couple of places that depend upon gconfig.h had their dependency listed as
being gconfxx.h (would be created dynamically by its own target) and would
then copy gconfxx.h to gconfig.h (I have no idea why this extra complication
is there, but.....).

With an unfortunate, but not uncommon confluence of two make instances, both
instances could end up trying to copy gconfxx.h to gconfig.h, thus causing
Unix "cp" (at least) to throw an error, and the build to fail.

Now gconfig.h has its own target (which depends on gconfxx.h), and that
target is where gconfxx.h is copied to gconfig.h, thus allowing make to
correctly track the creation of the file.

No cluster differences.

gs/base/gs.mak
gs/base/lib.mak
gs/psi/int.mak


2012-06-18 16:51:30 +0100
Robin Watts <robin.watts@artifex.com>
7f98970a6c0e641e87eb202dc2087814249d0408

Add 3:2 and 3:4 downscaling to tiffsep/psd/downscaler.

Currently the downscaler can only downscale in integer increments. To
accomodate a potential need to efficiently scale 1200 -> 800 and
600 -> 800 dpi, we introduce new functionality to allow 3:2 and 3:4
scaling modes.

We shoehorn these into the existing scaler system by using DownScaleFactor
settings of 32 and 34 respectively; any other DownScaleFactor > 8 will
give a rangecheck error.

This has required some changes within the downscaler code itself, and
will require more changes in any device that wants to use these. Currently
the cores are only provided in the planar modes; hence tiffsep and psd are
the only devices that have been updated to work with this.

gs/base/gdevpsd.c
gs/base/gdevtifs.c
gs/base/gdevtsep.c
gs/base/gxdownscale.c
gs/base/gxdownscale.h


2012-06-18 13:42:07 +0200
Tor Andersson <tor.andersson@artifex.com>
7cd694d6e98719b77095069007e472334e16dd0e

Check for opacity 0.0 in xps transparency analysis.

Objects with opacity 0.0 are skipped by the parser, so we don't
have to install transparency device for them.

xps/xpsanalyze.c


2012-05-01 12:16:08 +0100
Tor Andersson <tor@ccxvii.net>
32c5d9122cf7ea813755d079f80445e6f2d842f4

Move the has_transparency flag into the xps context.

Patterns to set the uses_transparency flag. The current transparency scan
doesn't resolve resources that have been inherited from a higher level.
Doing this would require rewriting the entire transparency scanning and
involve a lot more parsing. Instead we reuse the results from the
original transparency scan we do at the beginning of the page.

Fix bug 692513.

xps/ghostxps.h
xps/xpspage.c
xps/xpstile.c


2012-06-18 10:01:46 +0100
Chris Liddell <chris.liddell@artifex.com>
0a33ed5b599d73509d0cde7e84e257e89ff1c1fb

Fix comment delineation.

I accidentally used the wrong comment delineator when I updated the copyright.

CLUSTER_UNTESTED

gs/toolbin/pdfinflt.ps


2012-06-15 19:22:52 +0100
Shailesh Mistry <shailesh.mistry@hotmail.co.uk>
64984bdf351dc27e40cbe5af5751dcdfcb448366

Bug 693050 : Fixes CERT reported issues labelled DestAv

gs/jbig2dec/jbig2.c
gs/jbig2dec/jbig2_priv.h
gs/jbig2dec/jbig2_symbol_dict.c
gs/jbig2dec/jbig2_symbol_dict.h


2012-06-15 14:38:15 +0100
Chris Liddell <chris.liddell@artifex.com>
28a37f219de0bbd04bef9026812cbb9ea42a9910

Add a default shared lib extension.

Just a minor tweak so the dynamic library extension is set to *something*
even on unrecognised platforms.

No cluster differences.

gs/base/configure.ac


2012-06-15 14:01:27 +0100
Chris Liddell <chris.liddell@artifex.com>
7c9a1a772cef2339c110238b40c73e8039dca2eb

Revert some copyrights accidentally changed in the recent revamp

Three files which are copyright FSF.

Thanks to zeniko for spotting the mistake.

No cluster differences.

gs/jbig2dec/getopt.c
gs/jbig2dec/getopt.h
gs/jbig2dec/getopt1.c


2012-06-15 13:44:27 +0100
Chris Liddell <chris.liddell@artifex.com>
cd2cb0829b3a8ffe0e8a3bd87c08941663d691f9

Bug 693113: configure set shared lib file extension

Have the configure set the file extension for the shared library. This is
purely to handle Apple's (pointless?) decision to make OS X use ".dylib" as
the shared library extension, rather than the ".so" used by every other
Unix-a-like.

No cluster differences.

gs/base/Makefile.in
gs/base/configure.ac
gs/base/macos-mcp.mak
gs/base/macosx.mak
gs/base/unix-dll.mak
gs/base/unix-gcc.mak


2012-06-15 08:35:50 -0400
Alex Cherepanov <alex.cherepanov@artifex.com>
570984d2074289bb06261112d26bc323725c321e

Bug 693119: Tweak EOL detection after 'stream'

Modify EOL processing after 'stream' operator to accept a new class of
broken PDF files. GS now stops skipping spaces when it finds '\n' or a
non-space character.

gs/Resource/Init/pdf_base.ps


2012-06-14 17:06:16 +0100
Shailesh Mistry <shailesh.mistry@hotmail.co.uk>
8988c41bf227e5f370fba7592bfd18e85330b0c2

Bug 693050 : Fixes CERT reported issues labelled SourceAvNearNull

gs/jbig2dec/jbig2_image.c
gs/jbig2dec/jbig2_symbol_dict.c
gs/jbig2dec/jbig2_text.c


2012-06-14 16:36:11 +0100
Ken Sharp <ken.sharp@artifex.com>
53cc9631a7725b0f6a20d815252c3a23b978d8ee

Update pdf_info.ps to report the UserUnit for a page, if present.

This allows users to correctly calculate media and crop sizes from the
relevant 'Box' arrats.

Not cluster tested

gs/toolbin/pdf_info.ps


2012-06-13 14:24:18 -0600
Henry Stiles <henry.stiles@artifex.com>
d8fd89891d07d4b04cf180c3f5a4ac4388c769ce

Fixes Bug 692991 - XL assembler and dissasembler now work with python 3.

Thanks to Hin-Tak Leung for these changes.

tools/pxlasm.py
tools/pxldis.py


2012-06-13 13:29:35 -0600
Henry Stiles <henry.stiles@artifex.com>
76aad1b9e4eb2ae30d42b995a3ba8998b8e0820f

Bug 690585 - Use the defalt strip copy rop routine when the
destination is not included.

Thanks to Hin-Tak Leung for this fix.

CLUSTER UNTESTED

gs/base/gdevpx.c


2012-06-13 18:40:02 +0100
Chris Liddell <chris.liddell@artifex.com>
c87f2d826726f8b1108d233096fa6fd4a872b020

Fix parameter passed to dict_find_string()

Parameter was a ref *, should have been a ref **.

No cluster differences.

gs/psi/zchar42.c


2012-06-13 18:37:27 +0100
Chris Liddell <chris.liddell@artifex.com>
e786619c57be0c846051ec264eb80b69a9ca42de

Bug 693116: disable lzma compression in libtiff

lzma is not part of base line tiff, but is enabled by default in libtiff, since
we only support base line, disable lzma.

No cluster differences.

configure.ac
gs/base/configure.ac


2012-06-13 13:15:32 +0100
Chris Liddell <chris.liddell@artifex.com>
85be3180530043232160745b04af9d293bd60fad

Squash a warning in commit fae7be45

No cluster differences.

gs/psi/int.mak
gs/psi/zchar42.c


2012-06-13 11:14:12 +0100
Chris Liddell <chris.liddell@artifex.com>
39433fce0a15c5cae831848edd4cefd55019a241

Update copyright "headers".

As agreed on IRC and via e-mail:

Reinstate the reference to the LICENSE file.

Remove copyright references to Aladdin Enterprises and artofcode (some
references remain in comments about historical copyright assignments, and
the like), in favour of Artifex copyright notices.

Update copyright dates.

Remove the $Id$ "tag".

Since the move to git, the $Id$ "tag" comment in each file is redundant.

No cluster differences.

Makefile
autogen.sh
common/cp.bat
common/gccdefs.mak
common/generic.mak
common/msvc_top.mak
common/msvcdefs.mak
common/mv.bat
common/pcdefs.mak
common/rm.bat
common/sgidefs.mak
common/ugcc_top.mak
common/unixdefs.mak
config.mak.in
configure.ac
gs/Resource/CIDFont/ArtifexBullet
gs/Resource/CMap/Identity-UTF16-H
gs/Resource/ColorSpace/DefaultCMYK
gs/Resource/ColorSpace/DefaultGray
gs/Resource/ColorSpace/DefaultRGB
gs/Resource/ColorSpace/TrivialCMYK
gs/Resource/ColorSpace/sGray
gs/Resource/ColorSpace/sRGB
gs/Resource/Decoding/FCO_Dingbats
gs/Resource/Decoding/FCO_Symbol
gs/Resource/Decoding/FCO_Unicode
gs/Resource/Decoding/FCO_Wingdings
gs/Resource/Decoding/Latin1
gs/Resource/Decoding/StandardEncoding
gs/Resource/Decoding/Unicode
gs/Resource/Encoding/Wingdings
gs/Resource/Init/FCOfontmap-PCLPS2
gs/Resource/Init/Fontmap.GS
gs/Resource/Init/cidfmap
gs/Resource/Init/gs_agl.ps
gs/Resource/Init/gs_btokn.ps
gs/Resource/Init/gs_cet.ps
gs/Resource/Init/gs_cff.ps
gs/Resource/Init/gs_cidcm.ps
gs/Resource/Init/gs_ciddc.ps
gs/Resource/Init/gs_cidfm.ps
gs/Resource/Init/gs_cidfn.ps
gs/Resource/Init/gs_cidtt.ps
gs/Resource/Init/gs_cmap.ps
gs/Resource/Init/gs_cspace.ps
gs/Resource/Init/gs_css_e.ps
gs/Resource/Init/gs_dbt_e.ps
gs/Resource/Init/gs_diskf.ps
gs/Resource/Init/gs_diskn.ps
gs/Resource/Init/gs_dpnxt.ps
gs/Resource/Init/gs_dps.ps
gs/Resource/Init/gs_dps1.ps
gs/Resource/Init/gs_dps2.ps
gs/Resource/Init/gs_dscp.ps
gs/Resource/Init/gs_epsf.ps
gs/Resource/Init/gs_fapi.ps
gs/Resource/Init/gs_fntem.ps
gs/Resource/Init/gs_fonts.ps
gs/Resource/Init/gs_frsd.ps
gs/Resource/Init/gs_icc.ps
gs/Resource/Init/gs_il1_e.ps
gs/Resource/Init/gs_img.ps
gs/Resource/Init/gs_init.ps
gs/Resource/Init/gs_l2img.ps
gs/Resource/Init/gs_lev2.ps
gs/Resource/Init/gs_ll3.ps
gs/Resource/Init/gs_mex_e.ps
gs/Resource/Init/gs_mgl_e.ps
gs/Resource/Init/gs_mro_e.ps
gs/Resource/Init/gs_pdf_e.ps
gs/Resource/Init/gs_pdfwr.ps
gs/Resource/Init/gs_res.ps
gs/Resource/Init/gs_resmp.ps
gs/Resource/Init/gs_setpd.ps
gs/Resource/Init/gs_statd.ps
gs/Resource/Init/gs_std_e.ps
gs/Resource/Init/gs_sym_e.ps
gs/Resource/Init/gs_trap.ps
gs/Resource/Init/gs_ttf.ps
gs/Resource/Init/gs_typ32.ps
gs/Resource/Init/gs_typ42.ps
gs/Resource/Init/gs_type1.ps
gs/Resource/Init/gs_wan_e.ps
gs/Resource/Init/pdf_base.ps
gs/Resource/Init/pdf_cslayer.ps
gs/Resource/Init/pdf_draw.ps
gs/Resource/Init/pdf_font.ps
gs/Resource/Init/pdf_main.ps
gs/Resource/Init/pdf_ops.ps
gs/Resource/Init/pdf_rbld.ps
gs/Resource/Init/pdf_sec.ps
gs/Resource/Init/xlatmap
gs/Resource/SubstCID/CNS1-WMode
gs/Resource/SubstCID/GB1-WMode
gs/Resource/SubstCID/Japan1-WMode
gs/Resource/SubstCID/Korea1-WMode
gs/arch/windows-x64-msvc.h
gs/arch/windows-x86-msvc.h
gs/autogen.sh
gs/base/ConvertUTF.c
gs/base/ConvertUTF.h
gs/base/Makefile.in
gs/base/aes.c
gs/base/aes.h
gs/base/all-arch.mak
gs/base/assert_.h
gs/base/bench.c
gs/base/catmake
gs/base/configure.ac
gs/base/contrib.mak
gs/base/cp.bat
gs/base/cp.cmd
gs/base/ctype_.h
gs/base/devs.mak
gs/base/dirent_.h
gs/base/dos_.h
gs/base/echogs.c
gs/base/errno_.h
gs/base/expat.mak
gs/base/fcntl_.h
gs/base/freetype.mak
gs/base/gconf.c
gs/base/gconf.h
gs/base/gdbflags.h
gs/base/gdebug.h
gs/base/gdev3852.c
gs/base/gdev3b1.c
gs/base/gdev4081.c
gs/base/gdev4693.c
gs/base/gdev8510.c
gs/base/gdev8bcm.c
gs/base/gdev8bcm.h
gs/base/gdevabuf.c
gs/base/gdevadmp.c
gs/base/gdevagl.c
gs/base/gdevagl.h
gs/base/gdevatx.c
gs/base/gdevbbox.c
gs/base/gdevbbox.h
gs/base/gdevbit.c
gs/base/gdevbj10.c
gs/base/gdevbjc.h
gs/base/gdevbjcl.c
gs/base/gdevbjcl.h
gs/base/gdevbmp.c
gs/base/gdevbmp.h
gs/base/gdevbmpa.c
gs/base/gdevbmpc.c
gs/base/gdevccr.c
gs/base/gdevcdj.c
gs/base/gdevcfax.c
gs/base/gdevcif.c
gs/base/gdevclj.c
gs/base/gdevcljc.c
gs/base/gdevcp50.c
gs/base/gdevcslw.c
gs/base/gdevdbit.c
gs/base/gdevdcrd.c
gs/base/gdevdcrd.h
gs/base/gdevddrw.c
gs/base/gdevddrw.h
gs/base/gdevdevn.c
gs/base/gdevdevn.h
gs/base/gdevdfax.c
gs/base/gdevdflt.c
gs/base/gdevdgbr.c
gs/base/gdevdjet.c
gs/base/gdevdjtc.c
gs/base/gdevdljm.c
gs/base/gdevdljm.h
gs/base/gdevdm24.c
gs/base/gdevdrop.c
gs/base/gdevdsha.c
gs/base/gdevdsp.c
gs/base/gdevdsp.h
gs/base/gdevdsp2.h
gs/base/gdevemap.c
gs/base/gdevepsc.c
gs/base/gdevepsn.c
gs/base/gdevescp.c
gs/base/gdevevga.c
gs/base/gdevfax.c
gs/base/gdevfax.h
gs/base/gdevherc.c
gs/base/gdevhit.c
gs/base/gdevhl7x.c
gs/base/gdevicov.c
gs/base/gdevifno.c
gs/base/gdevijs.c
gs/base/gdevimgn.c
gs/base/gdevjbig2.c
gs/base/gdevjpeg.c
gs/base/gdevjpx.c
gs/base/gdevl256.c
gs/base/gdevl31s.c
gs/base/gdevlbp8.c
gs/base/gdevlj56.c
gs/base/gdevlp8k.c
gs/base/gdevlxm.c
gs/base/gdevm1.c
gs/base/gdevm16.c
gs/base/gdevm2.c
gs/base/gdevm24.c
gs/base/gdevm32.c
gs/base/gdevm4.c
gs/base/gdevm40.c
gs/base/gdevm48.c
gs/base/gdevm56.c
gs/base/gdevm64.c
gs/base/gdevm8.c
gs/base/gdevmac.c
gs/base/gdevmac.h
gs/base/gdevmacpictop.h
gs/base/gdevmacttf.h
gs/base/gdevmeds.c
gs/base/gdevmeds.h
gs/base/gdevmem.c
gs/base/gdevmem.h
gs/base/gdevmgr.c
gs/base/gdevmgr.h
gs/base/gdevmiff.c
gs/base/gdevmpla.c
gs/base/gdevmpla.h
gs/base/gdevmr1.c
gs/base/gdevmr2n.c
gs/base/gdevmr8n.c
gs/base/gdevmrop.h
gs/base/gdevmrun.c
gs/base/gdevmrun.h
gs/base/gdevmswn.c
gs/base/gdevmswn.h
gs/base/gdevmsxf.c
gs/base/gdevmx.c
gs/base/gdevn533.c
gs/base/gdevnfwd.c
gs/base/gdevo182.c
gs/base/gdevokii.c
gs/base/gdevos2p.c
gs/base/gdevp14.c
gs/base/gdevp14.h
gs/base/gdevp2up.c
gs/base/gdevpbm.c
gs/base/gdevpccm.c
gs/base/gdevpccm.h
gs/base/gdevpcfb.c
gs/base/gdevpcfb.h
gs/base/gdevpcl.c
gs/base/gdevpcl.h
gs/base/gdevpcx.c
gs/base/gdevpdf.c
gs/base/gdevpdfb.c
gs/base/gdevpdfb.h
gs/base/gdevpdfc.c
gs/base/gdevpdfc.h
gs/base/gdevpdfd.c
gs/base/gdevpdfe.c
gs/base/gdevpdfg.c
gs/base/gdevpdfg.h
gs/base/gdevpdfi.c
gs/base/gdevpdfj.c
gs/base/gdevpdfk.c
gs/base/gdevpdfm.c
gs/base/gdevpdfo.c
gs/base/gdevpdfo.h
gs/base/gdevpdfp.c
gs/base/gdevpdfr.c
gs/base/gdevpdft.c
gs/base/gdevpdfu.c
gs/base/gdevpdfv.c
gs/base/gdevpdfx.h
gs/base/gdevpdt.c
gs/base/gdevpdt.h
gs/base/gdevpdtb.c
gs/base/gdevpdtb.h
gs/base/gdevpdtc.c
gs/base/gdevpdtd.c
gs/base/gdevpdtd.h
gs/base/gdevpdte.c
gs/base/gdevpdtf.c
gs/base/gdevpdtf.h
gs/base/gdevpdti.c
gs/base/gdevpdti.h
gs/base/gdevpdts.c
gs/base/gdevpdts.h
gs/base/gdevpdtt.c
gs/base/gdevpdtt.h
gs/base/gdevpdtv.c
gs/base/gdevpdtv.h
gs/base/gdevpdtw.c
gs/base/gdevpdtw.h
gs/base/gdevpdtx.h
gs/base/gdevpe.c
gs/base/gdevperm.c
gs/base/gdevphex.c
gs/base/gdevpipe.c
gs/base/gdevpjet.c
gs/base/gdevplan.c
gs/base/gdevplib.c
gs/base/gdevplib.h
gs/base/gdevplnx.c
gs/base/gdevplnx.h
gs/base/gdevpm.h
gs/base/gdevpng.c
gs/base/gdevppla.c
gs/base/gdevppla.h
gs/base/gdevprn.c
gs/base/gdevprn.h
gs/base/gdevprna.c
gs/base/gdevprna.h
gs/base/gdevps.c
gs/base/gdevpsd.c
gs/base/gdevpsdf.h
gs/base/gdevpsdi.c
gs/base/gdevpsdp.c
gs/base/gdevpsds.c
gs/base/gdevpsds.h
gs/base/gdevpsdu.c
gs/base/gdevpsf.h
gs/base/gdevpsf1.c
gs/base/gdevpsf2.c
gs/base/gdevpsfm.c
gs/base/gdevpsft.c
gs/base/gdevpsfu.c
gs/base/gdevpsfx.c
gs/base/gdevpsim.c
gs/base/gdevpsu.c
gs/base/gdevpsu.h
gs/base/gdevpx.c
gs/base/gdevpxat.h
gs/base/gdevpxen.h
gs/base/gdevpxop.h
gs/base/gdevpxut.c
gs/base/gdevpxut.h
gs/base/gdevrinkj.c
gs/base/gdevrops.c
gs/base/gdevs3ga.c
gs/base/gdevsco.c
gs/base/gdevsgi.c
gs/base/gdevsgi.h
gs/base/gdevsj48.c
gs/base/gdevsnfb.c
gs/base/gdevsppr.c
gs/base/gdevstc.c
gs/base/gdevstc.h
gs/base/gdevstc1.c
gs/base/gdevstc2.c
gs/base/gdevstc3.c
gs/base/gdevstc4.c
gs/base/gdevsun.c
gs/base/gdevsunr.c
gs/base/gdevsvg.c
gs/base/gdevsvga.c
gs/base/gdevsvga.h
gs/base/gdevtfax.c
gs/base/gdevtfax.h
gs/base/gdevtfnx.c
gs/base/gdevtifs.c
gs/base/gdevtifs.h
gs/base/gdevtknk.c
gs/base/gdevtrac.c
gs/base/gdevtsep.c
gs/base/gdevtxtw.c
gs/base/gdevupd.c
gs/base/gdevvec.c
gs/base/gdevvec.h
gs/base/gdevvglb.c
gs/base/gdevwddb.c
gs/base/gdevwdib.c
gs/base/gdevwpr2.c
gs/base/gdevwprn.c
gs/base/gdevx.c
gs/base/gdevx.h
gs/base/gdevxalt.c
gs/base/gdevxcf.c
gs/base/gdevxcmp.c
gs/base/gdevxcmp.h
gs/base/gdevxini.c
gs/base/gdevxres.c
gs/base/genarch.c
gs/base/genconf.c
gs/base/gendev.c
gs/base/genht.c
gs/base/gp.h
gs/base/gp_dosfe.c
gs/base/gp_dosfs.c
gs/base/gp_dvx.c
gs/base/gp_getnv.c
gs/base/gp_mac.c
gs/base/gp_mac.h
gs/base/gp_macio.c
gs/base/gp_macpoll.c
gs/base/gp_mktmp.c
gs/base/gp_msdll.c
gs/base/gp_msdos.c
gs/base/gp_mshdl.c
gs/base/gp_mslib.c
gs/base/gp_mspol.c
gs/base/gp_msprn.c
gs/base/gp_mswin.c
gs/base/gp_mswin.h
gs/base/gp_nsync.c
gs/base/gp_ntfs.c
gs/base/gp_os2.c
gs/base/gp_os2.h
gs/base/gp_os2fs.c
gs/base/gp_os2pr.c
gs/base/gp_os9.c
gs/base/gp_paper.c
gs/base/gp_psync.c
gs/base/gp_stdia.c
gs/base/gp_stdin.c
gs/base/gp_strdl.c
gs/base/gp_sysv.c
gs/base/gp_unifn.c
gs/base/gp_unifs.c
gs/base/gp_unix.c
gs/base/gp_unix_cache.c
gs/base/gp_upapr.c
gs/base/gp_vms.c
gs/base/gp_wgetv.c
gs/base/gp_win32.c
gs/base/gp_wpapr.c
gs/base/gp_wsync.c
gs/base/gp_wutf8.c
gs/base/gpcheck.h
gs/base/gpgetenv.h
gs/base/gpmisc.c
gs/base/gpmisc.h
gs/base/gpsync.h
gs/base/gs.mak
gs/base/gs_dll_call.h
gs/base/gs_mgl_e.h
gs/base/gs_mro_e.h
gs/base/gsalloc.c
gs/base/gsalloc.h
gs/base/gsalpha.c
gs/base/gsalpha.h
gs/base/gsalphac.c
gs/base/gsalphac.h
gs/base/gsargs.c
gs/base/gsargs.h
gs/base/gsbitcom.c
gs/base/gsbitmap.h
gs/base/gsbitops.c
gs/base/gsbitops.h
gs/base/gsbittab.c
gs/base/gsbittab.h
gs/base/gsccode.h
gs/base/gsccolor.h
gs/base/gscdef.c
gs/base/gscdefs.h
gs/base/gscdevn.c
gs/base/gscdevn.h
gs/base/gscedata.c
gs/base/gscedata.h
gs/base/gscencs.c
gs/base/gscencs.h
gs/base/gschar.c
gs/base/gschar.h
gs/base/gschar0.c
gs/base/gscicach.c
gs/base/gscicach.h
gs/base/gscie.c
gs/base/gscie.h
gs/base/gsciemap.c
gs/base/gscindex.h
gs/base/gsclipsr.c
gs/base/gsclipsr.h
gs/base/gscms.h
gs/base/gscolor.c
gs/base/gscolor.h
gs/base/gscolor1.c
gs/base/gscolor1.h
gs/base/gscolor2.c
gs/base/gscolor2.h
gs/base/gscolor3.c
gs/base/gscolor3.h
gs/base/gscolorbuffer.c
gs/base/gscolorbuffer.h
gs/base/gscompt.h
gs/base/gscoord.c
gs/base/gscoord.h
gs/base/gscparam.c
gs/base/gscpixel.c
gs/base/gscpixel.h
gs/base/gscpm.h
gs/base/gscrd.c
gs/base/gscrd.h
gs/base/gscrdp.c
gs/base/gscrdp.h
gs/base/gscrypt1.c
gs/base/gscrypt1.h
gs/base/gscscie.c
gs/base/gscsel.h
gs/base/gscsepr.c
gs/base/gscsepr.h
gs/base/gscspace.c
gs/base/gscspace.h
gs/base/gscssub.c
gs/base/gscssub.h
gs/base/gsdcolor.h
gs/base/gsdevice.c
gs/base/gsdevice.h
gs/base/gsdevmem.c
gs/base/gsdfilt.c
gs/base/gsdfilt.h
gs/base/gsdll.h
gs/base/gsdllwin.h
gs/base/gsdparam.c
gs/base/gsdpnext.h
gs/base/gsdps.c
gs/base/gsdps.h
gs/base/gsdps1.c
gs/base/gsdsrc.c
gs/base/gsdsrc.h
gs/base/gsequivc.c
gs/base/gsequivc.h
gs/base/gserrors.h
gs/base/gsexit.h
gs/base/gsfcid.c
gs/base/gsfcid2.c
gs/base/gsfcmap.c
gs/base/gsfcmap.h
gs/base/gsfcmap1.c
gs/base/gsflip.c
gs/base/gsflip.h
gs/base/gsfname.c
gs/base/gsfname.h
gs/base/gsfont.c
gs/base/gsfont.h
gs/base/gsfont0.c
gs/base/gsfont0c.c
gs/base/gsfunc.c
gs/base/gsfunc.h
gs/base/gsfunc0.c
gs/base/gsfunc0.h
gs/base/gsfunc3.c
gs/base/gsfunc3.h
gs/base/gsfunc4.c
gs/base/gsfunc4.h
gs/base/gsgc.h
gs/base/gsgcache.c
gs/base/gsgcache.h
gs/base/gsgdata.c
gs/base/gsgdata.h
gs/base/gshsb.c
gs/base/gshsb.h
gs/base/gsht.c
gs/base/gsht.h
gs/base/gsht1.c
gs/base/gsht1.h
gs/base/gshtscr.c
gs/base/gshtx.c
gs/base/gshtx.h
gs/base/gsicc.c
gs/base/gsicc.h
gs/base/gsicc_cache.c
gs/base/gsicc_cache.h
gs/base/gsicc_cms.h
gs/base/gsicc_create.c
gs/base/gsicc_create.h
gs/base/gsicc_lcms.c
gs/base/gsicc_lcms2.c
gs/base/gsicc_manage.c
gs/base/gsicc_manage.h
gs/base/gsicc_nocm.c
gs/base/gsicc_profilecache.c
gs/base/gsicc_profilecache.h
gs/base/gsimage.c
gs/base/gsimage.h
gs/base/gsimpath.c
gs/base/gsinit.c
gs/base/gsio.h
gs/base/gsiodev.c
gs/base/gsiodevs.c
gs/base/gsiodisk.c
gs/base/gsiomacres.c
gs/base/gsiorom.c
gs/base/gsiorom.h
gs/base/gsipar3x.h
gs/base/gsiparam.h
gs/base/gsiparm2.h
gs/base/gsiparm3.h
gs/base/gsiparm4.h
gs/base/gsistate.c
gs/base/gsjconf.h
gs/base/gsjmorec.h
gs/base/gslib.c
gs/base/gslib.h
gs/base/gslibctx.c
gs/base/gslibctx.h
gs/base/gsline.c
gs/base/gsline.h
gs/base/gslparam.h
gs/base/gsmalloc.c
gs/base/gsmalloc.h
gs/base/gsmatrix.c
gs/base/gsmatrix.h
gs/base/gsmchunk.c
gs/base/gsmchunk.h
gs/base/gsmdebug.h
gs/base/gsmemlok.c
gs/base/gsmemlok.h
gs/base/gsmemory.c
gs/base/gsmemory.h
gs/base/gsmemraw.h
gs/base/gsmemret.c
gs/base/gsmemret.h
gs/base/gsmisc.c
gs/base/gsnamecl.c
gs/base/gsnamecl.h
gs/base/gsncdummy.c
gs/base/gsncdummy.h
gs/base/gsnogc.c
gs/base/gsnogc.h
gs/base/gsnotify.c
gs/base/gsnotify.h
gs/base/gsovrc.c
gs/base/gsovrc.h
gs/base/gspaint.c
gs/base/gspaint.h
gs/base/gsparam.c
gs/base/gsparam.h
gs/base/gsparam2.c
gs/base/gsparams.c
gs/base/gsparams.h
gs/base/gsparamx.c
gs/base/gsparamx.h
gs/base/gspath.c
gs/base/gspath.h
gs/base/gspath1.c
gs/base/gspath2.h
gs/base/gspcolor.c
gs/base/gspcolor.h
gs/base/gspenum.h
gs/base/gspmdrv.c
gs/base/gspmdrv.h
gs/base/gspmdrv.rc
gs/base/gsptype1.c
gs/base/gsptype1.h
gs/base/gsptype2.c
gs/base/gsptype2.h
gs/base/gsrect.h
gs/base/gsrefct.h
gs/base/gsromfs0.c
gs/base/gsrop.c
gs/base/gsrop.h
gs/base/gsroprun.c
gs/base/gsroprun1.h
gs/base/gsroprun24.h
gs/base/gsroprun8.h
gs/base/gsropt.h
gs/base/gsroptab.c
gs/base/gsserial.c
gs/base/gsserial.h
gs/base/gsshade.c
gs/base/gsshade.h
gs/base/gsstate.c
gs/base/gsstate.h
gs/base/gsstruct.h
gs/base/gsstype.h
gs/base/gstext.c
gs/base/gstext.h
gs/base/gstparam.h
gs/base/gstrans.c
gs/base/gstrans.h
gs/base/gstrap.c
gs/base/gstrap.h
gs/base/gstype1.c
gs/base/gstype1.h
gs/base/gstype2.c
gs/base/gstype42.c
gs/base/gstypes.h
gs/base/gsuid.h
gs/base/gsutil.c
gs/base/gsutil.h
gs/base/gswin.rc
gs/base/gsxfont.h
gs/base/gx.h
gs/base/gxacpath.c
gs/base/gxalloc.h
gs/base/gxalpha.h
gs/base/gxarith.h
gs/base/gxband.h
gs/base/gxbcache.c
gs/base/gxbcache.h
gs/base/gxbitfmt.h
gs/base/gxbitmap.h
gs/base/gxbitops.h
gs/base/gxblend.c
gs/base/gxblend.h
gs/base/gxblend1.c
gs/base/gxccache.c
gs/base/gxccman.c
gs/base/gxcdevn.h
gs/base/gxchar.c
gs/base/gxchar.h
gs/base/gxchrout.c
gs/base/gxchrout.h
gs/base/gxcht.c
gs/base/gxcid.h
gs/base/gxcie.h
gs/base/gxcindex.h
gs/base/gxclbits.c
gs/base/gxcldev.h
gs/base/gxclfile.c
gs/base/gxclimag.c
gs/base/gxclio.h
gs/base/gxclip.c
gs/base/gxclip.h
gs/base/gxclip2.c
gs/base/gxclip2.h
gs/base/gxclipm.c
gs/base/gxclipm.h
gs/base/gxclipsr.h
gs/base/gxclist.c
gs/base/gxclist.h
gs/base/gxcllzw.c
gs/base/gxclmem.c
gs/base/gxclmem.h
gs/base/gxclpage.c
gs/base/gxclpage.h
gs/base/gxclpath.c
gs/base/gxclpath.h
gs/base/gxclrast.c
gs/base/gxclread.c
gs/base/gxclrect.c
gs/base/gxclthrd.c
gs/base/gxclthrd.h
gs/base/gxclutil.c
gs/base/gxclzlib.c
gs/base/gxcmap.c
gs/base/gxcmap.h
gs/base/gxcolor2.h
gs/base/gxcomp.h
gs/base/gxcoord.h
gs/base/gxcpath.c
gs/base/gxcpath.h
gs/base/gxcspace.h
gs/base/gxctable.c
gs/base/gxctable.h
gs/base/gxcvalue.h
gs/base/gxdcconv.c
gs/base/gxdcconv.h
gs/base/gxdcolor.c
gs/base/gxdcolor.h
gs/base/gxdda.h
gs/base/gxdevbuf.h
gs/base/gxdevcli.h
gs/base/gxdevice.h
gs/base/gxdevmem.h
gs/base/gxdevndi.c
gs/base/gxdevndi.h
gs/base/gxdevrop.h
gs/base/gxdevsop.h
gs/base/gxdht.h
gs/base/gxdhtres.h
gs/base/gxdhtserial.c
gs/base/gxdhtserial.h
gs/base/gxdither.h
gs/base/gxdownscale.c
gs/base/gxdownscale.h
gs/base/gxdtfill.h
gs/base/gxfapiu.c
gs/base/gxfapiu.h
gs/base/gxfarith.h
gs/base/gxfcache.h
gs/base/gxfcid.h
gs/base/gxfcmap.h
gs/base/gxfcmap1.h
gs/base/gxfcopy.c
gs/base/gxfcopy.h
gs/base/gxfdrop.c
gs/base/gxfdrop.h
gs/base/gxfill.c
gs/base/gxfill.h
gs/base/gxfillsl.h
gs/base/gxfilltr.h
gs/base/gxfillts.h
gs/base/gxfixed.h
gs/base/gxfmap.h
gs/base/gxfont.h
gs/base/gxfont0.h
gs/base/gxfont0c.h
gs/base/gxfont1.h
gs/base/gxfont42.h
gs/base/gxfrac.h
gs/base/gxftype.h
gs/base/gxfunc.h
gs/base/gxgetbit.h
gs/base/gxhintn.c
gs/base/gxhintn.h
gs/base/gxhintn1.c
gs/base/gxhldevc.c
gs/base/gxhldevc.h
gs/base/gxht.c
gs/base/gxht.h
gs/base/gxht_thresh.c
gs/base/gxht_thresh.h
gs/base/gxhtbit.c
gs/base/gxhttile.h
gs/base/gxhttype.h
gs/base/gxi12bit.c
gs/base/gxi16bit.c
gs/base/gxiclass.h
gs/base/gxicolor.c
gs/base/gxidata.c
gs/base/gxifast.c
gs/base/gximag3x.c
gs/base/gximag3x.h
gs/base/gximage.c
gs/base/gximage.h
gs/base/gximage1.c
gs/base/gximage2.c
gs/base/gximage3.c
gs/base/gximage3.h
gs/base/gximage4.c
gs/base/gximask.c
gs/base/gximask.h
gs/base/gximono.c
gs/base/gxino12b.c
gs/base/gxino16b.c
gs/base/gxiodev.h
gs/base/gxiparam.h
gs/base/gxipixel.c
gs/base/gxiscale.c
gs/base/gxistate.h
gs/base/gxline.h
gs/base/gxlum.h
gs/base/gxmatrix.h
gs/base/gxmclip.c
gs/base/gxmclip.h
gs/base/gxobj.h
gs/base/gxoprect.c
gs/base/gxoprect.h
gs/base/gxp1fill.c
gs/base/gxp1impl.h
gs/base/gxpageq.c
gs/base/gxpageq.h
gs/base/gxpaint.c
gs/base/gxpaint.h
gs/base/gxpath.c
gs/base/gxpath.h
gs/base/gxpath2.c
gs/base/gxpcache.h
gs/base/gxpcmap.c
gs/base/gxpcolor.h
gs/base/gxpcopy.c
gs/base/gxpdash.c
gs/base/gxpflat.c
gs/base/gxrplane.h
gs/base/gxsample.c
gs/base/gxsample.h
gs/base/gxsamplp.h
gs/base/gxshade.c
gs/base/gxshade.h
gs/base/gxshade1.c
gs/base/gxshade4.c
gs/base/gxshade4.h
gs/base/gxshade6.c
gs/base/gxstate.h
gs/base/gxstdio.h
gs/base/gxstroke.c
gs/base/gxsync.c
gs/base/gxsync.h
gs/base/gxtext.h
gs/base/gxtmap.h
gs/base/gxttf.h
gs/base/gxttfb.c
gs/base/gxttfb.h
gs/base/gxtype1.c
gs/base/gxtype1.h
gs/base/gxxfont.h
gs/base/gzacpath.h
gs/base/gzcpath.h
gs/base/gzht.h
gs/base/gzline.h
gs/base/gzpath.h
gs/base/gzspotan.c
gs/base/gzspotan.h
gs/base/gzstate.h
gs/base/icclib.mak
gs/base/ijs.mak
gs/base/instcopy
gs/base/jasper.mak
gs/base/jbig2.mak
gs/base/jerror_.h
gs/base/jpeg.mak
gs/base/jpegxr.mak
gs/base/lcms.mak
gs/base/lcms2.mak
gs/base/lcups.mak
gs/base/lcupsi.mak
gs/base/ldf_jb2.mak
gs/base/lib.mak
gs/base/locale_.h
gs/base/lwf_jp2.mak
gs/base/macgenmcpxml.sh
gs/base/macos-fw.mak
gs/base/macos-mcp.mak
gs/base/macos_carbon_d_pre.h
gs/base/macos_carbon_pre.h
gs/base/macos_classic_d_pre.h
gs/base/macosx.mak
gs/base/macsystypes.h
gs/base/malloc_.h
gs/base/math_.h
gs/base/md5.c
gs/base/md5.h
gs/base/md5main.c
gs/base/memento.c
gs/base/memento.h
gs/base/memory_.h
gs/base/minftrsz.c
gs/base/minftrsz.h
gs/base/mkromfs.c
gs/base/msvccmd.mak
gs/base/msvclib.mak
gs/base/msvctail.mak
gs/base/mv.bat
gs/base/mv.cmd
gs/base/opdfread.h
gs/base/openjpeg.mak
gs/base/openvms.mak
gs/base/openvms.mmk
gs/base/pcwin.mak
gs/base/pipe_.h
gs/base/png.mak
gs/base/png_.h
gs/base/rinkj/evenbetter-rll.c
gs/base/rinkj/evenbetter-rll.h
gs/base/rinkj/rinkj-byte-stream.c
gs/base/rinkj/rinkj-byte-stream.h
gs/base/rinkj/rinkj-config.c
gs/base/rinkj/rinkj-config.h
gs/base/rinkj/rinkj-device.c
gs/base/rinkj/rinkj-device.h
gs/base/rinkj/rinkj-dither.c
gs/base/rinkj/rinkj-dither.h
gs/base/rinkj/rinkj-epson870.c
gs/base/rinkj/rinkj-epson870.h
gs/base/rinkj/rinkj-screen-eb.c
gs/base/rinkj/rinkj-screen-eb.h
gs/base/rm.bat
gs/base/rm.cmd
gs/base/sa85d.c
gs/base/sa85d.h
gs/base/sa85x.h
gs/base/saes.c
gs/base/saes.h
gs/base/sarc4.c
gs/base/sarc4.h
gs/base/sbcp.c
gs/base/sbcp.h
gs/base/sbhc.c
gs/base/sbhc.h
gs/base/sbtx.h
gs/base/sbwbs.c
gs/base/sbwbs.h
gs/base/scanchar.h
gs/base/scantab.c
gs/base/scf.h
gs/base/scfd.c
gs/base/scfdgen.c
gs/base/scfdtab.c
gs/base/scfe.c
gs/base/scfetab.c
gs/base/scfparam.c
gs/base/scfx.h
gs/base/scommon.h
gs/base/sdcparam.c
gs/base/sdcparam.h
gs/base/sdct.h
gs/base/sdctc.c
gs/base/sdctd.c
gs/base/sdcte.c
gs/base/sddparam.c
gs/base/sdeparam.c
gs/base/seexec.c
gs/base/setjmp_.h
gs/base/sfilter.h
gs/base/sfilter2.c
gs/base/sfxboth.c
gs/base/sfxcommon.c
gs/base/sfxfd.c
gs/base/sfxstdio.c
gs/base/shc.c
gs/base/shc.h
gs/base/shcgen.c
gs/base/shcgen.h
gs/base/sidscale.c
gs/base/sidscale.h
gs/base/siinterp.c
gs/base/siinterp.h
gs/base/simscale.c
gs/base/simscale.h
gs/base/siscale.c
gs/base/siscale.h
gs/base/sisparam.h
gs/base/sjbig2.c
gs/base/sjbig2.h
gs/base/sjbig2_luratech.c
gs/base/sjbig2_luratech.h
gs/base/sjpeg.h
gs/base/sjpegc.c
gs/base/sjpegd.c
gs/base/sjpege.c
gs/base/sjpx.c
gs/base/sjpx.h
gs/base/sjpx_luratech.c
gs/base/sjpx_luratech.h
gs/base/sjpx_openjpeg.c
gs/base/sjpx_openjpeg.h
gs/base/slzwc.c
gs/base/slzwd.c
gs/base/slzwe.c
gs/base/slzwx.h
gs/base/smd5.c
gs/base/smd5.h
gs/base/smtf.c
gs/base/smtf.h
gs/base/spdiff.c
gs/base/spdiffx.h
gs/base/spngp.c
gs/base/spngpx.h
gs/base/spprint.c
gs/base/spprint.h
gs/base/spsdf.c
gs/base/spsdf.h
gs/base/srdline.h
gs/base/srld.c
gs/base/srle.c
gs/base/srlx.h
gs/base/ssha2.c
gs/base/ssha2.h
gs/base/sstring.c
gs/base/sstring.h
gs/base/stat_.h
gs/base/std.h
gs/base/stdint_.h
gs/base/stdio_.h
gs/base/stdpn.h
gs/base/stdpre.h
gs/base/stream.c
gs/base/stream.h
gs/base/strimpl.h
gs/base/string_.h
gs/base/strmio.c
gs/base/strmio.h
gs/base/szlibc.c
gs/base/szlibd.c
gs/base/szlibe.c
gs/base/szlibx.h
gs/base/szlibxx.h
gs/base/tiff.mak
gs/base/time_.h
gs/base/ttcalc.c
gs/base/ttcalc.h
gs/base/ttcommon.h
gs/base/ttconf.h
gs/base/ttconfig.h
gs/base/ttfinp.c
gs/base/ttfinp.h
gs/base/ttfmain.c
gs/base/ttfmemd.c
gs/base/ttfmemd.h
gs/base/ttfoutl.h
gs/base/ttfsfnt.h
gs/base/ttinterp.c
gs/base/ttinterp.h
gs/base/ttload.c
gs/base/ttload.h
gs/base/ttmisc.h
gs/base/ttobjs.c
gs/base/ttobjs.h
gs/base/tttables.h
gs/base/tttype.h
gs/base/tttypes.h
gs/base/ugcclib.mak
gs/base/unistd_.h
gs/base/unix-aux.mak
gs/base/unix-dll.mak
gs/base/unix-end.mak
gs/base/unix-gcc.mak
gs/base/unixansi.mak
gs/base/unixhead.mak
gs/base/unixinst.mak
gs/base/unixlink.mak
gs/base/valgrind.h
gs/base/vdtrace.c
gs/base/vdtrace.h
gs/base/version.mak
gs/base/vms_x_fix.h
gs/base/vmsmath.h
gs/base/whitelst.c
gs/base/whitelst.h
gs/base/windows_.h
gs/base/winlib.mak
gs/base/winplat.mak
gs/base/x_.h
gs/base/zlib.mak
gs/cups/colord.c
gs/cups/colord.h
gs/cups/cups.mak
gs/cups/gdevcups.c
gs/cups/gstopxl.in
gs/cups/gstoraster.c
gs/cups/pxlcolor.ppd
gs/cups/pxlmono.ppd
gs/doc/API.htm
gs/doc/C-style.htm
gs/doc/Changes.htm
gs/doc/Commprod.htm
gs/doc/DLL.htm
gs/doc/Deprecated.htm
gs/doc/Details.htm
gs/doc/Details8.htm
gs/doc/Details9.htm
gs/doc/Develop.htm
gs/doc/Devices.htm
gs/doc/Drivers.htm
gs/doc/Fonts.htm
gs/doc/Helpers.htm
gs/doc/Hershey.htm
gs/doc/History1.htm
gs/doc/History2.htm
gs/doc/History3.htm
gs/doc/History4.htm
gs/doc/History5.htm
gs/doc/History6.htm
gs/doc/History7.htm
gs/doc/History8.htm
gs/doc/History9.htm
gs/doc/Install.htm
gs/doc/Issues.htm
gs/doc/Language.htm
gs/doc/Lib.htm
gs/doc/Make.htm
gs/doc/News.htm
gs/doc/Projects.htm
gs/doc/Ps-style.htm
gs/doc/Ps2epsi.htm
gs/doc/Ps2pdf.htm
gs/doc/Ps2ps2.htm
gs/doc/Psfiles.htm
gs/doc/Readme.htm
gs/doc/Release.htm
gs/doc/Source.htm
gs/doc/Unix-lpr.htm
gs/doc/Use.htm
gs/doc/WhatIsGS.htm
gs/doc/Xfonts.htm
gs/doc/gs-vms.hlp
gs/doc/gs.css
gs/doc/index.html
gs/doc/pscet_status.txt
gs/doc/thirdparty.htm
gs/examples/waterfal.ps
gs/freetype/src/gzip/adler32.c
gs/freetype/src/gzip/zconf.h
gs/freetype/src/gzip/zutil.c
gs/freetype/src/gzip/zutil.h
gs/ijs/Makefile.am
gs/ijs/configure.ac
gs/jasper/src/libjasper/base/jas_cm.c
gs/jasper/src/libjasper/base/jas_getopt.c
gs/jasper/src/libjasper/base/jas_image.c
gs/jasper/src/libjasper/base/jas_malloc.c
gs/jasper/src/libjasper/base/jas_seq.c
gs/jasper/src/libjasper/base/jas_stream.c
gs/jasper/src/libjasper/base/jas_string.c
gs/jasper/src/libjasper/base/jas_tvp.c
gs/jasper/src/libjasper/bmp/bmp_cod.c
gs/jasper/src/libjasper/bmp/bmp_cod.h
gs/jasper/src/libjasper/bmp/bmp_dec.c
gs/jasper/src/libjasper/bmp/bmp_enc.c
gs/jasper/src/libjasper/include/jasper/jas_cm.h
gs/jasper/src/libjasper/include/jasper/jas_debug.h
gs/jasper/src/libjasper/include/jasper/jas_fix.h
gs/jasper/src/libjasper/include/jasper/jas_getopt.h
gs/jasper/src/libjasper/include/jasper/jas_image.h
gs/jasper/src/libjasper/include/jasper/jas_malloc.h
gs/jasper/src/libjasper/include/jasper/jas_math.h
gs/jasper/src/libjasper/include/jasper/jas_seq.h
gs/jasper/src/libjasper/include/jasper/jas_stream.h
gs/jasper/src/libjasper/include/jasper/jas_string.h
gs/jasper/src/libjasper/include/jasper/jas_tvp.h
gs/jasper/src/libjasper/include/jasper/jas_types.h
gs/jasper/src/libjasper/include/jasper/jas_version.h
gs/jasper/src/libjasper/jp2/jp2_cod.c
gs/jasper/src/libjasper/jp2/jp2_cod.h
gs/jasper/src/libjasper/jp2/jp2_enc.c
gs/jasper/src/libjasper/jpc/jpc_bs.c
gs/jasper/src/libjasper/jpc/jpc_bs.h
gs/jasper/src/libjasper/jpc/jpc_cod.h
gs/jasper/src/libjasper/jpc/jpc_cs.c
gs/jasper/src/libjasper/jpc/jpc_cs.h
gs/jasper/src/libjasper/jpc/jpc_dec.c
gs/jasper/src/libjasper/jpc/jpc_dec.h
gs/jasper/src/libjasper/jpc/jpc_enc.c
gs/jasper/src/libjasper/jpc/jpc_enc.h
gs/jasper/src/libjasper/jpc/jpc_fix.h
gs/jasper/src/libjasper/jpc/jpc_flt.h
gs/jasper/src/libjasper/jpc/jpc_math.c
gs/jasper/src/libjasper/jpc/jpc_mct.c
gs/jasper/src/libjasper/jpc/jpc_mct.h
gs/jasper/src/libjasper/jpc/jpc_mqcod.c
gs/jasper/src/libjasper/jpc/jpc_mqcod.h
gs/jasper/src/libjasper/jpc/jpc_mqdec.c
gs/jasper/src/libjasper/jpc/jpc_mqdec.h
gs/jasper/src/libjasper/jpc/jpc_mqenc.c
gs/jasper/src/libjasper/jpc/jpc_mqenc.h
gs/jasper/src/libjasper/jpc/jpc_qmfb.c
gs/jasper/src/libjasper/jpc/jpc_qmfb.h
gs/jasper/src/libjasper/jpc/jpc_t1cod.c
gs/jasper/src/libjasper/jpc/jpc_t1cod.h
gs/jasper/src/libjasper/jpc/jpc_t1dec.c
gs/jasper/src/libjasper/jpc/jpc_t1dec.h
gs/jasper/src/libjasper/jpc/jpc_t1enc.c
gs/jasper/src/libjasper/jpc/jpc_t1enc.h
gs/jasper/src/libjasper/jpc/jpc_t2cod.c
gs/jasper/src/libjasper/jpc/jpc_t2cod.h
gs/jasper/src/libjasper/jpc/jpc_t2dec.c
gs/jasper/src/libjasper/jpc/jpc_t2dec.h
gs/jasper/src/libjasper/jpc/jpc_t2enc.c
gs/jasper/src/libjasper/jpc/jpc_t2enc.h
gs/jasper/src/libjasper/jpc/jpc_tagtree.c
gs/jasper/src/libjasper/jpc/jpc_tagtree.h
gs/jasper/src/libjasper/jpc/jpc_tsfb.c
gs/jasper/src/libjasper/jpc/jpc_tsfb.h
gs/jasper/src/libjasper/jpc/jpc_util.c
gs/jasper/src/libjasper/jpg/jpg_cod.h
gs/jasper/src/libjasper/pgx/pgx_cod.h
gs/jasper/src/libjasper/pnm/pnm_cod.c
gs/jasper/src/libjasper/pnm/pnm_cod.h
gs/jasper/src/libjasper/pnm/pnm_dec.c
gs/jasper/src/libjasper/pnm/pnm_enc.c
gs/jasper/src/libjasper/ras/ras_cod.c
gs/jasper/src/libjasper/ras/ras_cod.h
gs/jasper/src/libjasper/ras/ras_dec.c
gs/jasper/src/libjasper/ras/ras_enc.c
gs/jbig2dec/config_types.h
gs/jbig2dec/config_types.h.in
gs/jbig2dec/config_win32.h
gs/jbig2dec/getopt.c
gs/jbig2dec/getopt.h
gs/jbig2dec/getopt1.c
gs/jbig2dec/jbig2.c
gs/jbig2dec/jbig2.h
gs/jbig2dec/jbig2_arith.c
gs/jbig2dec/jbig2_arith.h
gs/jbig2dec/jbig2_arith_iaid.c
gs/jbig2dec/jbig2_arith_iaid.h
gs/jbig2dec/jbig2_arith_int.c
gs/jbig2dec/jbig2_arith_int.h
gs/jbig2dec/jbig2_generic.c
gs/jbig2dec/jbig2_generic.h
gs/jbig2dec/jbig2_halftone.c
gs/jbig2dec/jbig2_halftone.h
gs/jbig2dec/jbig2_huffman.c
gs/jbig2dec/jbig2_huffman.h
gs/jbig2dec/jbig2_hufftab.h
gs/jbig2dec/jbig2_image.c
gs/jbig2dec/jbig2_image.h
gs/jbig2dec/jbig2_image_pbm.c
gs/jbig2dec/jbig2_image_png.c
gs/jbig2dec/jbig2_metadata.c
gs/jbig2dec/jbig2_metadata.h
gs/jbig2dec/jbig2_mmr.c
gs/jbig2dec/jbig2_mmr.h
gs/jbig2dec/jbig2_page.c
gs/jbig2dec/jbig2_priv.h
gs/jbig2dec/jbig2_refinement.c
gs/jbig2dec/jbig2_segment.c
gs/jbig2dec/jbig2_symbol_dict.c
gs/jbig2dec/jbig2_symbol_dict.h
gs/jbig2dec/jbig2_text.c
gs/jbig2dec/jbig2_text.h
gs/jbig2dec/jbig2dec.c
gs/jbig2dec/memcmp.c
gs/jbig2dec/memento.c
gs/jbig2dec/memento.h
gs/jbig2dec/os_types.h
gs/jbig2dec/pbm2png.c
gs/jbig2dec/snprintf.c
gs/lib/FAPIconfig-FCO
gs/lib/FCOfontmap-PCLPS3
gs/lib/FCOfontmap-PS3
gs/lib/Fontmap.ATB
gs/lib/Fontmap.ATM
gs/lib/Fontmap.OS2
gs/lib/Fontmap.SGI
gs/lib/Fontmap.Sol
gs/lib/Fontmap.URW-136.T1
gs/lib/Fontmap.URW-136.TT
gs/lib/Fontmap.Ult
gs/lib/Fontmap.VMS
gs/lib/PDFA_def.ps
gs/lib/PDFX_def.ps
gs/lib/acctest.ps
gs/lib/addxchar.ps
gs/lib/align.ps
gs/lib/caption.ps
gs/lib/cat.ps
gs/lib/cid2code.ps
gs/lib/decrypt.ps
gs/lib/docie.ps
gs/lib/dumphint
gs/lib/dumphint.bat
gs/lib/dumphint.ps
gs/lib/dvipdf
gs/lib/eps2eps
gs/lib/eps2eps.bat
gs/lib/eps2eps.cmd
gs/lib/font2c
gs/lib/font2c.bat
gs/lib/font2c.cmd
gs/lib/font2c.ps
gs/lib/font2pcl.ps
gs/lib/gs_ce_e.ps
gs/lib/gs_cmdl.ps
gs/lib/gs_fform.ps
gs/lib/gs_il2_e.ps
gs/lib/gs_kanji.ps
gs/lib/gs_ksb_e.ps
gs/lib/gs_lgo_e.ps
gs/lib/gs_lgx_e.ps
gs/lib/gs_pfile.ps
gs/lib/gs_rdlin.ps
gs/lib/gs_wl1_e.ps
gs/lib/gs_wl2_e.ps
gs/lib/gs_wl5_e.ps
gs/lib/gsbj
gs/lib/gsbj.bat
gs/lib/gsdj
gs/lib/gsdj.bat
gs/lib/gsdj500
gs/lib/gsdj500.bat
gs/lib/gslj
gs/lib/gslj.bat
gs/lib/gslp
gs/lib/gslp.bat
gs/lib/gslp.ps
gs/lib/gsnd
gs/lib/gsnd.bat
gs/lib/gsndt.bat
gs/lib/gsnup.ps
gs/lib/gssetgs.bat
gs/lib/gssetgs32.bat
gs/lib/gssetgs64.bat
gs/lib/gst.bat
gs/lib/gstt.bat
gs/lib/ht_ccsto.ps
gs/lib/image-qa.ps
gs/lib/impath.ps
gs/lib/jispaper.ps
gs/lib/jobseparator.ps
gs/lib/landscap.ps
gs/lib/level1.ps
gs/lib/lines.ps
gs/lib/lp386.bat
gs/lib/lp386r2.bat
gs/lib/lpgs.bat
gs/lib/lpr2.bat
gs/lib/lprsetup.sh
gs/lib/markhint.ps
gs/lib/markpath.ps
gs/lib/mkcidfm.ps
gs/lib/opdfread.ps
gs/lib/packfile.ps
gs/lib/pcharstr.ps
gs/lib/pdf2dsc
gs/lib/pdf2dsc.bat
gs/lib/pdf2dsc.ps
gs/lib/pdf2ps
gs/lib/pdf2ps.bat
gs/lib/pdf2ps.cmd
gs/lib/pdfopt
gs/lib/pdfopt.bat
gs/lib/pdfopt.ps
gs/lib/pdfwrite.ps
gs/lib/pf2afm
gs/lib/pf2afm.bat
gs/lib/pf2afm.cmd
gs/lib/pf2afm.ps
gs/lib/pfbtopfa
gs/lib/pfbtopfa.bat
gs/lib/pfbtopfa.ps
gs/lib/pftogsf.bat
gs/lib/ppath.ps
gs/lib/pphs
gs/lib/pphs.ps
gs/lib/prfont.ps
gs/lib/printafm
gs/lib/printafm.ps
gs/lib/ps2ai.ps
gs/lib/ps2ascii
gs/lib/ps2ascii.bat
gs/lib/ps2ascii.cmd
gs/lib/ps2ascii.ps
gs/lib/ps2epsi
gs/lib/ps2epsi.bat
gs/lib/ps2epsi.cmd
gs/lib/ps2epsi.ps
gs/lib/ps2pdf
gs/lib/ps2pdf.bat
gs/lib/ps2pdf.cmd
gs/lib/ps2pdf12
gs/lib/ps2pdf12.bat
gs/lib/ps2pdf12.cmd
gs/lib/ps2pdf13
gs/lib/ps2pdf13.bat
gs/lib/ps2pdf13.cmd
gs/lib/ps2pdf14
gs/lib/ps2pdf14.bat
gs/lib/ps2pdf14.cmd
gs/lib/ps2pdfwr
gs/lib/ps2pdfxx.bat
gs/lib/ps2ps
gs/lib/ps2ps.bat
gs/lib/ps2ps.cmd
gs/lib/ps2ps2
gs/lib/ps2ps2.bat
gs/lib/ps2ps2.cmd
gs/lib/rollconv.ps
gs/lib/showchar.ps
gs/lib/stcinfo.ps
gs/lib/stcolor.ps
gs/lib/stocht.ps
gs/lib/traceimg.ps
gs/lib/traceop.ps
gs/lib/type1enc.ps
gs/lib/type1ops.ps
gs/lib/uninfo.ps
gs/lib/unix-lpr.sh
gs/lib/unprot.ps
gs/lib/viewcmyk.ps
gs/lib/viewgif.ps
gs/lib/viewjpeg.ps
gs/lib/viewmiff.ps
gs/lib/viewpbm.ps
gs/lib/viewpcx.ps
gs/lib/viewps2a.ps
gs/lib/viewrgb.ps
gs/lib/wftopfa
gs/lib/wftopfa.ps
gs/lib/winmaps.ps
gs/lib/wmakebat.bat
gs/lib/wrfont.ps
gs/lib/zeroline.ps
gs/man/de/dvipdf.1
gs/man/de/font2c.1
gs/man/de/gsnd.1
gs/man/de/pdf2dsc.1
gs/man/de/pdf2ps.1
gs/man/de/pdfopt.1
gs/man/de/printafm.1
gs/man/de/ps2ascii.1
gs/man/de/ps2pdf.1
gs/man/de/ps2ps.1
gs/man/de/wftopfa.1
gs/man/dvipdf.1
gs/man/eps2eps.1
gs/man/font2c.1
gs/man/gs.1
gs/man/gslp.1
gs/man/gsnd.1
gs/man/pdf2dsc.1
gs/man/pdf2ps.1
gs/man/pdfopt.1
gs/man/pf2afm.1
gs/man/pfbtopfa.1
gs/man/printafm.1
gs/man/ps2ascii.1
gs/man/ps2epsi.1
gs/man/ps2pdf.1
gs/man/ps2pdfwr.1
gs/man/ps2ps.1
gs/man/wftopfa.1
gs/psi/bfont.h
gs/psi/btoken.h
gs/psi/dmmain.c
gs/psi/dmmain.r
gs/psi/dpmain.c
gs/psi/dscparse.c
gs/psi/dscparse.h
gs/psi/dstack.h
gs/psi/dwdll.c
gs/psi/dwdll.h
gs/psi/dwimg.c
gs/psi/dwimg.h
gs/psi/dwmain.c
gs/psi/dwmain.rc
gs/psi/dwmainc.c
gs/psi/dwnodll.c
gs/psi/dwreg.c
gs/psi/dwreg.h
gs/psi/dwres.h
gs/psi/dwtext.c
gs/psi/dwtext.h
gs/psi/dwtrace.c
gs/psi/dwtrace.h
gs/psi/dxmain.c
gs/psi/dxmainc.c
gs/psi/estack.h
gs/psi/fapi_ft.c
gs/psi/fapibstm.c
gs/psi/fapiufst.c
gs/psi/files.h
gs/psi/ghost.h
gs/psi/gs.c
gs/psi/gsdll.c
gs/psi/gsdll2.rc
gs/psi/gsdll32.rc
gs/psi/gserver.c
gs/psi/gsos2.rc
gs/psi/ialloc.c
gs/psi/ialloc.h
gs/psi/iapi.c
gs/psi/iapi.h
gs/psi/iastate.h
gs/psi/iastruct.h
gs/psi/ibnum.c
gs/psi/ibnum.h
gs/psi/ichar.h
gs/psi/ichar1.h
gs/psi/icharout.h
gs/psi/icid.h
gs/psi/icie.h
gs/psi/icolor.h
gs/psi/iconf.c
gs/psi/iconf.h
gs/psi/icontext.c
gs/psi/icontext.h
gs/psi/icremap.h
gs/psi/icsmap.h
gs/psi/icstate.h
gs/psi/iddict.h
gs/psi/iddstack.h
gs/psi/idebug.c
gs/psi/idebug.h
gs/psi/idict.c
gs/psi/idict.h
gs/psi/idictdef.h
gs/psi/idicttpl.h
gs/psi/idisp.c
gs/psi/idisp.h
gs/psi/idosave.h
gs/psi/idparam.c
gs/psi/idparam.h
gs/psi/idsdata.h
gs/psi/idstack.c
gs/psi/idstack.h
gs/psi/ierrors.h
gs/psi/iesdata.h
gs/psi/iestack.h
gs/psi/ifapi.h
gs/psi/ifcid.h
gs/psi/ifilter.h
gs/psi/ifilter2.h
gs/psi/ifont.h
gs/psi/ifont1.h
gs/psi/ifont2.h
gs/psi/ifont42.h
gs/psi/ifrpred.h
gs/psi/ifunc.h
gs/psi/ifwpred.h
gs/psi/igc.c
gs/psi/igc.h
gs/psi/igcref.c
gs/psi/igcstr.c
gs/psi/igcstr.h
gs/psi/igstate.h
gs/psi/iht.h
gs/psi/iimage.h
gs/psi/iimage2.h
gs/psi/iinit.c
gs/psi/iinit.h
gs/psi/ilevel.h
gs/psi/ilocate.c
gs/psi/imain.c
gs/psi/imain.h
gs/psi/imainarg.c
gs/psi/imainarg.h
gs/psi/imemory.h
gs/psi/iminst.h
gs/psi/iname.c
gs/psi/iname.h
gs/psi/inamedef.h
gs/psi/inameidx.h
gs/psi/inames.h
gs/psi/inamestr.h
gs/psi/inobtokn.c
gs/psi/inouparm.c
gs/psi/int.mak
gs/psi/interp.c
gs/psi/interp.h
gs/psi/iosdata.h
gs/psi/iostack.h
gs/psi/ipacked.h
gs/psi/iparam.c
gs/psi/iparam.h
gs/psi/iparray.h
gs/psi/ipcolor.h
gs/psi/iplugin.c
gs/psi/iplugin.h
gs/psi/ireclaim.c
gs/psi/iref.h
gs/psi/isave.c
gs/psi/isave.h
gs/psi/iscan.c
gs/psi/iscan.h
gs/psi/iscanbin.c
gs/psi/iscanbin.h
gs/psi/iscannum.c
gs/psi/iscannum.h
gs/psi/isdata.h
gs/psi/isstate.h
gs/psi/istack.c
gs/psi/istack.h
gs/psi/istkparm.h
gs/psi/istream.h
gs/psi/istruct.h
gs/psi/itoken.h
gs/psi/iutil.c
gs/psi/iutil.h
gs/psi/iutil2.c
gs/psi/iutil2.h
gs/psi/ivmem2.h
gs/psi/ivmspace.h
gs/psi/main.h
gs/psi/mkfilelt.cpp
gs/psi/msvc.mak
gs/psi/msvc32.mak
gs/psi/msvc64.mak
gs/psi/nsisinst.nsi
gs/psi/oparc.h
gs/psi/opcheck.h
gs/psi/opdef.h
gs/psi/oper.h
gs/psi/opextern.h
gs/psi/os2.mak
gs/psi/ostack.h
gs/psi/psromfs.mak
gs/psi/sfilter1.c
gs/psi/store.h
gs/psi/winint.mak
gs/psi/wrfont.c
gs/psi/wrfont.h
gs/psi/write_t1.c
gs/psi/write_t1.h
gs/psi/write_t2.c
gs/psi/write_t2.h
gs/psi/zalg.c
gs/psi/zarith.c
gs/psi/zarray.c
gs/psi/zbfont.c
gs/psi/zbseq.c
gs/psi/zcfont.c
gs/psi/zchar.c
gs/psi/zchar1.c
gs/psi/zchar2.c
gs/psi/zchar32.c
gs/psi/zchar42.c
gs/psi/zchar42.h
gs/psi/zcharout.c
gs/psi/zcharx.c
gs/psi/zcid.c
gs/psi/zcidtest.c
gs/psi/zcie.c
gs/psi/zcie.h
gs/psi/zcolor.c
gs/psi/zcolor.h
gs/psi/zcolor1.c
gs/psi/zcolor2.c
gs/psi/zcolor3.c
gs/psi/zcontext.c
gs/psi/zcontrol.c
gs/psi/zcrd.c
gs/psi/zcsdevn.c
gs/psi/zcsindex.c
gs/psi/zcspixel.c
gs/psi/zcssepr.c
gs/psi/zdevcal.c
gs/psi/zdevice.c
gs/psi/zdevice2.c
gs/psi/zdfilter.c
gs/psi/zdict.c
gs/psi/zdosio.c
gs/psi/zdouble.c
gs/psi/zdpnext.c
gs/psi/zdps.c
gs/psi/zdps1.c
gs/psi/zdscpars.c
gs/psi/zfaes.c
gs/psi/zfapi.c
gs/psi/zfarc4.c
gs/psi/zfbcp.c
gs/psi/zfcid.c
gs/psi/zfcid0.c
gs/psi/zfcid1.c
gs/psi/zfcmap.c
gs/psi/zfdctd.c
gs/psi/zfdcte.c
gs/psi/zfdecode.c
gs/psi/zfile.c
gs/psi/zfile.h
gs/psi/zfile1.c
gs/psi/zfileio.c
gs/psi/zfilter.c
gs/psi/zfilter2.c
gs/psi/zfilterx.c
gs/psi/zfimscale.c
gs/psi/zfjbig2.c
gs/psi/zfjpx.c
gs/psi/zfmd5.c
gs/psi/zfont.c
gs/psi/zfont0.c
gs/psi/zfont1.c
gs/psi/zfont2.c
gs/psi/zfont32.c
gs/psi/zfont42.c
gs/psi/zfontenum.c
gs/psi/zfproc.c
gs/psi/zfrsd.c
gs/psi/zfrsd.h
gs/psi/zfsample.c
gs/psi/zfsha2.c
gs/psi/zfunc.c
gs/psi/zfunc.h
gs/psi/zfunc0.c
gs/psi/zfunc3.c
gs/psi/zfunc4.c
gs/psi/zfzlib.c
gs/psi/zgeneric.c
gs/psi/zgstate.c
gs/psi/zhsb.c
gs/psi/zht.c
gs/psi/zht1.c
gs/psi/zht2.c
gs/psi/zht2.h
gs/psi/zicc.c
gs/psi/zicc.h
gs/psi/zimage.c
gs/psi/zimage2.c
gs/psi/zimage3.c
gs/psi/ziodev.c
gs/psi/ziodev2.c
gs/psi/ziodevs.c
gs/psi/ziodevsc.c
gs/psi/zmath.c
gs/psi/zmatrix.c
gs/psi/zmedia2.c
gs/psi/zmisc.c
gs/psi/zmisc1.c
gs/psi/zmisc2.c
gs/psi/zmisc3.c
gs/psi/zncdummy.c
gs/psi/zpacked.c
gs/psi/zpaint.c
gs/psi/zpath.c
gs/psi/zpath1.c
gs/psi/zpcolor.c
gs/psi/zpdfops.c
gs/psi/zrelbit.c
gs/psi/zrop.c
gs/psi/zshade.c
gs/psi/zstack.c
gs/psi/zstring.c
gs/psi/zsysvm.c
gs/psi/ztoken.c
gs/psi/ztrans.c
gs/psi/ztrap.c
gs/psi/ztype.c
gs/psi/zupath.c
gs/psi/zusparam.c
gs/psi/zutf8.c
gs/psi/zvmem.c
gs/psi/zvmem2.c
gs/psi/zwinutf8.c
gs/toolbin/GenSubstCID.ps
gs/toolbin/afmutil.py
gs/toolbin/bughunt.sh
gs/toolbin/color/icc_creator/ICC_Creator/CIELAB.h
gs/toolbin/color/icc_creator/ICC_Creator/ICC_Creator.cpp
gs/toolbin/color/icc_creator/ICC_Creator/ICC_Creator.h
gs/toolbin/color/icc_creator/ICC_Creator/ICC_CreatorDlg.cpp
gs/toolbin/color/icc_creator/ICC_Creator/ICC_CreatorDlg.h
gs/toolbin/color/icc_creator/ICC_Creator/icc_create.cpp
gs/toolbin/color/icc_creator/ICC_Creator/icc_create.h
gs/toolbin/color/icc_creator/README.txt
gs/toolbin/drawafm.ps
gs/toolbin/encs2c.ps
gs/toolbin/errlist.tcl
gs/toolbin/extractFonts.ps
gs/toolbin/extractICCprofiles.ps
gs/toolbin/gen_ldf_jb2.py
gs/toolbin/genfontmap.ps
gs/toolbin/gitlog2changelog.py
gs/toolbin/gsmake
gs/toolbin/gsmake.tcl
gs/toolbin/halftone/gen_ordered/README
gs/toolbin/halftone/gen_ordered/gen_ordered.c
gs/toolbin/headers.tcl
gs/toolbin/jpxtopdf.c
gs/toolbin/leaks.tcl
gs/toolbin/makehist.tcl
gs/toolbin/memory.py
gs/toolbin/ocheck.py
gs/toolbin/pdf_info.ps
gs/toolbin/pdfinflt.ps
gs/toolbin/pre.tcl
gs/toolbin/precheck.tcl
gs/toolbin/pscet_status.pl
gs/toolbin/smoke.ps
gs/toolbin/split_changelog.py
gs/toolbin/suite.tcl
gs/toolbin/tests/build_revision.py
gs/toolbin/tests/check_all.py
gs/toolbin/tests/check_comments.py
gs/toolbin/tests/check_dirs.py
gs/toolbin/tests/check_docrefs.py
gs/toolbin/tests/check_source.py
gs/toolbin/tests/cmpi.py
gs/toolbin/tests/compare_checksumdb.py
gs/toolbin/tests/compare_checksums.py
gs/toolbin/tests/dump_checksum.py
gs/toolbin/tests/dump_checksum_plus.py
gs/toolbin/tests/dump_checksum_raw.py
gs/toolbin/tests/fuzzy.c
gs/toolbin/tests/get_baseline_log.py
gs/toolbin/tests/get_baselines.py
gs/toolbin/tests/gscheck_all.py
gs/toolbin/tests/gscheck_fuzzypdf.py
gs/toolbin/tests/gscheck_pdfwrite.py
gs/toolbin/tests/gscheck_raster.py
gs/toolbin/tests/gscheck_testfiles.py
gs/toolbin/tests/gsconf.py
gs/toolbin/tests/gsparamsets.py
gs/toolbin/tests/gssum.py
gs/toolbin/tests/gstestgs.py
gs/toolbin/tests/gstestutils.py
gs/toolbin/tests/gsutil.py
gs/toolbin/tests/make_baselinedb.py
gs/toolbin/tests/make_testdb.py
gs/toolbin/tests/make_two_pdfversions
gs/toolbin/tests/make_two_versions
gs/toolbin/tests/myoptparse.py
gs/toolbin/tests/rasterdb.py
gs/toolbin/tests/revert_baseline
gs/toolbin/tests/revert_pdfbaseline
gs/toolbin/tests/run_nightly.py
gs/toolbin/tests/run_parallel
gs/toolbin/tests/run_regression.py
gs/toolbin/tests/testdiff.py
gs/toolbin/tests/update_baseline.py
gs/toolbin/tests/update_specific
gs/toolbin/tmake.tcl
gs/zlib/ChangeLog
gs/zlib/adler32.c
gs/zlib/compress.c
gs/zlib/crc32.c
gs/zlib/deflate.c
gs/zlib/deflate.h
gs/zlib/test/example.c
gs/zlib/test/minigzip.c
gs/zlib/trees.c
gs/zlib/uncompr.c
gs/zlib/zconf.h
gs/zlib/zconf.h.cmakein
gs/zlib/zconf.h.in
gs/zlib/zutil.c
gs/zlib/zutil.h
language_switch/pspcl6_gcc.mak
language_switch/pspcl6_msvc.mak
pcl/pcbiptrn.c
pcl/pcbiptrn.h
pcl/pccid.c
pcl/pccid.h
pcl/pccolor.c
pcl/pccoord.h
pcl/pccprint.c
pcl/pccsbase.c
pcl/pccsbase.h
pcl/pcdict.h
pcl/pcdither.c
pcl/pcdither.h
pcl/pcdraw.c
pcl/pcdraw.h
pcl/pcfont.c
pcl/pcfont.h
pcl/pcfontpg.c
pcl/pcfontst.h
pcl/pcfrgrnd.c
pcl/pcfrgrnd.h
pcl/pcfsel.c
pcl/pcfsel.h
pcl/pcht.c
pcl/pcht.h
pcl/pcident.c
pcl/pcident.h
pcl/pcimpl.c
pcl/pcindxed.c
pcl/pcindxed.h
pcl/pcjob.c
pcl/pcl.mak
pcl/pcl_top.mak
pcl/pclookup.c
pcl/pclookup.h
pcl/pcmacros.c
pcl/pcmisc.c
pcl/pcmtx3.c
pcl/pcmtx3.h
pcl/pcommand.c
pcl/pcommand.h
pcl/pcpage.c
pcl/pcpage.h
pcl/pcpalet.c
pcl/pcpalet.h
pcl/pcparam.h
pcl/pcparse.c
pcl/pcparse.h
pcl/pcpatrn.c
pcl/pcpatrn.h
pcl/pcpattyp.h
pcl/pcpatxfm.c
pcl/pcpatxfm.h
pcl/pcrect.c
pcl/pcsfont.c
pcl/pcstate.h
pcl/pcstatus.c
pcl/pcsymbol.c
pcl/pcsymbol.h
pcl/pctext.c
pcl/pctop.c
pcl/pctop.h
pcl/pctpm.h
pcl/pcuptrn.c
pcl/pcuptrn.h
pcl/pcursor.c
pcl/pcursor.h
pcl/pcwhtidx.c
pcl/pcwhtidx.h
pcl/pcxfmst.h
pcl/pgchar.c
pcl/pgcolor.c
pcl/pgconfig.c
pcl/pgdraw.c
pcl/pgdraw.h
pcl/pgfdata.c
pcl/pgfdata.h
pcl/pgfont.c
pcl/pgfont.h
pcl/pgframe.c
pcl/pggeom.c
pcl/pggeom.h
pcl/pginit.c
pcl/pginit.h
pcl/pglabel.c
pcl/pglfill.c
pcl/pgmand.h
pcl/pgmisc.c
pcl/pgmisc.h
pcl/pgparse.c
pcl/pgpoly.c
pcl/pgstate.h
pcl/pgvector.c
pcl/rtgmode.c
pcl/rtgmode.h
pcl/rtmisc.c
pcl/rtraster.c
pcl/rtraster.h
pcl/rtrstcmp.c
pcl/rtrstcmp.h
pcl/rtrstst.h
pl/dwimg.c
pl/dwimg.h
pl/dwmainc.c
pl/dwreg.c
pl/dwreg.h
pl/dwres.h
pl/pjparse.c
pl/pjparse.h
pl/pjparsei.c
pl/pjtop.c
pl/pjtop.h
pl/pl.mak
pl/plalloc.c
pl/plalloc.h
pl/plapi.h
pl/plchar.c
pl/pldebug.h
pl/pldict.c
pl/pldict.h
pl/pldraw.c
pl/pldraw.h
pl/plfont.c
pl/plfont.h
pl/plftable.c
pl/plftable.h
pl/plht.c
pl/plht.h
pl/plimpl.c
pl/pllfont.c
pl/pllfont.h
pl/plmain.c
pl/plmain.h
pl/plparse.h
pl/plplatf.c
pl/plplatf.h
pl/plplatfps.c
pl/plsrgb.c
pl/plsrgb.h
pl/plsymbol.c
pl/plsymbol.h
pl/pltop.c
pl/pltop.h
pl/pltoputl.c
pl/pltoputl.h
pl/pluchar.c
pl/plufont.c
pl/plulfont.c
pl/plvalue.c
pl/plvalue.h
pl/plvocab.c
pl/plvocab.h
pl/realmain.c
psi/psi.mak
psi/psitop.c
pxl/pxasm.ps
pxl/pxattr.h
pxl/pxbfont.c
pxl/pxbfont.h
pxl/pxbfont.ps
pxl/pxcet.txt
pxl/pxdict.h
pxl/pxdiff.txt
pxl/pxenum.h
pxl/pxerrors.c
pxl/pxerrors.h
pxl/pxffont.c
pxl/pxfont.c
pxl/pxfont.h
pxl/pxfts.txt
pxl/pxgstate.c
pxl/pxgstate.h
pxl/pximage.c
pxl/pximpl.c
pxl/pxink.c
pxl/pxl.mak
pxl/pxlib.txt
pxl/pxoper.h
pxl/pxpaint.c
pxl/pxparse.c
pxl/pxparse.h
pxl/pxptable.c
pxl/pxptable.h
pxl/pxpthr.c
pxl/pxpthr.h
pxl/pxsessio.c
pxl/pxspec.txt
pxl/pxstate.c
pxl/pxstate.h
pxl/pxstream.c
pxl/pxsymbol.ps
pxl/pxsymbol.psc
pxl/pxsymbol.psh
pxl/pxtag.h
pxl/pxtop.c
pxl/pxvalue.c
pxl/pxvalue.h
svg/ghostsvg.h
svg/svg.mak
svg/svg_gcc.mak
svg/svg_msvc.mak
svg/svgcolor.c
svg/svgcolorlist.h
svg/svgdoc.c
svg/svgshapes.c
svg/svgtop.c
svg/svgtransform.c
svg/svgtypes.c
svg/svgxml.c
tools/gslite/gslt.h
tools/gslite/gslt_font.h
tools/gslite/gslt_font_api.c
tools/gslite/gslt_font_api.h
tools/gslite/gslt_font_api_test.c
tools/gslite/gslt_font_cache.c
tools/gslite/gslt_font_cff.c
tools/gslite/gslt_font_encoding.c
tools/gslite/gslt_font_glyph.c
tools/gslite/gslt_font_int.h
tools/gslite/gslt_font_test.c
tools/gslite/gslt_font_ttf.c
tools/gslite/gslt_image.c
tools/gslite/gslt_image.h
tools/gslite/gslt_image_jpeg.c
tools/gslite/gslt_image_png.c
tools/gslite/gslt_image_test.c
tools/gslite/gslt_image_threads_test.c
tools/gslite/gslt_image_tiff.c
tools/gslite/gslt_init.c
tools/gslite/gslt_stubs.c
tools/gslite/gslt_test.c
tools/null.pxl
tools/suite.tcl
xps/ghostxps.h
xps/xps.mak
xps/xps_gcc.mak
xps/xps_msvc.mak
xps/xpsanalyze.c
xps/xpscff.c
xps/xpscolor.c
xps/xpscommon.c
xps/xpscrc.c
xps/xpsdoc.c
xps/xpsfont.c
xps/xpsglyphs.c
xps/xpsgradient.c
xps/xpshash.c
xps/xpsimage.c
xps/xpsjpeg.c
xps/xpsjxr.c
xps/xpsmem.c
xps/xpsopacity.c
xps/xpspage.c
xps/xpspath.c
xps/xpspng.c
xps/xpsresource.c
xps/xpstiff.c
xps/xpstile.c
xps/xpstop.c
xps/xpsttf.c
xps/xpsutf.c
xps/xpsvisual.c
xps/xpsxml.c
xps/xpszip.c


2012-06-13 12:22:13 +0100
Chris Liddell <chris.liddell@artifex.com>
fae7be45fb7f2e9be889c07dc9d29e7ea1975dc9

Bug 692365: Don't derive metrics for CIDFontType 2.

pdfwrite uses zchar42_set_cache() to get the glyph metrics for a glyph from
CIDFontType 2 font. It turns out, that function contained the same faking
of vertical metrics as the FAPI code originally had. That's a problem because
a PS font without vertical metrics should be treated as horizontal, regardless
of the wmode value.

We *only* want to derive vertical metrics for TTF fonts read from disk being
used to emulate a missing CIDFont with wmode 1.

No cluster differences.

gs/psi/zchar42.c


2012-06-11 14:09:28 +0100
Chris Liddell <chris.liddell@artifex.com>
b4dbdb142e340596d9a8b440ca415832c39caef2

Update libjpeg to 8d.

gs/jpeg/Makefile.in
gs/jpeg/README
gs/jpeg/aclocal.m4
gs/jpeg/change.log
gs/jpeg/cjpeg.1
gs/jpeg/cjpeg.c
gs/jpeg/config.guess
gs/jpeg/config.sub
gs/jpeg/configure
gs/jpeg/configure.ac
gs/jpeg/depcomp
gs/jpeg/install-sh
gs/jpeg/install.txt
gs/jpeg/jaricom.c
gs/jpeg/jcarith.c
gs/jpeg/jccoefct.c
gs/jpeg/jccolor.c
gs/jpeg/jconfig.mc6
gs/jpeg/jctrans.c
gs/jpeg/jdarith.c
gs/jpeg/jdatadst.c
gs/jpeg/jdatasrc.c
gs/jpeg/jdcoefct.c
gs/jpeg/jdcolor.c
gs/jpeg/jdmaster.c
gs/jpeg/jmemmgr.c
gs/jpeg/jmorecfg.h
gs/jpeg/jpegint.h
gs/jpeg/jpeglib.h
gs/jpeg/jpegtran.c
gs/jpeg/jquant1.c
gs/jpeg/jquant2.c
gs/jpeg/jutils.c
gs/jpeg/jversion.h
gs/jpeg/libjpeg.txt
gs/jpeg/ltmain.sh
gs/jpeg/structure.txt
gs/jpeg/transupp.c
gs/jpeg/transupp.h
gs/jpeg/usage.txt


2012-06-11 11:37:57 +0100
Chris Liddell <chris.liddell@artifex.com>
2214fb3da464f702ab4bd46d653aef1c9b69d483

Update zlib to 1.2.7

No cluster differences.

gs/zlib/CMakeLists.txt
gs/zlib/ChangeLog
gs/zlib/FAQ
gs/zlib/INDEX
gs/zlib/Makefile
gs/zlib/Makefile.in
gs/zlib/README
gs/zlib/adler32.c
gs/zlib/algorithm.txt
gs/zlib/amiga/Makefile.pup
gs/zlib/amiga/Makefile.sas
gs/zlib/as400/bndsrc
gs/zlib/as400/compile.clp
gs/zlib/as400/readme.txt
gs/zlib/as400/zlib.inc
gs/zlib/compress.c
gs/zlib/configure
gs/zlib/contrib/README.contrib
gs/zlib/contrib/amd64/amd64-match.S
gs/zlib/contrib/asm586/README.586
gs/zlib/contrib/asm586/match.S
gs/zlib/contrib/asm686/README.686
gs/zlib/contrib/asm686/match.S
gs/zlib/contrib/delphi/ZLib.pas
gs/zlib/contrib/delphi/zlibd32.mak
gs/zlib/contrib/dotzlib/DotZLib.build
gs/zlib/contrib/dotzlib/DotZLib.chm
gs/zlib/contrib/dotzlib/DotZLib/AssemblyInfo.cs
gs/zlib/contrib/dotzlib/DotZLib/ChecksumImpl.cs
gs/zlib/contrib/dotzlib/DotZLib/CircularBuffer.cs
gs/zlib/contrib/dotzlib/DotZLib/CodecBase.cs
gs/zlib/contrib/dotzlib/DotZLib/Deflater.cs
gs/zlib/contrib/dotzlib/DotZLib/DotZLib.cs
gs/zlib/contrib/dotzlib/DotZLib/GZipStream.cs
gs/zlib/contrib/dotzlib/DotZLib/Inflater.cs
gs/zlib/contrib/dotzlib/DotZLib/UnitTests.cs
gs/zlib/contrib/dotzlib/readme.txt
gs/zlib/contrib/gcc_gvmat64/gvmat64.S
gs/zlib/contrib/infback9/infback9.c
gs/zlib/contrib/infback9/inftree9.c
gs/zlib/contrib/infback9/inftree9.h
gs/zlib/contrib/inflate86/inffas86.c
gs/zlib/contrib/masm686/match.asm
gs/zlib/contrib/masmx64/gvmat64.asm
gs/zlib/contrib/masmx64/gvmat64.obj
gs/zlib/contrib/masmx64/inffas8664.c
gs/zlib/contrib/masmx64/inffasx64.asm
gs/zlib/contrib/masmx64/inffasx64.obj
gs/zlib/contrib/masmx64/readme.txt
gs/zlib/contrib/masmx86/bld_ml32.bat
gs/zlib/contrib/masmx86/gvmat32.asm
gs/zlib/contrib/masmx86/gvmat32.obj
gs/zlib/contrib/masmx86/gvmat32c.c
gs/zlib/contrib/masmx86/inffas32.asm
gs/zlib/contrib/masmx86/inffas32.obj
gs/zlib/contrib/masmx86/match686.asm
gs/zlib/contrib/masmx86/mkasm.bat
gs/zlib/contrib/masmx86/readme.txt
gs/zlib/contrib/minizip/ChangeLogUnzip
gs/zlib/contrib/minizip/Makefile.am
gs/zlib/contrib/minizip/MiniZip64_Changes.txt
gs/zlib/contrib/minizip/MiniZip64_info.txt
gs/zlib/contrib/minizip/configure.ac
gs/zlib/contrib/minizip/crypt.h
gs/zlib/contrib/minizip/ioapi.c
gs/zlib/contrib/minizip/ioapi.h
gs/zlib/contrib/minizip/iowin32.c
gs/zlib/contrib/minizip/iowin32.h
gs/zlib/contrib/minizip/make_vms.com
gs/zlib/contrib/minizip/miniunz.c
gs/zlib/contrib/minizip/minizip.c
gs/zlib/contrib/minizip/minizip.pc.in
gs/zlib/contrib/minizip/mztools.c
gs/zlib/contrib/minizip/mztools.h
gs/zlib/contrib/minizip/unzip.c
gs/zlib/contrib/minizip/unzip.h
gs/zlib/contrib/minizip/zip.c
gs/zlib/contrib/minizip/zip.h
gs/zlib/contrib/pascal/zlibd32.mak
gs/zlib/contrib/pascal/zlibpas.pas
gs/zlib/contrib/puff/Makefile
gs/zlib/contrib/puff/puff.c
gs/zlib/contrib/puff/puff.h
gs/zlib/contrib/puff/pufftest.c
gs/zlib/contrib/puff/zeros.raw
gs/zlib/contrib/testzlib/testzlib.c
gs/zlib/contrib/vstudio/readme.txt
gs/zlib/contrib/vstudio/vc10/miniunz.vcxproj
gs/zlib/contrib/vstudio/vc10/miniunz.vcxproj.filters
gs/zlib/contrib/vstudio/vc10/miniunz.vcxproj.user
gs/zlib/contrib/vstudio/vc10/minizip.vcxproj
gs/zlib/contrib/vstudio/vc10/minizip.vcxproj.filters
gs/zlib/contrib/vstudio/vc10/minizip.vcxproj.user
gs/zlib/contrib/vstudio/vc10/testzlib.vcxproj
gs/zlib/contrib/vstudio/vc10/testzlib.vcxproj.filters
gs/zlib/contrib/vstudio/vc10/testzlib.vcxproj.user
gs/zlib/contrib/vstudio/vc10/testzlibdll.vcxproj
gs/zlib/contrib/vstudio/vc10/testzlibdll.vcxproj.filters
gs/zlib/contrib/vstudio/vc10/testzlibdll.vcxproj.user
gs/zlib/contrib/vstudio/vc10/zlib.rc
gs/zlib/contrib/vstudio/vc10/zlibstat.vcxproj
gs/zlib/contrib/vstudio/vc10/zlibstat.vcxproj.filters
gs/zlib/contrib/vstudio/vc10/zlibstat.vcxproj.user
gs/zlib/contrib/vstudio/vc10/zlibvc.def
gs/zlib/contrib/vstudio/vc10/zlibvc.sln
gs/zlib/contrib/vstudio/vc10/zlibvc.vcxproj
gs/zlib/contrib/vstudio/vc10/zlibvc.vcxproj.filters
gs/zlib/contrib/vstudio/vc10/zlibvc.vcxproj.user
gs/zlib/contrib/vstudio/vc7/miniunz.vcproj
gs/zlib/contrib/vstudio/vc7/minizip.vcproj
gs/zlib/contrib/vstudio/vc7/testzlib.vcproj
gs/zlib/contrib/vstudio/vc7/zlib.rc
gs/zlib/contrib/vstudio/vc7/zlibstat.vcproj
gs/zlib/contrib/vstudio/vc7/zlibvc.def
gs/zlib/contrib/vstudio/vc7/zlibvc.sln
gs/zlib/contrib/vstudio/vc7/zlibvc.vcproj
gs/zlib/contrib/vstudio/vc8/miniunz.vcproj
gs/zlib/contrib/vstudio/vc8/minizip.vcproj
gs/zlib/contrib/vstudio/vc8/testzlib.vcproj
gs/zlib/contrib/vstudio/vc8/testzlibdll.vcproj
gs/zlib/contrib/vstudio/vc8/zlib.rc
gs/zlib/contrib/vstudio/vc8/zlibstat.vcproj
gs/zlib/contrib/vstudio/vc8/zlibvc.def
gs/zlib/contrib/vstudio/vc8/zlibvc.sln
gs/zlib/contrib/vstudio/vc8/zlibvc.vcproj
gs/zlib/contrib/vstudio/vc9/miniunz.vcproj
gs/zlib/contrib/vstudio/vc9/minizip.vcproj
gs/zlib/contrib/vstudio/vc9/testzlib.vcproj
gs/zlib/contrib/vstudio/vc9/testzlibdll.vcproj
gs/zlib/contrib/vstudio/vc9/zlib.rc
gs/zlib/contrib/vstudio/vc9/zlibstat.vcproj
gs/zlib/contrib/vstudio/vc9/zlibvc.def
gs/zlib/contrib/vstudio/vc9/zlibvc.sln
gs/zlib/contrib/vstudio/vc9/zlibvc.vcproj
gs/zlib/crc32.c
gs/zlib/crc32.h
gs/zlib/deflate.c
gs/zlib/deflate.h
gs/zlib/doc/algorithm.txt
gs/zlib/doc/rfc1950.txt
gs/zlib/doc/rfc1951.txt
gs/zlib/doc/rfc1952.txt
gs/zlib/doc/txtvsbin.txt
gs/zlib/example.c
gs/zlib/examples/README.examples
gs/zlib/examples/enough.c
gs/zlib/examples/gun.c
gs/zlib/examples/gzlog.c
gs/zlib/examples/gzlog.h
gs/zlib/examples/zlib_how.html
gs/zlib/examples/zpipe.c
gs/zlib/examples/zran.c
gs/zlib/gzclose.c
gs/zlib/gzguts.h
gs/zlib/gzio.c
gs/zlib/gzlib.c
gs/zlib/gzread.c
gs/zlib/gzwrite.c
gs/zlib/infback.c
gs/zlib/inffast.c
gs/zlib/inffast.h
gs/zlib/inffixed.h
gs/zlib/inflate.c
gs/zlib/inflate.h
gs/zlib/inftrees.c
gs/zlib/inftrees.h
gs/zlib/make_vms.com
gs/zlib/minigzip.c
gs/zlib/msdos/Makefile.bor
gs/zlib/msdos/Makefile.dj2
gs/zlib/msdos/Makefile.emx
gs/zlib/msdos/Makefile.msc
gs/zlib/msdos/Makefile.tc
gs/zlib/nintendods/Makefile
gs/zlib/nintendods/README
gs/zlib/old/Makefile.emx
gs/zlib/old/zlib.html
gs/zlib/projects/README.projects
gs/zlib/projects/visualc6/README.txt
gs/zlib/projects/visualc6/example.dsp
gs/zlib/projects/visualc6/minigzip.dsp
gs/zlib/projects/visualc6/zlib.dsp
gs/zlib/projects/visualc6/zlib.dsw
gs/zlib/qnx/package.qpg
gs/zlib/test/example.c
gs/zlib/test/infcover.c
gs/zlib/test/minigzip.c
gs/zlib/treebuild.xml
gs/zlib/trees.c
gs/zlib/trees.h
gs/zlib/uncompr.c
gs/zlib/watcom/watcom_f.mak
gs/zlib/watcom/watcom_l.mak
gs/zlib/win32/DLL_FAQ.txt
gs/zlib/win32/Makefile.bor
gs/zlib/win32/Makefile.emx
gs/zlib/win32/Makefile.gcc
gs/zlib/win32/Makefile.msc
gs/zlib/win32/README-WIN32.txt
gs/zlib/win32/zlib.def
gs/zlib/win32/zlib1.rc
gs/zlib/zconf.h
gs/zlib/zconf.h.cmakein
gs/zlib/zconf.h.in
gs/zlib/zconf.in.h
gs/zlib/zlib.3
gs/zlib/zlib.3.pdf
gs/zlib/zlib.h
gs/zlib/zlib.map
gs/zlib/zlib.pc.cmakein
gs/zlib/zlib.pc.in
gs/zlib/zlib2ansi
gs/zlib/zutil.c
gs/zlib/zutil.h


2012-06-11 09:11:18 +0100
Chris Liddell <chris.liddell@artifex.com>
3c419d97583ed1c234d53bd9c0efac2ef9fff320

Update libtiff to 4.0.1.

Remove globals from tif_pixarlog.c

Re-apply commit 786269bafff68f1965b1536acef11f25e0cd44d0

Also reapply some portability changes to tiffiop.h.

No cluster differences.

gs/tiff/ChangeLog
gs/tiff/HOWTO-RELEASE
gs/tiff/Makefile.am
gs/tiff/Makefile.in
gs/tiff/Makefile.vc
gs/tiff/README
gs/tiff/RELEASE-DATE
gs/tiff/TODO
gs/tiff/VERSION
gs/tiff/aclocal.m4
gs/tiff/autogen.sh
gs/tiff/build/Makefile.am
gs/tiff/build/Makefile.in
gs/tiff/config/config.guess
gs/tiff/config/config.sub
gs/tiff/config/depcomp
gs/tiff/config/install-sh
gs/tiff/config/ltmain.sh
gs/tiff/config/missing
gs/tiff/config/mkinstalldirs
gs/tiff/configure
gs/tiff/configure.ac
gs/tiff/configure.com
gs/tiff/contrib/Makefile.am
gs/tiff/contrib/Makefile.in
gs/tiff/contrib/acorn/Makefile.acorn
gs/tiff/contrib/acorn/Makefile.am
gs/tiff/contrib/acorn/Makefile.in
gs/tiff/contrib/acorn/ReadMe
gs/tiff/contrib/acorn/SetVars
gs/tiff/contrib/acorn/cleanlib
gs/tiff/contrib/acorn/convert
gs/tiff/contrib/acorn/install
gs/tiff/contrib/addtiffo/Makefile.am
gs/tiff/contrib/addtiffo/Makefile.in
gs/tiff/contrib/addtiffo/addtiffo.c
gs/tiff/contrib/addtiffo/tif_overview.c
gs/tiff/contrib/addtiffo/tif_ovrcache.c
gs/tiff/contrib/addtiffo/tif_ovrcache.h
gs/tiff/contrib/dbs/Makefile.am
gs/tiff/contrib/dbs/Makefile.in
gs/tiff/contrib/dbs/tiff-bi.c
gs/tiff/contrib/dbs/tiff-grayscale.c
gs/tiff/contrib/dbs/tiff-palette.c
gs/tiff/contrib/dbs/tiff-rgb.c
gs/tiff/contrib/dbs/xtiff/Makefile.am
gs/tiff/contrib/dbs/xtiff/Makefile.in
gs/tiff/contrib/dbs/xtiff/patchlevel.h
gs/tiff/contrib/dbs/xtiff/xtiff.c
gs/tiff/contrib/dbs/xtiff/xtifficon.h
gs/tiff/contrib/iptcutil/Makefile.in
gs/tiff/contrib/iptcutil/iptcutil.c
gs/tiff/contrib/mac-cw/Makefile.am
gs/tiff/contrib/mac-cw/Makefile.in
gs/tiff/contrib/mac-cw/Makefile.script
gs/tiff/contrib/mac-cw/README
gs/tiff/contrib/mac-cw/mac_main.c
gs/tiff/contrib/mac-cw/mac_main.h
gs/tiff/contrib/mac-cw/metrowerks.note
gs/tiff/contrib/mac-cw/mkg3_main.c
gs/tiff/contrib/mac-cw/version.h
gs/tiff/contrib/mac-mpw/BUILD.mpw
gs/tiff/contrib/mac-mpw/Makefile.am
gs/tiff/contrib/mac-mpw/Makefile.in
gs/tiff/contrib/mac-mpw/README
gs/tiff/contrib/mac-mpw/libtiff.make
gs/tiff/contrib/mac-mpw/mactrans.c
gs/tiff/contrib/mac-mpw/port.make
gs/tiff/contrib/mac-mpw/tools.make
gs/tiff/contrib/mac-mpw/top.make
gs/tiff/contrib/mfs/Makefile.am
gs/tiff/contrib/mfs/Makefile.in
gs/tiff/contrib/mfs/mfs_file.c
gs/tiff/contrib/pds/Makefile.am
gs/tiff/contrib/pds/Makefile.in
gs/tiff/contrib/pds/tif_imageiter.c
gs/tiff/contrib/pds/tif_imageiter.h
gs/tiff/contrib/pds/tif_pdsdirread.c
gs/tiff/contrib/pds/tif_pdsdirwrite.c
gs/tiff/contrib/ras/Makefile.am
gs/tiff/contrib/ras/Makefile.in
gs/tiff/contrib/ras/ras2tif.c
gs/tiff/contrib/ras/tif2ras.c
gs/tiff/contrib/stream/Makefile.am
gs/tiff/contrib/stream/Makefile.in
gs/tiff/contrib/stream/tiffstream.cpp
gs/tiff/contrib/stream/tiffstream.h
gs/tiff/contrib/tags/Makefile.am
gs/tiff/contrib/tags/Makefile.in
gs/tiff/contrib/tags/listtif.c
gs/tiff/contrib/tags/maketif.c
gs/tiff/contrib/tags/xtif_dir.c
gs/tiff/contrib/tags/xtiffio.h
gs/tiff/contrib/tags/xtiffiop.h
gs/tiff/contrib/win_dib/Makefile.am
gs/tiff/contrib/win_dib/Makefile.in
gs/tiff/contrib/win_dib/Tiffile.cpp
gs/tiff/contrib/win_dib/tiff2dib.c
gs/tiff/html/Makefile.am
gs/tiff/html/Makefile.in
gs/tiff/html/bugs.html
gs/tiff/html/build.html
gs/tiff/html/document.html
gs/tiff/html/images/Makefile.in
gs/tiff/html/index.html
gs/tiff/html/man/Makefile.in
gs/tiff/html/man/TIFFClose.3tiff.html
gs/tiff/html/man/TIFFDataWidth.3tiff.html
gs/tiff/html/man/TIFFError.3tiff.html
gs/tiff/html/man/TIFFFlush.3tiff.html
gs/tiff/html/man/TIFFGetField.3tiff.html
gs/tiff/html/man/TIFFOpen.3tiff.html
gs/tiff/html/man/TIFFPrintDirectory.3tiff.html
gs/tiff/html/man/TIFFRGBAImage.3tiff.html
gs/tiff/html/man/TIFFReadDirectory.3tiff.html
gs/tiff/html/man/TIFFReadEncodedStrip.3tiff.html
gs/tiff/html/man/TIFFReadEncodedTile.3tiff.html
gs/tiff/html/man/TIFFReadRGBAImage.3tiff.html
gs/tiff/html/man/TIFFReadRGBAStrip.3tiff.html
gs/tiff/html/man/TIFFReadRGBATile.3tiff.html
gs/tiff/html/man/TIFFReadRawStrip.3tiff.html
gs/tiff/html/man/TIFFReadRawTile.3tiff.html
gs/tiff/html/man/TIFFReadScanline.3tiff.html
gs/tiff/html/man/TIFFReadTile.3tiff.html
gs/tiff/html/man/TIFFSetDirectory.3tiff.html
gs/tiff/html/man/TIFFSetField.3tiff.html
gs/tiff/html/man/TIFFWarning.3tiff.html
gs/tiff/html/man/TIFFWriteDirectory.3tiff.html
gs/tiff/html/man/TIFFWriteEncodedStrip.3tiff.html
gs/tiff/html/man/TIFFWriteEncodedTile.3tiff.html
gs/tiff/html/man/TIFFWriteRawStrip.3tiff.html
gs/tiff/html/man/TIFFWriteRawTile.3tiff.html
gs/tiff/html/man/TIFFWriteScanline.3tiff.html
gs/tiff/html/man/TIFFWriteTile.3tiff.html
gs/tiff/html/man/TIFFbuffer.3tiff.html
gs/tiff/html/man/TIFFcodec.3tiff.html
gs/tiff/html/man/TIFFcolor.3tiff.html
gs/tiff/html/man/TIFFmemory.3tiff.html
gs/tiff/html/man/TIFFquery.3tiff.html
gs/tiff/html/man/TIFFsize.3tiff.html
gs/tiff/html/man/TIFFstrip.3tiff.html
gs/tiff/html/man/TIFFswab.3tiff.html
gs/tiff/html/man/TIFFtile.3tiff.html
gs/tiff/html/man/fax2ps.1.html
gs/tiff/html/man/fax2tiff.1.html
gs/tiff/html/man/gif2tiff.1.html
gs/tiff/html/man/libtiff.3tiff.html
gs/tiff/html/man/pal2rgb.1.html
gs/tiff/html/man/ppm2tiff.1.html
gs/tiff/html/man/ras2tiff.1.html
gs/tiff/html/man/raw2tiff.1.html
gs/tiff/html/man/rgb2ycbcr.1.html
gs/tiff/html/man/sgi2tiff.1.html
gs/tiff/html/man/thumbnail.1.html
gs/tiff/html/man/tiff2bw.1.html
gs/tiff/html/man/tiff2pdf.1.html
gs/tiff/html/man/tiff2ps.1.html
gs/tiff/html/man/tiff2rgba.1.html
gs/tiff/html/man/tiffcmp.1.html
gs/tiff/html/man/tiffcp.1.html
gs/tiff/html/man/tiffcrop.1.html
gs/tiff/html/man/tiffdither.1.html
gs/tiff/html/man/tiffdump.1.html
gs/tiff/html/man/tiffgt.1.html
gs/tiff/html/man/tiffinfo.1.html
gs/tiff/html/man/tiffmedian.1.html
gs/tiff/html/man/tiffset.1.html
gs/tiff/html/man/tiffsplit.1.html
gs/tiff/html/man/tiffsv.1.html
gs/tiff/html/tools.html
gs/tiff/html/v3.9.0beta.html
gs/tiff/html/v3.9.1.html
gs/tiff/html/v3.9.2.html
gs/tiff/html/v4.0.0.html
gs/tiff/libtiff-4.pc.in
gs/tiff/libtiff/Makefile.am
gs/tiff/libtiff/Makefile.in
gs/tiff/libtiff/Makefile.vc
gs/tiff/libtiff/libtiff.def
gs/tiff/libtiff/libtiff.map
gs/tiff/libtiff/libtiffxx.map
gs/tiff/libtiff/mkg3states.c
gs/tiff/libtiff/oog_table.h
gs/tiff/libtiff/t4.h
gs/tiff/libtiff/tif_acorn.c
gs/tiff/libtiff/tif_apple.c
gs/tiff/libtiff/tif_atari.c
gs/tiff/libtiff/tif_aux.c
gs/tiff/libtiff/tif_close.c
gs/tiff/libtiff/tif_codec.c
gs/tiff/libtiff/tif_color.c
gs/tiff/libtiff/tif_compress.c
gs/tiff/libtiff/tif_config.h.in
gs/tiff/libtiff/tif_config.vc.h
gs/tiff/libtiff/tif_config.wince.h
gs/tiff/libtiff/tif_dir.c
gs/tiff/libtiff/tif_dir.h
gs/tiff/libtiff/tif_dirinfo.c
gs/tiff/libtiff/tif_dirread.c
gs/tiff/libtiff/tif_dirwrite.c
gs/tiff/libtiff/tif_dumpmode.c
gs/tiff/libtiff/tif_error.c
gs/tiff/libtiff/tif_extension.c
gs/tiff/libtiff/tif_fax3.c
gs/tiff/libtiff/tif_fax3.h
gs/tiff/libtiff/tif_fax3sm.c
gs/tiff/libtiff/tif_flush.c
gs/tiff/libtiff/tif_getimage.c
gs/tiff/libtiff/tif_jbig.c
gs/tiff/libtiff/tif_jpeg.c
gs/tiff/libtiff/tif_jpeg_12.c
gs/tiff/libtiff/tif_luv.c
gs/tiff/libtiff/tif_lzma.c
gs/tiff/libtiff/tif_lzw.c
gs/tiff/libtiff/tif_msdos.c
gs/tiff/libtiff/tif_next.c
gs/tiff/libtiff/tif_ojpeg.c
gs/tiff/libtiff/tif_open.c
gs/tiff/libtiff/tif_packbits.c
gs/tiff/libtiff/tif_pixarlog.c
gs/tiff/libtiff/tif_predict.c
gs/tiff/libtiff/tif_predict.h
gs/tiff/libtiff/tif_print.c
gs/tiff/libtiff/tif_read.c
gs/tiff/libtiff/tif_stream.cxx
gs/tiff/libtiff/tif_strip.c
gs/tiff/libtiff/tif_swab.c
gs/tiff/libtiff/tif_thunder.c
gs/tiff/libtiff/tif_tile.c
gs/tiff/libtiff/tif_unix.c
gs/tiff/libtiff/tif_version.c
gs/tiff/libtiff/tif_warning.c
gs/tiff/libtiff/tif_win3.c
gs/tiff/libtiff/tif_win32.c
gs/tiff/libtiff/tif_write.c
gs/tiff/libtiff/tif_zip.c
gs/tiff/libtiff/tiff.h
gs/tiff/libtiff/tiffconf.h.in
gs/tiff/libtiff/tiffconf.vc.h
gs/tiff/libtiff/tiffconf.wince.h
gs/tiff/libtiff/tiffio.h
gs/tiff/libtiff/tiffio.hxx
gs/tiff/libtiff/tiffiop.h
gs/tiff/libtiff/tiffvers.h
gs/tiff/libtiff/uvcode.h
gs/tiff/m4/acinclude.m4
gs/tiff/m4/libtool.m4
gs/tiff/m4/ltoptions.m4
gs/tiff/m4/ltversion.m4
gs/tiff/m4/lt~obsolete.m4
gs/tiff/man/Makefile.in
gs/tiff/man/TIFFClose.3tiff
gs/tiff/man/TIFFDataWidth.3tiff
gs/tiff/man/TIFFError.3tiff
gs/tiff/man/TIFFFlush.3tiff
gs/tiff/man/TIFFGetField.3tiff
gs/tiff/man/TIFFOpen.3tiff
gs/tiff/man/TIFFPrintDirectory.3tiff
gs/tiff/man/TIFFRGBAImage.3tiff
gs/tiff/man/TIFFReadDirectory.3tiff
gs/tiff/man/TIFFReadEncodedStrip.3tiff
gs/tiff/man/TIFFReadEncodedTile.3tiff
gs/tiff/man/TIFFReadRGBAImage.3tiff
gs/tiff/man/TIFFReadRGBAStrip.3tiff
gs/tiff/man/TIFFReadRGBATile.3tiff
gs/tiff/man/TIFFReadRawStrip.3tiff
gs/tiff/man/TIFFReadRawTile.3tiff
gs/tiff/man/TIFFReadScanline.3tiff
gs/tiff/man/TIFFReadTile.3tiff
gs/tiff/man/TIFFSetDirectory.3tiff
gs/tiff/man/TIFFSetField.3tiff
gs/tiff/man/TIFFWarning.3tiff
gs/tiff/man/TIFFWriteDirectory.3tiff
gs/tiff/man/TIFFWriteEncodedStrip.3tiff
gs/tiff/man/TIFFWriteEncodedTile.3tiff
gs/tiff/man/TIFFWriteRawStrip.3tiff
gs/tiff/man/TIFFWriteRawTile.3tiff
gs/tiff/man/TIFFWriteScanline.3tiff
gs/tiff/man/TIFFWriteTile.3tiff
gs/tiff/man/TIFFbuffer.3tiff
gs/tiff/man/TIFFcodec.3tiff
gs/tiff/man/TIFFcolor.3tiff
gs/tiff/man/TIFFmemory.3tiff
gs/tiff/man/TIFFquery.3tiff
gs/tiff/man/TIFFsize.3tiff
gs/tiff/man/TIFFstrip.3tiff
gs/tiff/man/TIFFswab.3tiff
gs/tiff/man/TIFFtile.3tiff
gs/tiff/man/bmp2tiff.1
gs/tiff/man/fax2ps.1
gs/tiff/man/fax2tiff.1
gs/tiff/man/gif2tiff.1
gs/tiff/man/libtiff.3tiff
gs/tiff/man/pal2rgb.1
gs/tiff/man/ppm2tiff.1
gs/tiff/man/ras2tiff.1
gs/tiff/man/raw2tiff.1
gs/tiff/man/rgb2ycbcr.1
gs/tiff/man/sgi2tiff.1
gs/tiff/man/thumbnail.1
gs/tiff/man/tiff2bw.1
gs/tiff/man/tiff2pdf.1
gs/tiff/man/tiff2ps.1
gs/tiff/man/tiff2rgba.1
gs/tiff/man/tiffcmp.1
gs/tiff/man/tiffcp.1
gs/tiff/man/tiffcrop.1
gs/tiff/man/tiffdither.1
gs/tiff/man/tiffdump.1
gs/tiff/man/tiffgt.1
gs/tiff/man/tiffinfo.1
gs/tiff/man/tiffmedian.1
gs/tiff/man/tiffset.1
gs/tiff/man/tiffsplit.1
gs/tiff/man/tiffsv.1
gs/tiff/port/Makefile.am
gs/tiff/port/Makefile.in
gs/tiff/port/dummy.c
gs/tiff/port/getopt.c
gs/tiff/port/libport.h
gs/tiff/port/strcasecmp.c
gs/tiff/port/strtoull.c
gs/tiff/test/Makefile.am
gs/tiff/test/Makefile.in
gs/tiff/test/ascii_tag.c
gs/tiff/test/bmp2tiff_palette.sh
gs/tiff/test/bmp2tiff_rgb.sh
gs/tiff/test/check_tag.c
gs/tiff/test/common.sh
gs/tiff/test/gif2tiff.sh
gs/tiff/test/images/README.txt
gs/tiff/test/images/logluv-3c-16b.tiff
gs/tiff/test/images/minisblack-1c-16b.tiff
gs/tiff/test/images/minisblack-1c-8b.pgm
gs/tiff/test/images/minisblack-1c-8b.tiff
gs/tiff/test/images/minisblack-2c-8b-alpha.tiff
gs/tiff/test/images/miniswhite-1c-1b.pbm
gs/tiff/test/images/miniswhite-1c-1b.tiff
gs/tiff/test/images/palette-1c-1b.tiff
gs/tiff/test/images/palette-1c-4b.tiff
gs/tiff/test/images/palette-1c-8b.bmp
gs/tiff/test/images/palette-1c-8b.gif
gs/tiff/test/images/palette-1c-8b.tiff
gs/tiff/test/images/rgb-3c-16b.tiff
gs/tiff/test/images/rgb-3c-8b.bmp
gs/tiff/test/images/rgb-3c-8b.ppm
gs/tiff/test/images/rgb-3c-8b.tiff
gs/tiff/test/long_tag.c
gs/tiff/test/ppm2tiff_pbm.sh
gs/tiff/test/ppm2tiff_pgm.sh
gs/tiff/test/ppm2tiff_ppm.sh
gs/tiff/test/rewrite_tag.c
gs/tiff/test/short_tag.c
gs/tiff/test/strip.c
gs/tiff/test/strip_rw.c
gs/tiff/test/tiff2pdf.sh
gs/tiff/test/tiff2ps-EPS1.sh
gs/tiff/test/tiff2ps-PS1.sh
gs/tiff/test/tiff2ps-PS2.sh
gs/tiff/test/tiff2ps-PS3.sh
gs/tiff/test/tiff2rgba-logluv-3c-16b.sh
gs/tiff/test/tiff2rgba-minisblack-1c-16b.sh
gs/tiff/test/tiff2rgba-minisblack-1c-8b.sh
gs/tiff/test/tiff2rgba-minisblack-2c-8b-alpha.sh
gs/tiff/test/tiff2rgba-miniswhite-1c-1b.sh
gs/tiff/test/tiff2rgba-palette-1c-1b.sh
gs/tiff/test/tiff2rgba-palette-1c-4b.sh
gs/tiff/test/tiff2rgba-palette-1c-8b.sh
gs/tiff/test/tiff2rgba-rgb-3c-16b.sh
gs/tiff/test/tiff2rgba-rgb-3c-8b.sh
gs/tiff/test/tiffcp-g3-1d-fill.sh
gs/tiff/test/tiffcp-g3-1d.sh
gs/tiff/test/tiffcp-g3-2d-fill.sh
gs/tiff/test/tiffcp-g3-2d.sh
gs/tiff/test/tiffcp-g3.sh
gs/tiff/test/tiffcp-g4.sh
gs/tiff/test/tiffcp-logluv.sh
gs/tiff/test/tiffcp-split-join.sh
gs/tiff/test/tiffcp-split.sh
gs/tiff/test/tiffcp-thumbnail.sh
gs/tiff/test/tiffcrop-R90-logluv-3c-16b.sh
gs/tiff/test/tiffcrop-R90-minisblack-1c-16b.sh
gs/tiff/test/tiffcrop-R90-minisblack-1c-8b.sh
gs/tiff/test/tiffcrop-R90-minisblack-2c-8b-alpha.sh
gs/tiff/test/tiffcrop-R90-miniswhite-1c-1b.sh
gs/tiff/test/tiffcrop-R90-palette-1c-1b.sh
gs/tiff/test/tiffcrop-R90-palette-1c-4b.sh
gs/tiff/test/tiffcrop-R90-palette-1c-8b.sh
gs/tiff/test/tiffcrop-R90-rgb-3c-16b.sh
gs/tiff/test/tiffcrop-R90-rgb-3c-8b.sh
gs/tiff/test/tiffcrop-doubleflip-logluv-3c-16b.sh
gs/tiff/test/tiffcrop-doubleflip-minisblack-1c-16b.sh
gs/tiff/test/tiffcrop-doubleflip-minisblack-1c-8b.sh
gs/tiff/test/tiffcrop-doubleflip-minisblack-2c-8b-alpha.sh
gs/tiff/test/tiffcrop-doubleflip-miniswhite-1c-1b.sh
gs/tiff/test/tiffcrop-doubleflip-palette-1c-1b.sh
gs/tiff/test/tiffcrop-doubleflip-palette-1c-4b.sh
gs/tiff/test/tiffcrop-doubleflip-palette-1c-8b.sh
gs/tiff/test/tiffcrop-doubleflip-rgb-3c-16b.sh
gs/tiff/test/tiffcrop-doubleflip-rgb-3c-8b.sh
gs/tiff/test/tiffcrop-extract-logluv-3c-16b.sh
gs/tiff/test/tiffcrop-extract-minisblack-1c-16b.sh
gs/tiff/test/tiffcrop-extract-minisblack-1c-8b.sh
gs/tiff/test/tiffcrop-extract-minisblack-2c-8b-alpha.sh
gs/tiff/test/tiffcrop-extract-miniswhite-1c-1b.sh
gs/tiff/test/tiffcrop-extract-palette-1c-1b.sh
gs/tiff/test/tiffcrop-extract-palette-1c-4b.sh
gs/tiff/test/tiffcrop-extract-palette-1c-8b.sh
gs/tiff/test/tiffcrop-extract-rgb-3c-16b.sh
gs/tiff/test/tiffcrop-extract-rgb-3c-8b.sh
gs/tiff/test/tiffcrop-extractz14-logluv-3c-16b.sh
gs/tiff/test/tiffcrop-extractz14-minisblack-1c-16b.sh
gs/tiff/test/tiffcrop-extractz14-minisblack-1c-8b.sh
gs/tiff/test/tiffcrop-extractz14-minisblack-2c-8b-alpha.sh
gs/tiff/test/tiffcrop-extractz14-miniswhite-1c-1b.sh
gs/tiff/test/tiffcrop-extractz14-palette-1c-1b.sh
gs/tiff/test/tiffcrop-extractz14-palette-1c-4b.sh
gs/tiff/test/tiffcrop-extractz14-palette-1c-8b.sh
gs/tiff/test/tiffcrop-extractz14-rgb-3c-16b.sh
gs/tiff/test/tiffcrop-extractz14-rgb-3c-8b.sh
gs/tiff/test/tiffdump.sh
gs/tiff/test/tiffinfo.sh
gs/tiff/test/tifftest.h
gs/tiff/tools/Makefile.am
gs/tiff/tools/Makefile.in
gs/tiff/tools/Makefile.vc
gs/tiff/tools/bmp2tiff.c
gs/tiff/tools/fax2ps.c
gs/tiff/tools/fax2tiff.c
gs/tiff/tools/gif2tiff.c
gs/tiff/tools/pal2rgb.c
gs/tiff/tools/ppm2tiff.c
gs/tiff/tools/ras2tiff.c
gs/tiff/tools/rasterfile.h
gs/tiff/tools/raw2tiff.c
gs/tiff/tools/rgb2ycbcr.c
gs/tiff/tools/sgi2tiff.c
gs/tiff/tools/sgisv.c
gs/tiff/tools/thumbnail.c
gs/tiff/tools/tiff2bw.c
gs/tiff/tools/tiff2pdf.c
gs/tiff/tools/tiff2ps.c
gs/tiff/tools/tiff2rgba.c
gs/tiff/tools/tiffcmp.c
gs/tiff/tools/tiffcp.c
gs/tiff/tools/tiffcrop.c
gs/tiff/tools/tiffdither.c
gs/tiff/tools/tiffdump.c
gs/tiff/tools/tiffgt.c
gs/tiff/tools/tiffinfo.c
gs/tiff/tools/tiffmedian.c
gs/tiff/tools/tiffset.c
gs/tiff/tools/tiffsplit.c
gs/tiff/tools/ycbcr.c


2012-06-09 01:16:35 +0100
Robin Watts <robin.watts@artifex.com>
63a26299f47bb9931a2b47772c95c38594535041

Update the example build line given at the top of bmpcmp.c

gs/toolbin/bmpcmp.c


2012-06-07 17:21:55 +0100
Robin Watts <robin.watts@artifex.com>
3cb19e101513e8fa99f86e959a493d7d57b9a69a

Indentation fixes, plus avoid SEGVs in low memory cases.

If allocations fail, spot that and return an error rather than
dereferencing NULL pointers.

gs/base/gdevp14.c


2012-06-08 15:51:43 +0100
Robin Watts <Robin.Watts@artifex.com>
e0fd2c6fe5cdba60e0252993319408ce8962afd3

Enable Memento to be used with jbig2dec

./configure as usual, then "make XCFLAGS=-DMEMENTO".

This involves duplicating memento within jbig2dec. We disable the GS
specific build hacks, and add just one more; if GSBUILD is defined
then jbig2 uses the version of memento from base, rather than the version
of memento from inside jbig2. This avoids any potential problems with
version skew.

gs/base/jbig2.mak
gs/jbig2dec/Makefile.in
gs/jbig2dec/jbig2.h
gs/jbig2dec/memento.c
gs/jbig2dec/memento.h


2012-06-08 13:02:43 +0100
Chris Liddell <chris.liddell@artifex.com>
d7d86ee955e58d18f4ff3071c0f41c4e3f75aaea

Update libpng to version 1.5.10

Minor build revisions to deal with new libpng version:

We copy the predefined pnglibconf.h into the build directory, and have
libpng include it from there (it's less invasive than running the libpng
configure script).

We have to use the same kind of compiler incantation as lcms.mak because
libpng 1.5.x suffers compatibility problems with /Za in Visual Studio
as lcms does.

Minor revision to XPS png reading code to cope with libpng 1.5.x API:

Primarily, the 1.5.x API has made the png_info data type opaque to the calling
code, so all access to the it contains *must* be done through function calls.

No cluster differences expected.

gs/base/png.mak
gs/libpng/ANNOUNCE
gs/libpng/CHANGES
gs/libpng/CMakeLists.txt
gs/libpng/INSTALL
gs/libpng/KNOWNBUG
gs/libpng/LICENSE
gs/libpng/Makefile.am
gs/libpng/Makefile.in
gs/libpng/README
gs/libpng/TODO
gs/libpng/Y2KINFO
gs/libpng/aclocal.m4
gs/libpng/arm/filter_neon.S
gs/libpng/autogen.sh
gs/libpng/config.guess
gs/libpng/config.h.in
gs/libpng/config.sub
gs/libpng/configure
gs/libpng/configure.ac
gs/libpng/contrib/README.txt
gs/libpng/contrib/gregbook/COPYING
gs/libpng/contrib/gregbook/Makefile.sgi
gs/libpng/contrib/gregbook/Makefile.unx
gs/libpng/contrib/gregbook/Makefile.w32
gs/libpng/contrib/gregbook/README
gs/libpng/contrib/gregbook/makevms.com
gs/libpng/contrib/gregbook/readpng.c
gs/libpng/contrib/gregbook/readpng2.c
gs/libpng/contrib/gregbook/readpng2.h
gs/libpng/contrib/gregbook/rpng-win.c
gs/libpng/contrib/gregbook/rpng-x.c
gs/libpng/contrib/gregbook/rpng2-win.c
gs/libpng/contrib/gregbook/rpng2-x.c
gs/libpng/contrib/gregbook/writepng.c
gs/libpng/contrib/libtests/pngvalid.c
gs/libpng/contrib/pngminim/README
gs/libpng/contrib/pngminim/decoder/README
gs/libpng/contrib/pngminim/decoder/gather.sh
gs/libpng/contrib/pngminim/decoder/makefile
gs/libpng/contrib/pngminim/decoder/pngusr.dfa
gs/libpng/contrib/pngminim/decoder/pngusr.h
gs/libpng/contrib/pngminim/encoder/README
gs/libpng/contrib/pngminim/encoder/dummy_inflate.c
gs/libpng/contrib/pngminim/encoder/gather.sh
gs/libpng/contrib/pngminim/encoder/makefile
gs/libpng/contrib/pngminim/encoder/pngusr.dfa
gs/libpng/contrib/pngminim/encoder/pngusr.h
gs/libpng/contrib/pngminim/preader/README
gs/libpng/contrib/pngminim/preader/gather.sh
gs/libpng/contrib/pngminim/preader/makefile
gs/libpng/contrib/pngminim/preader/pngusr.dfa
gs/libpng/contrib/pngminim/preader/pngusr.h
gs/libpng/contrib/pngminus/makefile.std
gs/libpng/contrib/pngminus/png2pnm.c
gs/libpng/contrib/pngsuite/README
gs/libpng/contrib/pngsuite/ftbbn1g04.png
gs/libpng/contrib/pngsuite/ftbbn2c16.png
gs/libpng/contrib/pngsuite/ftbbn3p08.png
gs/libpng/contrib/pngsuite/ftbgn2c16.png
gs/libpng/contrib/pngsuite/ftbgn3p08.png
gs/libpng/contrib/pngsuite/ftbrn2c08.png
gs/libpng/contrib/pngsuite/ftbwn1g16.png
gs/libpng/contrib/pngsuite/ftbwn3p08.png
gs/libpng/contrib/pngsuite/ftbyn3p08.png
gs/libpng/contrib/pngsuite/ftp0n1g08.png
gs/libpng/contrib/pngsuite/ftp0n2c08.png
gs/libpng/contrib/pngsuite/ftp0n3p08.png
gs/libpng/contrib/pngsuite/ftp1n3p08.png
gs/libpng/contrib/visupng/PngFile.c
gs/libpng/contrib/visupng/PngFile.h
gs/libpng/contrib/visupng/README.txt
gs/libpng/contrib/visupng/VisualPng.c
gs/libpng/contrib/visupng/VisualPng.dsp
gs/libpng/contrib/visupng/resource.h
gs/libpng/depcomp
gs/libpng/example.c
gs/libpng/install-sh
gs/libpng/libpng-1.2.42.txt
gs/libpng/libpng-1.2.44.txt
gs/libpng/libpng-config.in
gs/libpng/libpng-manual.txt
gs/libpng/libpng.3
gs/libpng/libpng.pc.in
gs/libpng/libpngpf.3
gs/libpng/ltmain.sh
gs/libpng/mkinstalldirs
gs/libpng/png.5
gs/libpng/png.c
gs/libpng/png.h
gs/libpng/pngconf.h
gs/libpng/pngdebug.h
gs/libpng/pngerror.c
gs/libpng/pnggccrd.c
gs/libpng/pngget.c
gs/libpng/pnginfo.h
gs/libpng/pngmem.c
gs/libpng/pngpread.c
gs/libpng/pngpriv.h
gs/libpng/pngread.c
gs/libpng/pngrio.c
gs/libpng/pngrtran.c
gs/libpng/pngrutil.c
gs/libpng/pngset.c
gs/libpng/pngstruct.h
gs/libpng/pngtest.c
gs/libpng/pngtest.png
gs/libpng/pngtrans.c
gs/libpng/pngusr.dfa
gs/libpng/pngvcrd.c
gs/libpng/pngwio.c
gs/libpng/pngwrite.c
gs/libpng/pngwtran.c
gs/libpng/pngwutil.c
gs/libpng/projects/beos/x86-shared.proj
gs/libpng/projects/beos/x86-shared.txt
gs/libpng/projects/beos/x86-static.proj
gs/libpng/projects/beos/x86-static.txt
gs/libpng/projects/cbuilder5/libpng.bpf
gs/libpng/projects/cbuilder5/libpng.bpg
gs/libpng/projects/cbuilder5/libpng.bpr
gs/libpng/projects/cbuilder5/libpng.cpp
gs/libpng/projects/cbuilder5/libpng.readme.txt
gs/libpng/projects/cbuilder5/libpngstat.bpf
gs/libpng/projects/cbuilder5/libpngstat.bpr
gs/libpng/projects/cbuilder5/zlib.readme.txt
gs/libpng/projects/netware.txt
gs/libpng/projects/owatcom/libpng.tgt
gs/libpng/projects/owatcom/libpng.wpj
gs/libpng/projects/owatcom/pngconfig.mak
gs/libpng/projects/owatcom/pngtest.tgt
gs/libpng/projects/owatcom/pngvalid.tgt
gs/libpng/projects/visualc6/README.txt
gs/libpng/projects/visualc6/libpng.dsp
gs/libpng/projects/visualc6/libpng.dsw
gs/libpng/projects/visualc6/pngtest.dsp
gs/libpng/projects/visualc71/PRJ0041.mak
gs/libpng/projects/visualc71/README.txt
gs/libpng/projects/visualc71/README_zlib.txt
gs/libpng/projects/visualc71/libpng.sln
gs/libpng/projects/visualc71/libpng.vcproj
gs/libpng/projects/visualc71/pngtest.vcproj
gs/libpng/projects/visualc71/zlib.vcproj
gs/libpng/projects/vstudio/libpng/libpng.vcxproj
gs/libpng/projects/vstudio/pnglibconf/pnglibconf.vcxproj
gs/libpng/projects/vstudio/pngtest/pngtest.vcxproj
gs/libpng/projects/vstudio/pngvalid/pngvalid.vcxproj
gs/libpng/projects/vstudio/readme.txt
gs/libpng/projects/vstudio/vstudio.sln
gs/libpng/projects/vstudio/zlib.props
gs/libpng/projects/vstudio/zlib/zlib.vcxproj
gs/libpng/projects/wince.txt
gs/libpng/projects/xcode/Info.plist
gs/libpng/projects/xcode/libpng.xcodeproj/.gitignore
gs/libpng/projects/xcode/libpng.xcodeproj/project.pbxproj
gs/libpng/scripts/README.txt
gs/libpng/scripts/checksym.awk
gs/libpng/scripts/chkfmt
gs/libpng/scripts/def.dfn
gs/libpng/scripts/descrip.mms
gs/libpng/scripts/libpng-config-head.in
gs/libpng/scripts/libpng-config.in
gs/libpng/scripts/libpng.icc
gs/libpng/scripts/libpng.pc-configure.in
gs/libpng/scripts/libpng.pc.in
gs/libpng/scripts/makefile.32sunu
gs/libpng/scripts/makefile.64sunu
gs/libpng/scripts/makefile.acorn
gs/libpng/scripts/makefile.aix
gs/libpng/scripts/makefile.amiga
gs/libpng/scripts/makefile.atari
gs/libpng/scripts/makefile.bc32
gs/libpng/scripts/makefile.beos
gs/libpng/scripts/makefile.bor
gs/libpng/scripts/makefile.cegcc
gs/libpng/scripts/makefile.cygwin
gs/libpng/scripts/makefile.darwin
gs/libpng/scripts/makefile.dec
gs/libpng/scripts/makefile.dj2
gs/libpng/scripts/makefile.elf
gs/libpng/scripts/makefile.freebsd
gs/libpng/scripts/makefile.gcc
gs/libpng/scripts/makefile.gcmmx
gs/libpng/scripts/makefile.hp64
gs/libpng/scripts/makefile.hpgcc
gs/libpng/scripts/makefile.hpux
gs/libpng/scripts/makefile.ibmc
gs/libpng/scripts/makefile.intel
gs/libpng/scripts/makefile.knr
gs/libpng/scripts/makefile.linux
gs/libpng/scripts/makefile.mingw
gs/libpng/scripts/makefile.mips
gs/libpng/scripts/makefile.msc
gs/libpng/scripts/makefile.ne12bsd
gs/libpng/scripts/makefile.netbsd
gs/libpng/scripts/makefile.nommx
gs/libpng/scripts/makefile.openbsd
gs/libpng/scripts/makefile.os2
gs/libpng/scripts/makefile.sco
gs/libpng/scripts/makefile.sggcc
gs/libpng/scripts/makefile.sgi
gs/libpng/scripts/makefile.so9
gs/libpng/scripts/makefile.solaris
gs/libpng/scripts/makefile.solaris-x86
gs/libpng/scripts/makefile.std
gs/libpng/scripts/makefile.sunos
gs/libpng/scripts/makefile.tc3
gs/libpng/scripts/makefile.vcawin32
gs/libpng/scripts/makefile.vcwin32
gs/libpng/scripts/makefile.watcom
gs/libpng/scripts/makevms.com
gs/libpng/scripts/options.awk
gs/libpng/scripts/png32ce.def
gs/libpng/scripts/pnglibconf.dfa
gs/libpng/scripts/pnglibconf.h.prebuilt
gs/libpng/scripts/pnglibconf.mak
gs/libpng/scripts/pngos2.def
gs/libpng/scripts/pngw32.def
gs/libpng/scripts/pngw32.rc
gs/libpng/scripts/pngwin.rc
gs/libpng/scripts/smakefile.ppc
gs/libpng/scripts/sym.dfn
gs/libpng/scripts/symbols.def
gs/libpng/scripts/symbols.dfn
gs/libpng/scripts/vers.dfn
gs/libpng/test-pngtest.sh
gs/libpng/test-pngvalid-full.sh
gs/libpng/test-pngvalid-simple.sh
xps/xpspng.c


2012-06-08 13:21:44 +0100
Robin Watts <robin.watts@artifex.com>
a85db51fecf74ba66bada63afece1799d58681ce

Update bmpcmp png reading to cope with 8bit grayscale pngs.

This used to work, but became broken with the device n support (when I
stripped out the 8bpp operating modes)

gs/toolbin/bmpcmp.c


2012-06-08 11:05:52 +0100
Ken Sharp <ken.sharp@artifex.com>
304d22a1744fa6ac07355703069cacd54f0c3ac4

Move 'HighLevelDevice' from pdfwrite to gdevvec.c so vector devices inherit it.

The 'HighLevelDevice' parameter was only defined for pdfwrite/ps2write, here
we remove it from there and instead put it in the 'vector' device, so that
all deices based on the vector device will have the paramter set.

No differences expected

gs/base/gdevpdfb.h
gs/base/gdevpdfp.c
gs/base/gdevpdfx.h
gs/base/gdevvec.c


2012-06-07 16:47:10 +0100
Ken Sharp <ken.sharp@artifex.com>
1c8138bc1db9b3627a2ba1047568c385568061d0

pdfwrite - fix handling of transparent images from PDF interpreter

The PDF interperter can insert extra groups when dealing with transparent
images, which we don't want to emit in the output PDF. These are marked
by a 'image_with_SMask' flag.

Previously we stored a boolean in the device structure, and tested that, if
it was true we skipped the begin and transparency group operations.

It turns out that it is possible to get a new group *inside* the generated
group we are skipping, if that happens then the second group would reset
the flag. This led to us skipping the 'begin' but not the 'end' with predictabley
bad consequences.

In this commit we alter the boolena to an unsigned int, and treat it as a
series of bits. We flip the bits based on the 'FormDepth' which we track
separately. This allows up to 32 levels of nesting which ought to be enough
to deal even with Cairo files.

Expected differences
Bug689897.pdf exhibits small differences, not visually apparent. I believe this
is a progression but its so slight as to be difficult to tell.

gs/base/gdevpdft.c
gs/base/gdevpdfx.h


2012-06-07 13:20:08 +0100
Robin Watts <robin.watts@artifex.com>
683bcefa2a8a05fb57d2d0d2d7aebf16de6bd11d

Add new '--debug=gc-disable' flag to completely disable gc.

Because I don't have any more hair to pull out.

gs/base/gdbflags.h
gs/psi/interp.c


2012-06-06 23:02:15 +0100
Robin Watts <robin.watts@artifex.com>
eb4f815d9b21a42280acb7ad2447ce69577b4ae5

Fix pdf14_push_transparency_state stack handling.

Rather than creating a new mask and adding it as the previous one,
we should be making the new mask the topmost one on the stack.

This way pop and push correctly do the opposite thing.

gs/base/gdevp14.c


2012-06-06 17:16:53 +0100
Shailesh Mistry <shailesh.mistry@hotmail.co.uk>
6d24d5b9135f8ef6aa4da51a03952d5b39beb59a

Bug 693050 : Fixes CERT reported issue labelled HeapError

gs/jbig2dec/jbig2.c
gs/jbig2dec/jbig2_image.c
gs/jbig2dec/jbig2_metadata.c
gs/jbig2dec/jbig2_priv.h
gs/jbig2dec/jbig2_symbol_dict.c
gs/jbig2dec/jbig2_text.c


2012-06-06 10:48:44 +0100
Chris Liddell <chris.liddell@artifex.com>
a0c6b9f271d715f122c01fc0fbbfd8d6cdf9c372

Bug 693002 (again): fix doc and example file install list

There were a number of missing files from the Unix install targets for
the documentation and example files. Also, there were a few files in the
list which no longer exist.

No cluster differences.

gs/base/unixinst.mak


2012-06-06 09:23:57 +0100
Chris Liddell <chris.liddell@artifex.com>
07799bffd70992116da89ed4d1717ce441f71461

Bug 693094 related: missing libtiff build failure.

If libtiff is missing, we correctly disabled the devices classified as
"tiff devices", but left the "fax devices" in place, and the fax devices
depend on libtiff.

We'll now disable *all* the libtiff dependent devices if libtiff is not found.

No cluster differences.

gs/base/configure.ac


2012-06-06 09:38:39 +0100
Ken Sharp <ken.sharp@artifex.com>
cf75bee36e3a42f1bc253563a11169b47b92d307

pdfwrite - don't write CIDSet for subset CIDFonts when emitting PDF/A-2

The specification for CIDSet has changed for PDF/A-2 and I am currently
unable to create a CIDSet which the Acrobat pre-flught tool will validate.

Since PDF/A-2 now makes CIDSet optional, this commit omits it when we are
producing PDF/A-2, so that we can create a valid file.

No differences expected

gs/base/gdevpdtd.c


2012-06-05 17:44:16 -0600
Henry Stiles <henry.stiles@artifex.com>
5fdae25deb3fa189f9d01a573fa77c2ec0f968ba

Complete support for HPGL/2 new fill code, bug 692809.

The new implementation which eliminates many unnecessary "moveto's"
resulted in unexpected improvements in several CET files where
creating a new subpath caused a join to be missing.

pcl/pgdraw.c
pcl/pgdraw.h
pcl/pgpoly.c
pcl/pgvector.c


2012-05-31 15:23:12 -0600
Henry Stiles <henry.stiles@artifex.com>
d303c79851b02aa810525bdaa4751c8247b66912

A new state variable added that indicates if a high level device is in use.

pcl/pcstate.h
pcl/pctop.c
pl/plmain.c
pl/plmain.h
pl/pltop.h


2012-05-19 16:53:26 -0600
Henry Stiles <henry.stiles@artifex.com>
8cbdd395e653227966a682b9b2de869565b49b5e

Fixes 693049 - incorrect ccitt raster output.

The CCITT filter was initialized to an additive color space instead of
subtractive. Problem analyzed by Shailesh Mistry.

pcl/rtraster.c


2012-05-16 15:26:11 -0600
Henry Stiles <henry.stiles@artifex.com>
868eda64307dabd30e308e07962346ef5991d3e3

Changes to support the new fill code which allows filling when the pen is up.

With the graphics library implementation of the hpgl/2 style fill code
it is necessary to avoid unnecessary consecutive moveto's which were
harmless in the previous code. In particular, closepath works
differently if there are 2 or more consecutive moveto's. Using normal
PostScript style paths the closepath will return to the last moveto in
the path, the new code will convert a consecutive moveto to "gapto"
and retain the first moveto and closepath will return to the original
moveto.

pcl/pgconfig.c
pcl/pgdraw.c
pcl/pglabel.c
pcl/pgpoly.c
pcl/pgvector.c


2012-05-07 07:45:46 -0600
Henry Stiles <henry.stiles@artifex.com>
c89c0b750594deac1b091776d18a9f0ed718ab60

Debugging for dumping data from PCL commands that specify byte data
and a data length.

pcl/pcparse.c


2012-05-18 15:29:05 -0700
Ray Johnston <ray.johnston@artifex.com>
3e81e6caf112d59e31c17924ee89d7f3abddd7b1

Fix bug 693034 -- correct comment in gxdevcl.h for GX_CINFO_UNKNOWN_SEP_LIN

gs/base/gxdevcli.h


2012-06-05 16:39:39 +0100
Shailesh Mistry <shailesh.mistry@hotmail.co.uk>
54144189c8093c5c09d2f50d8cd57abc34ddd385

Bug 693025 : Correct memory leaks reported by Zeniko

gs/jbig2dec/jbig2_symbol_dict.c


2012-06-05 09:48:58 +0100
Chris Liddell <chris.liddell@artifex.com>
ad53769b1d690e790750f01bd6420fb2b8b76279

Bug 693088: fix romfs?.dev dependency typo

The two romfs?.dev targets had ECHO_XE in their dependencies, and it shouldbe
ECHOGS_XE.

No cluster differences.

gs/base/lib.mak


2012-06-04 17:02:46 +0100
Robin Watts <robin.watts@artifex.com>
5b52e4534a2a7b9bc5d19a749df60e636ac4aa65

Tweak filenames from RAW_DUMP debugging code.

Output 2 digits before ")".

In multistage output, put 'a', 'b', 'c' etc after ")" to ensure
that they appear in alphasorted results in the same order as they
are produced.

gs/base/gdevp14.c
gs/base/gxblend.c
gs/base/gxblend1.c


2012-06-04 15:22:57 +0100
Ken Sharp <ken.sharp@artifex.com>
316a85cd0c7311716e85dc8f5ab32e36301e829c

pdfwrite - Make sure TT fonts in PDF files are named using the PDF font name

Bug #693086

The problem was that the TrueType code used by the PDF interpreter uses the
font name from the TrueType font, not the name from the PDF file. If two
subsets are present then pdfwrite is unable to distinguish them if the
Encodings are apparently the same (as they are here) as the fonts have have
the same name internally, even though they are different in the PDF.

TrueType CIDFonts already take the font naem form the PDF file and apply that
so here we simply do the same for regular TrueType fonts.

This causes a small difference in Bug689073.pdf, apparently becuase it
contains two fonts called Arial,Bold

gs/Resource/Init/gs_ttf.ps
gs/Resource/Init/pdf_font.ps


2012-06-03 13:37:58 -0400
Alex Cherepanov <alex.cherepanov@artifex.com>
a6e24b063febdc3286015e94854cac156e70e2f1

Rename pdf_open_document() to pdfwrite_pdf_open_document() to avoid a
name conflict with mupdf.

gs/base/gdevpdf.c
gs/base/gdevpdfp.c
gs/base/gdevpdfu.c
gs/base/gdevpdfx.h


2012-06-01 11:50:32 -0700
Michael Vrhel <michael.vrhel@artifex.com>
c7aeb590a7a435d746a9400a15f8392746ac53c4

Addition of capability for overprint simulation for CMYK colorants with RGB target device

To have an RGB device do this simulation of CMYK overprinting you should have the device set
its opmode in color info from GX_CINFO_OPMODE_UNKNOWN to GX_CINFO_OPMODE_RGB. In addition,
to ensure consistent color in the document you should use the -dUseFastColor option since
simulated RGB overprinting uses unmanaged color transformations.

The fix required the addition of a compositor parameter which was a k value to be make use
when we had K overprinting occurring.

To port this fix to an earlier ghostscript release (pre-ICC) you will want to create a
gx_set_overprint_DeviceRGB procedure for the gs_color_space_type_DeviceRGB type. This will
be similar to gx_set_overprint_DeviceCMYK except it will end up calling gx_set_overprint_rgb
instead of gx_set_overprint_cmyk. See changes in gsicc.c.

gs/base/gscdevn.c
gs/base/gscsepr.c
gs/base/gscspace.c
gs/base/gsicc.c
gs/base/gsovrc.c
gs/base/gsovrc.h
gs/base/gxcspace.h
gs/base/gxdevcli.h
gs/base/gxoprect.c
gs/base/gxoprect.h


2012-06-01 20:11:09 +0100
Robin Watts <robin.watts@artifex.com>
20e81025390c8487cb9794b37148f4bee9063bdc

Update RAW_DUMP_AS_PAM to cope with tag planes, and greyscale spaces.

gs/base/gxblend.c


2012-06-01 09:21:38 -0700
Marcos H. Woehrmann <marcos.woehrmann@artifex.com>
b1558100af4820b8718e7e346c3225d48eecf07c

Fix minor typo in German man page - Bug 693080

gs/man/de/pdf2dsc.1


2012-05-31 17:51:51 +0100
Shailesh Mistry <shailesh.mistry@hotmail.co.uk>
9cddb4c193c6123140c6f7b1960db34025f86e40

Bug 693025: Correct typos reported by Zeniko

gs/jbig2dec/jbig2_huffman.c
gs/jbig2dec/jbig2_symbol_dict.c


2012-05-31 14:43:11 +0100
Ken Sharp <ken.sharp@artifex.com>
da9b12c5056369c5593d5b3604e787052fdd2f13

pdfwrite - properly mark cos_stream as closed when closing associated stream

Bug #6930 "Regression: /rangecheck in --pdfmark-- starting with 25b6a2cdeb5a90bb7803958f2bf15b618fbcf120"

Commit 25b6a2cdeb5a90bb7803958f2bf15b618fbcf120 was a little too
enthusiastic. In addition to properly closing the streams, I inadvertently
removed the code which marks the pdfwrite cos_stream object as closed when
we close the stream.

Ordinarily this doesn't matter, but the pdfmark code checks to maek sure the
stream associated with a named object is closed when it is used, and the
removal of the code left it apparently open, causing the error.

No differences expected

gs/base/gdevpdti.c


2012-05-31 10:59:03 +0100
Ken Sharp <ken.sharp@artifex.com>
33dda0841be40cc8da9f350d10749ce8f4142fb7

pdfwrite - memory problems, don't free dictionary parameter lists too early

Bug #693069 "Regression: lockup with pdfwrite"

The image dictioanry parameter lists for distillerparams were being freed
after they were added to the 'parent' parameter list. If the same memory
should then be reused for another parameter, the parent list would end up
with corrupted linked list pointers leading to a variety of problems
includign seg faults and loops.

Although this appears as a regression its not really. The existing code only
worked by fluke, all that the offending commit did was change he memory
layout, triggering the problem.

My initial feeling was that the c_param_write code should 'deep copy' dict
parameters, just as it does for other complex objects. However reviewing the
existing usage makes it clear that this is *not* what is done at present.

Instead the list is simply inserted, and only freed when the parent list is
released. This seems to me to be poor design, because other complex types
are handled differntly, but that's the way it is. Copying the dictionary
would mean reviewing all the places that use it and modifying them. It
makes more sense to alter the pdfwrite code so that it doesn't release and
free the dictioanry list.

Took the opportunity to refactor a few places in the code which use massive
'if' clauses which call code. This construct is confusing and difficult to
debug.

No expected differences

gs/base/gdevpsdp.c


2012-05-30 17:42:29 +0100
Shailesh Mistry <shailesh.mistry@hotmail.co.uk>
c579ff60fd8f7a83d46a87ed0813536871c4d13e

Bug 693050 : Fixes CERT reported issue labelled DestAvNearNull

gs/jbig2dec/jbig2_image.c
gs/jbig2dec/jbig2_page.c
gs/jbig2dec/jbig2_symbol_dict.c
gs/jbig2dec/jbig2_text.c


2012-05-29 11:04:55 -0700
Michael Vrhel <michael.vrhel@artifex.com>
9623d013b27cd25257fa21ddb7d2df9c75f3e52d

Fix for mistake in hashcode setting for CMM used with UseFastColor option

Fixes bug 693036

gs/base/gsicc_cache.c
gs/base/gsicc_nocm.c


2012-05-28 13:05:00 +0100
Robin Watts <robin.watts@artifex.com>
f30e8944b915936befffbadc036e1de16659914e

Add 16bpp support to downscaler.

Currently unused, but passes local tests with James Cloos' proposed
psdcmyk16 and psdrgb16 devices.

gs/base/gdevpsd.c
gs/base/gdevtsep.c
gs/base/gxdownscale.c
gs/base/gxdownscale.h


2012-05-27 23:35:06 +0100
Shailesh Mistry <shailesh.mistry@hotmail.co.uk>
c3c704eeab14e5d6401edd69867b06c812ce8f5a

Bug 693050 : Fixes CERT reported issue labelled BranchAvNearNull

gs/jbig2dec/jbig2_symbol_dict.c


2012-05-27 22:47:02 +0100
Shailesh Mistry <shailesh.mistry@hotmail.co.uk>
321055631457902050df08e645b0f91536cdd417

Bug 693050 : Fixes CERT reported issue labelled BlockMoveAv

gs/jbig2dec/jbig2_symbol_dict.c


2012-05-27 21:43:27 +0100
Shailesh Mistry <shailesh.mistry@hotmail.co.uk>
fb006f93c6fb6278a58886e0f72a5836c674ed22

Bug 693050 : Fixes CERT reported issue labelled SegFaultOnPc

gs/jbig2dec/jbig2_generic.c
gs/jbig2dec/jbig2_image.c


2012-05-26 09:07:54 +0100
Ken Sharp <ken.sharp@artifex.com>
13922518fea2f417ff2d2dfa153c95396616e8ae

pdfwrite - remove unused variable to silence compiler warning

Although the warning is flagged as new, I don't think it is, its just that
the variable declaration has moved to a new line as a result of a commit
and so it appears to be new.

In any event, the variable is unused and has been removed.

gs/base/gdevpsf1.c


2012-05-25 17:55:31 +0100
Robin Watts <robin.watts@artifex.com>
fad17657f6f583dbdef5a634d0f11dd79e446ffe

Bug 693070: psdrgb wasn't giving corrupted output.

There were actually 2 bugs in here. The first one was spotted and
fixed by James Cloos - many thanks; the arguments to memcpy were
reversed.

The second one was to do with the fact that postscript operation
now thinks it has 14 colors. When we encode/decode, we were packing
the colors into a word in such a way that we were losing the interesting
ones off the top. Reverse the order of packing, and all is well.

This still leaves an "interesting" fact about this device; we loop:

for (chan_idx = 0; chan_idx < num_comp; chan_idx++)
...
for (j = 0; j < xc->height; j++)
...
get_bits_rectangle

So, in the case where we have n components, and more than 1 band
we'll be rendering the entire file n times - despite the fact that
we request all the colors each time!

gs/base/gdevpsd.c


2012-05-25 16:35:19 +0100
Robin Watts <robin.watts@artifex.com>
1c9e30044d1d698701091c9913a81e4b3688a134

Add new -debug=validate-chunks debug flag.

This causes a validation to be run after every operator is interpreted.

Also, update the chunk validation code to give more informative error
messages when problems are found. (For instance, if a reference is
found to be duff, it's often the source of that reference you are
interested in, not the reference itself).

gs/base/gdbflags.h
gs/base/gsmisc.c
gs/psi/ialloc.h
gs/psi/ilocate.c
gs/psi/interp.c
gs/psi/zvmem.c


2012-05-25 14:12:37 +0100
Ken Sharp <ken.sharp@artifex.com>
c6f9e998b9ab277f85815b927a841c26c507928a

pdfwrite - fix /OtherSubr stripping with Multiple Master fonts

Commit:
9f656faebac150c6aceca16c5ef6a78b92b6da43

exposed a problem with this code, when we are stripping /OtherSubrs from MM
fonts, the new CharString could be larger than the original (this can't
happen for non-MM fonts). Because we only allocated a buffer big enough to
hold the original (unstripped) data, we ended up with a buffer overflow.

The code now calls the 'strip' routine twice, the first time to calculate
how big a buffer will be required, the second time to actually do the work.

This will fix the crash in test-setweightvector.ps introduced by the
earlier commit

gs/base/gdevpsf1.c


2012-05-25 14:08:52 +0100
Ken Sharp <ken.sharp@artifex.com>
9f656faebac150c6aceca16c5ef6a78b92b6da43

pdfwrite - address problems with stringwidth and composite fonts

Bug #693059 "Asian fonts placed badly with pdfwrite output"

The problem here was caused by the way that pdf_process_string deals with 'widths'
when responding to a strginwidth operation versus a regular show.

When handling stringwidth the width of each glyph is added to the enumerator
'returned.total_width'. However, when handling a regular show, the width of
the glyphs are simply stored directly into 'returned.total_width'.

To handle the latter case the higher level code maintains its own total width
but that was getting confused when a stringwidth was used.

Ideally we would fix pdf_process_string to behave the same whether in response
to a stringwidht or a show, but that routine is called from other places and
making it coherent looks difficult. Instead we now process stringwidth
differently form show, and don't accuulate wodths when we have a steingwidth
operation in the higher level composite font code routines.

No differences expected

gs/base/gdevpdtc.c


2012-05-24 09:03:09 +0100
Robin Watts <robin.watts@artifex.com>
e21f69e10ddd68ea807773a8b57e10d23bd74a4f

Fix a couple of error messages in bmpcmp

gs/toolbin/bmpcmp.c


2012-05-23 15:53:53 +0100
Robin Watts <robin.watts@artifex.com>
e13b5cf5b8c7db67f88c5da62eeb8c8a4d077436

Update psdcmyk and psdrgb to use the downscaler.

gs/base/gdevpsd.c
gs/base/gdevtsep.c


2012-05-23 10:18:56 +0100
Robin Watts <robin.watts@artifex.com>
27afc73a71b9c059b9d5358ed816cdf50e0a1f08

Fix 2 'unused variable' warnings in downscaler.

gs/base/gxdownscale.c


2012-05-22 20:42:31 +0100
Robin Watts <robin.watts@artifex.com>
ce801afb90764b4863dab9e51bc18082222fb3ce

Unroll some loops in the downscaler for speed.

Time to render first 10 pages of pdf_reference17.pdf to tiff:
@200dpi = 5.2s
@600dpi downscaled by 3 = 7.2s (before this)
@600dpi downscaled by 3 = 6.5s (after this)

gs/base/gxdownscale.c


2012-05-22 13:35:31 +0100
Robin Watts <robin.watts@artifex.com>
15cc33536ada0b4cb105110a48df0132539c54db

Add downscaler functionality to tiffsep.

Update tiffsep to call the downscaler. This means adding MinFeatureSize
and DownScaleFactor to tiffsep. Also add BitsPerComponent to allow us to
specify 8 (default) or 1 (monochrome). MinFeatureSize is ignored except
in monochrome mode.

This has meant slight reworking of the downscaler to cope with planar
buffers, and its use of get_bits_rectangle rather than get_bits.

Also updated docs, and fixed some leaks on memory allocation failures
within tiffsep.

gs/base/gdevtsep.c
gs/base/gxdownscale.c
gs/base/gxdownscale.h
gs/base/lib.mak
gs/doc/Devices.htm


2012-05-21 08:54:59 +0100
Ken Sharp <ken.sharp@artifex.com>
4677f28c2a0bf72a6bc89e785cc651d3deedc043

txtwrite - Bug #693046 handle TEXT_FROM_CHARS and TEXT_FROM_SINGLE_CHAR ops

I seem to have overlooked these operations when writing the original code,
probably because I couldn't' find any test cases. However PCL seems to make
extensive use of them, and the lack of code causes access outside array
boundaries.

Fixed here in a simplistic fashion, which seems to work well.

No differences expected, txtwrite is not cluster tested

gs/base/gdevtxtw.c


2012-05-20 16:31:14 -0400
Alex Cherepanov <alex.cherepanov@artifex.com>
535d11e8a1d667a3d71680b27f18e4a89df98b2d

Bug 693044: fix pdfopt utility.

Disable checking for the max pdf object number during PDF linearisation,
because linearisation adds a few new objects to the PDF file.

gs/lib/pdfopt.ps


2012-05-18 14:32:56 +0100
Ken Sharp <ken.sharp@artifex.com>
40cc976eae680d6a6f1297c5a0d556a37e9eb4b8

txtwrite - clean up some benign silly compiler warnings

gs/base/gdevtxtw.c


2012-05-18 12:56:17 +0100
Ken Sharp <ken.sharp@artifex.com>
44869447f94a15ae0082b89668576636e4c39575

txtwrite - add a 'do nothing' rop device method to avoid errors

gs/base/gdevtxtw.c


2012-05-16 14:55:02 +0100
Robin Watts <robin.watts@artifex.com>
1831d329606c767069dbc706632c4b30db4488ce

Attempt to fix dashing in hpgl path mode.

We were giving up dashing as soon as we hit the first gap in a path.
Fix by treating gaps as an 'ink off' dash segment.

gs/base/gxpdash.c


2012-05-16 18:22:38 +0100
Robin Watts <robin.watts@artifex.com>
422773777f1e6df2fd4decb3ca6b65801acfc1ac

Update bmpcmp to cope with rgb and greyscale psd files.

Also have a better stab at handling spot equivalent colors.

CLUSTER_UNTESTED.

gs/toolbin/bmpcmp.c


2012-05-15 20:00:19 +0100
Robin Watts <robin.watts@artifex.com>
8610551db7cc10c72d7a6bbfaa7ffe61d521a5d9

Memento tweak: Allow MEMENTO_LEAKONLY to be defined by command line

Currently Memento undefines MEMENTO_LEAKONLY at the top of memento.c.

Change it here not to do that, so it can be supplied as part of a
CFLAGS or XCFLAGS line.

CLUSTER_UNTESTED.

gs/base/memento.c


2012-05-15 19:44:50 +0100
Robin Watts <robin.watts@artifex.com>
a846030605e04c09265241853ed5ac3442c258e9

Leak checking tweaks; memory finalisation and param handling

When Ghostscript shuts down, it closes its malloc handler, which frees
all the outstanding blocks it knows about. This is unhelpful behaviour
when checking for leaks, so we disable this freeing in MEMENTO builds.

Also, the Ghostscript arg handling code is quite keen on 'arg_copy'ing
args only to pass them into routines that immediate copy them again
into heap allocated buffers. These copies are then allowed to leak.

Where it is obviously safe, avoid these copies. Where it's not so clear
free them (using a new arg_free function).

gs/base/gsargs.c
gs/base/gsargs.h
gs/base/gsmalloc.c
gs/psi/imainarg.c


2012-05-15 18:22:06 +0100
Robin Watts <robin.watts@artifex.com>
b549f7df132df28783e34ef6839812b691c9eed5

Bug 693039: Fix Memento crashes

After reallocing a block, it is best to avoid reading from the old
location. (Read flags, then realloc, then write flags).

Also some minor tweaks to avoid warnings etc.

gs/base/memento.c


2012-05-15 12:10:14 +0100
Chris Liddell <chris.liddell@artifex.com>
be37389c29534ffd9ce6bb31353f4f8c0273bfd3

Add a bunch of derived files to .gitignore

CLUSTER_UNTESTED

.gitignore


2012-05-15 12:08:18 +0100
Chris Liddell <chris.liddell@artifex.com>
676ca45571121495de22c02ac7b03da14f75525c

Call libtiff configure from ghostpdl configure.

We had worked around the lack of a ghostpdl configure script by calling the
libtiff configure from the Makefile - which is a horrible hack.

Now that ghostpdl has a configure script, we can do the right thing, and call
the libtiff script from the ghostodl one.

No cluster differences.

Makefile
configure.ac


2012-05-14 21:00:46 +0100
Chris Liddell <chris.liddell@artifex.com>
827e5420e2d0b3c1bb3b9e656c27236ac650eacc

Really remove derived files from jbig2dec directory

No cluster differences.

gs/jbig2dec/config.h
gs/jbig2dec/libtool


2012-05-14 18:08:00 +0100
Shailesh Mistry <shailesh.mistry@hotmail.co.uk>
26ac0d3505530c6782dffeeaa053328a481afcb0

Bug 693025: Updated patch from Zeniko to fix various crashes and leaks

gs/jbig2dec/jbig2_halftone.c
gs/jbig2dec/jbig2_huffman.c
gs/jbig2dec/jbig2_image.c
gs/jbig2dec/jbig2_refinement.c
gs/jbig2dec/jbig2_segment.c
gs/jbig2dec/jbig2_symbol_dict.c
gs/jbig2dec/jbig2_text.c


2012-05-14 14:26:24 +0100
Ken Sharp <ken.sharp@artifex.com>
2699766796d407f04e790ca1374f68be00532847

remove an unused variable to silence a compiler warning

gs/base/gdevpdtt.c


2012-05-14 13:35:51 +0100
Ken Sharp <ken.sharp@artifex.com>
8ea8d0df81d2552a3470bbf708b91fb4467a5be2

pdfwrite - memory fixes. don't track pdf_font_cache in GS fonts

pdfwrite maintains a 'font cache' of PDF font objects which are related to
GS fonts. Previously these were tracked by adding a pointer to the GS font,
and freeing the memory when the font was unloaded, by using the gs_notify_register
callback.

This causes problems when we are in 'file per page' mode. We want to discard
and rebuild the font cache at the end of each page, so we don't try to
reuse font objects. But if we discard the memory, the font is still pointing
at it. This causes later memory problems.

The simplest solution is to stop tracking the elements in the GS fonts. This
means that an element will persist and be stale after the font goes out of
scope, but its a fairly small amount of memory per font. We now clean up the
PDF font cache and all the elements in pdf_close along with all the other memory.

The 'file per page' mode using the '-sOutputFilename=%d.pdf' syntax now seems
to work correctly. There does not seem to be any great amount of memory leakage
now either.

The next step is to implement a 'server' mode application and use that to
check that there are no remaining memory leaks

No differences expected

gs/base/gdevpdtt.c


2012-05-11 09:57:23 -0700
Ray Johnston <ray.johnston@artifex.com>
6b31a6466c0819db229cbde420c72789eecdbe2d

Add missing part of commit to prevent access to freed memory.

Somehow when applying this part of the reverted patch, this line (the
one that actually prevented the access to freed memory) was missed.

gs/base/gsicc_profilecache.c


2012-05-11 16:33:53 +0100
Ken Sharp <ken.sharp@artifex.com>
f9c1df276e998fc754d5c0e416c606cc5404a495

pdfwrite - memory clean up. Clear outlines

The outline objects are released in write_outline, but the entries in the
device were not previously cleared leaving them pointing to freed memory.

gs/base/gdevpdf.c


2012-05-11 11:38:32 +0100
Ken Sharp <ken.sharp@artifex.com>
08d715446bb97015d16e085aa8f8c4bd8f73c2cc

pdfrite - memory cleanup, free Annotations

Annotations weren't being freed along with their enclosing Page structure
Add some comments about what is stored where, and when it is released, in
a few places

gs/base/gdevpdf.c
gs/base/gdevpdtt.c


2012-05-10 13:24:15 -0700
Michael Vrhel <michael.vrhel@artifex.com>
54ecaf86c6fa0c4a31fb17e0c21361cb134ec376

CIELAB vector and CIELAB images have to use a slightly different remap proc.

The image data is already scaled as needed for the ICC code to handle directly.
Vector colors require the decode from real CIELAB values. This fix was missing
in the in image interpolation code. Fix for Bug 692885

gs/base/gxiscale.c
gs/base/lib.mak


2012-04-11 15:07:43 -0700
Michael Vrhel <michael.vrhel@artifex.com>
79925e26467289515d4cf499d2c3a2d3b1cdcaa4

Delay of obtaining handles from CMM for default profiles

Obtaining the profiles handles for all the default profiles in
the ICC manager eats up a tiny amount of time on startup. For
some customers that start and stop gs over and over instead of
running in server mode, this startup time is an issue. This
fix performs the initialization in a lazy manner, obtaining the
profile handle only when finally needed.

This commit also fixed some issues with images that are in the
LAB color space.

gs/base/gdevp14.c
gs/base/gscdevn.c
gs/base/gscsepr.c
gs/base/gsicc.c
gs/base/gsicc.h
gs/base/gsicc_cache.c
gs/base/gsicc_manage.c
gs/base/gsicc_manage.h
gs/base/gstrans.c
gs/base/gxclimag.c
gs/base/gxcmap.c
gs/base/gxicolor.c
gs/base/lib.mak


2012-05-09 22:01:46 -0700
Ray Johnston <ray.johnston@artifex.com>
c6d74690be87eb37ca5b4590ed6b44673e4125c7

Fix bug 692372 and bug 693001 to free semaphores without leaking memory.

The original fix (fe8d7b6) for 692372 released the semaphores, but resulted
in memory leaks of many other parts of the imager state. The leak was fixed
by reverting the above change. This change insures that sempahores are not
leaked by adding 'finalization' to the icc_linkcache and icc_link structs.

gs/base/gsicc_cache.c
gs/base/gsistate.c
gs/base/gsstruct.h


2012-05-09 09:56:00 -0700
Ray Johnston <ray.johnston@artifex.com>
055ed5f7a69ad5cf4181cf337abf2245df668c01

Prevent reference to freed memory when freeing the profile cache.

gs/base/gsicc_profilecache.c


2012-05-09 09:51:11 -0700
Ray Johnston <ray.johnston@artifex.com>
af974d1bd4b4f0470e77d28eb0cdcb72def2de76

Revert "Fix bug 692372: Add finalize for imager_state to ref_count decrement icc structs."

This reverts commit fe8d7b6aebfed3c724a860e31ff170764d5429dc.
This commit resulted in a subsantial memory leak detected with PCL. See
bug 693001. The finalization should be for the icc structs that have
semaphores.

gs/base/gsicc_profilecache.c
gs/base/gsistate.c
gs/base/gsstate.c
gs/base/gxistate.h
gs/base/gzstate.h


2012-05-09 13:07:39 +0100
Chris Liddell <chris.liddell@artifex.com>
0ee6bd45c59c2ae99ec30cba4dae22d1f2e20dc4

Remove a couple of derived files from jbig2dec.

No cluster differences.

gs/jbig2dec/libtool


2012-05-09 09:52:11 +0100
Ken Sharp <ken.sharp@artifex.com>
a32c42253c299d55d44ad39ba3d998fcebbef7ba

pdfwrite - memory cleanup; use correct allocater, don't free tracked object

Previously the code to free font resources was using the wrong memory
allocator to free some objects, fixed here.

It also seems that, contrary to what I thought Function resources *are*
tracked by 'last_resource' in teh pdfwrite device structure. So its important
not to free those twice.

No differences expected

gs/base/gdevpdf.c
gs/base/gdevpdtf.c


2012-05-07 19:14:28 +0100
Chris Liddell <chris.liddell@artifex.com>
365df54880adff1bd0b7d983c440fb518250c9f0

Fix a warning in zfapi.c

No cluster differences.

gs/psi/zfapi.c


2012-05-07 17:47:33 +0100
Robin Watts <robin.watts@artifex.com>
949993da66cd9850ce47c7319465aed42585b261

Tweak bmpcmp error message

gs/toolbin/bmpcmp.c


2012-05-07 16:34:51 +0100
Chris Liddell <chris.liddell@artifex.com>
fee1ab3e7e38c3e2bd82a855d7bdec2c18751320

Bug 693023: fix $Blend in Type 1 font serialization

When serializing a MultipleMaster font, we were writing both a 'boiler plate'
$Blend procedure, and a broken $Blend from the font dictionary - broken because
the code to read the procedure from the dictionary ignored name objects.

In general, this was fine, as all the current FAPI scalers ignore the $Blend.
A problem arose because the code which calculated size of the procedure did
handle PS name objects, so we ended up with unitialized bytes trailing the
dictionary data, which could cause the scaler to error.

No cluster differences.

gs/psi/write_t1.c
gs/psi/zfapi.c


2012-05-03 12:13:06 -0700
Michael Vrhel <michael.vrhel@artifex.com>
7b81312d205a2f9b89f40da4b4f6b67bcacd8ef1

Fix for issues in use of /SeparationOrder and /SeparationColorNames

Several issues and quite a bit of confusion in the code with respect
to this option. I believe this should clear some things up.
Documentation still needs to be updated as to how this option functions
and what devices it actually works with. Note that
SeparationOrder and SeparationColorNames really only works for the
tiffsep device. The psdcmyk device was never really set up for use
with this option. Not sure if we want to add it. Also, I discovered
that with the disabling of compressed color encoding, the tiffsep1
device renders incorrectly. I had not converted this device to planar
as I had thought that it performed halftoning during rendering. I
did not realize it was rendering 8 bit data and then doing
a thresholding operation. We may want to just move this to a planar
based device. In that case, we could use the fast planar halftoning.

Note that with this fix, the device will only create output for the
colorants listed in /SeparationOrder. The psdcmyk device was not
making use of the /SeparationOrder information properly. It is now
which makes for some different renderings in the ps3cet/29-07*.ps test
files which exercise /SeparationOrder changes. In such a case, the
device will not output any missing colorants, which previously
it was doing.

gs/base/gdevdevn.c
gs/base/gdevpsd.c
gs/base/gdevtsep.c


2012-05-05 11:21:31 +0100
Ken Sharp <ken.sharp@artifex.com>
c5f91f9fa29922713d3751654dda09ccc8518801

pdfwrite - memory leaks with CIDFonts

Move the code to free font resources from the 'pdf close' into a separate
routine in the font handling module. Additionally call it for CIDFont
resoruces as well as Font resources (the code copes with freeing both)

No differences expected

gs/base/gdevpdf.c
gs/base/gdevpdtf.c
gs/base/gdevpdtf.h


2012-05-05 01:03:31 -0400
Alex Cherepanov <alex.cherepanov@artifex.com>
922400e9056ad46a27e0ab5964213415061bd801

Bug 693027: Add missing spot color extraction from shading patterns.

Old code processed all patterns as tiled patterns and missed the
shading color space.

gs/Resource/Init/pdf_main.ps


2012-05-04 15:19:15 +0100
Chris Liddell <chris.liddell@artifex.com>
b2b2473f2064b4abd835449b761e46fdbb5a47f1

Bring the gs/jbig2dec directory in line with jbig2dec repos.

Mainly autoconf source files like configure.ac

No cluster differences.

gs/jbig2dec/Makefile.in
gs/jbig2dec/aclocal.m4
gs/jbig2dec/annex-h.jbig2
gs/jbig2dec/autogen.sh
gs/jbig2dec/compile
gs/jbig2dec/config.guess
gs/jbig2dec/config.h
gs/jbig2dec/config.h.in
gs/jbig2dec/config.sub
gs/jbig2dec/configure
gs/jbig2dec/depcomp
gs/jbig2dec/install-sh
gs/jbig2dec/libtool
gs/jbig2dec/ltmain.sh
gs/jbig2dec/missing
gs/jbig2dec/pbm2png.c
gs/jbig2dec/stamp-h1


2012-04-19 16:44:48 +0100
Ken Sharp <ken.sharp@artifex.com>
19e1c90a1185b681e081cc50ea64a73e8fd8f9b7

pdfwrite - address memory leaks

First pass at cleaning up pdfwrite's memory 'management'.

Add clean up code in pdf_close for fonts, font descriptors, type 3 CharProc
and Pattern resources.

Since we only need the object number for a reference we now create a new
type of cos object 'reference'. This only contains the object ID so that
we cna write out the reference. We also set the ID to 0 after we write it
as this will allow us to free the object. (id == 0 is a crazy reference
counting thing, it seems)

Free the 'aside' associated with a pattern after releasing it.

free ExtGState resources at close.

There was no code to free CMaps, none at all. Added routines to free regular
CMaps and ToUnicode CMaps, and added code to pdfwrite to call these in order
to actually free CMap resources.

When manufacturing a BaseFont, if we already have a BaseFont name, dispose
of it before assigning a new one. Previously this leaked the string
containing the name.

release font resoruce objects

when freeing a font descriptor, free the object as well as the glyphs

Free copied base font FontName string on close

This is opaque data specific to each font type, so we may need to add
specific cleanup routines, but this is a start.

Secondly, when pdfwrite copeis a font it makes 2 copies, a subset and a
complete copy. However the complete copy can fail because of an unused
glyph. So we dicard the complete copy and carry on with the subset. In
this case we didnt' clean up the 'complete' copy.

Modified the previous code into one routine to free copied fonts, when we
discard a (complete) copied font during font copying free the font copy.

free Encoding from copied fonts if present

Also, change the text for font freeing so it makes sense.

Free copied font 'data' when freeing copied font

Free the 'base_font' structure when freeing FontDescriptors

release colour spaces.

Make a routine to free colour spaces, and have it free the 'serialized'
color space memory.

Free the page dictionary when we free pages.

We seem to have (at least) two different kinds of param lists which are used
to deal with getting/setting device params. The PostScript interpreter uses
'ref_params' and the PCL interpreter uses 'c_params'.

The problem is that 'ref_params_end_write_collection' frees the list memory
but 'c_params_end_write_collection' does not. Since these are accessed through
methods in the list, we don't know whether we need to free the memory or not.
This leads to a memory leak when using the PCL interpreter.

I suspect this is a bug in the implementation, but for now I've modified
'ref_params_end_write_collection' so that it nulls the pointer to the list
when it frees it. The code in gdevdsp.c can then test to see whether the
memory needs to be freed (non-NULL) or not.

For some reason this leads to a Seg Fault with fts_09_0923.pdf, but I
can't see why. I believe this is unrelated, so will investigate it further
after this work is completed.

Also changed a typecast to eliminate a warning

create a routine to clean up the 'text data' and call it. Add the
'standard fonts' to the clenaup in there.

Clean up a number of allocations (name index stack, namespace
stack etc).

Add code to free Funtiocn resource dictionaries, objects and resources,

These were missed previously, because the development was done in PCL and
teh PCL interpreter can't trigger the use of Functions.

Add code to clean up Shading and group dictionary resources. Add code to
clear the resource chains on close so that we don't end up trying to use
freed memory pointers.

gs/base/gdevpdf.c
gs/base/gdevpdfc.c
gs/base/gdevpdfg.h
gs/base/gdevpdfi.c
gs/base/gdevpdfo.c
gs/base/gdevpdfo.h
gs/base/gdevpdfu.c
gs/base/gdevpdfv.c
gs/base/gdevpdfx.h
gs/base/gdevpdt.c
gs/base/gdevpdt.h
gs/base/gdevpdtb.c
gs/base/gdevpdtd.c
gs/base/gdevpdtd.h
gs/base/gdevpdtf.c
gs/base/gdevpdti.c
gs/base/gdevpdti.h
gs/base/gdevpsdp.c
gs/base/gsfcmap.c
gs/base/gsfcmap.h
gs/base/gxfcmap.h
gs/base/gxfcopy.c
gs/base/gxfcopy.h
gs/psi/iparam.c


2012-05-01 12:29:03 -0400
Alex Cherepanov <alex.cherepanov@artifex.com>
714b375a58593b62a38c3fa5dfacd0fae2d7d1f9

Bug 693006: Guess malformed numbers.

If an unknown PDF operator has only [-.0-9], consider it a malformed
number and replace with 0.

gs/Resource/Init/pdf_base.ps


2012-05-01 01:41:25 -0700
Michael Vrhel <michael.vrhel@artifex.com>
885289be955a17cb75a401a71d3b6529c755e96b

Fix for another indeterminism from 60640aeb33b18f9a9fcd76fc6f1083d7c7635f2

gs/base/gxdcolor.c


2012-05-01 01:41:18 -0700
Ray Johnston <ray.johnston@artifex.com>
c51dd0ad9b442a05844e1b8eb3e4b511af8c0392

Optimize transparency bbox for image SMask.

SMask with GreyBackground != 1.0 needs to use parent bbox, but image
SMask only paint the image area so the BC cannot affect areas outside.

gs/base/gdevp14.c


2012-04-30 15:11:38 -0700
Michael Vrhel <michael.vrhel@artifex.com>
af102f5fe9a91a071b2d01c3e8ee35a0c99275ea

Fix for indeterminism introduced in 60640aeb33b18f9a9fcd76fc6f1083d7c7635f24

The shading code was using the number of components of the target device
in making a linearity determination. It should make use of the destination
ICC profile in that computation.

gs/base/gsicc.c


2012-04-29 23:36:02 -0700
Michael Vrhel <michael.vrhel@artifex.com>
e8f8eed2369d5e8709acd0aa65306758aa322e3d

Initialize color procs for clip list accumulator

There are calls made during filling with this device to get the black point
of the device due to some ROP related call. The device did not have any
procedures for mapping colors or for decode and encode. Fix for Bug 692720.

gs/base/gxacpath.c


2012-04-30 15:27:30 +0100
Chris Liddell <chris.liddell@artifex.com>
3cde6d6d3d24a0930d591df9914ddda194d13b37

Bug 692459: stop tiffsep(1) overwriting pages already written

The tiffsep and tiffsep1 devices both get closed and reopen when the separations
change (communicated by put_params). Previously this caused the output files to
be closed and reopened - not a problem when writing each page to its own set of
files, but when writing multipage tiffs, it resulted in all pages up to that
point to be overwritten.

We now have tiffsep and tiffsep1 handle their own file "management", and prevent
output files from being closed and reopened when the device is closed and
reopened due to a put_params call.

No cluster differences.

gs/base/gdevtsep.c


2012-04-27 18:46:27 +0100
Robin Watts <robin.watts@artifex.com>
60640aeb33b18f9a9fcd76fc6f1083d7c7635f24

* Change of the tiffsep and psdcmyk device to planar devices.

This change in these devices was made to remove the 64 bit limitation of
our existing color encoding which limits us to 8 colorants without
compressed color encoding. The motivation for this work is that even
with compressed color encoding we were starting
to encounter files with transparency in particular that exceeded the
capabilities of encoding, leading to dropped colors. With this fix, we
encode through the clist the DeviceN color values. The buffers for the
devices are maintained as planar buffers and fills occur with the high level
device colors.

Support was added to handle the devn color type through the shading code. The old
code would have supported only 8 colorants in a shading.

Support was also added to the transparency code to enable the use of the put_image
procedure which for the planar device saves quite a bit of time since we can do the
copy_planes proc directly from the pdf14 planar buffer to the planar memory device buffer.
The pdf14 device also had to support fill_rectangle_hl_color.

Changes were also made to the pattern tiling code so that we avoid any planar to chunky and
back to planar conversions. These were being done to handle ROPs. Even when there were
not any ROPs to perform we were going through strip_tile_rop operations since the
gx_default_strip_tile_rectangle did not support planar to planar. That support is added
with this commit.

Support had to be added to the overprint compositor to support the new color type with
fill_rectangle_hl_color.

Support had to be added to the clist for fill_rectangle_hl_color. This required changes
on both the writing and reading side. It is possible that the amount of data written
for these commands could be reduced and that is commented in the code.

Support also had to be added to the clip device and the mask_clip device as well
for uncolored patterns. Also the tile clip device required support and the transparency device
required support for copy_planes. This last function needs to be optimized.

Both of the separation devices (tiffsep and psdcmyk) that we currently have are updated to
support this method. There is an #if option in each device file to return the
code back to the old chunky format.

A new device procedure for handling strip tiling of masks with devn colors had
to be added. Functionality was only required for the mem planar and clist devices.

Also, it was found that the tiffsep and psdcmyk devices were maintaining separations
(spot colors) across pages. That is if page 1 had a spot color, subsequent pages
created a separation for that spot
even if those pages did not contain it. This was fixed so that separations for a page
are only created for the spots that occur on that page.

A fix was also made to ensure that we had proper handling for the None colorants when
they are part of the DeviceN color space.

gs/base/devs.mak
gs/base/gdevbbox.c
gs/base/gdevdbit.c
gs/base/gdevdevn.c
gs/base/gdevdevn.h
gs/base/gdevdflt.c
gs/base/gdevdsha.c
gs/base/gdevmem.c
gs/base/gdevmem.h
gs/base/gdevmpla.c
gs/base/gdevmx.c
gs/base/gdevnfwd.c
gs/base/gdevp14.c
gs/base/gdevpdfi.c
gs/base/gdevppla.c
gs/base/gdevprn.c
gs/base/gdevpsd.c
gs/base/gdevtsep.c
gs/base/gscdevn.c
gs/base/gscicach.c
gs/base/gscms.h
gs/base/gscsepr.c
gs/base/gsdcolor.h
gs/base/gsdps1.c
gs/base/gsequivc.c
gs/base/gsicc_manage.c
gs/base/gsovrc.c
gs/base/gsptype1.c
gs/base/gxblend.h
gs/base/gxblend1.c
gs/base/gxcldev.h
gs/base/gxclimag.c
gs/base/gxclip.c
gs/base/gxclip.h
gs/base/gxclip2.c
gs/base/gxclipm.c
gs/base/gxclist.c
gs/base/gxclpath.c
gs/base/gxclpath.h
gs/base/gxclrast.c
gs/base/gxclrect.c
gs/base/gxcmap.c
gs/base/gxdcolor.c
gs/base/gxdcolor.h
gs/base/gxdevcli.h
gs/base/gxdevice.h
gs/base/gxdevsop.h
gs/base/gxgetbit.h
gs/base/gxht.c
gs/base/gxicolor.c
gs/base/gxp1fill.c
gs/base/gxp1impl.h
gs/base/gxpcmap.c
gs/base/gxpcolor.h
gs/base/gxshade6.c
gs/base/lib.mak


2012-04-26 15:11:18 +0100
Robin Watts <robin.watts@artifex.com>
dd09a0706ab09a54f5fbb05c63420c86375b45bf

Memento tweaks; add Memento_breakOnFree/Realloc functionality.

Memento_breakOnFree(address) will cause a breakpoint when the block
including a given address is freed. If the block is realloced (and
hence moves elsewhere) the breakpoint is not triggered until the new
block is itself freed.

Memento_breakOnRealloc(address) will cause a breakpoint when the block
including a given address is freed or realloced.

gs/base/memento.c
gs/base/memento.h


2012-04-25 17:33:59 -0400
Alex Cherepanov <alex.cherepanov@artifex.com>
012aef926d1e33cc64c32bf8e94ef92a299d73f9

Bug 692243: Replace dictionary look-up with .execn

Replace a fragment that stores line width in a dictionary with an equivalent
code that uses execution stack and .execn . These tricks are needed to keep
the stack depth constant.

gs/Resource/Init/pdf_ops.ps


2012-04-25 00:08:53 -0400
Alex Cherepanov <alex.cherepanov@artifex.com>
70d513095fba13b20e6bba5bb77805b5233028d1

Bug 692243: Fix a typo in absolute value comparison.

gs/Resource/Init/pdf_ops.ps


2012-04-24 17:35:10 -0400
Alex Cherepanov <alex.cherepanov@artifex.com>
f1830075608195e2976751303d220fda3f796abb

Bug 692969: Don't verify PDF 1.5 xref.

Don't verify stream xref table because we cannot repair PDF files with
new object format. Such verification only increases the chance that the
file fails.

gs/Resource/Init/pdf_main.ps


2012-04-24 15:06:16 -0400
Alex Cherepanov <alex.cherepanov@artifex.com>
430e9e345c84912f953161aa843b37f235c97708

Bug 693000: Verify /Subtype of CIDFont resource.

Check whether CIDFont resource refers to a Type 1 file and process
it accordingly.

gs/Resource/Init/pdf_font.ps


2012-04-24 17:48:12 +0000
Robin Watts <robin.watts@artifex.com>
b5d2134b8ebea14594411580776f1bce5c40363c

Add gx_forward_copy_planes.

Add this to the overprint device.

gs/base/gdevnfwd.c
gs/base/gsovrc.c
gs/base/gxdevice.h


2012-04-24 10:15:59 -0400
Alex Cherepanov <alex.cherepanov@artifex.com>
c2a982ffda019b2822799a918d53022ec06342fa

Pacify Valgrind: don't calculate unused values from undefined data.

gs/lcms2/src/cmsopt.c


2012-04-24 10:19:01 +0100
Chris Liddell <chris.liddell@artifex.com>
f10560765a226f668b72fd9b8298d644cbce08ab

Bug 693002: Add recently added files to install-doc target.

thirdparty.htm WhatIsGS.htm GS9_Color_Management.pdf

No cluster differences.

gs/base/unixinst.mak


2012-04-23 23:44:18 -0400
Alex Cherepanov <alex.cherepanov@artifex.com>
d561224d1495321d40012230abbcf835b298f557

Bug 692983: Require EOD mark in ASCII85 string.

Make sure that ASCII85-encoded string is terminated with '~>' and
throw an error if it isn't. Old code accepted EOF as a valid
termination for a string token.

gs/base/sa85d.c
gs/base/sa85d.h
gs/psi/iscan.c


2012-04-23 20:03:50 +0100
Robin Watts <robin.watts@artifex.com>
ec092a2630dd215a317f509ca283fc5cfb4e8b02

Planar device memory setup tweaks.

When setting up a memory planar device, we currently build a mask
out of the plane information supplied to us about how to pack
colors into a gx_color_index. This seems like a reasonable thing to
do as we will always need to pack colors into a gx_color_index at
some point.

As part of his work on tiffsep, Michael is about to lift this
requirement though, enabling us to cope with larger numbers of
spots. The code as is fails on certain machines/compilers due to
C's undefined behaviour when shifting by more bits than are in the
variable. We spot this case explicitly, and don't bother checking
for overlap in this case.

gs/base/gdevmpla.c


2012-04-23 15:51:17 +0100
Chris Liddell <chris.liddell@artifex.com>
3a8fbd9c52897cccce7cb6e61e06acb1fe8bff7f

Fix uninitialised variable access

Previous commit highlighted a missing a return value check which could result
in an uninitialised variable being accessed.

gs/psi/zfapi.c


2012-04-23 13:36:53 +0100
Chris Liddell <chris.liddell@artifex.com>
f57b7562c79a9e3649e95e7bafa6193b571154bb

Handle the remaining CIDFonts that FAPI was missing.

This causes a number of cluster file differences, almost all are the usual
single pixel differences. There are few cases slightly better, and a few
slightly worse.

One file is a "regression" (depending on your point of view) which is badq.pdf
where the two contours making up the lower case "q" both go in the same
direction, so non-zero winding for filling results in the "loop" in the "q"
being completely filled.

The font is to blame here, but I will continue to look into a solution for
Freetype.

gs/psi/zfapi.c


2012-04-21 13:46:37 +0100
Robin Watts <robin.watts@artifex.com>
b40ce1e58c211008831971f3866cb49e912a1e4f

bmpcmp: Error handling tweaks.

When failing to match a page due to differences in number of colors
or sizes etc, output the page number and continue looking at other
pages in the file.

gs/toolbin/bmpcmp.c


2012-04-20 13:52:33 -0600
Henry Stiles <henry.stiles@artifex.com>
a943658240231bede6cd5f04d7f1bfa713918ccf

Fixes 692992. Implicit closepaths not properly detected.

GL/2 closepaths, implicitly detected when the first point of a subpath
and last are equal, were not recognized in some cases because we were
doing a comparison of transformed floating point values, the
comparison is now done correctly in fixed point.

Many regression test files have progressions where the first and last
point of a path now have a proper join where one did not exist before.

pcl/pgdraw.c


2012-03-14 22:29:40 -0600
Henry Stiles <henry.stiles@artifex.com>
579e0e04b0d83d4364c9c4e42dcced8ca85fc634

Remove obsolete bug list.

tools/bug-list.txt


2012-04-20 14:58:18 +0100
Chris Liddell <chris.liddell@artifex.com>
b9350f4a92c1765d13afbff3e6a4576c33290d91

Default to Windows UNICODE file names "off".

Bring the PCL build in-line with Ghostscript so that the halding of UNICODE file names
is disabled in the default build.

As with Ghostscript, adding "USEUNICODE=1" to the nmake parameters will enable that code.

CLUSTER_UNTESTED

main/pcl6_msvc.mak


2012-04-20 07:20:16 +0100
Chris Liddell <Chris.Liddell@artifex.com>
67a924e4b93987d2c915a161ce67bdf9c1d6d4a5

Bug 692962: fix endian issue with lcms2 i/face

In the lcms2 interface code, am endian flag was being set on big endian
platforms, and it shouldn't be.

No cluster differences.

gs/base/gsicc_lcms2.c


2012-04-19 14:27:57 -0400
Alex Cherepanov <alex.cherepanov@artifex.com>
d252b4f9d3a949778894a86bb71cc2206fce11cf

Bug 692968: regenerate some appearances.

Regenerate appearance streams when it is requested by the file
and implemented in PDF interpreter. (NeedAppearances is set)
Otherwise, continue to use appearance streams provided by the
file.

gs/Resource/Init/pdf_draw.ps


2012-04-17 10:39:30 +0100
Chris Liddell <chris.liddell@artifex.com>
2d76c9849ea165176dc836f926ba1604e8e85513

Small change to djet500C device.

Remove an optimisation that seems to cause issues with newer HP Deskjets.

The device previously would determine how much (if any) of the right side
of a given scanline was blank, and drop those samples - thus avoiding sending
unmarked samples to the printer.

On recent Deskjets, this resulted those unmarked samples printing black. We
retain the similar optimisation for skipping entirely unmarked scanlines.

No cluster differences.

gs/base/gdevdjtc.c


2012-04-16 10:32:06 -0700
Ray Johnston <ray.johnston@artifex.com>
adb39bd6b16e20c7c6cf235518fc98ab242552e7

Fix segfault caused by change in zcharx (34f32ee) seen with 11-13.PS.

Under some error conditions, the 'penum' was not being set, and we would
de-reference whatever (undefined) value was laying around. Initialize it
to NULL and check before clearing pointers. I couldn't get this to fail
in a debug or profile build -- only a release build.

gs/psi/zcharx.c


2012-04-16 09:04:39 -0700
Ray Johnston <ray.johnston@artifex.com>
67894626809b89f813d3ed580210ee11da72af52

Fix segfault in 12-13.PS CET. Yet another ref counted pointer not being cleared.

gs/base/gscscie.c


2012-04-15 16:53:58 -0700
Ray Johnston <ray.johnston@artifex.com>
ffedf4d9c97b1f502e47bab7aed8ee2531c3de5c

Fix ref counting of CIEBased 'params' during alloc_restore_all with 11-19.PS CET.

The 'const' had to be broken to allow the pointer to be set to NULL when the object is freed
due to reference count going to zero. Debug build showed an error message due to ref_count
going below zero, but since this is referencing freed memory, can cause a segfault.

gs/base/gscscie.c


2012-04-12 11:55:50 -0700
Ray Johnston <ray.johnston@artifex.com>
34f32ee8cb08590aeaaab23d1e14ee48c9932fb2

Fix 692707. Clear pointers in text_enum when freeing the widths array.

When an error occurred (as with the CET ILLEGAL test in 33_all.ps) the widths array would be freed,
but the pointer in the gs_text_enum_t (text.x_widths, text.y_widths) was not cleared.

gs/psi/zcharx.c


2012-04-14 12:52:51 +0000
Robin Watts <robin.watts@artifex.com>
fd34d1533bfef0ec2a12500ea8b9fe80249cb990

bmpcmp: Flip psdcmyk images to be the right way up.

gs/toolbin/bmpcmp.c


2012-04-13 19:36:36 +0000
Robin Watts <robin.watts@artifex.com>
365d6f549be4f8fd289adb06078d568ae37b108a

Update bmpcmp to (at least try to) honour the color mapping for psd spots.

We read the color info for the spots, and we try to apply it when mapping
down to cmyk. It's entirely possible that the color information needs
to be inverted or reordered or something, but I don't have anything
that can display psd files to check.

Talk to Michael about this when he returns. This is better than nothing.

gs/toolbin/bmpcmp.c


2012-02-27 03:11:02 +0000
Robin Watts <robin.watts@artifex.com>
d1579963f90d1bfff7fa7e6e7a0417fa8be266b4

Support HPGL style path handling.

HPGL handles paths slightly differently to the postscript imaging model.

When a path is filled, successive moveto's are treated as linetos.
(i.e. the 'place we close the path to' is left at the first moveto,
and the area remains fillable). Stroking is unaffected however.

To model this in Ghostscript we add a new path segment type 's_gap'.
The filling code treats this as a lineto. The stroking code is updated
to not stroke such edges (and not to break the subpath at this point).

We add a new parameter to the imager state (hpgl_path_mode), new
accessor functions (gs_sethpglpathmode, gs_currenthpglpathmode),
and new postscript operators (.sethpglpathmode and .currenthpglpathmode).

If hpgl path mode is set to a non-zero value, then path construction
treats movetos in an open subpath as gaptos.

Currently this is disabled (see pcl/pctop.c for where it would be
enabled) until we get the pcl interpreter to generate paths in
exactly the right form.

Still to do:
* Update PDF write to spot such paths and to convert them as
appropriate when writing out.

gs/base/gdevpdfd.c
gs/base/gdevtrac.c
gs/base/gdevvec.c
gs/base/gspath.c
gs/base/gspath1.c
gs/base/gspenum.h
gs/base/gsstate.c
gs/base/gsstate.h
gs/base/gxclpath.c
gs/base/gxclpath.h
gs/base/gxclrast.c
gs/base/gxcpath.c
gs/base/gxistate.h
gs/base/gxline.h
gs/base/gxpath.c
gs/base/gxpath.h
gs/base/gxpath2.c
gs/base/gxpcopy.c
gs/base/gxpdash.c
gs/base/gxstroke.c
gs/base/gxttfb.c
gs/base/gzpath.h
gs/doc/Language.htm
gs/psi/zgstate.c
pcl/pctop.c


2012-04-13 18:51:34 +0000
Robin Watts <robin.watts@artifex.com>
34b74d7bb34390ad75ba8ca52b6bd5e94e85a51e

bmpcmp: Another attempt to make cmyk + spots psdcmyk files work.

Hopefully this should work; we now make the diff map, then
convert down to cmyk (by dropping the spots), then convert
cmyk -> rgb.

Next step is to add the spots into the cmyk as we map down.

gs/toolbin/bmpcmp.c


2012-04-13 18:34:00 +0100
Robin Watts <robin.watts@artifex.com>
42af17e78ebac4e31e4694d949ef5dfadeacb4fd

Update bmpcmp so that it saves pngs from bpp > 32 psdcmyk images

I'd forgotten to update the png saving code.

gs/toolbin/bmpcmp.c


2012-04-12 16:41:59 -0600
Henry Stiles <henry.stiles@artifex.com>
35908068027eb9b7d2a6d1adaf371bc9fdeeb800

Modified to not ignore error codes, no expected differences.

gs/base/gxp1fill.c


2012-04-12 09:34:32 -0600
Henry Stiles <henry.stiles@artifex.com>
1b355f679fd03a5d5d334b6d74202d9c3d58110b

Fix 692970 - device reference counting incorrect.

The tile clipping device did not properly release its reference to the
target device.

gs/base/gxclip2.c
gs/base/gxclip2.h
gs/base/gxp1fill.c


2012-04-11 14:42:51 -0700
Marcos H. Woehrmann <marcos.woehrmann@artifex.com>
3769efbb709889aae39f905dd04b72a81bc37f3d

Fix make clean for GhostPDL.

common/ugcc_top.mak


2012-04-11 09:50:55 +0100
Robin Watts <robin.watts@artifex.com>
42c6f088344544b5e854899e4126e0d3ec4ee496

Slight hack in gsmchunk.c for Memento builds.

In Memento builds we nobble the chunk manager to only put a single
block in each chunk. As such, the debugging is much nicer if we
label the chunks with the block name rather than "chunk_mem_node_add".

gs/base/gsmchunk.c


2012-04-10 18:04:39 +0100
Robin Watts <robin.watts@artifex.com>
ebc8452e68710ace66b3acca4d1701bfa6f59143

Add Memento_label calls to gs_heap_alloc_bytes malloc calls.

Should get us a lot more information in the debug output of
Memento.

gs/base/gsmalloc.c


2012-04-10 17:49:33 +0100
Robin Watts <robin.watts@artifex.com>
113beaf41ec17de71a57ffda7324442fe2000623

Tidy up pattern accumulator device handling code.

Hopefully slightly more comprehensible. Does the same job as before.

gs/base/gxpcmap.c


2012-04-09 09:32:12 -0700
Marcos H. Woehrmann <marcos.woehrmann@artifex.com>
612f02c29f356c44ca72ec31eb6a64b65d7e7d04

Print out message from bmpcmp.c if no differences detected.

gs/toolbin/bmpcmp.c


2012-04-08 15:40:42 -0700
Marcos H. Woehrmann <marcos.woehrmann@artifex.com>
5e0dd327627f3c5dfe50f51ab583b5d696957972

Prefaced bmpcmp.c error messages with 'bmpcmp:'.

gs/toolbin/bmpcmp.c


2012-04-06 23:43:04 +0100
Robin Watts <robin.watts@artifex.com>
b5431c68e9c666e3c8010202e9501f101f6725d9

Remove the need for seeking in bmpcmp when reading psdcmyk files.

The cluster likes to drive bmpcmp from pipes.

gs/toolbin/bmpcmp.c


2012-04-06 14:22:33 -0700
Marcos H. Woehrmann <marcos.woehrmann@artifex.com>
554b5c6088a1f53a648b5702a3245bdbba884ffa

Fixed bmpcmp.c to properly set *cmyk in psd_read().

gs/toolbin/bmpcmp.c


2012-04-06 16:53:07 +0100
Robin Watts <robin.watts@artifex.com>
20dcd26801be3d10bd5ebd596b50eaa3908050be

Add psdcmyk support to bmpcmp.

bmpcmp now reads psdcmyk files. It will read all n planes (cmyk +
spots) and search in them for diffs. When it comes to output
the differences are highlighted correctly in the diff image,
but only the cmyk planes are used to create the output images
(i.e. spots are not mapped down to cmyk currently).

gs/toolbin/bmpcmp.c


2012-04-05 16:21:05 -0400
Alex Cherepanov <alex.cherepanov@artifex.com>
8e97d23a41580b3609a7b98dc90c4a59c6d093e8

Bug 692967: drop incorrect filter parameters.

Check for an empty array given as filter parameters and
intrrpret it as no parameters.

gs/Resource/Init/pdf_base.ps


2012-04-05 11:06:36 +0100
Ken Sharp <ken.sharp@artifex.com>
c3679722d0c3ade2f644bad1c5b7fafde8de5fb6

Add the 32-bit Memento directories to .gitignore

.gitignore


2012-04-02 17:47:41 +0100
Chris Liddell <chris.liddell@artifex.com>
6e7d591ae3b2dab7808406e6052a4b79b05f2633

Fix a makefile typo....

Back in an previous commit, I made a typo for the cross platform makefile
variables - I used '_D_' instead of 'D_'

No cluster differences.

gs/base/lib.mak


2012-04-02 17:08:15 +0100
Chris Liddell <chris.liddell@artifex.com>
82eb1a659a96fcd834d0e673c7c8f36781499959

Bug 692761: some errors reported by cppcheck

Patch from Joshua Beck ( jxb091000@utdallas.edu ) addressing issues
identified by cppcheck.

No cluster differences.

gs/base/genconf.c
gs/base/gsiomacres.c
gs/base/mkromfs.c
gs/psi/dwmainc.c


2012-03-30 13:36:37 -0400
Alex Cherepanov <alex.cherepanov@artifex.com>
1ff339b6aca7087e32be7516fda9ef0b9df38e72

Bug 692767: Render shading as a group.

Render shading as an isolated group if the file has a soft mask.

gs/Resource/Init/pdf_draw.ps


2012-03-30 11:59:14 +0100
Ken Sharp <ken.sharp@artifex.com>
8eb4118573d2d6959f8578a10f9d76ce9d802799

PDF interpreter - preserve CIDSystemInfo in embedded CID fonts

The PDF interpreter was not preserving the CIDSystemInfo from CIDFonts in
PDF files (the TrueType code did not allow for this to be done)

Updated the TrueType CIDFont building code to accept a CIDSystemInfo dictionary
as a parameter, and teh PDF interpreter to pass it form the original
CIDFont.

No differences expected as this is not tested

gs/Resource/Init/gs_ttf.ps
gs/Resource/Init/pdf_font.ps


2012-03-29 08:50:13 -0700
Ray Johnston <ray.johnston@artifex.com>
67e3458154d8ef718be5a495aa64dc77c59393fe

Fix bugs 692542 and 692706, bad rendering of copies after first page with NumRenderingThreads > 1

The clist_get_band_from_thread logic would get confused as to the lookahead_direction if the
requested thread was the first or last and the most recent previously rendered thread didn't
match.

gs/base/gxclthrd.c


2012-03-29 16:05:44 +0100
Ken Sharp <ken.sharp@artifex.com>
0604c2368ca3fd75be1c26ce6c7697cbce55968f

Fix a minor compiler warning by casting a pointer.

gs/base/gdevpdtt.c


2012-03-29 11:38:54 +0100
Ken Sharp <ken.sharp@artifex.com>
be6456331f4cff58f11f681450166fe2309e2ad5

pdfwrite - when a Charstring is not found for a glyph use the /.notdef width instead of 0

Bug #692944 the file uses an embedded font which does not include a /space
glyph, but proceeds to use the space anyway. We were using a widht of 0 in
this case but the file programmatically spaces glyphs to a predefined size.
This was causing the PDF to be incorrectly spaced.

We now use the width of the /.notdef glyph instead for sizing calculations,
since this si the glyph which will eventually be used.

This exhibits a small difference in 30-06.ps but since this is testing
missing glyphs in a QL test file, I'm going to accept it as a difference in
order to improve the result with files of this type.

gs/base/gdevpdte.c
gs/base/gdevpdtt.c


2012-03-29 02:23:20 -0400
Alex Cherepanov <alex.cherepanov@artifex.com>
23e8552bb2c1849c118d9f5d81f5629ebe436acb

Bug 692886: use sequential page numbers in PDF collections.

Use sequential page numbering for -dFirstPage and -dLastPage parameters
when they are used with PDF Collections.

gs/Resource/Init/pdf_main.ps
gs/doc/Use.htm


2012-03-28 13:52:27 -0700
Ray Johnston <ray.johnston@artifex.com>
aa9f730f07f8d471c222956e6a532ab2698ef58e

Fix bug 692688: pdf14_copy_alpha did not move the source data pointer when adjusting for y<rect.p.y

The pdf14_copy_alpha doesn't use the 'fit_copy' macro since that macro has specific variables
embedded, but the when the 'h' and 'y' are adjusted, the source data pointer needs to move to
the first line that will be used.

gs/base/gdevp14.c


2012-03-28 17:03:25 +0100
Chris Liddell <chris.liddell@artifex.com>
a1075141f25f7bf38bf372f9ccc65dfd9c0c8baa

Bug 692950: further revise falling back to unhinted rendering.

In the FAPI/FT interface, we caught some errors from Freetype to do with the
byte code hinting in TrueType fonts - when they occur we retry the glyph
rendering with hinting disabled.

This commit expands that to *any* error from the byte code interpreter will
now cause us to retry unhinted.

(the core problem in this case seems to be scale depending operations in the
font program, which is supposed not to be permitted).

No cluster differences.

gs/psi/fapi_ft.c


2012-03-27 19:29:56 -0700
Ray Johnston <ray.johnston@artifex.com>
5b50a46f4ed3e54fec6727a1ad52258e5d32b0a9

Add -sBandListStorage={file|memory} option and default to no bitmap compression if file clist.

Also alphabetize the clist options and remove the arbitrary 10000 minimum for MaxBitmap
(now -dMaxBitmap=0 is legal). The change to not compress bitmaps (using CCITT) when going
to disk based clist improves performance.

gs/base/gdevprn.c
gs/base/gdevprn.h
gs/base/gxclbits.c
gs/base/gxclist.c
gs/base/lib.mak
gs/doc/Language.htm


2012-03-26 18:57:48 +0100
Chris Liddell <chris.liddell@artifex.com>
6a13e642324435d92f2f79f6c28b5f25758a249c

Ensure FAPI uses appropriate glyph name for metrics.

Found investigating a customer 532 report: Ghostscript "augments" glyph names
under certain circumstances, and depending on the font type, FAPI may have to
remove that augmentation (mainly when disc based fonts are being used).

FAPI was then using the un-augmented glyph name to read the glyph metrics,
which caused the wrong metrics to be used because the metrics(s) dictionary was
created with the augmented glyph name in place.

Causes a difference in the cluster file Bug691031.pdf - this is
progression.

gs/psi/zfapi.c


2012-03-26 14:44:05 +0100
Chris Liddell <chris.liddell@artifex.com>
9ca16b047d2ee4dc862aa18465c80c2250c213c5

Bug 692938: fix link error on AIX

AIX 5.x (probably others) don't have memalign, so update the conditions
under which openjpeg will (try to) use memalign to exclude AIX systems.

No cluster differences.

gs/openjpeg/libopenjpeg/opj_malloc.h


2012-03-22 15:08:43 +0000
Ken Sharp <ken.sharp@artifex.com>
701b769786f6e2b036df8427c17c6a5dc294a672

pdfwrite - update CIDSet emission for PDF/A-2 compatibility

This completes the work for creation of PDF/A-2 files. Note that Acrobat X
preflight complains about the CIDSet we include in PDF/A-2 files. However I
believe that the current code is correct, and that the Acrobat preflight is
incorrect. The PDF-Tools validator is completely happy with our CIDSet.

I'm unable to fathom what it is the Acrobat preflight tool wants. The old
PDF/A-1 CIDSet is flagged as invalid, as is every premutation of values I
can think of.

In the absence of any example file to look at, or a definitive resource on
the subject, I'm comitting this and concluding the development. I will of
course be happy to work on the CIDSet emission if someone can bring more
information.

No differences expected PDF/A is not tested by the cluster.

gs/base/gdevpdtd.c


2012-03-21 09:36:40 -0600
Henry Stiles <henry.stiles@artifex.com>
b68ee69570803001a959721209fff6a2e4430f84

Improves 692527 - the missing characters now print and the prototype
svg device now works with many more files.

Before this change very few jobs would work, the color state wasn't
updated properly.

CLUSTER_UNTESTED

gs/base/gdevsvg.c


2012-03-21 14:22:35 +0000
Chris Liddell <chris.liddell@artifex.com>
8031fd574e3949cf1e17eed0372034e522580dca

Bug 692850: FAPI: clamp fixed-point overflows instead of error.

This job ends up with an insanely big scale factor when trying rendering glyphs
from a font. Obviously that ends up too big to render to a bitmap in the
font renderer, so we build a path instead.

Previously, during FAPI path extraction, if the coordinates overflowed what we
can represent in our fixed point representation, give a rangecheck error. But
the AFS code seems to clamp the coordinate to something we can represent, and
carry on.

Do the same in FAPI.

No cluster differences.

gs/psi/zfapi.c


2012-03-15 11:51:23 +0000
Chris Liddell <chris.liddell@artifex.com>
0c0f193bc6673fd4c6c257fd8c6fe740882c6023

Another Freetype fix.

From:
http://git.savannah.gnu.org/cgit/freetype/freetype2.git/commit/?id=b43e0f44

gs/freetype/src/type1/t1load.c


2012-03-14 14:49:19 +0000
Chris Liddell <chris.liddell@artifex.com>
eb20f1cf128936c871e1ccb8161db382e866336a

Backport incremental interface fix from FT git.

http://git.savannah.gnu.org/cgit/freetype/freetype2.git/commit/?id=9a55cb

CLUSTER_UNTESTED

gs/freetype/src/type1/t1load.c


2012-03-14 14:48:31 +0000
Chris Liddell <chris.liddell@artifex.com>
078d7ccbeb5250c93b758c6566d368c11c1da986

Update to Freetype 2.4.9

CLUSTER_UNTESTED

gs/freetype/ChangeLog
gs/freetype/Jamfile
gs/freetype/README
gs/freetype/autogen.sh
gs/freetype/builds/amiga/makefile
gs/freetype/builds/amiga/makefile.os4
gs/freetype/builds/amiga/smakefile
gs/freetype/builds/amiga/src/base/ftsystem.c
gs/freetype/builds/mac/FreeType.m68k_cfm.make.txt
gs/freetype/builds/mac/FreeType.m68k_far.make.txt
gs/freetype/builds/mac/FreeType.ppc_carbon.make.txt
gs/freetype/builds/mac/FreeType.ppc_classic.make.txt
gs/freetype/builds/mac/ftmac.c
gs/freetype/builds/symbian/bld.inf
gs/freetype/builds/symbian/freetype.mmp
gs/freetype/builds/toplevel.mk
gs/freetype/builds/unix/.gitignore
gs/freetype/builds/unix/aclocal.m4
gs/freetype/builds/unix/config.guess
gs/freetype/builds/unix/config.sub
gs/freetype/builds/unix/configure
gs/freetype/builds/unix/configure.ac
gs/freetype/builds/unix/configure.raw
gs/freetype/builds/unix/detect.mk
gs/freetype/builds/unix/freetype-config.in
gs/freetype/builds/unix/freetype2.in
gs/freetype/builds/unix/ftconfig.in
gs/freetype/builds/unix/install-sh
gs/freetype/builds/unix/ltmain.sh
gs/freetype/builds/vms/ftconfig.h
gs/freetype/builds/vms/ftsystem.c
gs/freetype/builds/win32/vc2005/freetype.vcproj
gs/freetype/builds/win32/vc2005/index.html
gs/freetype/builds/win32/vc2008/freetype.vcproj
gs/freetype/builds/win32/vc2008/index.html
gs/freetype/builds/win32/vc2010/freetype.sln
gs/freetype/builds/win32/vc2010/freetype.vcxproj
gs/freetype/builds/win32/vc2010/freetype.vcxproj.filters
gs/freetype/builds/win32/vc2010/index.html
gs/freetype/builds/win32/visualc/freetype.dsp
gs/freetype/builds/win32/visualc/freetype.vcproj
gs/freetype/builds/win32/visualc/index.html
gs/freetype/builds/win32/visualce/freetype.dsp
gs/freetype/builds/win32/visualce/freetype.vcproj
gs/freetype/builds/win32/visualce/index.html
gs/freetype/builds/wince/vc2005-ce/freetype.vcproj
gs/freetype/builds/wince/vc2005-ce/index.html
gs/freetype/builds/wince/vc2008-ce/freetype.vcproj
gs/freetype/builds/wince/vc2008-ce/index.html
gs/freetype/configure
gs/freetype/devel/ftoption.h
gs/freetype/docs/CHANGES
gs/freetype/docs/GPL.TXT
gs/freetype/docs/GPLv2.TXT
gs/freetype/docs/INSTALL
gs/freetype/docs/INSTALL.ANY
gs/freetype/docs/INSTALL.UNIX
gs/freetype/docs/LICENSE.TXT
gs/freetype/docs/PROBLEMS
gs/freetype/docs/UPGRADE.UNIX
gs/freetype/docs/VERSION.DLL
gs/freetype/docs/formats.txt
gs/freetype/docs/reference/.gitignore
gs/freetype/docs/reference/ft2-base_interface.html
gs/freetype/docs/reference/ft2-basic_types.html
gs/freetype/docs/reference/ft2-bdf_fonts.html
gs/freetype/docs/reference/ft2-bitmap_handling.html
gs/freetype/docs/reference/ft2-bzip2.html
gs/freetype/docs/reference/ft2-cache_subsystem.html
gs/freetype/docs/reference/ft2-cid_fonts.html
gs/freetype/docs/reference/ft2-computations.html
gs/freetype/docs/reference/ft2-font_formats.html
gs/freetype/docs/reference/ft2-gasp_table.html
gs/freetype/docs/reference/ft2-glyph_management.html
gs/freetype/docs/reference/ft2-glyph_stroker.html
gs/freetype/docs/reference/ft2-glyph_variants.html
gs/freetype/docs/reference/ft2-gx_validation.html
gs/freetype/docs/reference/ft2-gzip.html
gs/freetype/docs/reference/ft2-header_file_macros.html
gs/freetype/docs/reference/ft2-incremental.html
gs/freetype/docs/reference/ft2-index.html
gs/freetype/docs/reference/ft2-lcd_filtering.html
gs/freetype/docs/reference/ft2-list_processing.html
gs/freetype/docs/reference/ft2-lzw.html
gs/freetype/docs/reference/ft2-mac_specific.html
gs/freetype/docs/reference/ft2-module_management.html
gs/freetype/docs/reference/ft2-multiple_masters.html
gs/freetype/docs/reference/ft2-ot_validation.html
gs/freetype/docs/reference/ft2-outline_processing.html
gs/freetype/docs/reference/ft2-pfr_fonts.html
gs/freetype/docs/reference/ft2-quick_advance.html
gs/freetype/docs/reference/ft2-raster.html
gs/freetype/docs/reference/ft2-sfnt_names.html
gs/freetype/docs/reference/ft2-sizes_management.html
gs/freetype/docs/reference/ft2-system_interface.html
gs/freetype/docs/reference/ft2-toc.html
gs/freetype/docs/reference/ft2-truetype_engine.html
gs/freetype/docs/reference/ft2-truetype_tables.html
gs/freetype/docs/reference/ft2-type1_tables.html
gs/freetype/docs/reference/ft2-user_allocation.html
gs/freetype/docs/reference/ft2-version.html
gs/freetype/docs/reference/ft2-winfnt_fonts.html
gs/freetype/docs/release
gs/freetype/include/freetype/config/ftconfig.h
gs/freetype/include/freetype/config/ftheader.h
gs/freetype/include/freetype/config/ftoption.h
gs/freetype/include/freetype/config/ftstdlib.h
gs/freetype/include/freetype/freetype.h
gs/freetype/include/freetype/ftbbox.h
gs/freetype/include/freetype/ftbzip2.h
gs/freetype/include/freetype/ftcache.h
gs/freetype/include/freetype/ftchapters.h
gs/freetype/include/freetype/fterrdef.h
gs/freetype/include/freetype/fterrors.h
gs/freetype/include/freetype/ftgasp.h
gs/freetype/include/freetype/ftglyph.h
gs/freetype/include/freetype/ftmoderr.h
gs/freetype/include/freetype/ftoutln.h
gs/freetype/include/freetype/ftrender.h
gs/freetype/include/freetype/ftstroke.h
gs/freetype/include/freetype/fttypes.h
gs/freetype/include/freetype/internal/autohint.h
gs/freetype/include/freetype/internal/ftdriver.h
gs/freetype/include/freetype/internal/ftobjs.h
gs/freetype/include/freetype/internal/ftpic.h
gs/freetype/include/freetype/internal/ftrfork.h
gs/freetype/include/freetype/internal/ftserv.h
gs/freetype/include/freetype/internal/ftstream.h
gs/freetype/include/freetype/internal/fttrace.h
gs/freetype/include/freetype/internal/pcftypes.h
gs/freetype/include/freetype/internal/pshints.h
gs/freetype/include/freetype/internal/services/svbdf.h
gs/freetype/include/freetype/internal/services/svcid.h
gs/freetype/include/freetype/internal/services/svgldict.h
gs/freetype/include/freetype/internal/services/svmm.h
gs/freetype/include/freetype/internal/services/svpostnm.h
gs/freetype/include/freetype/internal/services/svpscmap.h
gs/freetype/include/freetype/internal/services/svpsinfo.h
gs/freetype/include/freetype/internal/services/svsfnt.h
gs/freetype/include/freetype/internal/services/svttcmap.h
gs/freetype/include/freetype/internal/services/svttglyf.h
gs/freetype/include/freetype/internal/sfnt.h
gs/freetype/include/freetype/internal/t1types.h
gs/freetype/include/freetype/internal/tttypes.h
gs/freetype/include/freetype/t1tables.h
gs/freetype/include/freetype/tttables.h
gs/freetype/modules.cfg
gs/freetype/objs/.gitignore
gs/freetype/src/autofit/afangles.c
gs/freetype/src/autofit/afcjk.c
gs/freetype/src/autofit/afcjk.h
gs/freetype/src/autofit/afdummy.c
gs/freetype/src/autofit/afdummy.h
gs/freetype/src/autofit/aferrors.h
gs/freetype/src/autofit/afglobal.c
gs/freetype/src/autofit/afglobal.h
gs/freetype/src/autofit/afhints.c
gs/freetype/src/autofit/afhints.h
gs/freetype/src/autofit/afindic.c
gs/freetype/src/autofit/aflatin.c
gs/freetype/src/autofit/aflatin.h
gs/freetype/src/autofit/aflatin2.c
gs/freetype/src/autofit/afloader.c
gs/freetype/src/autofit/afloader.h
gs/freetype/src/autofit/afmodule.c
gs/freetype/src/autofit/afpic.c
gs/freetype/src/autofit/afpic.h
gs/freetype/src/autofit/aftypes.h
gs/freetype/src/autofit/afwarp.c
gs/freetype/src/autofit/autofit.c
gs/freetype/src/autofit/rules.mk
gs/freetype/src/base/basepic.c
gs/freetype/src/base/basepic.h
gs/freetype/src/base/ftadvanc.c
gs/freetype/src/base/ftbase.c
gs/freetype/src/base/ftbase.h
gs/freetype/src/base/ftbitmap.c
gs/freetype/src/base/ftcalc.c
gs/freetype/src/base/ftdbgmem.c
gs/freetype/src/base/ftglyph.c
gs/freetype/src/base/ftinit.c
gs/freetype/src/base/ftmac.c
gs/freetype/src/base/ftobjs.c
gs/freetype/src/base/ftoutln.c
gs/freetype/src/base/ftpatent.c
gs/freetype/src/base/ftpic.c
gs/freetype/src/base/ftrfork.c
gs/freetype/src/base/ftstream.c
gs/freetype/src/base/ftstroke.c
gs/freetype/src/base/ftsystem.c
gs/freetype/src/base/fttype1.c
gs/freetype/src/bdf/README
gs/freetype/src/bdf/bdf.h
gs/freetype/src/bdf/bdfdrivr.c
gs/freetype/src/bdf/bdfdrivr.h
gs/freetype/src/bdf/bdferror.h
gs/freetype/src/bdf/bdflib.c
gs/freetype/src/bzip2/Jamfile
gs/freetype/src/bzip2/ftbzip2.c
gs/freetype/src/bzip2/rules.mk
gs/freetype/src/cache/ftcbasic.c
gs/freetype/src/cache/ftccache.c
gs/freetype/src/cache/ftccache.h
gs/freetype/src/cache/ftccback.h
gs/freetype/src/cache/ftccmap.c
gs/freetype/src/cache/ftcerror.h
gs/freetype/src/cache/ftcglyph.c
gs/freetype/src/cache/ftcglyph.h
gs/freetype/src/cache/ftcmanag.c
gs/freetype/src/cache/ftcmanag.h
gs/freetype/src/cache/ftcmru.c
gs/freetype/src/cache/ftcsbits.c
gs/freetype/src/cache/ftcsbits.h
gs/freetype/src/cff/cffdrivr.c
gs/freetype/src/cff/cfferrs.h
gs/freetype/src/cff/cffgload.c
gs/freetype/src/cff/cffload.c
gs/freetype/src/cff/cffload.h
gs/freetype/src/cff/cffobjs.c
gs/freetype/src/cff/cffparse.c
gs/freetype/src/cff/cffparse.h
gs/freetype/src/cff/cffpic.c
gs/freetype/src/cff/cffpic.h
gs/freetype/src/cff/cfftoken.h
gs/freetype/src/cff/cfftypes.h
gs/freetype/src/cff/rules.mk
gs/freetype/src/cid/ciderrs.h
gs/freetype/src/cid/cidgload.c
gs/freetype/src/cid/cidload.c
gs/freetype/src/cid/cidobjs.c
gs/freetype/src/cid/cidparse.c
gs/freetype/src/cid/cidriver.c
gs/freetype/src/cid/cidriver.h
gs/freetype/src/gxvalid/gxvcommn.c
gs/freetype/src/gxvalid/gxvcommn.h
gs/freetype/src/gxvalid/gxverror.h
gs/freetype/src/gxvalid/gxvfeat.c
gs/freetype/src/gxvalid/gxvjust.c
gs/freetype/src/gxvalid/gxvkern.c
gs/freetype/src/gxvalid/gxvmod.c
gs/freetype/src/gxvalid/gxvmod.h
gs/freetype/src/gxvalid/gxvmort.c
gs/freetype/src/gxvalid/gxvmort0.c
gs/freetype/src/gxvalid/gxvmort1.c
gs/freetype/src/gxvalid/gxvmort2.c
gs/freetype/src/gxvalid/gxvmort5.c
gs/freetype/src/gxvalid/gxvmorx.c
gs/freetype/src/gxvalid/gxvmorx0.c
gs/freetype/src/gxvalid/gxvmorx1.c
gs/freetype/src/gxvalid/gxvmorx2.c
gs/freetype/src/gxvalid/gxvmorx5.c
gs/freetype/src/gxvalid/gxvprop.c
gs/freetype/src/gxvalid/gxvtrak.c
gs/freetype/src/gzip/ftgzip.c
gs/freetype/src/lzw/ftlzw.c
gs/freetype/src/lzw/ftzopen.c
gs/freetype/src/otvalid/otverror.h
gs/freetype/src/otvalid/otvmod.c
gs/freetype/src/otvalid/otvmod.h
gs/freetype/src/pcf/README
gs/freetype/src/pcf/pcf.h
gs/freetype/src/pcf/pcfdrivr.c
gs/freetype/src/pcf/pcfdrivr.h
gs/freetype/src/pcf/pcferror.h
gs/freetype/src/pcf/pcfread.c
gs/freetype/src/pfr/pfrdrivr.c
gs/freetype/src/pfr/pfrdrivr.h
gs/freetype/src/pfr/pfrerror.h
gs/freetype/src/pfr/pfrload.c
gs/freetype/src/pfr/pfrobjs.c
gs/freetype/src/psaux/afmparse.c
gs/freetype/src/psaux/psauxerr.h
gs/freetype/src/psaux/psauxmod.c
gs/freetype/src/psaux/psauxmod.h
gs/freetype/src/psaux/psconv.c
gs/freetype/src/psaux/psobjs.c
gs/freetype/src/psaux/t1cmap.c
gs/freetype/src/psaux/t1decode.c
gs/freetype/src/pshinter/pshnterr.h
gs/freetype/src/pshinter/pshpic.c
gs/freetype/src/pshinter/pshpic.h
gs/freetype/src/pshinter/rules.mk
gs/freetype/src/psnames/psmodule.c
gs/freetype/src/psnames/psnamerr.h
gs/freetype/src/psnames/pspic.c
gs/freetype/src/psnames/pspic.h
gs/freetype/src/psnames/pstables.h
gs/freetype/src/psnames/rules.mk
gs/freetype/src/raster/ftraster.c
gs/freetype/src/raster/ftrend1.c
gs/freetype/src/raster/rasterrs.h
gs/freetype/src/raster/rastpic.c
gs/freetype/src/raster/rastpic.h
gs/freetype/src/raster/rules.mk
gs/freetype/src/sfnt/rules.mk
gs/freetype/src/sfnt/sfdriver.c
gs/freetype/src/sfnt/sferrors.h
gs/freetype/src/sfnt/sfntpic.c
gs/freetype/src/sfnt/sfntpic.h
gs/freetype/src/sfnt/sfobjs.c
gs/freetype/src/sfnt/ttcmap.c
gs/freetype/src/sfnt/ttcmap.h
gs/freetype/src/sfnt/ttload.c
gs/freetype/src/sfnt/ttmtx.c
gs/freetype/src/sfnt/ttsbit.c
gs/freetype/src/smooth/ftgrays.c
gs/freetype/src/smooth/ftsmerrs.h
gs/freetype/src/smooth/ftsmooth.c
gs/freetype/src/smooth/ftspic.c
gs/freetype/src/smooth/ftspic.h
gs/freetype/src/smooth/rules.mk
gs/freetype/src/tools/apinames.c
gs/freetype/src/tools/docmaker/.gitignore
gs/freetype/src/tools/glnames.py
gs/freetype/src/truetype/rules.mk
gs/freetype/src/truetype/ttdriver.c
gs/freetype/src/truetype/tterrors.h
gs/freetype/src/truetype/ttgload.c
gs/freetype/src/truetype/ttgload.h
gs/freetype/src/truetype/ttgxvar.c
gs/freetype/src/truetype/ttinterp.c
gs/freetype/src/truetype/ttinterp.h
gs/freetype/src/truetype/ttobjs.c
gs/freetype/src/truetype/ttobjs.h
gs/freetype/src/truetype/ttpic.c
gs/freetype/src/truetype/ttpic.h
gs/freetype/src/truetype/ttpload.c
gs/freetype/src/type1/t1afm.c
gs/freetype/src/type1/t1driver.c
gs/freetype/src/type1/t1driver.h
gs/freetype/src/type1/t1errors.h
gs/freetype/src/type1/t1gload.c
gs/freetype/src/type1/t1gload.h
gs/freetype/src/type1/t1load.c
gs/freetype/src/type1/t1objs.c
gs/freetype/src/type1/t1objs.h
gs/freetype/src/type1/t1parse.c
gs/freetype/src/type1/t1tokens.h
gs/freetype/src/type42/t42drivr.c
gs/freetype/src/type42/t42drivr.h
gs/freetype/src/type42/t42error.h
gs/freetype/src/type42/t42objs.c
gs/freetype/src/type42/t42objs.h
gs/freetype/src/type42/t42parse.c
gs/freetype/src/winfonts/fnterrs.h
gs/freetype/src/winfonts/winfnt.c
gs/freetype/src/winfonts/winfnt.h


2012-03-20 16:56:36 -0600
Henry Stiles <henry.stiles@artifex.com>
dcf401ee8172aaff5363b2fc86e166f73225e429

Close the device before exiting PCL, XPS and friends.

The languages deallocated the memory associated with a device but
never did the associated gs_closedevice(). This might have some
effect on 692816 where indeterminate output was observed on stdout.
Without the close device call the "OutputFile" was never actually
closed (fclose), and so there might have been a missing flush. All of
that is speculation, I wasn't able to reproduce the indeterminism -
but we want the closedevice anyway so here it is.

pl/plmain.c


2012-03-20 11:35:04 -0700
Ray Johnston <ray.johnston@artifex.com>
731707a165665554577d3779fdeb93eb49ab2a52

Fix Visual Studio PROFILE=1 builds so that Instrumented performance analyzer works.

We were missing the /PROFILE linker option.

gs/psi/msvc.mak


2012-03-19 18:02:47 +0000
Chris Liddell <chris.liddell@artifex.com>
a2371ed3ee29b5470dd892b78249d64d8f4466f4

Clean up warnings.

Clean up a couple of warnings I introduced in:
f63237e1bb9a85124349ec0d0eae58737d7cb5ee

No cluster differences expected.

gs/base/gxccache.c
gs/base/lib.mak


2012-03-19 10:06:10 +0000
Ken Sharp <ken.sharp@artifex.com>
d6f83dfa81a2073c3d1f67a30aee7e8407e4685a

ps2write - work-around bugs in Brother printer CCITTFaxDecode filter

Raised on irc by Till Kamppeter, see Ubuntu bug :

https://bugs.launchpad.net/ubuntu/+source/cups/+bug/955553

After much work by Chris Liddell and Bruce Stough it transpires that at
least some Brother printers have a bug in their CCITTFaxDecode filter,
especially with small amounts of data.

Since the ps2write otuput for bitmapped glyhs (which is required when the
input is a CIDFont) always uses the CCITTFax filter, this led to corrupted
output from the Brother (Note this is a bug in the *printer* not ps2write)

This patch adds a new command line parameter 'NoT3CCITT' which disables
compression of bitmapped glyphs. It should only be used with printers which
have a problem with CCITTFax data, and in that case should also be used with
the EncodeMonoImages switch to disable compression of monochrome images. Eg:

-dNoT3CCITT -dEncodeMonoImages=false

No differences expected as these are not tested by our regression tests

gs/base/gdevpdfb.c
gs/base/gdevpdfb.h
gs/base/gdevpdfp.c
gs/base/gdevpdfx.h


2012-03-18 22:34:39 -0400
Alex Cherepanov <alex.cherepanov@artifex.com>
1c558e93a7f63b470880ea44fbf883c61de4b13a

Bug 692589: Copy CIDSystemInfo from PDF to CMap

Collect CIDSystemInfo attributes from PDF CMap dictionary and copy
them to the embedded CMap resource.

gs/Resource/Init/pdf_font.ps


2012-03-16 14:25:06 -0600
Henry Stiles <henry.stiles@artifex.com>
2cd895c6ad8e4e1ace368d04a783bf0cccb30f3c

Fixes Bug 692931 - Regression: seg fault

The ICC parameters were set when the interpreter was allocated before
the the command line options were actually set, resulting in a crash.

xps/xpstop.c


2012-03-16 09:35:53 +0000
Ken Sharp <ken.sharp@artifex.com>
25b6a2cdeb5a90bb7803958f2bf15b618fbcf120

pdfwrite - cure memory leaks caused by 'aside' streams

When writing an object it can happen that pdfwrite needs to write another
object (Eg a ToUnicode CMap in a font), it does this with an 'aside' which
opens a Ghostscritp stream to contain the data.

The code to do this uses low level access to the stream code, but it did
not previously correctly free the memory used by the stream and its associated
buffer leading to memory leaks.

By closing the entire stream when we close the filters we get the stream and
all its memory freed, so we do that here to cure the memory leak.

Inspecting the four other cases in the pdfwrite code they appear to be OK.

No differences expected.

gs/base/gdevpdti.c


2012-03-16 00:51:54 -0400
Alex Cherepanov <alex.cherepanov@artifex.com>
ca6e4653abdc2921e44f416633b7d5e4bc5f4382

Add indexed color space support to the ICC extraction tool.

Recognize ICC color spaces referenced by indexed color spaces and
process them the same way as stand-alone ICC color spaces.

gs/toolbin/extractICCprofiles.ps


2012-03-15 12:07:51 -0700
Michael Vrhel <michael.vrhel@artifex.com>
044b6ca010ecb8f264fcd4b3515051c037659967

Fix for broken setting of Default ICC profiles

A recent change http://git.ghostscript.com/?p=ghostpdl.git;a=commit;h=d6f504174bd51d22cc43b2f87bee8c275c004cc1
broke the ability to set the profiles. Previously there was a check in gsicc_set_profile to
avoid reseting the profiles. Once removed, the call from gsicc_init_manager was always blowing
away any non default settings for the defaults. A check was added into gsicc_init_manager to
avoid this.

gs/base/gsicc_manage.c


2012-03-15 09:58:51 -0700
Michael Vrhel <michael.vrhel@artifex.com>
72fe9304f98beff3c97347d6e402bb812136de49

Fix for memory issue in icc user params

The icc user parameters where improperly being set as being persistent
for the user params list when they were not. In the case when we are
using the output intent profile, one of the default profiles is freed
and replaced by the output intent profile. In this case, the default
profile contained the string that was used for the user params. During
a VMreclaim, we would then go and restore the user params and
unfortunately this default one had been freed.

gs/base/gsicc_manage.c


2012-03-14 09:15:36 -0700
Michael Vrhel <michael.vrhel@artifex.com>
82d1d263a13ccfe64e78cd0e6f1cf1a275adcb9c

Update of Use.htm to include description of -dUsePDFX3Profile

gs/doc/Use.htm


2012-03-02 10:52:19 -0800
Michael Vrhel <michael.vrhel@artifex.com>
1d8c46688c07cec9e58f492223d1a9c92f4374e4

Output Intent Implementation Part 2

The interpreter part of the output intent plus fixes in the c code.
Thanks to Alex for his help on this.

gs/Resource/Init/pdf_draw.ps
gs/Resource/Init/pdf_main.ps
gs/base/gsicc_manage.c
gs/psi/zicc.c


2012-03-13 22:45:00 -0700
Michael Vrhel <michael.vrhel@artifex.com>
0eae84aaf7a1c27f077d4aff3050ae48bb5a6aaa

Fix for broken tiff devices due to use of huge signed number in overflow test

0xFFFFFFFF is used in a calculation to see how close we are to the 4G limit in
a tiff file. Problem was this was cast as a long which, in a 32 bit
system ends up being -1.

gs/base/gdevtsep.c


2012-03-13 10:13:06 -0700
Ray Johnston <ray.johnston@artifex.com>
aa131f2321abe0e65415242a4563fbf3fba005fa

Make -dPDFA backwards compatible, equivalent to -dPDFA=1

As of commit d0371d9 the actual device parameter was changed to be an int.
This change detects if it is defined as a boolean and sets it to 1 if so.

gs/Resource/Init/gs_init.ps


2012-03-13 09:37:15 +0000
Ken Sharp <ken.sharp@artifex.com>
d21eb36fda00dcfefc2e65c2202cb0536562385d

pdfwrite - correction to PDF/A processing

The previous commit for PDF/A prcoessing did not properly check the PDF/A
level in the PostScript handlers, and treated any setting as being PDF/A.
In fact only settings greater than 0 shuold be checked, 0 means 'not PDF/A'

Add code in gdev_pdf_put_params to ensure that PDFA has a permitted value
(0->2) and signal rangecheck if not.

No differences expected.

gs/Resource/Init/gs_cspace.ps
gs/Resource/Init/gs_pdfwr.ps
gs/base/gdevpdfp.c


2012-03-13 09:20:59 +0000
Ken Sharp <ken.sharp@artifex.com>
d0371d915bae6b3d52487d49e470b0e560837ab2

pdfwrite - first pass at PDF/A-2 output

This is the first part of making it possible to produce PDF/A-2b output from
pdfwrite.

The PDFA switch has changed from a boolean to an integer, where the value gives
the level of PDF/A compatibility. This has knock-on effects throughout the
C and PostScript code which has been revised to expect an integer instead
of boolean value.

When PDFA has the value 2 we no longer flatten transparency, and we write
'2' in the pdfaid field in the XMP metadata.

PDF/A-1b output still seems to work correctly, but it is unlikely that the
work so far is sufficient for correct PDF/A-2 output.

No differences expected as the cluster does not test PDF/A output.

gs/Resource/Init/gs_cspace.ps
gs/Resource/Init/gs_pdfwr.ps
gs/base/gdevpdfb.c
gs/base/gdevpdfc.c
gs/base/gdevpdfe.c
gs/base/gdevpdfg.c
gs/base/gdevpdfj.c
gs/base/gdevpdfm.c
gs/base/gdevpdfo.c
gs/base/gdevpdfp.c
gs/base/gdevpdfu.c
gs/base/gdevpdfx.h
gs/base/gdevpdtb.c
gs/base/gdevpdtd.c
gs/base/gdevpdte.c
gs/base/gdevpdtf.c
gs/base/gdevpdti.c
gs/base/gdevpdtt.c
gs/base/gdevpdtw.c
gs/doc/Ps2pdf.htm


2012-03-12 21:57:09 -0400
Alex Cherepanov <alex.cherepanov@artifex.com>
bdcf6ae7c1dab92c48715982ae804211dc558a78

Bug 692851: Implement the case of bps < 8 for Luratech JPX decoder

Implement a missing case of Luratech JPX with components > 1, and
bps < 8. Also fix incorrect bit shift calculation in OpenJpeg
part.

gs/base/sjpx_luratech.c
gs/base/sjpx_openjpeg.c


2012-03-10 00:15:41 +0000
Robin Watts <robin.watts@artifex.com>
5352d4cf5b3fd17a22b4a126fe5d5fdceb0ad7b6

Revert "Support HPGL style path handling. (Work in progress)"

This reverts commit 93bf2df8f6a6b2ed60a8c3f5037865b8646243db.

gs/base/gdevpdfd.c
gs/base/gdevtrac.c
gs/base/gdevvec.c
gs/base/gspath.c
gs/base/gspath1.c
gs/base/gspenum.h
gs/base/gsstate.c
gs/base/gsstate.h
gs/base/gxclpath.c
gs/base/gxcpath.c
gs/base/gxistate.h
gs/base/gxline.h
gs/base/gxpath.c
gs/base/gxpath.h
gs/base/gxpath2.c
gs/base/gxpcopy.c
gs/base/gxpdash.c
gs/base/gxstroke.c
gs/base/gxttfb.c
gs/base/gzpath.h
gs/psi/zgstate.c


2012-03-09 15:31:50 -0800
Marcos H. Woehrmann <marcos.woehrmann@artifex.com>
b89c0e35a15e3a786da346d3cd63d0c558a9fb6a

Hack to fix memento.c build problem on Mac OS X.

gs/base/memento.c


2012-03-09 13:53:55 -0800
Marcos H. Woehrmann <marcos.woehrmann@artifex.com>
dc98b15546522ce28edad3f129f1ae8e05300a34

Change compression of the tiffsep device composite output to match the separations.

Previous to this commit the tiffsep device would always write out
an uncompressed composite file; the separation files were lzw
compressed by default and this could be changed via the -sCompression=
option. Now the compression of the composite file is the same as
that of the separation files.

Fixes Bug 692907.

gs/base/gdevtsep.c
gs/doc/Devices.htm


2012-02-27 03:11:02 +0000
Robin Watts <robin.watts@artifex.com>
93bf2df8f6a6b2ed60a8c3f5037865b8646243db

Support HPGL style path handling. (Work in progress)

HPGL handles paths slightly differently to the postscript imaging model.

When a path is filled, successive moveto's are treated as linetos.
(i.e. the 'place we close the path to' is left at the first moveto,
and the area remains fillable). Stroking is unaffected however.

To model this in Ghostscript we add a new path segment type 's_gap'.
The filling code treats this as a lineto. The stroking code is updated
to not stroke such edges (and not to break the subpath at this point).

We add a new parameter to the imager state (hpgl_fill_mode), new
accessor functions (gs_sethpglfillmode, gs_currenthpglfillmode),
and new postscript operators (.sethpglfillmode and .currenthpglfillmode).

If hpgl fill mode is set to a non-zero value, then path construction
treats movetos in an open subpath as gaptos.

Still to do:
* Double check the output from this code matches HPGL.
* Update the clist code to send hpgl fill mode changes.
* Update PDF write to spot such paths and to convert them as
appropriate when writing out.

gs/base/gdevpdfd.c
gs/base/gdevtrac.c
gs/base/gdevvec.c
gs/base/gspath.c
gs/base/gspath1.c
gs/base/gspenum.h
gs/base/gsstate.c
gs/base/gsstate.h
gs/base/gxclpath.c
gs/base/gxcpath.c
gs/base/gxistate.h
gs/base/gxline.h
gs/base/gxpath.c
gs/base/gxpath.h
gs/base/gxpath2.c
gs/base/gxpcopy.c
gs/base/gxpdash.c
gs/base/gxstroke.c
gs/base/gxttfb.c
gs/base/gzpath.h
gs/psi/zgstate.c


2012-03-09 17:58:13 +0000
Robin Watts <robin.watts@artifex.com>
91b362b05a16c4d74f9309d92fa7387899fed53a

Fix typo in last commit that stopped Memento builds working.

Committed before VS had saved out. Sorry.
CLUSTER_UNTESTED.

gs/base/memento.c


2012-03-09 16:57:13 +0000
Robin Watts <robin.watts@artifex.com>
c66ce76a0c6f8edb075f28ffe1e8f326cc9eb40c

Updated Memento pulled in from mupdf. Plus nesting fixes.

Bring in Memento from MuPDF (where it has had some more tweaks
added). Fix the nested display code. Add hack to ignore prev/next
pointers in chunk blocks.

CLUSTER_UNTESTED.

gs/base/memento.c
gs/base/memento.h


2012-03-09 14:47:43 +0000
Robin Watts <robin.watts@artifex.com>
75bc089fe804d692d8ac86a6f19be807980084f3

Fix Memento GhostPDL builds to actually build Memento on windows.

Windows makefiles were failing to pass the MEMENTO flag down due
to some makefile wackiness.

CLUSTER_UNTESTED.

common/msvc_top.mak
gs/base/msvclib.mak


2012-03-09 10:41:29 +0000
Ken Sharp <ken.sharp@artifex.com>
7629dfecfafa5b3fc82b3767a786b732a0b17645

colour handling - ensure ink names are maintained in the name table while in use

Bug #692884 "Empty Spotcolor Name in generated PDF"

The ink name wasn't being marked as 'in use' by the colour space structure
and so was being freed by a garbage collection, resulting in an empty name.

Robin Watts supplied this patch which allows us to *much* more easily mark
names as in use, and also kindly updated the colour handling as well.

No differences expected.

gs/base/gscdevn.c
gs/base/gscsepr.c
gs/base/gslib.c
gs/base/gsstruct.h
gs/psi/igc.c
pl/plplatf.c


2012-03-07 17:56:47 -0700
Henry Stiles <henry.stiles@artifex.com>
e76a4d070d7d6d90cc7d09849108bca806a9b253

Change the icc user parameter operators to use the graphics state not
the imager state.

gs/base/gsicc_manage.c
gs/base/gsicc_manage.h
gs/psi/zusparam.c


2012-03-07 17:43:07 +0000
Robin Watts <robin.watts@artifex.com>
ff83bab4ddf49c5bbbce9a37cfa8e4d5c42c9009

Add MEMENTO to preprocessor definition list in the VS solution.

No difference to builds, but may make intellisense work better
for Memento builds.

gs/ghostscript.vcproj
win32/language_switch.vcproj
win32/pcl.vcproj
win32/svg.vcproj
win32/xps.vcproj


2012-03-07 17:41:32 +0000
Robin Watts <robin.watts@artifex.com>
b47dc4f294e2b267d139001c6c749603e6ba2570

Tweak rm.bat (and hence fix 'clean' builds on windows)

Cope with -r command. Add /Q flag to erase call (so it doesn't prompt
before deleting).

gs/base/rm.bat


2012-03-07 17:13:35 +0000
Chris Liddell <chris.liddell@artifex.com>
f63237e1bb9a85124349ec0d0eae58737d7cb5ee

Problems with glyphs, T1 patterns and transparecy.....

From investigations of a problem reported by customer 532.

When imaging a cached glyph, if the glyph bitmap cannot be inserted into the
clist tile cache, we'd normally resort to degenerating the glyph bitmap into
rectangles, and writing those to the clist. When the glyph is filled with a
tiling (Type 1) pattern, this means going through the pattern tiling code.

The problem is when transparency is involved (i.e. if the pattern is in a trans
group, or contains a transparency group) the tiling code cannot reliably
degerate to rectangles at this stage. This usually just works due to the various
fallbacks in the clist writing code and the glyph imaging code, but
occasionally glyphs can either disappear, or other problems occur.

This change makes us use that "fallback" route for all glyphs when we're
filling a glyph with a type 1 pattern, with transprency involved and we're
writing to a clist device.

NOTE: this is analogous to what the FAPI does in similar circumstances for
uncached glyphs.

No cluster differences.

gs/base/gsptype1.c
gs/base/gsptype1.h
gs/base/gxccache.c


2012-03-06 09:06:55 -0800
Marcos H. Woehrmann <marcos.woehrmann@artifex.com>
23e37b6fc4d79741007cc18d770bb3e449e53014

Fix the checks in gdevtsep.c missed by commit e954dd4683c35dbd66de3e045d979ebbf20c4d72

Henry pointed out that my e954dd4683c35dbd66de3e045d979ebbf20c4d72
fix was incomplete; this commit replaces the remaining max_long
references with 2^32-1.

gs/base/gdevtsep.c


2012-03-01 13:47:18 -0700
Henry Stiles <henry.stiles@artifex.com>
0611ef428368816b4f123003df98263e674eab5a

Add command line parsing for icc user parameters.

pcl/pctop.c
pl/plmain.c
pl/plmain.h
pl/pltop.h
pxl/pxtop.c
xps/xpstop.c


2012-03-05 19:21:53 -0800
Marcos H. Woehrmann <marcos.woehrmann@artifex.com>
e954dd4683c35dbd66de3e045d979ebbf20c4d72

Fix detection of TIFF file size overflow in tiffsep.

The TIFF spec limits files to 4 Gigs. The code to detect attempts
to write files that were larger than this in gdevtsep.c was broken
on systems were a long != 32 bit.

Fixes Bug 692896.

gs/base/gdevtsep.c


2012-02-29 12:55:19 -0800
Michael Vrhel <michael.vrhel@artifex.com>
d6f504174bd51d22cc43b2f87bee8c275c004cc1

User params reset issue of icc profile strings

If the user params end up getting set during a vmreclaim
while we are in a swapped icc profile situation when
processing a softmask we were ending up freeing profiles
that should not have been freed. This issue was masked
by a check that was disallowing profiling settings in
the manager once they were already set. Also discovered
issues with a corner case where we have a softmask that
includes a pattern with a softmask.

gs/base/gdevp14.c
gs/base/gscms.h
gs/base/gsicc_manage.c


2012-03-03 16:41:59 -0700
Henry Stiles <henry.stiles@artifex.com>
32463b4fe74f855e39be7b5eb74d8be444fffae3

Fix 692893 gl/2 rectangles not properly placed.

When resetting the hpgl/2 page parameters we were setting scaling to
its default value overriding any setting in the PCL job. HP does not
reset the scaling as might be expected.

pcl/pginit.c


2012-03-03 11:03:53 -0700
Henry Stiles <henry.stiles@artifex.com>
0c98813be9c1a24bbcf9ca0c1d4127cb4aa4209f

Fixes bug 692894, orientation of pcl pages incorrect.

This is a case of the current code emulating undocumented behavior
incorrectly. It appears the HP printers resets the print direction
upon receiving a new page size command. Previously we tried to emulate
this by not resetting the logical page orientation which is incorrect
but happened to print the tests we had correctly.

pcl/pcpage.c
pcl/pcstate.h


2012-02-17 13:51:23 -0700
Henry Stiles <henry.stiles@artifex.com>
9d10c339014b9e554116ef55c697f50109071bb2

Better error handling in the absence of fonts.

pcl/pcfsel.c
pcl/pctext.c


2012-03-02 22:34:20 -0800
Marcos H. Woehrmann <marcos.woehrmann@artifex.com>
7180b9328f00fb5df41e6d019e16f70ae4f66ec7

Clean up of distclean target in Makefile.

Improve the distclean target so that the Memento obj and bin directory
contents are deleted and also remove the debug, pg, memento, and
production obj and bin directories.

gs/base/Makefile.in
gs/base/gs.mak
gs/base/unix-dll.mak


2012-03-02 11:50:41 +0000
Chris Liddell <chris.liddell@artifex.com>
ceef3232c1fce21f65d4ba43bb54eaf678389bfd

Bug 692891: don't hack the libjpeg mem manager....

When linking with a shared libjpeg library, don't include the non-public
libjpeg API hack to replace it's low level memory manager with Ghostscript's.
But still do so when using our "local" libjpeg source.

No cluster differences.

gs/base/sjpegc.c


2012-03-02 11:41:21 +0000
Chris Liddell <chris.liddell@artifex.com>
aa3a2bb36828d07c2b71ff0a37f784d8e6fb0f5a

Fix the "WHICH_CMS" setting.....

...so it uses the $(D_) and $(_D_) variables instead of -D directly.

No cluster differences.

gs/base/lib.mak


2012-03-01 11:06:54 +0000
Ken Sharp <ken.sharp@artifex.com>
2a57a68efe18dd4f7898b180400a95d7baccfbc2

pdfwrite - Improve handling of PCL downloaded TrueType fonts

Bug #692629. PCL TrueType fonts are missing some important tables for the
purposes of pdfwrite. In particular the CMAP table, which makes it impossible
to create glyph names.

This causes an error which *should* have resulted in pdfwrite falling back to
bitmaps. In the case of a single glyph, or a string where the fiirst glyph fails,
this did work correctly, but when one or more initial glyphs did work, the
calling code did not expect an error from TrueType fonts and failed to cope
properly by continuing to process the remaining glyphs.

Added TrueType fonts to the list which may error in this fashion.

Expected Differences:
AS40AOJ3.BIN
LW97DOJ2.BIN
SW108OJ2.BIN
VerdanaItalic.prn
bug689100.xl
bug689905.xl

All exhibit significant progressions (text was previously missing)

gs/base/gdevpdtt.c


2012-03-01 07:43:13 +0000
Chris Liddell <chris.liddell@artifex.com>
867fb8607edd04b0b1c8e8bd635347a542b0f50f

Bug 692602: revise script vs job confusion

Slight revision to the previous change, again from jrnieder@gmail.com.

CLUSTER_UNTESTED

gs/man/gs.1


2012-02-29 16:46:33 +0000
Chris Liddell <chris.liddell@artifex.com>
90e6a864f0e4b4b0e6d6a0a1258295cf1cb3e1a6

Bug 692602: revise SAFER section in the man page

patch courtesy of Jonathan Nieder ( jrnieder@gmail.com ).

CLUSTER_UNTESTED

gs/man/gs.1


2012-02-29 11:20:50 +0000
Robin Watts <robin.watts@artifex.com>
3648acb1e3fd3e07faceedde1a71e1b282e25de3

Revert "Support HPGL style path handling."

This reverts commit 43f3cdae4bdf00c09fdd69c53c03fb99d0b4aca1.

This caused unexpected changes in many postscript files. Reverting
until I can figure out why.

gs/base/gdevpdfd.c
gs/base/gdevtrac.c
gs/base/gdevvec.c
gs/base/gspath.c
gs/base/gspath1.c
gs/base/gspenum.h
gs/base/gsstate.c
gs/base/gsstate.h
gs/base/gxclpath.c
gs/base/gxclpath.h
gs/base/gxclrast.c
gs/base/gxcpath.c
gs/base/gxistate.h
gs/base/gxline.h
gs/base/gxpath.c
gs/base/gxpath.h
gs/base/gxpath2.c
gs/base/gxpcopy.c
gs/base/gxpdash.c
gs/base/gxstroke.c
gs/base/gxttfb.c
gs/base/gzpath.h
gs/doc/Language.htm
gs/psi/zgstate.c


2012-02-29 08:31:44 +0000
Ken Sharp <ken.sharp@artifex.com>
34b2e8fd2c33a7fc349b0c51046c3d0c99b74d0c

pdfwrite - Fix XMP ModDate metaData

The XMP metadata Modification date was being written using the Creation
date instead of the Modification date.

No differences expected, metadata is not checked by regression tests

gs/base/gdevpdfe.c


2012-02-28 12:01:12 -0800
Marcos H. Woehrmann <marcos.woehrmann@artifex.com>
8e228753bde054e549c8643cf726c951a512a4a6

Another fix to fuzzy.c dealing with different sized input files.

gs/toolbin/tests/fuzzy.c


2012-02-27 03:11:02 +0000
Robin Watts <robin.watts@artifex.com>
43f3cdae4bdf00c09fdd69c53c03fb99d0b4aca1

Support HPGL style path handling.

HPGL handles paths slightly differently to the postscript imaging model.

When a path is filled, successive moveto's are treated as linetos.
(i.e. the 'place we close the path to' is left at the first moveto,
and the area remains fillable). Stroking is unaffected however.

To model this in Ghostscript we add a new path segment type 's_gap'.
The filling code treats this as a lineto. The stroking code is updated
to not stroke such edges (and not to break the subpath at this point).

We add a new parameter to the imager state (hpgl_path_mode), new
accessor functions (gs_sethpglpathmode, gs_currenthpglpathmode),
and new postscript operators (.sethpglpathmode and .currenthpglpathmode).

If hpgl path mode is set to a non-zero value, then path construction
treats movetos in an open subpath as gaptos.

Still to do:
* Update PDF write to spot such paths and to convert them as
appropriate when writing out.

gs/base/gdevpdfd.c
gs/base/gdevtrac.c
gs/base/gdevvec.c
gs/base/gspath.c
gs/base/gspath1.c
gs/base/gspenum.h
gs/base/gsstate.c
gs/base/gsstate.h
gs/base/gxclpath.c
gs/base/gxclpath.h
gs/base/gxclrast.c
gs/base/gxcpath.c
gs/base/gxistate.h
gs/base/gxline.h
gs/base/gxpath.c
gs/base/gxpath.h
gs/base/gxpath2.c
gs/base/gxpcopy.c
gs/base/gxpdash.c
gs/base/gxstroke.c
gs/base/gxttfb.c
gs/base/gzpath.h
gs/doc/Language.htm
gs/psi/zgstate.c


2012-02-24 22:37:26 -0800
Michael Vrhel <michael.vrhel@artifex.com>
0d095e8511ec1469b0ef4cb741d1fba9363570e7

Movement of code for setting ICC system/user params into graphics lib.

The code that set the system/user params related to ICC profiles was
contained in the zusparam.c file. This file is not used with the
other languages (e.g. xps and pcl). The functions that do the actual
work have been moved to gsicc_manage reducing any code duplication for
the other languages.

gs/base/gsicc_manage.c
gs/base/gsicc_manage.h
gs/psi/zusparam.c


2012-02-25 14:54:03 -0500
Alex Cherepanov <alex.cherepanov@artifex.com>
6d93192f3469bedb51f73abc0a1f8f71d3bfba24

Bug 692878: Convert Type 4 image with invalid mask to Type 1

Improve the revision 3de55841eefb38c751772ac767c5abab155d7d91.
Convert Type 4 images with invalid /Mask attribute to Type 1
images. Previous version used the mask [1 0] in such cases,
which was not compatible with pdfwrite.

gs/Resource/Init/pdf_draw.ps


2012-02-25 15:07:08 +0000
unknown <ken@.(none)>
7d97d5dcfcfb580177566b0f03d75048485683ac

Bug #692880 Correct the initial Windows display device flags for PCL

The flags used for the Windows display device were incorrect and caused
at least some rasterops not to display correctly.

No expetced differences, the display device, and Windows builds, are not
cluster tested.

pl/dwmainc.c


2012-02-24 21:25:08 -0500
Alex Cherepanov <alex.cherepanov@artifex.com>
b9971445d1460a3b0c57b176c73d722ed6db99e1

Add "-I directories" option.

Add a new form of -I option similar to -o, where the directory list
is taken from the next parameter. This form is more convenient to use
on UN*X command line with tilda expansion.

gs/doc/Use.htm
gs/psi/imainarg.c


2012-02-24 20:45:31 -0500
Alex Cherepanov <alex.cherepanov@artifex.com>
9178d875547dafe5f89ae7bbbe9f4fd83e18000c

Bug 692867: ignore PDF path operators without current point

Run l, c, v, y in a stopped context. When they fail (presumably
with /nocurrentpoint), ignore the operator and continue.

gs/Resource/Init/pdf_draw.ps


2012-02-21 11:30:58 -0800
Michael Vrhel <michael.vrhel@artifex.com>
2c4aa5f1a90ee03aacce58f24b819cab3bdd1625

Fix for bug 692865. Make XPS interpreter use ICC color spaces for default

The XPS interpreter was still using Device color spaces for its default
color spaces. This fix has it use ICC color spaces by default which
is required by the spec. This revealed an issue with the color space
handling of the opacity masks. These were getting drawn in sRGB color
space but the transparency group is linear gray. Since we are drawing
the opacity mask as a luminosity mask that is gray we ended up
mapping through a nonlinearity.

gs/base/gscspace.c
gs/base/gscspace.h
gs/base/gxblend.c
xps/ghostxps.h
xps/xpsgradient.c
xps/xpsimage.c
xps/xpsopacity.c
xps/xpspage.c
xps/xpstop.c


2012-02-24 18:39:09 -0500
Alex Cherepanov <alex.cherepanov@artifex.com>
77a8045048a4aaa727f700187816170d7fbd072c

Bug 692832: Drop setcachedevice calls with large arguments.

Reject setcachedevice arguments that are too big and, probably, invalid.
The threshold, 32000, is arbitrary. Normal fonts have the values about 1000.

gs/base/gxchar.c


2012-02-24 18:27:41 -0500
Alex Cherepanov <alex.cherepanov@artifex.com>
9aedcfcd26aea249e0a06061f4d2e579fa5cdffc

Bug 692859: Add Portfolio support to pdf_info.ps

Enumerate PDF subfiles in PDF collection (=portfolio) and apply
the old pdf_info.ps to every component.

gs/toolbin/pdf_info.ps


2012-02-23 01:25:59 -0500
Alex Cherepanov <alex.cherepanov@artifex.com>
3de55841eefb38c751772ac767c5abab155d7d91

Bug 692851: Fix OpenJpeg JPX with components > 1, and bps < 8

Fix packing of multi-component color values with bps < 8 into the
output stream. This results in progressions on Bug691843.pdf, and
minor differences in Bug690147.pdf

gs/base/sjpx_openjpeg.c


2012-02-22 09:40:31 -0800
Michael Vrhel <michael.vrhel@artifex.com>
b105c3678ff3c22ab65995953b4599d8c5c37a7e

Typo fix in non color managed transform

Thanks to Peter Skarpetis for finding this.

gs/base/gxblend1.c


2012-02-22 11:27:16 -0500
Alex Cherepanov <alex.cherepanov@artifex.com>
b4a8edb730e25f5c03103a2bb687e223a440d990

Bug 692852: Broken /Mask in 1 bpc /Indexed images

Following AR9 implementation, add special processing for
repairing a broken /Mask attribute of 1 bpc indexed images.
Ignore the whole Mask if its first element is out of range.
Replace the second component with 1 when it's out of range.

gs/Resource/Init/pdf_draw.ps


2012-02-20 06:23:06 -0800
Marcos H. Woehrmann <marcos.woehrmann@artifex.com>
ed07da9075aa82bc0c4335228cc9c934e6efdb45

Revert 2e807ab6d4eecfce43561b9e8d5b66386a5165ee and fix fuzzy.c correctly.

gs/toolbin/tests/fuzzy.c


2012-02-19 15:45:43 -0800
Ray Johnston <ray.johnston@artifex.com>
e277c5e8d76325f56259a4f930caa166a594cfc0

Improve image performance by rotating Width 1 images to Height 1.

The image code makes a call to 'image_render' for each line of the Height. This defeats the joining
of any same color pixels into a larger rectangle and also creates extra overhead. Problem analyzed
with profiles from cust 532 file "PWTTQ1CC.pdf". Regression testing shows some single pixel differences
presumably due to rounding, but no obvious problems.

gs/psi/zimage.c


2012-02-18 09:28:14 -0800
Marcos H. Woehrmann <marcos.woehrmann@artifex.com>
2e807ab6d4eecfce43561b9e8d5b66386a5165ee

Make fuzzy not lock up when comparing images of different sizes.

gs/toolbin/tests/fuzzy.c


2012-02-16 20:03:26 +0000
Robin Watts <robin.watts@artifex.com>
d00354a21670d16f00c96228591b3d8213d6a590

Fix interpolation of indexed colorspaces.

WMB1102317A01.pdf (supplied by a customer) shows a problem with
Interpolation of Index colorspaces.

Specifically, we have an Indexed DeviceGrey space (which is, in
the new world order, an Indexed ICC space, with 1 component).

At line 678 of gxiscale.c we correctly detect that pcs->type->index
is Indexed, and therefore use the base space as the 'actual' space.

At line 683 we find the concrete space (which in this case is
exactly the same space). We then decide whether we are working in
an icc world, or a device_color world by checking for the presence
of icc data. The old code used to (incorrectly) check pcs (the
indexed space), when it should really have checked the concrete
space.

The remaining changes in the code are purely tidying:

* avoid calling concrete_space a second time (when pconcs already
holds the answer)
* pass pconcs as an arg when calling pconcs->type->remap_concrete_color
rather than pactual_cs. At that point pactual_cs and pconcs must
be identical, but it's nicer to be consistent.

This produces 3 differences in the cluster tests, all in the cups
tests. These can be reproduced locally using tiffsep.

comparefiles/148-11.ps.cups.300.1
Definite progression

PDFIA1.7_SUBSET/CATX1028.pdf.cups.300.1
Looks like progression to me

ps/ps3cet/12-07B.PS.cups.300.1
Definite progressions on page 12-15. A problem still exists on
page 12 though, but that's unaffected by this change.

gs/base/gxiscale.c


2012-02-16 18:16:16 +0000
Robin Watts <robin.watts@artifex.com>
21579b00e53b97cd655f164bb92c5280c586e365

Output helpful debug warning when tif output would be too large.

Currently we just raise a rangecheck, which can be very confusing.

CLUSTER_UNTESTED.

gs/base/gdevtsep.c


2012-02-15 19:03:56 +0000
Robin Watts <robin.watts@artifex.com>
43b14b24fcc13d816dd41ca335d52cd3074bd0d8

Update garbage collection to cope with pdf14_compressed_color_list.

A second list of compressed colors was recently added to the
gdevn_params structure, but this wasn't added to the garbage
collection routines. Fixed here.

gs/base/gdevp14.c
gs/base/gdevpsd.c
gs/base/gdevtsep.c


2012-02-15 19:02:34 +0000
Robin Watts <robin.watts@artifex.com>
d375ea1908bfe1770b108a6c7d1e7cdbe38b99f2

Fix Division by Zero in interpolated scaler.

If we find we are scaling an image to be zero width or
height, handle the image without interpolation.

gs/base/gxiscale.c


2012-02-14 18:11:15 -0700
Henry Stiles <henry.stiles@artifex.com>
0a0aa751d8cb5d49052a0c4ed3ae38ad66b9fb8e

Fix 692857, wrong current unit initialization in HPGL/2-RTL.

The code was actually written fixed once correcly but then was broken
with a bad fix (5ad194f) largely because we didn't have good bookkeeping
for the original fix. Hopefully now that we have an associated bug
report and test file a similar problem won't happen again.

pcl/pcjob.c


2012-02-14 14:57:07 +0000
Robin Watts <robin.watts@artifex.com>
00a96d35b30d77f8dfbc8ae12326c81053fc50c9

Fix Bug 692854; tweak gdev_prn color procs.

A previous commit (cf37ea5) changed the prn device macros to
duplicate map_color_rgb/map_rgb_color to encode/decode_color.
I thought this was safe as the default color encoding/decoding
functions were actually implemented as encode/decode, rather
than map_ variants.

Unfortunately, this falls down when other devices (such as the
tiffscaled ones) provide genuine map_ functions rather than
encode/decodes.

So, a small tweak to the macros is required; we now duplicate
to encode/decode only if specifically told to - and the macros
that use the defaults specifically say to. Other devices should
remain unchanged.

gs/base/gdevprn.h


2012-02-13 08:46:29 -0800
Michael Vrhel <michael.vrhel@artifex.com>
ba2a8e63783227033506688bebccf664b2b922c7

C portion for making use of output intent ICC profile.

This commit puts into place the c-code for making use of an
ICC profile stream from the PDF interpreter for setting of the
output intent. This is done through the use of zset_outputintent.
This function will make the various settings of the icc profiles
in the device and in the icc manager based upon the process model
of the target device and the icc profile of the output intent. It
will be up to the interpreter to make the call to .set_outputintent
with the proper output intent ICCBased dictionary on the top of the
stack. This should be done in the interpreter after the device has
been set up and all the default ICC profiles are in place. The
interpreter should make the call if we have specified -dUsePDFX3Profile.
The first output intent that is present in the file should be used,
unless someone specifies a different intent through the use of
–dOutputIntent=x . In this case, the x+1 output intent (if it
exists) will be used. Note that if the particular output intent does
not include an ICC profile entry (DestOutputProfile), then the output
intent will not be used. In this case, we will eventually want to
specify what the OutputConditionIdentifier was for that particular
intent if it was missing the DestOutputProfile.

gs/base/gdevpdfk.c
gs/base/gscms.h
gs/base/gsequivc.c
gs/base/gsicc_manage.c
gs/base/gsicc_manage.h
gs/psi/int.mak
gs/psi/zicc.c


2012-02-12 21:14:34 -0700
Henry Stiles <henry.stiles@artifex.com>
7aa3debb84673b38d805aa6de1afce60f0d6c6ab

Improve character fills, bug #692849.

The unusual loops inside the characters (graphic 3 and 8 center of
page) were caused by trying to edge stick and arc fonts which aren't
outlines but paths (stroked fonts).

pcl/pgdraw.c
pcl/pglabel.c
pcl/pgmisc.h


2012-02-10 18:13:00 -0700
Henry Stiles <henry.stiles@artifex.com>
bcdb21c092a4a788d7252cc1b560aa427743a197

Improvements for bug 692849.

Better emulation of HP printers in the absence of a requested pattern.

pcl/pcl.mak
pcl/pglfill.c


2012-02-10 11:29:16 -0700
Henry Stiles <henry.stiles@artifex.com>
a81f5d7f83271e2e3e0fb28ad32c9fb337c8553a

Bug 692849, missing green filled boxes fixed.

The green boxes for fill type 22 (user defined) were missing because
the download pattern command was disabled in HPGL-2/RTL mode.

pcl/pcuptrn.c


2012-02-09 17:24:34 -0700
Henry Stiles <henry.stiles@artifex.com>
1bf302eec20ce9b543aee523b441dd7adc677cc0

Remove relic data files used by the wts device.

CMYK.icc
Makefile
link.icc
sRGB.icc
wts_dump_0
wts_plane_0
wts_plane_1
wts_plane_2
wts_plane_3


2012-02-09 17:15:41 -0700
Henry Stiles <henry.stiles@artifex.com>
e2867c6bcb2dc6cf9325e9ac87f980684469dee4

PCL shared library build for unix.

Makefile
common/ugcc_top.mak
main/pcl6_gcc.mak


2012-02-10 17:24:00 +0000
Robin Watts <robin.watts@artifex.com>
a13600f1c241c3e36dbe4973e9d78a8934b16004

Further clipping optimisations.

When clipping the region to be used for an image plot, reduce the
rectangle by the outer box of the clipping path before checking to
see if a clip is needed or not.

This enables us to avoid a clipping device in more cases.

gs/base/gxclip.c


2012-02-10 17:20:36 +0000
Robin Watts <robin.watts@artifex.com>
cf37ea5d017193c76341aafd60e35d3b1826046f

Prn device changes to encode/decode_color.

At the moment, prn devices do not implement encode_decode/color,
choosing instead to provide map_rgb_color/map_color_rgb which
just get called through a 'backwards compatibility' layer.

In fact, they actually implement encode/decode_rgb rather than
map_rgb_color/map_color_rgb, so we just copy the entries here.

No changes expected in cluster.

gs/base/gdevprn.h


2012-02-09 00:00:31 +0000
Shailesh Mistry <shailesh.mistry@hotmail.co.uk>
082c31b99fd38ebb1a9bc678d06ac9791db2e222

Bug 690974: This patch from Gorac implements the generic refinement region
decoding procedure for when TPGRON is TRUE.

gs/jbig2dec/jbig2_refinement.c


2012-02-08 23:13:13 +0000
Shailesh Mistry <shailesh.mistry@hotmail.co.uk>
8b150573a88276849b32b359030fc195786d2be8

Bug 690870: This patch prevents the image compositing occurring if the src
is outside of the clip region.

gs/jbig2dec/jbig2_image.c


2012-02-08 09:50:34 -0800
Michael Vrhel <michael.vrhel@artifex.com>
059dfa8389ff1dde2bb35237b12f72c6fd62da9b

Fix for bug 682719. Fix bad icc profiles in examples/annots.pdf

The ICC profiles in annots.pdf were missing all sorts of required information in
the header.

gs/examples/annots.pdf


2012-02-08 08:40:12 +0000
Chris Liddell <chris.liddell@artifex.com>
a2390c3b6be80d1147f1ef60c16c70d75033a475

Amend date and update changelog for 9.05 release.

CLUSTER_UNTESTED

gs/base/version.mak
gs/doc/API.htm
gs/doc/C-style.htm
gs/doc/Commprod.htm
gs/doc/DLL.htm
gs/doc/Deprecated.htm
gs/doc/Details8.htm
gs/doc/Details9.htm
gs/doc/Develop.htm
gs/doc/Devices.htm
gs/doc/Drivers.htm
gs/doc/Fonts.htm
gs/doc/Helpers.htm
gs/doc/History1.htm
gs/doc/History2.htm
gs/doc/History3.htm
gs/doc/History4.htm
gs/doc/History5.htm
gs/doc/History6.htm
gs/doc/History7.htm
gs/doc/History8.htm
gs/doc/History9.htm
gs/doc/Install.htm
gs/doc/Issues.htm
gs/doc/Language.htm
gs/doc/Lib.htm
gs/doc/Make.htm
gs/doc/News.htm
gs/doc/Projects.htm
gs/doc/Ps-style.htm
gs/doc/Ps2epsi.htm
gs/doc/Ps2pdf.htm
gs/doc/Ps2ps2.htm
gs/doc/Psfiles.htm
gs/doc/Readme.htm
gs/doc/Release.htm
gs/doc/Source.htm
gs/doc/Unix-lpr.htm
gs/doc/Use.htm
gs/doc/WhatIsGS.htm
gs/doc/Xfonts.htm
gs/doc/gs-vms.hlp
gs/doc/thirdparty.htm
gs/man/dvipdf.1
gs/man/font2c.1
gs/man/gs.1
gs/man/gslp.1
gs/man/gsnd.1
gs/man/pdf2dsc.1
gs/man/pdf2ps.1
gs/man/pdfopt.1
gs/man/pf2afm.1
gs/man/pfbtopfa.1
gs/man/printafm.1
gs/man/ps2ascii.1
gs/man/ps2epsi.1
gs/man/ps2pdf.1
gs/man/ps2pdfwr.1
gs/man/ps2ps.1
gs/man/wftopfa.1


2012-02-01 10:59:52 +0000
Chris Liddell <chris.liddell@artifex.com>
eed3745432f9bce3e20d9b634d78d1a72dbbf040

Update docs for 9.05 release candidate.

CLUSTER_UNTESTED

gs/doc/History9.htm


2012-02-08 15:01:57 +0000
Ken Sharp <ken.sharp@artifex.com>
0816e3b87ec1843a31e3075a4fa382e844a46158

Bug #688227 Alter the PostScript 'show' operators so that the show enumerator is in local VM

As described in the bug, it seems to be technically possible for a local font to be
referenced from a show enumerator. If the enumerator is in global VM this
causes a garbage collector crash.

This code modifies the PostScript 'show' family of operators so that the
enumerator is always allocated from local VM, avoiding the problem.

There is no specimen or method of reproduction supplied in the bug report so
this is rather speculative, however it runs a cluster test without problem.
If it does cause any problems we should simply revert this change.

As part of this change it was noticed that there are a number of procedures
defined in gschar.c which are apparently dead code and these have been removed.

No expected differences.

gs/base/gschar.c
gs/base/gschar.h
gs/psi/zchar.c
gs/psi/zcharx.c


2012-02-07 09:23:30 +0000
Ken Sharp <ken.sharp@artifex.com>
a6a7d7b62d5bb5cbe00c1051d8a9cb749e43fe86

pdfwrite - fallback to 'LeaveColorunchanged' if we cannot deal with color conversion

Some of the PDFSETTINGS collection of settings set the ColorConversionStrategy
to spaces which may not be possible (in the current architecture) to convert
every colour space into. For example ICCBased spaces. This causes a fairly
incomprehensible error to be thrown.

In future we intend to do a better job with colour taking advantage of the
built-in colour management, but for now we simply choose to change the
ColorConversionStrategy to 'LeaveColorUnchanged' and emit a warning.

Bug #692030 and Bug #692108

No Expected Differences as this is not tested by the cluster

gs/base/gdevpdfc.c


2012-02-06 12:01:53 +0000
Robin Watts <robin.watts@artifex.com>
e448aeaf3d3d572bf4e91d9acdf3fa623ed9b6fb

Clipping optimisations; avoid needless clipping device.

When filling a mask, check any clipping path given; if it trivially
includes all the mask, then don't bother creating a clipping
device. If it trivially excludes, then don't bother plotting at all.
If the bbox partially covers the area, then reduce the area
of the mask.

This gives a 6-8% speedup of customer 532's test files; they are
filling a mask with a halftone, which breaks down into lots of
short run, 1 pixel high rectangles. Avoiding the clipping device
avoids lots of function call overhead.

gs/base/gdevdbit.c
gs/base/gxclip.c
gs/base/gxcpath.h


2012-02-06 15:37:04 +0000
Robin Watts <robin.watts@artifex.com>
09a47e5c2b0fff0d2598e38305bc3d0bc050a26f

Remove overzealous call to image_init_clues.

Investigation of customer 532's problem files lead Ray to
spot that we are blowing away the color clues on every call to
image_render_mono (called for every scanline in an image at
least), rather than just once per image.

Here, therefore, we change to call image_init_clues in
gs_image_class_3_mono (the function that returns image_render_mono)
rather than in image_render_mono itself.

gs/base/gximono.c


2012-02-06 15:25:33 +0000
Robin Watts <robin.watts@artifex.com>
ea8d2baefa33457d89b4daa8a80dd1898a362bd3

Remove last vestiges of halftone cache.

Back in 2002 code was committed (as part of the DeviceN work) that
removed the halftone cache from the image state. The last vestiges
of this were functions:

gx_check_tile_cache_current
gx_check_tile_cache
gx_check_tile_size

All these were hardwired to return a constant value, but the calls
to them were never removed from the code.

Here, we remove those calls. No differences should be given.

gs/base/gxht.c
gs/base/gximono.c
gs/base/gxipixel.c
gs/base/gzht.h


2012-02-06 10:55:59 +0000
Chris Liddell <chris.liddell@artifex.com>
013136f0e1050dc25c441fdf49dbfeb21ce0ee7a

Bug 692838: fix building against system zlib

Commit 75ff1314c3de8fb5df702211b6effb6df2b87faa broke building against the
system zlib by adding an explicit dependency on a file in the "local" zlib
source directory.

Ensure that dependency only applies when building non-shared zlib.

Also, at some point, the mkromfs with shared zlib has been broken, so fix that
by passing the "-lz" option to the CCAUX compiler variable.

No cluster differences.

gs/base/Makefile.in
gs/base/configure.ac
gs/base/lib.mak


2012-02-04 21:14:04 -0800
Marcos H. Woehrmann <marcos.woehrmann@artifex.com>
75ff1314c3de8fb5df702211b6effb6df2b87faa

Added dependencies to base/lib.mak.

gs/base/gs.mak
gs/base/lib.mak


2012-02-04 11:09:47 +0000
Ken Sharp <ken.sharp@artifex.com>
051ed7e56c0d3ef36149c45610bd19a0e55647c0

ps2write - Handle nested patterns better

Patterns inside patterns were not working properly, because PDF and PostScript
handle this differently. opdfread.ps resets teh graphics state CTM to the
identity when drawing patterns, because the PDF spec says patterns are always
referenced to the default co-ordinate space and in order that the matrix gets
applied correctly we need to reset the CTM.

However, when the pattern is inside another pattern, the defualt co-ordinate
space is that of the enclosing pattern, so restting the CTM is a problem. We
can't simply avoid the reset as normal patterns would stop working. We can't
'undo#' the pattern matrix in PostScript, because we don't know what the
resolution scaling was.

So we track the pattern depth in ps2write, and the accumulated matrix transforms
from all the patterns so far. Then we apply that accumulated matrix to any new
pattern when the pattern depth is not zero.

This works, but is not 100% reliable, 2 patterns inside a single parent would
be concatenated, resulting in the second pattern being incorrect. However the
nested pattern situation is rare enough that I'm going to leave this as it is.

Expected Differences:
09_47N.pdf
Bug6901014_org_Chromium_AN03F.pdf

these files now work correctly with ps2write.

gs/base/gdevpdfb.h
gs/base/gdevpdfi.c
gs/base/gdevpdfv.c
gs/base/gdevpdfx.h


2012-02-03 17:50:37 -0700
Henry Stiles <henry.stiles@artifex.com>
e7c3c6e02fac1a6e24030a2815645610b42fde47

Fixes 692387, the font rotation code did not work properly for some
rotations.

There are many progressions and small character placement adjustments
in many regression files. The latter due to how the rotation matrix
is now calculated with a rounded angle.

pcl/pglabel.c


2012-02-02 17:31:27 -0700
Henry Stiles <henry.stiles@artifex.com>
2cffba33ed7bb6aafe9176688535eab290cb20f0

RTL mode's print direction is always rotated with respect to the
physical page size.

pcl/pcpage.c


2012-02-03 16:18:01 +0000
Chris Liddell <chris.liddell@artifex.com>
84abcb901a8451ece9f23fda4b17f670b335eb07

Propogate dynmic device flags to 'so' subtarget.

When I brought the Makefile into line with convention for some of the FLAGS
variables, I forgot to add the new 'AC_CFLAGS' value to the subtarget for
the dynamic library build.

No cluster differences.

gs/base/unix-dll.mak


2012-02-03 16:20:25 +0100
Till Kamppeter <till.kamppeter@gmail.com>
03ab853b064b491cb463e392fe6988e904d76fd5

CUPS Raster: Fixed rotating of input pages with unknown sizes

gs/cups/gdevcups.c


2012-02-02 21:02:26 +0100
Till Kamppeter <till.kamppeter@gmail.com>
d0b64a75d54948b3f07da0128bb0002523a39040

CUPS Raster: More on improving page size fitting

Raised the tolerance of matching the document's page sizes with the PPD's
page sizes on the short dimension to 2 %. This also covers the overspray
full-bleed page sizes of HPLIP.

gs/cups/gdevcups.c


2012-02-02 20:43:22 +0100
Till Kamppeter <till.kamppeter@gmail.com>
2d4fac37ee36948c0b30e6b95292b68f718cafdc

Merge branch 'master' of ghostscript.com:/home/git/ghostpdl


2012-02-02 12:14:41 -0700
Henry Stiles <henry.stiles@artifex.com>
72887eac758eba7638258b6b375347ee16efbbdc

Add 4 new raster decompression methods to PCL.

HPGL/2 and RTL plotters support the following decompression methods:
uncompressed block (#4), CCITT group 3 1 dimensional (#6), CCITT group
3 2 dimensional (#7), CCITT group 4 2 dimensional (#8). These have
gotten little testing we only have a couple test files at the current
time.

pcl/pcl.mak
pcl/rtgmode.c
pcl/rtraster.c
pcl/rtrstcmp.c
pcl/rtrstcmp.h


2012-02-02 19:37:07 +0100
Till Kamppeter <till.kamppeter@gmail.com>
49be0086211ef92988468cee4bad5d361b8b6c7d

Improved page size matching in the CUPS Raster output device

The tolerances when comparing the page sizes in the document with the
sizes in the PPD file are changed to 1% for the short dimension of the
page and 5% for the long dimension. The 1% for the short dimension is
more or less the same as the 5.0pt used before (on letter or A4
paper). The 5% can cover the half inch deviation which HP puts into
the sheet length for their duplex paper sizes on ink jets.

If there is no matching paper size in the PPD and therefore the paper
size is considered custom, the page will be rotated in the case that
it does not fit into the maximum custom paper size (= printer
dimensions) but fits rotated.

With these measures, pages with slightly incorrectly defined size or
slightly incorrectly defined sizes in the PPD file (like the different
entries for one and the same paper size in the PPDs of HPLIP) will
find their size in the PPD and so rotated if needed.

This avoids cut-off print outs or even crashes of the printer
(https://bugs.launchpad.net/ubuntu/+source/linux/+bug/917148) due to
landscape pages not getting rotated.

gs/cups/gdevcups.c


2012-01-31 12:55:34 -0800
Michael Vrhel <michael.vrhel@artifex.com>
ee811255187a9367a090ce542e78c13912e92ca6

Device Link and Proof Profile fix

If a proofing profile or a device link profile are
specified, the link transform is more than likely not going
to be identity. This fix ensures that the transform
is properly applied.

gs/base/gsicc_cache.c


2012-01-31 18:20:00 +0000
Chris Liddell <chris.liddell@artifex.com>
a68dde56d66d7a5b9aabf0c742efb77b5fbdca03

Bug 690473: scale substitute fonts to fit in Widths.

Compare the width of the glyphs in a substitute font with those in the PDF
Widths array, and scale the font down to fit better, if necessary. This
does not add scaling up the font.

This changes a number of cluster files - most are progressions, some are just
different (no worse, no better), none that I consider regressions.

gs/Resource/Init/pdf_font.ps


2012-01-30 15:28:05 -0800
Michael Vrhel <michael.vrhel@artifex.com>
d630ef2c042179ecf0443b15b488194690f6b980

Make device link profile work with lcms2. Also update documentation and add error handling.

The device link profile handling was put in place when we had lcms 1.8 but was not ported
over to the 2.0 interface.

gs/base/gsicc.c
gs/base/gsicc_lcms2.c
gs/doc/Use.htm


2012-01-31 18:04:01 +0000
Chris Liddell <chris.liddell@artifex.com>
306f7dce4e74bc715a91dd892eab78f856cf11da

Have gitlog2changelog.py use html code for "quote" char

CLUSTER_UNTESTED

gs/toolbin/gitlog2changelog.py


2012-01-31 17:49:42 +0000
Robin Watts <robin.watts@artifex.com>
3c61e0b90b63dbef94f75e370ccef9dd5a077c26

Add new "WhatIsGS.htm" document

This explains how Ghostscript, GhostPCL, GhostXPS, etc are related.

gs/doc/Readme.htm
gs/doc/WhatIsGS.htm


2012-01-31 11:26:31 -0500
Alex Cherepanov <alex.cherepanov@artifex.com>
ddedf257534b7c628442d92f771dc8240cf546a7

Bug 691483: Fix access to PDF collections.

Fix a bug in enumeration of a name tree that prevented acceaa to some
files in the PDF file collection when the name tree was more than
one level deep.

gs/Resource/Init/pdf_main.ps


2012-01-31 12:01:53 +0000
Chris Liddell <chris.liddell@artifex.com>
26a96f7660a921d80dba77ef0220845918cfd4a8

Have plver.mak use Ghostscript version.mak version number

No (significant) cluster differences.

common/msvc_top.mak
pl/pl.mak


2012-01-31 08:12:14 +0000
Ken Sharp <ken.sharp@artifex.com>
20cd9c7595492684ac564789afeb2df1b6066554

ps2write - silence a benign compiler warning

Picked up by scan-build; presumably this only gets run for commits, not
for regular cluster tests as it didn't show up previously.

gs/base/gdevpdfc.c


2012-01-30 20:26:30 +0000
Chris Liddell <chris.liddell@artifex.com>
ca932b9ee0a84e7725b347d9fc99ef8b2b3ad8c8

gitlog2changelog.py use html sequence for '&'

Thanks to SaGS for pointing it out.

CLUSTER_UNTESTED

gs/toolbin/gitlog2changelog.py


2012-01-30 18:14:22 +0000
Chris Liddell <chris.liddell@artifex.com>
69d0fee61911ef6044b07cd7b36bc2148e6bb214

Tweak gitlog2changelog.py to avoid trailing whitespace

CLUSTER_UNTESTED

gs/toolbin/gitlog2changelog.py


2012-01-30 17:41:35 +0000
Chris Liddell <chris.liddell@artifex.com>
08a189c3b72e6bf89ae938b0bbacbbf113e0e346

Improve the html output of the changelog generator.

There were some compatibility problems with the html from the git log to
html changelog generator - such as including '<' and '>' characters in
text to be displayed.

Also, improve the actual formatting slightly.

CLUSTER_UNTESTED

gs/toolbin/gitlog2changelog.py


2012-01-30 17:46:27 +0000
Chris Liddell <chris.liddell@artifex.com>
5dd29e182ea1fec5e504558173bbb875501d04a1

Move the JPEG XR code to a separate section......

... for non-GPL compatible, open source licensed code.

CLUSTER_UNTESTED

gs/doc/thirdparty.htm


2012-01-30 13:32:05 +0000
Ken Sharp <ken.sharp@artifex.com>
ef2a4bfbf4f590635277299bf0e0d7aaea1f392b

ps2write - correctly convert ICCBased *image* colour spaces

Previously we handled ICCbased spaces by pretending they were device spaces
with the same number of components as the ICCBased space. This works
suprisingly well, but fails utterly for Lab spaces where images come out
completely incorrect.

We now convert the image data to the current device space. We do not yet handle
vector colour spaces, this will be handled by a future rewrite of the colour
handling to permit much better control over colour space handling.

This change causes quite a number o differences in the regression suite.
These fall into one of 4 causes:

1) Colour space conversion; previously ICCBases spaces with 1 or 4 components
would be handled as grey or CMYK respectively. They are now converted to the
device space (RGB by default). This causes some colour changes, especially
in halftoned output with a 1 component space. These are not incorrect as can
be seen from the contone output

2) There are some minor shifts in colour caused by correctly handling the
ICCBased space, in general these are progressions (especially the Altona
suite).

3) Handling of Lab colour spaces. These now work correctly where previously
they did not. Especially catx4929.pdf and IA3Z3476.pdf

4) Honouring rendering intents. Files hwich used a rendering intent now are
correctly converted. cf Bug #691926, comment 3.

5) There seems to be a possible problem with converting some CalRGB spaces,
the resulting output seems 'blue' with respect to the Acrobat otuput. In the
case of 1 file which contains scanned images of books, it is clear from the
original book covers that the output is incorrect. Michael suggest this may be
a White POitn problem. A separate bug report will be filed for this. Ghostscript
rendering of the original matches the ps2write output.

gs/base/gdevpdfc.c
gs/base/gdevpdfg.h
gs/base/gdevpdfi.c


2012-01-30 13:25:17 +0000
Chris Liddell <chris.liddell@artifex.com>
58e2df820785b88a544f625de35fbcb39c35b305

Update LICENSE

Revise the LICENSE file to reflect the latest Adobe CMap license
conditions, and to note that there is an Artifex copyright CMap in the
CMap directory.

Also, add a note about the JPEX XR source license.

CLUSTER_UNTESTED

gs/LICENSE


2012-01-30 13:23:18 +0000
Chris Liddell <chris.liddell@artifex.com>
523697346bbc88bf309cb44b47f53516c33917f7

Increment Ghostscript version on master to 9.06.

No (important) cluster differences.

gs/Resource/Init/gs_init.ps
gs/base/version.mak


2012-02-08 08:42:09 +0000
Chris Liddell <chris.liddell@artifex.com>
593431146ef93a53744a04c2a571a6f1f40b0084

Remove "RELEASE CANDIDATE" from product string.

CLUSTER_UNTESTED

gs/base/gscdef.c


2012-02-08 08:40:12 +0000
Chris Liddell <chris.liddell@artifex.com>
c1d20ffdb4d184c9019ee7f58bc279c6d633d05d

Amend date and update changelog for 9.05 release.

CLUSTER_UNTESTED

gs/base/version.mak
gs/doc/API.htm
gs/doc/C-style.htm
gs/doc/Commprod.htm
gs/doc/DLL.htm
gs/doc/Deprecated.htm
gs/doc/Details8.htm
gs/doc/Details9.htm
gs/doc/Develop.htm
gs/doc/Devices.htm
gs/doc/Drivers.htm
gs/doc/Fonts.htm
gs/doc/Helpers.htm
gs/doc/History1.htm
gs/doc/History2.htm
gs/doc/History3.htm
gs/doc/History4.htm
gs/doc/History5.htm
gs/doc/History6.htm
gs/doc/History7.htm
gs/doc/History8.htm
gs/doc/History9.htm
gs/doc/Install.htm
gs/doc/Issues.htm
gs/doc/Language.htm
gs/doc/Lib.htm
gs/doc/Make.htm
gs/doc/News.htm
gs/doc/Projects.htm
gs/doc/Ps-style.htm
gs/doc/Ps2epsi.htm
gs/doc/Ps2pdf.htm
gs/doc/Ps2ps2.htm
gs/doc/Psfiles.htm
gs/doc/Readme.htm
gs/doc/Release.htm
gs/doc/Source.htm
gs/doc/Unix-lpr.htm
gs/doc/Use.htm
gs/doc/WhatIsGS.htm
gs/doc/Xfonts.htm
gs/doc/gs-vms.hlp
gs/doc/thirdparty.htm
gs/man/dvipdf.1
gs/man/font2c.1
gs/man/gs.1
gs/man/gslp.1
gs/man/gsnd.1
gs/man/pdf2dsc.1
gs/man/pdf2ps.1
gs/man/pdfopt.1
gs/man/pf2afm.1
gs/man/pfbtopfa.1
gs/man/printafm.1
gs/man/ps2ascii.1
gs/man/ps2epsi.1
gs/man/ps2pdf.1
gs/man/ps2pdfwr.1
gs/man/ps2ps.1
gs/man/wftopfa.1


2012-02-03 16:18:01 +0000
Chris Liddell <chris.liddell@artifex.com>
dd4c7f1f03aa7ea18d43db224126502725af91ba

Propogate dynmic device flags to 'so' subtarget.

When I brought the Makefile into line with convention for some of the FLAGS
variables, I forgot to add the new 'AC_CFLAGS' value to the subtarget for
the dynamic library build.

No cluster differences.

gs/base/unix-dll.mak


2012-02-03 16:20:25 +0100
Till Kamppeter <till.kamppeter@gmail.com>
e837609b2955680dc59ca4f357076be7cd819a46

CUPS Raster: Fixed rotating of input pages with unknown sizes

gs/cups/gdevcups.c


2012-02-02 21:02:26 +0100
Till Kamppeter <till.kamppeter@gmail.com>
c3464da3ee42b8af645af6eadabea4977d948b1a

CUPS Raster: More on improving page size fitting

Raised the tolerance of matching the document's page sizes with the PPD's
page sizes on the short dimension to 2 %. This also covers the overspray
full-bleed page sizes of HPLIP.

gs/cups/gdevcups.c


2012-02-02 19:37:07 +0100
Till Kamppeter <till.kamppeter@gmail.com>
c12ed06596207d895739b41e5c920af0aa48a2ff

Improved page size matching in the CUPS Raster output device

The tolerances when comparing the page sizes in the document with the
sizes in the PPD file are changed to 1% for the short dimension of the
page and 5% for the long dimension. The 1% for the short dimension is
more or less the same as the 5.0pt used before (on letter or A4
paper). The 5% can cover the half inch deviation which HP puts into
the sheet length for their duplex paper sizes on ink jets.

If there is no matching paper size in the PPD and therefore the paper
size is considered custom, the page will be rotated in the case that
it does not fit into the maximum custom paper size (= printer
dimensions) but fits rotated.

With these measures, pages with slightly incorrectly defined size or
slightly incorrectly defined sizes in the PPD file (like the different
entries for one and the same paper size in the PPDs of HPLIP) will
find their size in the PPD and so rotated if needed.

This avoids cut-off print outs or even crashes of the printer
(https://bugs.launchpad.net/ubuntu/+source/linux/+bug/917148) due to
landscape pages not getting rotated.

gs/cups/gdevcups.c


2012-02-01 11:06:38 +0000
Chris Liddell <chris.liddell@artifex.com>
f945ac6dd076b367fb9a9d8851cca783049b77a0

Change product string to "RELEASE CANDIDATE 1"

gs/base/gscdef.c


2012-02-01 10:59:52 +0000
Chris Liddell <chris.liddell@artifex.com>
5f1a49cb3b05b5fed23e7eab99d6e036f16921dd

Update docs for 9.05 release candidate.

CLUSTER_UNTESTED

gs/doc/History9.htm


2012-01-31 12:55:34 -0800
Michael Vrhel <michael.vrhel@artifex.com>
ffca2758193c517edf1d20c6af17acd85f8d5f99

Device Link and Proof Profile fix

If a proofing profile or a device link profile are
specified, the link transform is more than likely not going
to be identity. This fix ensures that the transform
is properly applied.

gs/base/gsicc_cache.c


2012-01-30 15:28:05 -0800
Michael Vrhel <michael.vrhel@artifex.com>
dbf3d3403bc928c183b0674aa5adbb6263d56e42

Make device link profile work with lcms2. Also update documentation and add error handling.

The device link profile handling was put in place when we had lcms 1.8 but was not ported
over to the 2.0 interface.

gs/base/gsicc.c
gs/base/gsicc_lcms2.c
gs/doc/Use.htm


2012-01-31 18:04:01 +0000
Chris Liddell <chris.liddell@artifex.com>
55049debcc22152c42a62b1fc350eb087125be5a

Have gitlog2changelog.py use html code for "quote" char

CLUSTER_UNTESTED

gs/toolbin/gitlog2changelog.py


2012-01-31 17:49:42 +0000
Robin Watts <robin.watts@artifex.com>
6123f6bc89a9c682dd0e0b8cb62d526fdca1b50a

Add new "WhatIsGS.htm" document

This explains how Ghostscript, GhostPCL, GhostXPS, etc are related.

gs/doc/Readme.htm
gs/doc/WhatIsGS.htm


2012-01-31 11:26:31 -0500
Alex Cherepanov <alex.cherepanov@artifex.com>
1216fd5e30a1a09b8b381d4e43d795728a030cc8

Bug 691483: Fix access to PDF collections.

Fix a bug in enumeration of a name tree that prevented acceaa to some
files in the PDF file collection when the name tree was more than
one level deep.

gs/Resource/Init/pdf_main.ps


2012-01-31 08:12:14 +0000
Ken Sharp <ken.sharp@artifex.com>
0a549a4395c169a547e95a2905650dbc05388794

ps2write - silence a benign compiler warning

Picked up by scan-build; presumably this only gets run for commits, not
for regular cluster tests as it didn't show up previously.

gs/base/gdevpdfc.c


2012-01-31 12:01:53 +0000
Chris Liddell <chris.liddell@artifex.com>
4003b18b598c81df02d3d2c043276d54e7de7c6d

Have plver.mak use Ghostscript version.mak version number

No (significant) cluster differences.

common/msvc_top.mak
pl/pl.mak


2012-01-30 20:39:29 +0000
Chris Liddell <chris.liddell@artifex.com>
613b796e44ad8e29d9b4f8166a8b19796f1a024c

Change a couple of '&' to &amp;

CLUSTER_UNTESTED

gs/doc/History9.htm


2012-01-30 20:26:30 +0000
Chris Liddell <chris.liddell@artifex.com>
f58e15f60683f2be163e0a64ef1a86141a0d45c3

gitlog2changelog.py use html sequence for '&'

Thanks to SaGS for pointing it out.

CLUSTER_UNTESTED

gs/toolbin/gitlog2changelog.py


2012-01-30 18:14:22 +0000
Chris Liddell <chris.liddell@artifex.com>
7a9e90a4710a90ce3d12da590280e91166eb2dc5

Tweak gitlog2changelog.py to avoid trailing whitespace

CLUSTER_UNTESTED

gs/toolbin/gitlog2changelog.py


2012-01-30 18:00:23 +0000
Chris Liddell <chris.liddell@artifex.com>
4aaa5f1594df678db91e3e9e913d1b27d5f7cd05

Update docs in prep for 9.05 release candidate

CLUSTER_UNTESTED

gs/doc/API.htm
gs/doc/C-style.htm
gs/doc/Commprod.htm
gs/doc/DLL.htm
gs/doc/Deprecated.htm
gs/doc/Details8.htm
gs/doc/Details9.htm
gs/doc/Develop.htm
gs/doc/Devices.htm
gs/doc/Drivers.htm
gs/doc/Fonts.htm
gs/doc/Helpers.htm
gs/doc/History1.htm
gs/doc/History2.htm
gs/doc/History3.htm
gs/doc/History4.htm
gs/doc/History5.htm
gs/doc/History6.htm
gs/doc/History7.htm
gs/doc/History8.htm
gs/doc/History9.htm
gs/doc/Install.htm
gs/doc/Issues.htm
gs/doc/Language.htm
gs/doc/Lib.htm
gs/doc/Make.htm
gs/doc/News.htm
gs/doc/Projects.htm
gs/doc/Ps-style.htm
gs/doc/Ps2epsi.htm
gs/doc/Ps2pdf.htm
gs/doc/Ps2ps2.htm
gs/doc/Psfiles.htm
gs/doc/Readme.htm
gs/doc/Release.htm
gs/doc/Source.htm
gs/doc/Unix-lpr.htm
gs/doc/Use.htm
gs/doc/Xfonts.htm
gs/doc/gs-vms.hlp
gs/doc/thirdparty.htm
gs/man/dvipdf.1
gs/man/font2c.1
gs/man/gs.1
gs/man/gslp.1
gs/man/gsnd.1
gs/man/pdf2dsc.1
gs/man/pdf2ps.1
gs/man/pdfopt.1
gs/man/pf2afm.1
gs/man/pfbtopfa.1
gs/man/printafm.1
gs/man/ps2ascii.1
gs/man/ps2epsi.1
gs/man/ps2pdf.1
gs/man/ps2pdfwr.1
gs/man/ps2ps.1
gs/man/wftopfa.1


2012-01-30 17:59:49 +0000
Chris Liddell <chris.liddell@artifex.com>
60ef9ebafb60f60cb709f7cb48ff15b94bad45fe

Change product string in prep for 9.05 release candidate

CLUSTER_UNTESTED

gs/base/version.mak


2012-01-30 17:46:27 +0000
Chris Liddell <chris.liddell@artifex.com>
16195b5e1c104405e095753bc1343597cad32a28

Move the JPEG XR code to a separate section......

... for non-GPL compatible, open source licensed code.

CLUSTER_UNTESTED

gs/doc/thirdparty.htm


2012-01-30 17:41:35 +0000
Chris Liddell <chris.liddell@artifex.com>
4961e763aeb795e7dc91dc64575837d170cca367

Improve the html output of the changelog generator.

There were some compatibility problems with the html from the git log to
html changelog generator - such as including '<' and '>' characters in
text to be displayed.

Also, improve the actual formatting slightly.

CLUSTER_UNTESTED

gs/toolbin/gitlog2changelog.py


2012-01-30 13:32:05 +0000
Ken Sharp <ken.sharp@artifex.com>
c3cc9b71fb9f1fe64556ecad34418bb4cf44ba7f

ps2write - correctly convert ICCBased *image* colour spaces

Previously we handled ICCbased spaces by pretending they were device spaces
with the same number of components as the ICCBased space. This works
suprisingly well, but fails utterly for Lab spaces where images come out
completely incorrect.

We now convert the image data to the current device space. We do not yet handle
vector colour spaces, this will be handled by a future rewrite of the colour
handling to permit much better control over colour space handling.

This change causes quite a number o differences in the regression suite.
These fall into one of 4 causes:

1) Colour space conversion; previously ICCBases spaces with 1 or 4 components
would be handled as grey or CMYK respectively. They are now converted to the
device space (RGB by default). This causes some colour changes, especially
in halftoned output with a 1 component space. These are not incorrect as can
be seen from the contone output

2) There are some minor shifts in colour caused by correctly handling the
ICCBased space, in general these are progressions (especially the Altona
suite).

3) Handling of Lab colour spaces. These now work correctly where previously
they did not. Especially catx4929.pdf and IA3Z3476.pdf

4) Honouring rendering intents. Files hwich used a rendering intent now are
correctly converted. cf Bug #691926, comment 3.

5) There seems to be a possible problem with converting some CalRGB spaces,
the resulting output seems 'blue' with respect to the Acrobat otuput. In the
case of 1 file which contains scanned images of books, it is clear from the
original book covers that the output is incorrect. Michael suggest this may be
a White POitn problem. A separate bug report will be filed for this. Ghostscript
rendering of the original matches the ps2write output.

gs/base/gdevpdfc.c
gs/base/gdevpdfg.h
gs/base/gdevpdfi.c


2012-01-30 13:25:17 +0000
Chris Liddell <chris.liddell@artifex.com>
2bb769a5b1ff2d1b8a5e6f0320cb210befe3f5bd

Update LICENSE

Revise the LICENSE file to reflect the latest Adobe CMap license
conditions, and to note that there is an Artifex copyright CMap in the
CMap directory.

Also, add a note about the JPEX XR source license.

CLUSTER_UNTESTED

gs/LICENSE



Version 9.05 (2012-02-08)

This is the fifth full release in the stable 9.x series.

Highlights in this release include:


(See Devices.htm for details)


For a list of open issues, or to report problems, please visit bugs.ghostscript.com.

Incompatible changes

No recorded incompatible changes.

Changelog

2012-02-03 16:18:01 +0000
Chris Liddell <chris.liddell@artifex.com>
dd4c7f1f03aa7ea18d43db224126502725af91ba

Propogate dynmic device flags to 'so' subtarget.

When I brought the Makefile into line with convention for some of the FLAGS
variables, I forgot to add the new 'AC_CFLAGS' value to the subtarget for
the dynamic library build.

No cluster differences.

gs/base/unix-dll.mak


2012-02-03 16:20:25 +0100
Till Kamppeter <till.kamppeter@gmail.com>
e837609b2955680dc59ca4f357076be7cd819a46

CUPS Raster: Fixed rotating of input pages with unknown sizes

gs/cups/gdevcups.c


2012-02-02 21:02:26 +0100
Till Kamppeter <till.kamppeter@gmail.com>
c3464da3ee42b8af645af6eadabea4977d948b1a

CUPS Raster: More on improving page size fitting

Raised the tolerance of matching the document's page sizes with the PPD's
page sizes on the short dimension to 2 %. This also covers the overspray
full-bleed page sizes of HPLIP.

gs/cups/gdevcups.c


2012-02-02 19:37:07 +0100
Till Kamppeter <till.kamppeter@gmail.com>
c12ed06596207d895739b41e5c920af0aa48a2ff

Improved page size matching in the CUPS Raster output device

The tolerances when comparing the page sizes in the document with the
sizes in the PPD file are changed to 1% for the short dimension of the
page and 5% for the long dimension. The 1% for the short dimension is
more or less the same as the 5.0pt used before (on letter or A4
paper). The 5% can cover the half inch deviation which HP puts into
the sheet length for their duplex paper sizes on ink jets.

If there is no matching paper size in the PPD and therefore the paper
size is considered custom, the page will be rotated in the case that
it does not fit into the maximum custom paper size (= printer
dimensions) but fits rotated.

With these measures, pages with slightly incorrectly defined size or
slightly incorrectly defined sizes in the PPD file (like the different
entries for one and the same paper size in the PPDs of HPLIP) will
find their size in the PPD and so rotated if needed.

This avoids cut-off print outs or even crashes of the printer
(https://bugs.launchpad.net/ubuntu/+source/linux/+bug/917148) due to
landscape pages not getting rotated.

gs/cups/gdevcups.c


2012-02-01 11:06:38 +0000
Chris Liddell <chris.liddell@artifex.com>
f945ac6dd076b367fb9a9d8851cca783049b77a0

Change product string to "RELEASE CANDIDATE 1"

gs/base/gscdef.c


2012-02-01 10:59:52 +0000
Chris Liddell <chris.liddell@artifex.com>
5f1a49cb3b05b5fed23e7eab99d6e036f16921dd

Update docs for 9.05 release candidate.

CLUSTER_UNTESTED

gs/doc/History9.htm


2012-01-31 12:55:34 -0800
Michael Vrhel <michael.vrhel@artifex.com>
ffca2758193c517edf1d20c6af17acd85f8d5f99

Device Link and Proof Profile fix

If a proofing profile or a device link profile are
specified, the link transform is more than likely not going
to be identity. This fix ensures that the transform
is properly applied.

gs/base/gsicc_cache.c


2012-01-30 15:28:05 -0800
Michael Vrhel <michael.vrhel@artifex.com>
dbf3d3403bc928c183b0674aa5adbb6263d56e42

Make device link profile work with lcms2. Also update documentation and add error handling.

The device link profile handling was put in place when we had lcms 1.8 but was not ported
over to the 2.0 interface.

gs/base/gsicc.c
gs/base/gsicc_lcms2.c
gs/doc/Use.htm


2012-01-31 18:04:01 +0000
Chris Liddell <chris.liddell@artifex.com>
55049debcc22152c42a62b1fc350eb087125be5a

Have gitlog2changelog.py use html code for "quote" char

CLUSTER_UNTESTED

gs/toolbin/gitlog2changelog.py


2012-01-31 17:49:42 +0000
Robin Watts <robin.watts@artifex.com>
6123f6bc89a9c682dd0e0b8cb62d526fdca1b50a

Add new "WhatIsGS.htm" document

This explains how Ghostscript, GhostPCL, GhostXPS, etc are related.

gs/doc/Readme.htm
gs/doc/WhatIsGS.htm


2012-01-31 11:26:31 -0500
Alex Cherepanov <alex.cherepanov@artifex.com>
1216fd5e30a1a09b8b381d4e43d795728a030cc8

Bug 691483: Fix access to PDF collections.

Fix a bug in enumeration of a name tree that prevented acceaa to some
files in the PDF file collection when the name tree was more than
one level deep.

gs/Resource/Init/pdf_main.ps


2012-01-31 08:12:14 +0000
Ken Sharp <ken.sharp@artifex.com>
0a549a4395c169a547e95a2905650dbc05388794

ps2write - silence a benign compiler warning

Picked up by scan-build; presumably this only gets run for commits, not
for regular cluster tests as it didn't show up previously.

gs/base/gdevpdfc.c


2012-01-31 12:01:53 +0000
Chris Liddell <chris.liddell@artifex.com>
4003b18b598c81df02d3d2c043276d54e7de7c6d

Have plver.mak use Ghostscript version.mak version number

No (significant) cluster differences.

common/msvc_top.mak
pl/pl.mak


2012-01-30 20:39:29 +0000
Chris Liddell <chris.liddell@artifex.com>
613b796e44ad8e29d9b4f8166a8b19796f1a024c

Change a couple of '&' to &amp;

CLUSTER_UNTESTED

gs/doc/History9.htm


2012-01-30 20:26:30 +0000
Chris Liddell <chris.liddell@artifex.com>
f58e15f60683f2be163e0a64ef1a86141a0d45c3

gitlog2changelog.py use html sequence for '&'

Thanks to SaGS for pointing it out.

CLUSTER_UNTESTED

gs/toolbin/gitlog2changelog.py


2012-01-30 18:14:22 +0000
Chris Liddell <chris.liddell@artifex.com>
7a9e90a4710a90ce3d12da590280e91166eb2dc5

Tweak gitlog2changelog.py to avoid trailing whitespace

CLUSTER_UNTESTED

gs/toolbin/gitlog2changelog.py


2012-01-30 18:00:23 +0000
Chris Liddell <chris.liddell@artifex.com>
4aaa5f1594df678db91e3e9e913d1b27d5f7cd05

Update docs in prep for 9.05 release candidate

CLUSTER_UNTESTED

gs/doc/API.htm
gs/doc/C-style.htm
gs/doc/Commprod.htm
gs/doc/DLL.htm
gs/doc/Deprecated.htm
gs/doc/Details8.htm
gs/doc/Details9.htm
gs/doc/Develop.htm
gs/doc/Devices.htm
gs/doc/Drivers.htm
gs/doc/Fonts.htm
gs/doc/Helpers.htm
gs/doc/History1.htm
gs/doc/History2.htm
gs/doc/History3.htm
gs/doc/History4.htm
gs/doc/History5.htm
gs/doc/History6.htm
gs/doc/History7.htm
gs/doc/History8.htm
gs/doc/History9.htm
gs/doc/Install.htm
gs/doc/Issues.htm
gs/doc/Language.htm
gs/doc/Lib.htm
gs/doc/Make.htm
gs/doc/News.htm
gs/doc/Projects.htm
gs/doc/Ps-style.htm
gs/doc/Ps2epsi.htm
gs/doc/Ps2pdf.htm
gs/doc/Ps2ps2.htm
gs/doc/Psfiles.htm
gs/doc/Readme.htm
gs/doc/Release.htm
gs/doc/Source.htm
gs/doc/Unix-lpr.htm
gs/doc/Use.htm
gs/doc/Xfonts.htm
gs/doc/gs-vms.hlp
gs/doc/thirdparty.htm
gs/man/dvipdf.1
gs/man/font2c.1
gs/man/gs.1
gs/man/gslp.1
gs/man/gsnd.1
gs/man/pdf2dsc.1
gs/man/pdf2ps.1
gs/man/pdfopt.1
gs/man/pf2afm.1
gs/man/pfbtopfa.1
gs/man/printafm.1
gs/man/ps2ascii.1
gs/man/ps2epsi.1
gs/man/ps2pdf.1
gs/man/ps2pdfwr.1
gs/man/ps2ps.1
gs/man/wftopfa.1


2012-01-30 17:59:49 +0000
Chris Liddell <chris.liddell@artifex.com>
60ef9ebafb60f60cb709f7cb48ff15b94bad45fe

Change product string in prep for 9.05 release candidate

CLUSTER_UNTESTED

gs/base/version.mak


2012-01-30 17:46:27 +0000
Chris Liddell <chris.liddell@artifex.com>
16195b5e1c104405e095753bc1343597cad32a28

Move the JPEG XR code to a separate section......

... for non-GPL compatible, open source licensed code.

CLUSTER_UNTESTED

gs/doc/thirdparty.htm


2012-01-30 17:41:35 +0000
Chris Liddell <chris.liddell@artifex.com>
4961e763aeb795e7dc91dc64575837d170cca367

Improve the html output of the changelog generator.

There were some compatibility problems with the html from the git log to
html changelog generator - such as including '<' and '>' characters in
text to be displayed.

Also, improve the actual formatting slightly.

CLUSTER_UNTESTED

gs/toolbin/gitlog2changelog.py


2012-01-30 13:32:05 +0000
Ken Sharp <ken.sharp@artifex.com>
c3cc9b71fb9f1fe64556ecad34418bb4cf44ba7f

ps2write - correctly convert ICCBased *image* colour spaces

Previously we handled ICCbased spaces by pretending they were device spaces
with the same number of components as the ICCBased space. This works
suprisingly well, but fails utterly for Lab spaces where images come out
completely incorrect.

We now convert the image data to the current device space. We do not yet handle
vector colour spaces, this will be handled by a future rewrite of the colour
handling to permit much better control over colour space handling.

This change causes quite a number o differences in the regression suite.
These fall into one of 4 causes:

1) Colour space conversion; previously ICCBases spaces with 1 or 4 components
would be handled as grey or CMYK respectively. They are now converted to the
device space (RGB by default). This causes some colour changes, especially
in halftoned output with a 1 component space. These are not incorrect as can
be seen from the contone output

2) There are some minor shifts in colour caused by correctly handling the
ICCBased space, in general these are progressions (especially the Altona
suite).

3) Handling of Lab colour spaces. These now work correctly where previously
they did not. Especially catx4929.pdf and IA3Z3476.pdf

4) Honouring rendering intents. Files hwich used a rendering intent now are
correctly converted. cf Bug #691926, comment 3.

5) There seems to be a possible problem with converting some CalRGB spaces,
the resulting output seems 'blue' with respect to the Acrobat otuput. In the
case of 1 file which contains scanned images of books, it is clear from the
original book covers that the output is incorrect. Michael suggest this may be
a White POitn problem. A separate bug report will be filed for this. Ghostscript
rendering of the original matches the ps2write output.

gs/base/gdevpdfc.c
gs/base/gdevpdfg.h
gs/base/gdevpdfi.c


2012-01-30 13:25:17 +0000
Chris Liddell <chris.liddell@artifex.com>
2bb769a5b1ff2d1b8a5e6f0320cb210befe3f5bd

Update LICENSE

Revise the LICENSE file to reflect the latest Adobe CMap license
conditions, and to note that there is an Artifex copyright CMap in the
CMap directory.

Also, add a note about the JPEX XR source license.

CLUSTER_UNTESTED

gs/LICENSE


2012-01-28 01:24:50 -0500
Alex Cherepanov <alex.cherepanov@artifex.com>
4e25d12238406245ade09eaeb3dd815933f7bcb2

Bug 692704: Don't reset PageSpotColors after every page

Don't reset PageSpotColors after every PDF page. Do it once when
PDF is closed. first, this resetting serves no useful purpose.
Second, this change avoids re-initialisation of tiffsep and psdcmyk
devices, which causes overwriting of the first page.

The fix results in progressions in all multi-page PDF files on
psdcmyk device.

gs/Resource/Init/pdf_main.ps


2012-01-27 09:57:33 +0000
Chris Liddell <chris.liddell@artifex.com>
d385d65cddb8770c0b6e08d0a34609d0951eab1f

Add a link in Readme.htm to the new thirdparty.htm

CLUSTER_UNTESTED

gs/doc/Readme.htm


2012-01-26 16:58:02 +0000
Robin Watts <robin.watts@artifex.com>
b6cc2a2539097d71ec200591788134703a2840a1

XPS Whitespace handling fix

Update the xps point reading code to use strtod rather than atof;
this returns us an updated string pointer, rather than relying
on us second-guessing where it may end up.

Change xps_get_point to return this updated pointer, and change some
calls of this to avoid having to skip whitespace (and potentially
getting it wrong) after the call.

Spotted as part of the commit to take the latest XPS changes into
MuPDF.

xps/ghostxps.h
xps/xpspath.c


2012-01-26 15:17:34 +0000
Ken Sharp <ken.sharp@artifex.com>
8eb237bc17ea481f75f482288c854ca42b31466b

ps2write - do not allow Widths aray to alter /.notdef width.

The way the Widths array works, if the Encoding has a /.notdef entry then
the width of the /.notdef is altered to that width.

If we have an earlier re-assignment, this breaks the assigned width.

The file catx1490.pdf relies on a ./notdef to draw a 'box' (crazy but
that's what it does). If we redefine the width tehn it is incorrect.

Expected differences
Catx1490.pdf
Bug691221.pdf
Bug689757.pdf
THe latter two are minor differences, but slight progressions

gs/base/opdfread.h
gs/lib/opdfread.ps


2012-01-26 11:07:06 +0000
Chris Liddell <chris.liddell@artifex.com>
043a20124c63ee48f874e8a9d869098d099c6d19

Have the "configure" build cope with missing "contrib"

For the Artifex commercial release, we remove the files from the contrib
directory. This meant a successful build had to be "configured" with the
--without-contrib option.

Now, configure looks for a specific file in "contrib", and if it is not there
the contributed drivers are automatically disabled.

No cluster differences.

gs/base/configure.ac


2012-01-25 19:58:52 +0000
Robin Watts <robin.watts@artifex.com>
0fb4785ef74fd22b8c1cced5ec16bd28d5bcc666

Fix Bug 692343 - ignore invalid padding length bytes.

AES streams contain padding at the end to bring them up to 16
byte chunks. The last byte of the plaintext is supposed to be
a value between 1 and 16 telling us how many bytes to ignore
from the last one? (Why 16? 15 would make more sense).

If the padding byte was out of range we would previously have
thrown an error. Here we change to just warn and set the
padding length to 0. This means we'll err on the side of making
the stream too long, which is better than the alternative.

gs/base/saes.c


2012-01-25 19:21:08 +0000
Shailesh Mistry <shailesh.mistry@hotmail.co.uk>
845ac2669008d3c8daf6461c0fda3b0496d7443e

Bug 691254: This patch prevents the seg fault in Jbig2_042_14.pdf.

gs/jbig2dec/jbig2_symbol_dict.c
gs/jbig2dec/jbig2_text.c


2012-01-25 08:14:22 +0000
Ken Sharp <ken.sharp@artifex.com>
679964341b8543bc37bf3cb783f12434af829f64

ps2write - properly check number of components when converting Image type 3/4

The code to limit optimisation of image type 3 or 4 into an imagemask was
testing to see if the routine which returned the numebr of components in
the colour space was a particular routine, instead of testing the return
value of that routine to see if it was 1.

Expected Differences
Bug689717.pdf
ImageProb2.pdf
12-07c.ps
all now render correctly or (in the case of 12-07c.ps) exhibit useful
progressions, when converted to PostScript using ps2write

gs/base/gdevpdfi.c


2012-01-24 12:59:20 -0800
Michael Vrhel <michael.vrhel@artifex.com>
83ce7cf6c9252c39e280040b12db1dcfbd8a7cb2

Fix for bug 692733. Pattern clist improperly cleared.

The pattern code was performing an initial clear of the pattern. This is OK
when the pattern is not a clist since the mask was not drawn in when this
fill occurs (seee gx_erase_colored_pattern). Unfortunately this rect fill
was getting into the pattern clist which is should not.

gs/base/gxpcmap.c
gs/psi/zpcolor.c


2012-01-24 16:44:07 +0000
Chris Liddell <chris.liddell@artifex.com>
1fab5a6b3945ba46fadd326e01f25e94f8af0886

Note that we patch lcms2 in thirdparty.htm

CLUSTER_UNTESTED

gs/doc/thirdparty.htm


2012-01-24 16:22:41 +0000
Chris Liddell <chris.liddell@artifex.com>
345be99ff34a6023dd28c06869ff8db41a3c640c

Add a file detailing our use of third party libraries.

Including, name, version, purpose, license and URL.

CLUSTER_UNTESTED

gs/doc/thirdparty.htm


2012-01-24 13:20:11 +0000
Robin Watts <robin.watts@artifex.com>
fb56842749e5430ed18d938eb78d1cf24c3e9759

Tweak jbig2dec to cope better with NULLs.

Fix various destructors in jbig2dec to cope with being called
with image = NULL. This cures a problem in mupdf where it SEGVs
when called on "1239 - skip invalid content streams.pdf" from the
sumatra test set.

gs/jbig2dec/jbig2_image.c


2012-01-24 12:03:43 +0000
Chris Liddell <chris.liddell@artifex.com>
a92b0c487e0e003a6a69b93acb7c1ef84d2f9683

Add details to Make.htm about Luratech

Make it clear that if there, Luratech will be used automatically.

Add details about disabling automatic Luratech inclusion.

CLUSTER_UNTESTED

gs/doc/Make.htm


2012-01-24 11:49:43 +0000
Chris Liddell <chris.liddell@artifex.com>
672fba9c5396ff7079e166a7535b879deffd801a

Bug 691184: update doc and example for getenv in cidfmap

Add information to the cidfmap section of Use.htm mentioning the ability to
use "getenv" to influence paths to font files in cidfmap.

And fix the example in cidfmap.

CLUSTER_UNTESTED

gs/Resource/Init/cidfmap
gs/doc/Use.htm


2012-01-24 11:44:34 +0000
Chris Liddell <chris.liddell@artifex.com>
997f750a5dd4cf70b18d011e3297dd7c8f4abd97

Bug 692810: fix OpenJPEG section of configure --help

I forgot to reverse the logic of the help message when I made OpenJPEG the
default JPEG2000 decoder - so the option is now to *disable* it.

No cluster differences.

gs/base/configure.ac


2012-01-23 22:52:33 -0800
Michael Vrhel <michael.vrhel@artifex.com>
1f3469404c599093df2e6c8157ac70111b0c80e2

Revert "Addition of objects to support the output intent."

This reverts commit 89546758c858d53c105dfc73fc4d108171b8437d.

Something appears to be wrong with this when I was doing some other testing
although it did ok in the cluster push.

gs/base/gdevp14.c
gs/base/gscms.h
gs/base/gsdparam.c
gs/base/gsequivc.c
gs/base/gsicc_manage.c


2012-01-23 09:59:35 -0800
Michael Vrhel <michael.vrhel@artifex.com>
89546758c858d53c105dfc73fc4d108171b8437d

Addition of objects to support the output intent.

This doesn't do anything yet. There will be another commit for the
PDF interpreter to make use of these objects.

gs/base/gdevp14.c
gs/base/gscms.h
gs/base/gsdparam.c
gs/base/gsequivc.c
gs/base/gsicc_manage.c


2012-01-23 11:12:04 +0000
Ken Sharp <ken.sharp@artifex.com>
315a899b2f9bd8be2f247550a05d807a8c698f07

ps2write/pdfwrite - Don't arbitrarily change VVECTOR0 flag in type 1 info

Way back in 2003 code was added 'in lieu of proper CDevProc processing' to
alter the behaviour of pdfwrite. In particular a flag was set which always
causes pdfwrite to handle width chnages.

However, we do now handle CDevProc correctly, and the arbitrary assignment
of this flag causes serious problems for pdfwrite & ps2write in the
(admittedly rare and unreasonable) case where the FontMatrix of an already
used font is modified.

Expected Differences:
14-12.ps
16-05.ps

Both now work better with ps2write and pdfwrite, though not 100% correct

gs/base/gxtype1.c


2012-01-21 14:07:15 -0500
Alex Cherepanov <alex.cherepanov@artifex.com>
d0d411c0830b81fa9fb38e3f938ac855fde9a6e3

Bug 692798: Ignore the request for undefined color space.

Ignore the attempt to set an undefined color spece resource,
issue a warning, and continue.

gs/Resource/Init/pdf_draw.ps


2012-01-18 12:32:13 -0800
Michael Vrhel <michael.vrhel@artifex.com>
eaaa284dcd5901de156c52c0dc0aff78816e4b81

Fix for bug 692787. Rending Intent aliased with Blending mode in clist

When I had added the rendering intent into the clist misc parameters I did not
have enough bits to fit everything into a single byte.

gs/base/gxclpath.c
gs/base/gxclrast.c


2012-01-20 15:26:15 +0000
Chris Liddell <chris.liddell@artifex.com>
cf6946a1762b975a0450e0d11bdcb13889cdd877

Add a note about building on Mac.......

.....with MacPorts installed.

CLUSTER_UNTESTED

gs/doc/Make.htm


2012-01-18 09:31:53 -0800
Ray Johnston <ray.johnston@artifex.com>
5e7702813865b8c149f7a8462491d4ca72e70e8e

Fix pdfwrite and other vector devices for changing filename and separate pages

Previously vector devices did not allow changing OutputFile and (most) did not support the %d
OutputFile to generate single page files (pswrite was the exception). The function used by
pswrite was generalized and renamed gx_outputfile_is_separate_pages for general use. If this
returns true vector devices will close and reopen after each page. The PageCount will then be
used in the formation of the filename for the next page.

Since vector devices open an write the OutputFile when the device is opened the file will be
written even if there is no input, and if a format specifier is used in the OutputFile, then
an extra blank page will be written (maybe this will be fixed later).

For example, now pdfwrite can be used in server mode by changing the OutputFile device param
which will cause the current collection of pages to be written to the PDF file, and a new
PDF will be started. This is most useful from gsapi calls, but creating two PDF's from one
invocation of gs via the command line would be:
gs -sDEVICE=pdfwrite -o tiger.pdf examples/tiger.eps \
-c "<< /OutputFile (colorcir.pdf) >> setpagedevice" \
-f examples/colorcir.ps

gs/base/gdevpdf.c
gs/base/gdevps.c
gs/base/gdevpx.c
gs/base/gdevsvg.c
gs/base/gdevvec.c
gs/base/gsdevice.c
gs/base/gxdevice.h
gs/doc/Ps2pdf.htm
gs/doc/Use.htm


2012-01-19 10:37:43 +0000
Chris Liddell <chris.liddell@artifex.com>
7d0f46b66b275c794dd87525e066e84ccabb4f96

Bug 692801: Fix build with shared lcms2 and "so" target

The targets for the lcms2 integration were mixed up, meaning the shared
lib build had a couple of dependencies on our "local" lcms2 source files.

The "so" target failed because the compiler for the lcms2 integration
code used the wrong compiler variable (and consequently dropped some
vital flags).

No cluster differences.

gs/base/lib.mak


2012-01-19 09:41:53 +0000
Ken Sharp <ken.sharp@artifex.com>
a75b5a720684d6e599c28cae9abb9357aa97d7b3

ps2write - alter /NumCopies handling.

Previously we mimicked /NumCopies and /#copies by using copypage. This is
unreliable because copypage differs on level 3 devices and won't work as
expected. Also it breaks DSC compliance and is probably undesirable with
other PostScript processors such as CUPS.

This commit alters the behaviour so that we use copypage only if the flag
DoNumCopies is true *and* we ProduceDSC is not true. This changes the
default to match pdfwrite and what I think is most logical while preserving
the ability to use copypage in environments where its use can be supported.

Expected Differences
Any files using /NumCopies or /#copies will behave differently, producing
fewer (blank!) pages than before. In our test suite I think this only
affects the Quality Logic files. In particular 268-03.ps and 29-07b.ps

gs/base/gdevpdf.c
gs/doc/Ps2ps2.htm


2012-01-18 12:24:15 -0700
Henry Stiles <henry.stiles@artifex.com>
2a7bf50f7cb797b0f3213eb091960700c0ff50e6

Integrates the new URW WingDing font.

For reasons unknown URW has named the font NewDingbats. This will
result in many healthy progressions in the regression test suite.

pl/plftable.c
urwfonts/NewDingbats.ttf


2012-01-18 12:05:36 -0700
Henry Stiles <henry.stiles@artifex.com>
71bb3ba36e2d15ec409185c69716c7cf40b89ea2

Prevent double file close on font file.

Introduced with the recent change to close font files at
initialization. If a file in the font directory could not be found in
the font table (was not a known font) the file would be closed twice.

pl/pllfont.c


2012-01-18 10:22:47 -0700
Henry Stiles <henry.stiles@artifex.com>
406c8ff0f0414294e52d27d706db51dd11f83725

PJL support for the resolution variable.

The PJL resolution variable is now properly supported, for example "PJL
SET RESOLUTION = 300" will see the resolution for the next job to 300
but will be overridden if -r is given directly on the command line.
Note the PJL resolution is only one value, there is no way to specify
asymmetric resolution as there is with the -r option.

pcl/pcjob.c
pcl/pcstate.h
pcl/pctop.c
pl/pjparse.c
pl/plmain.c
pl/plmain.h
pl/pltop.h


2012-01-17 14:45:50 -0700
Henry Stiles <henry.stiles@artifex.com>
b3e60553237af409e4d23d5c8dd39eb136665752

Close PCL font files after initial read.

Upon startup PCL reads all the font files to gather attribute
information but the files were being left open wasting file handles.
This change closes the files.

pl/pllfont.c


2012-01-17 14:42:43 -0700
Henry Stiles <henry.stiles@artifex.com>
5ad194fca3c799f3928d714567a17c5d8361a424

Reverts 3ab47d0e1e357a16cf5b35747b10b26d99b4d6f0, bad fix.

Now that we have a larger corpus of hpgl/2-rtl files it is clear this
fix cannot be right, something must have been wrong with the analysis,
unfortunately the, referenced test file from the logs ("sprinkler")
seems to be gone.

pcl/pcjob.c


2012-01-12 15:31:35 -0700
Henry Stiles <henry.stiles@artifex.com>
39eb74a7a55793f6acdc473efd014a95a93f7542

Shell script to convert HPGL/2-RTL to PDF.

Aside from the obvious purpose of converting hpgl/2 files to pdf, the
script demonstrates how to use the bounding box device to find the
extant of the graphics in the gl/2 file and then use those bounding
box coordinates to defiine a plot size for the file so there is no
white space margin. This is commonly needed as the plot size command
in GL/2 files specifies a plot much larger than needed.

tools/plot2pdf.sh


2012-01-12 12:07:37 -0700
Henry Stiles <henry.stiles@artifex.com>
dbab71fabce6bdeda5f478a077f739457e88f542

Refines '-J' option to process Exit Language properly.

The previous set up sent a truncated string to the PJL parser so Exit
Language was never returned. Now all the output is sent and the Exit
Language code is required otherwise an error is returned.

pl/plmain.c


2012-01-12 09:47:07 -0700
Henry Stiles <henry.stiles@artifex.com>
84cb959e0a2ed1cb0a898b8e2bebf120f55ebc57

Allow multiple PJL commands with the -J option.

Previously only 1 PJL command could be issued on the command line with
the -J option. Now multiple commands may be issued by separating
commands with a semicolon:

pcl6 -lRTL -J"@PJL DEFAULT PLOTSIZEOVERRIDE=ON;\
@PJL DEFAULT PLOTSIZE1=10000;@PJL DEFAULT PLOTSIZE2=8000"

Unfortunately, the odd behavior of HP's PJL parser does not allow
whitespace before "@PJL" which should start a new command each on a
different line, similarly there can be no leading white space at the
beginning or after a semicolon.

pl/plmain.c


2012-01-18 10:27:40 +0000
Chris Liddell <chris.liddell@artifex.com>
0c2d126b790a81d2f9338834429cc46fcc84dab2

Bug 692788: Wrong and missing manpage links in unixinst.mak

Patch from Stefan Bruens ( stefan.bruens@rwth-aachen.de ).

No cluster differences.

gs/base/unixinst.mak


2012-01-18 08:33:00 +0000
Chris Liddell <chris.liddell@artifex.com>
25198491321b0540910d9aaa6dcc4367f2098dab

Bug 692789: add some buffer limit protection.

In one place add buffer overrun protection and error out, and in another,
error out if the incoming string is greater than the buffer length (in this
case there would be no buffer overrun, as we only read a buffer full of
data).

No cluster differences.

gs/base/echogs.c


2012-01-16 11:23:18 +0000
Chris Liddell <chris.liddell@artifex.com>
91f728c058e3ab4705e53916d07597c7a755c730

Fix pdfwrite's stringwidth for text rendering mode 3

pdfwrite provides it's own "low level" stringwidth code, which includes code to
convert the resulting coordinates into user space. Unexplicably, this
conversion to user space was *not* applied when text rendering more 3 was in
force.

This caused a problem for a pending enhancement.

No cluster differences.

gs/base/gdevpdte.c


2012-01-16 10:19:50 +0000
Ken Sharp <ken.sharp@artifex.com>
3efaa3a6fabad09a4442f281fdbccc33f0474ea0

ps2write - Prevent charpath optimisation to Tr for ps2write

As a legacy of the old Text rendering mode code there is an optimisation in
pdfwrite which detects sequences such as "true charpath gsave fill grestore
stroke" and converts them to Text rendering mode 2.

However, ps2write doesn't support text rendering modes, so if the colour changes
then this produces incorrect output.

Disabling the optimisation when the device is ps2write cures the problem.

Expected Differences
Progressions in:
Bug687817.ps
Bug690164.ps
Catx6562.pdf

Small (single pixel) diffferences in a number of files due to the emission
of a path rather than executing charpath.

gs/base/gdevpdfd.c


2012-01-13 10:16:03 -0800
Michael Vrhel <michael.vrhel@artifex.com>
85a94168a4e64199b5a237dbf0d262f5e457440f

Fix typo in document. 9.05 not 9.5

gs/doc/GS9_Color_Management.pdf
gs/doc/GS9_Color_Management.tex


2012-01-13 10:40:50 -0700
Henry Stiles <henry.stiles@artifex.com>
a9e65e32b4a12c0f5de8ed6a3dcd38b3216f3ae1

Bug 691230, basic jbig2 halftone image support.

Thanks to George Gottleuber for this work.

gs/base/jbig2.mak
gs/jbig2dec/jbig2_halftone.c
gs/jbig2dec/jbig2_halftone.h
gs/jbig2dec/jbig2_mmr.c
gs/jbig2dec/jbig2_mmr.h
gs/jbig2dec/jbig2_segment.c


2012-01-13 14:23:19 +0000
Robin Watts <robin.watts@artifex.com>
993377ba237144726cd25e2d8851c70090370dd4

Optimise TetrahedralInterp16 in lcms2

Port Michaels optimisations from lcms1, and further tweak
for speed.

gs/lcms2/src/cmsintrp.c


2012-01-13 13:45:44 +0000
Chris Liddell <chris.liddell@artifex.com>
8e03b7f4769120ba60224cc6484b8766b386e054

Better lcms2 support in autoconf build

Make reverting to lcms a configure option, make lcms2 the default in configure
allow linking of the system lcms2.

Improve the feedback a little.

No cluster differences.

gs/base/Makefile.in
gs/base/configure.ac


2012-01-13 01:02:52 +0000
Robin Watts <robin.watts@artifex.com>
4e400364e182ae838a9a844ea40c4cca8d33bc09

Silence lcms2 warnings.

Make a few functions static. Announce some in the headers.

Fix some #ifdefferey.

gs/base/gsicc_lcms2.c
gs/lcms2/include/lcms2.h
gs/lcms2/src/cmspack.c
gs/lcms2/src/cmstypes.c
gs/lcms2/src/cmsxform.c
gs/lcms2/src/lcms2_internal.h


2012-01-12 16:05:09 -0800
Marcos H. Woehrmann <marcos.woehrmann@artifex.com>
cf11f0f7e68ac576138e49ab8d2c05a0121c6997

Change default cms to be lcms2 (for autogen.sh builds).

Continuation of commit 319474974fe4ddb99d29e8d3976afcc25f0e54ba.

gs/base/Makefile.in


2012-01-12 11:22:18 -0800
Michael Vrhel <michael.vrhel@artifex.com>
8aa37658b48f4fbda7551598f8de216f2d3dd33d

Update of color documentation

The new document includes several figures. Rather than clutter the tree with the additional figures that LaTeX uses in creating the pdf, I removed the figures folder. The new LaTeX file uses PDFLaTeX to create the pdf rather than the dvi2ps approach.

gs/doc/GS9_Color_Management.pdf
gs/doc/GS9_Color_Management.tex
gs/doc/figures/Ghost.eps
gs/doc/figures/Overview.eps


2012-01-12 15:23:20 +0000
Ken Sharp <ken.sharp@artifex.com>
afad2d730c8f5f6137791259fab3c45fda0f6862

ps2write - When converting shaded fills to image+clip, preserve insidenes rule

ps2write cannot preserve a fill with a Shading pattern, so it converts these
to an image and a clip (the path to fill is converted to a clip path).

However it did not preserve the 'insideness' winding rule which meant that
both eofill and fill were converted to 'clip' when eofill should be converted
to eoclip.

Expected Differences
fts_31_3110.pdf
fts_31_3115.pdf
fts_31_3118.pdf
09-47A.ps
09-47B.ps
09-47C.ps
09-47D.ps
09-47E.ps
09-47G.ps
09-47H.ps
09-47I.ps
09-47J.ps
09-47K.ps
09-47L.ps
09-47M.ps
18-02A.ps
18-02B.ps
18-02F.ps
23-12W.ps

All show progressions with ps2write

gs/base/gdevpdfd.c


2012-01-11 11:25:41 +0000
Robin Watts <robin.watts@artifex.com>
f6b83ef318aaf22b84cdeca55ba40208b9c3caad

Port color transform speedups from lcms1 to lcms2.

Use a chameleonic header file to generate optimised transform
functions.

gs/base/lcms2.mak
gs/lcms2/src/cmspack.c
gs/lcms2/src/cmsxform.c
gs/lcms2/src/cmsxform.h


2012-01-10 14:41:36 -0700
Henry Stiles <henry.stiles@artifex.com>
defb2b18e49123f4cad571070156a27ece868652

Adds the bbox device.

main/pcl6_gcc.mak
main/pcl6_msvc.mak


2012-01-10 21:16:10 -0800
Michael Vrhel <michael.vrhel@artifex.com>
f50368d684e84fe63579494b3e3efe0e4f39f98c

Clean up of the icc color code.

Remove objects and redundant functions that were introduced over the
past couple years. Found these while writing the documentation.

gs/base/gdevpdfi.c
gs/base/gdevpsd.c
gs/base/gdevrinkj.c
gs/base/gdevxcf.c
gs/base/gscms.h
gs/base/gscsepr.c
gs/base/gsicc.c
gs/base/gsicc_cache.c
gs/base/gsicc_cache.h
gs/base/gsicc_cms.h
gs/base/gsicc_lcms.c
gs/base/gsicc_lcms2.c
gs/base/gsicc_manage.c
gs/base/gsicc_manage.h
gs/base/gsicc_nocm.c
gs/base/gxcmap.c
xps/xpsgradient.c


2012-01-10 18:27:46 -0800
Marcos H. Woehrmann <marcos.woehrmann@artifex.com>
9e2df6f6194c5091dbfc6bde2218569645f5c89a

Make fuzzy not seg fault when comparing images of different sizes.

Horrible hack to allow fuzzy to compare two files that have different
dimensions (necessary when compareing outupt from muPDF vs. Ghostscript).

gs/toolbin/tests/fuzzy.c


2012-01-10 23:05:58 +0000
Robin Watts <robin.watts@artifex.com>
319474974fe4ddb99d29e8d3976afcc25f0e54ba

Change default cms to be lcms2 (for non-windows builds)

Forgot to change the unix builds. Expect lots of small changes in
the cluster.

common/ugcc_top.mak
gs/base/macos-mcp.mak
gs/base/macosx.mak
gs/base/openvms.mak
gs/base/unix-gcc.mak
gs/base/unixansi.mak


2012-01-10 22:24:35 +0000
Shailesh Mistry <shailesh.mistry@hotmail.co.uk>
c0573245db4f03c6cdca24906d73151a4e9be3c9

Bug 691267: Check all realloc error paths.

gs/base/sjbig2.c
gs/jbig2dec/jbig2.c
gs/jbig2dec/jbig2_huffman.c
gs/jbig2dec/jbig2_page.c
gs/jbig2dec/jbig2_symbol_dict.c
gs/jbig2dec/jbig2_text.c


2012-01-10 22:09:28 +0000
Robin Watts <robin.watts@artifex.com>
4e1c54b4c4cbc12185e44a758dcfae8f6095fa6c

Add 2 more files missing from solution.

CLUSTER_UNTESTED.

gs/ghostscript.vcproj


2012-01-10 22:08:28 +0000
Robin Watts <robin.watts@artifex.com>
9d23e07f6895eb581eaea17bf812be9f89d207b3

Change default cms to lcms2.

Expect lots of small changes.

gs/base/winlib.mak


2012-01-10 19:47:56 +0000
Robin Watts <robin.watts@artifex.com>
2468c2bce2ae03750ccab220b16fa6a62b31135f

Move icc34.h from lcms directory to gs/base

It's not supplied as part of the lib, and we need it for lcms,
lcms2, the non-cmm cmm and the creation tools, so having it
somewhere central seems sensible.

gs/base/icc34.h
gs/base/lcms.mak
gs/base/lcms2.mak
gs/base/lib.mak
gs/lcms/include/icc34.h


2012-01-10 19:45:25 +0000
Robin Watts <robin.watts@artifex.com>
d1a09075987875224abdaf8d6c62fdf40895ba98

LCMS2 fix: MSVC version check uses <= rather than <

Checking for <= 1400 includes VS2005. The intent is to only include
VS2003. Change to < and all is well.

gs/lcms2/src/lcms2_internal.h


2012-01-10 19:16:34 +0000
Robin Watts <robin.watts@artifex.com>
df2872f8b3cff582871ae15f4c3221bcb6e607fc

Add lcms2 entries to Visual Studio Solution.

Doesn't make any difference to building - just enables us to search
for code etc more easily.

gs/ghostscript.vcproj


2012-01-10 10:55:10 -0800
Michael Vrhel <michael.vrhel@artifex.com>
3996236547b4f6b2c4e0d60cd7b4196c33123ac0

Update of our lcms2 directory to 2.3 release

gs/lcms2/AUTHORS
gs/lcms2/ChangeLog
gs/lcms2/Projects/BorlandC_5.5/lcms2.rc
gs/lcms2/Projects/VC2008/lcms2.rc
gs/lcms2/Projects/VC2010/lcms2.rc
gs/lcms2/Projects/mac/.DS_Store
gs/lcms2/Projects/mac/LittleCMS/.DS_Store
gs/lcms2/bin/Bin.txt
gs/lcms2/bin/Thumbs.db
gs/lcms2/configure
gs/lcms2/configure.ac
gs/lcms2/doc/LittleCMS2.0 API.pdf
gs/lcms2/doc/LittleCMS2.0 Plugin API.pdf
gs/lcms2/doc/LittleCMS2.0 tutorial.pdf
gs/lcms2/doc/LittleCMS2.1 API.pdf
gs/lcms2/doc/LittleCMS2.1 Plugin API.pdf
gs/lcms2/doc/LittleCMS2.1 tutorial.pdf
gs/lcms2/doc/LittleCMS2.3 API.pdf
gs/lcms2/doc/LittleCMS2.3 Plugin API.pdf
gs/lcms2/doc/LittleCMS2.3 tutorial.pdf
gs/lcms2/doc/src.zip
gs/lcms2/include/icc34.h
gs/lcms2/include/lcms2.h
gs/lcms2/lcms2.pc.in
gs/lcms2/src/cmscgats.c
gs/lcms2/src/cmscnvrt.c
gs/lcms2/src/cmserr.c
gs/lcms2/src/cmsio1.c
gs/lcms2/src/cmslut.c
gs/lcms2/src/cmsnamed.c
gs/lcms2/src/cmsopt.c
gs/lcms2/src/cmspack.c
gs/lcms2/src/cmsplugin.c
gs/lcms2/src/cmssm.c
gs/lcms2/src/cmstypes.c
gs/lcms2/src/cmsvirt.c
gs/lcms2/src/cmswtpnt.c
gs/lcms2/src/cmsxform.c
gs/lcms2/src/lcms2.def
gs/lcms2/src/lcms2_internal.h
gs/lcms2/testbed/USWebCoatedSWOP.icc
gs/lcms2/testbed/UncoatedFOGRA29.icc
gs/lcms2/testbed/sRGBSpac.icm
gs/lcms2/testbed/sRGB_Color_Space_Profile.icm
gs/lcms2/testbed/sRGB_v4_ICC_preference.icc
gs/lcms2/testbed/test1.icc
gs/lcms2/testbed/test2.icc
gs/lcms2/testbed/test3.icc
gs/lcms2/testbed/test4.icc
gs/lcms2/testbed/test5.icc
gs/lcms2/testbed/testcms2.c
gs/lcms2/utils/common/vprf.c
gs/lcms2/utils/delphi/lcms2.dll
gs/lcms2/utils/linkicc/linkicc.c
gs/lcms2/utils/samples/roundtrip.c
gs/lcms2/utils/tificc/tificc.c
gs/lcms2/utils/transicc/transicc.c


2012-01-09 11:06:41 -0700
Henry Stiles <henry.stiles@artifex.com>
20a53310422c41df4f48deef3f704b39c291a5f2

PLOTSIZEROTATE is no longer used with the current scheme to initialize
HPGL-2/RTL (see last few commits).

CLUSTER_UNTESTED

pl/pjparse.c


2012-01-09 10:48:58 -0700
Henry Stiles <henry.stiles@artifex.com>
96726af52822d442cceb1531c1d12bd6141ac322

The previous standalone GL/2 mode is incompatible with how the
transformations are set up in PCL. We have found that plots for
standalone mode can be viewed properly in HPGL-2/RTL mode. We think
this is the best alternative for now, if we get into the business of
emulating individual plotters the issue can be revisited.

pcl/pgdraw.c


2012-01-08 12:57:46 -0700
Henry Stiles <henry.stiles@artifex.com>
1e6d68e396ec5842af5b8cb5cb226c9de1f46d31

The HPGL-2/RTL work of the last few commits introduce a regression -
disabling bound coordinates in normal PCL mode.

pcl/pgdraw.c


2012-01-07 22:09:50 -0700
Henry Stiles <henry.stiles@artifex.com>
d18b90db02540b1bf1005537aa38b42ef2486f43

Implements transformations and clipping needed by HPGL/2-RTL. The
previous setup was only appropriate for HPGL standalone mode and only
appeared to work based on the small number of example files we had at
the time.

pcl/pcpage.c
pcl/pgconfig.c
pcl/pgdraw.c


2012-01-07 22:02:59 -0700
Henry Stiles <henry.stiles@artifex.com>
9f40ae210f923553413e44135e796fcb981ec34e

Presentation mode 3 and clipping when the cap is coincident with the
logical page is not seen in the HPGL-2/RTL examples we have. There
might be something more complicated going on here, it would be
difficult to determine without a device to run experiments.

pcl/rtgmode.c


2012-01-07 21:58:50 -0700
Henry Stiles <henry.stiles@artifex.com>
3687f6b4cbafd91d5f29c604f86a56a5b118001f

Support the geometry option on the command line, note this really
duplicates the functionality of setting a media size using PJL, but we
implement it anyway because users prefer the familiarity of the
option.

pcl/pcpage.c
pcl/pcstate.h
pcl/pctop.c
pl/plmain.c
pl/plmain.h
pl/pltop.h


2012-01-07 21:35:57 -0700
Henry Stiles <henry.stiles@artifex.com>
275066d79d9f01a90f0fd91bc8448c5746cbac2c

The default top and left margin are 0 in HPGL-2/RTL mode, not the standard
PCL values.

pcl/pcpage.c


2012-01-07 21:09:37 -0700
Henry Stiles <henry.stiles@artifex.com>
5a1eda769a573ef37e2930502c25bfab8d1fb457

The transformation setup for HPGL-2 and RTL was really only correct
for standalone mode (GL only). So we have to save the entry operand
to the "Enter HPGL/2 command" in the state so it can be used when the
transformation matrices are recalculated.

pcl/pcommand.c
pcl/pcstate.h
pcl/pgdraw.c
pcl/rtmisc.c


2012-01-07 20:50:17 -0700
Henry Stiles <henry.stiles@artifex.com>
9632b092e1d3ea35c855ae1ccba78fd2e4695d9a

Remove unnecessary warning of dubious origin.

CLUSTER_UNTESTED

pcl/pcursor.c


2011-12-20 18:19:40 -0700
Henry Stiles <henry.stiles@artifex.com>
9d5c4a0e75e89618e08418ec50809bcbc9886fcf

Conditionalize a debug message.

CLUSTER_UNTESTED

pl/plfont.c


2011-12-20 11:45:52 -0700
Henry Stiles <henry.stiles@artifex.com>
bddfe691c7caae4653cb9ad46645443274fe42a2

The new ICC flow does not require CRD's and we now do not selectively
choose halftones based on setting from the palette vs. the foreground,
the latter, an implemented but never used feature.

pcl/pcdraw.c
pcl/pcht.c
pcl/pcht.h
pcl/pcpatrn.c
pcl/pgdraw.c


2012-01-08 16:32:03 -0500
Alex Cherepanov <alex.cherepanov@artifex.com>
acf3f93fa0b9b0b0af938d0517045446e0d94042

Add missing '\n' before EOF.

Add missing '\n' to the last line of gdevp14.c.
This caused compilation errors on MSVC 7.

gs/base/gdevp14.c


2012-01-06 12:14:15 +0000
Ken Sharp <ken.sharp@artifex.com>
de1badc8e7dcf9b2728f46c5a187a2b76a1bf682

ps2write - Properly handle masked images with interpolation

ps2write converts type 3 and 4 (masked) images into an image and clip
combination. The clip is created from the mask, and the image is rendered
to a memory device. Note that the memory device canvas is just large enough to
contain the image.

The image is drawn as a series of rectangular fills, and our 'local conveter'
device shifts these from the original page location to the correct (relocated to 0,0)
position in the memory device.

However, if interpolation is true for the image, then we don't get a series
of rectangular fills, we get a 'copy_color' instead which the converter
device didn't handle. Adding a copy_color method which properly translates the
image position solves the problem.

Expected Differences
Progressions in Bug691210.pdf, 12-07B.ps and 12-07C.ps

gs/base/gdevpdfd.c
gs/base/gdevpdfx.h


2012-01-06 11:49:13 +0000
Chris Liddell <chris.liddell@artifex.com>
62633d12eb583116c0a0e1f888c283977cb593b2

Bug 692764: check Freetype is new enough

We must use Freetype v 2.4.0 at the earliest, so configure will now check that
if being asked to use a shared Freetype lib.

Add a configure check for Freetype shared lib that doesn't depend on pkg-config.

Move the warning about falling back to the deprecated AFS code to the end of
the configure output.

No cluster differences.

gs/base/configure.ac


2012-01-05 22:09:09 -0800
Michael Vrhel <michael.vrhel@artifex.com>
c3bf6f733b8aed99f2a87058b8689c063beae9a0

Fixed missing Rendering Intent Override in gs_lev2.ps

In creating some examples and writing the documentation I
discovered that this was missing and so none of the
rendering intent settings were working.

gs/Resource/Init/gs_lev2.ps


2012-01-05 13:41:17 -0800
Marcos H. Woehrmann <marcos.woehrmann@artifex.com>
da508b027e16d926f2e200fd6ff17d58f3392855

Added the ability to clusterpush.pl mupdf.

This feature is still largely untested and known problems remain,
in particular there is an issue with the wrong information in the
email report for the first mupdf clusterpush following a ghostscript
clusterpush.

gs/toolbin/localcluster/clusterpush.pl


2012-01-05 10:05:51 -0800
Michael Vrhel <michael.vrhel@artifex.com>
f45061bbea6a75abe17187fd06b67ad36fc7e779

Fix memory issue when creating source color structure

One of the objects in the source color structure was getting allocated in
GC memory where it should have been in non-GC memory.

gs/base/gsicc_manage.c


2012-01-05 16:13:07 +0000
Robin Watts <robin.watts@artifex.com>
d3bd93d8da482714c30e58731829cac4f9e3510e

Add RAW_DUMP_AS_PAM option.

If RAW_DUMP_AS_PAM is enabled, then (where possible) we RAW_DUMP
blends as pam rather than raw files. Easier for people without
full photoshop to handle.

gs/base/gxblend.c
gs/base/gxblend.h


2012-01-03 17:50:07 +0000
Chris Liddell <chris.liddell@artifex.com>
e503591e1cc9d6f6c4c91fd5e0500df0cb6df21b

Revise example in comments.

Revise the example using "getenv" to correcly account for the return values of getenv.

CLUSTER_UNTESTED

gs/Resource/Init/cidfmap


2012-01-03 16:10:02 +0000
Chris Liddell <chris.liddell@artifex.com>
c974aa83b814e9bf9c3e1b29493edb8cd5ed8091

Bug 692641 (again): prevent symbol name clash

Another case where our "internal" SHA symbols could clash with the "real"
OpenSSL ones if libgs is being statically linked. As before, trivial rename
to avoid this (courtesy of Alan Hourihane - alanh@fairlite.co.uk).

No cluster differences.

gs/base/sha2.c


2012-01-03 13:08:07 +0000
Ken Sharp <ken.sharp@artifex.com>
d48a3d162fd38aaa2582e32565c07df41e7c02cb

pdfwrite/ps2write - Properly validate BitsPerComponent for images

Suprisingly (to me) the BitsPerComponent value for images is not validated
at the interpreter (language) level, but is handled in the graphics library.

pdfwrite and ps2write were not validating the BitsPerComponent, other than
to check it was 8 or less, and so could create invalid images in the PDF or
PostScritp output.

This commit adds the missing checks.

Expected Differences
12-07a.ps - ps2write no longer produces an invalid PostScript file
12-07a.ps - pdfwrite no longer produces an invalid PDF file
12-02.ps - ps2write no longer produces an invalid PostScript file
12-02.ps - pdfwrite no longer produces an invalid PDF file

gs/base/gdevpdfi.c


2012-01-03 09:20:05 +0000
Ken Sharp <ken.sharp@artifex.com>
8cfb57fdd350cbda7578226b150ed0014d5949c9

ps2write - fix uncoloured Pattern spaces with a complex colour space

Certain kinds of colour space, eg /Separation, can have a function which
converts to the alternate space. If one of these was used as the colour
space for an uncoloured pattern then the function was not properly loaded
from the object defuinition, leading to an invalid colour space declaration.

This tests the initial space to see if it is /Pattern and if it is, checks
to see if the pattern is uncoloured (the array contains more than /Pattern).
If so we test the colour space and, if it is an array, process the array as
a colour space, which properly dereferences all the elements.


Expected Differences:
09-47a.ps, 09-47b.ps and 18-02b.ps should now work correctly.

gs/base/opdfread.h
gs/lib/opdfread.ps


2011-12-28 14:37:49 -0800
Michael Vrhel <michael.vrhel@artifex.com>
4e681a04de79896406946d5487efe0a37eb6d2b2

Proof and DeviceLink ICC profile support

This enables the use of the device link and/or a proofing profile. When
present, the transformations are as follows
src profile -> PCS -> proof -> PCS -> proof -> PCS -> device profile -> device link
where PCS is the profile connection space. The CMM obviously would
normally mash these together in a single transform. This is what
occurs in lcms.

This implies that the output color space for the device link
profile must match the color model for the real target device and
that the input color space for the device link profile must match
the color space specified for the device profile.
Still need to do some additional testing and update documentation.

gs/base/gsicc.c
gs/base/gsicc_cache.c
gs/base/gsicc_cache.h
gs/base/gsicc_cms.h
gs/base/gsicc_lcms.c
gs/base/gsicc_lcms2.c
gs/base/gsicc_manage.c
gs/base/gxi12bit.c
gs/base/gxicolor.c
gs/base/gximono.c
gs/base/gxiscale.c


2011-12-22 09:55:25 -0800
Michael Vrhel <michael.vrhel@artifex.com>
d4625c5b5a262501fefabe68f2bbea000dcecb52

Movement of proof profile an device link profile to device.

The proofing profile and the device link profile are now in the device's
profile structure. This makes it much easier to include in the proofing
profile and/or the device link profile during the link transformation
creation. This commit includes all the changes except for the actual
creation of the link with the proof. That will come in a separate commit
since there are a lot of changes in this commit and I want to spend
a little more time on that to make it clean and
dependent upon the capabilities of the CMM. The reason is that there are
some CMMs that support the chaining together of multiple transformations and
some that do not. Those that do not may not be able to handle both a
proofing profile AND a device link profile. We want to handle that case
gracefully.

gs/Resource/Init/gs_lev2.ps
gs/base/gdevp14.c
gs/base/gdevpdfk.c
gs/base/gscms.h
gs/base/gsdparam.c
gs/base/gsequivc.c
gs/base/gsicc.c
gs/base/gsicc_cache.c
gs/base/gsicc_cache.h
gs/base/gsicc_lcms.c
gs/base/gsicc_manage.c
gs/base/gsicc_nocm.c
gs/base/gxcmap.c
gs/base/gxi12bit.c
gs/base/gxicolor.c
gs/base/gximono.c
gs/base/gxiscale.c
gs/base/gxshade.c
gs/psi/zusparam.c
xps/xpsgradient.c


2011-12-23 11:50:08 -0800
Robin Watts <robin@peeves.(none)>
63571a25cbd787573f0c4918abe7c783f5e5209c

Memento/Valgrind integration tweak.

Ensure block header is set to be readable when reading blk->tail
to avoid spurious read errors.

gs/base/memento.c


2011-12-23 15:56:43 +0000
Ken Sharp <ken.sharp@artifex.com>
1430adef1955c8c85001b2fbcd371bfccfead179

ps2write - Correct the DecodeLMN matrix creation for a CalGray -> CIEBasedA

When converting a CalGray to a CIEBasedA dpace, the Gamma from the CalGray is
used to create a DecodeLMN array. However the code only created a single
executable array, when it is required to be an array of 3 procedures.

Expected Diffrences
09-34.ps no longer fails when converted via ps2write

gs/base/opdfread.h
gs/lib/opdfread.ps


2011-12-23 08:06:18 +0000
Ken Sharp <ken.sharp@artifex.com>
b1ca1565f903490bd71dcc8182e69d4ab5eb6c3a

Initialise a pointer to silence a compiler warning

In fact this is benign, the code can't get here without previously allocating
and initialising the pointer, but that takes place in another branch and
static analysis can't reveal that.

gs/base/gdevtxtw.c


2011-12-22 16:21:10 +0000
Ken Sharp <ken.sharp@artifex.com>
e758e15df0497f85c6843b57e65a6d7f072cf815

Prevent a crash trying to get MissingWidth from sa non-CID font in txtwrite

gs/base/gdevtxtw.c


2011-12-22 15:29:26 +0000
Ken Sharp <ken.sharp@artifex.com>
2eb7ab1f1e57d118259ae7bf2fce9c2872152478

Txtwrite - initialise members of an array, silences compiler warning.

gs/base/gdevtxtw.c


2011-12-22 14:45:17 +0000
Chris Liddell <chris.liddell@artifex.com>
b90f64665896669124bb6f219a77a556371c67c8

Revise DisplayHandle documentation in API.htm

CLUSTER_UNTESTED

gs/doc/API.htm


2011-12-22 14:47:24 +0000
Ken Sharp <ken.sharp@artifex.com>
e391e19723bad3de19beb2fa584f0d9c8b62cac9

Correctly read all parameters in put_params as well as get_params

Fixes the txtwrite device with the language switch build

gs/base/gdevtxtw.c


2011-12-22 12:42:53 +0000
Ken Sharp <ken.sharp@artifex.com>
1eb9f0069dce7d626118333fd51477d734daa88e

Add the txtwrite device to PCL and language switch and supply a method
for get_page_device in txtwrite (prevents SEGV)

gs/base/gdevtxtw.c
main/pcl6_gcc.mak
main/pcl6_msvc.mak


2011-12-21 12:25:57 -0800
Michael Vrhel <michael.vrhel@artifex.com>
157a91639635abad452872cf521f743bbadb0c68

Addition of debug output for icc color conversions

To get detailed information about ICC profile allocations,
mappings, profile creations from PS color objects and
link creations use the command line option --debug=icc

gs/base/gdbflags.h
gs/base/gsciemap.c
gs/base/gsicc.c
gs/base/gsicc_cache.c
gs/base/gsicc_manage.c
gs/base/gxclthrd.c


2011-12-21 17:51:31 +0000
Chris Liddell <chris.liddell@artifex.com>
4e99a07ab13789ae7d561390bf0f07721fbf4917

Clean up some target mess left over from earlier commit.

I missed some changes from the removal of the old installer, some
targets were still there which relied on the removed files.

Also, a name didn't make any sense.

CLUSTER_UNTESTED

gs/psi/msvc.mak
gs/psi/winint.mak


2011-12-21 17:07:45 +0000
Chris Liddell <chris.liddell@artifex.com>
2cba2590e1a8edfef6f0b13f8d392a756f889690

Bug 692089 (prt 2): Update Install.htm with 64 bit versions of Windows binaries

CLUSTER_UNTESTED

gs/doc/Install.htm


2011-12-21 17:00:03 +0000
Chris Liddell <chris.liddell@artifex.com>
37053da2b828df8101be25eed9bfadf3c13dbd7b

Bug 692089 (prt 1): install gssetgs.bat suitable for current installer.

As the istaller knows whether it is installer the 32 bit or 64 bit version
of Ghostscript, the installer now chooses between two gssetgs.bat versions
so that the other batch files find the appropriate GS exe.

CLUSTER_UNTESTED

gs/lib/gssetgs32.bat
gs/lib/gssetgs64.bat
gs/psi/msvc.mak
gs/psi/nsisinst.nsi


2011-12-21 16:56:47 +0000
Chris Liddell <chris.liddell@artifex.com>
a11f84267931e805148ed63025002851d3f3d2eb

Remove source files for the old Ghostscript installer.

CLUSTER_UNTESTED

gs/psi/dwinst.cpp
gs/psi/dwinst.h
gs/psi/dwsetup.cpp
gs/psi/dwsetup.h
gs/psi/dwsetup.rc
gs/psi/dwuninst.cpp
gs/psi/dwuninst.h
gs/psi/dwuninst.rc


2011-12-21 15:20:37 +0000
Chris Liddell <chris.liddell@artifex.com>
83b1e0429c3ab74da7dd1c9b78401671bac4d6f6

Make OpenJPEG the default for JPXDecode.

This introduces differences for all the cluster tests with JPX encoded image
data in them.

gs/base/configure.ac
gs/psi/msvc.mak


2011-12-21 13:23:57 +0000
Chris Liddell <chris.liddell@artifex.com>
4bcc37370e97105ae3d4aff085b15541a7cd6a51

Bug 692754: have configure setup endian setting for lcms

The lcms header files have some educated guesses for the current platform
big/little endianness, but they are not comprehensive (for example, PA-RISC
HP UX defeats it).

So, add a test to our configure scripts, and pass the setting as required as a
compiler option for lcms. NOTE: I added an explicit test for endianness because
the autoconf built-in test has problems in recent releases.

Also, noticed in passing: revise the other explicit compile/link tests to use
the AC_LANG_PROGRAM() macro - currently not doing so produces a warning, but
the implication is future versions will throw an error.

No cluster differences.

config.mak.in
configure.ac
gs/base/Makefile.in
gs/base/configure.ac
gs/base/lcms.mak
gs/base/lcms2.mak


2011-12-21 09:16:50 +0000
Ken Sharp <ken.sharp@artifex.com>
39182690d9d7242d7a8e6e2f5fe9aff52d0ee3ab

ps2write - Use Font level Resources for type 3 font CharProcs

Part of Bug #691928, file tpc2.ps. It is possible (in PDF) for a font to have
Resources separately from teh page stream. This is properly catered for in
PDF interpreters.

However, ps2write's prolog only allowed resources defined at the page level
when executing CharProc procedures from a type 3 font (because we are in the
page stream at the time, not the font object).

If the type 3 font executes findfont, and the font is not defined at the page
level (often the case for the Quark q font and other substitutes) then the
font cannot be found. Due to a quirk of the way fonts are defined, the *first*
page to use the type 3 font always includes definitions for any fonts used by
the type 3 font, so this problem only exhibits on mutiple page documents.

This was tricky to fix, we cannot simply replace the Resources in the current
Context, as we need to return to the pre-existing Context after running the
CharProc. Additionally, type 3 fonts can execute other type 3 fonts which may
themselves call other fonts. It was neccesary to implement a stack of saved
resources in order to deal with this situation.

Expected Differences
tpc2.ps should now work properly with ps2write

gs/base/opdfread.h
gs/lib/opdfread.ps


2011-12-20 11:42:18 -0800
Michael Vrhel <michael.vrhel@artifex.com>
fa34b3ab12b15f5e1ace688f00c28a75667afdb4

Fix for bug 691998 avoid the creation of the CRD cache.

Since we are using ICC profiles to define the output color to not create the
cache for the CRD.

gs/psi/zcrd.c


2011-12-19 17:54:51 +0000
Chris Liddell <chris.liddell@artifex.com>
c85b3957cb896af69d8b7f630a56635cc0eb7a8c

Revise the SSE2 tests to work with Sun cc compiler

The Sun/Oracle C compiler doesn't throw an error when compiling SSE2 code
without the requisite SSE2 command line option, and building non-
optimized.

This commit applies a more stringent test, and ensures we use the optimized
build option when we do the test build/link.

Also, adds some use feedback for the SSE2, byteswap intrinsic and byteswap
header tests.

No cluster differences.

configure.ac
gs/base/configure.ac


2011-12-19 15:33:01 +0000
Chris Liddell <chris.liddell@artifex.com>
6a4ff3a5c387f8958016b3678d919373c57ec5bd

CIDFont substitution tweak for *Light,Bold fonts

When we have to substitute for a "Light" style CIDFont which has been made
bold, don't apply artificial emboldening unless the substitute font is
also a "Light".

No cluster differences.

gs/Resource/Init/pdf_font.ps


2011-12-19 08:00:17 +0000
Ken Sharp <ken.sharp@artifex.com>
269ddabfb17657114b8e09b0c2fb2ee8440d92df

Check a return code, silences a compiler warning and is more robust

gs/base/gxfcopy.c


2011-12-17 14:08:37 -0500
Alex Cherepanov <alex.cherepanov@artifex.com>
464ef7f26f33b3f8a5d4c8732674e75a6aff39dc

Bug 692747: Trap errors in operator sh and continue.

Execute .shfill operator in a stopped contect, trap errors,
issue a warning, and continue.

gs/Resource/Init/pdf_draw.ps


2011-12-15 13:54:15 +0000
Chris Liddell <chris.liddell@artifex.com>
ea9a951756d495c6b8e427cbcea80fb94f9ccaa5

Bug 687297: Revert to the URW fonts

Revert to using the "pristine" URW fonts.

Cluster differences: every job which uses one of the base 35 fonts.

gs/Resource/Font/CenturySchL-Bold
gs/Resource/Font/CenturySchL-BoldItal
gs/Resource/Font/CenturySchL-Ital
gs/Resource/Font/CenturySchL-Roma
gs/Resource/Font/Dingbats
gs/Resource/Font/NimbusMonL-Bold
gs/Resource/Font/NimbusMonL-BoldObli
gs/Resource/Font/NimbusMonL-Regu
gs/Resource/Font/NimbusMonL-ReguObli
gs/Resource/Font/NimbusRomNo9L-Medi
gs/Resource/Font/NimbusRomNo9L-MediItal
gs/Resource/Font/NimbusRomNo9L-Regu
gs/Resource/Font/NimbusRomNo9L-ReguItal
gs/Resource/Font/NimbusSanL-Bold
gs/Resource/Font/NimbusSanL-BoldCond
gs/Resource/Font/NimbusSanL-BoldCondItal
gs/Resource/Font/NimbusSanL-BoldItal
gs/Resource/Font/NimbusSanL-Regu
gs/Resource/Font/NimbusSanL-ReguCond
gs/Resource/Font/NimbusSanL-ReguCondItal
gs/Resource/Font/NimbusSanL-ReguItal
gs/Resource/Font/StandardSymL
gs/Resource/Font/URWBookmanL-DemiBold
gs/Resource/Font/URWBookmanL-DemiBoldItal
gs/Resource/Font/URWBookmanL-Ligh
gs/Resource/Font/URWBookmanL-LighItal
gs/Resource/Font/URWChanceryL-MediItal
gs/Resource/Font/URWGothicL-Book
gs/Resource/Font/URWGothicL-BookObli
gs/Resource/Font/URWGothicL-Demi
gs/Resource/Font/URWGothicL-DemiObli
gs/Resource/Font/URWPalladioL-Bold
gs/Resource/Font/URWPalladioL-BoldItal
gs/Resource/Font/URWPalladioL-Ital
gs/Resource/Font/URWPalladioL-Roma


2011-12-14 16:23:24 +0000
Chris Liddell <chris.liddell@artifex.com>
3875e5a471e3f9b9b4a2f5ea03e37b59fcd8913c

Bug 690779 (pt2): revisions to CIDFont substition.

The original code (commit 18a51701) didn't work well with pdfwrite, so this
revision handles substition by modifying the CIDFont resource .map dictionary.
This means that the "fake" CIDFont is created with the requested parameters
from the start.

Also, add command line paramters and environment variables to control the
path to and file name of the subsitute TTF.

Differences in Bug692320.pdf.

No other cluster differences.

gs/Resource/Init/gs_cidfm.ps
gs/Resource/Init/pdf_font.ps
gs/doc/Use.htm


2011-12-14 09:10:55 +0000
Chris Liddell <chris.liddell@artifex.com>
ce35f1657aac012a492f05f61b56a605243fe83e

Re-enable CDevProc for substituted CIDFonts.

Previously, CDevProc execution was disabled for CIDFonts which had been
substituted by a TTF (through cidfmap, for example) because the index that
gets passed to zchar_set_cache() is the TTF GID, not the CID, and the
CDevProc requires the CID.

We can, however, retrieve the CID from the text enumerator, and pass that to
the CDevProc, which is what this commit implements.

Cluster differences in Bug692320.pdf because we now reposition glyphs with the
CDevProc where we previously were not.

No other differences.

gs/psi/zcharout.c


2011-12-13 12:47:57 +0000
Robin Watts <robin.watts@artifex.com>
863d3d5383aaf59a04715115f72651cbbb3d8435

Fix for bug 688387; Type 3 image range checking is too restrictive.

Modified version of patch from Olavi Sakari.

For explicit masking, regenerate the mask matrix from the image
matrix, with scaling changes to allow for different widths/heights.

Cluster testing shows differences in:
tests_private/comparefiles/468-01.ps (We now match acrobat)
tests_private/comparefiles/Bug690237.pdf (rounding diffs, fine)
tests_private/ps/ps3cet/12-07C.PS (content now appears)

gs/base/gximage3.c


2011-12-13 11:19:08 -0700
Henry Stiles <henry.stiles@artifex.com>
93bdb2010c0c1ce074c3cd4bddc6a77f6808d920

Common subexpression elimination - no expected changes.

pcl/pcindxed.c


2011-12-12 21:58:38 -0700
Henry Stiles <henry.stiles@artifex.com>
e04069bf8549eba33e7ba71398769609b72d2026

Reorganize the initialization of the pen width and residual palette
color entries. In particular, the pen width initialization was
incorrect, applying default pen widths to pens that shouldn't be
reset. This changes result in progressions for the following files:

tests_private/pcl/pcl5ccet/31-09.BIN
tests_private/pcl/pcl5ccet/34-03.BIN
tests_private/xl/pcl6cet3.0/C705.bin

pcl/pcindxed.c


2011-12-12 09:58:43 -0700
Henry Stiles <henry.stiles@artifex.com>
abf148da6950f4f39d57603fb316584ea0975fa7

Addresses 692051, the palette string's allocated size always
matches the number of entries in the palette times 3 (bytes).

pcl/pcindxed.c


2011-12-12 09:57:30 -0700
Henry Stiles <henry.stiles@artifex.com>
0880ae03de6174fc13c3016a1c0f49c850047df7

Make fuction static.

CLUSTER_UNTESTED

pcl/pcpalet.c


2011-12-12 09:54:30 -0700
Henry Stiles <henry.stiles@artifex.com>
a074d9ebc08bda2680133ae3fc09fd9ff55637be

Fix long standing problem where too many palette entries were
initialized. This was not an issue with a fixed static palette but
with the new dynamic palettes forthcoming this would cause writing
past the end of the palette data string.

pcl/pcindxed.c


2011-12-09 09:37:26 -0700
Henry Stiles <henry.stiles@artifex.com>
dea0afb058b76ea57832f6e48a0bfc080898e9cb

Back out valgrind workarounds to resize and initialize indexed color
spaces. A more complete solution is forthcoming.

pcl/pcindxed.c


2011-12-08 23:18:54 -0700
Henry Stiles <henry.stiles@artifex.com>
aacecd032249027269e896ebc0abada3a8e82945

Extra debugging support for PCL color spaces.

CLUSTER_UNTESTED

pcl/pccid.c
pcl/pccid.h
pcl/pccsbase.c
pcl/pcindxed.c
pcl/pcpatrn.c


2011-12-13 15:21:42 +0000
Ken Sharp <ken.sharp@artifex.com>
5f5921ad464e39676328705c874485e66a6d6469

Fix crash when using a TrueType substitute for a missing CIDFont with pdfwrite

The changes to better handle PCL fonts accidentally left out an important
test which could lead to a seg fault if a PDF file was processed which
contained a reference to a non-embedded CIDFont, and we had defined a
TrueType substitute to use instead.

This restores the old behaviour of exiting with an error.

Bug692320 should no longer seg fault with cluster testing.

gs/base/gdevpdtt.c


2011-12-13 11:46:53 +0000
Chris Liddell <chris.liddell@artifex.com>
18a5170163b690647f70d58e4c9d75873cd1324b

Bug 690779: Provide fallback for missing CIDFonts in PDF

Rather than throw an error when a PDF references a CIDFont that is not
available, we'll now fall back to using DroidSansFallback.ttf, by default.

This gives a reasonable analogue of other PDF consumers' behavior.

Results in extensive differences in Bug692320.pdf because we now complete
content streams, and image the text they contain, rather than skipping
them. NOTE: this does not make the output from Bug692320.pdf "correct", but
arguably makes it "less wrong".

Other than that, no differences.

gs/DroidSansFallback.NOTICE
gs/Resource/CIDFSubst/DroidSansFallback.ttf
gs/Resource/CIDFont/ArtifexBullet
gs/Resource/Init/gs_ciddc.ps
gs/Resource/Init/gs_cidfm.ps
gs/Resource/Init/gs_init.ps
gs/Resource/Init/gs_ttf.ps
gs/Resource/Init/pdf_font.ps
gs/Resource/Init/xlatmap
gs/doc/Use.htm
gs/psi/psromfs.mak


2011-12-12 15:38:32 +0000
Chris Liddell <chris.liddell@artifex.com>
405d67e60c1b943f4faeed728bace0f2103a7ec8

Bug 692736: fix logic contolling FAPI's bitmap production.

Non-marking operations (such as stringwidth) sometimes require FAPI to produce
a bitmap. We were taking the "slegdehammer" approach of always producing a
bitmap, and throwing it away when not required.

This commit fixes the decision on whether we should produce a bitmap.

No cluster differences.

gs/psi/fapi_ft.c
gs/psi/zfapi.c


2011-12-12 14:29:29 +0000
Chris Liddell <chris.liddell@artifex.com>
77f2e7c475bdf79e478d59c878d6ae30c53c5a17

Add missing dependencies for gdevicov.c.

No cluster differences.

gs/base/lib.mak


2011-12-10 16:41:06 -0800
Marcos H. Woehrmann <marcos.woehrmann@artifex.com>
70b1623bf91ea2a75da69f40caefb7efa56f49d9

Add ink coverage device: inkconv. Resolves Bug 692665.

Add the inkcov device, written by sebastian.kapfer@physik.uni-erlangen.de.
This dummy device produce output listing the percentage of pixels
containing c, m, y, and k ink.

No cluster differences expected since this device isn't tested by the
cluster.

gs/base/configure.ac
gs/base/gdevicov.c
gs/base/lib.mak
gs/base/macos-mcp.mak
gs/base/macosx.mak
gs/base/openvms.mak
gs/base/unix-gcc.mak
gs/base/unixansi.mak
gs/ghostscript.vcproj


2011-12-09 10:01:57 +0000
Chris Liddell <chris.liddell@artifex.com>
9a2555a91fbc2fa73a6e2f8f4035b58b4ff5ae57

Bug 692686: use same scan conversion settings for "clip" as for "fill"

The PDF job in question renders most of its text as simple text render mode 0,
but about three glyphs are done using tr mode 7, and showing an image through
the resulting clip.

The problem is that when we image a glyph, we use fill_adjust 0 (rather than the
default of ~0.3), otherwise glyphs are overly bold. When using one of the clip
text modes in PDF, however, we still used the default fill_adjust, which
resulted in an overly "bold" clip path.

This causes a number of cluster differences: several are progressions, the
others are pixel differences - mostly cases where resolution and/or zoom level
affect whether we precisely match Acrobat.

gs/Resource/Init/pdf_ops.ps


2011-12-09 10:07:33 +0000
Ken Sharp <ken.sharp@artifex.com>
5359a2d0bf10568102f85d797a91c0595518ae23

Do not use hexadecimal names for type42 Charstrings and Encoding

Bug #692711 - When creating CharStrings and Encoding for an embedded
TrueType font, to create a type 42 font, we need to supply numeric names
according to the spec. We were doing this using hex values which has the
unfortunate effect of creating 5 of the names as /A to /F.

These are not numeric! In fact they duplicate 5 of the Ghostscript
standard names. While this is not actually a problem when rendering, it
*is* a problem for ps2write because it uses the names to rebuild the font
for embedding. If the name is one of the standard names then it leads
(through complex routes) to us creating a CMAP subtable where the GID is
not correct, we use the value of the stadnard name instead of the correct
numeric value.

By using decimal numbers we avoid this problem.

This change exhibits progressions in the regression files Bug688421.pdf
(which is now 100% correct with the earlier fixes for composite glyphs)
and Bug691121.pdf

gs/Resource/Init/gs_ttf.ps


2011-12-09 09:43:53 +0000
Chris Liddell <chris.liddell@artifex.com>
db2cf48ecc2e287d2685c4b43fa7bcaa0fde1721

Bug 692730: fix confusion in stream opening for FAPI/FT

When I wrote the custom stream code so that Freetype uses the Ghostscript
stream functions, I misunderstood a couple of aspects of the Ghostscript
stream opening code, especially where paths did not include a Postscript
device.

I believe this resolves that.

No cluster differences.

gs/psi/fapi_ft.c


2011-12-08 21:35:46 -0800
Michael Vrhel <michael.vrhel@artifex.com>
8ac67fdf4beb52a8f804b146a13af208004c6f88

Fix for accidental changes in ghostscript.vcproj during previous commit.

Problem was caused by the fact that I add added a file that I wanted in the
project display but I am running a newer version of visual studio compared to
what we maintain in the trunk.

gs/ghostscript.vcproj


2011-12-06 12:52:31 -0800
Michael Vrhel <michael.vrhel@artifex.com>
592047c6c30012f86ada508870554c9eff9a749a

Allow use of unmanaged color transformations for source DeviceXXX colors

This introduces a CMM that can hand back "links" to gs where the
links in this case contain pointers to the simple procedures that
transform between the various color spaces. This CMM (or non-CMM) can
be invoked when we encounter DeviceRGB, DeviceGray or DeviceCMYK color
spaces by use of the parameter -dUseFastColor.

gs/base/gdevp14.c
gs/base/gdevpsd.c
gs/base/gdevrinkj.c
gs/base/gdevxcf.c
gs/base/gscms.h
gs/base/gsdparam.c
gs/base/gsequivc.c
gs/base/gsicc.c
gs/base/gsicc_cache.c
gs/base/gsicc_cache.h
gs/base/gsicc_cms.h
gs/base/gsicc_lcms.c
gs/base/gsicc_lcms2.c
gs/base/gsicc_manage.c
gs/base/gsicc_nocm.c
gs/base/gxblend.c
gs/base/gxblend.h
gs/base/gxcmap.c
gs/base/gxi12bit.c
gs/base/gxicolor.c
gs/base/gxipixel.c
gs/base/gxiscale.c
gs/base/lib.mak
gs/ghostscript.vcproj
xps/xpsgradient.c


2011-12-08 15:18:16 -0800
Marcos H. Woehrmann <marcos.woehrmann@artifex.com>
2ab94321918a4d4575435361e685836016ee9368

Removed cgm devices. Fixed Bug 692401.

No cluster differences expected, since the cluster doesn't test any of the cgm devices.

gs/base/configure.ac
gs/base/devs.mak
gs/base/gdevcgm.c
gs/base/gdevcgml.c
gs/base/gdevcgml.h
gs/base/gdevcgmx.h
gs/doc/Develop.htm
gs/doc/Drivers.htm


2011-12-07 15:32:14 +0000
Chris Liddell <chris.liddell@artifex.com>
f52122736b932c511a02b095d056cfb3a19a7fa8

Bug 692641: Misc build fixes for static systems

Patch contributed by Alan Hourihane ( alanh@fairlite.co.uk ) to improve
compatibility with system which need static linking. So disable dynmic devices
unless they explicitly enabled, rename our internal SHA functions so they don't
clash when libssl is linked in.

Finally, a fix so configure doesn't assume pkgconfig availability (although it
is widely available, it is not "standard").

No cluster differences.

gs/base/configure.ac
gs/base/sha2.c
gs/base/sha2.h
gs/base/ssha2.c


2011-12-06 13:38:01 -0800
Marcos H. Woehrmann <marcos.woehrmann@artifex.com>
3d64dd5fa86827f374ded02b220cf9bddbc852c7

Another parital fix for Bug 692434.

gs/base/gdevddrw.c


2011-12-06 13:34:47 -0800
Marcos H. Woehrmann <marcos.woehrmann@artifex.com>
0b21c79855e8f50a218a478bf9fc9d10e20c4db4

Partial fix for Bug 692434, removed some of the memcmp() of structures.

No cluster differences expected.

gs/base/gdevdevn.c
gs/base/gdevpdfg.c
gs/base/gdevpdti.c
gs/base/gdevpdts.c
gs/base/gdevprn.c
gs/base/gsequivc.h
gs/base/gsfont.c
gs/base/gsmatrix.c
gs/base/gsmatrix.h


2011-12-06 19:20:28 +0000
Robin Watts <robin.watts@artifex.com>
9335aeee4aab3e7454c827fc3a327437dec85637

Bug 692526: Partial fix (clipping path initialisation)

Ghostscript paths have a 'local_segments' structure inside them
enabling them to be allocated entirely on the stack. Clipping
paths contain paths, so have the same structure. When a new
clipping path is initialised on the stack, it can share the
segments from an existing clipping path.

If this existing clipping path is on the stack, and 'goes away'
(due to garbage collection etc) the new clipping path can be left
holding pointers to invalid data. As such there is code in the gs
lib to detect that a clipping path is being asked to share
segments from another stack allocated clipping path, and to refuse.

The file referenced in the bug runs into exactly this situation.
It is however entirely safe, as the lifespan of the second clipping
path is 'nested' safely within the lifespan of the original.

I have therefore introduced another function that allows the
initialisation to be done as long as the caller guarantees that it
is safely nested.

This is sufficient to avoid the warning messages, and the file now
runs to completion successfully.

So why is this only a partial fix?

The original code refuses to initialise the clip path, and returns
a (negative) error code. This is caught by the calling code and
various things are not done. Later, a compositor comes to be shut
down, and pdf14_compose_group is called.

This finds that maskbuf != NULL, but maskbuf->transfer_fn == NULL.
This leads to a SEGV.

Something (presumably in the cleanup code that should be handling
the error) is leaving the compositor in an unexpected state however.

The code change here stops the error return code, so the cleanup code
is not called, and the regression is fixed. It leaves the broken
cleanup code in there though - I'll leave the bug open until this is
fixed.

gs/base/gdevp14.c
gs/base/gxcpath.c
gs/base/gxfill.c
gs/base/gxpath.h


2011-12-05 11:36:19 -0800
Michael Vrhel <michael.vrhel@artifex.com>
a7b85f9823b1a1dea1530716a3e2fb3dd2f75c9c

Fix for bug 692567. Knockout support in pdf14_copy_alpha

During a combined stroke and fill we push a knockout group for the stroke. This was not being handled properly in the pdf14 device's copy_alpha operation.

gs/base/gdevp14.c


2011-11-17 10:19:42 -0800
Michael Vrhel <michael.vrhel@artifex.com>
2cde54397abe935ff96300a4ac2588b40ad68d2b

Embedding of device ICC profile into JPEG output device

Addresses bug 692186. This includes the fix to make sure the profile
is not used for pdfwrite image output.

gs/base/gdevjpeg.c
gs/base/gdevpsdu.c
gs/base/sdct.h
gs/base/sdcte.c
gs/psi/zfdcte.c


2011-12-04 20:58:58 -0800
Michael Vrhel <michael.vrhel@artifex.com>
224672fa4af11c4723c38ea11b4d51503a96f609

Fix for bug 692717. Initialization of ICC profile data range in pdf14_put_image

The ICC profile that is used to specify the PDF14 image data was not having its
range values properly initialized.

gs/base/gdevp14.c
gs/base/gsicc_manage.c
gs/base/gsicc_manage.h


2011-12-03 22:33:04 -0800
Michael Vrhel <michael.vrhel@artifex.com>
fd7c24da5b84f99605a38108c8cc0bfae813fbf4

Fix for bug 692692. Anti-alias with pdf14 device.

This fixes several bugs that were present in the pdf14 copy alpha
procedure.

gs/base/gdevp14.c


2011-11-29 20:33:16 +0000
Shailesh Mistry <shailesh.mistry@hotmail.co.uk>
d20a6cb9f12682804af2e74ec5d6bb75ca9d5410

Bug 691267: jbig2dec needs to check malloc() return values

This fix checks all return paths to ensure that the appropriate error
is returned on failure from any malloc() call within jbig2dec.

gs/base/sjbig2.c
gs/jbig2dec/jbig2.c
gs/jbig2dec/jbig2_arith.c
gs/jbig2dec/jbig2_arith_iaid.c
gs/jbig2dec/jbig2_arith_int.c
gs/jbig2dec/jbig2_generic.c
gs/jbig2dec/jbig2_halftone.c
gs/jbig2dec/jbig2_huffman.c
gs/jbig2dec/jbig2_image.c
gs/jbig2dec/jbig2_metadata.c
gs/jbig2dec/jbig2_page.c
gs/jbig2dec/jbig2_refinement.c
gs/jbig2dec/jbig2_segment.c
gs/jbig2dec/jbig2_symbol_dict.c
gs/jbig2dec/jbig2_text.c


2011-11-28 10:06:39 +0000
Chris Liddell <chris.liddell@artifex.com>
79de8a34f93165b5839f9fcbd75be9ca0048fd21

Bug 692694: unaligned memory access in image ht code.

When image data does not land exactly on the necessary alignment for SSE2
optimisations, we handle the "left over" samples on their own, before the
suitably aligned samples. When we come to copy the halftoned data to the
target device, we first handle the "left over" samples, and then the
SSE2 aligned samples in separate calls to copy_mono/copy_plane. The "left
over" samples never number more than 16.

Previously, after dealing with the non-SSE2 aligned samples, we'd increment
the samples pointer two bytes (to skip the up to 16 bits of unaligned samples).
The problem is, that causes us to 32 bits at time, on 16 bit aligned boundaries,
which on SPARC causes a bus error.

We now use the copy_mono/copy_plane API parameter which gives the function an
offset into the samples which is should use before starting the operation.
Implementations of copy_mono/copy_plane must handle non-aligned samples
gracefully anyway.

No cluster differences.

gs/base/gxht_thresh.c


2011-11-27 13:23:46 -0500
Alex Cherepanov <alex.cherepanov@artifex.com>
a39e4831ba0d74d742b365f3b3b1af192731303c

Bug 692684: stop gcc optimization bug.

Divide gs_main_init2() into two functions to work around a bug in
gcc 4.5.1 with -O2 option. The bug caused gcc to drop 2nd
assignment to i_ctx_p and resulted in SEGV error later on.

gs/psi/imain.c


2011-11-25 17:37:39 -0500
Alex Cherepanov <alex.cherepanov@artifex.com>
fa65667a25048b730e629bd4d8544d621cae2810

Clean-up txtwrite device.

Make debug tracing use a special flag instead of DEBUG.
Fix two cases of '=' used instead of '=='.
Fix all gcc warnings.
Add proper dependencies to the makefile.

gs/base/devs.mak
gs/base/gdevtxtw.c


2011-11-25 12:24:11 -0500
Alex Cherepanov <alex.cherepanov@artifex.com>
e46cb584f6ab876828bb5c7943881cfbbc549e43

Add missing txtwrite device to autoconf-based build.

gs/base/configure.ac


2011-11-25 15:50:42 +0000
Ken Sharp <ken.sharp@artifex.com>
979f2182372d924ce69f8d904e87173107209b6b

ps2write - fix conversion of escaped string to Hex string

This is used when Indexed spac es are encountered, the lookup table is
created as an escaped string, but written to the output as a Hex string.
The conversion was not catering for the 'special' escaped characters,
\r, \n, \b, \t and \f

This results in a number of differences, casreful comparison shows them all
to be progressions:

Bug6901014_launch_leaflet.pdf
annot-fit-bbox-in-rect.pdf
0.pdf
01_001.pdf
148-11.ps
1_2001.pdf
Altona.Page_3.2002-09-27.pdf
Altona_Technical_1v1_x3.pdf
Bug687840.pdf
Bug689083.pdf
Bug689189.pdf
Bug689362.pdf
Bug689748.pdf
Bug690109.pdf
Bug690348.pdf
Bug690395.pdf
Bug690489.pdf
Bug690559.pdf
Bug691045.pdf
Bug691228.pdf
Bug691335.eps
Bug691734.ps
Bug691740.pdf
Bug691816.pdf
Bug691941.pdf
Bug692365.pdf
H00216q.pdf
MagicEye.pdf
NECPNTD.pdf
Openhuis_pdf_zw.pdf
PixelisAd.pdf
RealCities.pdf
S2_Digitalproof-Forum_x3k.pdf
adesso2.pdf
bulletin.pdf
dave.pdf
file.pdf
file2.pdf
japan.ps
korea.ps
messenger.pdf
messenger16.pdf
p2b-100.pdf
CATX0249.pdf
CATX1028.pdf
CATX1421.pdf
CATX1593.pdf
CATX2050.pdf
CATX2181.pdf
CATX2447.pdf
CATX2905.pdf
CATX2937.pdf
CATX3740.pdf
CATX3783.pdf
CATX4574.pdf
CATX4879.pdf
CATX4998.pdf
CATX5365.pdf
CATX6460.pdf
CATX7581.pdf
CATX7762.pdf
CATX8839.pdf
CATX9297.pdf
IA3Z0248.pdf
IA3Z0440.pdf
IA3Z1148.pdf
IA3Z1284.pdf
IA3Z3096.pdf
IA3Z3100.pdf
IA3Z3298.pdf
IA3Z3881.pdf
IA3Z4393.pdf
IA3Z4925.pdf

gs/base/gdevpdfu.c


2011-11-25 15:27:03 +0000
Chris Liddell <chris.liddell@artifex.com>
3f99f9c568fa7a93ce4ca5acdc0c8fed6cf505bd

Add a "dummy" call to validate UFST font.

It turns out that UFST's CGIFfont() call does little or no validation of the
font for which it is creating an object. So, add a "dummy" call to
CGIFfont_metrics() which will return an error if, for example, a request
for a font index which doesn't exist in the current FCO is made.

CLUSTER_UNTESTED

gs/psi/fapiufst.c


2011-11-21 20:31:09 +0000
Robin Watts <robin.watts@artifex.com>
83788c03875545d620e6885e4f5ab4af08f8f55b

Bug 692666: grid fit images.

The file in bug 692666 draws many thin horizontal rectangles, then draws
1 pixel high images on top of each one. Current gs 'thickens' the
rectangles (due to the 'any part of a pixel' rule), and they overwrite
the previously drawn image - hence it appears black.

The problem is thus that the images are not similarly stretched.

Images are not supposed to use the "any part of a pixel" rule, where
vectors are, but the fact this file works in acrobat would seem to
contradict that. Instead we try a simple fix; if we are using the
'any part of a pixel' file (i.e. fill_adjust != 0), and we meet an
ImageMask image that is either 1 pixel high, or 1 pixel wide, then we
ensure that it is 'stretched' to completely fill any pixels that it
touches.

We specifically do NOT perform this stretching if we are in the process
of rendering a glyph.

This produces various rendering diffs, none that offensive.

gs/base/gxipixel.c


2011-11-23 15:36:11 +0000
Ken Sharp <ken.sharp@artifex.com>
4298afc461ec583637d5ce2b41facc40403867d5

Correct CIDSet and CIDToGIDMap generation when LastChar > number of glyphs

More CIDSet work. WHen LastChar is > number of glyphs in font (already a subset)
we were setting the length of the CIDToGIDMap and the CIDSet to the LastChar
value. This should be LastChar + 1 to allow for the /.notdef.

No differences expected, this only happens when generating PDF/A which is not tested.

gs/base/gdevpdtd.c


2011-11-22 17:58:47 +0000
Chris Liddell <chris.liddell@artifex.com>
7cf40e90d53c0a86b05561985608d3d292025a00

Bug 692681: handle invalid Encoding arrays in Type 3 fonts

Distiller quietly converts the contents the contents of a Type 3 font's encoding
array to names (at least if they are integer objects), whilst CPSI throws an
error.

We will now do as Distiller and convert to name objects, unless we are in "CPSI
compatibility mode", when we will throw an error.

No cluster differences.

gs/psi/zbfont.c


2011-11-19 00:02:59 +0000
Robin Watts <robin.watts@artifex.com>
365dd132567f8007176ca48d36741b6c98d4a514

Bug 692512: fts_10xx.xps shows white lines in pattern.

The matrix used for the pattern is skewed; this was enough to avoid
my previous fix being used. Amend the tests to cope with the skewed
case too. We may need to cope with 90 degree rotated/skewed cases too.

gs/base/gsptype1.c


2011-11-18 23:59:14 +0000
Robin Watts <robin.watts@artifex.com>
6fc9006fb9e381c42308d7d7967fdcac5f31e26d

Bug 692512: Disable stroke adjust in xps to avoid gradient issues.

The fts_1003.xps file has a series of parallel lines (as separate
strokes) to make up a gradient. Having stroke adjust enabled
causes gaps (white lines) to appear between them.

Tests show that simply disabling stroke adjust all the time gives
nasty effects (thickening of lines). We therefore disable it just
for patterns here. This is enough to fix the current bug.

xps/xpstile.c


2011-11-22 08:15:27 +0000
Ken Sharp <ken.sharp@artifex.com>
5cce07051c3616c250a960ae48759a1c1af2fb47

ps2write - only execute setpagedevice if /PageSize changes

Bug #692691

The ps2write output (being based on pdfwrite) always emits a /MediaBox as
this is a required key for PDF. Previously the PostScript prolog would
always emit a setpagedevice using the MediaBox as the PageSize entry.

This caused a problem for CUPS as it inserts PPD code into the ps2write
output, and if this enables Duplex then each invocation of setpagedevice
will flush the accumulated output, which defeats Duplex.

The prolog code now tests the current page size and only executes
setpagedevice if the newly requested size differs from the current size. In
a simple attempt to ignore small differences we round the current and requested
media sizes, and convert to integers before comparison.

No differences expected in regression tests

gs/base/opdfread.h
gs/lib/opdfread.ps


2011-11-21 18:56:17 +0000
Chris Liddell <chris.liddell@artifex.com>
8a14c04c93138fab042063999af3610ea7b9852a

Revisions for Freetype custom stream use.

There were some subtleties of FT's custom stream use that I misunderstood:
unused entries in the structures must be null/zero, and the stream length
is required data.

Also, reorganise the code so building the stream object is contained in
a dedicated function.

No cluster differences.

gs/psi/fapi_ft.c


2011-11-21 11:10:22 -0800
Marcos H. Woehrmann <marcos.woehrmann@artifex.com>
fc8350604816f8314cb8c6355bfb9335feab5561

Fix one of the casts from b6cd8ce7351fc7bb759b5b7dcea7e74b2abb3850

The cast in the calls to hpgl_args_add_int() in pcl/pgconfig.c:hpgl_IR()
was wrong. The entire second argument needed to be cast to int32, not
just the results of the division. This caused regressions in a bunch
of the nightly/cluster test files, e.g.:

main/obj/pcl6 -sDEVICE=ppmraw -r75 -o test.ppm fts.1930

pcl/pgconfig.c


2011-11-21 15:38:07 +0000
Chris Liddell <chris.liddell@artifex.com>
590dcb6b2df9f4722b4f78607d35bd9c374624b1

Bug 692672: slightly revise symbolic fonts in PDFs

This is a slightly better of approximation of what Acrobat does in the out
of spec condition when a font has both an encoding in the font object and
the symbolic flag set in the descriptor's flags entry.

If the flags say symbolic, *and* the font contains a symbol cmap table,
ignore Encoding if there is one, treat as symbolic.

If the flags say symbolic, and the font doesn't have a symbol cmap, but we do
have an Encoding, treat it as non-symbolic if we don't have an Encoding, try
the MacRoman cmap table.

Finally, if none of that works, remove the Encoding, and treat it as
non-symbolic. This part is the biggest guess at Acrobat's behavior.

The various tests used in investigating what Acrobat does are attached to the
bug (692672).

No cluster differences.

gs/Resource/Init/gs_ttf.ps
gs/Resource/Init/pdf_font.ps


2011-11-21 08:55:17 +0000
Ken Sharp <ken.sharp@artifex.com>
bd108fc1a4b52c885a8e26362f346c0cd2fb6670

Update to Commit 63a5fe390d2534f6b48e2dd58f46ed9941582e83

This added detection of URW font names and their replacement with base 14
font names, when the fonts are not embedded. One of the Base 14 names
was not correct.

gs/base/gdevpdtb.c


2011-11-21 08:47:51 +0000
Ken Sharp <ken.sharp@artifex.com>
e2215693fe25a78865632b6bbbd52a3b4f2ab95c

Fix some minor return code inconsistencies.

Bug #692682, spotted by Alex, fix up a couple of inconsistent return values.

gs/base/gdevpdfo.c


2011-11-21 08:12:45 +0000
Ken Sharp <ken.sharp@artifex.com>
cd8f3973ac735480fcd02de9e0214de80ea79e94

ps2write - fix handling of format 4 CMAP subtables in TrueType fonts

Bug #692687. Format 4 CMAP subtables are intended for use where the range
of glyphs are not continuous, but the code for building a CharStrings
dictionary (to handle the font as type 42) was treating them as if they
were continuous, and starting from 0.

This led to the CharStrings dictionary, which maps glyph names to TrueType
Glyph IDS, being built incorrectly and incorrect, mostly /.notdef, glyphs
being used.

Regression testing shows no regressions and the following test files exhibit
progressions:
Bug6901014_Additional_testcase.pdf
Bug6901014_SMP_Warwick_14.pdf
Altona.Page_3.2002-09-27.pdf
Altona_Technical_1v1_x3.pdf
Bug687828.pdf
Bug688421.pdf
Bug688946.pdf
Bug689014.pdf
Bug689754.ps
Bug690269.ps
Bug691116.pdf
Bug691733.ps
Faktura.pdf
altona_technical_1v2_x3.pdf
test_multipage_prob.pdf
type42_glyph_index.ps
CATX4030.pdf
CATX9201.pdf
IA3Z4488.pdf

gs/base/opdfread.h
gs/lib/opdfread.ps


2011-11-21 01:26:01 -0500
Alex Cherepanov <alex.cherepanov@artifex.com>
ae0f7a3be733a04293a757f6ae395391339b78f5

Finish interface to OpenJpeg library.

This version handles all out tests correctly, although all files
show minor differences in color values. The build process has
not been changed and continues to build Jasper by default.

gs/base/sjpx_openjpeg.c
gs/base/sjpx_openjpeg.h
gs/openjpeg/libopenjpeg/image.c
gs/openjpeg/libopenjpeg/jp2.c
gs/openjpeg/libopenjpeg/jp2.h
gs/openjpeg/libopenjpeg/openjpeg.c
gs/openjpeg/libopenjpeg/openjpeg.h
gs/openjpeg/libopenjpeg/tcd.c


2011-11-20 10:29:47 +0000
Shailesh Mistry <shailesh.mistry@hotmail.co.uk>
f7f2daea2778213306a3edfe87a8f72af494427a

Fix 691958: check for an image before marking a page complete.
Also update return code to handle errors correctly.

gs/jbig2dec/jbig2_page.c


2011-11-20 10:43:51 -0700
Henry Stiles <henry.stiles@artifex.com>
44049d64ebd14bd76f94d87cd0fd55ea725f7510

Update ownership.

CLUSTER_UNTESTED

doc/who_owns_what.txt


2011-11-18 14:42:40 -0700
Henry Stiles <henry.stiles@artifex.com>
38cb1fd0cb7f38e6d7cf4b4fe06809865ccd0fff

Fix 692559, integrate Josef Hinteregger's patch to detect a font
directory without fonts and continue gracefully.

pl/pllfont.c


2011-11-18 14:09:04 -0700
Henry Stiles <henry.stiles@artifex.com>
3457a11ec419dcce4cd9e444674967b4dd5e8740

The indeterminism in the test file TIFFOffsetA4PL.pcl was caused by
the new custom page size implementation. The new code updates the
current page structure instead of creating a new one - later the page
size logic doesn't recognize a page size change and doesn't clear the
page (erasepage) properly. The custom page size implementation is
less than ideal, but the simple fix here is to just erase the page
unconditionally when the custom page size command is received. There
was no bug reported for this problem.

pcl/pcpage.c


2011-11-17 17:59:41 -0700
Henry Stiles <henry.stiles@artifex.com>
f482ab7c57e8a20f760be5b329bee528a66e7927

Capitalize a symbolic constant.

pcl/pcpage.c


2011-11-17 17:44:49 -0700
Henry Stiles <henry.stiles@artifex.com>
7b9a1eeaa1fce33270957e302e09189c6202f1a5

Fix 692677, in passthrough mode we initialize the PCL interpreter with
the paper size current in PXL's state. Previously the there could be
a mismatch in paper size which could lead to, for example, an A4
memory buffer erased as if it were LETTER, this left a small strip at
the bottom of the page uninitialized.

pxl/pxpthr.c


2011-11-17 17:43:05 -0700
Henry Stiles <henry.stiles@artifex.com>
fdb03e00c09a32d23a831cecfea9f4b1955b9b7a

A new interface procedure to allow the languages to invoke the PJL parser.

pl/pjparsei.c
pl/pjtop.c
pl/pjtop.h


2011-11-17 17:39:28 -0700
Henry Stiles <henry.stiles@artifex.com>
fc3aa53aafc7b73ae9703d253ae4040658e22b74

The "wide a4" state variable could be used unitialized when using
custom paper sizes.

pcl/pcpage.c


2011-11-15 11:26:36 -0800
Michael Vrhel <michael.vrhel@artifex.com>
27806596e3c2820064788bba903cc569ce89f1e7

Removal of WTS from code.

Plan is to suggest the use of screens generated with gs\toolbin\halftone\gen_ordered

gs/base/gdevdflt.c
gs/base/gp.h
gs/base/gsdcolor.h
gs/base/gsdps1.c
gs/base/gsht.c
gs/base/gsht1.c
gs/base/gshtscr.c
gs/base/gslibctx.h
gs/base/gswts.c
gs/base/gswts.h
gs/base/gxbitfmt.h
gs/base/gxclread.c
gs/base/gxdcolor.c
gs/base/gxdcolor.h
gs/base/gxdevcli.h
gs/base/gxdevndi.c
gs/base/gxdht.h
gs/base/gxdhtserial.c
gs/base/gxht.h
gs/base/gxshade.c
gs/base/gxwts.c
gs/base/gxwts.h
gs/base/lib.mak
gs/doc/Language.htm
gs/ghostscript.vcproj
gs/psi/zusparam.c
pl/plsrgb.c


2011-11-17 12:05:24 -0800
Michael Vrhel <michael.vrhel@artifex.com>
aef9ee68391088d1c7e371a6f1e3fa4092688eae

Revert "Embedding of device ICC profile into JPEG output device"

This reverts commit 23a2b8e765a4d56cfeacddaaaa497e817bec499e.
Need to see how this screws up pdfwrite.

gs/base/gdevjpeg.c
gs/base/sdct.h
gs/base/sdcte.c


2011-11-17 10:19:42 -0800
Michael Vrhel <michael.vrhel@artifex.com>
23a2b8e765a4d56cfeacddaaaa497e817bec499e

Embedding of device ICC profile into JPEG output device

Addresses bug 692186.

gs/base/gdevjpeg.c
gs/base/sdct.h
gs/base/sdcte.c


2011-11-16 10:32:30 -0800
Michael Vrhel <michael.vrhel@artifex.com>
6fbdd32889dfa9d318170e63245755057bb8b401

Save ICC profile in TIFF and PNG device output.

This addresses Bug 692183. The patch for the TIFF case was not
quite sufficient due to changes in the device profile structure,
issues regarding the separations from the tiffsep device, and
how we handle the case when the output profile is CIELAB.

gs/base/gdevpng.c
gs/base/gdevtifs.c
gs/base/gdevtsep.c


2011-11-15 18:02:06 +0000
Chris Liddell <chris.liddell@artifex.com>
3a088c1913fae07ea8016ef29853610741e16851

Bug 692683: revise FAPI/FT code so it uses the GS file handling

When the Freetype interface was called to create a font object with a path
to the font file, it previously simply passed the path into Freetype, and
left it to handle the file details.

This revision changes that so that we build a custom Freetype stream object
which uses the Ghostscript file API to access the data. We generally prefer
to operate that way anyway, and (more importantly) this allows FT "direct"
acccess to font files stored in our ROM filesystem.

No cluster differences.

gs/psi/fapi_ft.c


2011-11-15 17:25:27 +0000
Chris Liddell <chris.liddell@artifex.com>
445f78bf167f27a5358bff72d314d6ecc83a5384

Add a wildcard to CIDFont mkromfs parameter

To correctly including the _contents_ of the Resource/CIDFont directory
when building the rom filesystem, we need a wildcardm, so it ends up
as "Resource/CIDFont/*"

No cluster differences.

gs/psi/psromfs.mak


2011-11-14 22:37:28 -0800
Michael Vrhel <michael.vrhel@artifex.com>
f0b1c2aefaed5ba17fea69848c0b5489b541c4cf

Clarification of the gen_ordered settings and README.

The current default value for -s (size of the super cell) is 1
which indicates that them smallest possible size should be used.
This occurs regardless of the requested quantization levels.
This is clarified in the README and a message is displayed
during the creation of the screen providing a minimum suggested
value for -s to achieve the number of requested levels.

gs/toolbin/halftone/gen_ordered/README
gs/toolbin/halftone/gen_ordered/gen_ordered.c


2011-11-14 10:10:05 -0800
Michael Vrhel <michael.vrhel@artifex.com>
0cf2574289f8825620dd805f49f1cfaab04f005b

Addition of thresholding functions for subtractive color spaces.

Previously, I had swapped the threshold and the image data to handle the subtractive case.
Unfortunately due to the way things were written that caused issues. So for now we added
unique functions for the subtractive case to avoid an additional conditional in the low
level part of the code.

gs/base/gxht_thresh.c
gs/base/gxht_thresh.h


2011-11-14 18:11:44 +0000
Robin Watts <robin.watts@artifex.com>
3becda050c87511153170a85c7d3414e9a78e189

Squash some more PCL warnings.

Implicit typecasts made explicit.

gs/base/gdevclj.c
pcl/pcrect.c
pl/plchar.c
pxl/pxerrors.c
pxl/pxgstate.c


2011-11-14 12:19:32 +0000
Robin Watts <robin.watts@artifex.com>
96ab69c8bcc1bcf3e366b494ed099dc5b46009fe

Planar rop fixes; extensive changes throughout code.

The changes here are largely forced upon us by the rop source device,
the internal mechanism used within the gs lib to cope with performing
rop operations with drawing operations. The rop source device is
created and is given a 'source'. Any operations then done to that device
are then passed on to its target device rewritten into a form that will
cause the output to be ropped with the source.

This causes problems when the source is in planar format (such as when
the source is a pattern tile intended for use on a planar device). There
is no way to call strip_copy_rop with planar data currently, neither
can it easily be shoehorned through. We therefore add a new
'strip_copy_rop2' entrypoint that takes an additional 'planar_height'
parameter that gives the number of lines of data before the next
planes data starts.

We add implementations of this call throughout the code; some are
very simple (bbox, null, trace, clip, clip2, clip2, tile_clip etc).
Others 'common up' with the strip_copy_rop (gx_default,
mem_planar).

The underlying memory devices should never be called with strip_copy_rop2
as the planar data will always be rewritten to chunky format before
this happens. We are free to change this approach later if we want.

The gx_rop_source_t structure used by the rop source device is extended
to have a new planar_height field, and the rop source device itself
extended to pass this on. Various places that create this structure now
initialise that correctly.

The clist reader/writer is updated to send the extra planar_height
field through and call strip_cop_rop or strip_copy_rop2 as appropriate.

In a similar vein, we are forced to change the copy_plane entry point
to be copy_planes (as it is impossible (or very hard at least) for the
rop source device to implement copy_plane).

This incorporates changes from Michael to the new "fast threshold" image
halftoning code to make it use the new copy_planes operation.

gs/base/gdevbbox.c
gs/base/gdevdflt.c
gs/base/gdevdrop.c
gs/base/gdevmem.h
gs/base/gdevmpla.c
gs/base/gdevnfwd.c
gs/base/gdevrops.c
gs/base/gdevtrac.c
gs/base/gxacpath.c
gs/base/gxcht.c
gs/base/gxcldev.h
gs/base/gxclimag.c
gs/base/gxclip.c
gs/base/gxclip.h
gs/base/gxclip2.c
gs/base/gxclipm.c
gs/base/gxclist.c
gs/base/gxclrast.c
gs/base/gxclrect.c
gs/base/gxdcolor.c
gs/base/gxdcolor.h
gs/base/gxdevcli.h
gs/base/gxdevice.h
gs/base/gxht.c
gs/base/gxht_thresh.c
gs/base/gxht_thresh.h
gs/base/gxicolor.c
gs/base/gximage.h
gs/base/gximono.c
gs/base/gxp1fill.c
gs/base/gxpcmap.c


2011-11-14 08:31:38 -0800
Marcos H. Woehrmann <marcos.woehrmann@artifex.com>
940b007282d74686a20aa5cf434d20353680344c

Fixed a template -> templat for the Luratech build.

gs/base/gdevpsdi.c


2011-11-14 10:39:24 +0000
Ken Sharp <ken.sharp@artifex.com>
08dc12934adaa27978ec264dbf9c691a18d8c429

ps2write - improve TrueType composite glyph handling

Bug #692626, #696264.

When emitting a TrueType font from a CIDFont with TrueType outlines if a
glyph was a composite glyph we did not create an entry in name table for
any components of the glyph which were not already present in the output
font.

This caused problems creating the CMAP subtable for the embedded TrueType
font.

This patch shows progressions with ps2write and files CATX4638.pdf, bug690450.pdf.
A regresison with pdfwrite and file bug688421.pdf and a difference in
Bug 691121.pdf with pswrite (wrong before, differnetly wrong now)

Despite the regression I'm committing it, as it shows significant improvements
for ps2write.

gs/base/gxfcopy.c


2011-11-12 19:44:39 +0100
Till Kamppeter <till.kamppeter@gmail.com>
ed8664ed1a8a797d949270d707966aadefb3b9e8

Renamed the PXL CUPS filter from "pstopxl" to "gstopxl", as like "gstoraster"
it understands both PostScript and PDF as input.

gs/base/configure.ac
gs/cups/cups.mak
gs/cups/gstopxl.in
gs/cups/pstopxl.in
gs/cups/pxlcolor.ppd
gs/cups/pxlmono.ppd


2011-11-11 21:09:02 -0500
Alex Cherepanov <alex.cherepanov@artifex.com>
8c3d5996d379818c8c0422bb8330840d0fb12645

Bug 692675: drop ivalid filter parameters.

Check for /dicttype instead of null. Drop null and invalid filter
parameters at once.

gs/Resource/Init/pdf_base.ps


2011-11-11 14:09:09 -0700
Henry Stiles <henry.stiles@artifex.com>
9a015bf889ea43c050fcf652c37d3c786483e243

The PXL assembler and dissassembler had the incorrect attribute code
for PCLSelectFont and the PCLSelectFont attribute name was missing
from a debug name table.

CLUSTER_UNTESTED

pxl/pxptable.c
tools/pxlasm.py
tools/pxldis.py


2011-11-11 00:07:57 -0700
Henry Stiles <henry.stiles@artifex.com>
d53286dbb42db66166b7af2f68a63baf7da43791

Fix 690417 - new PCL command "set logical page". This allows the user
to provide arbitrary width, height and offsets which are then
associated with the currently selected paper.

pcl/pcl.mak
pcl/pcpage.c


2011-11-10 21:57:16 +0000
Robin Watts <robin.watts@artifex.com>
b6cd8ce7351fc7bb759b5b7dcea7e74b2abb3850

Squash warnings in pcl/pxl.

Mostly making type coercions explicit.

pcl/pcbiptrn.c
pcl/pccid.c
pcl/pccsbase.c
pcl/pcfont.c
pcl/pcfontpg.c
pcl/pcfsel.c
pcl/pcindxed.c
pcl/pcjob.c
pcl/pcpage.c
pcl/pcpatrn.c
pcl/pcrect.c
pcl/pcsfont.c
pcl/pctext.c
pcl/pcuptrn.c
pcl/pcursor.c
pcl/pgconfig.c
pcl/pgframe.c
pcl/pgpoly.c
pcl/rtgmode.c
pcl/rtmisc.c
pcl/rtraster.c
pl/pjparse.c
pl/plchar.c
pl/plsrgb.c
pxl/pxink.c
pxl/pxsessio.c


2011-11-10 20:49:55 +0000
Robin Watts <robin.watts@artifex.com>
42aa659090c896b807745b4eba81335dbd8e8d92

Replace 'this' with 'self'.

Using C++ reserved words in ghostscript is bad form, especially as
MSVC gets confused by them when debugging.

I haven't changed the use of 'this' in zlib as it's not ours to change.

gs/base/gscicach.c
gs/base/gsgcache.c
gs/base/gxclist.c
gs/base/gxhintn.c
gs/base/gxhintn1.c
gs/base/gximono.c
gs/base/gxpflat.c
gs/base/gxttfb.c
gs/base/ttfmain.c


2011-11-10 20:11:03 +0000
Robin Watts <robin.watts@artifex.com>
d81dffe6142ead8245baacf12f3b2ae4fe20b206

Squash warnings in MSVC build.

All self evident, really. Lots of char's that should be bytes etc.

gs/base/gdevclj.c
gs/base/gdevpdtw.c
gs/base/gdevtsep.c
gs/base/gp_wgetv.c
gs/base/gsicc_cache.c
gs/base/gxicolor.c
gs/base/gxipixel.c
gs/base/sidscale.c
pcl/pcht.c
pcl/rtmisc.c
pl/plchar.c
pl/plfont.c
xps/xpspath.c


2011-11-10 19:09:05 +0000
Robin Watts <robin.watts@artifex.com>
d182ddaf5d46dc68d7f266fcb7f4de1ed64b7b56

Replace all uses of 'template' with 'templat'.

Using C++ reserved words is bad form, if only because they upset MSVC
when debugging.

gs/base/gdevcfax.c
gs/base/gdevfax.c
gs/base/gdevjbig2.c
gs/base/gdevjpeg.c
gs/base/gdevjpx.c
gs/base/gdevpdfd.c
gs/base/gdevpdfi.c
gs/base/gdevpdfm.c
gs/base/gdevpdfo.c
gs/base/gdevpdfu.c
gs/base/gdevpdfv.c
gs/base/gdevpsdi.c
gs/base/gdevpsdp.c
gs/base/gdevpsds.c
gs/base/gdevpsdu.c
gs/base/gdevpsim.c
gs/base/genconf.c
gs/base/gsfunc4.c
gs/base/gsptype1.c
gs/base/gsptype2.c
gs/base/gsptype2.h
gs/base/gstrans.c
gs/base/gxclbits.c
gs/base/gxcllzw.c
gs/base/gxclmem.c
gs/base/gxclzlib.c
gs/base/gxcolor2.h
gs/base/gxidata.c
gs/base/gxiscale.c
gs/base/gxpcmap.c
gs/base/scommon.h
gs/base/sdct.h
gs/base/sdctd.c
gs/base/sdcte.c
gs/base/smd5.c
gs/base/spsdf.c
gs/base/ssha2.c
gs/base/stream.c
gs/psi/fapi_ft.c
gs/psi/ifilter.h
gs/psi/ifrpred.h
gs/psi/ifwpred.h
gs/psi/iscan.c
gs/psi/zfapi.c
gs/psi/zfdctd.c
gs/psi/zfdcte.c
gs/psi/zfdecode.c
gs/psi/zfile.c
gs/psi/zfilter.c
gs/psi/zfilter2.c
gs/psi/zfproc.c
gs/psi/zfrsd.c
gs/psi/zmisc1.c
gs/psi/zpcolor.c
gs/psi/zshade.c
pxl/pximage.c
pxl/pxink.c
xps/xpsjpeg.c
xps/xpstiff.c


2011-11-10 11:08:56 -0800
Ray Johnston <ray.johnston@artifex.com>
108bf3d9fd2770c1b97a4eabcd4f09dd13c7fe18

Fix several problems with the 16-bit PS output from gen_ordered.

CLUSTER_UNTESTED

gs/toolbin/halftone/gen_ordered/gen_ordered.c


2011-11-10 10:35:57 -0800
Ray Johnston <ray.johnston@artifex.com>
73770f28c263a514a318aa91af24b26814062bd1

Change options and README for gen_ordered.c and fix 16-bit PS output.

Also add check for missing value for an option (get_arg returning NULL) and add specific 'format' for
16-bit .raw (raw16) (reserving the -b option for number of bits 1, 2, 4) for multi-level threshold
arrays.

CLUSTER_UNTESTED

gs/toolbin/halftone/gen_ordered/README
gs/toolbin/halftone/gen_ordered/gen_ordered.c


2011-11-10 09:01:28 -0800
Ray Johnston <ray.johnston@artifex.com>
cde0561c8ffc71c231a0aeff399852c43ab7a9e8

Move the ordered dither screen creation tool to toolbin/halftone/gen_ordered.

Previously this was buried under the toolbin/color directory. Also by putting it into gen_ordered, we
prepare for the addition of gen_stochastic and threshold_remap tools related halftone tools. Michael
Vrhel as agreed with this change.

CLUSTER_UNTESTED

gs/toolbin/color/halftone/README
gs/toolbin/color/halftone/halfttoning.sln
gs/toolbin/color/halftone/halfttoning/halftone.c
gs/toolbin/color/halftone/halfttoning/halfttoning.vcproj
gs/toolbin/halftone/gen_ordered/README
gs/toolbin/halftone/gen_ordered/gen_ordered.c
gs/toolbin/halftone/gen_ordered/gen_ordered.sln
gs/toolbin/halftone/gen_ordered/gen_ordered.vcproj


2011-08-31 18:39:24 +0100
Robin Watts <Robin.Watts@artifex.com>
1da2a46ed9f6ae0b0afc5fd4417943a36e532171

More work on bug 690538: introduce macros for color rounding.

Introduce new macros to gxcvalue.h header file that defines helpful macros
for colour depth changing.

COLROUND macros do rounding (16->n bits), COLDUP macros do bit duplication
(n->16 bits). Use these macros in various places throughout the code.

Also tweak the gx_color_value_to_byte macro to round in the same way.

Colors for devices that use these functions are now rounded in the same way
that lcms does.

Change as many encode_color routines as I can find to use this new code
rather than simply truncating.

gs/base/gdevbit.c
gs/base/gdevcdj.c
gs/base/gdevdevn.c
gs/base/gdevdsp.c
gs/base/gdevperm.c
gs/base/gdevplan.c
gs/base/gdevplib.c
gs/base/gdevpsd.c
gs/base/gdevrinkj.c
gs/base/gdevtsep.c
gs/base/gdevxcf.c
gs/base/gxblend1.c
gs/base/gxcmap.c
gs/base/gxcvalue.h


2011-11-09 17:46:06 +0000
Robin Watts <robin.watts@artifex.com>
4ccf3ba715990923281126bd9b300aa645d7a1d6

Squash some warnings produced in the last memento fix.

giving me a warning on MSVC).

Remove unused variable.

gs/psi/zmisc.c


2011-11-09 16:29:24 +0000
Ken Sharp <ken.sharp@artifex.com>
36e4f24d76e9f33bf5b531b8bd7d2c31ebee9153

Properly finalize the DCT-writing memory device to avoid memory leaks

Bug #692670 "Ghostscript uses 2 gigs of memory reading file". When writing
images a JPEG the pdfwrite code creates a memory device temporarily. It
was not, however, finalizing the device. Previously this did not cause a
problem, but with the ICC colour work, this left the ICC buffers set up,
causing a ~6Kb per image memory leak.

This commit explicitly finalizes the device, which frees the memory and
gets rid of the leak.

No differences expected

gs/base/gdevpsdi.c


2011-11-09 13:12:49 +0000
Robin Watts <robin.watts@artifex.com>
136065f0fcaa871376561a1c81c16c7d9b2bb3c7

Memento 'list blocks' tweaks.

Make Memento_listBlocks() function non-static.

Add new Memento_listNewBlocks() function.

Add flags word to Memento block header, only 1 bit of which is used
curently (to indicate that a block is new since the last listNewBlocks
call).

Add .mementolistnewblocks postscript operator.

Add (commented out) code in gs_init.ps to call vmreclaim and then
.mementolistnewblocks at the end of each showpage. This allows
tracking of blocks that 'leak' during each page (where 'leak' doesn't
necessarily mean truly leak).

gs/Resource/Init/gs_init.ps
gs/base/memento.c
gs/base/memento.h
gs/psi/zmisc.c


2011-11-08 08:25:13 +0000
Ken Sharp <ken.sharp@artifex.com>
138d68e2d7dd5567c7a24740ec71858e24342a1f

Fix type 1 font copying code SEAC scanner.

When embedding type 1/CFF fotns the code scans the glyphs to see is any of
them are SEAC (Single Encoding Accented Characters) glyphs and expands
them if they are.

The CFF parsing was skipping over the 'shotint' operator (itself an awful hack)
instead of pushing the value onto the stack. If the shortint was the index
for a /Subr this led to the wrong Subr being called. Because Subrs expect
parameters on the stack, calling the wrong one leads to stack cuorruption
and in this case caused a crash.

No differences expected.

gs/base/gxtype1.c


2011-11-08 02:40:09 -0500
Alex Cherepanov <alex.cherepanov@artifex.com>
3c5ba8fd910be3985212b104f2c111556db4b871

Bug 692648: dead code in gdevcp50.c

Remove ineffective error checks after functiom calls. Real error
processing is done at the end of the function, when device is
closed. Found by Coverity.

gs/base/gdevcp50.c


2011-11-08 02:16:57 -0500
Tim Waugh <twaugh@redhat.com>
5915259f6800b600fff1af9e4d40f5dddee8f477

Bug 692649: dead code in gxi12bit.c and gxicolor.c

The dead fragments are rudiments (rather than logic problems)
and so can be safely removed. Found by Coverity.

gs/base/gxi12bit.c
gs/base/gxicolor.c


2011-11-08 01:57:42 -0500
Alex Cherepanov <alex.cherepanov@artifex.com>
724390c14c6f52489d83df18f7cfcd6a4be7bced

Bug 692647: Mistaken comparison instead of assignment.

Fix two obvious typos in a contributed Japanese driver.

gs/contrib/japanese/gdevmjc.c


2011-11-08 01:33:49 -0500
Alex Cherepanov <alex.cherepanov@artifex.com>
595309e7b1883b985756510ee210bd3176a0da3a

Bug 692598: bad sizeof() usage in gxfcopy.c

Use the right type to calculate the size of an array of unsigned long.
Old code used sizeof(gs_glyph *) instead of sizeof(unsigned long).
Memory corruption was possible when sizeof(long) > sizeof(void *).
The problem was found by Coverity.

gs/base/gxfcopy.c


2011-11-08 01:26:56 -0500
Alex Cherepanov <alex.cherepanov@artifex.com>
4a6124a3870a07ff19562559e6d155560d22c01d

Fix a typo s/elseif/elsif/ in clusterpush.pl

gs/toolbin/localcluster/clusterpush.pl


2011-11-07 10:53:09 -0700
Henry Stiles <henry.stiles@artifex.com>
91ce46e08ae37a9c5116bc379b7712c10df5a8f2

Fix 692614 - the unsolid pattern should be used when the gl/2 white
pattern is specified. Also, progressions noted in PCL5 CET 32-01.

pcl/pcpatrn.c


2011-11-07 16:52:38 +0000
Robin Watts <robin.watts@artifex.com>
a4230e24b386ac647b0562cb2bf34c25043a1903

Change to clusterpush to allow filters.

Change here (and throughout cluster code) to allow filtering of the jobs
to be scheduled.

Rather than simply doing:

clusterpush.pl gs

you can now do:

clusterpush.pl gs filter=ppmraw

and have it only test the ppmraw files. Or you can specifiy a list
of filters that must all pass:

clusterpush.pl xps filter=ppmraw,xpsfts-a4

This will test the xpsfts-a4 files through the ppmraw device only.
Or you can specify several filters to broaden the scope:

clusterpush.pl gs filter=ppmraw,72 filter=pgmraw,300

And it will test ppmraw files at 72 dpi and pgmraw files at 300dpi.

The filtering is done on the 'test' string formed by the cluster
code (that is, test__file__path.device.res.band)

gs/toolbin/localcluster/clusterpush.pl


2011-11-07 12:10:16 +0000
Robin Watts <robin.watts@artifex.com>
ab54e1549793df22e0eddf43033494ea6ab0544b

Fix for (part of) Bug 692513. (xps pattern white lines)

XPS renders with the "pixel centres covered" rule, rather than the
"any part of a pixel" rule. As such fill_adjust is 0. This exposes
limitations in ghostscripts pattern tile handling code.

When we come to create a pattern tile, if the pattern is (for instance)
7.5x7.5 device pixels in size, we round this to the nearest integer
and end up with an 8x8 pattern tile. For PS/PDF (which has a non zero
fill_adjust) the pattern will still cause the entire range of pattern
pixels to be drawn.

With XPS (and it's 0 fill_adjust) the patterns frequently leave gaps
around the edge of the enlarged tile, resulting in white lines in the
final image.

My first attempt at a fix for this was to scale the pattern up by
the appropriate amount to ensure it filled the pattern tile (8/7.5
in the example). This works, but causes thousands of diffs; having
examined them all in a bmpcmp, it feels like a win, to me.

However, consulting with Tor and Michael and checking the XPS spec
leads me to believe that that we shouldn't be using TilingType 1
anyway; xps patterns are supposed to be accurately positioned (if not
accurately rendered). As such we should be using TilingType 2.

The patch here therefore forces XPS to use TilingType 2. This does not
solve the problem in itself, as we can still get these white lines.
Furthermore the definition of what TilingType 2 does in postscript
prohibits us from scaling the pattern cell.

The solution adopted here, therefore, is to spot that we are using
TilingType 2, and a fill adjust of 0, and to translate the pattern
by half the change in size; this should ensure that 'edge to edge'
pattern cells should cover all the pixel centres appropriate and
the white lines should disappear.

This appears to work except for one disappearing grid in Page 2 of
tests_private/xps/xpsfts-a4/fts_01xx.xps.ppmraw.72.0. I will look
into this before pushing this commit.

gs/base/gscoord.c
gs/base/gscoord.h
gs/base/gsptype1.c
xps/xpstile.c


2011-11-06 13:54:03 -0800
Ray Johnston <ray.johnston@artifex.com>
61074849e40ec86302e06bf0ef18f0872f8cf99a

Fix bug 692623. clist_get_data and clist_put_data changed to use int64_t offset.

The above functions are used by gx_dc_pattern_read_raster and gx_dc_pattern_write_raster
which are instances of the dev_color_proc_read and dev_color_proc_write procs of the
gx_device_color_type_s struct. The definitions for all color types is changed to use
int64_t (as well as the prototype) and the stdint_.h is added to gxdcolor.h.

gs/base/gsptype1.c
gs/base/gxcht.c
gs/base/gxclist.c
gs/base/gxclist.h
gs/base/gxdcolor.c
gs/base/gxdcolor.h
gs/base/gxht.c
gs/base/gxwts.c
gs/base/lib.mak


2011-11-07 13:28:56 +0000
Ken Sharp <ken.sharp@artifex.com>
b9bcbb7d1ae61b2ccf5a6761a176ead71d327d27

Fix a couple of benign compiler warnings.

gs/base/gdevpdtw.c


2011-11-07 02:17:07 -0500
Tim Waugh <twaugh@redhat.com>
d1440326b1ef9a8aa539e9a2a6f8d0c32b1e879b

Bug 692651: fix possible 0 dereference in error handler.

At the end of gstate_alloc_parts(), gstate_free_parts() might be
called with parts->path == 0; but gx_path_free() will de-reference it.
Found using Coverity.

gs/base/gsstate.c


2011-11-07 10:48:42 +0000
Chris Liddell <chris.liddell@artifex.com>
c4e3f9c1d245e374eb30cc179e27bdcd2746812c

Bug 692661: setup dict and op stacks for executing a "charproc"

When an (invalid!!) Type 1 font has a procedure instead of a charstring
we weren't setting up the stacks correctly in FAPI before executing the
proc.

No cluster differences.

gs/psi/zfapi.c


2011-11-07 09:57:41 +0000
Ken Sharp <ken.sharp@artifex.com>
63a5fe390d2534f6b48e2dd58f46ed9941582e83

pdfwrite - Improve font naming when standard fonts are not embedded.

Bug #692608; When the input is PCL, 'standard' font names are used (eg Courier),
and font embedding is false, the output PDF file contains the names of the
URW fonts which are used as substittues for the standard fonts.

This means that the resulting PDF needs to be read on a system with URW fonts
installed, or the fonts will be substituted, which may result in poor choices.

By instead embedding the correct original (standard) font name we can get
better substitution.

Thanks to Hin-Tak Leung for the original work and the patch which has been
adopted with slight modifications to pacify compilers.

No diffreences expected.

gs/base/gdevpdtb.c
gs/base/gdevpdtb.h
gs/base/gdevpdtd.c
gs/base/gdevpdtw.c


2011-11-07 00:27:34 -0500
Tim Waugh <twaugh@redhat.com>
184e6fe81072d94489223ce4d4a9ba085843258c

Bug 692653: fix base pattern color space check.

Old code tested an uninitialized value instead of the base color
space, found using Coverity.

gs/base/gsptype1.c


2011-11-06 10:59:41 +0000
Chris Liddell <chris.liddell@artifex.com>
850145bc08fd8ebcc4cc9c6827cde750d9ed9acf

Bug 692470: remove sscanf() in CFF code

On Linux (at least) the locale affects the behaviour of sscanf(): certain
languages use a comma (",") for the decimal point, rather than a full stop
("."). Setting one of those locales (such as Spanish) causes sscanf() to fail
when parsing a number with a fractional component in the CFF interpreter.

Replace the sscanf() call in the CFF interpreter with a call to Ghostscript
PS interpreter's internal scan_number() function which is unaffected by locale.

No cluster differences.

gs/psi/zfont2.c


2011-11-04 10:02:38 +0000
Chris Liddell <chris.liddell@artifex.com>
2a3a329ab0ee0e2f4971ee0327ae78d532399619

Bug 692646: remove bad call to memcmp()

The memcmp() to compare the matrices (to decide if we need to rescale the font)
was the address of the pointer to the matrix, rather than the pointer itself.

This change addresses that by changing the memcmp() to an explicit check for
the equality of each element of the arrays. The reason I've opted for this is
because, for example, [1 -0 0 1 0 0] == [1 0 0 1 0 0] which an explicit
equality check will evaluate correctly, but a memcmp() will fail the check.

This causes what seems to be a progression in comparefiles/Bug689006.pdf.
Other than that, no cluster differences are expected.

gs/psi/zfapi.c


2011-11-03 18:00:41 +0000
Chris Liddell <chris.liddell@artifex.com>
42146da35d49aa1debc683d7285fcd8cefc1f9f8

Let configure check for time.h

Recent Linux distributions defeat the check in unix-aux.mak for sys/time.h
with the hard coded path. So have configure check for it, and its
setting take precedence over the unix-aux.mak.

No cluster differences.

config.mak.in
configure.ac


2011-11-02 19:32:04 +0000
Robin Watts <robin.watts@artifex.com>
d42d005f6adcb9e6911418a6b61c43df87fb7513

Fix for (part of) bug 692513.

When drawing the a radial shading, we approximate the join between the
two circles by 4 tensor patches based on joining the 4 quadrants of
the circles in question. The order in which these were being drawn was
causing unexpected overwriting of pixels.

Here I have rejigged the order in which they are drawn to solve the
problem.

Cluster testing shows various progressions, and only one regression.
This has been noted as Bug 692657, and shows signs of it being an
independent bug.

gs/base/gxshade1.c


2011-11-02 19:34:50 +0000
Robin Watts <robin.watts@artifex.com>
1bcd6274fbe15784fa0726f234b0608b994abbd7

Fix MEMENTO build; pacify valgrind code was in the wrong place.

I'd added a memset to pacify valgrind, but had left it in the
middle of variable declarations; gcc was accepting this, but
MSVC was (rightly) complaining. Simple fix is to move it down.

CLUSTER_UNTESTED as cluster does not test MEMENTO builds.

gs/base/gxcht.c


2011-11-03 11:11:27 +0000
Ken Sharp <ken.sharp@artifex.com>
cc592c4162673a99932cdcdc64b39e0abe5aff9e

Further enhance txtwrite output; detect blocks of text.

Yet another output mode for txtwrite will now attempt to detect blocks of
text and output the blocks. This is similar to the MuPDF '-ttt' output
but, since the algorithm is entirely different, the output will not be
identical.

Updated the documentation in devices.htm.

No differences expected, txtwrite is not regression tested.

gs/base/gdevtxtw.c
gs/doc/Devices.htm


2011-11-02 15:10:25 -0700
Michael Vrhel <michael.vrhel@artifex.com>
65486b6c7533f0be9e15a8380729fdb5032e0bef

Fix for bug 692639. PDF14 mono device initialization.

With the fix of the max_gray initialization in pdf14 device to avoid halftoning during interpolation of images (see description in 2b91a85069d421465220a83c82ea491733d15017)
a conflict occurred when checking if the device was separable and
linear. Setting of the dither_grays for the pdf14 gray device
fixes this issue.

gs/base/gdevp14.c


2011-10-31 12:36:29 +0000
Robin Watts <robin.watts@artifex.com>
e4a9ab0594ccb8beb43c0bc83ba0b41deeb128ff

Fix stroke_adjust logic; apply adjust in fewer cases.

In 'adjust_stroke', we decide whether to apply stroke adjustment or not.
With the logic as it stands, the only time we DO NOT apply stroke
adjustment is when stroke adjustment is disabled, AND we have a diagonal
stroke segment.

My understanding of stroke adjustment is that it is only supposed to
apply when we have a horizontal or vertical line, AND when it is
configured on. In line with this, I have changed the logic so that
we DO NOT apply stroke adjustment either when stroke adjustment is
disable, OR we have a diagonal stroke segment.

This produces many thousands of differences in the cluster testing, but
having looked through the first bmpcmp load of them (1000 files), they
all look to be exactly as expected with no changes so horrific as to
stop this commit.

gs/base/gxstroke.c


2011-10-30 02:45:48 -0400
Tim Waugh <twaugh@redhat.com>
78727e97d82435052df2f8e0333e47671bafbc59

Bug 692594: gdevijs: add missing error check.

Add missing error check, found using Coverity.

gs/base/gdevijs.c


2011-10-30 00:20:30 -0400
Tim Waugh <twaugh@redhat.com>
8adebdf0f6e87f36792637ff88db874ea86fd803

Bug 692596: fix memory leaks in rinkj-epson870.c.

There were a few memory leaks in rinkj-epson870.c in error handling
branches, found using Coverity.

gs/base/rinkj/rinkj-epson870.c


2011-10-29 23:46:28 -0400
Tim Waugh <twaugh@redhat.com>
af01406940d211167c202cbc54c3ff7ad31d5c0e

Bug 692595: fix memory leaks in gp_unix_cache.c

There were some memory leaks in gp_unix_cache.c, found using Coverity.

gs/base/gp_unix_cache.c


2011-10-29 20:03:40 -0700
Marcos H. Woehrmann <marcos.woehrmann@artifex.com>
9c803e62759fd9d38c088aa8c24d71640ecfb51d

Added a final return to --debug message.

gs/base/gsmisc.c


2011-10-29 21:54:51 -0400
Tim Waugh <twaugh@redhat.com>
66567074a91d05a27f2439cbcc43e2d2301a776f

Bug 692597: bad sizeof() usage in base/sdcparam.c

Taking sizeof() of an array parameter gives the size of the pointer,
not the array; found using Coverity.

gs/base/sdcparam.c


2011-10-29 18:14:14 -0400
Tim Waugh <twaugh@redhat.com>
4c00d4bc5eb87191674463af9444c457ac361c07

Bug 692599: fix bad sizeof() usage in base/sha2.c

sizeof() was being used incorrectly in base/sha2.c,
found using Coverity.

gs/base/sha2.c


2011-10-29 14:09:56 -0400
Alex Cherepanov <alex.cherepanov@artifex.com>
6116f7e9633c7c112c09c048b317de34c060ba5b

Bug 692502: add missing dereference of an indirect object.

Fix access to indirect /Names and /Nums objects in name and number
trees, respectively.

gs/Resource/Init/pdf_base.ps


2011-10-29 16:47:58 +0100
Chris Liddell <chris.liddell@artifex.com>
d8089a9dcf0971a1131f8391049c602a61852f65

Bug 692634: handle skipping "cached" outline glyphs

Avoid trying to access a FAPI outline when glyph scaling has collapsed to zero.

No cluster differences.

gs/psi/zfapi.c


2011-10-28 15:45:56 +0100
Robin Watts <robin.watts@artifex.com>
38e7372c539bcc6174c42be2d438d8311da2cff2

Fix ppm color reversal in bmpcmp.

When I did the recent speedups, I inadvertantly reversed the rgb order
when reading ppm files. Fixed here.

gs/toolbin/bmpcmp.c


2011-10-28 01:59:47 -0400
Alex Cherepanov <alex.cherepanov@artifex.com>
6dc04dcacd37256f8d0c61cec49975ba67297873

Bug 692590: Ignore self-referencing /SMask attribute.

Check whether /SMask attribute points to its own dictionary and
ignore it when it does.

gs/Resource/Init/pdf_draw.ps


2011-10-19 13:26:44 -0700
Ray Johnston <ray.johnston@artifex.com>
7b2b1f7f7989ab0106627f420e7a4848619355df

Fix enhancement bug 692615: Create a platform specific hook to set the serialnumber

The main change is to add the hook, but for common platforms, try to get a reasonably
unique serialnumber based on the hardware (we hope). Initial platform in this patch is
only Windows. We would like to support linux/unix and mac OS/X. If the mechanism fails,
just return gs_serialnumber set from GS_SERIALNUMBER in gscdefs.c

gs/base/gp.h
gs/base/gp_dvx.c
gs/base/gp_mac.c
gs/base/gp_msdos.c
gs/base/gp_os2.c
gs/base/gp_unix.c
gs/base/gp_vms.c
gs/base/gp_wgetv.c
gs/psi/imain.c
gs/psi/zmisc.c


2011-10-22 23:51:42 -0700
Michael Vrhel <michael.vrhel@artifex.com>
2b91a85069d421465220a83c82ea491733d15017

Fix for Bug 692505 XPS patterns with transparency.

There were essentially three issues two in the xps interpreter and one in the graphics library.

First in the xps interpreter we need to know if the pattern object has transparency and to
set up the pattern object for the graphics library so that the graphics library will
know to push the pdf14 device on the pattern accumulator object.

We also had the issue that we were not undoing the pre-multiplied alpha in the tiff image
in the interpreter.

Second issue is that in ghostscript, we call pattern_paint_finish from
the pdf interpreter when we are all done setting things up for the pattern. This is now
handled prior to the call before gx_pattern_cache_add_entry which is where it is done in
pattern_paint_finish.

Also, some debugging of the mask stack was added in gdevp14.c. This was needed to track down
a bug that become visible when I added in the pattern transparency support. The issue
was that the parent PDF14 device may often have a valid soft mask in its mask stack if there
had been a previous soft mask push. Since we made the soft mask state be part of the q Q
operations in the PDF interpreter (the soft mask is actually part of the extended graphics state
in PDF), we have to make sure to pop the soft mask we we are all
done using it in the XPS interpreter. I added the appropriate commands for that.

There was also an issue that cropped up with the pdf14 device and the interaction of the image
interpolation code. We always interpolate image in XPS and it turned out that if we had an
opacity mask pattern created with an image we installed a gray pdf14 device for the pattern.
The interpolation code was incorrectly using halftoning for the pdf14 gray device due to the
color info settings in that device.

This commit results in many progressions in PDF and XPS (450 differences). In PDF, if the
target was a gray devices and the content had
interpolated images with transparency we see progressions due to the fact that we were improperly
halftoning the images when the trans device is a contone device. In XPS, several missing
figures now are visible and we correctly handle tiling with objects that have transparency.

gs/base/gdevp14.c
gs/base/gxpcmap.c
gs/base/lib.mak
xps/xpsgradient.c
xps/xpsimage.c
xps/xpsopacity.c
xps/xpstile.c


2011-10-27 13:44:05 +0100
Robin Watts <robin.watts@artifex.com>
58722d520578050aad3d81c0f5fb477bc701a944

Fix warning; initial_decode was declared to return an int rather than void.

initial_decode never returns a value, neither does any caller check for
one. Change it to be void.

gs/base/gxiscale.c


2011-10-27 13:24:08 +0100
Robin Watts <robin.watts@artifex.com>
f75ccf57f4d052652204f6508f4f9949d3448840

Correct direction of implication for gs_debug_flags.

I had incorrectly implemented the implication table; a => A rather than
A => a. Corrected here.

CLUSTER_UNTESTED

gs/base/gdbflags.h
gs/base/gdebug.h
gs/base/gsmisc.c


2011-10-27 10:42:18 +0100
Ken Sharp <ken.sharp@artifex.com>
59b1c64adb147a209b6468a669146edf13973a4b

Make txtwrite 'XML' output compatible with MuPDF output.

The txtwrite device now outputs 'XML' (something like XML) in a compatible
fashion to the '-ttt' output from MuPDF. It does not yet attempt to create
blocks of text, it just outputs the data it received as it received it,
there is no ordering of the data whatsoever. The format is compatible with
the MuPDF format though.

No differences expected, txtwrie is not cluster tested.

gs/base/gdevtxtw.c


2011-10-24 16:07:50 -0700
Ray Johnston <ray.johnston@artifex.com>
97e6cdad5061fe92d16aae87524fe985c8436796

Fix bug 692618. Crash and Object not in any chunk error and VMerror.

Actually two problems showed up after the previous commit related to this bug. A crash
could occur (or cause "Object not in any chunk") because the pdf14 device did not use
stable_memory for separation names. The second issue was a VMerror when the decision
for banded (clist) mode was flawed, because if the device supported separations the
estimates for transparency buffers was too small because the call to
gdev_prn_allocate_memory was sometimes called with new_width, hew_height = 0,0 which
expected the 0,0 to be ignored. The new_width and new_height are only used from
gdev_prn_reallocate_memory.

The non-encodable pixel issue still remains.

gs/base/gdevmem.c
gs/base/gdevp14.c
gs/base/gdevprn.c
gs/base/gstrans.h
gs/base/lib.mak


2011-10-26 16:40:30 +0100
Chris Liddell <chris.liddell@artifex.com>
cf8815855af78ddc9d4d9bebafbb21bff603e71d

Bug 692605: resolve FAPI/UFST matrix clash

The Microtype fonts require a unit design grid, but many jobs assume that the
standard fonts set have a design grid of 1000x1000. For those two conflicting
requirements to be satisfied, the UFST integration layer has to compensate
for the scaling.

As usual with the UFST code, that exposed a host of other problems, including
failing to produce a bitmap sometimes when one is require for the glyph cache
and failing to handle a glyph too big for UFST to image (i.e. fallback to an
outline) in some cases.

No cluster differences expected.

gs/Resource/Init/gs_fapi.ps
gs/psi/fapiufst.c
gs/psi/zfapi.c


2011-10-25 20:30:29 +0100
Robin Watts <robin.watts@artifex.com>
8e8f10150dd2404757d648a1568c1002dd5310b4

More gs_debug_flags fixes.

Today, I am less than competent. Hopefully this will fix it.

My previous attempt to move gs_debug_flags from header to c file was
thrwarted by my missing an 'extern' out.

This now compiles on both linux and windows without warnings, I think.

gs/base/gdebug.h


2011-10-25 20:19:24 +0100
Robin Watts <robin.watts@artifex.com>
b5f56c0c13c92232c9f77b548476fa10f1aec28f

Fix silly mistake in gs_debug_flags changes.

I'd inadvertently caused the gs_debug_flags tables to be built in every
object that included gdebug.h.

Move them into gsmisc.c.

gs/base/gdebug.h
gs/base/gsmisc.c


2011-10-25 19:37:52 +0100
Robin Watts <robin.watts@artifex.com>
f1a8b636cc4fe9419b31ed21c62b6e8d40fa4f1e

Fix warning; remove static definition for non-existent function.

I added, then removed a function, and left a static prototype in place
that was causing a warning. Remove that.

CLUSTER_UNTESTED.

gs/psi/imainarg.c


2011-10-25 19:04:13 +0100
Robin Watts <robin.watts@artifex.com>
370a5fae98c76c76df84ad35f79ce849a7ecf015

Add 'implication' table for gs_debug operations.

Previously setting an upper case debug flag would imply the lower case
equivalent. Now we extend (break) that system so that any flag can
imply any other flag (and indeed we can have a chain of implied flags).

This frees up lots of uppercase flags for us to use.

gs/base/gdbflags.h
gs/base/gdebug.h
gs/base/gsmisc.c


2011-10-25 16:27:57 +0100
Robin Watts <robin.watts@artifex.com>
d644cdc4b16cb92a70af3fea16c40cd39bc700a6

Add new 'long form' debugging flags.

Add a table of 'known' debugging flags to ghostscript (gdbflags.h). These
list all the currently defined -Z flags, together with 'long form' names
for them (i.e. --debug=tiling will do the same as -Zt).

Add a new routine to list the known flags (and hook this up so that
--debug on the command line lists the flags).

Add a new routine to parse a set of flags passed to --define= on the
command line (and hook that up).

The code that does:

if_debug6('c',...)

all remains unchanged, but we now have the ability to add new flags,
and to do:

if_debug6(gs_debug_flag_whatever, ...)

in the same way. This frees us from the limitations of only having
a limited number of easily representable 'character' flags.

gs/base/gdbflags.h
gs/base/gdebug.h
gs/base/gsmisc.c
gs/doc/Use.htm
gs/ghostscript.vcproj
gs/psi/imainarg.c
pl/plmain.c


2011-10-17 21:12:40 +0100
Robin Watts <Robin.Watts@artifex.com>
b7bcf1a9efdbcd8c0ebac2eeece8c81f61d18396

Tiny whitespace fix.

CLUSTER_UNTESTED.

gs/base/gxicolor.c


2011-10-25 08:28:31 -0600
Henry Stiles <henry.stiles@artifex.com>
f9f50966fe6baecb1c9ebefa44594e7c21d9d194

Make common warning message only output when pcl font parsing
debugging is enabled (-Z=).

CLUSTER_UNTESTED

pl/plfont.c


2011-10-25 10:05:53 +0100
Ken Sharp <ken.sharp@artifex.com>
cf7e75532e0f16c819954b71a686fb5b83c47c61

Add UTF-8 as an output option to the txtwrite device.

The TextFormat parameter now has three values; 0, 1 or 2 to allow for 'XML'
output with full information, simple UCS2 or simple UTF-8 output.

Altered the meanings of the TextFormat so that 0 is now the 'XML' output
which allows a more sensible selection of 1 for UCS2 or 2 for UTF-8, since
these output foramts are otherwise identical. Modified the default to be
'2' (UTF-8).

Updated the documentation in devices.htm.

Also removed a number of C++ comments.

No differences expected, this device is not cluster tested.

gs/base/gdevtxtw.c
gs/doc/Devices.htm


2011-10-24 16:48:44 +0100
Ken Sharp <ken.sharp@artifex.com>
b5fa52b7e60a7eb23b77c4fd117ed37eb04263b5

Bug #692621 Ensure that when copying width information, we create an array as large as the new MaxCID value

Commit 312255297353a9f62b5090e9137586a8ecfc8601 create the new MaxCID entry
for CIDFont type 0 fonts which use a GlyphDirectory. We must use the same
value when creating the arrays to store the widths of the glyphs, or we will
no have a large enough array, leading to soem glyphs getting the Default Width.

No differences expected

gs/base/gdevpdtt.c


2011-10-22 19:43:48 -0400
Alex Cherepanov <alex.cherepanov@artifex.com>
33e827eb32d282a550e2f7a9fdb786dd777b0903

Bug 692622: spurious warnings on Indexed colour spaces.

Fix indexed color space processing code that miscalculated
the length of an index table when the table stream was compressed.

gs/Resource/Init/pdf_draw.ps


2011-10-20 22:11:00 -0700
Ray Johnston <ray.johnston@artifex.com>
7ebbcae24116a37b2f32f52bc7330383752f903f

Fix bug 692618. Clear pointers to compressed color structured in pdf14 device.

After the devn compressed color structures were freed, the pointers were not reset to
NULL so subsequent GC would trace into freed or re-used memory. -Z? showed errors and,
depending on memory contents and usage could result in a seg fault. Also add 'mem'
element to the compressed_color_list structure to be used when freeing to avoid
confusion about the correct allocator.

Issue with non-encodable colors is _not_ fixed by this, only the segfault.

gs/base/gdevdevn.c
gs/base/gdevdevn.h
gs/base/gdevp14.c


2011-10-21 23:27:50 -0700
Michael Vrhel <michael.vrhel@artifex.com>
a298a05dcf4ce3f1f530759680a2f65c3e72e3fc

Fix to handle tiff associated alpha images correctly in XPS

TIFF images in XPS can come with an alpha channel that may or may
not be premultiplied. In our existing XPS flow, we currently store
the alpha channel in a separate channel and treat it as an image mask
in the graphics library. This is fine, but if the image data was
premultiplied by the alpha data, we will need to undo this operation
otherwise we end up applying the mask on image data that is already
scaled by the alpha data.

xps/xpstiff.c


2011-10-21 10:52:26 +0100
Ken Sharp <ken.sharp@artifex.com>
312255297353a9f62b5090e9137586a8ecfc8601

Font copying does not work with CIDFonts using dictioanry form of GlyphDirectory

Bug #692573, the font copying code uses 'slots' to record glyph data, which
are entries in an array. The index into the array can be a name or a CID.

This assumes that CIDCount (the number of glyphs in the font) is the same as
the maximum CID (ie the range is continuous), which is generally true.
However, the dictionary form of GlyphDirectory allows for discontinuous CIDs.
This meant that the array was too small to use the CID as an index.

Fixing this efficeintly would mean completely rewriting the code in gxfcopy.c
so that it uses some kind of dictionary structure instead of an array. Instead
I've chosen to find the highest CID in the font (by enumerating the GlyphDirectory)
and use that to create he array with enough entries. Inefficient use of memory
but it saves having to re-architect the code.

The text that was previously missing is now present, and this reveals a new
problem, some of the text is incorrectly spaced after conversion with pdfwrite.
I'll open this as a new bug.

No differences expected

gs/base/gxfcid.h
gs/base/gxfcopy.c
gs/psi/zfcid.c


2011-10-20 23:04:31 -0700
Michael Vrhel <michael.vrhel@artifex.com>
41faddadc03e389f4f1b3c3d9a4f6bdf36ebbfb1

Fix for bug 692511 Dash cap rendering in XPS

There was an issue that we were setting both the end cap and the dash
caps to the starting cap value for the stroke when we went through
clist rendering. Page mode worked correctly. Clusterpush shows no
diffs with XPS rendering since all tests are done in Page mode.

gs/base/gxclpath.c
gs/base/gxclrast.c


2011-10-19 23:27:30 -0700
Michael Vrhel <michael.vrhel@artifex.com>
91dc74950f0a9ce391de0f0f1f0be5220a68db04

Fix for Bug 692510 white space XPS interpreter fix

XPS interpreter was not very robust in its handling of white space in
many locations. I created a general function to handle this in place
of the many uses of sscanf in the interpreter.

xps/ghostxps.h
xps/xpsgradient.c
xps/xpspath.c


2011-10-19 14:53:30 -0700
Michael Vrhel <michael.vrhel@artifex.com>
856eedc584a224bd311fa7688fc29ba487521dfb

Fix for Bug 692509. Issues with parsing of dashed line attributes.

Problem was caused by a space preceding the ending quote, which gave
the dashed line lengths.

xps/xpspath.c


2011-10-19 10:29:18 -0700
Robin Watts <robin@peeves.(none)>
3d3e4f5d6e83539fc5a5877ef6d1e3591ec25c49

Memento buld tweak; valgrind warnings quieted for temporary buffers.

Temporary buffers are used in the planar device and the color halftoning.
These are uninitialised by default, which means that the last 'part byte'
transferred is thought of as being undefined in valgrind.

In memento builds we memset them to 0 to avoid this.

CLUSTER_UNTESTED as memento builds are not testing in the cluster.

gs/base/gdevmpla.c
gs/base/gxcht.c


2011-10-19 10:25:27 -0700
Robin Watts <robin@peeves.(none)>
99f7cf83e2bef8b1d61126c065328f7f91ba1fce

Add some more excludes to the clusterpush.pl rsync.

Specifically, avoid the memento, profiling and 64bit directories
as well as any .pngs.

CLUSTER_UNTESTED.

gs/toolbin/localcluster/clusterpush.pl


2011-10-19 10:23:14 -0700
Robin Watts <robin@peeves.(none)>
bace25f82cd2d84d951a33eb5a9797435f50b836

Remove rop_source member from gxp1fill.c

When set, this member variable was only ever set to be the same as
the 'source' member variable, and then forced to be non-NULL.

By doing this forcing at the last moment, we get exactly the same
behaviour with less confusing code.

No differences shown during cluster testing.

gs/base/gxp1fill.c


2011-10-19 17:31:47 +0100
Chris Liddell <chris.liddell@artifex.com>
e383ccc9e7f56435a8f89cf65125ee1eb6a880e5

Fix FAPI charpath handling.

The way FAPI appended the segments of a charpath to the current path was
incorrect, and in extremely rare cases could cause an error (due to an
attempt to draw outside the established bounding box in the path
structure).

ps3cet/11-20.PS now runs without a "Font Renderer Plugin .... error"

Other than 11-20.PS, no cluster differences expected.

gs/psi/zfapi.c


2011-10-18 22:12:24 -0700
Michael Vrhel <michael.vrhel@artifex.com>
357009d7fc55166a6e8f9da539e1f785d05e9b6c

Maintain 16bit precision in threshold array creation.

Also add option to output either 8bit or 16bit data
including a type 16 halftone dictionary

gs/toolbin/color/halftone/halfttoning/halftone.c


2011-10-17 12:26:17 -0700
Ray Johnston <ray.johnston@artifex.com>
4d0f6ec0fc64eba04cc85693d16bc7158599578b

Fix bug 691978: Ignore PS vmreclaim requests for GC. Only GC when vmthreshold exceeded.

Some poorly designed PostScript creators make liberal use of '2 vmreclaim' which would
trigger a full GC (mark/scan/reloc) pass each time. The document with the bug did this
> 10,000 times. Since the vmthreshold already triggers GC when the allocated amount
exceeds the threshold, we don't need to really do anything when a job requests GC.
Change "internal" (infrequent) interpreter uses to use '2 .vmreclaim'. Speeds up the
file from the bug by 79X !

Also fix areas that didn't update i_ctx_p after running the interpreter (which may do
a GC) and a minor typo in gs.c noticed while scanning for all instances of this.

gs/Resource/Init/gs_init.ps
gs/Resource/Init/gs_lev2.ps
gs/psi/gs.c
gs/psi/idisp.c
gs/psi/imain.c
psi/psitop.c


2011-10-17 20:48:26 -0700
Michael Vrhel <michael.vrhel@artifex.com>
bcfc1a94c76d84511cec09673e220b8bf15823e9

Make it possible to output turn on sequence for ordered dithered screens

This enables us to use the linearize_threshold program that Ray wrote to apply a TRC
to our screen.

gs/toolbin/color/halftone/halfttoning/halftone.c


2011-10-17 15:57:50 -0700
Michael Vrhel <michael.vrhel@artifex.com>
253285f2a4cb681d601817185d6dba083d8b117e

Addition of support for different vertical and horizontal resolution in ordered dithered screen creation.

The support for this was already in place in the code. It was only was a matter of getting the parameters set.

gs/toolbin/color/halftone/halfttoning/halftone.c


2011-10-17 20:15:56 +0100
Robin Watts <Robin.Watts@artifex.com>
312a786bd935908c2c0c0cb428ae066b7f01a8e3

Fix pxlasm.py on windows.

pxlasm.py outputs to stdout. On windows stdout is not binary safe by
default. Fix it with a couple of lines cribbed from stackoverflow.

I have now successfully used pxldis and pxlasm on windows.

tools/pxlasm.py


2011-10-17 11:08:18 +0100
Robin Watts <Robin.Watts@artifex.com>
0f20243b7ec6ea8f6a9b7826ac8ca2e1cebbacda

Fix longstanding color halftone limitation.

gx_dc_ht_colored_fill_rectangle in gxcht.c contains a long standing
limitation (bug/defect), in that when doing strip_copy_rop with
subrectangles, it fails to offset the source samples for each call.
This is noted in the form of a comment.

This is fixed here.

There appears to be an underlying bug in this code (or in the code it
calls) in that the 'optimisation' case (do it all in a single
tile, rather than subdividing) gives different results to the normal
(subdividing) case. See bug 692609.

This can be shown with tests_private/pcl/pcl5cats/Subset/PWEP6SC1.BIN
at 300dpi with or without banding to the plank or pamcmyk4 device.

The limitation that this patch fixes does NOT solve the problem - but
I fixed it in the hopes that it would. Committing the code here as it's
an improvement anyway.

gs/base/gxcht.c


2011-10-17 00:35:20 -0400
Alex Cherepanov <alex.cherepanov@artifex.com>
85e64010450ebafb453b4028356a6ccd20e440b8

Bug 692574: libjasper: creating temp failed due to buffer overflow.

Increase the size of a temp file buffer to accomodate larger path names
needed for mkstemp (instead of tmpnam that was used originally).
Thanks to Henk Jan Priester for the patch.

gs/jasper/src/libjasper/include/jasper/jas_stream.h


2011-10-14 23:00:03 -0700
Michael Vrhel <michael.vrhel@artifex.com>
2e92d2916a189d19213d830956a2e02f7cfb6872

Addition of dot shape specification in ordered dither screen threshold array creation.

This provides a number of example dot shapes including, circles, diamonds, lines and
inverted circles. Also cleaned up the code a bit.

gs/toolbin/color/halftone/halfttoning/halftone.c


2011-10-14 19:17:34 +0100
Ken Sharp <ken.sharp@artifex.com>
9cbeac223ffa44dd6cac3954e1f420501d5f29ae

Silence a clang warning

gs/base/gdevpdtt.c


2011-10-14 17:07:38 +0100
Robin Watts <Robin.Watts@artifex.com>
7b498fc5e1d0532f60e70e244edfc58bbeb18a50

Fix planar device bug; tiles becoming corrupted on gc.

The relocation code for memory devices had not been updated to cope
with planar stuff; as such only the first 'mdev->height' line pointers
were being updated. This was showing up in plank vs pamcmyk4 testing
as some planes of patterns being corrupted.

gs/base/gdevmem.c


2011-10-14 15:17:49 +0100
Ken Sharp <ken.sharp@artifex.com>
419d3f8f787d90a71623b27100972eca64d03cc1

Better preservation of PDF text rendering modes in pdfwrite.

Bug #688267, #692243. The 'swapcolors' is now moved into pdfwrite, instead
of being performed in PostScript in the PDF interpreter. The 'spaced'
variants of show now perform simlar techniques to the 'pdfwrite' text rendering
routines, when teh device supports text rendering modes.

Caveats: pdfwrite always emits text enclosed in gsave/grestore. Because of
this we cannot preserve any of the text rendering modes involoving clipping
as the grestore also restores the clip path! So we subtract 4 from the mode
and emit the text that way, then handle the clip separately.

Because text_process doesn't expect to receive gs_error_Remap_Color errors
(which cause the interpreter to run Pattern PaintProcs usually) we can't
set the stroke colour during text processing (which is how it worked before).
Instead we set the colours during text_begin. We don't actually write the colours
to the PDF file at that point though, because that causes problems synchronising
graphics states. Instead we leave the emission of the colour unchanged, we
just evaluate the colours in text_begin.

There is some weirdness in the PDF interpreter which I do not understand.
Most cases are surrounded by 'currentlinewidth exch.......setlinewidth'
which preserves the current line width in case we have to change it for
stroked text. In one case, however, this causes files to fail with an error.

I have tried without success to unravel the PDF interpreter to figure out
what is going on. Since I can't work it out I have created a dictionary,
stored the linewidth in that, and then pulled it back out and restored at
the end. I did try wrapping a gsave/grestore round the operation (taking
care to preserve the modfified currentpoint) but that caused even more
problems. Again I have no idea why.

I would like Alex to look into this so I'm leaving one of the bugs open
and re-assigning to him. Also he will probably want to reformat the code
I've added to the PDF interpreter.

gs/Resource/Init/pdf_ops.ps
gs/base/gdevpdfb.h
gs/base/gdevpdfg.c
gs/base/gdevpdfx.h
gs/base/gdevpdte.c
gs/base/gdevpdts.c
gs/base/gdevpdts.h
gs/base/gdevpdtt.c
gs/base/gserrors.h


2011-10-14 10:40:27 +0100
Chris Liddell <chris.liddell@artifex.com>
83d6f1c5d048d70e89c3e13ef11f87a28e414a7a

Squash a couple of warning in the previous commit.

No functional change.

CLUSTER_UNTESTED

gs/psi/fapi_ft.c


2011-10-14 10:19:15 +0100
Chris Liddell <chris.liddell@artifex.com>
056c8a6dc2409db6ac06ead1fc1b58b277400b04

Bug 692578: improve FAPI/FT handling of non-square resolutions

The previous code only worked correctly for glyphs rotated by a multiple
of 90 degrees, any interim rotation would show a shearing effect.

We'll now apply the "non-squareness" scaling in the matrix, rather in the
resution which we pass to Freetype. We have to do this because Freetype
treats the resolution as being in "glyph space", which means it is "incorrect"
for any rotated/sheared glyph.

No cluster differences.

gs/psi/fapi_ft.c


2011-10-12 22:16:52 -0700
Ray Johnston <ray.johnston@artifex.com>
b49fc2b7fbd16c81a3480660d27d36ebe94ab6d2

Fix Bug 692584. Fix wrong sprintf format specifier types. Thanks to Arthur Ford.

gs/base/gdevtxtw.c


2011-10-11 16:08:00 -0700
Ray Johnston <ray.johnston@artifex.com>
c5cc5db0746981baaad4c07cca370541254e03be

Fix PDFFitPage when PDF orientation doesn't match page orientation.

There was logic to determine if the pdf Box (after /Rotate is applied) orientation
matches the orientation of the PageSize (landscape vs. portrait), but the rotation to
make the image match the Page orientation was missing. Previously this caused the
scaling to be wrong and caused the image to be clipped. Adding the 90 degree rotate
fixes it. Feature needed by customer 531.

gs/Resource/Init/pdf_main.ps


2011-10-12 20:15:51 +0100
Robin Watts <Robin.Watts@artifex.com>
c6accc37afd5d124c1feaea6481a771f2d1e6662

Solve more plank rop problems with the clist.

In the planar memory device, protect against C's broken %. As we don't
replicate the textures, ensure we only set the size for a single repetition.

When placing new tiles into the clist, ensure we calculate the number of
bytes used correctly (previously reuse of tile n would fail as tile n+1
would have overwritten its data).

gs/base/gdevmpla.c
gs/base/gxclbits.c


2011-10-12 17:22:49 +0100
Chris Liddell <chris.liddell@artifex.com>
0d472d36958ba10ce3e5747f91776ad2d53530c7

Bug 692534: revert to unit matrix for Microtype fonts.

I changed the MT fonts to use a "conventional" Type 1 font matrix to
make a Quality Logic file "work" as expected - it's a daft test which
makes the invalid assumption that the fonts in the standard font set
will *always* use a 1000x1000 design matrix. That assumption is invalid
since nothing in the spec dictates that the standard fonts must be Type 1
(clearly as in this case we're using MT fonts!), nor even that Type 1
fonts have to use a 1000x1000 font matrix.

As the change breaks a valid file, to try to satisfy a file which relies
on an invalid assumption, I'm reverting it.

CLUSTER_UNTESTED.

gs/Resource/Init/gs_fapi.ps
gs/psi/fapiufst.c


2011-10-12 16:59:24 +0100
Chris Liddell <chris.liddell@artifex.com>
1a9f315d20871be0498bd7a1fc94cbd2a47ebc4f

Bug 692550: address scanline alignment in halftone

Apply Ghostscript's usual raster memory alignment to interim
bitmap memory for the threshold halftone code. This ensures
scanlines are correctly aligned for mem_mono_copy_mono(), and
prevents a bus error on SPARC.

No cluster differences expected.

gs/base/gxht_thresh.c


2011-10-12 16:23:45 +0100
Robin Watts <Robin.Watts@artifex.com>
f6ed8f824fc3ca41ba0296131646d10e29657bda

Fix more plank rop problems (shown in plank vs pamcmyk4 testing)

I'd missed one case where we are writing a texture bitmap to the clist,
so we were only writing the first plane.

I'd also missed a case when reading bits back from the clist (showed
up with 1x1 textures).

gs/base/gxclbits.c
gs/base/gxclrast.c


2011-10-12 13:36:22 +0100
Chris Liddell <chris.liddell@artifex.com>
d670fb3473fbb455881125086f649e416ea755fe

Bug 689450: deal with invalid font entry in res dict.

In the event that an entry in a resource dictionary for a font is or
references an invalid object type (i.e. not a dictionary), issue a
warning and use the same logic as we do for a missing font resource.

For this error, we'll also honor the PDFSTOPONERROR setting.

In addition, as I was touching the logic around the same place, this
commit changes the missing font resource case to also honor PDFSTOPONERROR.

No cluster differences expected.

gs/Resource/Init/pdf_font.ps


2011-10-12 00:58:50 +0100
Robin Watts <Robin.Watts@artifex.com>
237f8f0204a7e11db79fa60ec21503cfd0953116

Remove duplicated line from gxicolor.c

In my previous commit I inadvertantly duplicated a line. Fixed here.
No ill effects, but removing for neatness.

gs/base/gxicolor.c


2011-10-11 22:07:39 +0100
Robin Watts <Robin.Watts@artifex.com>
fc7bfc56e9132ade936d92e397cc8820bb8a8115

Fix uninitialised 'num_planes' in texture for strip_copy_rop call.

Was causing some differences in plank vs pamcmyk4 testing.

gs/base/gxcht.c


2011-10-11 10:02:48 -0700
Michael Vrhel <michael.vrhel@artifex.com>
e96836194b0eb6085f59d41feb445d60f946dda9

Fix of bugs in halftone ordered screen creation code

This fixes several bugs. Including fixes for issues with modulo operation on negative numbers,
integer division, faulty logic that prevented maximum lpi screens and non-dithered ordered screens.

gs/toolbin/color/halftone/halfttoning/halftone.c


2011-10-11 17:36:48 +0100
Robin Watts <Robin.Watts@artifex.com>
fecf36b333ddac3e469512be536a498382741003

Fix Bug 692569; SEGV in threshold halftoning code.

penum->xci can be negative in clist rendering of landscape cases.
The % operator in C is broken (or at least counter-intuitive) so
the code goes wrong; fix it up with some tweaks to the logic
afterwards.

In a future commit, we'll move from % 16 to & 15 (does the right thing,
and is a lot faster).

No differences expected.

gs/base/gxicolor.c
gs/base/gximono.c


2011-10-10 11:42:29 -0700
Ray Johnston <ray.johnston@artifex.com>
5ce12e824d7e4cb5e54f8ba730cbf6939d20834e

Fix Bug 692224: Handle transparent background with custom fillpage in pngalpha

The previous hack looked for the entire page being filled with white and then filled
with transparent (0xffffffff). With a pngalpha_fillpage we simply fill with that color
which actually allows the page to be filled with non-transparent white if desired.
Remove the pngalpha_fill_rectangle hack.

gs/base/gdevpng.c


2011-10-09 01:10:38 -0400
Alex Cherepanov <alex.cherepanov@artifex.com>
f790680acba5c1574728d5ff40124f9e27762d2a

Bug 692571: Fix ouf-of-buffer access in Luratech jb2 interface.

Luratech jb2 library can requiet data outside of the input buffer
if it is fed a corrupted data stream. The old code tried to detect
this but failed because of the missed signed-to-unsighed promotion.

gs/base/sjbig2_luratech.c


2011-10-07 21:36:55 +0100
Robin Watts <Robin.Watts@artifex.com>
c760cef454473970972260b5b1c7ab078711e43d

Resolve more plank/pamcmyk4 differences (banding).

When coding planar data into the clist, I'd missed the 'short' case,
and so only the first plane was being coded; this was causing knock
on effects of rectangles being wrong giving large blocks of color
in the output.

gs/base/gxclrast.c


2011-10-07 12:49:09 +0100
Ken Sharp <ken.sharp@artifex.com>
62166be1e0beaa765daf96b77a8e6b1ee99a9b52

Remove the 'return' from the macro gx_set_dev_color

Macros shouldn't do a return, its highly surprising to a developer. In addition
I need access to the return value for pdfwrite, and potentially other
devices may do so as well. In this case the return value is Remap_color
which happens when a Pattern is set.

No differences expected in regression tests.

gs/base/gsdps1.c
gs/base/gsimage.c
gs/base/gspaint.c
gs/base/gstext.c
gs/base/gxccache.c
gs/base/gxdcolor.h
pl/plchar.c
pl/pldraw.c


2011-10-06 07:24:57 -0700
Ray Johnston <ray.johnston@artifex.com>
1225753bd332857b02e546d20bc35d821fd20f58

Improve PDFFitPage to center the PDF Box on the page.

This was requested by customer 531 and seems reasonable. We didn't document exactly
where the PDF was placed on the page after 'fitting', so centering seems like an
acceptable behavior, so I didn't add a command line option to lower/left position.
If we get any complaints, we can add this.

gs/Resource/Init/pdf_main.ps


2011-10-05 11:30:21 -0700
Ray Johnston <ray.johnston@artifex.com>
d5f1e72357d77dbb03abe0442ac8b8b09d27ceb6

Fix bug 692568. Set up initial clist_color_info to match pdf14 device.

For the funky RGBW device, since it is 4 component additive color the pdf14 logic chose
a pdf14_clist_RGB_device which has 3 components and a depth of 24. The clist logic uses
the clist_color_info.depth which was never set correctly to match the pdf14 device (depth
= 24), so it wrote 32-bits and only read 24, causing the clist reader to bomb.

gs/base/gdevp14.c


2011-10-04 10:30:56 -0700
Ray Johnston <ray.johnston@artifex.com>
49e6b0c7144a4a694271e2f24edf03b16ecc14e1

Require CUPS_DEBUG2 to enable noisy gdevcups messages instead of just DEBUG

Using a DEBUG build with the cups device was extremely slow and painful for complex
files. This is easy to enable via build -DCUPS_DEBUG2 or uncommenting the #define
in gdevcups.c

gs/cups/gdevcups.c


2011-10-03 19:51:15 -0700
Michael Vrhel <michael.vrhel@artifex.com>
77e2fb25375f50389bfe6942507a0a513fa83ee9

Fix for Bug 692507

The image interpolation code did not make use of the proper unpacking
routine when the data was 16bit and we were using the faster ICC
based renderer, which avoided the conversion to the frac type.

gs/base/gxino16b.c
gs/base/gxiscale.c


2011-10-03 17:15:53 +0100
Robin Watts <Robin.Watts@artifex.com>
e776cc41b9da0a535adde126464d6af906b082ae

Fix for Bug 692553; SEGV in fast thresholding halftoning code.

Stupid C got the % operation wrong.

In this instance, it gives an unexpected negative value causing out of
bounds offsets. Simple fix is to offset by the period if it's negative.

gs/base/gxht_thresh.c


2011-09-29 19:07:44 +0100
Robin Watts <Robin.Watts@artifex.com>
3420c5c029771eee268d049fe9b6869221b18d48

Add num_planes to gx_strip_bitmap for planar devices.

Here we alter all existing uses (that I can find) to set num_planes
as appropriate.

We update the clist code to encode/decode the new num_planes field. In
order to fit the extra bit required to signal that this is present into
the encoding byte we optimise the representation of depth down to 4 bits
from 5.

We remove the lop_t_is_planar hack as we now have a cleaner scheme for
signalling it.

This should hopefully remove the last differences between pamcmyk4 and
plank.

gs/base/gdevdbit.c
gs/base/gdevdrop.c
gs/base/gdevmpla.c
gs/base/gdevmr2n.c
gs/base/gsptype1.c
gs/base/gsropt.h
gs/base/gxbitmap.h
gs/base/gxcht.c
gs/base/gxclbits.c
gs/base/gxcldev.h
gs/base/gxclimag.c
gs/base/gxclist.h
gs/base/gxclrast.c
gs/base/gxht.c
gs/base/gximage3.c
gs/base/gxp1fill.c
gs/base/gxpcmap.c
gs/doc/Drivers.htm


2011-10-02 22:26:58 -0400
Alex Cherepanov <alex.cherepanov@artifex.com>
8e6d888502506e061241f2cdeb7c3f76d4dfb04f

Bug 692560: read objects with invalid obj# as nulls.

According to PDF spec, objects with invalid object numbers should
be considered null objects. GS finally implements this.

gs/Resource/Init/pdf_base.ps
gs/Resource/Init/pdf_main.ps


2011-09-30 12:46:53 -0700
Michael Vrhel <michael.vrhel@artifex.com>
3380bef5e77ddfaa8aab496a4da13fd297480bd1

Fix for bug 692558

Issue was that the pdf14 device profile was getting set from an ICC profile that
was contained in the source profile for the transparency group. This needs to
be detected when we are getting the device parameters.

gs/base/gsdparam.c


2011-09-30 17:52:57 +0100
Chris Liddell <chris.liddell@artifex.com>
b39b7cbfcf8719b9f41153ccf6172fbf8f800642

Some tweaks to allow "make so" to build in Mac OSX.

The change still results in a ".so" object file, rather than usual Mac
".dylib" file, but other than the name, they are internally identical.

No cluster differences.

gs/base/Makefile.in
gs/base/configure.ac
gs/base/unix-dll.mak


2011-09-30 16:00:51 +0100
Chris Liddell <chris.liddell@artifex.com>
b295fcef1b5a32e299f50f99248ae05099bd757d

Remove the option to build with an external LCMS

Given the extent which our bundled LittleCMS has diverged from the
official release, remove the capability to build with another, at least
until there is an lcms release incorprating the fixes we require.

No cluster differences

gs/base/Makefile.in
gs/base/configure.ac


2011-09-30 10:30:05 +0100
Chris Liddell <chris.liddell@artifex.com>
54ee17d027c6be432a742ca5d313a56ac317361f

Bug 692561: fix handling of tr 3 in setshowstate

In setshowstate we have to work around buggy PDFs in a manner which
means we "show" the text in question, but then rely on a charpath
operation to update the current point accurately. The problem was
that the currentpoint had already been updated by the show operation.

This change ensures we return the currentpoint to the correct position
before doing to charpath to get the accurate text advance.

No cluster differences.

gs/Resource/Init/pdf_ops.ps


2011-09-29 15:45:04 -0400
Alex Cherepanov <alex.cherepanov@artifex.com>
63f2476edccc4860312737b61e86c929c340cb72

Bug 692557: Tolerate null XObjects

Check for null XObjects during PDF resource enumeration and
ignore them. Since null objects can appear anywhere in PDF file,
the sample file was OK, but GS didn't handle this case before.

gs/Resource/Init/pdf_main.ps


2011-09-28 20:44:53 -0700
Michael Vrhel <michael.vrhel@artifex.com>
03b20ec31afa843d5a4bac878568f60abcdea5fc

Fix for Bug 692494 and Bug 692433. Overprint issues.

The fix for bug 692494 involved making sure that we use the original floating point values in
determining if we have a nonzero component so that overprint mode occurs properly
for very small values. Thanks to Ken and Ray for the initial analysis on this bug.

A study of 692433 revealed that AR does not do overprint simulation when the source
ICC profile does not match the destination profile. To test this, I created a
test file that had 2 overlapping fills with CMYK values that were specified by
SWOP CMYK values. If the simulation profile in AR matched this profile, then overprinting
was properly displayed by AR. If not, then overprinting was not displayed. This
makes sense as the overprinted inks really should be in the color space for the
target device. Hence, if the source and destination profiles do not match we will
not be showing overprint This test file is called overprint_icc.pdf and will be added to
our test files.

gs/base/gscspace.c


2011-09-29 16:15:01 +0100
Robin Watts <Robin.Watts@artifex.com>
86bd5228ef5f88b747dd228a4b90938d3c9defa5

Speed optimisations to bmpcmp

pam/pnm/pgm reading was using repeated fgetc calls. Change it here to
use fread and then shuffle the buffer around.

gs/toolbin/bmpcmp.c


2011-09-29 16:03:06 +0100
Robin Watts <Robin.Watts@artifex.com>
9b60dc77805746ca685e272abe9b3f056320d612

Partial fix for planar device pattern rop problems.

plank vs pamcmyk4 tests have revealed various files still rendering wrongly
in plank format. These are to do with a halftone being rendered as a pattern
and then used as part of a rop.

Specifically, if the 'rop source' device is used, then it is fed a pattern
tile that is in planar format. When this calls strip_copy_rop, the pattern
tiles data is used as the 'T' field; strip_copy_rop assumes that both T
and S are always in chunky format, and so garbage is read for the T plane.

The fix, implemented here, is to spot that the pattern tile is planar, and
to set a new bit (lop_t_is_planar) in the lop to indicate this fact. The
planar device can then catch this bit and can handle it.

Currently, this is implemented by doing a planar_to_chunky operation into
a temporary buffer, performing the strip_copy_rop, and then freeing the
buffer. Later we may well implement cores that can cope with the common
cases with T being still in planar form.

This commit only fixes unbanded operation; currently when the clist writer
puts the tile into the clist, it has no way of indicating that the tile
is in planar format, hence only writes 1/4 of the data. I need to talk to
Ray and Michael about this. This is broken already, so this commit shouldn't
make anything worse.

I have updated the docs (out of date since 1998, at least) in related areas,
and fixed some broken english.

gs/base/gdevdrop.c
gs/base/gdevmpla.c
gs/base/gsropt.h
gs/base/gxcht.c
gs/base/gxp1fill.c
gs/doc/Drivers.htm


2011-09-29 14:35:12 +0100
Robin Watts <Robin.Watts@artifex.com>
d4741818da0a3f9a5a7ab98c328795dde6f850cb

Add Memento targets to unix/autoconf makefiles.

Add new targets to unix makefiles (pcl-memento, xps-memento etc) that
build executables into memobj. Parallels the work done with the windows
builds.

Makefile
common/ugcc_top.mak
gs/base/Makefile.in
gs/base/macosx.mak
gs/base/ugcclib.mak
gs/base/unix-end.mak
gs/base/unix-gcc.mak
gs/base/unixansi.mak


2011-08-18 17:01:43 -0700
Ray Johnston <ray.johnston@artifex.com>
fe8d7b6aebfed3c724a860e31ff170764d5429dc

Fix bug 692372: Add finalize for imager_state to ref_count decrement icc structs.

The graphics atates were being freed by the 'alloc_restore_all' done during gs_lib_finit
but the icc_link_cache was not getting its ref_count decremented, so it never freed the
semaphore which caused handles to be lost by windows. The rc_gsicc_profile_cache_free
function is also fixed to save the 'next' pointer to avoid dereferencing freed memory.

Note that we _should_ be able to call gs_imager_state_release to decrement the counts
of ALL of the elements, but the ref counting of the other elements is _so_ badly
maintained that some elements (dev_ht and halftone) are prematurely freed by this.
This change is enough to fix the bug and pass cluster regression.

gs/base/gsicc_profilecache.c
gs/base/gsistate.c
gs/base/gsstate.c
gs/base/gxistate.h
gs/base/gzstate.h


2011-09-28 09:33:31 -0600
Henry Stiles <henry.stiles@artifex.com>
02bdba18be7f2b78ca03d3f4126cef830eab28eb

Fixes 692544, an "off by one" error in the parser caused a pcl data
scanning command at the end of a stream to be skipped. No expected
differences.

pcl/pcparse.c


2011-09-28 09:32:07 -0600
Henry Stiles <henry.stiles@artifex.com>
f21756f217abc06b41d09946cffad083c8992ac5

Change to new indenting style, no expected differences.

pcl/pcparse.c


2011-09-28 11:29:27 -0400
Alex Cherepanov <alex.cherepanov@artifex.com>
326f67e01b02936dfdf5d51b918e3d1878765282

Bug 692551. Remove .min for compatibility with other interpreters.

gs/lib/prfont.ps


2011-09-27 11:36:28 -0700
Michael Vrhel <michael.vrhel@artifex.com>
48e7b9e6aaf93eded227a089b94f90db209476ff

Fix for Bug 692378

The function which decodes runs of compressed color values was not reseting
the solid color value as we looped through the line. So, if it was altered
during one compressed color decode in the line, subsequent values were affected.

gs/base/gdevdevn.c


2011-09-27 09:15:59 +0100
Chris Liddell <chris.liddell@artifex.com>
ddf450125929a9c261b3f7f99ec29c8da69b0207

Bug 692529: reduce potential rounding errors in FAPI/FT

Tweak the heuristic used for avoiding over/underflow problems when converting
scaling to pass into Freetype. This change distributes the over/underflow
protection more evenly between Freetype's resolution, size and matrix
parameters. This prevents the resolution parameter from getting excessively
small, and grid fitting producing unacceptable rounding errors.

This causes differences in about 20 cluster jobs, they are all small changes
in the position of glyphs - neither regressions nor progressions.

gs/psi/fapi_ft.c


2011-09-26 13:19:34 -0700
Michael Vrhel <michael.vrhel@artifex.com>
f97a9171cfb7f1081040a7bd56c4238105e6865a

Fix for bug 692537

Need to make sure that the color mapping information (what colorants are supported and what
their index is) is updated in gx_set_overprint_DeviceN before setting up the overprint information.

gs/base/gscdevn.c
gs/base/gsovrc.c


2011-09-26 12:03:36 +0100
Robin Watts <Robin.Watts@artifex.com>
692f2f74da514b5ba42179ea357263aa77caacd7

Fix cmyk 1bpc planar rop SEGVs.

The new cmyk 1bpc planar rop code does not cope with transparent rops.
Reflect this in the if's surrounding the code that calls it.

gs/base/gdevmpla.c


2011-09-24 08:42:38 -0700
Michael Vrhel <michael.vrhel@artifex.com>
3ee407fafffce3d680039f0f094081e46d9bc6d3

Fix so that fast thresholding code works with simple orders.

Simple orders are those that are represented by shifts of a smaller template.

gs/base/gsht.c
gs/base/gxht_thresh.c


2011-09-23 23:23:02 -0700
Michael Vrhel <michael.vrhel@artifex.com>
545cd811c4a2c33c472f302088a10a807e98d9be

Fix for Bug 692339

Threshold creation code in the tiffsep1 code was not handled correctly when the dorder was a simple form
that included a repeated shift.

gs/base/gdevtsep.c


2011-09-23 20:26:09 +0100
Robin Watts <Robin.Watts@artifex.com>
24ff7262bc333194c27c463b88fd54a1217faac7

More optimisations to planar_cmyk4bit_strip_copy_rop

Fix some bugs that would again only show up when width > 8.

Add a new case (the hairiest) to the function. The others should all be
easier from here on in if we decide to do them.

CLUSTER_UNTESTED as plank is not enabled on pcl yet.

gs/base/gdevmpla.c


2011-09-23 17:00:02 +0100
Chris Liddell <chris.liddell@artifex.com>
5688545987a05f38359298e7649bdebe8e87dcaf

Bug 692532: fix setting the ICCProfilesDir userparam

Change from .setuserparams to .setuserparams2 when setting the
ICCProfilesDir entry so that the Postscript world dictionary gets updated
along with the internal values stored in the current context.

No cluster differences.

gs/Resource/Init/gs_lev2.ps


2011-09-23 16:35:10 +0100
Robin Watts <Robin.Watts@artifex.com>
f7a01d98266270908f041b1d2b78b2777cc577a8

Fix to planar_cmyk4bit_strip_copy_rop.

The previous version would have gone wrong for any use of the new case
where width > 8. I missed this as (presumably) my test case doesn't
exercise the new code, and the cluster is not testing plank on pcl files.

gs/base/gdevmpla.c


2011-09-23 15:16:38 +0100
Robin Watts <Robin.Watts@artifex.com>
2946424a03da33d2f00d27626c4692f8942f7f04

More planar_cmyk4bit_strip_copy_rop optimisations.

Firstly, fix a bug that was present in the previous version; cproc,
mproc and yproc could not be set when they were used. Also, we
incorrectly failed to check for scolors being non NULL before calling
this routine.

We fix this latter problem, by implementing the scolors == NULL case.

This drastically speeds up the time for pcl/pcl5cats/Subset/PL2KCSC2.BIN
(plank 300dpi, banded).

gs/base/gdevmpla.c


2011-09-23 12:09:03 +0100
Ken Sharp <ken.sharp@artifex.com>
1f426395a41ef2fc8a68b24b9970194127d0def2

Fix some minor compiler warnings introduced in commit
237f153545faec22782b64016b5f14dabb4cf6ed

gs/base/gdevpsf1.c


2011-09-23 11:23:35 +0100
Chris Liddell <chris.liddell@artifex.com>
7e048c5e4c4ea35d22801196af1e6bc8886e87d5

Bug 692532 (part): catch error return, prevent crash.

This fixes the crash by catching an error, but doesn't fix the underlying
problem of not finding the ICC profile file.

No cluster differences.

gs/base/gstrans.c


2011-09-23 11:03:24 +0100
Ken Sharp <ken.sharp@artifex.com>
237f153545faec22782b64016b5f14dabb4cf6ed

Bug #692488 add limited support for MM fonts to ps2write

ps2write currently emits MM fonts with the WeightVector but no other parts
of the font, and so it is not a valid MM font. However it also emits MM
OtherSubr calls in the CharString, which is not legal and causes errors.

This code parses (but does not interpret) the Subrs and CharStrings and
removes the blending values, leaving only the base values.

This is not a comprehensive solution, the parser can be defeated by a
sufficiently convoluted CharString/Subr combination and in addition the
code should really blend the vlaues instead of discarding them. This would
require writing a new version of 'psf_convert_type1_to_type2' which emits
type 1 CharStrings instead of type 2. The bug has been left open and
converted to an enhancement to reflect this ambition.

This code shows 2 progressions in the regression test suite:
test-setweightvector.ps
fts_20_2005.pdf

gs/base/gdevpsf1.c


2011-09-23 00:50:34 +0100
Robin Watts <Robin.Watts@artifex.com>
36a46a8bfdf60fb682d5acf200b9da7d5d57ed51

Optimise mem_planar_copy_color_4to1 (table based version).

Performance testing plank shows tests_private/comparefiles/knight.pdf
taking a much longer time with plank than pamcmyk4. A large amount of
time seems to be spend in mem_planar_copy_color_4to1.

The implementation seems to fare badly on x86 due to branches skipping
ahead that cannot be predicted. A table based implementation seems to
halve the runtime of the problem file (300dpi, no banding).

gs/base/gdevmpla.c


2011-09-22 18:14:06 +0100
Robin Watts <Robin.Watts@artifex.com>
65092efad877169870f9d907eda46a9b8298c1aa

Add special case code for rops in cmyk 1bpc planar space.

We add special case code to speed planar rops. Should give identical
results to the original method of doing it (planar_to_chunky, cmyk
to rgb, apply rop, cmyk back to rgb and split out to planes), but
rolls all that into a single traversal of the data, and doesn't
call the map functions for every single pixel.

Speeds 600 dpi unbanded planks processing of lj5200_pcl6_mono_PWTW51DC.prn
from 58 seconds to 22.

gs/base/gdevmpla.c


2011-09-21 17:57:55 +0100
Robin Watts <Robin.Watts@artifex.com>
53900176669849e91b2563ea57568db41e55d2d9

Add special case for faster planar rops in greyscale and rgb modes.

If we're doing a planar rop, and (S is either unused, or constant) and
(T is either unused, or constant), and (we're in rgb or greyscale), then
we can treat each component separately. This avoids pulling the planes
together, converting to rgb, doing the rop, converting back to cmyk and
splitting back out again.

I had hoped to use a variant of this code to do cmyk rops too, but that
turned out to be impossible; even if we 'rewrite' the rop on entry to
change it from an rgb one to a cmy one, the non-orthogonal nature of the
K plane bites us.

CLUSTER_UNTESTED as not currently enabled on the cluster.

gs/base/gdevmpla.c


2011-09-21 17:48:51 +0100
Robin Watts <Robin.Watts@artifex.com>
33e280b132b5527e4a9cb5683d10f9395f45bb92

Add map_color_rgb functions to cmyk plan devices (required for rops).

Contrary to the documentation, it is important to provide a map_color_rgb
so that rops work.

CLUSTER_UNTESTED as only the plank device is enabled in testing, and that
one is unchanged.

gs/base/gdevplan.c


2011-09-21 17:39:45 +0100
Robin Watts <Robin.Watts@artifex.com>
1e2b027a201b1aeeebfff807a45f1e1cb021dc0e

Add 24bit case to pack_planar_from_standard (also fix <=8 bit case)

pack_planar_to_standard is missing the 24 bit case; trivially add it in.

Also, the <= 8 bit case looks horribly broken to me; rewrite it here,
keeping old code around in case I am (again) proven to be a loon.

CLUSTER_UNTESTED as this code isn't executed in any tests currently.

gs/base/gdevdrop.c


2011-09-21 16:18:02 +0100
Chris Liddell <chris.liddell@artifex.com>
16aebf73c4eb716b5393bf0912b7b740a3867bf8

Bug 692300: Allow cidfmap to have paths to CIDFont files

Revise the cidfmap handling so that it can be used to point Ghostscript
at Postscript CIDFont files that are outside the normal resource search
path (i.e. not in "Resource/CIDFont").

CLUSTER_UNTESTED

gs/Resource/Init/gs_cidfm.ps
gs/doc/Use.htm


2011-09-20 16:14:27 -0700
Michael Vrhel <michael.vrhel@artifex.com>
36925c8f0864e8ecd54625011696d4bcdbc26fcc

Fix for bug 692517

The icc_table member variable needs to be allocated in stable memory. This way
it is not freed during a restore. This was occurring when we had a clist
device member variable in a pattern followed by a restore.

gs/base/gxclist.c
gs/base/gxclist.h
gs/base/gxclread.c


2011-09-20 09:58:48 +0100
Ken Sharp <ken.sharp@artifex.com>
40bdfff14aa2d3190526f44d4ef81d3c8c65be3f

Bug #692520 (partial, pdfwrite portion only) fix return testing

The cos_c_string_value function returns a pointer (to a parameter passed to it!)
which is cast to an int and tested for negativity. This is terrible practice.
On 64- bit machines the pointer doesn't fit into an int and on 32-bit machines it
will erroneously detect an error if a valid pointer exceeeds 2GB.

The only reason for the test is to allow the funciton call to be included
in the body of an 'if' test, which is a hideous way of constructing the
code.

This commit reformats the code, and does away with the irrelevant return code
test.

No differences expected, this path is not tested by the cluster.

gs/base/gdevpdfc.c


2011-09-19 17:20:51 -0700
Michael Vrhel <michael.vrhel@artifex.com>
6e2eda3cca4f8e13a9139c77aad5da524fa62d76

Avoid mixed double float operations.

On my machine moving over to float to avoid the mixed double/float operation slowed things
down even more. We may want to revisit this later. Diffs were minor and had about
10 percent speed up on interpolation with this change.

gs/base/siscale.c


2011-09-19 15:39:42 +0100
Chris Liddell <chris.liddell@artifex.com>
a44f19c56f98f3d700f617701d581e6932c964a9

FAPI/UFST revisions.

1) Modify FAPI/UFST to use a chunk allocator for its memory (this reflects a
similar change in FAPI/FT).

2) "Side-port" changes from the integration project for customer 532.

3) Address a couple of stability/output error problems that came up testing
the above changes.

CLUSTER_UNTESTED

gs/Resource/Init/gs_fapi.ps
gs/psi/fapiufst.c
gs/psi/zfapi.c


2011-09-19 13:52:31 +0100
Ken Sharp <ken.sharp@artifex.com>
13028e7b90dba007183c4b64a5d6b1363e30c993

Bug #692515, array index out of bounds (static analysis)

The routine pdf_SepCMYK_ConvertToRGB accessed element 5 of an array
passed as a parameter, when it should have accessed element 4 in order to
convert a CMYK value into an RGB value.

The code path is only exercised when creating PDF/A or PDF/X, the
ProcessColorModel is DeviceRGB, and the input contains a /Separation or
/DeviceN colour space with a DeviceCMYK /Alterenate space.

No differences expected.

gs/base/gdevpdfc.c


2011-09-16 15:15:45 +0100
Robin Watts <Robin.Watts@artifex.com>
64a7f79fbc184fddc10f635cfeabf8c44db46d90

Fix MSVC gs Profile builds.

In my recent rework of the makefiles, I broke gs profile builds (in that
they were built as release builds). Trivial fix.

gs/psi/msvc.mak


2011-09-15 20:36:31 +0100
Robin Watts <Robin.Watts@artifex.com>
50d947b5f4801d1042166acbd8b5aed982f57697

Allow planar device to make use of special getbits handling for 1bit cmyk.

We have a special function gx_get_bits_copy_cmyk_1bit, used to quickly
map cmyk (1bpc) to rgb. Our use of this is dependant on the
gxdso_is_std_cmyk_1bit call. Unfortunately this was broken for planar
devices, so plank was never getting the speed benefits of this routine.
Fixed here.

gs/base/gdevmpla.c


2011-09-14 12:40:48 -0700
Michael Vrhel <michael.vrhel@artifex.com>
6aa157b438ac69f9732b9f7b29e8570cceb50e8e

Fix for bug 692323. Performs color management before spatial interpolation with enlargements.

This avoids expensive color management operations when we are doing spatial interpolation.
Also a code reduction with this commit.

gs/base/gxiscale.c
gs/base/sidscale.c
gs/base/siinterp.c
gs/base/siscale.c
gs/base/sisparam.h
gs/psi/zfimscale.c


2011-09-14 13:29:09 +0100
Chris Liddell <chris.liddell@artifex.com>
d4c7212427ea85c6d8d9c9a46a178af54c9b96d3

Bug 691991: allow extra compile/link flags.

The XCFLAGS and XLDFLAGS should be available to be specified as parameters to
"make", but they were being used by the autoconf tools. This change moves the
autconf set flags into their own variables, leaving XCFLAGS and XLDFLAGS for
use at the make command line. Similarly, it adds an XTRALIBS variable which
can also be set from the make command line.

This is a slight modification of a patch originally from William Bader.

No cluster differences.

gs/base/Makefile.in


2011-09-13 14:03:12 +0100
Chris Liddell <chris.liddell@artifex.com>
83e1c7b77e8a23ed0683b3677a7cccba94ad5fe8

Bug 692491: change FAPI/Freetype to use chunk allocator

Previously FAPI/FT was using the heap allocator, which caused performance
problems due to its linear search of allocated blocks to validate before
freeing a block. The linear searching was fixed previously, but on some
platforms the C lib's malloc/free are bottlenecks, so using a chunk
allocator instance makes sense for allocate/release pattern we see from
Freetype.

No cluster differences.

gs/psi/fapi_ft.c


2011-09-10 10:23:50 -0500
Robin Watts <robin.watts@artifex.com>
e5d8d4d6514600f49a6aae2811e3b6fd33c2ef54

Speed up heap freeing (gs_heap_free_object) by avoiding search.

Inspired by Bug #687475. Remove the search through every allocated block
when freeing a heap block. Drastically increases the speed. Will hopefully
help other things too.

If people really want to test that blocks are valid on free, build with
Memento, which captures this in a much more useful way.

gs/base/gsmalloc.c


2011-09-10 10:09:23 -0500
Robin Watts <robin.watts@artifex.com>
1e3da08d9eb07a9d9650f5deeccf376da6db5722

Update xcode project to allow profiling.

xcode/GhostPDL/GhostPDL.xcodeproj/xcshareddata/xcschemes/ghostscript.xcscheme
xcode/GhostPDL/GhostPDL.xcodeproj/xcshareddata/xcschemes/language_switch.xcscheme
xcode/GhostPDL/GhostPDL.xcodeproj/xcshareddata/xcschemes/pcl.xcscheme
xcode/GhostPDL/GhostPDL.xcodeproj/xcshareddata/xcschemes/svg.xcscheme
xcode/GhostPDL/GhostPDL.xcodeproj/xcshareddata/xcschemes/xps.xcscheme


2011-09-09 13:40:30 -0700
Michael Vrhel <michael.vrhel@artifex.com>
3329928934123e2d3033309aa79c6ca18d975528

Update lcms2.1 to lcms2.2 plus fix some bit rot

Checked to see if this fixed Bug 692121 and unfortunately it did not. Working to create this with
tools contained in lcms2 so that I can kick the issue up to Marti.

gs/base/gsicc_lcms2.c
gs/base/lib.mak
gs/lcms2/AUTHORS
gs/lcms2/COPYING
gs/lcms2/ChangeLog
gs/lcms2/Makefile.in
gs/lcms2/Projects/BorlandC_5.5/lcms2.rc
gs/lcms2/Projects/VC2008/lcms2.rc
gs/lcms2/Projects/VC2010/lcms2.rc
gs/lcms2/Projects/VC2010/resource.h
gs/lcms2/aclocal.m4
gs/lcms2/config.guess
gs/lcms2/config.sub
gs/lcms2/configure
gs/lcms2/configure.ac
gs/lcms2/include/Makefile.in
gs/lcms2/include/lcms2.h
gs/lcms2/install-sh
gs/lcms2/ltmain.sh
gs/lcms2/src/Makefile.in
gs/lcms2/src/cmscnvrt.c
gs/lcms2/src/cmserr.c
gs/lcms2/src/cmsgamma.c
gs/lcms2/src/cmsgmt.c
gs/lcms2/src/cmsio0.c
gs/lcms2/src/cmsio1.c
gs/lcms2/src/cmslut.c
gs/lcms2/src/cmsnamed.c
gs/lcms2/src/cmspack.c
gs/lcms2/src/cmstypes.c
gs/lcms2/src/cmsxform.c
gs/lcms2/src/lcms2_internal.h
gs/lcms2/testbed/Makefile.am
gs/lcms2/testbed/Makefile.in
gs/lcms2/testbed/testcms2.c
gs/lcms2/utils/delphi/lcms2dll.pas
gs/lcms2/utils/jpgicc/Makefile.in
gs/lcms2/utils/linkicc/Makefile.in
gs/lcms2/utils/psicc/Makefile.in
gs/lcms2/utils/tificc/Makefile.in
gs/lcms2/utils/transicc/Makefile.in
gs/lcms2/utils/transicc/transicc.c


2011-09-09 16:27:04 -0400
Alex Cherepanov <alex.cherepanov@artifex.com>
5f82fe2ef9d4d21950f9cf76c82911b9f977e2b1

Bug 692492: Accept empty xref sections.

Change xref parser to accept xref sections that have no entries.

gs/Resource/Init/pdf_main.ps


2011-09-08 21:13:39 -0700
Michael Vrhel <michael.vrhel@artifex.com>
7d59aae1041ac22608f7f470f3f3644c1f7523bd

Fix for patterns with plank device, transparency, and clist.

It turns out that when we right the tile raster for the clist we don't
really know what the "true" target of the pattern is only the final
target device. In this particular situation, the target for the pattern
is a pdf14 device, the tile has no transparency, and the final target
is a planar device. When ended up assuming the tile was planar which
it was not and ended up with a seg fault

gs/base/gsptype1.c
gs/base/gxcolor2.h
gs/base/gxpcmap.c
gs/base/gxpcolor.h


2011-09-08 13:59:03 +0100
Robin Watts <robin.watts@artifex.com>
968040d1ef877607fb6b6bed67e7c2d54c0b4dd1

Add massively hacky and horrible clang_wrapper to xcode build.

This is REALLY nasty, but seems to work; at least I get sensible
results thrown back into Xcode when I build with analyze.

xcode/GhostPDL/GhostPDL.xcodeproj/project.xcworkspace/xcuserdata/robin.xcuserdatad/UserInterfaceState.xcuserstate
xcode/GhostPDL/GhostPDL.xcodeproj/project.xcworkspace/xcuserdata/robin.xcuserdatad/WorkspaceSettings.xcsettings
xcode/Makefile
xcode/clang_wrapper.c
xcode/resolve.sh


2011-09-07 23:37:29 +0100
Robin Watts <Robin.Watts@artifex.com>
618f03fce59282255e7d251875dd1d9ff5b35bf6

Remove unused variable introduced in last commit.

gs/base/gdevplan.c


2011-09-07 20:27:26 +0100
Robin Watts <Robin.Watts@artifex.com>
6a505dc016f8d34444f7b431a220320e005df201

Put map_color_rgb function back into planar devices to fix pcl

It appears that the rop code requires map_color_rgb to work properly.
Reinstate the old functions to get us up and running.

gs/base/gdevplan.c
gs/base/gdevplib.c


2011-09-07 00:28:21 -0400
Alex Cherepanov <alex.cherepanov@artifex.com>
b3ee2cd07fc7bdfbc3014316f0d4f7da54c900ee

Bug 692352: excessive memory use by shading

Reduce memory usege in smooth shading by running the shading code
in save-restore contest. Although resolved shading is no longer
cached by PDF interpreter, reduced memory usage greatly speeds-up
processing of the files with many shadings.

gs/Resource/Init/pdf_draw.ps


2011-09-06 20:42:36 +0100
Robin Watts <robin.watts@artifex.com>
5426550f44025e7ec5c802b27d379f7ffee5ed01

New simple xcode project for GhostPDL/Ghostscript.

Still very experimental, but seems to build. Debugging seems to work.

Analysis doesn't work (usefully) yet due to clang not reporting full
pathnames. This can be solved by a wrapper. TODO: Write it.

xcode/GhostPDL.xcodeproj/default.pbxuser
xcode/GhostPDL.xcodeproj/project.pbxproj
xcode/GhostPDL/GhostPDL.xcodeproj/project.pbxproj
xcode/GhostPDL/GhostPDL.xcodeproj/project.xcworkspace/contents.xcworkspacedata
xcode/GhostPDL/GhostPDL.xcodeproj/project.xcworkspace/xcuserdata/robin.xcuserdatad/UserInterfaceState.xcuserstate
xcode/GhostPDL/GhostPDL.xcodeproj/project.xcworkspace/xcuserdata/robin.xcuserdatad/WorkspaceSettings.xcsettings
xcode/GhostPDL/GhostPDL.xcodeproj/xcshareddata/xcschemes/GhostPDL.xcscheme
xcode/GhostPDL/GhostPDL.xcodeproj/xcshareddata/xcschemes/ghostscript.xcscheme
xcode/GhostPDL/GhostPDL.xcodeproj/xcshareddata/xcschemes/language_switch.xcscheme
xcode/GhostPDL/GhostPDL.xcodeproj/xcshareddata/xcschemes/pcl.xcscheme
xcode/GhostPDL/GhostPDL.xcodeproj/xcshareddata/xcschemes/svg.xcscheme
xcode/GhostPDL/GhostPDL.xcodeproj/xcshareddata/xcschemes/xps.xcscheme
xcode/Makefile
xcode/clang_wrapper.sh
xcode/xcode.mak


2011-09-06 12:22:46 +0100
Robin Watts <Robin.Watts@artifex.com>
15e70ed9fc7b28a02b9eff6491fe5137cedc7798

genarch tweak for cross-compiling; supply ready made arch files.

Previously genarch would unconditionally generate an arch.h file for the
current platform every time it was called. This fails for cross-compiling,
forcing the makefile to be edited every time. In this commit we add a
tweak that solves this problem.

Now, genarch can optionally copy an existing arch.h file; if the make
(or nmake) invocation has TARGET_ARCH_FILE=path/to/existing-arch.h added
to it, then instead of generating an arch.h for the current (host)
platform, it will instead copy the supplied one (assumed to be appropriate
for the target platform).

MSVC builds are updated here to automatically pick a TARGET_ARCH_FILE
based upon the WIN64 define. This should allow us to build 32bit binaries
on a 64bit box from the Visual Studio solution. We still cannot build
64bit binaries on a 32bit box using the unedited solution, as we have
no way to detect the type of box we are on, and hence cannot select
the appropriate AUX compiler to use.

A new directory, 'gs/arch' is added, containing the 2 windows msvc arch.h
files. More files can be added in future, ideally keeping to the
<os>-<architecture>-<toolset>.h naming convention.

gs/arch/windows-x64-msvc.h
gs/arch/windows-x86-msvc.h
gs/base/genarch.c
gs/base/lib.mak
gs/ghostscript.vcproj
gs/psi/msvc.mak


2011-09-05 15:46:01 +0100
Robin Watts <Robin.Watts@artifex.com>
cb5b14133b516323694dcb99c7594337e84d5e3f

Add Memento configuration to Visual Studio projects (and gs makefile)

When swapping between memento and non-memento builds, a complete rebuild
is required due to the pervasive nature of the memento defines. As such
it makes sense to have it as a separate configuration in the project.

Memento directories are named 'memobj', 'memobj64', 'membin' etc in
keeping with 'debugobj', and 'profobj' etc.

Also, take the opportunity to fix a couple of small things in the visual
studio files. Firstly, the 64 bit profile build targets were incorrect
(weren't setting paths etc).

Secondly, we remove the use of nmake /A for the rebuild step, and instead
rely on an explicit clean call, then a rebuild; this means we get
consistent results for a rebuild compared to a clean then a build.

As part of this work, we add logic to the (MSVC) makefiles to detect
MEMENTO=1 and PROFILE=1. If set, these change the default DEBUG, TDEBUG
and DEBUGSYM flags as appropriate, and change the default output
directory names. This keeps the invocations from Visual Studio sane
(as I found lots of mistakes in them as I looked through).

Also fix some places where we were failing to set and pass on
BINDIR/PSOBJDIR resulting in stray directories being created.

CLUSTER_UNTESTED

common/msvc_top.mak
gs/ghostscript.vcproj
gs/psi/msvc.mak
language_switch/pspcl6_msvc.mak
main/pcl6_msvc.mak
psi/psi.mak
svg/svg_msvc.mak
win32/GhostPDL.sln
win32/ReadMe.txt
win32/language_switch.vcproj
win32/pcl.vcproj
win32/svg.vcproj
win32/xps.vcproj
xps/xps_msvc.mak


2011-09-05 10:20:14 +0100
Chris Liddell <chris.liddell@artifex.com>
2fab16e3cbf8b2a18aa82c6beee76e261e530b9f

Bug 692365: Don't derive metrics for CIDFontType 2.

If the metrics don't exist in a CID font, we attempt to derive "sane"
metrics from the bounding box information. This is problematic since a
font (even with WMode 1) missing vertical metrics should be treated as a
horizontal (i.e. WMode 0).

However, we *do* still want to derive vertical metrics, for a vertical
writing font when we're using a Truetype font as a substitute for a
"real" CIDFont.

No cluster differences expected.

gs/psi/zfapi.c


2011-09-04 10:26:49 +0100
Chris Liddell <chris.liddell@artifex.com>
6b7da277a6b7477b0d7114a6203d4112c0ad631f

Fix glyph cleanup after error

When cleaning up the freetype glyph after a glyph interpretation error
use the glyph type field in the glyph structure to differentiate between
freeing an outline or a bitmap glyph - rather than the glyph type we
requested.

No cluster differences expected.

gs/psi/fapi_ft.c


2011-09-03 20:38:47 -0400
Alex Cherepanov <alex.cherepanov@artifex.com>
42582272f2b4dce1ccd5c600a2d6dc71794b4d3e

Bug 692033: fix LZWEncode filter

Increment code size before writing out EOD when the last code reaches
the current limit code. Fix incorrect bytes or decoding errors at
the end of some LZW-encoded streams.

gs/base/slzwe.c


2011-09-03 09:19:49 +0100
Ken Sharp <ken.sharp@artifex.com>
6a2a8987a7c7d0f98dcf640f72e64256c1f84eb2

Remove the insistence on DeviceGray or DeviceCMYK from pdfa_def.ps and remove
the directive not to use DeviceRGB from the documentation.

There is no requirement in the PDF/A-1 specification that prevents the use of
DeviceRGB.

gs/doc/Ps2pdf.htm
gs/lib/PDFA_def.ps


2011-09-01 18:32:07 +0100
Robin Watts <Robin.Watts@artifex.com>
c1a22bfd63734c93fc8d9df65e58f83fbd6a3376

Bug 692481: Fix for remainder of issue; oversize JPEG data causes hang.

If the JPEG lib exits without decoding anything, and the buffer was full,
attempt a compaction; if the compaction succeeds (bytes were saved), then
continue, otherwise bale with an error to avoid us infinitely looping
as we repeatedly try to decode the same data.

The 'buffer is full' condition is the tricky one; we cannot know the
exact size of the buffer, but we can know the minimum size we requested,
so we use that as a close approximation.

Also tweak the pxl handling of error conditions passed back from the
jpeg decoder. Ensure that pxls use of streams set the templates.

gs/base/sdctd.c
pxl/pximage.c


2011-09-01 11:35:52 -0700
Michael Vrhel <michael.vrhel@artifex.com>
f1c4efc10e7aad61f08e979493773a29d973c43c

Speed up of lcms 16bit tetrahedral interpolation code.

This color table interpolation is used primarily where we have 16 bit image data or
are doing spatial interpolation of image data. The change introduces
some very minor changes across quite a few files that have 16 bit
data or for which spatial interpolation is occurring. No changes occur at the white
or black table points.

The code differences involved moving the decision tree outside the loop and performing
the normalization divide by an add and shift.

This change can be readily moved to lcms2.

gs/lcms/src/cmsintrp.c


2011-09-02 17:16:22 +0100
Ken Sharp <ken.sharp@artifex.com>
8b660e2678b3c6f4592269d14e3767aca3dd51e0

Bug #692136 Change the FontBBox we use when a type 3 font has a NULL bbox.

PCL creates type 3 fonts where the BBox is 0 0 0 0. This causes Acrobat problems,
so we replace it with a 'default'. Previously this was 0 0 1000 1000, but this
is incorrect for the type 3 fonts created from PCL, and makes it impossible
to search/highlight text in the resulting PDF.

We now check for a type 3 font with an all zero BBox, and instead use 0 0 1 -1
which for PCL fonts works well. Regression tests show no differences with this
change, and hopefully its no more incorrect than it was before.

No differences expected.

gs/base/gdevpdtt.c


2011-09-02 11:43:04 +0100
Chris Liddell <chris.liddell@artifex.com>
f2d80d64b5f863ba17f428b96967fe1c1ce0d870

Bug 692484 - Fix build failure with gold linker...
....due to freetype underlinking.

Credit to Timo Gurr ( timo.gurr@gmail.com ) for the patch

CLUSTER_UNTESTED

gs/base/Makefile.in


2011-09-02 10:09:42 +0100
Chris Liddell <chris.liddell@artifex.com>
ee226f558f5b73005ba0594cd3861ce431c08a1b

Bug 692483 - Fix the unix install to include {Details,History}9.htm

Credit to Timo Gurr ( timo.gurr@gmail.com ) for the patch.

CLUSTER_UNTESTED

gs/base/unixinst.mak


2011-09-01 09:54:53 -0700
Michael Vrhel <michael.vrhel@artifex.com>
2881a8db54afddc1708febaa1de51e6808a416f9

Make sure planar pattern buffer size is correctly computed for clist writing.

gs/base/gsptype1.c


2011-09-01 17:15:41 +0100
Robin Watts <Robin.Watts@artifex.com>
a00c728c4c3ffa2392765294bc21b90b6e38496f

Bug 692481; partial fix - jpeg data with excess 0xFFs.

Ghostscript passes buffers full of data to the jpeg library. The jpeg
library decodes one (or more) scanlines of data from this data and
returns it to ghostscript.

In the event that the jpeg library can't decode an entire scanline from
the buffer supplied, it 'suspends' itself (i.e. restores its internal
state to the beginning of the last scanline, and returns having consumed
no data).

This means that if we ever have a scanline of jpeg data that is too large
to fit in the stream buffer, we will go into an infinite loop.

This commit is a partial fix for the issue; if we return from the jpeg
lib having consumed no data and having produced no output, we attempt to
compact the data in the jpeg stream. We do this by compacting strings of
0xFF bytes to a single 0xFF byte. (Strings of 0xFF bytes are forbidden by
the spec, but are treated by the library as a single one).

This is sufficient to solve the problem with the supplied corrupted file,
but still leaves us vulnerable to files that have more than 0x800 bytes
in any given single scanline.

A proper fix would require us to spot that the buffer was 'full' and that
the compaction process saved no bytes. Spotting that the compaction
process saved no bytes is easy. Spotting that the buffer is 'full' is not
currently possible as stream->cbsize is not available at the point
where the test needs to be done.

gs/base/sdctd.c


2011-09-01 08:29:03 +0100
Ken Sharp <ken.sharp@artifex.com>
ad0cf1990ae540252f68c50fa4627ed3b1752b89

Bug #692457 If a PCL pattern turns out to be a flat fill, still update the saved colour.

If a PCL pattern turned out to be a simple colour (black or white) we optimise
the output and don't emit a pattern. However, we do still need to update the
saved colour in our private state, because we will still be changing the colour. If
we don't do that then our saved state does not reflect the actual content of
the PDF file, and we can emit incorrect colours.

No differences expected.

gs/base/gdevpdfg.c


2011-08-31 18:32:40 +0100
Robin Watts <Robin.Watts@artifex.com>
a2d547dd3378afdb63681e9262e3bedd2abb3e53

Memento fixes; Memento code in gsalloc was broken.

The memento code in gsalloc.c intended to allow for memory squeezing
was inadvertantly relying on C extensions. Fixed here.

CLUSTER_UNTESTED.

gs/base/gsalloc.c


2011-08-31 18:06:17 +0100
Robin Watts <Robin.Watts@artifex.com>
af34c29e19ce012f71cb3713d4756ee43d6aa1d0

Fix mem buffer raster calc in height=1 case.

gs -r72 -sDEVICE=plank -o o.ppm tests_private/pdf/PDFIA1.7_SUBSET/CATX0198.pdf

would SEGV when run, due to a planar pattern buffer of 1x1 being created;
this would calculate a bad raster value, which was then copied into the
pattern tile, and would cause problems.

gs/base/gdevmpla.c


2011-08-30 18:24:57 -0400
Alex Cherepanov <alex.cherepanov@artifex.com>
fc3adb358eb5c0175fc5e24d7f275ffe2ac39fb9

Bug 692409: check file name length

Check the length of a file name argument and throw /limitcheck when
it exceed the size of the internal buffer. Avoid undefined behaviour
and possible security issues.

gs/base/gdevprn.c


2011-08-30 19:22:35 +0100
Robin Watts <Robin.Watts@artifex.com>
2b898bdf0ba77853f4af9da4e39141189a1580a1

Change planar devices to use encode/decode_color only.

Simplify the code by removing deprecated color mapping functions. In
particular this fixes a problem whereby encode_color for the plank
device was returning a color index encoded as rgb, and hence confusing
the overprint device.

CLUSTER_UNTESTED as the plan* and plib* devices are not tested at the moment.

gs/base/gdevplan.c
gs/base/gdevplib.c


2011-08-30 19:21:44 +0100
Robin Watts <Robin.Watts@artifex.com>
605557a6e3741abe837445da32f378a7bb751e8f

Minor whitespace adjustment.

Correct indentation to avoid confusing simpletons like me.
CLUSTER_UNTESTED.

gs/base/gsbitops.c


2011-08-30 10:22:45 -0400
Alex Cherepanov <alex.cherepanov@artifex.com>
b08778372c45bdf77e60db7374d1d18b6b340b10

Bug 692054: clear currentpoint after stroking empty path

Make gs compatible with Adobe implementation and avoid creation
of an uninitialized currentpoint value. Flag currentpoint as not
defined after stroking an empty path.

gs/base/gspaint.c


2011-08-29 20:24:17 +0100
Robin Watts <Robin.Watts@artifex.com>
619bfae87817cbb5633853f943dd3c7b101568c9

Bug 692476: simple non-trans tiling to planar devices - workaround.

Non transparent tiling of 'simple' coloured pattern tiles fails when
going to planar devices. In this commit we simply disable the simple
path in this case. Testing seems to indicate that everything will work
OK now.

Bug 692476 has been opened to remind us to optimise this when possible.

gs/base/gxp1fill.c


2011-08-29 18:39:57 +0100
Robin Watts <Robin.Watts@artifex.com>
d0f9685b775092c820e3b4748f0fe09eb7880a55

Disable mono threshold based halftoning for cmyk planar devices

Currently we allow the mono threshold based halftoning routines to be
called for CMYK planar devices. Disable this for now as it doesn't work.
When we have the rest of the planar device testing out correctly we'll
revisit this, debug it, and reenable it.

gs/base/gximono.c


2011-08-29 13:50:25 +0100
Robin Watts <Robin.Watts@artifex.com>
385edc256d11fd9c0d9ae6af1e94ea145b15b393

Tweak bmpcmp to put the threshold and window settings into the meta files.

Useful for debugging. CLUSTER_UNTESTED.

gs/toolbin/bmpcmp.c


2011-08-29 00:39:26 -0400
Alex Cherepanov <alex.cherepanov@artifex.com>
a8dbb2a904d52a9cce21db397b0918ce2d733214

Bug 692447: Handle unfinished 'W' mode.

When the content stream sets 'W' or 'W*' clip modes but doesn't
complete them with a filling operator, Ghostscript leaves a
dictionary on the dictionary stack that interferes with PDF graphic
state processing. This patch does the following:
- drops "W" in the sequence 'W Q"
- ignores graphic state changes, e.g. in "W 0 G"
- takes into account possible presence of non-graphic-state
dictionaries during clean-ups.

gs/Resource/Init/pdf_draw.ps
gs/Resource/Init/pdf_main.ps
gs/Resource/Init/pdf_ops.ps


2011-08-29 01:49:41 +0200
Marcos H. Woehrmann <marcos.woehrmann@artifex.com>
4d4b6f695ca058a36141e4f81313533c819def73

Make plank and pamcmyk4 files easier to compare.

Change pamcmyk4 files so that MAXVALUE is 255 (instead of 1) and add
a comment to the plank file header.

gs/base/gdevpbm.c
gs/base/gdevplan.c


2011-08-26 10:05:17 -0700
Michael Vrhel <michael.vrhel@artifex.com>
7fee00e442130e0aa3118fec975882008e750ebd

Allow planar devices to store patterns as bitmaps not clist only

CLUSTER_UNTESTED

gs/base/gxpcmap.c


2011-08-26 18:41:36 +0200
Marcos H. Woehrmann <marcos.woehrmann@artifex.com>
a9b386efabd5aab3913554641c66306e6bd79b58

Add the various plan* devices to the default build.

gs/base/configure.ac


2011-08-26 09:20:57 +0100
Chris Liddell <chris.liddell@artifex.com>
e665cacbe15d9cedb09334451cedd223a38a5ac3

Bug 692435: fix PDF pre-rendering spot color search.

Before we start rendering a page, we search the resources for the page
(including its descendent objects), so that we can pass the information
to the device prior to rendering. What we weren't doing was searching
the parents of the page object (we were, however, doing so during the
stream interpetation for rendering), thus in rare, but valid files, we
could miss setting up the page device for spot colors.

No cluster differences expected.

gs/Resource/Init/pdf_main.ps


2011-08-23 10:31:03 -0700
Michael Vrhel <michael.vrhel@artifex.com>
aa715abee9f38daba6c9504495dca309e8e3ed64

Fix so pattern debug code dumps planar bitmap.

gs/base/gxpcmap.c


2011-08-23 16:26:24 -0700
Michael Vrhel <michael.vrhel@artifex.com>
cb54af824c8f0aa343167b1e8b99dd1d53e47955

non-clist pattern rendering for planar devices.

gs/base/gxp1fill.c
gs/base/lib.mak


2011-08-25 19:02:57 +0100
Chris Liddell <chris.liddell@artifex.com>
c2f005a525f49bf43fb796908e0ab9c4b6ed58a4

Another typo in News.htm and History9.htm

CLUSTER_UNTESTED

gs/doc/History9.htm
gs/doc/News.htm


2011-08-25 18:28:37 +0100
Robin Watts <Robin.Watts@artifex.com>
409b62a948d75263131e09fd9a9e389d704d2b4c

Add copy_plane operation to tile_clip device (gxclip2.c)

Just a copy of copy_color, with an extra plane field.

Not currently ever called, but required as work towards solving the
planar pattern issues, we believe.

gs/base/gxclip2.c


2011-08-25 17:35:36 +0100
Chris Liddell <chris.liddell@artifex.com>
cf495c68e94b061c89eca678bf863775ce1b8a53

Bug 692461: Typos in News.htm and History9.htm

CLUSTER_UNTESTED

gs/doc/History9.htm
gs/doc/News.htm


2011-08-05 20:49:57 +0100
Robin Watts <Robin.Watts@artifex.com>
8005a687146fd19ca5e6a80cfc2f20b9fd675e41

Remove unused variable in shading code.

km is never used, so remove it. No cluster differences expected.

gs/base/gxshade6.c


2011-08-24 11:20:11 +0100
Ken Sharp <ken.sharp@artifex.com>
8cbd67605010b927192acb590b9a1fd8bf45a2a3

Bug #692344 Make sure we do not dereference a NULL clip path when freeing

When creating the 'privately allocated' parts of a gstate it is possible to
fail to allocate a clip path. In this case we free the clip path, but if its
notbeen allocated then it is NULL, and the free routine unconditionally
de-references it.

Added a NULL pointer to check to prevent this. I *believe* this fixes the bug
but just changing the code made the allocation succeed when I tested it, so I
am not absolutely certain. This patch does fix a genuine failure though.

gs/base/gxcpath.c


2011-08-24 01:40:56 -0400
Alex Cherepanov <alex.cherepanov@artifex.com>
827b098f50d296dd0c9399ec82f1988c1de7b62d

Bug 692445, tolerate short xref entries

Fix a bug in the code that handles invalid xref entries and try
to continue processing by repositioning PDF stream after the actial
end of the entry.

gs/Resource/Init/pdf_main.ps


2011-08-23 16:24:53 -0700
Michael Vrhel <michael.vrhel@artifex.com>
1c88a42f2409c30b3d2b955922efd8e00714c1cc

Forcing of clist only rendering of patterns if target device is planar.

This enables us to achieve proper rendering until we get the procedures straight
for the non-clist case.

gs/base/gxpcmap.c


2011-08-23 10:35:04 -0700
Michael Vrhel <michael.vrhel@artifex.com>
f215836c60865eaa2da4bed711215eae2b906c49

Revert "Fix for Bug 687695." Fixes Bug 692454

This reverts commit c7404eceab4d308c67130f43e9a4d4c0b58cd73c.
That commit broke all the tiff devices.

gs/base/gdevdgbr.c


2011-08-23 13:15:25 +0100
Ken Sharp <ken.sharp@artifex.com>
ec7e68e9054c8b1e91f588a358101c24d281555b

Bug #692105. Increase the maximum input/output dimesnions of sampled functions.

The maximum number of inputs and outputs allowed in a sampled function is a
compile-time value. This particular PDF file had 20 colorants, and a sampled
function with 20 inputs and 4 outputs to convert it into CMYK.

This broke the maximu, even though GS had been compiled with GS_CLIENT_COLOR_MAX_XOMPONENTS
increased to allow the PostScript version (which doesn't use a sampled function)
to complete.

This patch permits a new compile-time define GS_CLIENT_SAMPLED_FN_MAX_COMPONENTS
which can be used to increase this value. If this is not declared then we now use
the GS_CLIENT_COLOR_MAX_COMPONENTS as it is likely we will encounter sampled functiosn
with that many components

No differences expected

gs/base/gsfunc0.c


2011-08-22 15:42:10 +0100
Ken Sharp <ken.sharp@artifex.com>
ebc42b7b7b27977bac17a9f5a9f0626bcfdf8a16

Fix pattern matrix problems when the pattern is used in a Form and creating PDF.

Bug #691800 exhibited a problem using a Shading (type 2 pattern) in a form.
This is unusual because hte only way to get a Form out of pdfwrite is to involve transparency.

When a pattern is used in a form, we do not apply the current CTM, but the
CTM of the enclosing context. In this case we were still applying the outermost
context, not the CTM of the page stream (which is the enclosing context of the form).

Fixing this revealed other problems.

I've moved the form counting out of the transparency group and into the form
dictionary creation code where it makes much more sense. This allows me to
change the 'FormDepth' checks so that we only undo the page content scaling
if the formdepth is 0.

In the long run we may need to keep a stack of gstatas (or more accurately the
CTM) so that if we get nested forms we can apply the correct CTM to any patterns
in the form. For now, this isn't required, we don't have any test files which nest
more than 1 form deep.

This fixes Bug #691800. I also see progressions in the following files:

Bug6901014_CityMap-evince-pdftopdf.pdf
Bug691783.pdf
fts_04_0403.pdf
fts_06_0608.pdf
fts_09_0919.pdf
fts_12_1202.pdf
fts_12_1205.pdf
fts_14_1416.pdf
fts_15_1508.pdf
fts_15_1510.pdf
fts_15_1512.pdf
fts_15_1514.pdf
fts_15_1516.pdf
fts_15_1518.pdf
fts_15_1520.pdf
fts_28_2803.pdf
fts_28_2804.pdf
fts_31_3107.pdf

gs/base/gdevpdft.c
gs/base/gdevpdfv.c


2011-08-19 08:42:14 -0700
Marcos H. Woehrmann <marcos.woehrmann@artifex.com>
c387412a0267a51fb1b6d3a51c7e70a20533bd50

Added comments regarding compare_gdev_prn_space_params().

Added a couple of comments to the header files that declare the
structures that compare_gdev_prn_space_params() compares warning
that changes/additions to the structures will require changes to
that function as well.

No expected cluster differences since no code changed.

gs/base/gdevprn.h
gs/base/gxband.h


2011-08-19 15:14:33 +0100
Chris Liddell <chris.liddell@artifex.com>
493fddf61a96d6dc07c3f376bbb052990ec6a742

Bug 689283: latest pcl3/doc/reports.txt file

Our contrib/pcl3 was already at the latest release, but the reports.txt
file had additions post-release.

CLUSTER_UNTESTED

gs/contrib/pcl3/doc/reports.txt


2011-08-19 14:00:43 +0100
Chris Liddell <chris.liddell@artifex.com>
fa67a1d0f4b31841d02f2b6322b53da8a3874cfd

Bug 692426 (tweak): eliminate warning

If unix-aux.mak finds sys/time.h exists, make definition it adds to
gconfig_.h conditional on it not being defined already (it can now
be defined in the compiler flags as setup by configure).

No cluster differences.

gs/base/unix-aux.mak


2011-08-19 13:38:04 +0100
Chris Liddell <chris.liddell@artifex.com>
0ab8cd1259dc76f6b3465f1ccd08a7509428e021

Reinstate Identity-UTF16-H and UniHojo-UCS2-H CMaps

We need these in order to use Truetype fonts to emulate CIDFonts,
see gs_ciddc.ps

CLUSTER_UNTESTED

gs/Resource/CMap/Identity-UTF16-H
gs/Resource/CMap/UniHojo-UCS2-H


2011-08-19 11:48:38 +0100
Chris Liddell <chris.liddell@artifex.com>
714766fb1546616f09dafa8c9d7b4563dd10c65c

Bug 692426: let configure check for sys/time.h

The configure script will now check for whether sys/time.h exists, so we
don't rely on hard coded path check in unix-aux.mak - the checks in
unix-aux.mak remain for the benefit of those who maintain their own
makefiles.

No cluster differences.

gs/base/configure.ac


2011-08-18 23:10:20 -0700
Michael Vrhel <michael.vrhel@artifex.com>
c7404eceab4d308c67130f43e9a4d4c0b58cd73c

Fix for Bug 687695.

Patch supplied by Shailesh Mistry

gs/base/gdevdgbr.c


2011-08-18 23:06:49 -0700
Michael Vrhel <michael.vrhel@artifex.com>
cb9c046b29cc449fb8e147a4117b7b81dec934a0

Fix for compiler warnings

CLUSTER UNTESTED

gs/base/gxipixel.c


2011-08-17 08:35:48 -0700
Michael Vrhel <michael.vrhel@artifex.com>
942ebdc7700baf85bac4ed76af2fd845f8b7edd3

Fix for bug 692083. Improper decode scaling was occurring during creation of the color cache.

gs/base/gxipixel.c


2011-08-18 08:36:40 +0100
Ken Sharp <ken.sharp@artifex.com>
22ff0a3aad850d34d203a629735a94a2e253682a

Bug #689290 Handle image masks with a height of 1.

Adopting the patch supplied by Shailesh Mistry which properly processes
soft mask images with a height of 1.

This also allows us to do away with an ugly hack to avoid an endless loop.
By not processing single scan line images we would exit gx_image3x_plane_data
returning '1' which meant we hadn't processed all the data, which led to
gx_image3x_plane_data being called again, indefinitely....

The file for bug 689290 now processes correctly with all devices.
In addition fts_26_2604.pdf when converted to PDF shows differences, I'm
not sure why, but they are impossible to detect visually so I don't think
we should be concerned.

gs/base/gximag3x.c


2011-08-17 10:31:11 +0100
Chris Liddell <chris.liddell@artifex.com>
766df64767959a3c69357cb8698b4c286957af4d

Suppress some warnings in gdevcups.c

As cups_set_color_info() now does things that can fail, it has to return
an error value (getting rid of the "code set but never used" warning).

Also, add a "default:" case to a switch to get rid of the warning about
enum values not handled in a switch - the default case does nothing, so
behaviour is unchanged.

Finally, tidy up the initialization of an array of arrays of arrays, getting
rid of a warning about missing braces.

No cluster differences.

gs/cups/gdevcups.c


2011-08-16 19:49:21 -0700
Marcos H. Woehrmann <marcos.woehrmann@artifex.com>
b75eacf6a9b3a66265a0194ab21e0971f6e0b44c

Missed a couple of files that should have been changed as part of the previous commit.

common/msvc_top.mak
gs/doc/Develop.htm
main/pcl6_gcc.mak
main/pcl6_msvc.mak


2011-08-16 19:19:32 -0700
Marcos H. Woehrmann <marcos.woehrmann@artifex.com>
a49306bd0942aaea1bd035d285977c3f1cec0c2e

Bug 692400. Removed imdi and related devices (wtsimdi and wtscmyk).

Devices were example devices that have been obsoleted by ICC color
management.

gs/base/Makefile.in
gs/base/configure.ac
gs/base/devs.mak
gs/base/gdevimdi.c
gs/base/gdevwts.c
gs/base/gs.mak
gs/base/macos-mcp.mak
gs/base/macosx.mak
gs/base/msvclib.mak
gs/base/openvms.mak
gs/base/ugcclib.mak
gs/base/unix-gcc.mak
gs/base/unixansi.mak
gs/base/wtsimdi.c
gs/ghostscript.vcproj
gs/imdi/Jamfile
gs/imdi/LICENSE
gs/imdi/README
gs/imdi/arch.h
gs/imdi/cctiff.c
gs/imdi/cgen.c
gs/imdi/config.h
gs/imdi/copyright.h
gs/imdi/imdi.c
gs/imdi/imdi.h
gs/imdi/imdi_gen.c
gs/imdi/imdi_gen.h
gs/imdi/imdi_imp.h
gs/imdi/imdi_k.c
gs/imdi/imdi_k.h
gs/imdi/imdi_tab.c
gs/imdi/imdi_tab.h
gs/psi/msvc.mak
gs/psi/os2.mak


2011-08-16 23:59:51 +0100
Chris Liddell <chris.liddell@artifex.com>
781b7387334f9c9d98220567f59e5fe1843ad43d

Bug 691922: handle color model change in gdevcups.c

Revise the previous method for setting a suitable ICC profile when the cups
color model changes, and ensure that the raster memory gets recreated
afterwards.

No cluster differences.

gs/cups/gdevcups.c


2011-08-16 16:48:01 -0600
Henry Stiles <henry.stiles@artifex.com>
9c074dc8c611a9d225a50ae690dcc8250542c7e9

Fixes 691820 by removing the device, the authors in the contrib.mak
and source code file (gdevlx50.c) have been sent email the device is
broken.

CLUSTER_UNTESTED

gs/base/configure.ac
gs/contrib/contrib.mak
gs/contrib/gdevlx50.c


2011-08-16 22:45:30 +0100
Chris Liddell <chris.liddell@artifex.com>
58d19521e19252f45ec0d4c212fe938580fbeb54

Sort line endings problem.

gs/openjpeg/libopenjpeg/opj_malloc.h


2011-08-16 08:57:46 -0700
Marcos H. Woehrmann <marcos.woehrmann@artifex.com>
399c536b8c8fda93071e2895ab88ea11b92e1eb5

Bug 688651. Change EPSON ESC/P change color command from ascii to unsigned char.

I don't have an Epson printer to test this with, but it seems
reaonable that the command would not use and ascii parameter.

gs/base/gdevepsc.c


2011-08-16 16:30:01 +0100
Chris Liddell <chris.liddell@artifex.com>
d9c04fa861359debdf95d698549a08253283d45f

Correct a typo checking if we really need to change profiles.

No cluster differences.

gs/base/gsicc_manage.c


2011-08-16 02:30:38 +0200
Till Kamppeter <till.kamppeter@gmail.com>
d8da050fcfcb6bd62024ab007d4ad2c6a7b8920b

CUPS Raster: Improved recognition of black pixels on CMYK -> RGBW conversion

To improve on bug 691922.

gs/cups/gdevcups.c


2011-08-15 23:47:55 +0200
Till Kamppeter <till.kamppeter@gmail.com>
1920f21e245e9e1c1ed9e8df1314b4b548088db5

Set correct default color profiles for all color spaces of the CUPS Raster device

If no output profile is supplied by the user via
"-sOutputICCProfile=...", set a default profile appropriate to the
selected color space (RGBish additive, CMYKish subtractive, or
grayscale). This should really be the last piece of the fix for bug
691922.

gs/cups/gdevcups.c


2011-08-15 23:10:14 +0200
Till Kamppeter <till.kamppeter@gmail.com>
05b517bd3d350e08c08604dcf72741188b4d586e

Eliminated compiler warning in gdevcups.c.

gs/cups/gdevcups.c


2011-08-15 11:57:26 -0700
Marcos H. Woehrmann <marcos.woehrmann@artifex.com>
78272d055d4c1ca8fbd301130473d00f611bd64e

Fixed compiler warning in base/gdevprn.c.

gs/base/gdevprn.c


2011-08-15 14:04:17 +0200
Till Kamppeter <till.kamppeter@gmail.com>
eb6b63157d90bed5df4b5dd134b5581b4a38ae39

Let the CUPS Raster output device generate RGBW as defined in the CUPS documentation

The CUPS Raster output device ("cups") has an RGBW output color
space. This was intended to produce standard RGB plus an extra channel
which marks true black pixels by being 0 and for all non-black pixels
having all bits set to 1. This mode is designed to control the use of
black ink or toner for black text in printed documents.

The RGBW output of Ghostscript's CUPS Raster output device was
actually inverted CMYK, an RGBW which is known to be used by
projectors.

The HPLIP printer drivers worked around this bug being able to
understand both modes correctly and so printouts on HP printers were
correct before, too, but we need to follow the documentation of CUPS,
so that if other printer manufacturers/driver developers make use of
the RGBW mode get correct results.

This finally fixes bug 691922.

CUPS documentation:

http://www.cups.org/documentation.php/doc-1.5/spec-raster.html

Section: Pixel Value Coding, CUPS_CSPACE_RGBW

gs/cups/gdevcups.c


2011-08-15 01:39:00 -0700
Marcos H. Woehrmann <marcos.woehrmann@artifex.com>
28f0da42cbffd79ba747a3e14a899dda5e7a4bd7

Fix for Bug 692375. Comparing two structures with memcmp() is a bad idea.

Code in gdevprn.c relied on memcmp() to compare two structures;
this isn't allowed by C since there can be gaps in the structure
due to padding. This issue was exposed when llvm-gcc became the
default compiler in Xcode 4. The fix is to compare the structures
element by element.

For more information see: http://c-faq.com/struct/compare.html

No expected cluster difference since none of the cluster nodes use
llvm-gcc.

gs/base/gdevprn.c


2011-08-15 07:58:13 +0100
Ken Sharp <ken.sharp@artifex.com>
f369ae5a30143cdfc27df96de9b1b5bab1c72c6f

Bug #692422. When creating a UUID for PDF files, an earlier change added
'uuid:' to the XML.

This potentially caused a buffer overrun leading to a string not being
NULL-terminated and causing a corrupted UUID to be written. Although I
am unable to reproduce this, this patch resolves the problem for the customer.

gs/base/gdevpdfe.c


2011-08-13 10:15:17 -0700
Michael Vrhel <michael.vrhel@artifex.com>
3c15d3495e4e47a41938710bf2657d0c674f1e55

Fix for bug 692392. This makes sure that the transfer function is only applied to the K channel when we are mapping gray to CMYK.
Also fix for case in which interpolation of 12bit images does not work when using the ICC rendering operation.

gs/base/gdevp14.c
gs/base/gdevplnx.c
gs/base/gsciemap.c
gs/base/gsequivc.c
gs/base/gsicc.c
gs/base/gxcmap.c
gs/base/gxcmap.h
gs/base/gxi12bit.c
gs/base/gxiscale.c
gs/base/lib.mak


2011-08-12 18:34:55 +0100
Chris Liddell <chris.liddell@artifex.com>
97aef7a14df2e7e552592cf4a79c28747948d106

Add the relevant part of the OpenJPEG code to our repos.

We only need the "library" part, not the example apps and third party
libraries (only used by the example apps), and they add up to a lot of space.

CLUSTER_UNTESTED

gs/openjpeg/libopenjpeg/CMakeLists.txt
gs/openjpeg/libopenjpeg/Makefile.am
gs/openjpeg/libopenjpeg/Makefile.in
gs/openjpeg/libopenjpeg/bio.c
gs/openjpeg/libopenjpeg/bio.h
gs/openjpeg/libopenjpeg/cio.c
gs/openjpeg/libopenjpeg/cio.h
gs/openjpeg/libopenjpeg/dwt.c
gs/openjpeg/libopenjpeg/dwt.h
gs/openjpeg/libopenjpeg/event.c
gs/openjpeg/libopenjpeg/event.h
gs/openjpeg/libopenjpeg/fix.h
gs/openjpeg/libopenjpeg/image.c
gs/openjpeg/libopenjpeg/image.h
gs/openjpeg/libopenjpeg/int.h
gs/openjpeg/libopenjpeg/j2k.c
gs/openjpeg/libopenjpeg/j2k.h
gs/openjpeg/libopenjpeg/j2k_lib.c
gs/openjpeg/libopenjpeg/j2k_lib.h
gs/openjpeg/libopenjpeg/jp2.c
gs/openjpeg/libopenjpeg/jp2.h
gs/openjpeg/libopenjpeg/jpt.c
gs/openjpeg/libopenjpeg/jpt.h
gs/openjpeg/libopenjpeg/mct.c
gs/openjpeg/libopenjpeg/mct.h
gs/openjpeg/libopenjpeg/mqc.c
gs/openjpeg/libopenjpeg/mqc.h
gs/openjpeg/libopenjpeg/openjpeg.c
gs/openjpeg/libopenjpeg/openjpeg.h
gs/openjpeg/libopenjpeg/opj_includes.h
gs/openjpeg/libopenjpeg/opj_malloc.h
gs/openjpeg/libopenjpeg/pi.c
gs/openjpeg/libopenjpeg/pi.h
gs/openjpeg/libopenjpeg/raw.c
gs/openjpeg/libopenjpeg/raw.h
gs/openjpeg/libopenjpeg/t1.c
gs/openjpeg/libopenjpeg/t1.h
gs/openjpeg/libopenjpeg/t1_generate_luts.c
gs/openjpeg/libopenjpeg/t1_luts.h
gs/openjpeg/libopenjpeg/t2.c
gs/openjpeg/libopenjpeg/t2.h
gs/openjpeg/libopenjpeg/tcd.c
gs/openjpeg/libopenjpeg/tcd.h
gs/openjpeg/libopenjpeg/tgt.c
gs/openjpeg/libopenjpeg/tgt.h
gs/openjpeg/opj_config.h.in.user


2011-08-12 22:24:32 +0200
Till Kamppeter <till.kamppeter@gmail.com>
46b4ee6b5ef44838ea5c60aeeab76047a666d561

Fixed landscape orientation printing of PXL drivers pxlmono/pxlcolor

Bug 692128.

Thanks to Tim Waugh from Red Hat for the patch.

gs/base/gdevpxut.c


2011-08-12 18:19:59 +0100
Chris Liddell <chris.liddell@artifex.com>
5d45b3c3bc664f7e8a81e85c812dd100543d4cd9

Bug 690054: fix a bunch of warnings in base/

A couple were real functional problems (left-overs from old API
versions), the rest were the usual benign but irritating noise.

No cluster differences.

gs/base/gdevimdi.c
gs/base/gdevokii.c
gs/base/gdevphex.c
gs/base/gdevsunr.c
gs/base/gdevtsep.c
gs/base/gdevwts.c


2011-08-12 15:33:40 +0100
Chris Liddell <chris.liddell@artifex.com>
78fe552263a621714c8335ec46f4493121856192

Bug 690566: small conformance changes to PPD

Include change so (I think) the PPDs are now conformant, but leave out the
ones that change the default media.

Credit to Werner Fink ( werner@suse.de ) for the changes.

CLUSTER_UNTESTED

gs/lib/cbjc600.ppd
gs/lib/cbjc800.ppd


2011-08-12 15:18:50 +0100
Chris Liddell <chris.liddell@artifex.com>
8c523f7a77a4f8f3da47bdb452f8df7cc30812ce

Bug 690565: bring the header include up-to-date.

Pull in the tiny part of the patch in the above bug that is relevant
to the current source.

No cluster differences.

gs/contrib/lips4/gdevl4v.c


2011-08-12 14:05:14 +0100
Chris Liddell <chris.liddell@artifex.com>
d9e044eeec3f747be7a0d8270b52cd8a8b4d88c5

Bug 692188: CMS code doesn't compile using HP cc compiler

Fix for lcms definition of "LCMS_INLINE" on the HP compiler.

Credit to Ian Ashley ( ian.ashley@opentext.com ) for the patch.

No cluster differences.

gs/lcms/include/lcms.h


2011-08-12 13:52:02 +0100
Chris Liddell <chris.liddell@artifex.com>
091636d3d688823d3c4062471700085ca8c91fd1

Bug 692417: fix a configure problem on OpenBSD

credit to Henk Jan Priester ( hjpriester@gmail.com ) for the patch.

No cluster differences.

gs/base/configure.ac


2011-08-12 13:43:53 +0100
Chris Liddell <chris.liddell@artifex.com>
cacd7dc3e8c6ab4d601330161cd44e3e66eecefa

Bug 691430: Make OpenJPEG a configure-able option.

No cluster differences.

gs/base/Makefile.in
gs/base/configure.ac
gs/base/openjpeg.mak


2011-08-09 11:52:06 -0700
Michael Vrhel <michael.vrhel@artifex.com>
8cf0fb4b1e6ee17bdc0fe5e198b593244c89281d

Fixes for various compiler warnings in the ICC code

gs/base/gdevxcf.c
gs/base/gscdevn.c
gs/base/gsciemap.c
gs/base/gsdparam.c
gs/base/gsicc.c
gs/base/gsicc_cache.c
gs/base/gsicc_cache.h
gs/base/gsicc_create.c
gs/base/gsicc_manage.c
gs/base/gsicc_manage.h
gs/base/gxclimag.c
gs/base/gxcmap.c
gs/psi/zcie.c


2011-08-10 21:27:35 +0100
Chris Liddell <chris.liddell@artifex.com>
d63a63c74e7d84aeb48024526b6af7ecaf343733

Fix the Mac platform test in the luratech section.

No cluster differences.

gs/base/configure.ac


2011-08-10 10:27:03 +0100
Chris Liddell <chris.liddell@artifex.com>
edd256d908da6ad77d3e595febffcc3717d5e900

Bug 692367: add gs_memory_t arg to finalize method

By adding a gs_memory_t argument to the object "finalize" method, we can
dispense with the pointer-pun hackery that stores the memory context
in an extra struct array element of the IO device table, so it's availabe
in the finalize method.

Although primarily addresses one hack, this commit touches a number of files
because it affects every object with a "finalize" method.

This also addresses an error condition cleanup of a partially create IO
device table.

No cluster differences.

gs/base/gdevdevn.c
gs/base/gdevpdf.c
gs/base/gdevpsd.c
gs/base/gdevtsep.c
gs/base/gsalloc.c
gs/base/gscspace.c
gs/base/gsdevice.c
gs/base/gsfcid.c
gs/base/gsfont.c
gs/base/gsicc.c
gs/base/gsiodev.c
gs/base/gsmalloc.c
gs/base/gsmchunk.c
gs/base/gsstype.h
gs/base/stream.c
gs/psi/igc.c
gs/psi/igc.h
gs/psi/iname.c
gs/psi/isave.c
gs/psi/zdscpars.c
gs/psi/zfjbig2.c
xps/xpsfont.c


2011-08-09 23:57:26 -0400
Alex Cherepanov <alex.cherepanov@artifex.com>
7ac24676ec25007066576852934cdfaacd8aae91

The first OpenJPEG effort.

Add JPEG 2000 implementation based on OpenJPEG library.
This revision does yet not support the following features:
- CMYK and eYCC color spaces
- downsampled color planes
- alpha transparency planes.

gs/base/Makefile.in
gs/base/gs.mak
gs/base/lib.mak
gs/base/macos-mcp.mak
gs/base/openjpeg.mak
gs/base/sjpx_openjpeg.c
gs/base/sjpx_openjpeg.h
gs/base/winlib.mak
gs/psi/int.mak
gs/psi/msvc.mak
gs/psi/zfjpx.c


2011-08-09 20:07:12 -0700
Michael Vrhel <michael.vrhel@artifex.com>
9b8671d7d27c3d203a55e3f357c1435d1dfd72a3

Add includes for error handling. Windows build failed to link for me without these.

CLUSTER_UNTESTED

gs/base/gp_mshdl.c
gs/base/gsicc_lcms.c
gs/base/lib.mak
gs/base/winlib.mak


2011-08-09 22:56:26 +0700
Robin Watts <robin.watts@artifex.com>
1eb77139f09b98671e8e83b921f1c351df4ecb84

Fix (currently harmless) typo in gxdownscale.c

I was testing adjust_width before accessing adjust_width_proc, when
it would have been better to test adjust_width_proc. Currently
adjust_width != 0 is true iff adjust_width_proc != NULL, so no
harm other than possible warnings.

gs/base/gxdownscale.c


2011-08-09 09:41:07 -0600
Henry Stiles <henry.stiles@artifex.com>
8f2ecf42738966678a8826d8de9c60c4f3684600

Remove gserror.h, its contents have been moved to gserrors.h so we
only need have one include file to use for error reporting.

gs/base/gdevdbit.c
gs/base/gdevhit.c
gs/base/gdevimdi.c
gs/base/gdevm1.c
gs/base/gdevpipe.c
gs/base/gp_mshdl.c
gs/base/gp_msprn.c
gs/base/gp_nsync.c
gs/base/gp_os2pr.c
gs/base/gp_psync.c
gs/base/gp_win32.c
gs/base/gp_wsync.c
gs/base/gsbitops.c
gs/base/gscencs.c
gs/base/gserror.h
gs/base/gserrors.h
gs/base/gsfname.c
gs/base/gsicc_lcms.c
gs/base/gsicc_lcms2.c
gs/base/gsiomacres.c
gs/base/gsmalloc.c
gs/base/gsmisc.c
gs/base/gsparamx.c
gs/base/gstext.c
gs/base/gsutil.c
gs/base/gx.h
gs/base/gxclfile.c
gs/base/gxdownscale.c
gs/base/lib.mak
gs/base/minftrsz.c
gs/base/saes.c
gs/base/sarc4.c
gs/base/scfparam.c
gs/base/sdcparam.c
gs/base/sddparam.c
gs/base/sdeparam.c
gs/base/sfxcommon.c
gs/base/sfxstdio.c
gs/base/shcgen.c
gs/base/simscale.c
gs/base/sjbig2.c
gs/base/sjbig2_luratech.c
gs/base/sjpegd.c
gs/base/sjpx.c
gs/base/sjpx_luratech.c
gs/base/spsdf.c
gs/base/szlibc.c
gs/base/winlib.mak
gs/ghostscript.vcproj
gs/psi/fapi_ft.c
gs/psi/int.mak
gs/psi/os2.mak
gs/psi/zicc.c
pcl/pcl.mak
pcl/pgfdata.c
pl/pl.mak
pl/plchar.c
pl/pldraw.c
pl/plfont.c
pl/pluchar.c
pl/plufont.c
pl/plulfont.c
pxl/pxl.mak
pxl/pxoper.h
pxl/pxparse.c
svg/ghostsvg.h
svg/svg.mak
tools/gslite/gslt_font_api.c
tools/gslite/gslt_font_api_test.c
tools/gslite/gslt_font_int.h
tools/gslite/gslt_font_test.c
tools/gslite/gslt_image.c
tools/gslite/gslt_image_jpeg.c
tools/gslite/gslt_image_png.c
tools/gslite/gslt_image_tiff.c
xps/ghostxps.h


2011-08-08 04:36:56 -0700
Robin Watts <robin@peeves.(none)>
02ced7b54e8c10bb6ded0efff72990a88ec50027

Add backtrace to memento SEGV handler.

Simple backtrace handling; thanks to Tor for the pointer to the
stackoverflow article.

This only works with libc based compilers, and may possibly get the
bottom couple of entries on the stack wrong. It also doesn't give
file and line references, but it does at least give the function
names.

Other suggestions in the article offered other ways of working, but
they all rely on other libraries, or non-portable features, so this
seems the best possible first step.

gs/base/memento.c


2011-08-06 16:33:49 -0700
Robin Watts <robin@peeves.(none)>
4b069b32b3c09eef440d5770d654208c0930c54a

Improved squeeze2html.pl script; add -q option.

New -q option to omit 'green' runs from the file. Saves substantially
on disc space.

It may now be better to use this as a pipe from a gs process doing
memory squeezing to save disc space. e.g:

MEMENTO_SQUEEZEAT=1 gs -sDEVICE=png16m -o /dev/null tiger.eps |
squeeze2html.pl -q | gzip -9c > out.html.gz

(the theory being that the omission of 'green' runs saves more space
than the html overhead).

The output of the above invocation *without* going through squeeze2html.pl
hit 2.7Gig before I killed it, so be warned!

gs/toolbin/squeeze2html.pl


2011-08-06 14:05:20 -0700
Michael Vrhel <michael.vrhel@artifex.com>
2168e49ea9aa05ef23110addea20c3f29b66bae6

Fix for Bug 690137

The attempts to get the range properly set up for when we have an ICC profile for CIELAB.
The issue is that we may have vector drawings that are encoded across the range of real
CIELAB values like [100,0] [-128, 127] [-128, 127]. Image data of course is not encoded
in this form. This fix corrects for this difference.

gs/base/devs.mak
gs/base/gdevpdfi.c
gs/base/gsicc_manage.c
gs/base/gsicc_manage.h
gs/psi/zicc.c


2011-08-06 14:28:11 -0700
Robin Watts <robin@peeves.(none)>
bfa6e6513b95f51fda49666b6a28af6c60c66e1b

First version of script to make memento squeezing memory readable.

Build gs with Memento enabled: make debug XCFLAGS="-DMEMENTO"

Then run a mem squeeze:

MEMENTO_SQUEEZEAT=1 gs -sDEVICE=png16m -o /dev/null tiger.eps 2>&1 > log

Then this script will turn 'log' into something much more readable.

squeeze2html.pl < log > out.html

Though you may want to use:

head -10000 log | squeeze2html.pl > out.html

to control the size.

Red boxes are squeezepoints where we SEGV. Yellow are points where we leak.
Green where we complete cleanly.

To reproduce a single point (say number 52) in the debugger use:

MEMENTO_FAILAT=52 gdb --args gs -sDEVICE=png16m -o /dev/null tiger.eps

Then 'run' when gdb starts.

gs/toolbin/squeeze2html.pl


2011-08-05 16:45:44 +0100
Chris Liddell <chris.liddell@artifex.com>
bd0ffdf2bfd324656206b93498b2814ad2d4e36d

Pull final doc changes from the gs904 branch to master.

"Bring the changelog up to date since the RC, and revise the date."

CLUSTER_UNTESTED

gs/doc/API.htm
gs/doc/C-style.htm
gs/doc/Commprod.htm
gs/doc/DLL.htm
gs/doc/Deprecated.htm
gs/doc/Details8.htm
gs/doc/Details9.htm
gs/doc/Develop.htm
gs/doc/Devices.htm
gs/doc/Drivers.htm
gs/doc/Fonts.htm
gs/doc/Helpers.htm
gs/doc/History1.htm
gs/doc/History2.htm
gs/doc/History3.htm
gs/doc/History4.htm
gs/doc/History5.htm
gs/doc/History6.htm
gs/doc/History7.htm
gs/doc/History8.htm
gs/doc/History9.htm
gs/doc/Install.htm
gs/doc/Issues.htm
gs/doc/Language.htm
gs/doc/Lib.htm
gs/doc/Make.htm
gs/doc/News.htm
gs/doc/Projects.htm
gs/doc/Ps-style.htm
gs/doc/Ps2epsi.htm
gs/doc/Ps2pdf.htm
gs/doc/Ps2ps2.htm
gs/doc/Psfiles.htm
gs/doc/Readme.htm
gs/doc/Release.htm
gs/doc/Source.htm
gs/doc/Unix-lpr.htm
gs/doc/Use.htm
gs/doc/Xfonts.htm
gs/doc/gs-vms.hlp
gs/man/dvipdf.1
gs/man/font2c.1
gs/man/gs.1
gs/man/gslp.1
gs/man/gsnd.1
gs/man/pdf2dsc.1
gs/man/pdf2ps.1
gs/man/pdfopt.1
gs/man/pf2afm.1
gs/man/pfbtopfa.1
gs/man/printafm.1
gs/man/ps2ascii.1
gs/man/ps2epsi.1
gs/man/ps2pdf.1
gs/man/ps2pdfwr.1
gs/man/ps2ps.1
gs/man/wftopfa.1


2011-08-05 16:15:02 +0100
Chris Liddell <chris.liddell@artifex.com>
4916cc6cd1a8d5eb8ef411b4c00952dfea44b36f

Merge doc changes from the gs904 branch to master.

"Update the docs, version numbers, and dates for 9.04 rc1"

CLUSTER_UNTESTED

gs/doc/API.htm
gs/doc/C-style.htm
gs/doc/Commprod.htm
gs/doc/DLL.htm
gs/doc/Deprecated.htm
gs/doc/Details8.htm
gs/doc/Details9.htm
gs/doc/Develop.htm
gs/doc/Devices.htm
gs/doc/Drivers.htm
gs/doc/Fonts.htm
gs/doc/Helpers.htm
gs/doc/History1.htm
gs/doc/History2.htm
gs/doc/History3.htm
gs/doc/History4.htm
gs/doc/History5.htm
gs/doc/History6.htm
gs/doc/History7.htm
gs/doc/History8.htm
gs/doc/History9.htm
gs/doc/Install.htm
gs/doc/Issues.htm
gs/doc/Language.htm
gs/doc/Lib.htm
gs/doc/Make.htm
gs/doc/News.htm
gs/doc/Projects.htm
gs/doc/Ps-style.htm
gs/doc/Ps2epsi.htm
gs/doc/Ps2pdf.htm
gs/doc/Ps2ps2.htm
gs/doc/Psfiles.htm
gs/doc/Readme.htm
gs/doc/Release.htm
gs/doc/Source.htm
gs/doc/Unix-lpr.htm
gs/doc/Use.htm
gs/doc/Xfonts.htm
gs/doc/gs-vms.hlp
gs/man/dvipdf.1
gs/man/font2c.1
gs/man/gs.1
gs/man/gslp.1
gs/man/gsnd.1
gs/man/pdf2dsc.1
gs/man/pdf2ps.1
gs/man/pdfopt.1
gs/man/pf2afm.1
gs/man/pfbtopfa.1
gs/man/printafm.1
gs/man/ps2ascii.1
gs/man/ps2epsi.1
gs/man/ps2pdf.1
gs/man/ps2pdfwr.1
gs/man/ps2ps.1
gs/man/wftopfa.1


2011-08-05 09:02:28 -0600
Henry Stiles <henry.stiles@artifex.com>
6a537abc3001a8a1919672a6d936521eba40615a

9.04 NEWS file.

NEWS


2011-08-05 12:07:10 +0100
Chris Liddell <chris.liddell@artifex.com>
74264d5900bb6e4a5cacadfb67db198dcd5fef4e

Ensure Win UNICODE/UTF8 code is disabled for ls build

CLUSTER_UNTESTED

language_switch/pspcl6_msvc.mak


2011-08-05 12:05:23 +0100
Chris Liddell <chris.liddell@artifex.com>
b5ae769f4f5ac9c72f2e960314d0e44c7655e85a

Remove a now spurious debug message.

CLUSTER_UNTESTED

gs/cups/gdevcups.c


2011-08-04 15:14:05 -0600
Henry Stiles <henry.stiles@artifex.com>
7e4051fa5cde4102b2d3e1d53b528e0797718a10

Fix 692369 add erasepage back to device initialization in the language
switch build.

psi/psitop.c


2011-08-04 12:59:49 -0700
Marcos H. Woehrmann <marcos.woehrmann@artifex.com>
b00d53f8060554976be107b5009b96b76fbd46b6

Added a couple of dependencies to fix parallel make.

gs/base/lib.mak
gs/contrib/contrib.mak


2011-08-04 14:40:12 +0100
Chris Liddell <chris.liddell@artifex.com>
3e07ccf224b0811b017fd41d1fdb24310240294a

Bug 691586: again, ensure that GS knows when cups changes the media size

Move the fix for Bug 692393 to immediately after the call to
gdev_prn_put_params() - before the call to gx_device_set_media_size()
as that can also change the device's width and height settings.

With this fix, I have also removed the temporary workaround put in place
with commits 16c410fc29575abffb60926949433653186915fd and
bd33c8f57b1a6e3d365ef0efd8dd7571a14310fa.

No cluster differences.

gs/cups/gdevcups.c


2011-08-04 10:05:13 +0100
Chris Liddell <chris.liddell@artifex.com>
2f4dd0504e9a51dd1c4ad2da1c5135b9e4c67d26

Revise Luratech section of build docs.......

... to reflect that we now look for the Luratech code under
gs/luratech/ldf_jb2 and gs/luratech/lwf_jp2 instead of gs/lwf_jp2 and
gs/ldf_jb2

CLUSTER_UNTESTED

gs/doc/Make.htm


2011-08-03 17:44:55 +0100
Chris Liddell <chris.liddell@artifex.com>
b5ef299133e7248ca88819d2fa446828e173ad24

Bug 692393: ensure GS realises cups changed the page dimensions.

After having done media selection from the cups media list, we need to
ensure that GS realises that page dimensions in the device structure
may have changed since the raster memory was last created - this ensures
that GS will reallocate the memory, and correctly setup the
line_ptrs array for the new page size.

No cluster differences.

gs/cups/gdevcups.c


2011-08-02 18:19:35 +0100
Robin Watts <Robin.Watts@artifex.com>
ff6e0443bb89434f5c37790fbbf0a5467c2ce2d3

Memento_failThisEvent addition and usage in chunk allocator.

Add a new Memento function (Memento_failThisEvent) and calls to it from
the chunk allocator. This should allow us to do memory squeezing tests
that check chunk allocator allocations too.

Tweaks to Memento to ensure it defines MEMENTO_HAS_FORK on both unix
and macosx automatically.

No cluster differences expected.

gs/base/gsalloc.c
gs/base/memento.c
gs/base/memento.h


2011-08-02 18:32:09 +0100
Robin Watts <robin.watts@artifex.com>
49f11634e3ade5a0ffaf3d2de4389d59fcfb4769

Remove unused rectangle arg from shading internals. Add comments.

Tiny changes, done while trying to follow the code in search of
a bugfix.

No cluster differences expected.

gs/base/gxshade1.c
gs/base/gxshade6.c


2011-08-02 09:38:39 +0100
Ken Sharp <ken.sharp@artifex.com>
60dd70326d2294a0927696ad261d4aa92c67d5a4

Typo in opdfread header file 'excp' should have been 'exp'.

Fixes bug #692387

gs/base/opdfread.h


2011-08-01 15:36:52 -0400
Alex Cherepanov <alex.cherepanov@artifex.com>
4eee9bcfcc2ab0f6be5e997a3c8d87fafab60c4e

Remove an extra copy of gs_cet.ps from %rom% .

gs/psi/psromfs.mak


2011-08-01 16:15:55 +0100
Robin Watts <Robin.Watts@artifex.com>
c0040ecf8553bdd9f8028fe5f816af24e5070d29

Backout accidental commit of bbb8f98; "Alexs patch."

As part of investigations into 692352 I committed Alex's patch locally.
Unfortunately, I then let it escape into the wider world.

Backing it out now with apologies to everyone.

gs/Resource/Init/pdf_draw.ps


2011-08-01 16:28:52 +0200
Till Kamppeter <till.kamppeter@gmail.com>
f23b5bbfec46882da955409e70a0bfbff6f43827

Fixes on the gstoraster CUPS filter

1. gstoraster crashes when run outside CUPS (bug #692384)

2. All error messages issued by gstoraster are without newline (bug #692385)

Thanks to Tim Waugh from Red Hat for the patches.

gs/cups/colord.c
gs/cups/gstoraster.c


2011-08-01 12:18:25 +0100
Robin Watts <Robin.Watts@artifex.com>
bd33c8f57b1a6e3d365ef0efd8dd7571a14310fa

Tweak to tkampeters previous commit to workaround bug 691586.

Avoid warnings given on some platforms about "unreachable code" by
using an informative #define.

No cluster differences expected.

gs/cups/gdevcups.c


2011-08-01 13:05:09 +0200
Till Kamppeter <till.kamppeter@gmail.com>
16c410fc29575abffb60926949433653186915fd

CUPS Raster output device: Ignore RIP_MAX_CACHE environment variable

Ghostscript is (at least currently) not able to work with hard-limited
space parameters. It crashes with a segmentation fault on many input
files then. Leaving the setting of these parameters fully automatic
Ghostscript works just fine. As in most distributions (Currently all
except Debian, Ubuntu, and their derivatives) CUPS imposes a hard
limit via the RIP_MAX_CACHE environment variable, the only way to
assure reliable working of Ghostscript is to ignore the parameter,
leaving the space parameters in automatic mode. For CUPS this should
be no regression, as print queues with other Ghostscript drivers (like
pxlcolor, ljet4, ...) worked without hard limits all the time and no
one complained.

To ignore this RIP_MAX_CACHE we simply add a "return" right at the
beginning of this function. It will be removed when a real fix gets
into place.

See http://bugs.ghostscript.com/show_bug.cgi?id=691586

gs/cups/gdevcups.c


2011-08-01 00:37:33 -0700
Marcos H. Woehrmann <marcos.woehrmann@artifex.com>
e57a8e14f12ef4a4a62f471be55c13ada2aef159

Changes to clusterpush.pl documentation.

gs/toolbin/localcluster/clusterpush.txt


2011-07-30 17:48:14 +0100
Robin Watts <Robin.Watts@artifex.com>
951dee021a45d501e159a3b08624979604e906f5

Fix bug 692349: UNICODE build of gs not available with VS2003 or VS6.

Apply a slightly tweaked version of alexchers patch to define wmemset
when it's not provided by the headers.

No cluster differences expected.

gs/psi/dwtext.c
gs/psi/msvc.mak


2011-07-28 18:14:34 +0100
Robin Watts <Robin.Watts@artifex.com>
bbb8f980f19149b769f602dd4594aa6ec6ceeb29

Alexs patch.

gs/Resource/Init/pdf_draw.ps


2011-07-30 11:56:53 +0200
Till Kamppeter <till.kamppeter@gmail.com>
6c5f9661790b886a681b8926126875e6df59cbb1

Added "-dNOINTERPOLATE" to the Ghostscript command lines of the CUPS filters

This makes rendering significantly faster and the output of normal
files comming as print jobs from applications does not show any
visible difference.

gs/cups/gstoraster.c
gs/cups/pstopxl.in


2011-07-29 14:01:58 -0700
Michael Vrhel <michael.vrhel@artifex.com>
0132422fe0543a9473b1605a79f2dd46018de4e2

Another fix for cups RGBW. This gets the color set up properly for RGB.

gs/base/gsicc_manage.c
gs/base/gsicc_manage.h
gs/cups/gdevcups.c


2011-07-29 15:27:13 -0400
Alex Cherepanov <alex.cherepanov@artifex.com>
87045a3280e268a52f0d738d34f2a6a3ea093406

Bug 691184: Improve comments in cidfmap file.

Add a comment to cidfmap file that shows how to use getenv operator
to construct a path dynamically.

gs/Resource/Init/cidfmap


2011-07-29 12:18:04 -0700
Michael Vrhel <michael.vrhel@artifex.com>
84177fe99ebd2fa75abe690e0f2a0ef7d7b762e1

Fix for cups RGBW color space so that transparency works properly.

gs/cups/gdevcups.c


2011-07-29 08:14:04 -0700
Michael Vrhel <michael.vrhel@artifex.com>
c90da1237c8d88547377511e7b9d27348f3d7b31

A test for fixing RGBW in gdevcups.c

gs/cups/gdevcups.c


2011-07-29 19:40:45 +0100
Robin Watts <Robin.Watts@artifex.com>
3d6c383d5e6c9eb23c3b150f4b7e87dc3cb3cf2b

Speedup for Mementos checking of freed filled blocks.

Check an (aligned) int at a time rather than a byte at a time.

CLUSTER_UNTESTED as this is not enabled.

gs/base/memento.c


2011-07-29 15:42:49 +0100
Robin Watts <Robin.Watts@artifex.com>
802e977e87ba0d96445e06aa83f32dd31a79f677

Fix compile_inits=1 ufst builds; don't compact the FCOfontmap-PCLPS2 file.

The FCOfontmap-PCLPS2 file isn't *really* postscript, so don't compact
it. Fixes bug 692383 (at least for the non 9.04 case).

gs/psi/psromfs.mak


2011-07-29 10:16:39 +0100
Chris Liddell <chris.liddell@artifex.com>
217f9712df606e4dedc8afe1220e6b30df627516

Increment version number for "master".

gs/Resource/Init/gs_init.ps
gs/base/version.mak
pl/pl.mak


2011-07-29 09:40:34 +0100
Chris Liddell <chris.liddell@artifex.com>
1689828742df05af2f82d3b70f16b8c9457aeed1

Change the expected directory for luratech.

For the build system to automatically include the luratech JPX and JBIG2
code, we previously checked for the existence of lwf_jp2 and ldf_jb2
directories under the Ghostscript source dir. This changes it to check
for <gs>/luratech/lwf_jp2 and <gs>/luratech/ldf_jb2 instead.

CLUSTER_UNTESTED

gs/base/configure.ac
gs/psi/msvc.mak


2011-07-28 22:28:37 -0600
Henry Stiles <henry.stiles@artifex.com>
c99e0da7b93c065dc22e185e89a48f702c5ab417

Restore X11 device to the default unix device.

In setting up autoconf to detect X11 (9b7298f) the X11 devices were
not put back at the beginning of the device list and so were no longer
the default device.

main/pcl6_gcc.mak


2011-07-28 17:16:35 +0100
Robin Watts <Robin.Watts@artifex.com>
4f2d3c7b6c8e08a39de3ef1490562937d0f539ff

Changes to lcms v1 to spot failed allocations.

lcms v1 sometimes forgets to deal with failed allocations. Patch at
least some of these problems.

Driven by bug 692352. Sufficient to make it run to completion now.

gs/lcms/src/cmsgmt.c
gs/lcms/src/cmslut.c
gs/lcms/src/cmsps2.c
gs/lcms/src/cmssamp.c
gs/lcms/src/cmsvirt.c
gs/lcms/src/cmswtpnt.c
gs/lcms/src/cmsxform.c


2011-07-28 17:08:58 +0100
Robin Watts <Robin.Watts@artifex.com>
393685fddae380778e970345dbdca60274a31e69

Check for failure to allocate icclink in shading.

When calling shade_init_fill_state, check for a return code to indicate
failure. Trigger this case when an attempt to allocate an icclink
fails.

No cluster differences expected.

gs/base/gxshade.c
gs/base/gxshade.h
gs/base/gxshade1.c
gs/base/gxshade4.c


2011-07-28 15:07:14 +0100
Robin Watts <Robin.Watts@artifex.com>
d91b0da2e3dd20561724d574f21882f703bd861c

Fix typo in rc_decrement description string.

Simple typo fix. CLUSTER_UNTESTED.

gs/base/gxclrast.c


2011-07-28 14:03:55 +0100
Chris Liddell <chris.liddell@artifex.com>
e82868f118963df1c86f288ea5b7e50116be75b2

Work around a bug in gcc 3.4.6 on SPARC.

gcc 3.4.6 SPARC (possibly versions/ports) when compiling:
"psc->feof(psc->file)" seems to be unable to differentiate between
"feof" element in the structure, and "feof()" function from the
std library, and as a result gives a syntax error.

So I've renamed the structure entry "peof", and the other two file
handling function pointers similarly.

No cluster differences.

gs/base/mkromfs.c


2011-07-28 10:21:31 +0100
Chris Liddell <chris.liddell@artifex.com>
1ae27b694439c3f7f9d721cbc2c832247e18f4aa

Disable the Windows UNICODE/UTF8 code for now.

CLUSTER_UNTESTED

gs/psi/msvc.mak


2011-07-27 22:12:41 -0700
Michael Vrhel <michael.vrhel@artifex.com>
32b447cba35edb7272eacfef755edec4a174e01e

Update of Use.htm to include new color control options.

gs/doc/Use.htm


2011-07-27 16:25:19 +0100
Robin Watts <Robin.Watts@artifex.com>
b3dbb094608e2d5699c6d77d42f4919c0299a02a

Fix Bug 692368; SEGV with clist transparency pattern in clist rendering.

The invocation/file given in the bug uses banded rendering (clist).
While drawing a band, it uses a pattern with transparency, that is
itself rendered by a clist (using the new pattern clist code).

A fill rectangle is being done that tries to call the pattern clist
tiling code without the fill_trans_buffer having been setup, and
this causes a SEGV.

The reason for this appears to be that the device used by the
banded isn't a pdf14 device - instead it's a clipper device wrapping
the pdf14 device. The clipper device does not call gx_forward_fill_path,
but instead calls gx_default_fill_path, meaning that the special
pdf14 handling done to setup the fill_trans_buffer isn't done.

Making the commit call onwards to gx_forward_fill_path doesn't solve the
problem either, as that results in no actual clipping being done.

The fix, therefore appears to be to implement a clipping version of
fill_path.

No cluster differences expected.

gs/base/gdevp14.c
gs/base/gxclip.c
gs/base/gxclip.h


2011-07-27 22:14:10 +0200
Till Kamppeter <till.kamppeter@gmail.com>
bf9dc23000675d406d73d987dcc168f6b875ef75

Fixed the problem that PCL-XL output files got huge after introduction of color management

The pxlmono and pxlcolor output devices produce PCL XL (PCL 6). With
the introduction of color management, the size of the output files
often got 10 times larger as before and so PCL XL jobs often did not
print as they exhausted the memory of the printer.

According to the contributor of this patch, Shailesh Mistry, the PDFs
leading to that problem have a DeviceRGB image which is translated
into an ICC profile and passed up but the pcl/pxl can not handle
it. This patch looks for incoming ICC profiles and resolves it into
the base colour which can be handled at this level.

The patch returns the size of the PCL XL output files to the old
values from Ghostscript 8.x.

Fixes bug 692329.

gs/base/gdevpx.c


2011-07-27 20:37:20 +0200
Till Kamppeter <till.kamppeter@gmail.com>
6ab36cb4256fbd9aa005b79e317ff0993f4acf3e

Fixes on the "pstopxl" CUPS filter

1. Use POSIX and not Perl regular expressions with sed. This makes the
script working on a wider scope of systems (Bug #692328).

2. Switch the Ghostscript output device "pxlmono" if the "pxlcolor" is
used but "Gray" chosen as "ColorModel" setting. Monochrome
"BitsPerPixel" settings do not work with "pxlcolor".

gs/cups/pstopxl.in


2011-07-27 10:41:14 -0700
Michael Vrhel <michael.vrhel@artifex.com>
9dca5a4f0eb97ccd33f2503b5e1106c4e1747c5e

Fix for Windows Display Device showing gray only

This returns the use of DeviceGrayToK=true/false to set
if the user wants DeviceGray to map to K only for a
CMYK device. Also, this fixes a problem where high
level gray scale images were always going to composite
an not K only. Bug 692204.

gs/base/gsdparam.c
gs/base/gsicc_manage.c
gs/base/gxclrast.c
gs/psi/zdevice.c


2011-07-27 09:14:04 -0700
Michael Vrhel <michael.vrhel@artifex.com>
927c37a3adec70858787de954cfc620801bf65e5

Replacement of default gray ICC profile with Artifex generated versions

I reviewed the bmpcmp results and the relatively few diffs are minor.

gs/iccprofiles/default_gray.icc
gs/iccprofiles/sgray.icc


2011-07-26 16:19:42 -0600
Henry Stiles <henry.stiles@artifex.com>
68a0f6217428daf297d73589821b62ba2e862d0f

Bug 692376, synchronize the cmap file to Ken Lunde's sourceforge
release.

gs/Resource/CMap/90ms-RKSJ-UCS2
gs/Resource/CMap/90pv-RKSJ-UCS2
gs/Resource/CMap/90pv-RKSJ-UCS2C
gs/Resource/CMap/Adobe-CNS1-B5pc
gs/Resource/CMap/Adobe-CNS1-ETenms-B5
gs/Resource/CMap/Adobe-CNS1-H-CID
gs/Resource/CMap/Adobe-CNS1-H-Host
gs/Resource/CMap/Adobe-CNS1-H-Mac
gs/Resource/CMap/Adobe-CNS1-UCS2
gs/Resource/CMap/Adobe-GB1-GBK-EUC
gs/Resource/CMap/Adobe-GB1-GBpc-EUC
gs/Resource/CMap/Adobe-GB1-H-CID
gs/Resource/CMap/Adobe-GB1-H-Host
gs/Resource/CMap/Adobe-GB1-H-Mac
gs/Resource/CMap/Adobe-GB1-UCS2
gs/Resource/CMap/Adobe-Japan1-90ms-RKSJ
gs/Resource/CMap/Adobe-Japan1-90pv-RKSJ
gs/Resource/CMap/Adobe-Japan1-H-CID
gs/Resource/CMap/Adobe-Japan1-H-Host
gs/Resource/CMap/Adobe-Japan1-H-Mac
gs/Resource/CMap/Adobe-Japan1-PS-H
gs/Resource/CMap/Adobe-Japan1-PS-V
gs/Resource/CMap/Adobe-Japan1-UCS2
gs/Resource/CMap/Adobe-Japan2-0
gs/Resource/CMap/Adobe-Korea1-H-CID
gs/Resource/CMap/Adobe-Korea1-H-Host
gs/Resource/CMap/Adobe-Korea1-H-Mac
gs/Resource/CMap/Adobe-Korea1-KSCms-UHC
gs/Resource/CMap/Adobe-Korea1-KSCpc-EUC
gs/Resource/CMap/Adobe-Korea1-UCS2
gs/Resource/CMap/B5pc-UCS2
gs/Resource/CMap/B5pc-UCS2C
gs/Resource/CMap/CNS01-RKSJ-H
gs/Resource/CMap/CNS02-RKSJ-H
gs/Resource/CMap/CNS03-RKSJ-H
gs/Resource/CMap/CNS04-RKSJ-H
gs/Resource/CMap/CNS05-RKSJ-H
gs/Resource/CMap/CNS06-RKSJ-H
gs/Resource/CMap/CNS07-RKSJ-H
gs/Resource/CMap/CNS15-RKSJ-H
gs/Resource/CMap/ETen-B5-UCS2
gs/Resource/CMap/GB-RKSJ-H
gs/Resource/CMap/GBK-EUC-UCS2
gs/Resource/CMap/GBT-RKSJ-H
gs/Resource/CMap/GBpc-EUC-UCS2
gs/Resource/CMap/GBpc-EUC-UCS2C
gs/Resource/CMap/HK-RKSJ-H
gs/Resource/CMap/Hojo-EUC-H
gs/Resource/CMap/Hojo-EUC-V
gs/Resource/CMap/Hojo-H
gs/Resource/CMap/Hojo-RKSJ-H
gs/Resource/CMap/Hojo-V
gs/Resource/CMap/Identity-UTF16-H
gs/Resource/CMap/Identity-UTF16-V
gs/Resource/CMap/KSC-RKSJ-H
gs/Resource/CMap/KSC2-RKSJ-H
gs/Resource/CMap/KSCms-UHC-UCS2
gs/Resource/CMap/KSCpc-EUC-UCS2
gs/Resource/CMap/KSCpc-EUC-UCS2C
gs/Resource/CMap/TCVN-RKSJ-H
gs/Resource/CMap/UCS2-90ms-RKSJ
gs/Resource/CMap/UCS2-90pv-RKSJ
gs/Resource/CMap/UCS2-B5pc
gs/Resource/CMap/UCS2-ETen-B5
gs/Resource/CMap/UCS2-GBK-EUC
gs/Resource/CMap/UCS2-GBpc-EUC
gs/Resource/CMap/UCS2-KSCms-UHC
gs/Resource/CMap/UCS2-KSCpc-EUC
gs/Resource/CMap/UniCNS-UTF16-H
gs/Resource/CMap/UniCNS-UTF32-H
gs/Resource/CMap/UniCNS-UTF8-H
gs/Resource/CMap/UniGB-UTF16-H
gs/Resource/CMap/UniGB-UTF32-H
gs/Resource/CMap/UniGB-UTF8-H
gs/Resource/CMap/UniHojo-UCS2-H
gs/Resource/CMap/UniHojo-UCS2-V
gs/Resource/CMap/UniHojo-UTF16-H
gs/Resource/CMap/UniHojo-UTF16-V
gs/Resource/CMap/UniHojo-UTF32-H
gs/Resource/CMap/UniHojo-UTF32-V
gs/Resource/CMap/UniHojo-UTF8-H
gs/Resource/CMap/UniHojo-UTF8-V
gs/Resource/CMap/UniJIS-UTF16-H
gs/Resource/CMap/UniJIS-UTF32-H
gs/Resource/CMap/UniJIS-UTF8-H
gs/Resource/CMap/UniJIS2004-UTF16-H
gs/Resource/CMap/UniJIS2004-UTF32-H
gs/Resource/CMap/UniJIS2004-UTF8-H
gs/Resource/CMap/UniJISX0213-UTF32-H
gs/Resource/CMap/UniJISX02132004-UTF32-H
gs/Resource/CMap/UniKS-UTF16-H
gs/Resource/CMap/UniKS-UTF32-H
gs/Resource/CMap/UniKS-UTF8-H


2011-07-26 15:56:48 -0600
Henry Stiles <henry.stiles@artifex.com>
9adac36488e3a7dd6ed92b80dfcfb1b2866ef50b

Fix broken build - make requires tab separators, not spaces.

gs/base/devs.mak


2011-07-25 16:29:28 +0100
Robin Watts <Robin.Watts@artifex.com>
0eaf43f99eaeadda5118335ec1feb26db1733aed

Further updates to mkromfs ps compaction.

Refactor the postscript compaction routines into a state machine.
Add options to compact using binary postscript encodings, currently
disabled until we drop language level 1 from the interpreter.

Further refactor it to allow it to work from a generic file-like
interface, rather than a file. This enables us to use it on the
merged file (which is held in memory, not on disc) too.

With binary encoding enabled we get the rom down to 6.8Meg. Without
that we get 7.1Meg. Without any compaction, 7.8Meg.

No cluster differences expected.

gs/base/mkromfs.c


2011-07-26 20:21:29 +0100
Ken Sharp <ken.sharp@artifex.com>
7d2d1f22ddf751fe2d6e3f9c5821fbc30a102a6a

Include only one copy of hte Adbove Glyph List

ps2write and text write both need copies of the Adobe Glyph List, we were
holding one copy each, this commit makes them use the same information, saving space.

Also resolves Bug #688709 "Updated Adobe Glyph List"

No differences expected.

gs/base/devs.mak
gs/base/gdevagl.c
gs/base/gdevagl.h
gs/base/gdevpdfu.c
gs/base/gdevtxtw.c
gs/base/gs_agl.h


2011-07-25 09:05:44 -0700
Ray Johnston <ray.johnston@artifex.com>
cb048fc7c5fdfe82550b8f0a80de2ff5fd64739f

Fix freeing of monitor and semaphores for ICC cache. Bug 692372, customer 580.

Rather than gs_free_object, monitors and semaphores should be freed with the functions
which clean up and OS interface parts, gx_monitor_free and gx_semaphore_free. By not
doing this we were leaving handles in use on Windows.

gs/base/gsicc_cache.c


2011-07-26 12:16:04 -0700
Michael Vrhel <michael.vrhel@artifex.com>
0644acdc8866c32e16df09fae182efa3cddb23d5

Change of Default CMYK profile to one created by us to emulate V2 SWOP with reduced footprint.

Reviewed differences from this commit. With bmpcmp -16 the diffs amounted to halftone differences
with nothing visible.

gs/iccprofiles/default_cmyk.icc


2011-07-23 00:46:01 +0100
Robin Watts <Robin.Watts@artifex.com>
6039e0750306e2c3442b03c9ed5f7afee33a5540

mkromfs improvements, plus associated makefile changes.

Enable Rays code to flatten the gs startup postscript files into one.
The code failed if the line length was too short, and could corrupt
data when splitting over 2 blocks. Both fixed.

Also add -C and -B options to allow us to compact other postscript
files (without flattening). Very simple operation, but seems effective.

Saves 640k on rom size after compression.

Cluster testing shows 6 changes to the halftoning on cups files.
Impossible to tell if they are progressions or regressions, but
seems unlikely to be caused by this.

gs/base/mkromfs.c
gs/psi/psromfs.mak


2011-07-26 14:49:26 +0100
Chris Liddell <chris.liddell@artifex.com>
5e687126be8f4b7bc870fc58530f9343392670b5

Bug 691699: user specified cups install paths.

Not quite as the bug describes, but we now implement --with-cups-serverbin,
--with-cups-serverroot and --with-cups-datadir to allow the user to
override the paths normally read from the cups-config utility.

No cluster differences.

gs/base/configure.ac


2011-07-26 13:15:44 +0100
Chris Liddell <chris.liddell@artifex.com>
1094db4129bb70f9f7a0222683bc7f299cf4629a

Bug 691956: make installing the cups tools optional

Introduces a --with-cups-install option to configure. To include the
cups tools and associated data files in Ghostscript's "install" target
you will have to specify "--with-cups-install" at configure time.

No cluster differences.

gs/base/Makefile.in
gs/base/configure.ac
gs/cups/cups.mak


2011-07-25 22:42:34 -0700
Michael Vrhel <michael.vrhel@artifex.com>
eaec68d05c8d223cb97d89b6a3a9a96e550feeb2

Change of default_rgb.icc to our own sRGB ICC profile.

This results in very minor color diffs in a few files. I reviewed the diffs and everything is fine.

gs/iccprofiles/default_rgb.icc
gs/iccprofiles/srgb.icc


2011-07-25 19:03:42 -0600
Henry Stiles <henry.stiles@artifex.com>
7ddcbdfbded0bae41818eeed4470686c911f2bc7

Fixes 692360 - the x11cmyk get bits procedure would only work properly
with a client supplied data pointer.

gs/base/gdevxalt.c


2011-07-25 12:34:59 -0600
Henry Stiles <henry.stiles@artifex.com>
b9ff4a970e22194ecc894fe2460b88bc01726067

Fixes 689502 - remove obsolete scripts.

CLUSTER_UNTESTED

gs/lib/bdftops
gs/lib/bdftops.bat
gs/lib/bdftops.cmd
gs/lib/bdftops.ps
gs/lib/fixmswrd.pl
gs/lib/pv.sh


2011-08-05 09:02:28 -0600
Henry Stiles <henry.stiles@artifex.com>
91954fa8aadd8f7168a4bfa5e219c5c73a5e7477

9.04 NEWS file.

NEWS


2011-08-05 12:07:10 +0100
Chris Liddell <chris.liddell@artifex.com>
24dd98a5274a3c43bb2b8d09ad3a29faa77e2aa8

Ensure Win UNICODE/UTF8 code is disabled for ls build

CLUSTER_UNTESTED

language_switch/pspcl6_msvc.mak


2011-08-05 12:05:23 +0100
Chris Liddell <chris.liddell@artifex.com>
fac99700ffb230eaa4563dafd5af07033e5c608e

Remove a now spurious debug message.

CLUSTER_UNTESTED

gs/cups/gdevcups.c


2011-08-05 09:47:19 +0100
Chris Liddell <chris.liddell@artifex.com>
ba7dbfdcaf930889e8f278629d646685ccf69405

Prep the 9.04 release.

Remove the "RELEASE CANDIDATE" string, bring the changelog up to date since
the RC, and revise the date.

CLUSTER_UNTESTED

gs/base/gscdef.c
gs/base/version.mak
gs/doc/API.htm
gs/doc/C-style.htm
gs/doc/Commprod.htm
gs/doc/DLL.htm
gs/doc/Deprecated.htm
gs/doc/Details8.htm
gs/doc/Details9.htm
gs/doc/Develop.htm
gs/doc/Devices.htm
gs/doc/Drivers.htm
gs/doc/Fonts.htm
gs/doc/Helpers.htm
gs/doc/History1.htm
gs/doc/History2.htm
gs/doc/History3.htm
gs/doc/History4.htm
gs/doc/History5.htm
gs/doc/History6.htm
gs/doc/History7.htm
gs/doc/History8.htm
gs/doc/History9.htm
gs/doc/Install.htm
gs/doc/Issues.htm
gs/doc/Language.htm
gs/doc/Lib.htm
gs/doc/Make.htm
gs/doc/News.htm
gs/doc/Projects.htm
gs/doc/Ps-style.htm
gs/doc/Ps2epsi.htm
gs/doc/Ps2pdf.htm
gs/doc/Ps2ps2.htm
gs/doc/Psfiles.htm
gs/doc/Readme.htm
gs/doc/Release.htm
gs/doc/Source.htm
gs/doc/Unix-lpr.htm
gs/doc/Use.htm
gs/doc/Xfonts.htm
gs/doc/gs-vms.hlp
gs/man/dvipdf.1
gs/man/font2c.1
gs/man/gs.1
gs/man/gslp.1
gs/man/gsnd.1
gs/man/pdf2dsc.1
gs/man/pdf2ps.1
gs/man/pdfopt.1
gs/man/pf2afm.1
gs/man/pfbtopfa.1
gs/man/printafm.1
gs/man/ps2ascii.1
gs/man/ps2epsi.1
gs/man/ps2pdf.1
gs/man/ps2pdfwr.1
gs/man/ps2ps.1
gs/man/wftopfa.1


2011-08-04 14:40:12 +0100
Chris Liddell <chris.liddell@artifex.com>
e173d22697b5489624783a805311337d053e53fe

Bug 691586: again, ensure that GS knows when cups changes the media size

Move the fix for Bug 692393 to immediately after the call to
gdev_prn_put_params() - before the call to gx_device_set_media_size()
as that can also change the device's width and height settings.

With this fix, I have also removed the temporary workaround put in place
with commits 16c410fc29575abffb60926949433653186915fd and
bd33c8f57b1a6e3d365ef0efd8dd7571a14310fa.

No cluster differences.

gs/cups/gdevcups.c


2011-08-04 10:05:13 +0100
Chris Liddell <chris.liddell@artifex.com>
6fc00870dd9d1e17709b532f425578b229a61544

Revise Luratech section of build docs.......

... to reflect that we now look for the Luratech code under
gs/luratech/ldf_jb2 and gs/luratech/lwf_jp2 instead of gs/lwf_jp2 and
gs/ldf_jb2

CLUSTER_UNTESTED

gs/doc/Make.htm


2011-08-03 17:44:55 +0100
Chris Liddell <chris.liddell@artifex.com>
a26ed9754118ab5a6027346f2e4d0c41077dfc1c

Bug 692393: ensure GS realises cups changed the page dimensions.

After having done media selection from the cups media list, we need to
ensure that GS realises that page dimensions in the device structure
may have changed since the raster memory was last created - this ensures
that GS will reallocate the memory, and correctly setup the
line_ptrs array for the new page size.

No cluster differences.

gs/cups/gdevcups.c


2011-08-01 16:28:52 +0200
Till Kamppeter <till.kamppeter@gmail.com>
e6f2128efc15316a586813ff314bc037b1d36856

Fixes on the gstoraster CUPS filter

1. gstoraster crashes when run outside CUPS (bug #692384)

2. All error messages issued by gstoraster are without newline (bug #692385)

Thanks to Tim Waugh from Red Hat for the patches.

gs/cups/colord.c
gs/cups/gstoraster.c


2011-07-30 17:48:14 +0100
Robin Watts <Robin.Watts@artifex.com>
9fcefea7e6e770efed7a237c3fc0e8649fba342a

Fix bug 692349: UNICODE build of gs not available with VS2003 or VS6.

Apply a slightly tweaked version of alexchers patch to define wmemset
when it's not provided by the headers.

No cluster differences expected.

gs/psi/dwtext.c
gs/psi/msvc.mak


2011-08-01 12:18:25 +0100
Robin Watts <Robin.Watts@artifex.com>
690a9464f7a7ff524519587b95ba8505b0f823d9

Tweak to tkampeters previous commit to workaround bug 691586.

Avoid warnings given on some platforms about "unreachable code" by
using an informative #define.

No cluster differences expected.

gs/cups/gdevcups.c


2011-08-01 13:05:09 +0200
Till Kamppeter <till.kamppeter@gmail.com>
b4c67383d9e71b468b5384b7a63095864d3a9ae7

CUPS Raster output device: Ignore RIP_MAX_CACHE environment variable

Ghostscript is (at least currently) not able to work with hard-limited
space parameters. It crashes with a segmentation fault on many input
files then. Leaving the setting of these parameters fully automatic
Ghostscript works just fine. As in most distributions (Currently all
except Debian, Ubuntu, and their derivatives) CUPS imposes a hard
limit via the RIP_MAX_CACHE environment variable, the only way to
assure reliable working of Ghostscript is to ignore the parameter,
leaving the space parameters in automatic mode. For CUPS this should
be no regression, as print queues with other Ghostscript drivers (like
pxlcolor, ljet4, ...) worked without hard limits all the time and no
one complained.

To ignore this RIP_MAX_CACHE we simply add a "return" right at the
beginning of this function. It will be removed when a real fix gets
into place.

See http://bugs.ghostscript.com/show_bug.cgi?id=691586

gs/cups/gdevcups.c


2011-07-30 11:56:53 +0200
Till Kamppeter <till.kamppeter@gmail.com>
83abb6ca67829a1273ed4fdfc894a6af44c5c5ad

Added "-dNOINTERPOLATE" to the Ghostscript command lines of the CUPS filters

This makes rendering significantly faster and the output of normal
files comming as print jobs from applications does not show any
visible difference.

gs/cups/gstoraster.c
gs/cups/pstopxl.in


2011-07-29 14:01:58 -0700
Michael Vrhel <michael.vrhel@artifex.com>
83c7aba31ab324d015a39ec23ab9eb861c23d787

Another fix for cups RGBW. This gets the color set up properly for RGB.

gs/base/gsicc_manage.c
gs/base/gsicc_manage.h
gs/cups/gdevcups.c


2011-07-29 12:18:04 -0700
Michael Vrhel <michael.vrhel@artifex.com>
db4b6b6d07c2b4a97bd0add6e3169874ec2d1af7

Fix for cups RGBW color space so that transparency works properly.

gs/cups/gdevcups.c


2011-07-29 08:14:04 -0700
Michael Vrhel <michael.vrhel@artifex.com>
d1d700d4d052e3a9a061e5d6c61e3a4a30e5135d

A test for fixing RGBW in gdevcups.c

gs/cups/gdevcups.c


2011-07-29 10:12:26 +0100
Chris Liddell <chris.liddell@artifex.com>
43f6fff7185f868104f6ba4afc102af4f9fe8f3f

Update the docs, version numbers, and dates for 9.04 rc1

gs/base/gscdef.c
gs/base/version.mak
gs/doc/API.htm
gs/doc/C-style.htm
gs/doc/Commprod.htm
gs/doc/DLL.htm
gs/doc/Deprecated.htm
gs/doc/Details8.htm
gs/doc/Details9.htm
gs/doc/Develop.htm
gs/doc/Devices.htm
gs/doc/Drivers.htm
gs/doc/Fonts.htm
gs/doc/Helpers.htm
gs/doc/History1.htm
gs/doc/History2.htm
gs/doc/History3.htm
gs/doc/History4.htm
gs/doc/History5.htm
gs/doc/History6.htm
gs/doc/History7.htm
gs/doc/History8.htm
gs/doc/History9.htm
gs/doc/Install.htm
gs/doc/Issues.htm
gs/doc/Language.htm
gs/doc/Lib.htm
gs/doc/Make.htm
gs/doc/News.htm
gs/doc/Projects.htm
gs/doc/Ps-style.htm
gs/doc/Ps2epsi.htm
gs/doc/Ps2pdf.htm
gs/doc/Ps2ps2.htm
gs/doc/Psfiles.htm
gs/doc/Readme.htm
gs/doc/Release.htm
gs/doc/Source.htm
gs/doc/Unix-lpr.htm
gs/doc/Use.htm
gs/doc/Xfonts.htm
gs/doc/gs-vms.hlp
gs/man/dvipdf.1
gs/man/font2c.1
gs/man/gs.1
gs/man/gslp.1
gs/man/gsnd.1
gs/man/pdf2dsc.1
gs/man/pdf2ps.1
gs/man/pdfopt.1
gs/man/pf2afm.1
gs/man/pfbtopfa.1
gs/man/printafm.1
gs/man/ps2ascii.1
gs/man/ps2epsi.1
gs/man/ps2pdf.1
gs/man/ps2pdfwr.1
gs/man/ps2ps.1
gs/man/wftopfa.1
pl/pl.mak


2011-07-29 09:40:34 +0100
Chris Liddell <chris.liddell@artifex.com>
d248b98753421668ca683d074709a9422267b9ba

Change the expected directory for luratech.

For the build system to automatically include the luratech JPX and JBIG2
code, we previously checked for the existence of lwf_jp2 and ldf_jb2
directories under the Ghostscript source dir. This changes it to check
for <gs>/luratech/lwf_jp2 and <gs>/luratech/ldf_jb2 instead.

CLUSTER_UNTESTED

gs/base/configure.ac
gs/psi/msvc.mak


2011-07-28 22:28:37 -0600
Henry Stiles <henry.stiles@artifex.com>
ea57ffb4eb8e3c2bd9ae80547cd7ad011631e212

Restore X11 device to the default unix device.

In setting up autoconf to detect X11 (9b7298f) the X11 devices were
not put back at the beginning of the device list and so were no longer
the default device.

main/pcl6_gcc.mak


2011-07-28 17:16:35 +0100
Robin Watts <Robin.Watts@artifex.com>
c1cfbc2655dce2a1c3cc73caf0af54a51db61bfe

Changes to lcms v1 to spot failed allocations.

lcms v1 sometimes forgets to deal with failed allocations. Patch at
least some of these problems.

Driven by bug 692352. Sufficient to make it run to completion now.

gs/lcms/src/cmsgmt.c
gs/lcms/src/cmslut.c
gs/lcms/src/cmsps2.c
gs/lcms/src/cmssamp.c
gs/lcms/src/cmsvirt.c
gs/lcms/src/cmswtpnt.c
gs/lcms/src/cmsxform.c


2011-07-28 17:08:58 +0100
Robin Watts <Robin.Watts@artifex.com>
0f6629c581fb56ca33fb7ec57d757ea96f236887

Check for failure to allocate icclink in shading.

When calling shade_init_fill_state, check for a return code to indicate
failure. Trigger this case when an attempt to allocate an icclink
fails.

No cluster differences expected.

gs/base/gxshade.c
gs/base/gxshade.h
gs/base/gxshade1.c
gs/base/gxshade4.c


2011-07-28 15:07:14 +0100
Robin Watts <Robin.Watts@artifex.com>
f31edd69e23236fbae4b986883df8e0f43f15af6

Fix typo in rc_decrement description string.

Simple typo fix. CLUSTER_UNTESTED.

gs/base/gxclrast.c


2011-07-28 10:21:31 +0100
Chris Liddell <chris.liddell@artifex.com>
2364173a3ea2ac1e58b53a68e775d98157035b03

Disable the Windows UNICODE/UTF8 code for now.

CLUSTER_UNTESTED

gs/psi/msvc.mak


2011-07-27 22:12:41 -0700
Michael Vrhel <michael.vrhel@artifex.com>
cf056ad9ccf42b8c31e6c84ed0ee6d30e0fb7455

Update of Use.htm to include new color control options.

gs/doc/Use.htm


2011-07-27 16:25:19 +0100
Robin Watts <Robin.Watts@artifex.com>
12faa934ff19d95f08fc9db33d7a6b288ba67ee2

Fix Bug 692368; SEGV with clist transparency pattern in clist rendering.

The invocation/file given in the bug uses banded rendering (clist).
While drawing a band, it uses a pattern with transparency, that is
itself rendered by a clist (using the new pattern clist code).

A fill rectangle is being done that tries to call the pattern clist
tiling code without the fill_trans_buffer having been setup, and
this causes a SEGV.

The reason for this appears to be that the device used by the
banded isn't a pdf14 device - instead it's a clipper device wrapping
the pdf14 device. The clipper device does not call gx_forward_fill_path,
but instead calls gx_default_fill_path, meaning that the special
pdf14 handling done to setup the fill_trans_buffer isn't done.

Making the commit call onwards to gx_forward_fill_path doesn't solve the
problem either, as that results in no actual clipping being done.

The fix, therefore appears to be to implement a clipping version of
fill_path.

No cluster differences expected.

gs/base/gdevp14.c
gs/base/gxclip.c
gs/base/gxclip.h


2011-07-27 22:14:10 +0200
Till Kamppeter <till.kamppeter@gmail.com>
3639f0da216f0472658b37ee96726b80abdc7d56

Fixed the problem that PCL-XL output files got huge after introduction of color management

The pxlmono and pxlcolor output devices produce PCL XL (PCL 6). With
the introduction of color management, the size of the output files
often got 10 times larger as before and so PCL XL jobs often did not
print as they exhausted the memory of the printer.

According to the contributor of this patch, Shailesh Mistry, the PDFs
leading to that problem have a DeviceRGB image which is translated
into an ICC profile and passed up but the pcl/pxl can not handle
it. This patch looks for incoming ICC profiles and resolves it into
the base colour which can be handled at this level.

The patch returns the size of the PCL XL output files to the old
values from Ghostscript 8.x.

Fixes bug 692329.

gs/base/gdevpx.c


2011-07-27 20:37:20 +0200
Till Kamppeter <till.kamppeter@gmail.com>
d6e940a92e47f0110438cf2f9bd6ebffa2f9e211

Fixes on the "pstopxl" CUPS filter

1. Use POSIX and not Perl regular expressions with sed. This makes the
script working on a wider scope of systems (Bug #692328).

2. Switch the Ghostscript output device "pxlmono" if the "pxlcolor" is
used but "Gray" chosen as "ColorModel" setting. Monochrome
"BitsPerPixel" settings do not work with "pxlcolor".

gs/cups/pstopxl.in


2011-07-27 10:41:14 -0700
Michael Vrhel <michael.vrhel@artifex.com>
fead331855bddda90406d220e84fe5a284b2daa9

Fix for Windows Display Device showing gray only

This returns the use of DeviceGrayToK=true/false to set
if the user wants DeviceGray to map to K only for a
CMYK device. Also, this fixes a problem where high
level gray scale images were always going to composite
an not K only. Bug 692204.

gs/base/gsdparam.c
gs/base/gsicc_manage.c
gs/base/gxclrast.c
gs/psi/zdevice.c


2011-07-27 09:14:04 -0700
Michael Vrhel <michael.vrhel@artifex.com>
dc18980047abde427405973a6c9452959fb8e93c

Replacement of default gray ICC profile with Artifex generated versions

I reviewed the bmpcmp results and the relatively few diffs are minor.

gs/iccprofiles/default_gray.icc
gs/iccprofiles/sgray.icc


2011-07-26 12:16:04 -0700
Michael Vrhel <michael.vrhel@artifex.com>
cdbc852a9220c324b9094c448e29ce3548a5b8c3

Change of Default CMYK profile to one created by us to emulate V2 SWOP with reduced footprint.

Reviewed differences from this commit. With bmpcmp -16 the diffs amounted to halftone differences
with nothing visible.

gs/iccprofiles/default_cmyk.icc


2011-07-25 22:42:34 -0700
Michael Vrhel <michael.vrhel@artifex.com>
dca23749d5222c591927e78fd4f79a8d649ecd7c

Change of default_rgb.icc to our own sRGB ICC profile.

This results in very minor color diffs in a few files. I reviewed the diffs and everything is fine.

gs/iccprofiles/default_rgb.icc
gs/iccprofiles/srgb.icc


2011-07-25 19:03:42 -0600
Henry Stiles <henry.stiles@artifex.com>
ba7054ed86bdb26c1c19aad0d5a4313e8b96c4df

Fixes 692360 - the x11cmyk get bits procedure would only work properly
with a client supplied data pointer.

gs/base/gdevxalt.c


2011-07-25 12:34:59 -0600
Henry Stiles <henry.stiles@artifex.com>
2ed6a01d99cc63f9953be1e29b9d05643e9ada73

Fixes 689502 - remove obsolete scripts.

CLUSTER_UNTESTED

gs/lib/bdftops
gs/lib/bdftops.bat
gs/lib/bdftops.cmd
gs/lib/bdftops.ps
gs/lib/fixmswrd.pl
gs/lib/pv.sh


2011-07-26 13:15:44 +0100
Chris Liddell <chris.liddell@artifex.com>
7ec7b1463507ba578e123dc15f4219472a09930f

Bug 691956: make installing the cups tools optional

Introduces a --with-cups-install option to configure. To include the
cups tools and associated data files in Ghostscript's "install" target
you will have to specify "--with-cups-install" at configure time.

No cluster differences.

gs/base/Makefile.in
gs/base/configure.ac
gs/cups/cups.mak



Version 9.04 (2011-08-05)

This is the fourth full release in the stable 9.x series.

This release includes fixes and solutions for a number of serious problems from the earlier 9.x releases and so we strongly encourage those using earlier 9.x releases to upgrade to this new version, to reap the benefits of those fixes.

In addition, those still using Ghostscript 8.71 and earlier should begin migration to 9.x soon since many improvements, features and fixes from the 9.x versions are impractical to back-port to these legacy versions.

Highlights in this release include:

For a list of open issues, or to report problems, please visit bugs.ghostscript.com.

Incompatible changes

Deprecated file "gs/base/errors.h" removed, psi/ierrors.h should be used instead.

The eXternal Fonts (XFonts) functionality, marked as deprecated in 9.02 has now been fully removed.

No other recorded incompatible changes.

Changelog

2011-08-04 14:40:12 +0100
Chris Liddell <chris.liddell@artifex.com>
e173d22697b5489624783a805311337d053e53fe


Bug 691586: again, ensure that GS knows when cups changes the media size

Move the fix for Bug 692393 to immediately after the call to
gdev_prn_put_params() - before the call to gx_device_set_media_size()
as that can also change the device's width and height settings.

With this fix, I have also removed the temporary workaround put in place
with commits 16c410fc29575abffb60926949433653186915fd and
bd33c8f57b1a6e3d365ef0efd8dd7571a14310fa.

No cluster differences.

gs/cups/gdevcups.c

2011-08-04 10:05:13 +0100
Chris Liddell <chris.liddell@artifex.com>
6fc00870dd9d1e17709b532f425578b229a61544


Revise Luratech section of build docs.......

... to reflect that we now look for the Luratech code under
gs/luratech/ldf_jb2 and gs/luratech/lwf_jp2 instead of gs/lwf_jp2 and
gs/ldf_jb2

CLUSTER_UNTESTED

gs/doc/Make.htm

2011-08-03 17:44:55 +0100
Chris Liddell <chris.liddell@artifex.com>
a26ed9754118ab5a6027346f2e4d0c41077dfc1c


Bug 692393: ensure GS realises cups changed the page dimensions.

After having done media selection from the cups media list, we need to
ensure that GS realises that page dimensions in the device structure
may have changed since the raster memory was last created - this ensures
that GS will reallocate the memory, and correctly setup the
line_ptrs array for the new page size.

No cluster differences.

gs/cups/gdevcups.c

2011-08-01 16:28:52 +0200
Till Kamppeter <till.kamppeter@gmail.com>
e6f2128efc15316a586813ff314bc037b1d36856


Fixes on the gstoraster CUPS filter

1. gstoraster crashes when run outside CUPS (bug #692384)

2. All error messages issued by gstoraster are without newline (bug #692385)

Thanks to Tim Waugh from Red Hat for the patches.

gs/cups/colord.c
gs/cups/gstoraster.c

2011-07-30 17:48:14 +0100
Robin Watts <Robin.Watts@artifex.com>
9fcefea7e6e770efed7a237c3fc0e8649fba342a


Fix bug 692349: UNICODE build of gs not available with VS2003 or VS6.

Apply a slightly tweaked version of alexchers patch to define wmemset
when it's not provided by the headers.

No cluster differences expected.

gs/psi/dwtext.c
gs/psi/msvc.mak

2011-08-01 12:18:25 +0100
Robin Watts <Robin.Watts@artifex.com>
690a9464f7a7ff524519587b95ba8505b0f823d9


Tweak to tkampeters previous commit to workaround bug 691586.

Avoid warnings given on some platforms about "unreachable code" by
using an informative #define.

No cluster differences expected.

gs/cups/gdevcups.c

2011-08-01 13:05:09 +0200
Till Kamppeter <till.kamppeter@gmail.com>
b4c67383d9e71b468b5384b7a63095864d3a9ae7


CUPS Raster output device: Ignore RIP_MAX_CACHE environment variable

Ghostscript is (at least currently) not able to work with hard-limited
space parameters. It crashes with a segmentation fault on many input
files then. Leaving the setting of these parameters fully automatic
Ghostscript works just fine. As in most distributions (Currently all
except Debian, Ubuntu, and their derivatives) CUPS imposes a hard
limit via the RIP_MAX_CACHE environment variable, the only way to
assure reliable working of Ghostscript is to ignore the parameter,
leaving the space parameters in automatic mode. For CUPS this should
be no regression, as print queues with other Ghostscript drivers (like
pxlcolor, ljet4, ...) worked without hard limits all the time and no
one complained.

To ignore this RIP_MAX_CACHE we simply add a "return" right at the
beginning of this function. It will be removed when a real fix gets
into place.

See http://bugs.ghostscript.com/show_bug.cgi?id=691586

gs/cups/gdevcups.c

2011-07-30 11:56:53 +0200
Till Kamppeter <till.kamppeter@gmail.com>
83abb6ca67829a1273ed4fdfc894a6af44c5c5ad

Added "-dNOINTERPOLATE" to the Ghostscript command lines of the CUPS filters

This makes rendering significantly faster and the output of normal
files comming as print jobs from applications does not show any
visible difference.

gs/cups/gstoraster.c
gs/cups/pstopxl.in

2011-07-29 14:01:58 -0700
Michael Vrhel <michael.vrhel@artifex.com>
83c7aba31ab324d015a39ec23ab9eb861c23d787


Another fix for cups RGBW. This gets the color set up properly for RGB.

gs/base/gsicc_manage.c
gs/base/gsicc_manage.h
gs/cups/gdevcups.c

2011-07-29 12:18:04 -0700
Michael Vrhel <michael.vrhel@artifex.com>
db4b6b6d07c2b4a97bd0add6e3169874ec2d1af7


Fix for cups RGBW color space so that transparency works properly.

gs/cups/gdevcups.c

2011-07-29 08:14:04 -0700
Michael Vrhel <michael.vrhel@artifex.com>
d1d700d4d052e3a9a061e5d6c61e3a4a30e5135d


A test for fixing RGBW in gdevcups.c

gs/cups/gdevcups.c

2011-07-29 10:12:26 +0100
Chris Liddell <chris.liddell@artifex.com>
43f6fff7185f868104f6ba4afc102af4f9fe8f3f


Update the docs, version numbers, and dates for 9.04 rc1

gs/base/gscdef.c
gs/base/version.mak
gs/doc/API.htm
gs/doc/C-style.htm
gs/doc/Commprod.htm
gs/doc/DLL.htm
gs/doc/Deprecated.htm
gs/doc/Details8.htm
gs/doc/Details9.htm
gs/doc/Develop.htm
gs/doc/Devices.htm
gs/doc/Drivers.htm
gs/doc/Fonts.htm
gs/doc/Helpers.htm
gs/doc/History1.htm
gs/doc/History2.htm
gs/doc/History3.htm
gs/doc/History4.htm
gs/doc/History5.htm
gs/doc/History6.htm
gs/doc/History7.htm
gs/doc/History8.htm
gs/doc/History9.htm
gs/doc/Install.htm
gs/doc/Issues.htm
gs/doc/Language.htm
gs/doc/Lib.htm
gs/doc/Make.htm
gs/doc/News.htm
gs/doc/Projects.htm
gs/doc/Ps-style.htm
gs/doc/Ps2epsi.htm
gs/doc/Ps2pdf.htm
gs/doc/Ps2ps2.htm
gs/doc/Psfiles.htm
gs/doc/Readme.htm
gs/doc/Release.htm
gs/doc/Source.htm
gs/doc/Unix-lpr.htm
gs/doc/Use.htm
gs/doc/Xfonts.htm
gs/doc/gs-vms.hlp
gs/man/dvipdf.1
gs/man/font2c.1
gs/man/gs.1
gs/man/gslp.1
gs/man/gsnd.1
gs/man/pdf2dsc.1
gs/man/pdf2ps.1
gs/man/pdfopt.1
gs/man/pf2afm.1
gs/man/pfbtopfa.1
gs/man/printafm.1
gs/man/ps2ascii.1
gs/man/ps2epsi.1
gs/man/ps2pdf.1
gs/man/ps2pdfwr.1
gs/man/ps2ps.1
gs/man/wftopfa.1
pl/pl.mak

2011-07-29 09:40:34 +0100
Chris Liddell <chris.liddell@artifex.com>
d248b98753421668ca683d074709a9422267b9ba


Change the expected directory for luratech.

For the build system to automatically include the luratech JPX and JBIG2
code, we previously checked for the existence of lwf_jp2 and ldf_jb2
directories under the Ghostscript source dir. This changes it to check
for <gs>/luratech/lwf_jp2 and <gs>/luratech/ldf_jb2 instead.

CLUSTER_UNTESTED

gs/base/configure.ac
gs/psi/msvc.mak

2011-07-28 22:28:37 -0600
Henry Stiles <henry.stiles@artifex.com>
ea57ffb4eb8e3c2bd9ae80547cd7ad011631e212


Restore X11 device to the default unix device.

In setting up autoconf to detect X11 (9b7298f) the X11 devices were
not put back at the beginning of the device list and so were no longer
the default device.

main/pcl6_gcc.mak

2011-07-28 17:16:35 +0100
Robin Watts <Robin.Watts@artifex.com>
c1cfbc2655dce2a1c3cc73caf0af54a51db61bfe


Changes to lcms v1 to spot failed allocations.

lcms v1 sometimes forgets to deal with failed allocations. Patch at
least some of these problems.

Driven by bug 692352. Sufficient to make it run to completion now.

gs/lcms/src/cmsgmt.c
gs/lcms/src/cmslut.c
gs/lcms/src/cmsps2.c
gs/lcms/src/cmssamp.c
gs/lcms/src/cmsvirt.c
gs/lcms/src/cmswtpnt.c
gs/lcms/src/cmsxform.c

2011-07-28 17:08:58 +0100
Robin Watts <Robin.Watts@artifex.com>
0f6629c581fb56ca33fb7ec57d757ea96f236887


Check for failure to allocate icclink in shading.

When calling shade_init_fill_state, check for a return code to indicate
failure. Trigger this case when an attempt to allocate an icclink
fails.

No cluster differences expected.

gs/base/gxshade.c
gs/base/gxshade.h
gs/base/gxshade1.c
gs/base/gxshade4.c

2011-07-28 15:07:14 +0100
Robin Watts <Robin.Watts@artifex.com>
f31edd69e23236fbae4b986883df8e0f43f15af6


Fix typo in rc_decrement description string.

Simple typo fix. CLUSTER_UNTESTED.

gs/base/gxclrast.c

Changelog

2011-07-28 10:21:31 +0100
Chris Liddell <chris.liddell@artifex.com>
2364173a3ea2ac1e58b53a68e775d98157035b03


Disable the Windows UNICODE/UTF8 code for now.

CLUSTER_UNTESTED

gs/psi/msvc.mak

2011-07-27 22:12:41 -0700
Michael Vrhel <michael.vrhel@artifex.com>
cf056ad9ccf42b8c31e6c84ed0ee6d30e0fb7455


Update of Use.htm to include new color control options.

gs/doc/Use.htm

2011-07-27 16:25:19 +0100
Robin Watts <Robin.Watts@artifex.com>
12faa934ff19d95f08fc9db33d7a6b288ba67ee2


Fix Bug 692368; SEGV with clist transparency pattern in clist rendering.

The invocation/file given in the bug uses banded rendering (clist).
While drawing a band, it uses a pattern with transparency, that is
itself rendered by a clist (using the new pattern clist code).

A fill rectangle is being done that tries to call the pattern clist
tiling code without the fill_trans_buffer having been setup, and
this causes a SEGV.

The reason for this appears to be that the device used by the
banded isn't a pdf14 device - instead it's a clipper device wrapping
the pdf14 device. The clipper device does not call gx_forward_fill_path,
but instead calls gx_default_fill_path, meaning that the special
pdf14 handling done to setup the fill_trans_buffer isn't done.

Making the commit call onwards to gx_forward_fill_path doesn't solve the
problem either, as that results in no actual clipping being done.

The fix, therefore appears to be to implement a clipping version of
fill_path.

No cluster differences expected.

gs/base/gdevp14.c
gs/base/gxclip.c
gs/base/gxclip.h

2011-07-27 22:14:10 +0200
Till Kamppeter <till.kamppeter@gmail.com>
3639f0da216f0472658b37ee96726b80abdc7d56


Fixed the problem that PCL-XL output files got huge after introduction of color management

The pxlmono and pxlcolor output devices produce PCL XL (PCL 6). With
the introduction of color management, the size of the output files
often got 10 times larger as before and so PCL XL jobs often did not
print as they exhausted the memory of the printer.

According to the contributor of this patch, Shailesh Mistry, the PDFs
leading to that problem have a DeviceRGB image which is translated
into an ICC profile and passed up but the pcl/pxl can not handle
it. This patch looks for incoming ICC profiles and resolves it into
the base colour which can be handled at this level.

The patch returns the size of the PCL XL output files to the old
values from Ghostscript 8.x.

Fixes bug 692329.

gs/base/gdevpx.c

2011-07-27 20:37:20 +0200
Till Kamppeter <till.kamppeter@gmail.com>
d6e940a92e47f0110438cf2f9bd6ebffa2f9e211

Fixes on the "pstopxl" CUPS filter

1. Use POSIX and not Perl regular expressions with sed. This makes the
script working on a wider scope of systems (Bug #692328).

2. Switch the Ghostscript output device "pxlmono" if the "pxlcolor" is
used but "Gray" chosen as "ColorModel" setting. Monochrome
"BitsPerPixel" settings do not work with "pxlcolor".

gs/cups/pstopxl.in

2011-07-27 10:41:14 -0700
Michael Vrhel <michael.vrhel@artifex.com>
fead331855bddda90406d220e84fe5a284b2daa9


Fix for Windows Display Device showing gray only

This returns the use of DeviceGrayToK=true/false to set
if the user wants DeviceGray to map to K only for a
CMYK device. Also, this fixes a problem where high
level gray scale images were always going to composite
an not K only. Bug 692204.

gs/base/gsdparam.c
gs/base/gsicc_manage.c
gs/base/gxclrast.c
gs/psi/zdevice.c

2011-07-27 09:14:04 -0700
Michael Vrhel <michael.vrhel@artifex.com>
dc18980047abde427405973a6c9452959fb8e93c


Replacement of default gray ICC profile with Artifex generated versions

I reviewed the bmpcmp results and the relatively few diffs are minor.

gs/iccprofiles/default_gray.icc
gs/iccprofiles/sgray.icc

2011-07-26 12:16:04 -0700
Michael Vrhel <michael.vrhel@artifex.com>
cdbc852a9220c324b9094c448e29ce3548a5b8c3


Change of Default CMYK profile to one created by us to emulate V2 SWOP with reduced footprint.

Reviewed differences from this commit. With bmpcmp -16 the diffs amounted to halftone differences
with nothing visible.

gs/iccprofiles/default_cmyk.icc

2011-07-25 22:42:34 -0700
Michael Vrhel <michael.vrhel@artifex.com>
dca23749d5222c591927e78fd4f79a8d649ecd7c


Change of default_rgb.icc to our own sRGB ICC profile.

This results in very minor color diffs in a few files. I reviewed the diffs and everything is fine.

gs/iccprofiles/default_rgb.icc
gs/iccprofiles/srgb.icc

2011-07-25 19:03:42 -0600
Henry Stiles <henry.stiles@artifex.com>
ba7054ed86bdb26c1c19aad0d5a4313e8b96c4df


Fixes 692360 - the x11cmyk get bits procedure would only work properly
with a client supplied data pointer.

gs/base/gdevxalt.c

2011-07-25 12:34:59 -0600
Henry Stiles <henry.stiles@artifex.com>
2ed6a01d99cc63f9953be1e29b9d05643e9ada73


Fixes 689502 - remove obsolete scripts.

CLUSTER_UNTESTED

gs/lib/bdftops
gs/lib/bdftops.bat
gs/lib/bdftops.cmd
gs/lib/bdftops.ps
gs/lib/fixmswrd.pl
gs/lib/pv.sh

2011-07-26 13:15:44 +0100
Chris Liddell <chris.liddell@artifex.com>
7ec7b1463507ba578e123dc15f4219472a09930f


Bug 691956: make installing the cups tools optional

Introduces a --with-cups-install option to configure. To include the
cups tools and associated data files in Ghostscript's "install" target
you will have to specify "--with-cups-install" at configure time.

No cluster differences.

gs/base/Makefile.in
gs/base/configure.ac
gs/cups/cups.mak

2011-07-25 16:25:20 +0100
Chris Liddell <chris.liddell@artifex.com>
f62ce181e3a68d7f652d9e903c70bd1a67423782


Bug 692367: NULL out pointers for three tables in the context

Add "finalize" methods for gs_name_table, io_device_table and
font_dir tables which ensure that the pointers in the lib
context are set to NULL when the memory is released.

No cluster differences.

gs/base/gsfont.c
gs/base/gsiodev.c
gs/base/gsstruct.h
gs/base/gxfcache.h
gs/psi/iname.c

2011-07-25 16:19:19 +0100
Ken Sharp <ken.sharp@artifex.com>
7dee8c1639a55e5b6ae4051afcfed9caa82e48b5


Remove the last traces of OPDFReadProcsetPath

The old Procsets had to be moved from PostScript resources to C files, in order that
ps2write work with non-PostScript interpreters (XPS, PCL). As a result the
old OPDFReadProcsetPath is no longer used and has been removed.

gs/Resource/Init/gs_pdfwr.ps
gs/base/gdevpdf.c
gs/base/gdevpdfb.h
gs/base/gdevpdfp.c
gs/base/gdevpdfu.c
gs/base/gdevpdfx.h

2011-07-25 09:05:05 +0100
Ken Sharp <ken.sharp@artifex.com>
1562de0f7dc0615ed1397f42a7ad0eb23f4dcf22


Add some minimal documentation regarding the txtwrite device to devices.htm.

gs/doc/Devices.htm

2011-07-25 08:44:42 +0100
Ken Sharp <ken.sharp@artifex.com>
4e6a7b5c6fc0c202ba0d962cd19578162e1ce726


Add functionality to the textwrite device.

The existing textwrite device was a null device which emitted nothing. This
version actually extracts text from input documents. It uses ToUnicode CMaps,
GlyphNames2Unicode tables and glyph names in an attempt to map incoming text into
Unicode (UTF-16) values.

It currently has one switch 'TextFormat' which has two possible values, 0 or 1.
-dTextFormat=0 outputs a 'layout' representation of the original text. This
will attempt to produce text output which is similar in appearance to the original.

-dTextFormat=1 simply emits all the text as it is encountered, along with information
about the text state. It outputs the Font name, point size, rendering mode and
writing mode (WMode) as well as the start and ending co-ordinates of the text on the page
and the Unicode string representing the text. This is intended for those who
would like to manipulate the text into other formats.

The Adobe Glyph Names list is now embedded in the executable twice, in two
incompatible forms. A future enhanvement will be to only embed the list once.

gs/base/gdevagl.h
gs/base/gdevtxtw.c

2011-07-24 16:03:31 -0400
Alex Cherepanov <alex.cherepanov@artifex.com>
128b9fce26e82ef38cedded8fc35a4c99ef55bee


Fix a trivial Valgrind warning.

Reorder a logical expression to prevent the access to an unitialized
value. The only effect of the patch is some noise reduction in the
Valgrind log.

gs/base/gdevp14.c

2011-07-24 16:38:35 +0000
Robin Watts <robin@ghostscript.com>
961a9a98ecff7a30503ee0bd5d2973263114def7


Backout commit 7f5d3d7; 8 bit display device palette change.

Reverting earlier commit made to attempt to fix bug 692235. While
this change does give the display device a much nicer palette
to work with in 8 bits, it will break with all code that currently
exists to interface to the display device, such as gsview, as the
palette is not exported with the data.

Due to the looming release and the questions remaining to be answered
on the bug, we pull the change for now.

gs/base/gdevdsp.c
gs/psi/dpmain.c
gs/psi/dwimg.c
gs/psi/dxmain.c
pl/dwimg.c

2011-07-20 23:28:19 -0700
Ray Johnston <ray.johnston@artifex.com>
68bf978d614ec610333abd6a51b88fc3e05689f7


Fix compiler warnings.

Check return code from "get_profile" dev_proc in gs_nulldevice.c and get rid of the
implicit declaration for gdev_mem_set_planar.

gs/base/gsdevice.c
gs/base/gxpcmap.c

2011-07-22 10:36:36 -0700
Michael Vrhel <michael.vrhel@artifex.com>
d3302b1176683dc9e4cb5cb8ed9f42bffa0888ee


Fix for bug 692204. This forces DeviceGray to K only for CMYK devices.

This is performed by default now. To return to a composite type mapping
that makes use of the true DeviceProfile, use the option -dDeviceGrayToK=false.
This commit includes a fix to rename the device member variable
icc_array to icc_struct to reduce confusion in reading the code.

gs/Resource/Init/gs_lev2.ps
gs/base/gdevp14.c
gs/base/gdevpdfk.c
gs/base/gdevtfnx.c
gs/base/gdevtsep.c
gs/base/gdevvec.c
gs/base/gdevxini.c
gs/base/gscms.h
gs/base/gsdevice.c
gs/base/gsdparam.c
gs/base/gsequivc.c
gs/base/gsicc.c
gs/base/gsicc_cache.c
gs/base/gsicc_cache.h
gs/base/gsicc_manage.c
gs/base/gsicc_manage.h
gs/base/gslib.c
gs/base/gxclthrd.c
gs/base/gxcmap.c
gs/base/gxdevcli.h
gs/base/gximag3x.c
gs/iccprofiles/gray_to_k.icc

2011-07-21 20:42:33 +0100
Robin Watts <Robin.Watts@artifex.com>
7f5d3d7b298bbabc13a484e38e749d572d817bc8


Fix bug 692235: Rendering to 8bit colors shows bad colors.

The display device uses an RGBK space for 8 bit rendering. Currently
this corresponds to a palette of 96 colors; 2 bits each for R,G,B,
supplemented by 16 greys.

This review alters it to use a 6x6x6 RGB cube, supplemented by 40 grey
levels.

In fact, this is slightly wasteful as we repeat the black and white
representations as color and as greyscale, but it's a huge improvement
on what we had before.

No cluster differences expected as we don't test the display device.

gs/base/gdevdsp.c
gs/psi/dpmain.c
gs/psi/dwimg.c
gs/psi/dxmain.c
pl/dwimg.c

2011-07-22 23:27:18 -0400
Alex Cherepanov <alex.cherepanov@artifex.com>
4c2a089d0378402f374cb9004ac0faa3ff82d3c3


Bug 692361, trap errors produced by --token--

Thap errors thrown by --token--, adjust the stack, and rethrow.
Rev. 4c6809dfa1c539d757c30f572922e05cd1436698 made the errors
that occur during reading of the contents steam recoverable,
but missed the case, when the error happens in the --token--.

gs/Resource/Init/pdf_base.ps

2011-07-21 21:50:59 -0700
Michael Vrhel <michael.vrhel@artifex.com>
9d37cdcdbcb3b3bb23d0eab06d1683735303d5e1


Fix for bug 692364 in which we were were not handing the initial DeviceGray profiles correctly

When the graphic state is started, the color spaces are first set to DeviceGray. In certain documents
this is then the color space that is used for drawing and in fact the erase page will initially
occur with this color space. If I have a destination ICC profile like CIELAB, then this is
a problem since we will end up mapping DeviceGray to RGB with the old procedures giving us a
CIELAB value of [255 255 255] which is a very bright red. With this fix we in the
DeviceGray mapping we fix the colorspace to be ICC based and pass then handle the procedure with
the ICC mapping. A minor fix was also needed in the pdf14device put_image where we use a
DeviceGray color space, which happens to have an ICC profile. We now correctly create the
ICC profile. Note that this will cause significant diffs in the cluster push as DeviceGray
colors that were mapped to pure K before for a CMYK device (due to the fact that we were not
installing the proper color space) will now map to composite black. This
issue will be addressed shortly by another commit where we by default map all DeviceGray
colors to K only in the CMYK devices.

gs/base/gdevp14.c
gs/base/gxcmap.c
gs/base/lib.mak

2011-07-21 16:40:21 +0100
Robin Watts <Robin.Watts@artifex.com>
554ce829a9eb59da437541e2efbc646d9edc2805


Fix Bug 692355; gswin32 has garbage chars in window title bars.

Existing ghostscript includes windows.h without defining UNICODE, but
calls the unicode versions of functions where appropriate. Here we
move to defining UNICODE before including windows.h, but we keep to
the practise of calling A or W specific variants as much as possible.

Partly this is because of time before the release, but mostly a fear
that this might lead to a Pandoras box of changes.

gs/psi/dwtext.c
gs/psi/dwtext.h

2011-07-19 20:02:50 +0100
Robin Watts <Robin.Watts@artifex.com>
c9a8f8b3b0327bb62fc79cfe93d6bd79f997a2b6


pdf14 'dirty' rect optimisations.

Rename 'bbox' to 'dirty' - makes the purpose of the field much clearer.

Export dirty rectangle pointer in gx_pattern_trans_t structure.

Remove automatic expansion of 'dirty' rects to full rect boundary.

Ensure tiling code sets dirty rectangle as expected.

Remove debugging printfs.

Testing shows 491 differences. 16 or so real changes (all neutral or
progressions), but most of them in the cups device. Manual testing
shows no changes at all - no idea what's going on there.

gs/base/gdevp14.c
gs/base/gdevp14.h
gs/base/gxblend1.c
gs/base/gxp1fill.c
gs/base/gxpcolor.h

2011-07-20 15:24:58 -0400
Alex Cherepanov <alex.cherepanov@artifex.com>
4a1159926a8094f19bcacddf0503b5a06edd9184


Bug 692362, tolerate stream object without stream.

Check for the case, where the modified stream dictionary is missing
/File attribute (probably, because the original stream object was
missing the stream body) and substitute an empty stream.

gs/Resource/Init/pdf_base.ps

2011-07-20 20:03:02 +0000
Robin Watts <robin@ghostscript.com>
145a853a0f9ed9d58b76413a5c77aa026500af93


Add finalize function to pattern clist device.

This may need to do more than it does, but the immediate drive for
this is to correctly drop the reference count on the target device
on closedown. This is sufficient to stop the SEGV seen on the final
garbage collection done on stars.pdf.

The garbage collector was finding an unfreed pdf14 device, and stepping
into the target onto to find that the target had been destroyed already.

No cluster differences shown in testing.

gs/base/gxpcmap.c

2011-07-20 10:29:47 -0700
Ray Johnston <ray.johnston@artifex.com>
10cd4a92cd64252635c3c7f9a189f857bc59bf97


Fix for missing ICCProfilesDir during some device init. Move profiledir to gs_lib_ctx.

The business of trying to keep the profile directory in the device and keeping it in
sync with the value used in the icc_manager led to problems when some devices were
initialized. This change moves the profiledir (and its len) into the gs_lib_ctx_t
(pseudo- global) which is accessible by the icc_manager and devices via the
gs_memory_t pointer.

Remove the no longer needed functions to set and sync the profile in the device and
replace gsicc_set_icc_directory with gs_lib_ctx_set_icc_directory.

Thanks to Michael Vrhel for adding to this patch to make it build on linux and
build the other parsers.

gs/base/gscms.h
gs/base/gsdevice.c
gs/base/gsdparam.c
gs/base/gsicc_manage.c
gs/base/gsicc_manage.h
gs/base/gslibctx.c
gs/base/gslibctx.h
gs/base/lib.mak
gs/base/msvclib.mak
gs/psi/int.mak
gs/psi/zdevice.c
gs/psi/zusparam.c
pcl/pctop.c
psi/psitop.c
pxl/pxpthr.c
pxl/pxtop.c
svg/svgtop.c
xps/xpstop.c

2011-07-20 11:43:40 -0700
Michael Vrhel <michael.vrhel@artifex.com>
b07cfe2e168d004ed1a4365e985d90c88fa61725


Fix for Bug 692074. Make sure the ht thresholding code writes out device white and device black.

This should also fix a polarity issue that we had with the plank device.

gs/base/gxht_thresh.c

2011-07-20 18:24:31 +0000
Robin Watts <robin@ghostscript.com>
9a91acb5411b457383e59ed4bbefeb0247862228


Reverse the polarity of cups 'gray' colorspaces.

Cups colspace 0 is the inverse of colspace 3.

gs/toolbin/bmpcmp.c

2011-07-20 14:48:55 +0100
Chris Liddell <chris.liddell@artifex.com>
467b64692f0b74244fd0bc0748309d05b2f09294


Remove the eXternal Fonts functionality.

The XFonts feature was of very limited utility these days, and
was deprecated a couple of releases ago. This commit removes
the unloved and rather bit-rotten feature completely.

This does not really "fix" Bug 692357, but renders it pointless.

No cluster differences.

gs/base/devs.mak
gs/base/gdevmac.c
gs/base/gdevmac.h
gs/base/gdevmacxf.c
gs/base/gdevx.c
gs/base/gdevx.h
gs/base/gdevxini.c
gs/base/gdevxres.c
gs/base/gdevxxf.c
gs/base/gxccache.c
gs/base/gxccman.c
gs/base/gxchar.c
gs/base/gxchar.h
gs/base/gxfcache.h
gs/base/macos-mcp.mak
gs/doc/Xfonts.htm

2011-07-20 14:36:10 +0100
Chris Liddell <chris.liddell@artifex.com>
5ca50b1770ae583490954f1546b17bad421fbc9f


Bug 692359: Retain WMode from CMaps embedded in PDFs

The read_CMap procedure skips everything in the embedded
CMap file stream except the actual character ranges (as does
Acrobat), thus we lose the WMode setting (if present) from
the stream. Nor were we propagating the value from the PDF
CMap stream dict.

This revision ensures we propagate the WMode value the PDF
CMap stream dictionary (if present), which matches Acrobat's
behaviour.

No cluster differences.

gs/Resource/Init/pdf_font.ps

2011-07-19 21:57:35 -0600
Henry Stiles <henry.stiles@artifex.com>
a46123967e919fdd557411d2b0d177e6be2722e3


Fixes 692234 premature erasepage.

The page was being erased before the postscript interpreter was
properly initialized. In particular for the crash in this bug a
default halftone has to be installed before erasepage.

psi/psitop.c

2011-07-19 17:12:23 +0100
Robin Watts <Robin.Watts@artifex.com>
a6ec8697315e39dabd565a1ca114d3b42f006324


Small Memento tweaks.

When moving a block to the tail of the freelist, ensure that its next pointer
is set to NULL.

When doing 'setParanoia' ensure that any existing countdown is reset.

No cluster changes.

gs/base/memento.c

2011-07-19 10:05:14 +0100
Chris Liddell <chris.liddell@artifex.com>
923d5ca0673442a9e8d4921812ac4fbd75433140


Fix a warning I introduced, and a couple of others

gs/base/gdevpng.c

2011-07-18 10:46:05 -0700
Michael Vrhel <michael.vrhel@artifex.com>
9ed6be44e85f03f4a22064b698b3c0ea8c818b53


Fix so that rendering intent makes it properly through clist along with expanded RI capabilities

This fixes bug 692139, also adds support for the ability to override the
internal rendering intent(s) with an externally set rendering intent. Also,
it is possible to specify specific rendering intents for RGB graphics, images
and text as well as CMYK graphic images and text. Progressions occur in the
regression test suite. In particular the file icc_rendering_intent.pdf at 300dpi
now renders correctly.

gs/base/gscms.h
gs/base/gsicc_cache.c
gs/base/gsicc_manage.c
gs/base/gxclimag.c
gs/base/gxclpath.c
gs/base/gxclrast.c
gs/base/lib.mak

2011-07-18 17:07:08 +0100
Chris Liddell <chris.liddell@artifex.com>
385f519d34703ba88d107649fb59452617590194


Remove the PNG_INTERNAL define from the PNG device.

PNG_INTERNAL being defined exposes libpng's internal APIs which we should
certainly not be using, and do not appear to. I'm guess that this was
done to work around an issue in an earlier libpng version, and is no
longer relevant.

No cluster differences

gs/base/gdevpng.c

2011-07-17 09:45:35 -0700
Ray Johnston <ray.johnston@artifex.com>
44a2fd0bb1e2dd12e9ba475da0bdbb93081325d5


Fix crashes and assertion on 32-bit Windows builds. Bugs 692347, 692348.

Thanks to SaGS for these fixes. Assertion and crash were found during final checkout of
the 9.03 release, as well as on the master branch. Partly these problems came from the
UTF-8 changes.

VS treats the "char" type as signed by default. When extended characters are promoted
to ints, the values are negative in the range -128 to -1. These values (except -1
which conflicts with EOF) are not valid for the "is*()" family of functions.

For GS_ registry entries that are not set, the utf8 version of 'gp_getenv_registry()'
incorrectly returned an 'insufficient buffer space' verdict and let the 'needed
buffer size' to 0 (cbData = 0 after 'RegQueryValueExW()'). The call to fetch the
value was then made also with a 0-sized buffer, did the same thing, and left the
buffer for the value undefined. There were also other problems, for example
non-REG_SZ entries were ignored only when the value was actually requested (not
during the request for the buffer size) and the function was doing 'free(wp)' with
wp == NULL in a few cases.

No cluster differences.

CLUSTER_UNTESTED

gs/base/gp_wgetv.c
gs/base/gsargs.c

2011-07-18 12:52:55 +0100
Robin Watts <Robin.Watts@artifex.com>
80f11f7c17fd2d58eded8e8721a6932a0384f5f5


Fix plane calculations in planar pattern management.

The calculation of the depth/shift to use depth in planar pattern management
was wrong due to a silly typo.

This doesn't make it work, just solves an obvious problem.

No cluster differences expected.

gs/base/gxpcmap.c

2011-07-16 15:22:03 +0000
Robin Watts <robin@ghostscript.com>
ed9ba4062880109265bf286cb2e3fdc7527fe841


Pattern accumulator changes to support planar output devices.

When creating the memory buffer for a painttype 1 pattern tile, check
to see if the underlying device is planar - if it is, then create the
memory buffer as planar too.

The code to tile out the planar pattern buffers still needs fixing, but
this allows halftoning jobs to run to completion at least.

No cluster differences shown.

gs/base/gxpcmap.c

2011-07-16 12:58:35 +0000
Robin Watts <robin@ghostscript.com>
a438a9f7d363f76013e1c614fc0818fe081875ad


Fix pattern cache tile accounting.

When putting tiles into the pattern cache, we estimate the size we need
up front (or in the clist case, calculate it exactly). We then clear
that many bytes in the pattern cache, and add the new tile using that
estimated size. When we come to evict we recalculate the exact size and
evict based on that.

This causes a mismatch whereby the pattern cache thinks it has the wrong
number of bits cached. When this is an underestimation, we just end up
using more memory than we'd like. When it overestimates however, we can
get into an infinite loop trying to evict things.

The fix is to record the number of bits we've accounted for in every
tile and thus always count the same coming out as we did coming in.

If we really want to account for the correct values rather than the
estimate we can do that, but we must adjust pcache->bits_cache and
ctile->used appropriately.

No bug associated with this, but it was triggered by a forthcoming
commit to make the pattern accumulator use planar buffers for planar
devices.

No differences in cluster testing.

gs/base/gsptype1.c
gs/base/gxpcmap.c
gs/base/gxpcolor.h

2011-07-15 20:03:50 -0600
Henry Stiles <henry.stiles@artifex.com>
9b7298f794a4d9bdf5f2bc9dd8401cbfa458a018


Autoconf changes for X11 and threads.

config.mak.in
configure.ac
main/pcl6_gcc.mak

2011-07-15 18:46:37 +0100
Chris Liddell <chris.liddell@artifex.com>
10fa3cdcae73e526d6279e5a70522d821d08469d


Set the defines needed to build luratech on WIN64

CLUSTER_UNTESTED

gs/psi/msvc.mak

2011-07-15 10:42:30 -0700
Michael Vrhel <michael.vrhel@artifex.com>
bfc0768f53bf96acfbbcf184fe83a09d85b4f5b4


Addition of an destination ICC profile for demonstrating the setting of rendering intent

gs/toolbin/color/src_color/cmyk_des_renderintent.icc

2011-07-15 15:12:02 +0100
Chris Liddell <chris.liddell@artifex.com>
2472633cba1418733d079dea15f624c3649bf6dc


Fix the shared library builds.

The corrected dependencies in lib.mak broke the shared lib bulids,
so the rules needed split up to cover the shared and non-shared
cases.

gs/base/configure.ac
gs/base/gs.mak
gs/base/lib.mak

2011-07-15 14:35:04 +0100
Chris Liddell <chris.liddell@artifex.com>
b0277439b2de03cfcae9282f02021bec72aaa91a


Resolve a build issue with 64 Windows.

CLUSTER_UNTESTED

gs/base/msvctail.mak

2011-07-15 12:51:00 +0100
Robin Watts <Robin.Watts@artifex.com>
9be999c3d781ff92b5498d8cc89b0d2c1fcdc69e


Fix crashes due to uninitialised reschedule and time_slice procs.

Freek Kempe reports problems when ghostscript is built with just
psl3 and pdf FEATURE_DEVS, due to the context entries for
time_slice_proc and reschedule_proc being uninitialised.

We take on a (very slightly modified) version of his suggested fix;
they are now initialised to a dummy procedure, and can be overridden
by zcontext_init later if required.

No cluster differences seen.

gs/psi/icontext.c

2011-07-15 08:57:45 +0100
Chris Liddell <chris.liddell@artifex.com>
7d56fdb732eda354c1c0ccd53e62306caf4f600f


Small formatting change for the html changelog

gs/toolbin/gitlog2changelog.py

2011-07-15 08:51:36 +0100
Chris Liddell <chris.liddell@artifex.com>
fc670d3f5dd1e066a838165acec54b2859b1ed78


Increment the Ghostscript version number to 9.04.

gs/Resource/Init/gs_init.ps
gs/base/version.mak

2011-07-15 07:01:39 +0100
Chris Liddell <chris.liddell@artifex.com>
7e299cc60681c53113f513f95a940ef0349219f9


Fix an error in the Win64 building of genarch.exe

It was using AUXDIR instead of AUX for the path.

CLUSTER_UNTESTED

gs/base/msvctail.mak

2011-07-14 14:19:37 -0700
Michael Vrhel <michael.vrhel@artifex.com>
f98534e2952fb2c2bfa5a3604233d69c76713a41


Addition of support to override the document specified rendering intent(s)

Also this includes fixes so that if the source color profiles are specified
the rendering intents associated with those will be used.

gs/Resource/Init/gs_lev2.ps
gs/base/gscms.h
gs/base/gsicc_cache.c
gs/base/gsicc_manage.c
gs/base/gsicc_manage.h
gs/psi/zusparam.c

2011-07-14 16:07:03 +0100
Chris Liddell <chris.liddell@artifex.com>
fb5f2b5f317f9df6a1258ba53c17da84292cafee


Small fix to changes for Bug 688528.

The fix for Bug 688528 contained a conditional error checking for
a return value of greater than zero when in fact it should be
greater than or equal to zero.

No cluster differences.

gs/base/gdevvec.c

2011-07-14 10:08:02 +0100
Chris Liddell <chris.liddell@artifex.com>
7694aad7c0d84ea8c95acff6ca9b189016c280d1


Revise error/warning on PDF missing CIDFont.

Now that GS will attempt to continue interpreting a PDF after an error
in a given content stream, revise the message we emit when he hit a
missing CIDFont in a PDF condition to reflect that. If PDFSTOPONERROR
keep the previous message.

Also, add a "flush" at the end of each message to ensure they don't get
mangled by later, high priority messages.

No cluster differences.

gs/Resource/Init/pdf_font.ps

2011-07-14 10:03:35 +0100
Chris Liddell <chris.liddell@artifex.com>
62ce501c977ae1a6cb5c38dac545616111c51ed2


Compile out the Unicode path/parameter code with VC7 and before

Visual C 7 (Visual Studio 2003) and earlier do not have all the "wide char"
related library functions needed for the Windows Unicode path and
parameter handling, causing a link error.

So when building with VC7 and earlier, leave out the Unicode stuff.

No cluster differences.

CLUSTER_UNTESTED

gs/psi/msvc.mak

2011-07-13 14:34:32 -0700
Michael Vrhel <michael.vrhel@artifex.com>
ed92ea1c85f7ee188d0ab242e72ca2f220367ed8


Addition of ICC profile for demonstrating use of rendering intent on source color

gs/toolbin/color/src_color/cmyk_src_renderintent.icc

2011-07-13 10:08:29 -0700
Ray Johnston <ray.johnston@artifex.com>
880f2b2b80ce8f1506b2ec9d81ba73737dfaa4af


Add flush after -sGenericResourceDir warning message.

I often have seen this message get garbled by having other messages on stderr "jump in"
so that the message on stdout gets split up. The "flush" prevents that.

gs/Resource/Init/gs_res.ps

2011-07-12 19:26:21 -0700
Michael Vrhel <michael.vrhel@artifex.com>
46db3bca63834ae3b3881022fbc9300de8690d10


Fix so that when the null device is installed it is initialized with the proper icc directory

This fixes issues on windows when going to the bbox device but there are still issues on linux.

gs/base/gsdevice.c

2011-07-12 14:07:22 -0700
Michael Vrhel <michael.vrhel@artifex.com>
6b237cb27450a0d09ad982bd45e2e15829ae974f


Addition of code to support source color management dependent upon the graphic type

Also fix of the example file that demonstrates this feature.

gs/base/gscms.h
gs/base/gsicc_cache.c
gs/base/gsicc_manage.c
gs/base/gsicc_manage.h
gs/base/gxclimag.c
gs/examples/text_graph_image_cmyk_rgb.pdf

2011-07-12 20:11:46 +0100
Chris Liddell <chris.liddell@artifex.com>
a06634a969ea9b0db2d0840d8641847247056145


Update autoconf build and the Windows build to use Luratech
if the directories are found where we expect.

Include options on each build to disable using Luratech explicitly.

Document the change in Make.htm

No cluster differences.

gs/base/Makefile.in
gs/base/configure.ac
gs/doc/Make.htm
gs/psi/msvc.mak

2011-07-12 19:15:33 +0100
Chris Liddell <chris.liddell@artifex.com>
15d3904a43b2dddda12ed842000d9668c2aff8d7


Add a simple git log to html changelog script.

CLUSTER_UNTESTED

gs/toolbin/gitlog2changelog.py

2011-07-12 17:28:45 +0100
Chris Liddell <chris.liddell@artifex.com>
89de03454ba02713403571cb1cdd1312ae818f81


Bug 692338: address performance regression in FAPI

Previously I changed FAPI to only dispose of the outline or
bitmap part of the Freetype glyph, intead of the entire
internal glyph object, so as avoid freeing, re-allocating
and initialising a glyph object for every glyph. That seemed
to cause a memory leak, so I reverted it.

This commit does it properly, addresing the memory leak by
correctly freeing the memory that Freetype returns to us
*containing* the pointer to the bitmap or outline, as well
as the bitmap/outline data.

This is measurably quicker than the previous method.

No cluster differences expected.

gs/psi/fapi_ft.c

2011-07-12 06:50:46 -0700
Michael Vrhel <michael.vrhel@artifex.com>
b6a234634d7987890851cb4375e0520ba8dd0750


Addition of code to support override of internal ICC profiles

gs/Resource/Init/gs_lev2.ps
gs/base/gsicc_manage.c
gs/base/gsicc_manage.h
gs/psi/zicc.c
gs/psi/zusparam.c

2011-07-11 09:22:20 +0100
Chris Liddell <chris.liddell@artifex.com>
99cbbdaad585b78dfd32db6dc59c08f9743d8d6a


Add debugbin to the list of directories to ignore.

CLUSTER_UNTESTED

gs/toolbin/localcluster/clusterpush.pl

2011-07-11 09:14:34 +0100
Chris Liddell <chris.liddell@artifex.com>
ee688b964bee8f9562ce92835b2478f88b0dbe31


Bug 692327: Support libpng 1.5.x API

Revise to support the latest libpng API, conditionally compiled based on
the PNG_LIBPNG_VER_MINOR.

No cluster differences expected.

gs/base/gdevpng.c

2011-07-10 13:14:04 -0700
Michael Vrhel <michael.vrhel@artifex.com>
d1a349055450612218848e8d15fb6c1a4cc22f5b


Addition of pdf example file to demonstrate source color graphic object control

gs/examples/text_graph_image_cmyk_rgb.pdf

2011-07-10 12:54:02 -0700
Michael Vrhel <michael.vrhel@artifex.com>
2065f62ecb27abd974803207a0be160264944401


reorganization of files for demonstrating source color control based upon graphic type.

gs/toolbin/color/icc_creator/effects/cmyk_src_cyan.icc
gs/toolbin/color/icc_creator/effects/cmyk_src_magenta.icc
gs/toolbin/color/icc_creator/effects/cmyk_src_yellow.icc
gs/toolbin/color/icc_creator/effects/rgb_source_blue.icc
gs/toolbin/color/icc_creator/effects/rgb_source_green.icc
gs/toolbin/color/icc_creator/effects/rgb_source_red.icc
gs/toolbin/color/src_color/cmyk_src_cyan.icc
gs/toolbin/color/src_color/cmyk_src_magenta.icc
gs/toolbin/color/src_color/cmyk_src_yellow.icc
gs/toolbin/color/src_color/objsrc_profiles_example.txt
gs/toolbin/color/src_color/rgb_source_blue.icc
gs/toolbin/color/src_color/rgb_source_green.icc
gs/toolbin/color/src_color/rgb_source_red.icc

2011-07-10 12:19:33 -0700
Michael Vrhel <michael.vrhel@artifex.com>
213fd2eb89c8a818c546cb888fde6bb67d481c07


Addition of special effect ICC CMYK source profiles

A set of CMYK based profiles for demonstrating the usage of source
color graphic object type dependent color management

gs/toolbin/color/icc_creator/effects/cmyk_src_cyan.icc
gs/toolbin/color/icc_creator/effects/cmyk_src_magenta.icc
gs/toolbin/color/icc_creator/effects/cmyk_src_yellow.icc

2011-07-10 09:39:21 -0700
Michael Vrhel <michael.vrhel@artifex.com>
f24c2cb3f3e030068e48b9c608ebf87e70679547


Addition of special effect RGB ICC profiles

These profiles are for use in demonstrating the use of graphic object
specific color management on source RGB objects.

gs/toolbin/color/icc_creator/effects/rgb_source_blue.icc
gs/toolbin/color/icc_creator/effects/rgb_source_green.icc
gs/toolbin/color/icc_creator/effects/rgb_source_red.icc

2011-07-09 22:47:53 -0700
Michael Vrhel <michael.vrhel@artifex.com>
048a939c8c5880d1f89f3f61df78e147910cb1d0


Fix for bug 692333.

Caused by insufficient testing for change in color run when spot colors
are present during the DeviceN color rendering. Cluster push shows a
diff in Bug691425.pdf bmpcmp seemed OK.

gs/base/gxicolor.c

2011-07-08 14:11:52 -0700
Ray Johnston <ray.johnston@artifex.com>
ec7d65ce2cccbc97a2b696ceecb2ba7d329eff79


Fix initialization in gs_nulldevice (PS nulldevice operator) Bug 692334.

The gs_nulldevice was setting the get_profile proc to gx_forward_get_profile so the
icc_array was coming from the current device in the graphics state but that did not
match the color_info num_components and polarity leading to incorrect values returned
if gscms_transform_color_buffer set the OutputFormat to 1 (for the nulldevice) of a
link handle, but a subsequent call to gscms_transform_color with the same link handle
expected more than one component.

The initialization of the default profile can only be done if the io_device_table has
been initialized since this function is called during gs_lib_init1 with the table NULL.

This change fixes 12-07D.ps differences introduced in the 'tagfix' patch, but does NOT
introduce any changes to gscms_transform_color_buffer to avoid changing the number
of components or issue a warning as mentioned in the bug.

EXPECTED_DIFFERENCES:

12-07D should revert to the output prior to the tagfix change (06df93f)

gs/base/gsdevice.c

2011-07-08 16:41:47 -0700
Michael Vrhel <michael.vrhel@artifex.com>
c48d47e85a27149ecbd84512c8ed80e3d3ab498c


Fix for graphic tag setting during forward procedure.

CLUSTER_UNTESTED

gs/base/gdevnfwd.c

2011-07-08 12:52:25 -0700
Michael Vrhel <michael.vrhel@artifex.com>
c72586e85c6c8953cf3a1cbc32b48949c7622bb4


Rename variables and objects to be denoted as source graphic tags

With recent commit of changes to object tags as being a graphic type tag
it made sense to rename the source color object types similarly.

CLUSTER_UNTESTED

gs/base/gscms.h
gs/base/gsicc_manage.c
gs/base/gsicc_manage.h
gs/psi/zusparam.c

2011-07-08 11:42:37 -0700
Michael Vrhel <michael.vrhel@artifex.com>
4df7c79bc1c4df59818ddbc53b20eb1315e7cb48


Rename of misnamed file.

CLUSTER_UNTESTED

gs/toolbin/color/icc_creator/effects/k_only..txt
gs/toolbin/color/icc_creator/effects/k_only.txt

2011-06-23 11:55:14 -0700
Ray Johnston <ray.johnston@artifex.com>
06df93f6babc540b8e29ae7cc1fcaed888142d52


Rename object_tag to graphics_type_tag and move to the device for MT rendering.

The memory->gs_lib_ctx->BITTAG hack was inherently NOT safe for use by multiple
rendering threads. Devices that want to encode the tag info in the gx_color_index
need the tag, so we have moved this to the device structure. Multiple rendering
threads each have unique buffer devices, so this allows clist playback to set
and use the appropriate tag as the bands are played back without thread
interference.

Rename the gs_object_tag_type_t to gs_graphics_type_t to make it more unique for
grep based searching and prevent confusion with other uses of the term 'object'.
Move the enum to gscms.h with the 'set' functions prototyped in gxdevcli.h.

Just as for the device's cmm_dev_profile_t information, the tag needs to be
forwarded by devices in the chain (clipper, compositor) so that these 'helper'
filtering devices don't interfere with the setting of the tag. The tag value is
maintained in all devices in the chain so a 'get_graphics_type_tag' dev_proc
is not needed -- the dev->graphics_type_tag can be access directly.

Previously, tags were not recorded except for devices that enabled tags.
Now tags are tracked for all devices for use in selecting an ICC profile
and a device can signal that it maintains tags by setting GS_DEVICE_ENCODES_TAGS
for use by compositors that want to know whether or not to maintain a tag
plane, such as the pdf14 device.

Also replace the old 'get_object_type' that the anti-aliasing used with the
single approach for consistency and to cure problems (not identifed) with using
AA when other devices are interposed in the chain (clipper, compositor).

EXPECTED_DIFFERENCES:

Various 12-07D.PS PS LL3 CET files will show color differences on page 3 (GLOBINT)
as described in Bug692334.

gs/base/gdevabuf.c
gs/base/gdevbit.c
gs/base/gdevddrw.c
gs/base/gdevdflt.c
gs/base/gdevimdi.c
gs/base/gdevmem.c
gs/base/gdevnfwd.c
gs/base/gdevp14.c
gs/base/gdevprn.h
gs/base/gdevpsd.c
gs/base/gdevrinkj.c
gs/base/gdevrops.c
gs/base/gdevwts.c
gs/base/gdevxcf.c
gs/base/gscms.h
gs/base/gscsepr.c
gs/base/gsdevice.c
gs/base/gsdps1.c
gs/base/gsequivc.c
gs/base/gsicc.c
gs/base/gsicc_cache.c
gs/base/gsicc_manage.c
gs/base/gsicc_manage.h
gs/base/gsimage.c
gs/base/gslibctx.c
gs/base/gslibctx.h
gs/base/gsnamecl.c
gs/base/gsncdummy.c
gs/base/gspaint.c
gs/base/gstext.c
gs/base/gstrans.c
gs/base/gsutil.c
gs/base/gsutil.h
gs/base/gxacpath.c
gs/base/gxblend1.c
gs/base/gxclip.c
gs/base/gxclipm.c
gs/base/gxclist.c
gs/base/gxclrast.c
gs/base/gxcmap.c
gs/base/gxdevcli.h
gs/base/gxdevice.h
gs/base/gxi12bit.c
gs/base/gxicolor.c
gs/base/gximono.c
gs/base/gxiscale.c
gs/base/gxistate.h
gs/base/gxpcmap.c
gs/base/gxshade.c
xps/xpsgradient.c

2011-07-08 14:12:51 +0100
Robin Watts <Robin.Watts@artifex.com>
73c09fa015d1e5a19083001bc343abbb67992c9d


Fix Bug 692331: SEGV in image interpolation.

In fixing bug 692225, it seems I broke this.

In the setup code that decides whether decoding is required or not, I
was incorrectly choosing to use the 'decode' case, when in fact the
'decoding' is done later for CIE colorspaces. As such I should have used
the no-decode case.

Fixing this appears to cure the problem.

gs/base/gxiscale.c

2011-07-08 11:14:08 +0100
Chris Liddell <chris.liddell@artifex.com>
02a53b643780f40f5d8947272eabb947002c40b3


Bug 692322: Clarify in ps2pdf manpage that output goes to cwd by default.

Credit to Jonathan Nieder <jrnieder@gmail.com>.

CLUSTER_UNTESTED

gs/man/ps2pdf.1

2011-07-07 20:50:35 +0000
Robin Watts <robin@ghostscript.com>
0e0db1ca146d82f6a1b0ae90f7146e7d65ffbba9


Fix bug 692330: SEGV in clist memfile fseek.

The icc unserialise profile code ftells, then reads, then fseeks to
maintain the position of the stream. The fseek was leaving the stream
in an illegal state (the pointer was exactly at the end of the last
block at the end of the file). Internally we are supposed to always
have memory allocated for us to write into, and in this circumstance
we didn't.

The fseek code was actually correct, as was the ftell code. The problem
lay in the fwrite code that left the stream in an illegal state.

The fix is simply to change the fwrite logic slightly; we are guaranteed
to have space on entry to the loop, so we just need to ensure we have
space on exit.

Cluster testing shows no differences (or none due to this change at least).

gs/base/gxclmem.c
gs/base/gxclread.c

2011-07-06 23:12:51 -0600
Henry Stiles <henry.stiles@artifex.com>
91c925158fd8bb84c0d44dff2ec4888dc4d6168e


Updates PDL README.txt

README.txt

2011-07-07 13:47:03 +0100
Chris Liddell <chris.liddell@artifex.com>
8191a2e349d1f8787b2f4805d770fa8b11f82d18


Bug 688528-addendum: quell warnings and handle errors.

gs/base/gdevvec.c
gs/base/gsdevice.c
gs/base/gximag3x.c

2011-07-07 10:41:27 +0100
Chris Liddell <chris.liddell@artifex.com>
dadc4955945d8004785ed13095ea9ea79c0f13a6


Bug 688528: set ICC profiles for interal uses of bbox device.

If we create a bbox device internally (i.e. not as an output device)
we must still ensure that the device has ICC profiles set in it. In
this case, it simply inherits the profile array from the parent
device.

This also meant moving the ICC manager initialization to before the
device "open" call in gs_setdevice_no_erase() because the device set
can also open another device (in this case, pswrite's "open" has the
effect, via the vector device, of setting a bbox device instance, so
there must be an array of ICC profiles at that stage for bbox to
inherit.

No cluster differences expected.

gs/base/gdevvec.c
gs/base/gsdevice.c
gs/base/gslib.c
gs/base/gximag3x.c

2011-07-06 22:05:43 -0400
Alex Cherepanov <alex.cherepanov@artifex.com>
73bfbe4b5f6e7090c2b6aad0183ddc8a186d5788


Fix Cygwin build.

Some Cygwin tools use \r\n line endings. Add transliteration of \r
to the space character to compensate for this lossage.

gs/base/configure.ac

2011-07-06 17:29:24 -0600
Henry Stiles <henry.stiles@artifex.com>
7531d50c7b6dec596e142ff555f3cbfc28613abe


Shailesh Mistry's fix for 692311 - corrupt character rendering.

In adaptive compression mode the seed row for delta row compression
was not properly cleared. With this change the code is now compatible
with HP monochrome printers, previously the Artifex code was
compatible with HP Color Laserjets. We do not implement a device
specific switch - for example the new code could be enabled if the
current mode of emulation was PCL5E (mono PCL) and not PCL5C (color
PCL) allowing emulation of both product types. However the corrupt
character output of HP color printers is probably never an intended
result.

pcl/rtraster.c

2011-07-05 11:04:27 -0600
Henry Stiles <henry.stiles@artifex.com>
6e1c268d0ceb3d39e33d242132a917ac27cc2491


Fix allocator and cleanup.

Use global allocator in the font directory not the local allocator in
the graphics state. Move the cache size assignment to the end of the
procedure after any error can occur and trivial style changes.

gs/base/gsfont.c

2011-06-29 23:29:44 -0600
Henry Stiles <henry.stiles@artifex.com>
00dbc00bbbbc5dd7d3ec4fce2ac5ed72a4e13bde


Implement gs_setcachesize properly.

The previous implementation simply set the cache size state value but
didn't attempt to rebuild the cache. The new font cache size is
provided by size operand of setcacheparams.

We also limit the size operand to the values discovered used by CPSI, the
range is device dependent and the CPSI range appears reasonable.

gs/base/gsfont.c

2011-06-23 12:58:53 -0600
Henry Stiles <henry.stiles@artifex.com>
ee351ae182d5f5fabe36f0ce9216a4da39c1c831


Removes obsolete code.

The is callback used to be used to delete all characters from the
cache, we don't do that anymore.

pcl/pcfont.c

2011-06-18 18:03:44 -0600
Henry Stiles <henry.stiles@artifex.com>
f91aa55a593789c3e342f649e1ebd7f575008e2c


Fix bug #692246 infinite loop searching the character table.

Set up the number of characters in the table and the maximum amount of
memory used by the font cache such that we maintain the invariant that
we will run out of memory before running out of table entries. Thanks
to Shailesh Mistry for assistance in analyzing this problem.

gs/base/gxccman.c

2011-07-06 13:30:23 +0100
Chris Liddell <chris.liddell@artifex.com>
e5a37634a8e15a945e7f5ea4aca68ab8e1e34d3a

Bug 692318: Ensure that compiler flags are used for the "aux" files.

For a normal host build, the build tools (genarch, genconf etc) should be
built with the same compiler flags as Ghostscript/Ghost*. In this case
the integer type used for encoded color values was not getting used
when compiling genarch.

Also, add a warning when tiffsep does have to skip one or more plates, with
a pointer to the relevant documentation. Lastly, update the doc to reflect
that the contone preview output may not be as expected if the job uses
overprint.

No cluster differences expected.

common/ugcc_top.mak
gs/base/gdevtsep.c
gs/base/msvccmd.mak
gs/base/msvctail.mak
gs/base/unix-aux.mak
gs/doc/Devices.htm

2011-07-04 23:55:57 -0400
Alex Cherepanov <alex.cherepanov@artifex.com>
836ac602259ed7e6dfa2845ce78c5fcb516c72e1


Bug 692026: Replace vsprintf() with vsnprintf()

vsnprintf() is a safer function. No new compatibility problams are
expected because vsnprintf() is already used it in Ghostscript.

gs/base/gxttfb.c
gs/base/rinkj/rinkj-byte-stream.c

2011-07-02 13:50:28 -0700
Ray Johnston <ray.johnston@artifex.com>
02ef306436f521a059356bbe41805499204051fc


Change to using encode_color instead of map_rgb_color since map_rgb_color are obsolete.

The encode_color proc replaced this and devices may not have it set to a valid proc.
Detected under certain circumstances with the tiffsep device using compressed color
encoding.

gs/base/gdevmem.c
gs/base/gdevmr1.c

2011-07-01 16:46:32 -0400
Alex Cherepanov <alex.cherepanov@artifex.com>
c841237f86505fad348295dfb17aea45beed4c89


Bug 692320: check page count type.

Check the type of /Count attrubute before using it. Reject invalid
values and types and scan the page tree instead.

gs/Resource/Init/pdf_main.ps

2011-07-01 18:03:19 +0100
Robin Watts <Robin.Watts@artifex.com>
52d2decab7955e61a605ab44acb88a08eb79b9cb


Clist change for plane rop operations.

If strip_copy_rop is called with the 'lop_planar' indicator bit set in
the rop, it should encode just a planes worth of data.

The reading side of clists works without change, I believe.

gs/base/gxclrect.c

2011-07-01 12:31:54 +0100
Robin Watts <Robin.Watts@artifex.com>
e14ea75d716da7ecdef2211a5d60e46deec55b9f


Fix clist planar device detection.

When the clist interrogates a device to see if it is a planar one, it was
getting the wrong answer due to only the planar memory buffer device
responding to the question. We fix the main planar device to respond too
here.

Also, any device that doesn't understand the is_native_planar question
would respond -1; the existing code would take this to mean that it is
planar. The code now only triggers on positive responses.

No cluster differences expected.

gs/base/gdevppla.c
gs/base/gxclist.c

2011-06-30 12:17:08 -0700
Ray Johnston <ray.johnston@artifex.com>
93b4821ada53277b61efb87cbb12eb6a6f71ced0


FIx segfaults caused by missing prototype causing pointer truncation.

The gs_state_memory() function prototype is in gxstate.h but this was not being included
by this file, so on 64-bit builds it truncatad the memory pointer to 32-bits. Tripped over
on the macpro when doing ps2write. Problematic call was line 1086.

gs/base/gdevpdfd.c

2011-06-30 20:02:09 +0100
Robin Watts <Robin.Watts@artifex.com>
0038b2fadb34d57f5d43d51d313eb8bc121e929b


Fix error in plib and plan devices not properly closing down.

plib_close and plan_close were failing to call the underlying device
close method, hence leaking.

CLUSTER_UNTESTED.

gs/base/gdevplan.c
gs/base/gdevplib.c

2011-06-30 18:19:30 +0100
Robin Watts <Robin.Watts@artifex.com>
b62b3a9ce165ebca357ebf6b4e2ff4cae8d630d3


Fix leak of icc_profile in clist playback.

When reading an icc_profile profile from the clist we were forgetting to
decrement it's reference count, and so it was being leaked.

Also fix a whitespace issue.

No cluster differences expected.

gs/base/gscspace.h
gs/base/gxclrast.c

2011-06-30 17:05:19 +0100
Robin Watts <Robin.Watts@artifex.com>
5baa14a107150a5ba4189ff830f21bfdd7da528c


More Makefile dependency tweaks.

Limit our insistence on gnu make (for order only dependencies) to
the autoconf generated makefiles.

gs/base/Makefile.in
gs/base/gs.mak
gs/base/openvms.mak
gs/base/unix-gcc.mak
gs/base/unixhead.mak

2011-06-30 16:42:24 +0100
Robin Watts <Robin.Watts@artifex.com>
396fa30df058ccd35375a08e5385fa4251d4b714


Various Memento changes.

Add MEMENTO_LEAKONLY option to speed Memento (avoids filling memory and
checking the filled values for consistency).

Also, rewrite freelist management to avoid delays when making room.

Memento in MEMENTO_LEAKONLY now runs almost as fast as normal code.

Also change gsalloc.c and gsmchunk.c to fall through to the normal malloc
(and hence Memento) for all blocks (when MEMENTO is defined). No changes
to normal operation.

CLUSTER_UNTESTED.

gs/base/gsalloc.c
gs/base/gsmchunk.c
gs/base/malloc_.h
gs/base/memento.c

2011-06-30 14:24:17 +0100
Robin Watts <Robin.Watts@artifex.com>
44a609ed782883815571bcbc1ed7a602db03c786


Another attempt at proper directory dependencies.

The previous attempt failed due to directories getting their timestamp
updated whenever the contents changed - hence causing stuff to be
always out of date.

The 'correct' fix appears to be to use order only dependencies. We do
this in a portable way by defining a MAKEDIRS variable, that should
always be the last dependency listed. Unix builds define this to
"| directories", windows builds leave it blank.

Testing this work in turn showed up more problems with device
dependencies - also fixed here.

gs/base/devs.mak
gs/base/gs.mak
gs/base/ijs.mak
gs/base/jpeg.mak
gs/base/lib.mak
gs/base/msvclib.mak
gs/base/openvms.mak
gs/base/unix-aux.mak
gs/base/unix-dll.mak
gs/base/unix-end.mak
gs/base/unixhead.mak
gs/base/unixinst.mak
gs/psi/msvc.mak

2011-06-30 13:55:54 +0100
Ken Sharp <ken.sharp@artifex.com>
93df8de63350ec70d38cc79494a47cf0a6e172b9


More changes for CIDSet.

Make sure that if the CID (LastChar) is greater than num_glyphs, then use LastChar
for the length of CIDSet and CIDToGIDMap.

gs/base/gdevpdtd.c

2011-06-29 21:39:01 +0100
Robin Watts <Robin.Watts@artifex.com>
4a65a114f83a6826679625ef8686c1f43c648b43


Fix leaks in icc code seen during performance testing.

Whilst performance testing the new thresholding code against the plank
device as follows:

pcl6.exe -sDEVICE=plank -o nul: -r600 lj4700_pcl5_color_AC8Z51CC.prn

various leaks were seen (I used Memento to see them).

This fixes at least some of them, namely those due to us forgetting to free
a buffer used to read an icc profile into from the clist.

Various small bits of error case code is also fixed here.

gs/base/gxclrast.c
gs/base/gxclread.c
gs/base/gxicolor.c

2011-06-29 21:39:58 +0100
Robin Watts <Robin.Watts@artifex.com>
3992ee84c892ed2fcc16b3bd0e89d7e9d878bbaa


Add STDDIRS dependencies to unix-aux too.

This prevented configured debug gs builds from working (and possibly others).

gs/base/unix-aux.mak

2011-06-29 20:55:42 +0100
Robin Watts <Robin.Watts@artifex.com>
22f63a9438d563c3f36a2e652784d53be028bd7d


Tweak to gsicc_manage.c to avoid potential leak.

Examining the code, if gsicc_set_icc_directory is called with namelen=0
then the existing code will allocate a 1 byte buffer and store it in
the icc_manager.

If the same function is called again, in the same way, this buffer
will not be freed before it is overwritten.

The fix is simply to test for icc_manager->profiledir being non NULL
rather than the namelen > 0.

gs/base/gsicc_manage.c

2011-06-29 15:10:03 +0100
Robin Watts <Robin.Watts@artifex.com>
3a26f3c1aa08e6bd4b4550e066da449fb61ee2cf


Makefile dependency fixes.

Ray pointed out yesterday that the gs makefile has a malformed dependency
rule ensuring that the object dirs are created before any compilation
is done. This doesn't show itself when make is invoked to use a single
build task at once, but parallel invocations (e.g. make -f 5) can fall
foul fof it.

The fix is to properly make every .$(OBJ) file depend on STDDIRS.

gs/base/lib.mak
gs/base/msvclib.mak
gs/base/msvctail.mak
gs/base/unix-end.mak
gs/base/unixhead.mak
gs/psi/msvc.mak
gs/toolbin/checkdeps.pl

2011-06-29 08:17:46 +0100
Ken Sharp <ken.sharp@artifex.com>
865dca5781dcb4fea12d1349d4f7392d7d809c42


Change the documented default settings for ps2write to match reality.

gs/doc/Ps2ps2.htm

2011-06-28 21:55:44 -0400
Alex Cherepanov <alex.cherepanov@artifex.com>
c6a8de32823db74a0da27187b7fb049b337c2573


Bug 692305: Remove -dSAFER from pfbtopfa

Remove -dSAFER flag from pfbtopfa and wftopfa scripts because it
interferes with the the normal operation of Ghostscript and serves
no purpose. No client code is executed by these utilities.

gs/lib/pfbtopfa
gs/lib/pfbtopfa.bat
gs/lib/wftopfa

2011-06-28 21:54:31 +0100
Chris Liddell <chris.liddell@artifex.com>
31cb1ff75d4a77ac32854a68f56d973d06b5da10


Bug 692310 Add another fallback case for an FT error.

Add a fallback for the FT_Err_Invalid_Reference error from Freetype.
As this is a hinting error, we'll fall back to rendering the glyph
unhinted.

No cluster differences.

gs/psi/fapi_ft.c

2011-06-28 20:09:11 +0100
Robin Watts <Robin.Watts@artifex.com>
a1ee78a6de94b8b4292b9ce3b71b54ed3ae7502b


Fix for Bug 692303, antialiasing problems.

In trying to fix Bug 692081, I'd inadvertantly broken antialiased
operation on shapes with multiple 'alpha=0'/'alpha-non-zero'
transitions.

My understanding of Peters line accumulator macros was incomplete.
This new version seems to fix both cases.

gs/base/gsbitops.h
gs/base/gxcindex.h

2011-06-28 20:08:40 +0100
Robin Watts <Robin.Watts@artifex.com>
4d44e8a15bfa263b54b369940db9d8ec97d4fc48


Fix typo in comment.

CLUSTER_UNTESTED

gs/base/gxfill.c

2011-06-28 13:12:34 +0100
Robin Watts <Robin.Watts@artifex.com>
11fa4e84f504bdbd9e78495cf5214e49554383b0


More 'aux' makefile changes.

Configured gs builds were still not putting the aux directory in the
right place. Reworked here.

This has meant changing the horrible 'RELDIR' hack for a slightly
less horrible hack using 'BUILDDIRPREFIX'. In turn this has meant
that the shared object targets have one mroe layer of recursion in
the make, but it's still at the top level, and (arguably) clearer
now than it was before.

gs/base/Makefile.in
gs/base/configure.ac
gs/base/gs.mak
gs/base/macos-fw.mak
gs/base/macosx.mak
gs/base/ugcclib.mak
gs/base/unix-dll.mak
gs/base/unix-end.mak
gs/base/unix-gcc.mak
gs/base/unixansi.mak

2011-06-27 20:09:20 -0400
Alex Cherepanov <alex.cherepanov@artifex.com>
680d0f9b0a30de60c3289b827714be3f5adc65b1


Rename -dPDFNOSTOPPED to -dPDFSTOPONERROR

gs/Resource/Init/gs_init.ps
gs/Resource/Init/pdf_base.ps
gs/doc/Use.htm

2011-06-27 19:34:37 -0400
Alex Cherepanov <alex.cherepanov@artifex.com>
66700ec35f74a6e049ed6654283418a6d23bfb3e


Bug 692301: Support /Filter array with /JPXDecode

Fix a bug in /JPXDecode filter handler that generated bad
/DecodeParms when /JPXDecode filter was used in a /Filter
array. Remove some obsolete code related to /JPXDecode.

gs/Resource/Init/pdf_base.ps
gs/Resource/Init/pdf_draw.ps

2011-06-27 14:06:27 -0400
Alex Cherepanov <alex.cherepanov@artifex.com>
2f08f6f0c1b9bae95387534617005df0b4b7e46f


Add -dPDFNOSTOPPED option.

Norrmally, PDF interpreter tries to repair all problems in PDF files.
-dPDFNOSTOPPED option skips some of the stopped contexts. On error,
instead of printing a warning and continue, PDF interpreter drops into
a PostScript error handler that prints detailed information about the
problem and kills the job.

gs/Resource/Init/gs_init.ps
gs/Resource/Init/pdf_base.ps
gs/doc/Use.htm

2011-06-27 09:22:30 -0600
Henry Stiles <henry.stiles@artifex.com>
9b9d97a5a2c299595048c72fa10e1a2b2845ff58


Add planar device to the Windows build.

main/pcl6_msvc.mak

2011-06-27 14:35:52 +0100
Ken Sharp <ken.sharp@artifex.com>
5e292c6c611659105f9bbc50ad33518c97a1923d


bug #692304 Don't emit '0 g' for 'erasepage'

showpage causes a fill of an empty path, apparently as part of the erasepage mechanism.
When used with pdfwrite, with -dUseCIEColor -dPDFA and no Output Intent specified
this can lead to us emitting a '0 g' in a PDF/A file, whic his only valid if an OutputIntent is specified.

Fixed by ignoring empty paths. Despite the comment in gdev_pdf_fill_path we
do not seem to need to do this for text or clips. Probably since I moved the
'pdf_set_drawing_color' code out of pdf_reset_color so that we could write colours in a text context.

This exhibits one progression, with ps2write 'Bug6901014_CImg_flyer.pdf' now
draws all the output instead of dropping portions of it due to a 'nocurrentpoint' error.

gs/base/gdevpdfd.c

2011-06-26 11:20:33 +0100
Chris Liddell <chris.liddell@artifex.com>
f3b1a56bb0c5d716868b7914bee6c3740f3f035a


Update to libjpeg 8c.

Combines (from libs-update branch) the commits:

Commit a vanilla copy of libjpeg-8c.

And the makefile changes to let it build.

Commit our patch to the libjpeg source.

Add our patches to the jpeg-8c src.

This changes every cluster test which contains DCT/JPEG data, but
they are all very small colour shifts that are invisible
to the naked eye - as expected by this type of update.

gs/base/jpeg.mak
gs/jpeg/Makefile.am
gs/jpeg/Makefile.in
gs/jpeg/README
gs/jpeg/aclocal.m4
gs/jpeg/ansi2knr.c
gs/jpeg/cderror.h
gs/jpeg/cdjpeg.h
gs/jpeg/change.log
gs/jpeg/cjpeg.1
gs/jpeg/cjpeg.c
gs/jpeg/ckconfig.c
gs/jpeg/coderules.doc
gs/jpeg/coderules.txt
gs/jpeg/config.guess
gs/jpeg/config.sub
gs/jpeg/configure
gs/jpeg/configure.ac
gs/jpeg/depcomp
gs/jpeg/djpeg.1
gs/jpeg/djpeg.c
gs/jpeg/example.c
gs/jpeg/filelist.doc
gs/jpeg/filelist.txt
gs/jpeg/install-sh
gs/jpeg/install.doc
gs/jpeg/install.txt
gs/jpeg/jaricom.c
gs/jpeg/jcapimin.c
gs/jpeg/jcarith.c
gs/jpeg/jccoefct.c
gs/jpeg/jcdctmgr.c
gs/jpeg/jchuff.c
gs/jpeg/jchuff.h
gs/jpeg/jcinit.c
gs/jpeg/jcmainct.c
gs/jpeg/jcmarker.c
gs/jpeg/jcmaster.c
gs/jpeg/jconfig.bcc
gs/jpeg/jconfig.cfg
gs/jpeg/jconfig.dj
gs/jpeg/jconfig.doc
gs/jpeg/jconfig.mac
gs/jpeg/jconfig.manx
gs/jpeg/jconfig.mc6
gs/jpeg/jconfig.sas
gs/jpeg/jconfig.st
gs/jpeg/jconfig.txt
gs/jpeg/jconfig.vc
gs/jpeg/jconfig.vms
gs/jpeg/jconfig.wat
gs/jpeg/jcparam.c
gs/jpeg/jcphuff.c
gs/jpeg/jcprepct.c
gs/jpeg/jcsample.c
gs/jpeg/jctrans.c
gs/jpeg/jdapimin.c
gs/jpeg/jdapistd.c
gs/jpeg/jdarith.c
gs/jpeg/jdatadst.c
gs/jpeg/jdatasrc.c
gs/jpeg/jdcoefct.c
gs/jpeg/jdct.h
gs/jpeg/jddctmgr.c
gs/jpeg/jdhuff.c
gs/jpeg/jdhuff.h
gs/jpeg/jdinput.c
gs/jpeg/jdmainct.c
gs/jpeg/jdmarker.c
gs/jpeg/jdmaster.c
gs/jpeg/jdphuff.c
gs/jpeg/jdsample.c
gs/jpeg/jdtrans.c
gs/jpeg/jerror.h
gs/jpeg/jfdctflt.c
gs/jpeg/jfdctfst.c
gs/jpeg/jfdctint.c
gs/jpeg/jidctflt.c
gs/jpeg/jidctint.c
gs/jpeg/jidctred.c
gs/jpeg/jmorecfg.h
gs/jpeg/jpegint.h
gs/jpeg/jpeglib.h
gs/jpeg/jpegtran.1
gs/jpeg/jpegtran.c
gs/jpeg/jutils.c
gs/jpeg/jversion.h
gs/jpeg/libjpeg.doc
gs/jpeg/libjpeg.map
gs/jpeg/libjpeg.txt
gs/jpeg/ltconfig
gs/jpeg/ltmain.sh
gs/jpeg/makcjpeg.st
gs/jpeg/makdjpeg.st
gs/jpeg/makeadsw.vc6
gs/jpeg/makeapps.ds
gs/jpeg/makeasln.v10
gs/jpeg/makecdep.vc6
gs/jpeg/makecdsp.vc6
gs/jpeg/makecfil.v10
gs/jpeg/makecmak.vc6
gs/jpeg/makecvcx.v10
gs/jpeg/makeddep.vc6
gs/jpeg/makeddsp.vc6
gs/jpeg/makedfil.v10
gs/jpeg/makedmak.vc6
gs/jpeg/makedvcx.v10
gs/jpeg/makefile.ansi
gs/jpeg/makefile.bcc
gs/jpeg/makefile.cfg
gs/jpeg/makefile.dj
gs/jpeg/makefile.manx
gs/jpeg/makefile.mc6
gs/jpeg/makefile.mms
gs/jpeg/makefile.sas
gs/jpeg/makefile.unix
gs/jpeg/makefile.vc
gs/jpeg/makefile.vms
gs/jpeg/makefile.wat
gs/jpeg/makejdep.vc6
gs/jpeg/makejdsp.vc6
gs/jpeg/makejdsw.vc6
gs/jpeg/makejfil.v10
gs/jpeg/makejmak.vc6
gs/jpeg/makejsln.v10
gs/jpeg/makejvcx.v10
gs/jpeg/makelib.ds
gs/jpeg/makeproj.mac
gs/jpeg/makerdep.vc6
gs/jpeg/makerdsp.vc6
gs/jpeg/makerfil.v10
gs/jpeg/makermak.vc6
gs/jpeg/makervcx.v10
gs/jpeg/maketdep.vc6
gs/jpeg/maketdsp.vc6
gs/jpeg/maketfil.v10
gs/jpeg/maketmak.vc6
gs/jpeg/maketvcx.v10
gs/jpeg/makewdep.vc6
gs/jpeg/makewdsp.vc6
gs/jpeg/makewfil.v10
gs/jpeg/makewmak.vc6
gs/jpeg/makewvcx.v10
gs/jpeg/makljpeg.st
gs/jpeg/maktjpeg.st
gs/jpeg/missing
gs/jpeg/rdbmp.c
gs/jpeg/rdjpgcom.1
gs/jpeg/rdjpgcom.c
gs/jpeg/rdppm.c
gs/jpeg/rdswitch.c
gs/jpeg/structure.doc
gs/jpeg/structure.txt
gs/jpeg/testimg.bmp
gs/jpeg/testimg.jpg
gs/jpeg/testimg.ppm
gs/jpeg/testimgp.jpg
gs/jpeg/transupp.c
gs/jpeg/transupp.h
gs/jpeg/usage.doc
gs/jpeg/usage.txt
gs/jpeg/wizard.doc
gs/jpeg/wizard.txt
gs/jpeg/wrppm.c

2011-06-26 23:12:38 -0700
Michael Vrhel <michael.vrhel@artifex.com>
5b7a917fa6d092f76a0400e1bce70d02b8b724f1


Fix for compiler complaint.

CLUSTER_UNTESTED

gs/base/gsicc_manage.c

2011-06-25 11:07:25 -0700
Michael Vrhel <michael.vrhel@artifex.com>
f4e1d4b280f6e6ff73d630e2b103a1a6b50c03d9


Fix for icc directory and icc device profile initialization.

gs/base/gscms.h
gs/base/gsdevice.c
gs/base/gsdparam.c
gs/base/gsicc_manage.c
gs/base/gsicc_manage.h
gs/base/lib.mak
gs/psi/zdevice.c
pcl/pctop.c
psi/psitop.c
pxl/pxpthr.c
pxl/pxtop.c
svg/svgtop.c
xps/xpstop.c

2011-06-24 18:46:51 +0100
Robin Watts <Robin.Watts@artifex.com>
7af1ebacdb9947ea5197523bcda7764431769e8f


Add copy_plane to rop source device.

This uses 'creative engineering' (aka a blatant hack) to allow copy_color
to be implemented in the "rop source" device.

We implement a copy_plane entrypoint for the rop source device, that
does exactly the same as copy_color, except that it abuses the lop
value passed to the gx_device_color_fill_rectangle by setting a new
bit (lop_planar) and pickling the plane number into the high bits.

This is detected in mem_planar_strip_copy_rop and unpicked to a call
to the appropriate plane.

Care must be taken when doing rops on the planar device, as
processing any rop on the device that involves 'D' calls get_bit_rectangle
which can cause a call to convert from planar to chunky if mishandled.
The solution is to ensure that we always remove our get_bits_rectangle
implementation when passing on a ropping call.

gs/base/gdevmpla.c
gs/base/gdevrops.c
gs/base/gsropt.h

2011-06-24 17:38:55 +0100
Chris Liddell <chris.liddell@artifex.com>
0c927bb3e177b5b34ebb1b1f7fa2d9669614fbaf


Bug 692274: handle vastly different magnitudes in x/y scale

If the difference in the scale on the x and y axes is large
(in this case, a factor of 1000), the value scaling we do
to pass into Freetype can run over/under flow when applied
to both. The solution is to apply the value scaling
separately for x and y axes. But the quality is very
marginally better when the two are scaled together, so we
do that normally, and only fall back to the separate handling
when the x and y scales differ by more than 512.

No cluster differences expected.

gs/psi/fapi_ft.c

2011-06-24 12:11:48 +0100
Robin Watts <Robin.Watts@artifex.com>
90324e2c6466978f3c01e4a5a3c27d916b9ba9fa


Fix 'aux' cluster breakages. Move aux into obj.

Move aux directories into the appropriate obj directories.
Makes cleaning easier, and is neater overall.

Also fix some unrelated problems with cleaning in the msvc builds.

common/msvc_top.mak
common/pcdefs.mak
gs/base/all-arch.mak
gs/psi/msvc.mak
gs/psi/os2.mak
gs/toolbin/localcluster/clusterpush.pl
main/pcl6_gcc.mak
main/pcl6_msvc.mak

2011-06-23 12:53:01 -0600
Henry Stiles <henry.stiles@artifex.com>
7f2d55272963b039a472adbd26bb9a111e5d31ac


Use filenames instead of stdin and stdout.

The original example c programs used stdin and stdout instead of
reading directly from files. The C programs were changed to use files
but the associated shell script wasn't updated.

tools/GOT/dotags.sh

2011-06-22 21:39:01 +0100
Robin Watts <Robin.Watts@artifex.com>
ca0f4ff4a0df386dd4d494a418f09336d06c2451


Cross compilation (AUX) changes to ghostscript and ghostpdl.

Introduce a new 'aux' directory and appropriate defines to allow
easier cross-compilation of gs/ghostpdl.

common/gccdefs.mak
common/generic.mak
common/msvc_top.mak
common/ugcc_top.mak
gs/base/Makefile.in
gs/base/all-arch.mak
gs/base/gs.mak
gs/base/lib.mak
gs/base/msvccmd.mak
gs/base/msvctail.mak
gs/base/unix-aux.mak
gs/base/unix-end.mak
gs/base/zlib.mak
gs/psi/msvc.mak
gs/psi/os2.mak
main/pcl6_gcc.mak
main/pcl6_msvc.mak
pl/pl.mak

2011-06-22 20:05:15 +0100
Chris Liddell <chris.liddell@artifex.com>
3b3261eca08cd73ca355b28fe5125c98d411820d


Bug 692297: reinstate the proper way to release FT glyphs.

FT_Glyph_Done is the correct method for freeing both bitmap and
outline glyphs from Freetype.

No cluster differences expected.

gs/psi/fapi_ft.c

2011-06-22 10:46:18 -0700
Ray Johnston <ray.johnston@artifex.com>
f8c4663d5108ca0b7416bf35ba37a8bb63f0b8ed


Improve documentation about gsapi_set_poll

gs/doc/API.htm

2011-06-22 10:17:32 -0700
Michael Vrhel <michael.vrhel@artifex.com>
b28982145ccdea3a39f7ad13d7f5c8a00f14f83d


Replace previous commit file with smaller file.

CLUSTER_UNTESTED

gs/examples/text_graphic_image.pdf

2011-06-22 10:12:33 -0700
Michael Vrhel <michael.vrhel@artifex.com>
314d8b86434396afe96ce915dbb1cb0ff01b2047


Addition of simple example file with text graphic and image objects.

CLUSTER_UNTESTED

gs/examples/text_graphic_image.pdf

2011-06-22 09:05:28 -0700
Michael Vrhel <michael.vrhel@artifex.com>
e3def0b758231cd1c5c0510945cef0dd3d938393


Support for fast thresholding to CMYK planar devices

Code works for various orientations for color as well as indexed (mono) images.
There is an inversion (polarity) issue remaining to track down as well as one potential
rendering issue during the buffer clean up with landscape images. These
will be resolved shortly. For now, code is sufficiently complete to begin
timing testing and optimizations. To use specify

-dCOLORSCREEN -sDEVICE=plank

and enable processing of color images by setting use_fast_thresh = true
on line 67 in gxicolor.c

gs/base/gxht_thresh.c
gs/base/gxht_thresh.h
gs/base/gxicolor.c
gs/base/gxidata.c
gs/base/gximono.c
gs/base/lib.mak

2011-06-21 18:52:03 +0100
Robin Watts <Robin.Watts@artifex.com>
fef629cab877b0bbf4f86777f37038d1f37de838


Fix cut/paste tiffscaled typo in docs.

CLUSTER_UNTESTED.

gs/doc/Devices.htm

2011-06-21 16:45:52 +0100
Chris Liddell <chris.liddell@artifex.com>
368e14c73337b42a24299445a660f029d2c26861


Reinstate the configure check for cups/raster.h.

Several Linux distributions seem to have neglected to make
the cups development package depend on the cupsimage
development package, but we need both for the cups device.

No cluster differences expected.

CLUSTER_UNTESTED

gs/base/configure.ac

2011-06-21 12:31:45 +0100
Ken Sharp <ken.sharp@artifex.com>
dfc53c791d8a121273bd22bbc0c04fd3ed375cdf


Bug #692218 Create comatible CIDSet

The fix in Bug 692218 did not (apparently) work for the SolidWorks
PDF/A validator. This patch sets the number of entries in a CIDSet to
be the number of glyphs in the font program, and makes the number of entries
in a CIDToGIDMap the same.

Together with the commit 27b740 here:

http://ghostscript.com/pipermail/gs-cvs/2011-June/013024.html

this now seems to work correctly.

gs/base/gdevpdtd.c

2011-06-21 12:08:58 +0100
Ken Sharp <ken.sharp@artifex.com>
136934cf60977e5ca6c1a77f8fd4d30a8512b206


Allow pdfwrite and ps2write to use 64-bit file pointers raising the 4Gb file limit.

Bug #692290 ps2write and pdfwrite have been using gp_open_scratch_file,
fseek and ftell, which limit the size of a temporary file to 4GB. This
commit uses gp_open_scratch_file_64, gp_ftell_64 and gp_fseek_64 whcih
should allow 64-bit file access on systems which support it.

Unfortunately I haven't been able to concoct a test for this, so the
64-bit code is not tested. However it continues to work normally with the
clustre regression tests.

gs/base/gdevpdf.c
gs/base/gdevpdfo.c
gs/base/gdevpdfp.c
gs/base/gdevpdfu.c
gs/base/gdevpdfx.h
gs/base/gdevpsu.c
gs/base/gdevpsu.h

2011-06-20 17:57:46 +0100
Robin Watts <Robin.Watts@artifex.com>
da1152191fb97516b82303ab187b08c971bfd360


Fix Bug 692057, 'hang' while converting mask->rectangle list.

Previously the clip accumulator code would attempt to add a new
rectangle would always search backwards from the tail of the
list when looking for a new place to insert a rectangle.

This works well when rectangles are coming in at (or near) the
end of the list. For cases where this doesn't happen we quickly
break down to O(n^2) operation.

The example file on the bug shows one such circumstance, where
we process a landscape image; this results in the masks coming
in as '8 bit columns'. The first column accumulates nicely,
subsequent ones do not.

The fix here, as suggested by Chris Liddell, is to store the
'last insert point', and to search from that. Locality of
reference should pay off here and lead to much improved
performance. Certainly tests with the example file show that we
complete within 2.5 minutes on my machine, compared to 1.5 minutes
with -dMaxPatternBitmap=32000000, and an unknown time over 5 minutes
with the old code.

gs/base/gxacpath.c
gs/base/gxcpath.c
gs/base/gxcpath.h

2011-06-20 09:56:37 -0600
Henry Stiles <henry.stiles@artifex.com>
19f10a95bae408363a77f5a2fd05f69350269cb7


Merge branch 'deprecate_crd_and_cleanup'

2011-06-03 00:15:50 -0600
Henry Stiles <henry.stiles@artifex.com>
476256194a8886951885a4e9ce71972504161192


Deprecate CRDs in PCL

pcl/pccrd.c
pcl/pccrd.h
pcl/pcdraw.c
pcl/pcfrgrnd.c
pcl/pcfrgrnd.h
pcl/pcl.mak
pcl/pcommand.c
pcl/pcpalet.c
pcl/pcpalet.h
pcl/pcpatrn.c
pcl/pcpattyp.h
pcl/pcstate.h
pcl/pctop.c

2011-06-02 16:55:55 -0600
Henry Stiles <henry.stiles@artifex.com>
1c1c457a4262f1ef539ec75792c57494c8a746b2


Trivial warning fixes

pcl/pcindxed.c
pcl/pcpage.c

2011-06-02 14:18:35 -0600
Henry Stiles <henry.stiles@artifex.com>
854a16b3eefc0d3b434f446db84e3a9317eda49e


Make page size procedure robust against paper size table changes.

pcl/pcpage.c

2011-06-01 11:52:40 -0600
Henry Stiles <henry.stiles@artifex.com>
b89ab3397895d41818170a7f4ea893bbb1580e79


Clean up warnings and problems identified with static analysis.

pcl/pcstatus.c
pcl/pctext.c
pcl/pctop.c
pcl/pcuptrn.c
pcl/pgdraw.c
pcl/pglabel.c
pcl/pgvector.c
pl/pjparse.c
pl/plchar.c
pxl/pxfont.c

2011-05-27 14:30:10 -0600
Henry Stiles <henry.stiles@artifex.com>
22b24ea5e3006b4cdc0394c9360423f02b6d3bf9


Code cleanup directed by static analysis tools.

Changes function not properly made static, removes unread and unused
variables.

pxl/pxpthr.c
pxl/pxsessio.c
pxl/pxtop.c

2011-05-27 13:48:38 -0600
Henry Stiles <henry.stiles@artifex.com>
00d4d232283b2eb6c9820618d04b5d4c9eb8a7b3


Makes procedure static.

pcl/pctop.c

2011-05-27 13:45:03 -0600
Henry Stiles <henry.stiles@artifex.com>
d98ceb81d6d45f4a2bc49b2f28dd16fe94fea601


Fixes static analyzer discovered logic error.

With an array size of 0, the line dash pattern should not be accessed.

pxl/pxgstate.c

2011-06-20 15:43:34 +0100
Ken Sharp <ken.sharp@artifex.com>
9d0ded9edc84704afd3724b3c7810c035dc4e699


Permit the calculation of CIDSet and CIDToGIDMap size, for PDF/A validation

The SolidWorks PDF/A validator complains about the CIDSet we produce for
embedded TrueType fonts, converted to CIDFonts, when creating PDF/A files.

I'm still not exactly sure what its complaining about but I'm working with
our customer to resolve this. In the meantime, this code makes it easier
to play with teh emission of CIDSet and CIDToGIDMap.

gs/base/gdevpdtb.c
gs/base/gdevpdtd.c
gs/base/gdevpdtf.c
gs/base/gdevpdtf.h
gs/base/gdevpdtw.c

2011-06-20 11:17:26 +0100
Ken Sharp <ken.sharp@artifex.com>
27b7404218093f3d1cf414b52721c8a24dbc2746


ps2write output crashes with limitcheck error after converting large documents

Adopting patch from 'Steve166' (bug # 692172) with a little gratuitous
reformatting. (note that opdfread.ps is now compiled in as opdfread.h)

This converts the directory of objects from an array to a dictionary of dictionaries
which allows for a more or less unlimited (64k*64k) number of objects.

No cluster differences expected.

gs/base/opdfread.h
gs/lib/opdfread.ps

2011-06-20 03:12:22 -0700
Marcos H. Woehrmann <marcos.woehrmann@artifex.com>
0700f67de273e92f06a1e4a0e67e3d023fc29442


Added dependencies to various makefiles to fix parallel make.

gs/base/lib.mak
gs/contrib/contrib.mak

2011-06-17 23:20:30 +0000
Robin Watts <robin@ghostscript.com>
29c7111f3fc5eb4878e875674750c79b1bd85bcc


Add gdevplan.c to ghostscript visual studio project.

Should have done this earlier, but forgot. CLUSTER UNTESTED as windows
only.

gs/ghostscript.vcproj

2011-06-17 21:08:49 +0100
Robin Watts <Robin.Watts@artifex.com>
75e1e089f68480b68bb9548ba1e6cf0b9d0f73e0


Fix windows compile breakage; missing definition of int64_t.

Simply add a #include "stdint_.h" to the top of a file; breakage
presumably caused by the dependency changes done earlier.

CLUSTER_UNTESTED.

gs/base/gstparam.h

2011-06-17 12:34:26 -0700
Michael Vrhel <michael.vrhel@artifex.com>
b058182285c21ff142e46997fd3b8510b6993d66


Fix for improper offset in contone data. Halftone project only.

CLUSTER_UNTESTED

gs/base/gxicolor.c

2011-06-17 12:32:11 -0700
Michael Vrhel <michael.vrhel@artifex.com>
096e21027a7ff99cf0e3d0d1e24dac29b2d69f12


Fix for Bug 692286 - Image too light -- not fully opaque

when I did some of the work on the compositor queue I had set things up so that the
update of the blend parameters would be written only into the same bands as the group
push. The approach of writing only in the bands of the group bounding box will not
work in general, for example if we have nested groups that only partially overlap. The
solution is that we have to write the blend parameters in all bands.

gs/base/gdevp14.c

2011-06-17 10:37:44 -0700
Ray Johnston <ray.johnston@artifex.com>
ee45ee90570975275ad6b826b377d6852b651b6a


Fix bug 692254 performance problem with pattern that bbox overflowed fixed.

The compute_inst_matrix relied on the gx_translate_to_fixed but when the
tx, ty was outside the valid area (txy_fixed_valid false) the float2fixed
would overflow and change the sign. This killed the performance when the
j0, i0 loop in tile by steps calculated a VERY large loop range from large
negative to large positive value.

The gx_path_translate may not be needed for in this path, but it is included
since that was in the gx_path_translate_to_fixed. Quick check showed that the
path is empty as expected, but the call is harmless.

gs/base/gsptype1.c

2011-06-17 19:43:09 +0100
Robin Watts <Robin.Watts@artifex.com>
9dd7c86d0619a9293f6476092765b86abab3baf1


Move planar dev_spec_op into core planar device.

Rather than having plib and plan devices provide a dev_spec_op that
responds to gxdso_is_native_planar, put the responsibility for this
into the core planar memory device.

This not only simplifies the code, it actually fixes a problem whereby
the memory device was overwriting it with the default.

gs/base/gdevmpla.c
gs/base/gdevplan.c
gs/base/gdevplib.c

2011-06-03 09:55:57 -0700
Ray Johnston <ray.johnston@artifex.com>
a2a0b404be0365a2f789e154733ab51db3b3aa99


Add an example that uses PostScript to do simple transparency.

CLUSTER_UNTESTED.

gs/examples/transparency_example.ps

2011-06-17 17:53:53 +0000
Robin Watts <robin@ghostscript.com>
f80bc7001e2e250348a6db82aa50d25d18848b66


Enable plan devices in non-windows builds.

No cluster differences expected.

gs/base/unix-gcc.mak
main/pcl6_gcc.mak

2011-06-17 17:11:27 +0000
Robin Watts <robin@ghostscript.com>
4ed123916f3f3373d5648011ea03c3cd969e00c1


Fix for Bug 692285: phase shift in patterns in long image.

The phase for a pattern mask was being held in a short, rather
than in an int. Unsurprisingly this caused problems when the
phase overflowed. Simple fix is to use an int instead.

Cluster testing shows no changes.

gs/base/gsdcolor.h

2011-06-17 13:21:05 +0100
Chris Liddell <chris.liddell@artifex.com>
b8326c843f0d14b55b7b5cc3694977df73d4a0e4


Remove circular dependency involving gscms.h.

Robin Watts identified that gscms.h relies on gsutil.h
which relies on gxstate.h, which relies on gscspace.h which
relies on gscms.h

Adding a couple of opaque declarations to gscspace.h (along with
relevant declaration guards) removes this circular dependency.

No cluster differences.

gs/base/gscms.h
gs/base/gscspace.h

2011-06-17 09:43:21 +0100
Chris Liddell <chris.liddell@artifex.com>
af98a55ac576545d9495cef0884462b7b2fb8205


Tidy up some of the GS<->FT number conversions.

gs/psi/fapi_ft.c

2011-06-17 09:49:14 +0000
Robin Watts <robin@ghostscript.com>
7a8971739d33a18dd7d433adcabf2e2dea5b6ba8


New lib.mak dependency checker, and update lib.mak using it.

Invoke gs/toolbin/checkdeps.pl and it performs rudimentary
and easily confused checks on the dependencies in lib.mak.
It may be simple, but it spots MANY problems, the important
of which are fixed here.

It gets easily confused by files not being in the expected
paths (but these are easy for an operator to spot and ignore).

No cluster differences expected.

gs/base/gxstroke.c
gs/base/lib.mak
gs/toolbin/checkdeps.pl

2011-06-17 09:30:32 +0100
Chris Liddell <chris.liddell@artifex.com>
2cd56d061e655569ec473d605caae9552355a59f


Bug 689546: Add clist.dev to the core lib dependencies.

I previously noted that the clist device is essentially always required
now, but I used a less than ideal method to address it: having it as
a dependency of the gdevprn.o object.

The correct solution, done here, is to include the clist device in the
libs.dev file, thus making it a direct requirement of the core lib.

No cluster differences.

gs/base/lib.mak

2011-06-16 12:11:41 -0700
Michael Vrhel <michael.vrhel@artifex.com>
449e9c8909e5e0cbf92497f1d95bfe60e8e89f6e


Addition of copy_plane command for clist

The command closely mimics the copy_mono command and as such shares its
command operator. With a bit of work it would be possible to get some minor
code reduction but the recursive nature of the functions makes it a bit
tricky.

gs/base/gxcldev.h
gs/base/gxclimag.c
gs/base/gxclist.c
gs/base/gxclist.h
gs/base/gxclrast.c
gs/base/gxclrect.c
gs/base/lib.mak

2011-06-16 14:55:07 +0100
Robin Watts <Robin.Watts@artifex.com>
e34770c45cefbe6c4cf2d564269ff849282dd10f


Second attempt to add plan devices.

Add new 'plan' family of planar devices.

Equivalent to the plib devices, but without the necessity to always band,
and not using the band donor.

From the end users point of view, these output ppm etc and are probably
therefore not that useful as is. They serve the twin purposes of allowing
us to test planar output, and to act as a basis for devices that need
planar non-interlaced output.

The development of these devices showed a problem with
gx_get_bits_return_pointer in the planar case. When called, it would
assume that the start of the first line of the first plane was at
'base', and that subsequent planes could be reached by adding
raster * height to it. Unfortunately, clist_rasterize_lines resets the
buffer device at the end, so that height is unrelated (often 1).

The fix implemented here is to change gx_get_bits_return_pointer to take
a pointer to the line pointers, rather than a direct base value. This
means we can always find the subsequent planes correctly.

In my initial attempt at this, I broke the code by failing to notice that
gdevmem.c passes the same base pointer to gx_get_bits_copy. Fixed here.
Cluster testing shows it be OK this time around.

gs/base/devs.mak
gs/base/gdevdgbr.c
gs/base/gdevmem.c
gs/base/gdevmpla.c
gs/base/gdevplan.c
gs/base/gdevplib.c
gs/base/gxgetbit.h
gs/psi/msvc.mak

2011-06-16 11:49:18 +0000
Robin Watts <robin@ghostscript.com>
11e242eae4d9c78a556b030ef5e69cb0c94e0d48


Backout previous commit of 'plan' devices.

The previous commit caused large numbers of changes. Back it out while
I investigate why.

gs/base/devs.mak
gs/base/gdevdgbr.c
gs/base/gdevmem.c
gs/base/gdevmpla.c
gs/base/gdevplan.c
gs/base/gdevplib.c
gs/base/gxgetbit.h
gs/psi/msvc.mak

2011-06-16 10:00:33 +0100
Robin Watts <Robin.Watts@artifex.com>
583e964a55bf50dc28d1467fd9e9bad7bc03849a


Add new 'plan' family of planar devices.

Equivalent to the plib devices, but without the necessity to always band,
and not using the band donor.

From the end users point of view, these output ppm etc and are probably
therefore not that useful as is. They serve the twin purposes of allowing
us to test planar output, and to act as a basis for devices that need
planar non-interlaced output.

gs/base/devs.mak
gs/base/gdevdgbr.c
gs/base/gdevmem.c
gs/base/gdevmpla.c
gs/base/gdevplan.c
gs/base/gdevplib.c
gs/base/gxgetbit.h
gs/psi/msvc.mak

2011-06-14 18:56:03 +0100
Robin Watts <Robin.Watts@artifex.com>
a36cd9f5c60607dfbc12caadb0987b89ecfa27e7


Update gx_path_print (and gx_path_dump) to output postscript.

Same information as before is output, just in a a slightly different
order. This means we can paste it back into a postscript file with
less editing.

CLUSTER_UNTESTED as this is never called in production code.

gs/base/gxpath.c

2011-06-14 19:15:29 +0100
Robin Watts <Robin.Watts@artifex.com>
c442d7d0d5b11addc39519b155b93b3677c11c4d


Add memento.c/memento.h to VS project

Forgot to add these when they were created.

CLUSTER_UNTESTED as windows only.

gs/ghostscript.vcproj

2011-06-16 09:56:47 +0100
Ken Sharp <ken.sharp@artifex.com>
7de54e55e57f4046196c0909da247f98ef26b46d


Extend the uuid change in commit g0b7cd7c to cover Instance UIDs as well as Document UIDs.

No differences expetced.

gs/base/gdevpdfe.c

2011-06-15 19:36:31 +0100
Ken Sharp <ken.sharp@artifex.com>
45663bbeb798d7a851546a4d6ccf8954e16696ae

(pdfwrite) Bug #692280 "Incorrect ToUnicode CMap when the input is a PDF with a 2-byte ToUnicode"

The code was handling Type 0 fonts as if they were type 1, which meant a maximum
of 256 entries. Fixed by treating them as TrueType CIDFonts (2 byte codes, maximum
64K entries)

This may need later testing with more extensive collections of conts, we possibly should treat them as regular CIDFotns.

gs/base/gdevpdte.c

2011-06-15 12:18:16 -0400
Alex Cherepanov <alex.cherepanov@artifex.com>
10fad95042303b1996d8565a40d8ca4d5c4eed06


Dump unchanged MediaBox and CropBox values.

Output unmodified values of /MediaBox and /CropBox attributes.
This is done on request from a customer, but should also benefit
every pdf_info.ps user. This change is not backward compatible.

gs/toolbin/pdf_info.ps

2011-06-15 01:53:26 -0400
Alex Cherepanov <alex.cherepanov@artifex.com>
28ab2c1fafd763c7ab1074c91bf217bbbc871fe7


Bug 691335: Fix Photoshop EPS separations.

Use DSC comments to get separation names. If the output device supports
separations (i.e. has big /MaxSeparations attribute), set /SeparationColorNames
accordingly. Fix DSC handler; make it ignore the comments after %%EndComments
to avoid handling of DSC comments in nested EPS documents. Drop strange
code that runs tint transform function when any of the colorant names is
is a standard name (Gray, Red, Cyan, ...).

gs/Resource/Init/gs_epsf.ps
gs/psi/zcolor.c

2011-06-14 16:52:57 +0100
Ken Sharp <ken.sharp@artifex.com>
0b7cd7ca121ac440d5607cc6795ba8bcd7c20c85

(pdfwrite) Bug #692268 "pdfwrite sets xapMM:DocumentID incorrectly"

The XML emission in pdfwrite was simply pasting the UUID as a hex string,
whereas the spec says it must be a URI.

This change adds the 'uri:' which is required for compliance.
No cluster differences expected.

gs/base/gdevpdfe.c

2011-05-26 10:58:31 +0100
Ken Sharp <ken.sharp@artifex.com>
cba939306ceacde74aac1d9b69ca6cf08ce1ebce


Use correct enumerator for PCL type 3 fonts in pdfwrite

Part of the change for type 3 fonts from PCL used the wrong enumerator.
The code relies on a text enumerator actually being a show enumerator,
which is guaranteed true if we use the right one, but may not be if we
use the wrong one.

This didn't seem to be causing any problems, but fixed anyway.

gs/base/gdevpdtt.c

2011-06-11 20:52:20 -0400
Ken Sharp <ken.sharp@artifex.com>
49ae789184ebb094c29b14a6778e8fa823f6637a


Bug 691706: Keep page number with /View

If we have a View and a Page, but no matrix (not required if we have
a /View [/Fit]) then do not discard the page number but use it as a
/Page argument (adding one because pdfmark starts from page 1, not 0).

gs/Resource/Init/pdf_main.ps

2011-06-11 16:26:11 -0700
Michael Vrhel <michael.vrhel@artifex.com>
03bce08fdcb15702abf4cafbe8723dc8b9b7bd6f


Fix for aliasing of icc link hash code

This fixes a problem that existed in the computation of the ICC
hash code. This was the source of the problem in Bug 692265 (bug fixed with
this commit in file gsicc_cache.c). Also some error checking code and
addition of code to handle the transfer function when doing the fast
thresholding of color images.

gs/base/gdevp14.c
gs/base/gsicc_cache.c
gs/base/gsicc_lcms.c
gs/base/gxcmap.c
gs/base/gxcmap.h
gs/base/gxicolor.c

2011-06-11 10:27:53 -0400
Alex Cherepanov <alex.cherepanov@artifex.com>
4c6809dfa1c539d757c30f572922e05cd1436698


Bug 692252: Trap contents stream errors

Run PDF operator streams in a stopped context. Stop processing of the
stream on error, but continue to process rest of the file. Remove a
hack that defined 'inf' as 0.

gs/Resource/Init/pdf_base.ps
gs/Resource/Init/pdf_draw.ps

2011-06-10 00:10:39 -0400
Alex Cherepanov <alex.cherepanov@artifex.com>
f256d925aba7bd2c552e3598b5782bc3ab09cf4f


Bug 692258: Search annots, forms, patterns for fonts.

Besides the contents, look into annotations to identify fonts used by
the PDF file. Add recursive enumeration of Form and Pattern resources.

gs/toolbin/pdf_info.ps

2011-06-09 16:07:15 +0100
Robin Watts <Robin.Watts@artifex.com>
ce51b64c335d6c995c003497988d0327c64985cb


Add Sags unicode patch for gswin32c stdin/out.

Patch from Sags to read/write stdin/stdout as unicode and convert
to/from utf8 when passing to/reading from the core.

Once again, build with WINDOWS_NO_UNICODE to preserve old behaviour.

See bug 692770.

CLUSTER_UNTESTED.

gs/psi/dwmainc.c

2011-06-09 16:11:00 +0100
Robin Watts <Robin.Watts@artifex.com>
c39c030b850848540a5df1fc25c4dc76ee90040b


More unicode changes for gswin32

Taken on (most of) a patch from Russell Lang to dwtext.c, with bugfixes
to the changes I made yesterday. The bits of the patch I didn't take
on, were to do with running gswin32 as a true Unicode application.

Currently we are an ANSI application with a Unicode window. Moving to
be a true Unicode application may have knock on effects I am unsure of
(and would certainly leave us different to gswin32c.exe). I don't think
we lose anything by staying as we are.

CLUSTER_UNTESTED.

gs/psi/dwtext.c

2011-06-09 12:09:38 +0100
Chris Liddell <chris.liddell@artifex.com>
752397ab6f16aad4147d6e7101373edd7c9d14d5


Bug 692263 spot and elide glyphs with zero dimensions.

A glyph with a zero scale in either dimension could cause divide by
zero errors in a number of places in the FAPI *interface* code
(that is: fapi_ft.c, fapiufst.c and fapibstm.c). So catch and handle
the case early by skipping such case. The wrinkle is charpath operations
which *must* create a path, even of zero dimensions.

No cluster differences.

gs/psi/fapi_ft.c
gs/psi/fapibstm.c
gs/psi/fapiufst.c
gs/psi/ifapi.h
gs/psi/zfapi.c

2011-06-08 18:36:35 +0100
Robin Watts <Robin.Watts@artifex.com>
199498069233c98424567d22964dd1934c9f766e


Windows gs console window unicode changes.

Changes to dwtext.c to allow unicode operation.

The window is created as a Unicode one, so we get unicode character codes
delivered to us as they are typed. We convert these incoming key codes
into utf8, as the gs core expects. Any output from the core is converted
from utf8 to unicode, and the window now displays unicode.

The net effect is that the window looks like it's behaving exactly like
a unix window does.

The copy and paste functions are updated to cut and paste unicode too.

As usual, building with WINDOWS_NO_UNICODE preserves existing behaviour
(useful for windows 95/98/me builds).

The sole difference in behaviour is that the copy function now removes
trailing blank lines from the output, as this is never what you want.

CLUSTER_UNTESTED as windows only changes.

gs/psi/dwtext.c
gs/psi/dwtext.h

2011-06-08 14:55:28 +0100
Robin Watts <Robin.Watts@artifex.com>
afda147d56efff03ff6967a91a0436732d7b38fc


Tweaks to windows makefiles.

Eliminate some noise during windows builds. Thanks to Norbert Janssen for
this.

CLUSTER_UNTESTED

gs/base/msvctail.mak
main/pcl6_msvc.mak

2011-06-08 10:05:21 +0100
Robin Watts <Robin.Watts@artifex.com>
3367282be8da9713c0cd7a95a56c59a6b4e69a6e


Add file missed from last nights commit, 232b1d3.

Forgot to add the new file :(

gs/base/gp_wutf8.c

2011-06-07 15:25:57 -0700
Michael Vrhel <michael.vrhel@artifex.com>
6a436e0f9992ab5734b21b796a02ed0976ba1d5b


Work toward getting fast thresholding for color output devices and color input images

To make my life easier, this updates msvc.mak to include the planar devices.
Changes in image_render_mono_ht to work towards the case where the output device is not mono.
Minor fixes in gxicolor.c in the portion of code that steps through the planes.
Addition of copy_plan operations in gxht_thresh.c for CMYK planar devices.
Addition of clip_copy_plane for the clip device (thanks Robin Watts).

gs/base/gxht_thresh.c
gs/base/gxht_thresh.h
gs/base/gxicolor.c
gs/base/gximono.c
gs/base/lib.mak
gs/psi/msvc.mak

2011-06-08 00:02:44 +0100
Robin Watts <Robin.Watts@artifex.com>
232b1d36ad90b8d8be357033a80162fdd9de7aa8


More work on unicode handling under windows.

Continuing from commit 0ea739147, fix other issues, including:

* OpenPrinter calls changed to use OpenPrinterW.
* FindFirstFile/FindNextFile changed to use FindFirstFileW/FindNextFileW.
* gp_getenv windows specific registry lookups changed to use unicode
versions.
* GetProfileString changed to use GetProfileStringW.
* Add unicode changes to gswin32 as well as gswin32c.exe.

This hopefully concludes the bulk of the work on unicode support. Possible
areas to consider in future include:

* changing gswin32 so that cut and pasting operates in unicode
* make gswin32 display text in unicode
* modify stdin to go from unicode to utf8, and stdout to go from utf8
back to unicode.

I hope no idea if any of those are possible or not.

Testing seems to indicate that this all works OK, but I am not ideally
set up here.

For safety, I have introduced a WINDOWS_NO_UNICODE define. If this is
predefined during a build then this will cause the code to drop back to
the old mode of operation.

gs/base/gdevwpr2.c
gs/base/gp_msprn.c
gs/base/gp_mswin.c
gs/base/gp_mswin.h
gs/base/gp_ntfs.c
gs/base/gp_wgetv.c
gs/base/msvctail.mak
gs/base/windows_.h
gs/base/winlib.mak
gs/ghostscript.vcproj
gs/psi/dwmain.c
gs/psi/dwmainc.c
gs/psi/msvc.mak
pl/dwmainc.c

2011-06-06 22:13:07 -0400
Alex Cherepanov <alex.cherepanov@artifex.com>
8b90a80fe86364c0b6c1cad12cfb241c66943c24


Bug 688064: Add AdjustWidth=WIDTH

Extend AdjustWidth option to support adjustment to any width. This option
now accepts the following values;
0 - no adjustment, the same as before
1 - low res fax adjustments, the same as before
>1 - adjust to the given width, regardless of the document width.

gs/base/gdevfax.c
gs/base/gdevpng.c
gs/base/gdevtifs.c
gs/base/gdevtifs.h
gs/base/gxdownscale.c
gs/base/gxdownscale.h
gs/base/minftrsz.c
gs/base/minftrsz.h
gs/doc/Devices.htm

2011-06-06 21:00:41 +0100
Robin Watts <Robin.Watts@artifex.com>
f92a542b0475a12f4724d3e57f232cafbe17ce50


Bug 691118: Fix radial shading bug

Bug 691118 describes a bug with radial shadings in a PDF file.

Back in r7982 (git 69a43b0) (16 May 2007) Igor introduced some cunning
code to speed radial shadings. It would spot that the shading was large
in comparison with the area being filled, and produce a smaller,
equivalent shading.

Essentially, it would take the destination rectangle, and figure out
where in the shading the 'extremes' of that rectangle would come from
(allowing for distortion in shape generation) and ensure that the newly
generated shading covered the same area.

Either the corners of the rectangle could be extremes, or points on the
side. The code for the points on the sides was broken due to a typo
causing the X and Y cases to be switched.

All that is required to solve the bug is to change the == to !=.

In researching the problem however, I recommented lots of the code to
make it more comprehensible (to me at least!) along with introducing
some temporary variables to make it clearer and avoid needless
recomputation of values. I am committing this as I believe it's a step
forward for the code, even though it doesn't actually make a
difference.

48 differences in non-pdfwrite/ps2write tests. 11 in pdfwrite, 17 in
ps2write. Checked with bmpcmp, all unnoticable to the naked eye, so
presumably progressions.

gs/base/gxshade1.c

2011-06-06 14:59:09 +0100
Robin Watts <Robin.Watts@artifex.com>
82dc5982726c8ea05c3be6faa2f370a62f11a94a


Fix Bug 689737: antialiasing issues with patterns.

Bug 689737 shows mismatches between rendering with and without
antialiasing when PaintType 2 patterns are used.

Following Michaels analysis of the bug, the fix seems to be very simple;
when opening a pattern accumulator device, if the PaintType is 2, then
set color_info.anti_alias.graphics_bits to 1. We also set
color_info.anti_alias.text_bits to 1, even though this is unlikely to
make a difference if freetype is used.

No expected cluster differences as antialiasing isn't used in any
cluster tests.

This commit also removes a FIXME (as I've checked with Michael), and
improves the commenting on the device proc structure (which I'd done
when trying a different device proc based fix, but is an improvement
anyway).

gs/base/gxpcmap.c

2011-06-05 23:42:14 -0400
Alex Cherepanov <alex.cherepanov@artifex.com>
a0720527bcabb2732c3c06dfe3cae1f9c9ea9318


Bug 692252: define 'inf' as 0

Work around a bug in PDF file that has 'inf' instead of a number
in the content stream. Define a PDF operator 'inf' that returns 0
and issues a warning.

gs/Resource/Init/pdf_draw.ps

2011-06-04 22:04:12 +0100
Robin Watts <Robin.Watts@artifex.com>
0ea739147fd02ee0e63e58c036bb63fa841ddd3c


Bug 691222: Make windows build use UTF-8 encoding.

We change the windows builds to use the 'wmain' rather than 'main'
entrypoints. This means we get the command line supplied in 'wchar_t's
rather than chars. We convert back to chars using UTF-8 encoding, and
call (what was) the main entrypoint.

This means that we can cope with unicode filenames/paths etc.

To match the encoding, we therefore need to wrap every use of the
filenames with the associated utf-8 -> wchar_t conversion and use
the unicode file access functions (_wfopen instead of fopen etc)
instead.

Simple testing seems to indicate that this works. I think I've got
every occurence of file access, but it's possible I've missed some. If so
I'll fix them piecemeal as they are reported.

This should solve bug 691222, and hopefully 691117.

gs/base/gp_mswin.c
gs/psi/dwmainc.c
pl/dwmainc.c

2011-06-04 22:09:58 +0100
Robin Watts <Robin.Watts@artifex.com>
4aff3e0d813cb00eb62db9720cf99b2d419f999a


Move various uses of fopen to use gp_fopen.

For portability we should be using gp_fopen, not fopen.

gs/base/gdevdevn.c
gs/base/gdevimdi.c
gs/base/gdevrinkj.c
gs/base/gdevtxtw.c
gs/base/gdevwts.c
gs/psi/imainarg.c

2011-06-04 00:35:37 -0700
Marcos H. Woehrmann <marcos.woehrmann@artifex.com>
77b456f298aeabaa4b27b63a9ead0aa0470ac5b8


Removed HAVE_HYPOT from configure scripts.

This revision disables checking for a system hypot() function and is
a followup to 7dcc68ce753175a9c686021d53a061253e2787c3 which modified
math_.h to always use our internal hypot() function.

No expected cluster differences.

config.mak.in
configure.ac
gs/base/Makefile.in
gs/base/configure.ac
gs/base/macosx.mak
gs/base/unix-gcc.mak

2011-06-03 17:33:51 +0100
Robin Watts <Robin.Watts@artifex.com>
31174084f95474f9c0edfd4c534c3b1654c02255


Fix bug 692226; stray pixels in skewed masked image

When painting a masked image, we first plot a scanlines worth of
mask pixels to a mask plane. This is then used in a clipping device to
clip the image pixels that follow thereafter.

In the code that plots the masked pixels it currently gathers up 'runs'
of identical pixels and plots them all at once. This works fine for
portrait and landscape images, but for skewed ones has problems due to
rounding errors. By plotting large runs of pixels at once, we can a) get
gaps between subsequent rows of masked pixels, and b) get a mismatch
between the pixels covered by the mask and the image. These manifest
as holes in the image.

The image code already has a comment in it to the effect that we cannot
amalgamate large blocks due to rounding errors.

This fix therefore extends this policy (of not amalgamating) to skewed
masked images too.

426 non-pdfwrite/pswrite differences expected. 79 pdfwrite. 31 ps2write.
Checked with bmpcmp and all seem either progressions or neutral.

gs/base/gximono.c

2011-06-03 19:07:47 +0100
Robin Watts <Robin.Watts@artifex.com>
9c5325b7778074c3add1f682058260d7f8154386


Add clip_copy_plane device procedure.

Cut and pasted with obvious changes from clip_copy_mono. Nothing remarkable
worth mentioning.

Not used in current code, so CLUSTER_UNTESTED.

gs/base/gxclip.c
gs/base/gxclip.h

2011-06-03 17:32:09 +0100
Robin Watts <Robin.Watts@artifex.com>
7c8855aed043415063ad7472eb2af4320d4544eb


Add rasterop to FEATURE_DEVS in msvc makefile.

The rasterop module is already added by default under unix, so this moves
windows into line.

CLUSTER_UNTESTED

gs/psi/msvc.mak

2011-06-03 12:29:50 -0400
Alex Cherepanov <alex.cherepanov@artifex.com>
636788a8e6d2133a7e3294ee4e1b573c64e1254a


Bug 691906, Drop symbolic flag with named encodings.

PDF font descriptor has 3 attributes that affect whether the TT font
is processed as symbolic one. The spec is not clear what to do when
the attributes conflict. This revision consigers fonts that have
/WinAnsiEncoding or /MacRomanEncoding as non-symbolic regardless of
the flags.

gs/Resource/Init/pdf_font.ps

2011-06-02 20:49:27 -0700
Michael Vrhel <michael.vrhel@artifex.com>
6558511800f1f467b66e8e220b80ac99d6ee6f69


Addition of code to parse the file for the source object color description

The file toolbin/color/src_color/objsrc_profiles_example.txt provides example
content where we have the key word for the profile, the profile and the rendering
intent. Next step is to implement the usage of these profiles in the link
construction.

gs/base/gscms.h
gs/base/gsicc_manage.c
gs/base/gsicc_manage.h
gs/toolbin/color/src_color/objsrc_profiles_example.txt

2011-06-02 12:38:40 +0100
Robin Watts <Robin.Watts@artifex.com>
585cac9d3aa6bca9e877c3e12ef3e28fd4f7f571


Fix bug 691152; gradients appear 'stepped'.

The original bug report was that tiffsep and tiff24nc give noticably
different results. This turns out to be because tiffsep is set to use
non 'linear-and-separable' colours.

When shadings are rendered, they are 'decomposed' down into smaller
and smaller regions, until they are smaller than a given threshold.
These regions are then filled either with linear filled traps (in the
linear and separable case) or with constant colour (in the non linear
and separable case). This means that we can get away with a larger
threshold in the linear and separable case (tiff24nc) and still see
smooth results.

The original version of the code (pre SVN rev 7936) used to decompose
until the regions were smaller than a pixel. At rev 7936 this was
upped to be 1 point (1/72 of an inch) (or 1 pixel, whatever was
larger). Reverting to this original code solves the problem by making
the constant color regions small enough so that they still look
smooth.

There would therefore appear to be several possible approaches to
solve the problem:

1) We could back out the change in 7936. This trades time (27% in the
worst measured test case) for correctness.

2) We could change tiffsep to use linear and separable colours.

I've opted for an approach based on 1) here, because a bmpcmp clearly
shows easily visible differences in some files in other devices, for
example:

tests_private/comparefiles/470-01.ps.pgmraw.300.0

By default, the code now operates as pre revision 7936. Should the
change in speed be considered unacceptable, gs can be build with the
symbol MAX_SHADING_RESOLUTION defined to maximum dpi to which shadings
should be decomposed; building with -DMAX_SHADING_RESOLUTION=72 will
give the same results as the existing code.

gs/base/gxshade6.c

2011-06-01 11:12:31 -0600
Henry Stiles <henry.stiles@artifex.com>
4132ef5d36ff63b2b84f9864b7240609ac84ac38


Enhance autoconf tests for SSE2 and byte swapping support.

Previously we only checked if the test programs compile, now we check
if they compile and link.

configure.ac
gs/base/configure.ac

2011-06-01 16:22:40 +0100
Robin Watts <Robin.Watts@artifex.com>
f83e6d48c33ff1edd2aecbe4482b8a1374808951


Tweak jbig2dec os_types.h for android mupdf build.

If HAVE_STDINT_H is defined we are supposed to be getting our definitions
from stdint.h. Instead the header defines them anyway. Fix this. This showed
up when building MuPDF for Android.

gs/jbig2dec/os_types.h

2011-06-01 09:47:56 -0400
Alex Cherepanov <alex.cherepanov@artifex.com>
e895d3aae94fa6ca1c53c4e7a47f5894ee3c5943


Bug 591335: Get ink names from images.

Fixes a bug in indexed color space handler that prevented proper
recursion into the base color space, and add /Image /XObject
to the list of resources that are searched for separation color names.

gs/Resource/Init/pdf_main.ps

2011-05-31 23:39:45 -0400
Alex Cherepanov <alex.cherepanov@artifex.com>
db4af9eaf902dbac931ca8c88c586df9d160fb72


Bug 692245: Make pattern handler more robust.

Make pattern handling code tolerant to pattern streams that leave
some junk on the operand stack.

gs/Resource/Init/pdf_draw.ps

2011-05-31 09:23:10 -0700
Michael Vrhel <michael.vrhel@artifex.com>
000e8614d2229335ed269f9ebc9a42e33b035f83


Fix for issues in the setting of the newer ICC device parameters

This fixes issues that were introduced when I added the new device
parameters for rendering intent. Also, this adds in a new structure
for defining different ICC profiles for the SOURCE colors
of objects (e.g. text image graphic). This will be set as a user
parameter and stored in the icc manager. Next step in this is
to get things initialized and then use the associated profiles.

gs/Resource/Init/gs_lev2.ps
gs/base/gscms.h
gs/base/gsdparam.c
gs/base/gsicc_manage.c
gs/base/gsicc_manage.h
gs/psi/zusparam.c

2011-05-31 01:14:21 -0700
Marcos H. Woehrmann <marcos.woehrmann@artifex.com>
d0055ac144c1f1a51e906976b85e8e2119b5a2db


Change rsync max-size in clusterpush.pl to 10 megs.

To prevent accidently transferring large log files to the casper during
a clusterpush the rsync in that script was limited to 2.5 megs via the
the --max-size option. However a recently added source file, imdi_k.c,
is 2.6 megs, so the max-size limit has been increased to 10 megs.

gs/toolbin/localcluster/clusterpush.pl

2011-05-31 00:19:38 -0400
Alex Cherepanov <alex.cherepanov@artifex.com>
16e928c697f4282c830ab57b7e16347b0b5b086f


Bug 692242, drop outlines without /Title.

Ignore outlines without a required /Title attribute and
issue a warning.

gs/Resource/Init/pdf_main.ps

2011-05-30 20:26:53 +0100
Robin Watts <Robin.Watts@artifex.com>
91b9580bf09b81126d6a99c6fe3e0048972fe3d0


Fix Bug 692225. Interpolate and Decode don't play nice.

Bug 692225 gives an example where an Image with both a Decode array
and interpolation set to true gives bad results.

The problem was with a branch of the if in image_render_interpolate_icc
that was assuming that any decode array given was [0 1]. The fix here is
simply to test for whether need_decode is set.

No changes seen on clusterpushing.

Check this with Michael quand il sont retourne.

gs/base/gxiscale.c

2011-05-30 14:21:02 +0100
Robin Watts <Robin.Watts@artifex.com>
9fd0b414427b58fc79dae23cb11607ea5fcd0890


Updated gitpush.sh script.

Fixed script in light of kens experiences. Better error messages, more
thorough (i.e. any!) checking. Some documentation in the script.

gs/toolbin/localcluster/gitpush.sh

2011-05-28 18:04:24 +0100
Robin Watts <Robin.Watts@artifex.com>
543fd70fd3b6afc75a767ba1a41663ec3a982866


Excellently crufty gitpush script to interface with cluster.

In your local git repo, do the following:

git remote add regression@ghostscript.com:/home/regression/cluster/gitbridge/ghostpdl

Ensure that you are setup to be able to ssh into ghostscript.com as the
regression user.

Then:

git config alias.cluster '!gs/toolbin/localcluster/gitpush.sh'

Then you can:

git cluster

in exactly the same way as we used to be able to be able to:

gs/toolbin/localcluster/clusterpush.pl

CLUSTER_UNTESTED.

gs/toolbin/localcluster/gitpush.sh

2011-05-28 08:49:10 +0100
Chris Liddell <chris.liddell@artifex.com>
94f1a552f75647f142b85e5f30c075c19dde0084


Bug 692240: Gracefully handle incomplete FontBBox arrays.

The FAPI code would throw an error if the FontBBox array had fewer
than four values. We'll now replace the broken array with a valid
one.

No cluster differences expected.

gs/psi/zfapi.c

2011-05-27 10:15:08 -0700
Ray Johnston <ray.johnston@artifex.com>
20520230859eaa315a52731c1361be650c7e4999


Bug 692237. Fix memfile_unlink to use %p instead of 0x%0x

When the change was made (8e0f0dfb Ralph Giles 2008-09-10 21:35:24) the unlink
was missed. The %p is more portable in that it handles 32 or 64 bit addresses
as strings. Thanks to Norbert Janssen for finding this.

gs/base/gxclmem.c

2011-05-27 18:07:10 +0100
Chris Liddell <chris.liddell@artifex.com>
5974e9171854673d86e0c47a1d1cfef1ff9a5cb1


Address a compiler warning.

No cluster differences.

gs/psi/imain.c

2011-05-27 17:32:36 +0100
Chris Liddell <chris.liddell@artifex.com>
6a743893666fa2c00244f291b83208e5cb961a27


Bug 692238: fix a couple of typos in News.htm.

CLUSTER_UNTESTED

gs/doc/News.htm

2011-05-27 15:58:28 +0100
Chris Liddell <chris.liddell@artifex.com>
9a83627c1c0015a446fbf087848e98234a2bdddb


Bug 692220: have the lib file arrays extend as required.

Previously we had a hard limit of GS_MAX_LIB_DIRS on the number of entries
allowed in the lib search path. This change makes GS_MAX_LIB_DIRS the
default space available, but allows the arrays to extend as required.

No cluster differences expected.

gs/psi/imain.c
gs/psi/imainarg.c

2011-05-27 10:15:37 +0100
Chris Liddell <chris.liddell@artifex.com>
96da6c46750074869c5bcaeeba7e204d8df83a16


Have clusterpush.pl check for/use CLUSTER_USER env var.

For anyone that uses a different local login than their user name
for the cluster, rather than have to specify the user name on the
command line every time, you can now set CLUSTER_USER in your
shell, and clusterpush.pl will use that, before going to check
USER and USERNAME as before.

CLUSTER_UNTESTED

gs/toolbin/localcluster/clusterpush.pl
gs/toolbin/localcluster/clusterpush.txt

2011-05-26 11:20:10 -0700
Marcos H. Woehrmann <marcos.woehrmann@artifex.com>
998fc31cc9bd717190b0313eb246c14fe6303602


Restore Makefile to clusterpush.pl file list.

Removed Makefile from the list of files excluded from the rsync
operation in clusterpush.pl since the ghostpdl Makefile is not
built by a configure/autogen.sh operation.

gs/toolbin/localcluster/clusterpush.pl

2011-05-26 01:09:55 -0700
Ray Johnston <ray.johnston@artifex.com>
eb0b920bd993d1b03478c9ba4dfc54e995ec7bac


Fix minor typo.

gs/base/gsmchunk.c

2011-05-25 23:47:04 -0600
Henry Stiles <henry.stiles@artifex.com>
ec6afb99389c13414a43820908e090841b6bcd75


Fixes Bug 692232 - landscape printed on portrait media.

Add the ability to pass postscript names on the command line - so now
AutoRotatePages can be set. The other way of fixing this - specifying
a different MediaBox would be awkward in the current PCL design.

pl/plmain.c

2011-05-24 08:08:35 -0700
Ray Johnston <ray.johnston@artifex.com>
25de59220e9472e6de1acc046c317141a1751770


Fix for Bug 692217 nested trans_pattern_clist SEGV

This was caused by a clip device created for tiling a mask with a transparent
pattern rendered with a clist. The clip device used for rendering did not
get its color_info updated when its target (pdf14) changed the color_info,
specifically the depth.

Fixed by grabbing the target color_info after calling the target's compositor.

gs/base/gdevnfwd.c

2011-05-25 20:55:29 -0400
Alex Cherepanov <alex.cherepanov@artifex.com>
b8a35e6cf6f0394487c9e46d989ea57dd0e4203d


Bug 692229, rename variables in Luratech license blocks.

Change variable names in rarely compiled blocks related to Luratech
license key to match the declarations.

gs/base/sjpx_luratech.c

2011-05-25 19:55:04 +0000
Robin Watts <robin@ghostscript.com>
1de7e6dcb4a89cfdbc93ef176cee17f2e1b430f3


Revised clusterpush.pl; msys git operation

Changes to accomodate clusterpushing from windows msys git shells.
This relies on various other tools being added to the path. See
forthcoming email.

CLUSTER_UNTESTED.

gs/toolbin/localcluster/clusterpush.pl

2011-05-25 11:11:25 +0000
Robin Watts <robin@ghostscript.com>
177d0f5ef5d3d2f992b10750e072dc91696c92cc


Update gitsetup.h; remove --local.

Remove a --local from a command that upsets old versions of git, while
not making a difference to later versions. Thanks to Ray for pointing this
out.

CLUSTER_UNTESTED.

gs/toolbin/gitsetup.sh

2011-05-25 06:54:07 +0000
Ray Johnston <ray.johnston@artifex.com>
ebefadf4428a0fd4ca4607221bb59e2e0343b35b


Fix executable property to +x.

gs/toolbin/gitsetup.sh

2011-05-24 16:23:32 +0100
Robin Watts <Robin.Watts@artifex.com>
8151aa54b8a71e5c9929bb43390a9be1b4b8d042


Add gitsetup.sh to gs/toolbin.

Simple script for doing the 'obvious' configuration to a freshly checked
out git clone of ghostscript.

CLUSTER_UNTESTED.

gs/toolbin/gitsetup.sh

2011-05-24 07:53:59 -0700
Robin Watts
4dc31e78ea0b58973f5a97319eafcbc10e5b9f2b


Add autoconf check for bswap32/byteswap.h availability.

As per bug 692211, add some autoconf magic to detect the presence of
__builtin_bswap32 and/or byteswap.h.

No expected cluster changes.

config.mak.in
configure.ac
gs/base/Makefile.in
gs/base/configure.ac
gs/base/gsropt.h

2011-05-24 12:38:27 +0100
Robin Watts <Robin.Watts@artifex.com>
38720da47205c029d9bee6c3b792791b6f39277d


mem_mono_copy_mono optimisations.

Working on Norberts latest test files, I have changed mem_mono_copy_mono
to only use copy_rop if the runs are large enough for it to get a
benefit. Currently this threshold is set to 32 pixels (1 word).

This is sufficiently high that we get 9.01 or better performance on all the
test files, but might benefit from further tuning later.

gs/base/gdevm1.c

2011-05-24 08:35:18 +0100
Ken Sharp <ken.sharp@artifex.com>
b246d9d85c119f101956ba07cf9e1c8b9f510b49


pdfwrite : set bit 0 of CIDSet.

Set the CID 0 bit of the CIDSet array, so that this glyph is marked as
being present, when converting TrueType fonts to CIDFonts for PDF/A
output.

CID 0 is required to be present for all CIDFonts, it is the /.notdef
equivalent.

gs/base/gdevpdtd.c

2011-05-20 20:45:41 +0100
Robin Watts <Robin.Watts@artifex.com>
99b6056dda5ccf74a270d5ca3dbbe2319dc2c219


Fix for pdfwritten fts_42xx.xps crashing in transparency stuff.

See Bug 692219. This may well be patching symptoms rather than correctly
addressing the problem, but it's low impact, and shouldn't create any new
problems. We can always back it out after michael has had time to look.

gs/base/gxblend1.c
gs/base/gxpcmap.c

2011-05-23 15:42:46 +0100
Robin Watts <Robin.Watts@artifex.com>
86e887eab1634dc9bceec1e1479c11fe03835e96


mem_mono_strip_copy_rop_dev opts; non-texture 'short' case.

Attempt to optimise for latest test cases from Norbert.

Use reverted, and optimised old code for the width < 32 no texture case.

gs/base/gdevm1.c

2011-05-23 16:41:17 +0100
Ken Sharp <ken.sharp@artifex.com>
54796e82370348412811db945b95c42953ce0957


Bug #692202 Bug in display_raster function

The calculation of bytewidth, the number of bytes required for a row of
pixels, only worked correctly when the colour depth was a multiple of 8.

Since the device is a display device, and has since become used as a
general method for getting data out of GS, this is not reasonable
(monochrome and greyscale devices are less than 8 bits)

Modified as suggested by Martin Osieka to round up the calculation.

gs/base/gdevdsp.c

2011-05-23 08:08:23 +0100
Ken Sharp <ken.sharp@artifex.com>
7fcb89d46d42eb8806d226d3eb39a64f2ad0fe08


Squash a very minor compiler warning

gs/base/gdevpdtt.c

2011-05-22 22:23:49 +0100
Robin Watts <Robin.Watts@artifex.com>
b7d52f725a7c4ef939469f757687a86252fade9c


Add Memory squeezing functionality to Memento.

If you build with MEMENTO_HAS_FORK predefined, then in-app memory
squeezing is enabled.

export MEMENTO_SQUEEZEAT=1 then run the app, and it will do some magic
with repeated forks to test the "failure to allocate" paths through the code.

All the allocation events before the MEMENTO_SQUEEZEATth one will proceed
as normal. After that, on every allocation, the code will fork. The child
will proceed with every allocation failing until the program exits
(hopefully cleanly, but sometimes leaking memory, sometimes dying with a
SEGV due to failure to cleanup properly). When the child exits, the
parent carries on execution (until the next allocation, when the same fork
process happens again).

CLUSTER_UNTESTED as disabled by default.

gs/base/memento.c

2011-05-22 08:36:29 -0700
Michael Vrhel <michael.vrhel@artifex.com>
1be218b08069f483ba53eacddc6f7cfbe96957ea


Fixes in ICC profile handling and device parameters

This fixes some issues that were encountered when setting ICC
profiles on the command line. One issue is that the put_profile
procedure needs to be initialized a bit earlier which required
a change in gdevprn.h In addition, when the output profile is
specified to be the CIELAB profile and there is transparency in
the file there was a rc issue with the profile when going through
the clist. This also includes code to handle the rendering intent device
parameters for object types.

gs/base/gdevp14.c
gs/base/gdevprn.h
gs/base/gscdevn.c
gs/base/gsdparam.c
gs/base/gsicc_manage.c
gs/base/gsicc_manage.h
gs/base/gxclthrd.c

2011-05-22 08:32:34 -0700
Michael Vrhel <michael.vrhel@artifex.com>
185b6f5db3771f6501d55b7b0b6c6ca8663b24c5


Update of ICC Creator

Update to ICC creator project to enable the creation of special effect profiles.
Also addition of profiles to demonstrate object dependent color management.

gs/toolbin/color/icc_creator/ICC_Creator/ICC_Creator.rc
gs/toolbin/color/icc_creator/ICC_Creator/ICC_CreatorDlg.cpp
gs/toolbin/color/icc_creator/ICC_Creator/ICC_CreatorDlg.h
gs/toolbin/color/icc_creator/ICC_Creator/icc_create.cpp
gs/toolbin/color/icc_creator/ICC_Creator/icc_create.h
gs/toolbin/color/icc_creator/ICC_Creator/resource.h
gs/toolbin/color/icc_creator/effects/black_output.icc
gs/toolbin/color/icc_creator/effects/c_only.txt
gs/toolbin/color/icc_creator/effects/cyan_output.icc
gs/toolbin/color/icc_creator/effects/k_only..txt
gs/toolbin/color/icc_creator/effects/m_only.txt
gs/toolbin/color/icc_creator/effects/magenta_output.icc
gs/toolbin/color/icc_creator/effects/y_only.txt
gs/toolbin/color/icc_creator/effects/yellow_output.icc

2011-05-22 00:03:57 -0400
Alex Cherepanov <alex.cherepanov@artifex.com>
70912a68940b1361e8d33a239a57280eead00bfc


Fix optional inline image skipping.

Use newly created function that calculates the number of components
of a given image and fix calculation of the inline image size that
is used to skip optional inline images.

gs/Resource/Init/pdf_draw.ps

2011-05-21 01:15:49 -0400
Alex Cherepanov <alex.cherepanov@artifex.com>
3ac9479be8db8eb44f3787d54a171747b61c2b44


Bug 692213: verify /Default* colorspaces.

Check that the number of components of /DefaultGray, /DefaultRGB, and
/DefaultCMYK is correct, and reject inappropriate color spaces.

Also fix the code that forces update of the color space at the
beginning of the page when the page defines any of /Defailt* color
spaces. This hack has been written long ago but it was unreachable.

gs/Resource/Init/pdf_draw.ps
gs/Resource/Init/pdf_main.ps

2011-05-20 19:59:16 +0100
Ken Sharp <ken.sharp@artifex.com>
4c64b898e1dc2b3532e0fe6c18a292fa58843207


Merge branch 'Type3_PCL'

gs/base/gdevpdtd.c

2011-05-20 19:43:55 +0100
Ken Sharp <ken.sharp@artifex.com>
83318bd849910c6c79f0ea5cb11912557ac01307


Final type 3 font modifications for PCL

We need to probe the glyph cache in process_text_modify_width as well
process_text_return_width, this is a possible path through the code,
depending on the exact combination of text operations.

Remove debugging code

Tidy up some declarations and casting of poitners to make compilers
happy.

gs/base/gdevpdte.c
gs/base/gdevpdtt.c
gs/base/gxccache.c

2011-05-20 12:03:14 +0100
Ken Sharp <ken.sharp@artifex.com>
96b967aac2176d9cd96167cc1430bb76074d6384


Add some prints to caching

Set the FtonMatrix to the identity when making the CTM the identity, so that these don't get applied twice.

gs/base/gdevpdtt.c
gs/base/gxccache.c

2011-05-19 13:51:24 +0100
Ken Sharp <ken.sharp@artifex.com>
0b8df1bfb7f5496ba5b644b21c7586fda6dcdc46


Add some extra debugging printouts

Fix log2_scale and depth when creating and testing cache entries in order
to make sure they are coherent (we don't actually use the entries so the
values aren't important, as long as they are the same)

When using PCL bitmap fonts we do want to note glyphs set with setcharwidth
as cached, as well as those with setcachedevice. (the same is not true
for PostScript)

gs/base/gdevpdte.c
gs/base/gdevpdti.c
gs/base/gdevpdtt.c

2011-05-17 15:53:56 +0100
Ken Sharp <ken.sharp@artifex.com>
49921ad78b31af5ab8803d6de886d93106c0db0c


Add another new font type 'ft_PCL_user_defined' for the PCL bitmap
font.

Update various parts of the code to treat the new font the same as a
PostScript type 3 font.

In pdfwrite, if we capture a CharpProcs, and its for a PCL bitmap font
then add a cache entry. We do NOT do this for most other fonts, only
when rendering a glyph. When assembling text, if the font is a PCL
bitmap font, tehn after checking to see if we've already used it, check
to see if there is a cache entry. If the PCL job has reused this character
code with a different bitmap it will haev flushed the cache entry. If we
font this has happened then capture the new glyph. NB if we are capturing
a new definition (font->used[[] is valid) then we know this is a redefinition
so capture into a different font using the old style 'default' implementation.

gs/base/gdevpdtd.c
gs/base/gdevpdte.c
gs/base/gdevpdtf.c
gs/base/gdevpdti.c
gs/base/gdevpdts.c
gs/base/gdevpdtt.c
gs/base/gdevpdtw.c
gs/base/gstext.c
gs/base/gxchar.c
gs/base/gxftype.h
gs/base/gxpaint.c
pcl/pgfont.c
pl/plfont.c

2011-05-13 19:57:44 +0100
Ken Sharp <ken.sharp@artifex.com>
97fbf9fd981cdda1d6db80c2a808e3935b1809f3


Apparently missed in previous commit. Update so that stick fonts are
identified as such to pdfwrite.

gs/base/gdevpdtd.c

2011-05-13 19:53:56 +0100
Ken Sharp <ken.sharp@artifex.com>
fa801aa476fc200d397f0c72c383462eaad88267


Add a new font type 'ft_GL2_stick_user_defined' and use it as the FontType
of the HP/GL2 stick font. Modify code throughout to treat it the same as
'ft_user_defined', ie a type 3 font.

Allow pdfwrite to attach a type 3 'PDF font' to a stick font (normally the
types are required to be the same).

Alter the way we calculate the 'default' device matrix during stick font
accumulation so that we get better stroke widhts.

Now that we cna identify a stick font, check for anamorphic scaling before
accumulating the glyphs. If anamorphic scaling, then *don't* treat this as
a font. THis is because the stroke width will be inconsistent.

gs/base/gdevpdte.c
gs/base/gdevpdtf.c
gs/base/gdevpdti.c
gs/base/gdevpdts.c
gs/base/gdevpdtt.c
gs/base/gdevpdtw.c
gs/base/gstext.c
gs/base/gxchar.c
gs/base/gxftype.h
gs/base/gxpaint.c

2011-05-12 16:04:17 +0100
Ken Sharp <ken.sharp@artifex.com>
6a1c8f107029e92509dfbcaf4aaf1d691d27abe5


Alter the way we handle missing glyph names, use the saem code as for
composite fonts.

Don't assume the CharProc matrix will be upright when creating the dummy
'initial' matrix, copy and scale all the values.

gs/base/gdevpdtt.c

2011-05-11 15:46:23 +0100
Ken Sharp <ken.sharp@artifex.com>
d2ce995693b6c279ea207081728f6906a02e718a


More type 3 font madness

Use the device level 'PS_accumulator' flag in various places instead of
the more kludgy test against penuym->pte_default being NULL.

If we don't get a glyph name back from the interpreter (PCL) then invent
one instead of giving up with an error.

If we are not a type 3 accumulator, then don't undo the factor of 100
scaling applied to the device width and height, we only do that for PS.

Add a routine to return a special 'initial' matrix during the course of
type 3 accumulation. The PCL stick font uses this to set the line width
and we need to account for various PS/PDF scaling which will otherwise
be ignored.

Make sure we don't try and accumulate a charproc when its being run for a
charpath operation.

gs/base/gdevpdfb.h
gs/base/gdevpdfx.h
gs/base/gdevpdtt.c

2011-05-06 15:35:13 +0100
Ken Sharp <ken.sharp@artifex.com>
bc6a5bdd6329a0027d0c162e29eda277f85c2a8a


Type PCL fonts again.

Put back the matrix scaling in pdf_text_set_cache, even though the matrix
shoudl always be the identity here when running PCL. Best to be safe.

set_charproc_attrs emitted a 'd1' setcachedevice, but didn't check if
the glyph was flipped. For PCL this led to ury being less than lly, and
so the glyph was elided. Added check to make sure these are correct. This
required removal of 'const' from an arry as well.

gs/base/gdevpdfx.h
gs/base/gdevpdti.c
gs/base/gdevpdtt.c

2011-05-06 15:06:22 +0100
Ken Sharp <ken.sharp@artifex.com>
8730b9f1c3c1977805a9f0ad830b0268170343c4


More type 3 changes

Don't scale the CTM by 100 (done for FreeType) when handling PCL fonts
in install_charproc_accum, set the boolean to complete_charproc_accum so
that we don't 'undo' the factor of 100 scaling when the font is PCL.

Add code to set_charproc_attrs to determine whether this is a 'scale 100'
(ie PostScript) type 3 font or not, if its not then don't undo the scaling
by 100 of the CTM.

When accumulating a chraproc, before setting the CTM to identity matrix
also set the current point to 0,0, which ensures that that the current point
doesn't get baked into the character description. Also invalidate the
'char_tm' txy_fixed_valid member of the graphics state, this will force
a recalculation of char_tm using the new identity matrix.

gs/base/gdevpdfx.h
gs/base/gdevpdti.c
gs/base/gdevpdtt.c

2011-05-06 12:29:38 +0100
Ken Sharp <ken.sharp@artifex.com>
1b7695b7f2fe4dac0e228294b944b667e617e822


More PCL type 3 improvements

Add code to initialise the returned character code, so that the charproc
is assigned the correct character code. Further test for PCL fonts in
pdf_text_set_cache and don't try to use a show enumerator to get the
'output_char_code' when we are doing PCL, instead use the one from the
text enumerator 'returned' structure. Normally this would not be valid
yet as this is filled in after we've completed the 'show', but we
set this before startig the show, from the text string, so that it will be
valid.

gs/base/gdevpdtt.c

2011-05-06 11:49:19 +0100
Ken Sharp <ken.sharp@artifex.com>
3791899545ad61db983158e468d29de85153f94a


More type 3 PCL fonts

Attempt to get gsave/grestore counting correct by addig requied gs_gsave.
Add code to invalidate the char_ctm as we have altered the CTM to identity
for capture, and don't want to use the char_ctm (values are restored later).

gs/base/gdevpdtt.c

2011-05-05 15:26:17 +0100
Ken Sharp <ken.sharp@artifex.com>
1ccea133c3b21570c6400337dbe260791da8807d


Add in basic handling for PCL type 3 fonts. Now setss up the accumulator
patches the enumerator procs so that the pdfwrite set_cache is used when
setcachedevice is issued.

Text matrices are wrong in many places leading to empty output.

gs/base/gdevpdtt.c

2011-05-05 14:50:33 +0100
Ken Sharp <ken.sharp@artifex.com>
fa5cce2824ade8c280adf370686e20e661d0c3e3


Add handler for PCL type 3 fonts. For now this throws an error, just while
I make sure it doesn't break any PS/PDF files.

gs/base/gdevpdtt.c

2011-05-05 13:15:19 +0100
Ken Sharp <ken.sharp@artifex.com>
f5cc30c83a05acacfd9c2e18b72e7e716c38d024


File missed in previous commit

gs/base/gdevpdtt.c

2011-05-05 13:13:27 +0100
Ken Sharp <ken.sharp@artifex.com>
7838510e494245cc5e5349f2ea0d5ff9028c96d0


Add better PCL type 3 font handling, step 1

First, break all the code for starting and stopping accumulators
into procedures, because the existing code is too hard to read.

gs/base/gdevpdfb.c
gs/base/gdevpdfb.h
gs/base/gdevpdfx.h
gs/base/gdevpdti.c
gs/base/gdevpdtt.h

2011-04-29 16:42:30 +0100
Ken Sharp <ken.sharp@artifex.com>
947e90ad0229b6333d6eb61e7f54ac33b200ab28


initial changes for capturing PCL type 3 fonts in pdfwrite

Seems to be OK now with PS/PCL, does not crash any longer with PCL, but capture is incorrect.

gs/base/gdevpdfb.c
gs/base/gdevpdfb.h
gs/base/gdevpdfx.h
gs/base/gdevpdti.c
gs/base/gdevpdtt.c
gs/base/gdevpdtt.h

2011-05-20 18:22:37 +0100
Chris Liddell <chris.liddell@artifex.com>
1ab5da13a846b9fde15c2863b6b75ae5b28d22d8


Bug 692218: Incorrect CIDtoGIDMap length causing crash.

In pdfwrite's pdf_convert_truetype_font_descriptor() function,
the lengths of both the CIDtoGIDMap and the CIDSet were being set
to the number of in use CID's in the font, whereas they need to
be, and were being filled, as being LastChar + 1 entries long.

As well as memory corruption, the contents would have been wrong,
too.

No cluster differences expected.

gs/base/gdevpdtd.c

2011-05-20 12:46:09 +0000
Robin Watts <robin@ghostscript.com>
0805588e9bcaec02b4eef4582db6ab23ae8ea1b1


Fix Bug 692216. Remove zero height traps from shadings.

The simplified file in Bug 692216 shows a division by zero error when
filling a trapezoid with zero height. The fix is simply to update
the code not to draw zero height traps.

This should be safe as any fill adjustment is done well before this point.

The cluster shows just one difference. Looking at it in a bmpcmp it does
look suspicious, but it's not clear whether it's a progression or a
regression. Ken informs me he's seen the same differences before with
unrelated changes, so perhaps it's an indeterminism.

The code seems more sensible this way round anyway.

gs/base/gxshade6.c

2011-05-20 07:58:28 +0100
Chris Liddell <chris.liddell@artifex.com>
c6341648ed83b1a3dde948bdf8bcf54a2f275fe5


Reinstate x11alpha as the default device on Unix.

With the recent revisions to make transparency play nicely
with anti-aliased output, should now be safe to use as the
default device.

CLUSTER_UNTESTED

gs/base/Makefile.in

2011-05-19 14:55:52 -0600
Henry Stiles <henry.stiles@artifex.com>
9de72911de76b582f028c70564b1539f913b517c


Make directories silently.

The previous mkdir incantantation had unwanted warning messages if the
directory already existed. Thanks to Norbert Janssen for the patch.

CLUSTER_UNTESTED

common/msvc_top.mak

2011-05-18 19:04:26 -0600
Henry Stiles <henry.stiles@artifex.com>
413e6e5a1c7ccc3d86678a54e93130ca182f9e98


Simplify the svg device state.

Represent colors directly with color indices not strings.
This will address bug 691886 indirectly but wasn't the motivation
for changing the state value types.

gs/base/gdevsvg.c

2011-05-16 13:28:46 -0600
Henry Stiles <henry.stiles@artifex.com>
86da13321eaa87a01b804af3619d30f8a7263f5e


Decrease debugging verbosity.

Change default printing to be conditonal on high level device
debug flag '_'.

gs/base/gdevsvg.c

2011-05-19 18:32:07 +0100
Chris Liddell <chris.liddell@artifex.com>
4812b7189345fa94075445d8e8d5eef7eb04cdab


Explicitly disable libtiff's jbig code.

Add the --disable-jbig option to both Ghostscript and GhostPDL's
calls to the libtiff configure script, otherwise, if the build
system has libjbig installed, libtiff's jbig code is enabled,
and we don't want/need it.

Bug 692214.

Makefile
gs/base/configure.ac

2011-05-19 16:58:33 +0000
Robin Watts <robin@ghostscript.com>
8f4b7b96b14df2bef1564e00c72f087f72bb8f56


More Memento tweaks. Thanks to Dave Thomas.

Remove unused variables/unneeded inits.

CLUSTER_UNTESTED.

gs/base/memento.c

2011-05-19 15:26:05 +0000
Robin Watts <robin@ghostscript.com>
b35b5d610738a521cfe6374965a8f6c4d6b5d477


Correct memset prototype in memento.c. D'Oh.

CLUSTER_UNTESTED.

gs/base/memento.c

2011-05-19 15:34:31 +0100
Robin Watts <Robin.Watts@artifex.com>
44e59fd123729ba05f8728f01d13406d3e283855


Merge branch 'patt_trans_clist'

2011-05-19 15:01:14 +0100
Robin Watts <Robin.Watts@artifex.com>
3bf453e7987830459ca677c8fa1b93fbd6c4a7e3


Fix for icc profile refcounting.

Take new reference before discarding old one, lest we throw away the
last reference and then can't pick it up again.

This solves the SEGV with:

gs\debugbin\gswin32c.exe -sDEVICE=ppmraw -o out.ppm
-r300 ..\ghostpcl\tests_private\comparefiles\Bug689690.pdf

No cluster differences expected.

gs/base/gdevp14.c

2011-05-19 13:35:37 +0100
Robin Watts <Robin.Watts@artifex.com>
bc9e69257a1605d67aca0cd121e167d7e0ae22be


Merge branch 'master' into patt_trans_clist

I expect this to leave me with all files working except for Bug689690.pdf
which has profile reference counting problems introduced from the trunk.

For example:
gs\debugbin\gswin32c.exe -sDEVICE=ppmraw -o out.ppm
-r300 ..\ghostpcl\tests_private\comparefiles\Bug689690.pdf

gs/base/gdevp14.c
gs/base/gsicc_manage.c
gs/base/gxclrast.c

2011-05-18 15:57:45 +0000
Robin Watts <robin@ghostscript.com>
5cff633dff1b8b91afb97925f8a4f7781db5a9b2


Fix SEGV in tile_rect_trans_simple.

If the left hand copy region started to the right of the subtile that was
actually populated, we would attempt a copy with a negative length. Simple
fix is to check for this case.

This should resolve the 5 xps SEGVs.

gs/base/gxp1fill.c

2011-05-17 23:37:56 +0000
Robin Watts <robin@ghostscript.com>
128650aac51fcf723428b8a902c4e3af7d1d058f


Fix SEGV in Bug691538.pdf.

Local testing with:
gs -dNOGC -Z@? -r300 -sDEVICE=pbmraw -dMaxBitmap=30000000 -o nul: ..\ghostpcl\tests_private\comparefiles\Bug691538.pdf

shows a SEGV on windows with a debug build. Removing the reference
decrement solves it and doesn't show any leaks.

Oddly the cluster doesn't show the SEGV any more, but it did previously.

gs/base/gxpcmap.c

2011-05-17 18:13:17 +0100
Robin Watts <Robin.Watts@artifex.com>
6780bf7996f1d5a0be5b0dc55e89ea48bf89980e


Memento realloc fix.

Memento was filling the 'new' section of realloced blocks incorrectly,
resulting in memory overwrites.

gs/base/memento.c

2011-05-17 15:53:01 +0100
Robin Watts <Robin.Watts@artifex.com>
ce8bddd7cef1f9e0d2c2ae28b82d513a6cfa9dce


Merge branch 'master' into patt_trans_clist

gs/base/gdevnfwd.c
gs/base/gdevp14.c
gs/base/gsicc.c
gs/base/gsicc_manage.c
gs/base/gstrans.c
gs/base/gxclrast.c
gs/base/gxdevice.h
gs/ghostscript.vcproj

2011-05-17 15:42:11 +0100
Robin Watts <Robin.Watts@artifex.com>
1b7bf4222988019f17a454ce7a6b841d586c3d4d


Comment and error code handling tweaks to gdevp14.c

Correct a typo, update a comment, and avoid a SEGV in the case where
an allocation of an iccsmask fails.

No cluster differences expected.

gs/base/gdevp14.c

2011-05-17 15:38:38 +0100
Robin Watts <Robin.Watts@artifex.com>
6283d613595f2c42a461d2cb8cfddb2e0a6fc168


Tiny tweak to leaks.tcl

Tweak leaks.tcl so it doesn't think the file is empty if 'memory allocated'
is on the first line of the log.

CLUSTER_UNTESTED.

gs/toolbin/leaks.tcl

2011-05-17 15:23:24 +0100
Robin Watts <Robin.Watts@artifex.com>
4ec504eeddfd5e17ca5f1b4e58090fb0c1b15201


Rework colorspace ref counting of cmm_icc_profile_data.

Previously the code seemed to be trying to take one reference to
cmm_icc_profile_data for every reference taken to the colorspace. We rework
this here to only take a single reference to cmm_icc_profile_data for each
colorspace. This solves at least one SEGV.

gs/base/gscdevn.c
gs/base/gscscie.c
gs/base/gscspace.c
gs/base/gsicc.c
gs/base/gsicc_manage.c
gs/base/gxipixel.c
gs/base/gxshade.c
gs/psi/zicc.c

2011-05-12 17:49:46 +0100
Robin Watts <Robin.Watts@artifex.com>
a0ac4ac2082132905463703ddd8b6db6fd95e4fb


Squash another warning; gdevp14.c.

Remove an unused variable definition (that is shadowed later on).

CLUSTER_UNTESTED.

gs/base/gdevp14.c

2011-05-12 17:41:17 +0100
Robin Watts <Robin.Watts@artifex.com>
d40646d2f1c48c174fad480c03309707b16659c7


Squash warning.

Remove unused variable, left over from merge.

CLUSTER_UNTESTED

gs/base/gdevnfwd.c

2011-05-12 17:01:59 +0100
Robin Watts <Robin.Watts@artifex.com>
6d910ef6207e3704f1050cd46c481ac81b681261


Fix SEGVs seen due to icc profile data being freed.

If we swap the ICC profile data for a colorspace due to starting/stopping
use of an smask, we must also adjust the reference counts. Hopefully this
will solve all the SEGVs we see. It does solve at least one.

gs/base/gdevp14.c

2011-05-12 15:26:56 +0100
Robin Watts <Robin.Watts@artifex.com>
4d9eb7298700e0b4c484f164805d556c03c22b24


Merge branch 'master' into patt_trans_clist

Conflicts:
gs/base/gdevnfwd.c
gs/base/gxdevice.h
gs/toolbin/bmpcmp.c

All trivially resolved except for gdevnfwd.c where I backed out one of the
fixes from 8ae4342 on instruction from Michael.

gs/base/gdevnfwd.c
gs/base/gdevp14.c
gs/base/gsicc.c
gs/base/gstrans.c
gs/base/gxclip.c
gs/base/gxdevice.h
gs/base/gxpcmap.c

2011-05-04 20:00:50 +0100
Robin Watts <Robin.Watts@artifex.com>
9d8dc0278374c7c5bb4868a1ed356b8b5f8ece8a


Whitespace fixes + Return from gx_forward_create_compositor.

Fix up some stray trailing whitespace.

Also, gx_forward_create_compositor was neglecting to return a value.

gs/base/gdevnfwd.c
gs/base/gdevp14.c

2011-05-03 20:36:49 -0700
Michael Vrhel <michael.vrhel@artifex.com>
8ae4342084cbfc46782ca3fc23b4965f910f3c51


Fixes for 2 issues. If a clip device is inserted in front of a pdf14 compositor, the ICC profile of the clip device needs to be updated if the compositor action results in a device profile change. Also fix so that when the soft mask ICC profiles are swapped in or out the graphic state ICC profiles are also updated.

gs/base/gdevnfwd.c
gs/base/gdevp14.c

2011-05-03 17:30:58 +0100
Robin Watts <Robin.Watts@artifex.com>
e0e5e5c874d7546805558a00bec9c54ebd0770e5


Backout strokeafterfill stuff, as it proved unnecessary.

Remove commit eaae298 as it turns out not to be required.

gs/base/gspaint.c
gs/base/gspath.h
gs/base/gxistate.h
gs/psi/zpaint.c

2011-05-02 19:39:22 +0000
Robin Watts <robin@ghostscript.com>
04eef3817a5a6d3fee054338629b1e50eaa4ee0f


Merge branch 'master' into patt_trans_clist

2011-05-02 19:28:39 +0000
Robin Watts <robin@ghostscript.com>
df2175e571369df32fc66e375357bc69976c5fed


Put back default map_rgb_color forwarding.

At some point around the creation of this branch (which corresponded to our
move from SVN to git) we lost a line in gdevnfwd.c that sets up a default
forwarding for map_rgb_color. We don't know why it went, so we're putting it
back in. This probably hasn't caused any problems as it's a deprecated
function now.

gs/base/gdevnfwd.c

2011-05-02 20:02:59 +0100
Robin Watts <Robin.Watts@artifex.com>
8eed15b976995b889a2498b064b53397a7d164a1


Add gxdevsop.h to VS solution.

Don't know why this wasn't in before...

CLUSTER_UNTESTED.

gs/ghostscr