diff -Nru ghostscript-9.05~dfsg~20120125/base/configure.ac ghostscript-9.05~dfsg~20120202/base/configure.ac --- ghostscript-9.05~dfsg~20120125/base/configure.ac 2012-01-25 08:44:23.000000000 +0000 +++ ghostscript-9.05~dfsg~20120202/base/configure.ac 2012-02-02 18:32:11.000000000 +0000 @@ -100,6 +100,12 @@ [Do not include contributed drivers])) CONTRIBINCLUDE="include contrib/contrib.mak" INSTALL_CONTRIB="install-contrib-extras" + +# This is just an arbitrary file in contrib to check +if !(test -f contrib/gdevbjc_.c); then + enable_contrib=no +fi + if test x$enable_contrib = xno; then CONTRIBINCLUDE="" INSTALL_CONTRIB="" diff -Nru ghostscript-9.05~dfsg~20120125/base/gdevpdfc.c ghostscript-9.05~dfsg~20120202/base/gdevpdfc.c --- ghostscript-9.05~dfsg~20120125/base/gdevpdfc.c 2011-09-29 11:01:33.000000000 +0000 +++ ghostscript-9.05~dfsg~20120202/base/gdevpdfc.c 2012-02-02 18:32:11.000000000 +0000 @@ -36,6 +36,7 @@ #include "gxcdevn.h" #include "gscspace.h" #include "gsicc_manage.h" +#include "gsicc_cache.h" /* * PDF doesn't have general CIEBased color spaces. However, it provides @@ -741,6 +742,58 @@ return NULL; } +int pdf_convert_ICC(gx_device_pdf *pdev, + const gs_color_space *pcs, cos_value_t *pvalue, + const pdf_color_space_names_t *pcsn) +{ + gs_color_space_index csi; + int code; + + csi = gs_color_space_get_index(pcs); + if (csi == gs_color_space_index_ICC) { + csi = gsicc_get_default_type(pcs->cmm_icc_profile_data); + } + if (csi == gs_color_space_index_Indexed) { + pcs = pcs->base_space; + csi = gs_color_space_get_index(pcs); + } + if (csi == gs_color_space_index_ICC) { + if (pcs->cmm_icc_profile_data == NULL || + pdev->CompatibilityLevel < 1.3 + ) { + if (pcs->base_space != NULL) { + return 0; + } else { + int num_des_comps; + cmm_dev_profile_t *dev_profile; + + /* determine number of components in device space */ + code = dev_proc((gx_device *)pdev, get_profile)((gx_device *)pdev, &dev_profile); + if (code < 0) + return code; + + num_des_comps = gsicc_get_device_profile_comps(dev_profile); + /* Set image color space to be device space */ + switch( num_des_comps ) { + case 1: + cos_c_string_value(pvalue, pcsn->DeviceGray); + /* negative return means we do conversion */ + return -1; + case 3: + cos_c_string_value(pvalue, pcsn->DeviceRGB); + return -1; + case 4: + cos_c_string_value(pvalue, pcsn->DeviceCMYK); + return -1; + default: + break; + } + } + } + } + return 0; +} + /* * Create a PDF color space corresponding to a PostScript color space. * For parameterless color spaces, set *pvalue to a (literal) string with @@ -840,7 +893,6 @@ pcs->base_space, pcsn, by_name, NULL, 0); } else { - /* Base space is NULL, use appropriate device space */ switch( cs_num_components(pcs) ) { case 1: cos_c_string_value(pvalue, pcsn->DeviceGray); @@ -853,7 +905,7 @@ return 0; default: break; - } + } } } diff -Nru ghostscript-9.05~dfsg~20120125/base/gdevpdfg.h ghostscript-9.05~dfsg~20120202/base/gdevpdfg.h --- ghostscript-9.05~dfsg~20120125/base/gdevpdfg.h 2011-09-29 11:01:33.000000000 +0000 +++ ghostscript-9.05~dfsg~20120202/base/gdevpdfg.h 2012-02-02 18:32:11.000000000 +0000 @@ -75,6 +75,12 @@ */ int pdf_cspace_init_Device(gs_memory_t *mem, gs_color_space **ppcs, int num_components); +/* test an (image) colour space to see if its ICCBased. If so we will + * convert to current device space + */ +int pdf_convert_ICC(gx_device_pdf *pdev, + const gs_color_space *pcs, cos_value_t *pvalue, + const pdf_color_space_names_t *pcsn); /* * Create a PDF color space corresponding to a PostScript color space. * For parameterless color spaces, set *pvalue to a (literal) string with diff -Nru ghostscript-9.05~dfsg~20120125/base/gdevpdfi.c ghostscript-9.05~dfsg~20120202/base/gdevpdfi.c --- ghostscript-9.05~dfsg~20120125/base/gdevpdfi.c 2012-01-25 08:44:24.000000000 +0000 +++ ghostscript-9.05~dfsg~20120202/base/gdevpdfi.c 2012-02-02 18:32:11.000000000 +0000 @@ -671,10 +671,13 @@ /* A minor hack to deal with CIELAB images. */ if (pcs->cmm_icc_profile_data != NULL && pcs->cmm_icc_profile_data->islab) { - gscms_set_icc_range(&(pcs->cmm_icc_profile_data)); + gscms_set_icc_range((cmm_profile_t **)&(pcs->cmm_icc_profile_data)); } - code = pdf_color_space_named(pdev, &cs_value, &pranges, pcs, names, + code = pdf_convert_ICC(pdev, pcs, &cs_value, names); + if (code == 0) { + code = pdf_color_space_named(pdev, &cs_value, &pranges, pcs, names, in_line, NULL, 0); + } if (pcs->cmm_icc_profile_data != NULL && pcs->cmm_icc_profile_data->islab) { gsicc_setrange_lab(pcs->cmm_icc_profile_data); diff -Nru ghostscript-9.05~dfsg~20120125/base/gscdef.c ghostscript-9.05~dfsg~20120202/base/gscdef.c --- ghostscript-9.05~dfsg~20120125/base/gscdef.c 2011-09-29 11:01:33.000000000 +0000 +++ ghostscript-9.05~dfsg~20120202/base/gscdef.c 2012-02-02 20:29:39.000000000 +0000 @@ -43,7 +43,7 @@ #ifndef GS_PRODUCT # define GS_PRODUCT\ - GS_PRODUCTFAMILY " GIT PRERELEASE" + GS_PRODUCTFAMILY " RELEASE CANDIDATE 1" #endif const char *const gs_product = GS_PRODUCT; diff -Nru ghostscript-9.05~dfsg~20120125/base/gsicc.c ghostscript-9.05~dfsg~20120202/base/gsicc.c --- ghostscript-9.05~dfsg~20120125/base/gsicc.c 2012-01-25 08:44:24.000000000 +0000 +++ ghostscript-9.05~dfsg~20120202/base/gsicc.c 2012-02-02 18:32:11.000000000 +0000 @@ -338,6 +338,9 @@ } /* Get a link from the cache, or create if it is not there. Need to get 16 bit profile */ icc_link = gsicc_get_link(pis, dev, pcs, NULL, &rendering_params, pis->memory); + if (icc_link == NULL) { + return gs_rethrow(-1, "Could not create ICC link: Check profiles"); + } if (icc_link->is_identity) { psrc_temp = &(psrc[0]); } else { @@ -410,6 +413,9 @@ } /* Get a link from the cache, or create if it is not there. Get 16 bit profile */ icc_link = gsicc_get_link(pis, dev, pcs, NULL, &rendering_params, pis->memory); + if (icc_link == NULL) { + return gs_rethrow(-1, "Could not create ICC link: Check profiles"); + } /* Transform the color */ if (icc_link->is_identity) { psrc_temp = &(psrc[0]); diff -Nru ghostscript-9.05~dfsg~20120125/base/gsicc_cache.c ghostscript-9.05~dfsg~20120202/base/gsicc_cache.c --- ghostscript-9.05~dfsg~20120125/base/gsicc_cache.c 2012-01-25 08:44:24.000000000 +0000 +++ ghostscript-9.05~dfsg~20120202/base/gsicc_cache.c 2012-02-02 18:32:11.000000000 +0000 @@ -187,7 +187,8 @@ icc_link->hashcode.rend_hash = hashcode.rend_hash; icc_link->includes_softproof = includes_softproof; icc_link->includes_devlink = includes_devlink; - if ( hashcode.src_hash == hashcode.des_hash ) { + if ( (hashcode.src_hash == hashcode.des_hash) && + !includes_softproof && !includes_devlink) { icc_link->is_identity = true; } else { icc_link->is_identity = false; diff -Nru ghostscript-9.05~dfsg~20120125/base/gsicc_lcms2.c ghostscript-9.05~dfsg~20120202/base/gsicc_lcms2.c --- ghostscript-9.05~dfsg~20120125/base/gsicc_lcms2.c 2012-01-25 08:44:24.000000000 +0000 +++ ghostscript-9.05~dfsg~20120202/base/gsicc_lcms2.c 2012-02-02 18:32:11.000000000 +0000 @@ -354,10 +354,8 @@ /* cmsFLAGS_HIGHRESPRECALC) cmsFLAGS_NOTPRECALC cmsFLAGS_LOWRESPRECALC*/ } -/* Get the link from the CMS, but include proofing. - We need to note that as an option in the rendering params. If we are doing - transparency, that would only occur at the top of the stack -TODO: Add error checking */ +/* Get the link from the CMS, but include proofing and/or a device link + profile. */ gcmmhlink_t gscms_get_link_proof_devlink(gcmmhprofile_t lcms_srchandle, gcmmhprofile_t lcms_proofhandle, @@ -368,23 +366,46 @@ cmsUInt32Number src_data_type,des_data_type; cmsColorSpaceSignature src_color_space,des_color_space; int src_nChannels,des_nChannels; + int lcms_src_color_space, lcms_des_color_space; + cmsHPROFILE hProfiles[5]; + int nProfiles = 0; - /* Get the data types */ + /* First handle all the source stuff */ src_color_space = cmsGetColorSpace(lcms_srchandle); - des_color_space = cmsGetColorSpace(lcms_deshandle); + lcms_src_color_space = _cmsLCMScolorSpace(src_color_space); + /* littlecms returns -1 for types it does not (but should) understand */ + if (lcms_src_color_space < 0) lcms_src_color_space = 0; src_nChannels = cmsChannelsOf(src_color_space); + /* For now, just do single byte data, interleaved. We can change this + when we use the transformation. */ + src_data_type = (COLORSPACE_SH(lcms_src_color_space)| + CHANNELS_SH(src_nChannels)|BYTES_SH(2)); + if (lcms_devlinkhandle == NULL) { + des_color_space = cmsGetColorSpace(lcms_deshandle); + } else { + des_color_space = cmsGetPCS(lcms_devlinkhandle); + } + lcms_des_color_space = _cmsLCMScolorSpace(des_color_space); + if (lcms_des_color_space < 0) lcms_des_color_space = 0; des_nChannels = cmsChannelsOf(des_color_space); - /* For now, just do single byte data, interleaved. We can change this when we - use the transformation. */ - src_data_type= (CHANNELS_SH(src_nChannels)|BYTES_SH(1)); - des_data_type= (CHANNELS_SH(des_nChannels)|BYTES_SH(1)); - /* Create the link. Note the gamut check alarm */ - return(cmsCreateProofingTransform(lcms_srchandle, src_data_type, - lcms_deshandle, des_data_type, - lcms_proofhandle, - rendering_params->rendering_intent, - INTENT_ABSOLUTE_COLORIMETRIC, - cmsFLAGS_GAMUTCHECK | cmsFLAGS_SOFTPROOFING )); + des_data_type = (COLORSPACE_SH(lcms_des_color_space)| + CHANNELS_SH(des_nChannels)|BYTES_SH(2)); + /* lcms proofing transform has a clunky API and can't include the device + link profile if we have both. So use cmsCreateMultiprofileTransform + instead and round trip the proofing profile. */ + hProfiles[nProfiles++] = lcms_srchandle; + if (lcms_proofhandle != NULL) { + hProfiles[nProfiles++] = lcms_proofhandle; + hProfiles[nProfiles++] = lcms_proofhandle; + } + hProfiles[nProfiles++] = lcms_deshandle; + if (lcms_devlinkhandle != NULL) { + hProfiles[nProfiles++] = lcms_devlinkhandle; + } + return(cmsCreateMultiprofileTransform(hProfiles, nProfiles, src_data_type, + des_data_type, rendering_params->rendering_intent, + (cmsFLAGS_BLACKPOINTCOMPENSATION | + cmsFLAGS_HIGHRESPRECALC))); } /* Do any initialization if needed to the CMS */ diff -Nru ghostscript-9.05~dfsg~20120125/base/opdfread.h ghostscript-9.05~dfsg~20120202/base/opdfread.h --- ghostscript-9.05~dfsg~20120125/base/opdfread.h 2012-01-07 20:18:22.000000000 +0000 +++ ghostscript-9.05~dfsg~20120202/base/opdfread.h 2012-02-02 18:32:11.000000000 +0000 @@ -1525,7 +1525,7 @@ "2 copy get\n", "exch 3 index add\n", "7 index exch get\n", -"dup null ne{\n", +"dup dup null ne exch/.notdef ne and{\n", "6 index 3 1 roll exch\n", "6 index div\n", "3 copy pop//knownget exec{\n", diff -Nru ghostscript-9.05~dfsg~20120125/base/saes.c ghostscript-9.05~dfsg~20120202/base/saes.c --- ghostscript-9.05~dfsg~20120125/base/saes.c 2011-09-29 11:01:34.000000000 +0000 +++ ghostscript-9.05~dfsg~20120202/base/saes.c 2012-01-26 07:44:25.000000000 +0000 @@ -147,9 +147,12 @@ plaintext gives the number of bytes to discard */ pad = temp[15]; if (pad < 1 || pad > 16) { - gs_throw1(gs_error_rangecheck, "invalid aes padding byte (0x%02x)", - (unsigned char)pad); - return ERRC; + /* Bug 692343 - don't error here, just warn. Take padding to be + * zero. This may give us a stream that's too long - preferable + * to the alternatives. */ + gs_warn1("invalid aes padding byte (0x%02x)", + (unsigned char)pad); + pad = 0; } } else { /* not using padding */ diff -Nru ghostscript-9.05~dfsg~20120125/base/version.mak ghostscript-9.05~dfsg~20120202/base/version.mak --- ghostscript-9.05~dfsg~20120125/base/version.mak 2011-09-29 11:01:34.000000000 +0000 +++ ghostscript-9.05~dfsg~20120202/base/version.mak 2012-02-02 20:29:39.000000000 +0000 @@ -19,7 +19,7 @@ GS_VERSION_MINOR=05 GS_VERSION_MINOR0=05 # Revision date: year x 10000 + month x 100 + day. -GS_REVISIONDATE=20110330 +GS_REVISIONDATE=20120130 # Derived values GS_VERSION=$(GS_VERSION_MAJOR)$(GS_VERSION_MINOR0) GS_DOT_VERSION=$(GS_VERSION_MAJOR).$(GS_VERSION_MINOR0) diff -Nru ghostscript-9.05~dfsg~20120125/cups/gdevcups.c ghostscript-9.05~dfsg~20120202/cups/gdevcups.c --- ghostscript-9.05~dfsg~20120125/cups/gdevcups.c 2011-10-06 06:43:10.000000000 +0000 +++ ghostscript-9.05~dfsg~20120202/cups/gdevcups.c 2012-02-02 20:27:50.000000000 +0000 @@ -3329,8 +3329,12 @@ for (i = cups->PPD->num_sizes, size = cups->PPD->sizes; i > 0; i --, size ++) - if (fabs(cups->MediaSize[1] - size->length) < 5.0 && - fabs(cups->MediaSize[0] - size->width) < 5.0 && + { + if (size->length == 0 || size->width == 0) continue; + if (fabs(cups->MediaSize[1] - size->length)/size->length < + (size->length > size->width ? 0.05 : 0.02) && + fabs(cups->MediaSize[0] - size->width)/size->width < + (size->width > size->length ? 0.05 : 0.02) && #ifdef CUPS_RASTER_SYNCv1 ((strlen(cups->header.cupsPageSizeName) == 0) || (strcasecmp(cups->header.cupsPageSizeName, size->name) == 0)) && @@ -3350,6 +3354,7 @@ (fabs(cups->HWMargins[1] - size->length + size->top) < 1.0 && fabs(cups->HWMargins[3] - size->bottom) < 1.0))))) break; + } if (i > 0) { @@ -3388,8 +3393,12 @@ for (i = cups->PPD->num_sizes, size = cups->PPD->sizes; i > 0; i --, size ++) - if (fabs(cups->MediaSize[0] - size->length) < 5.0 && - fabs(cups->MediaSize[1] - size->width) < 5.0 && + { + if (size->length == 0 || size->width == 0) continue; + if (fabs(cups->MediaSize[0] - size->length)/size->length < + (size->length > size->width ? 0.05 : 0.01) && + fabs(cups->MediaSize[1] - size->width)/size->width < + (size->width > size->length ? 0.05 : 0.01) && #ifdef CUPS_RASTER_SYNCv1 ((strlen(cups->header.cupsPageSizeName) == 0) || (strcasecmp(cups->header.cupsPageSizeName, size->name) == 0)) && @@ -3409,6 +3418,7 @@ (fabs(cups->HWMargins[0] - size->length + size->top) < 1.0 && fabs(cups->HWMargins[2] - size->bottom) < 1.0))))) break; + } if (i > 0) { @@ -3447,17 +3457,44 @@ dprintf("DEBUG: size = Custom\n"); #endif /* CUPS_DEBUG */ - cups->landscape = 0; - - for (i = 0; i < 4; i ++) - margins[i] = cups->PPD->custom_margins[i] / 72.0; - if (xflip == 1) - { - swap = margins[0]; margins[0] = margins[2]; margins[2] = swap; - } - if (yflip == 1) - { - swap = margins[1]; margins[1] = margins[3]; margins[3] = swap; + /* Rotate page if it only fits into the printer's dimensions + when rotated */ + if (((cups->MediaSize[0] > cups->PPD->custom_max[0]) || + (cups->MediaSize[1] > cups->PPD->custom_max[1])) && + ((cups->MediaSize[0] <= cups->PPD->custom_max[1]) && + (cups->MediaSize[1] <= cups->PPD->custom_max[0]))) { + /* Do not rotate */ + cups->landscape = 0; + + for (i = 0; i < 4; i ++) + margins[i] = cups->PPD->custom_margins[i] / 72.0; + if (xflip == 1) + { + swap = margins[0]; margins[0] = margins[2]; margins[2] = swap; + } + if (yflip == 1) + { + swap = margins[1]; margins[1] = margins[3]; margins[3] = swap; + } + } else { + /* Rotate */ + gx_device_set_media_size(pdev, cups->MediaSize[1], + cups->MediaSize[0]); + + cups->landscape = 1; + + margins[0] = cups->PPD->custom_margins[3] / 72.0; + margins[1] = cups->PPD->custom_margins[0] / 72.0; + margins[2] = cups->PPD->custom_margins[1] / 72.0; + margins[3] = cups->PPD->custom_margins[2] / 72.0; + if (xflip == 1) + { + swap = margins[1]; margins[1] = margins[3]; margins[3] = swap; + } + if (yflip == 1) + { + swap = margins[0]; margins[0] = margins[2]; margins[2] = swap; + } } } } diff -Nru ghostscript-9.05~dfsg~20120125/cups/gdevcups.c.orig ghostscript-9.05~dfsg~20120202/cups/gdevcups.c.orig --- ghostscript-9.05~dfsg~20120125/cups/gdevcups.c.orig 1970-01-01 00:00:00.000000000 +0000 +++ ghostscript-9.05~dfsg~20120202/cups/gdevcups.c.orig 2012-02-02 18:33:51.000000000 +0000 @@ -0,0 +1,5537 @@ +/* + * "$Id$" + * + * GNU Ghostscript raster output driver for the Common UNIX Printing + * System (CUPS). + * + * Copyright 1993-2006 by Easy Software Products. + * + * These coded instructions, statements, and computer programs are the + * property of Easy Software Products and are protected by Federal + * copyright law. Distribution and use rights are outlined in the file + * "LICENSE.txt" which should have been included with this file. If this + * file is missing or damaged please contact Easy Software Products + * at: + * + * Attn: CUPS Licensing Information + * Easy Software Products + * 44141 Airport View Drive, Suite 204 + * Hollywood, Maryland 20636 USA + * + * Voice: (301) 373-9600 + * EMail: cups-info@cups.org + * WWW: http://www.cups.org/ + * + * This code and any derivative of it may be used and distributed + * freely under the terms of the GNU General Public License when + * used with GNU Ghostscript or its derivatives. Use of the code + * (or any derivative of it) with software other than GNU + * GhostScript (or its derivatives) is governed by the CUPS license + * agreement. + * + * Contents: + * + * cups_close() - Close the output file. + * cups_decode_color() - Decode a color value. + * cups_encode_color() - Encode a color value. + * cups_get_color_comp_index() + * - Color component to index + * cups_get_color_mapping_procs() + * - Get the list of color mapping procedures. + * cups_get_matrix() - Generate the default page matrix. + * cups_get_params() - Get pagedevice parameters. + * cups_get_space_params() - Get space parameters from the RIP_CACHE env var. + * cups_map_cielab() - Map CIE Lab transformation... + * cups_map_cmyk() - Map a CMYK color value to device colors. + * cups_map_gray() - Map a grayscale value to device colors. + * cups_map_rgb() - Map a RGB color value to device colors. + * cups_map_cmyk_color() - Map a CMYK color to a color index. + * cups_map_color_rgb() - Map a color index to an RGB color. + * cups_map_rgb_color() - Map an RGB color to a color index. We map the + * RGB color to the output colorspace & bits (we + * figure out the format when we output a page). + * cups_open() - Open the output file and initialize things. + * cups_print_pages() - Send one or more pages to the output file. + * cups_put_params() - Set pagedevice parameters. + * cups_set_color_info() - Set the color information structure based on + * the required output. + * cups_sync_output() - Keep the user informed of our status... + * cups_print_chunked() - Print a page of chunked pixels. + * cups_print_banded() - Print a page of banded pixels. + * cups_print_planar() - Print a page of planar pixels. + */ + +/* + * Include necessary headers... + */ + +#include "std.h" /* to stop stdlib.h redefining types */ +#include "gdevprn.h" +#include "gsparam.h" +#include "arch.h" +#include "gsicc_manage.h" + +#include +#include +#include +#include +#include + +/* the extremely noisy DEBUG2 messages are now dependent on CUPS_DEBUG2 */ +/* this can be enabled during the 'make' or by uncommenting the following */ +/* #define CUPS_DEBUG2 */ + +#undef private +#define private + +#ifdef WIN32 +#define cbrt(arg) pow(arg, 1.0/3) +#define strcasecmp _stricmp +#define strncasecmp _strnicmp +#endif + +/* This should go into gdevprn.h, or, better yet, gdevprn should + acquire an API for changing resolution. */ +int gdev_prn_maybe_realloc_memory(gx_device_printer *pdev, + gdev_prn_space_params *old_space, + int old_width, int old_height, + bool old_page_uses_transparency); + +/* + * Check if we are compiling against CUPS 1.2. If so, enable + * certain extended attributes and use a different page header + * structure and write function... + */ + +#ifdef CUPS_RASTER_SYNCv1 +# define cups_page_header_t cups_page_header2_t +# define cupsRasterWriteHeader cupsRasterWriteHeader2 +#else +/* The RGBW colorspace is not defined until CUPS 1.2... */ +# define CUPS_CSPACE_RGBW 17 +#endif /* CUPS_RASTER_SYNCv1 */ + + +/* + * CIE XYZ color constants... + */ + +#define D65_X (0.412453 + 0.357580 + 0.180423) +#define D65_Y (0.212671 + 0.715160 + 0.072169) +#define D65_Z (0.019334 + 0.119193 + 0.950227) + + +/* + * Size of a tile in pixels... + */ + +#define CUPS_TILE_SIZE 256 + + +/* + * Size of profile LUTs... + */ + +#ifdef dev_t_proc_encode_color +# define CUPS_MAX_VALUE frac_1 +#else +# define CUPS_MAX_VALUE gx_max_color_value +#endif /* dev_t_proc_encode_color */ + + +/* + * Macros... + */ + +#define x_dpi (pdev->HWResolution[0]) +#define y_dpi (pdev->HWResolution[1]) +#define cups ((gx_device_cups *)pdev) + +/* + * Macros from ; we can't include because it also + * defines DEBUG, one of our flags to insert various debugging code. + */ + +#ifndef max +# define max(a,b) ((a)<(b) ? (b) : (a)) +#endif /* !max */ + +#ifndef min +# define min(a,b) ((a)>(b) ? (b) : (a)) +#endif /* !min */ + +#ifndef abs +# define abs(x) ((x)>=0 ? (x) : -(x)) +#endif /* !abs */ + + +/* + * Procedures + */ + +private dev_proc_close_device(cups_close); +private dev_proc_get_initial_matrix(cups_get_matrix); +private int cups_get_params(gx_device *, gs_param_list *); +private dev_proc_open_device(cups_open); +private int cups_print_pages(gx_device_printer *, FILE *, int); +private int cups_put_params(gx_device *, gs_param_list *); +private int cups_set_color_info(gx_device *); +private dev_proc_sync_output(cups_sync_output); +private prn_dev_proc_get_space_params(cups_get_space_params); + +#ifdef dev_t_proc_encode_color +private cm_map_proc_gray(cups_map_gray); +private cm_map_proc_rgb(cups_map_rgb); +private cm_map_proc_cmyk(cups_map_cmyk); +private dev_proc_decode_color(cups_decode_color); +private dev_proc_encode_color(cups_encode_color); +private dev_proc_get_color_comp_index(cups_get_color_comp_index); +private dev_proc_get_color_mapping_procs(cups_get_color_mapping_procs); + +static const gx_cm_color_map_procs cups_color_mapping_procs = +{ + cups_map_gray, + cups_map_rgb, + cups_map_cmyk +}; +#else +private dev_proc_map_cmyk_color(cups_map_cmyk_color); +private dev_proc_map_color_rgb(cups_map_color_rgb); +private dev_proc_map_rgb_color(cups_map_rgb_color); +#endif /* dev_t_proc_encode_color */ + + +/* + * The device descriptors... + */ + +typedef struct gx_device_cups_s +{ + gx_device_common; /* Standard GhostScript device stuff */ + gx_prn_device_common; /* Standard printer device stuff */ + int page; /* Page number */ + cups_raster_t *stream; /* Raster stream */ + cups_page_header_t header; /* PostScript page device info */ + int landscape; /* Non-zero if this is landscape */ + int lastpage; + int HaveProfile; /* Has a color profile been defined? */ + char *Profile; /* Current simple color profile string */ + ppd_file_t *PPD; /* PPD file for this device */ + unsigned char RevLower1[16]; /* Lower 1-bit reversal table */ + unsigned char RevUpper1[16]; /* Upper 1-bit reversal table */ + unsigned char RevLower2[16]; /* Lower 2-bit reversal table */ + unsigned char RevUpper2[16]; /* Upper 2-bit reversal table */ +#ifdef GX_COLOR_INDEX_TYPE + gx_color_value DecodeLUT[65536];/* Output color to RGB value LUT */ +#else + gx_color_value DecodeLUT[256]; /* Output color to RGB value LUT */ +#endif /* GX_COLOR_INDEX_TYPE */ + unsigned short EncodeLUT[gx_max_color_value + 1];/* RGB value to output color LUT */ + int Density[CUPS_MAX_VALUE + 1];/* Density LUT */ + int Matrix[3][3][CUPS_MAX_VALUE + 1];/* Color transform matrix LUT */ + int user_icc; + int cupsRasterVersion; + + /* Used by cups_put_params(): */ +} gx_device_cups; + +private gx_device_procs cups_procs = +{ + cups_open, + cups_get_matrix, + cups_sync_output, + gdev_prn_output_page, + cups_close, +#ifdef dev_t_proc_encode_color + NULL, /* map_rgb_color */ + NULL, /* map_color_rgb */ +#else + cups_map_rgb_color, + cups_map_color_rgb, +#endif /* dev_t_proc_encode_color */ + NULL, /* fill_rectangle */ + NULL, /* tile_rectangle */ + NULL, /* copy_mono */ + NULL, /* copy_color */ + NULL, /* draw_line */ + gx_default_get_bits, + cups_get_params, + cups_put_params, +#ifdef dev_t_proc_encode_color + NULL, /* map_cmyk_color */ +#else + cups_map_cmyk_color, +#endif /* dev_t_proc_encode_color */ + NULL, /* get_xfont_procs */ + NULL, /* get_xfont_device */ + NULL, /* map_rgb_alpha_color */ + gx_page_device_get_page_device, + NULL, /* get_alpha_bits */ + NULL, /* copy_alpha */ + NULL, /* get_band */ + NULL, /* copy_rop */ + NULL, /* fill_path */ + NULL, /* stroke_path */ + NULL, /* fill_mask */ + NULL, /* fill_trapezoid */ + NULL, /* fill_parallelogram */ + NULL, /* fill_triangle */ + NULL, /* draw_thin_line */ + NULL, /* begin_image */ + NULL, /* image_data */ + NULL, /* end_image */ + NULL, /* strip_tile_rectangle */ + NULL, /* strip_copy_rop */ + NULL, /* get_clipping_box */ + NULL, /* begin_typed_image */ + NULL, /* get_bits_rectangle */ + NULL, /* map_color_rgb_alpha */ + NULL, /* create_compositor */ + NULL, /* get_hardware_params */ + NULL, /* text_begin */ + NULL, /* finish_copydevice */ + NULL, /* begin_transparency_group */ + NULL, /* end_transparency_group */ + NULL, /* begin_transparency_mask */ + NULL, /* end_transparency_mask */ + NULL, /* discard_transparency_layer */ +#ifdef dev_t_proc_encode_color + cups_get_color_mapping_procs, + cups_get_color_comp_index, + cups_encode_color, + cups_decode_color, +#else + NULL, /* get_color_mapping_procs */ + NULL, /* get_color_comp_index */ + NULL, /* encode_color */ + NULL, /* decode_color */ +#endif /* dev_t_proc_encode_color */ + NULL, /* pattern_manage */ + NULL, /* fill_rectangle_hl_color */ + NULL, /* include_color_space */ + NULL, /* fill_linear_color_scanline */ + NULL, /* fill_linear_color_trapezoid */ + NULL, /* fill_linear_color_triangle */ + NULL, /* update_spot_equivalent_colors */ + NULL, /* ret_devn_params */ + NULL, /* fillpage */ + NULL, /* push_transparency_state */ + NULL, /* pop_transparency_state */ + NULL, /* put_image */ + +}; + +#define prn_device_body_copies(dtype, procs, dname, w10, h10, xdpi, ydpi, lo, to, lm, bm, rm, tm, ncomp, depth, mg, mc, dg, dc, print_pages)\ + std_device_full_body_type(dtype, &procs, dname, &st_device_printer,\ + (int)((long)(w10) * (xdpi) / 10),\ + (int)((long)(h10) * (ydpi) / 10),\ + xdpi, ydpi,\ + ncomp, depth, mg, mc, dg, dc,\ + -(lo) * (xdpi), -(to) * (ydpi),\ + (lm) * 72.0, (bm) * 72.0,\ + (rm) * 72.0, (tm) * 72.0\ + ),\ + prn_device_body_copies_rest_(print_pages) + +gx_device_cups gs_cups_device = +{ + prn_device_body_copies(gx_device_cups,/* type */ + cups_procs, /* procedures */ + "cups", /* device name */ + 85, /* initial width */ + 110, /* initial height */ + 100, /* initial x resolution */ + 100, /* initial y resolution */ + 0, /* initial left offset */ + 0, /* initial top offset */ + 0, /* initial left margin */ + 0, /* initial bottom margin */ + 0, /* initial right margin */ + 0, /* initial top margin */ + 1, /* number of color components */ + 1, /* number of color bits */ + 1, /* maximum gray value */ + 0, /* maximum color value */ + 2, /* number of gray values */ + 0, /* number of color values */ + cups_print_pages), + /* print procedure */ + 0, /* page */ + NULL, /* stream */ + { /* header */ + "", /* MediaClass */ + "", /* MediaColor */ + "", /* MediaType */ + "", /* OutputType */ + 0, /* AdvanceDistance */ + CUPS_ADVANCE_NONE, /* AdvanceMedia */ + CUPS_FALSE, /* Collate */ + CUPS_CUT_NONE, /* CutMedia */ + CUPS_FALSE, /* Duplex */ + { 100, 100 }, /* HWResolution */ + { 0, 0, 612, 792 }, /* ImagingBoundingBox */ + CUPS_FALSE, /* InsertSheet */ + CUPS_JOG_NONE, /* Jog */ + CUPS_EDGE_TOP, /* LeadingEdge */ + { 0, 0 }, /* Margins */ + CUPS_FALSE, /* ManualFeed */ + 0, /* MediaPosition */ + 0, /* MediaWeight */ + CUPS_FALSE, /* MirrorPrint */ + CUPS_FALSE, /* NegativePrint */ + 1, /* NumCopies */ + CUPS_ORIENT_0, /* Orientation */ + CUPS_FALSE, /* OutputFaceUp */ + { 612, 792 }, /* PageSize */ + CUPS_FALSE, /* Separations */ + CUPS_FALSE, /* TraySwitch */ + CUPS_FALSE, /* Tumble */ + 850, /* cupsWidth */ + 1100, /* cupsHeight */ + 0, /* cupsMediaType */ + 1, /* cupsBitsPerColor */ + 1, /* cupsBitsPerPixel */ + 107, /* cupsBytesPerLine */ + CUPS_ORDER_CHUNKED, /* cupsColorOrder */ + CUPS_CSPACE_K, /* cupsColorSpace */ + 0, /* cupsCompression */ + 0, /* cupsRowCount */ + 0, /* cupsRowFeed */ + 0 /* cupsRowStep */ +#ifdef CUPS_RASTER_SYNCv1 + , + 1, /* cupsNumColors */ + 1.0, /* cupsBorderlessScalingFactor */ + { 612.0, 792.0 }, /* cupsPageSize */ + { 0.0, 0.0, 612.0, 792.0 }, /* cupsImagingBBox */ + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* cupsInteger */ + { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 }, /* cupsReal */ + { "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" }, + /* cupsString */ + "", /* cupsMarkerType */ + "", /* cupsRenderingIntent */ + "" /* cupsPageSizeName */ +#endif /* CUPS_RASTER_SYNCv1 */ + }, + 0, /* landscape */ + 0, /* lastpage */ + 0, /* HaveProfile */ + NULL, /* Profile */ + NULL, /* PPD */ + { 0x00, 0x08, 0x04, 0x0c, 0x02, 0x0a, 0x06, 0x0e, + 0x01, 0x09, 0x05, 0x0d, 0x03, 0x0b, 0x07, 0x0f },/* RevLower1 */ + { 0x00, 0x80, 0x40, 0xc0, 0x20, 0xa0, 0x60, 0xe0, + 0x10, 0x90, 0x50, 0xd0, 0x30, 0xb0, 0x70, 0xf0 },/* RevUpper1 */ + { 0x00, 0x04, 0x08, 0x0c, 0x01, 0x05, 0x09, 0x0d, + 0x02, 0x06, 0x0a, 0x0e, 0x03, 0x07, 0x0b, 0x0f },/* RevLower2 */ + { 0x00, 0x40, 0x80, 0xc0, 0x10, 0x50, 0x90, 0xd0, + 0x20, 0x60, 0xa0, 0xe0, 0x30, 0x70, 0xb0, 0xf0 },/* RevUpper2 */ + {0x00}, /* DecodeLUT */ + {0x00}, /* EncodeLUT */ + {0x00}, /* Density */ + {{{0x00},{0x00},{0x00}}, + {{0x00},{0x00},{0x00}}, + {{0x00},{0x00},{0x00}}}, /* Matrix */ + 0, /* user_icc */ + 3 /* cupsRasterVersion */ +}; + +/* + * Local functions... + */ + +static double cups_map_cielab(double, double); +static int cups_print_chunked(gx_device_printer *, unsigned char *, + unsigned char *, int); +static int cups_print_banded(gx_device_printer *, unsigned char *, + unsigned char *, int); +static int cups_print_planar(gx_device_printer *, unsigned char *, + unsigned char *, int); + +/*static void cups_set_margins(gx_device *);*/ + + +/* + * 'cups_close()' - Close the output file. + */ + +private int +cups_close(gx_device *pdev) /* I - Device info */ +{ +#ifdef CUPS_DEBUG2 + dprintf1("DEBUG2: cups_close(%p)\n", pdev); +#endif /* CUPS_DEBUG2 */ + + dprintf("INFO: Rendering completed\n"); + + if (cups->stream != NULL) + { + cupsRasterClose(cups->stream); + cups->stream = NULL; + } + +#if 0 /* Can't do this here because put_params() might close the device */ + if (cups->PPD != NULL) + { + ppdClose(cups->PPD); + cups->PPD = NULL; + } + + if (cups->Profile != NULL) + { + free(cups->Profile); + cups->Profile = NULL; + } +#endif /* 0 */ + + return (gdev_prn_close(pdev)); +} + + +#ifdef dev_t_proc_encode_color +/* + * 'cups_decode_color()' - Decode a color value. + */ + +private int /* O - Status (0 = OK) */ +cups_decode_color(gx_device *pdev, /* I - Device info */ + gx_color_index ci, /* I - Color index */ + gx_color_value *cv) /* O - Colors */ +{ + int i; /* Looping var */ + int shift; /* Bits to shift */ + int mask; /* Bits to mask */ + + + if (cups->header.cupsColorSpace == CUPS_CSPACE_KCMYcm && + cups->header.cupsBitsPerColor == 1) + { + /* + * KCMYcm data is represented internally by Ghostscript as CMYK... + */ + + cv[0] = (ci & 0x20) ? frac_1 : frac_0; + cv[1] = (ci & 0x12) ? frac_1 : frac_0; + cv[2] = (ci & 0x09) ? frac_1 : frac_0; + cv[3] = (ci & 0x04) ? frac_1 : frac_0; + } + else + { + shift = cups->header.cupsBitsPerColor; + mask = (1 << shift) - 1; + + for (i = cups->color_info.num_components - 1; i > 0; i --, ci >>= shift) + cv[i] = cups->DecodeLUT[ci & mask]; + + cv[0] = cups->DecodeLUT[ci & mask]; + } + + return (0); +} + + +/* + * 'cups_encode_color()' - Encode a color value. + */ + +private gx_color_index /* O - Color index */ +cups_encode_color(gx_device *pdev, + /* I - Device info */ + const gx_color_value *cv) + /* I - Colors */ +{ + int i; /* Looping var */ + gx_color_index ci; /* Color index */ + int shift; /* Bits to shift */ + + + /* + * Encode the color index... + */ + + shift = cups->header.cupsBitsPerColor; + + for (ci = cups->EncodeLUT[cv[0]], i = 1; + i < cups->color_info.num_components; + i ++) + ci = (ci << shift) | cups->EncodeLUT[cv[i]]; + +#ifdef CUPS_DEBUG2 + dprintf2("DEBUG2: cv[0]=%d -> %llx\n", cv[0], ci); +#endif /* CUPS_DEBUG2 */ + + /* + * Handle 6-color output... + */ + + if (cups->header.cupsColorSpace == CUPS_CSPACE_KCMYcm && + cups->header.cupsBitsPerColor == 1) + { + /* + * Welcome to hackville, where we map CMYK data to the + * light inks in draft mode... Map blue to light magenta and + * cyan and green to light cyan and yellow... + */ + + ci <<= 2; /* Leave room for light inks */ + + if (ci == 0x18) /* Blue */ + ci = 0x11; /* == cyan + light magenta */ + else if (ci == 0x14) /* Green */ + ci = 0x06; /* == light cyan + yellow */ + } + + /* + * Range check the return value... + */ + + if (ci == gx_no_color_index) + ci --; + + /* + * Return the color index... + */ + + return (ci); +} + +/* + * 'cups_get_color_comp_index()' - Color component to index + */ + +#define compare_color_names(pname, name_size, name_str) \ + (name_size == (int)strlen(name_str) && strncasecmp(pname, name_str, name_size) == 0) + +int /* O - Index of the named color in + the color space */ +cups_get_color_comp_index(gx_device * pdev, const char * pname, + int name_size, int component_type) +{ + switch (cups->header.cupsColorSpace) + { + case CUPS_CSPACE_K : + if (compare_color_names(pname, name_size, "Black") || + compare_color_names(pname, name_size, "Gray") || + compare_color_names(pname, name_size, "Grey")) + return 0; + else + return -1; /* Indicate that the component name is "unknown" */ + break; + case CUPS_CSPACE_W : + case CUPS_CSPACE_WHITE : + if (compare_color_names(pname, name_size, "White") || + compare_color_names(pname, name_size, "Luminance") || + compare_color_names(pname, name_size, "Gray") || + compare_color_names(pname, name_size, "Grey")) + return 0; + else + return -1; + break; + case CUPS_CSPACE_RGBA : + if (compare_color_names(pname, name_size, "Alpha") || + compare_color_names(pname, name_size, "Transparent") || + compare_color_names(pname, name_size, "Transparency")) + return 3; + case CUPS_CSPACE_RGBW : + if (compare_color_names(pname, name_size, "Red")) + return 0; + if (compare_color_names(pname, name_size, "Green")) + return 1; + if (compare_color_names(pname, name_size, "Blue")) + return 2; + if (compare_color_names(pname, name_size, "White")) + return 3; + else + return -1; + break; + case CUPS_CSPACE_RGB : + if (compare_color_names(pname, name_size, "Red")) + return 0; + if (compare_color_names(pname, name_size, "Green")) + return 1; + if (compare_color_names(pname, name_size, "Blue")) + return 2; + break; + case CUPS_CSPACE_CMYK : +# ifdef CUPS_RASTER_HAVE_COLORIMETRIC + case CUPS_CSPACE_CIEXYZ : + case CUPS_CSPACE_CIELab : + case CUPS_CSPACE_ICC1 : + case CUPS_CSPACE_ICC2 : + case CUPS_CSPACE_ICC3 : + case CUPS_CSPACE_ICC4 : + case CUPS_CSPACE_ICC5 : + case CUPS_CSPACE_ICC6 : + case CUPS_CSPACE_ICC7 : + case CUPS_CSPACE_ICC8 : + case CUPS_CSPACE_ICC9 : + case CUPS_CSPACE_ICCA : + case CUPS_CSPACE_ICCB : + case CUPS_CSPACE_ICCC : + case CUPS_CSPACE_ICCD : + case CUPS_CSPACE_ICCE : + case CUPS_CSPACE_ICCF : +# endif /* CUPS_RASTER_HAVE_COLORIMETRIC */ + if (compare_color_names(pname, name_size, "Black")) + return 3; + case CUPS_CSPACE_CMY : + if (compare_color_names(pname, name_size, "Cyan")) + return 0; + if (compare_color_names(pname, name_size, "Magenta")) + return 1; + if (compare_color_names(pname, name_size, "Yellow")) + return 2; + else + return -1; + break; + case CUPS_CSPACE_GMCS : + if (compare_color_names(pname, name_size, "Silver") || + compare_color_names(pname, name_size, "Silver Foil")) + return 3; + case CUPS_CSPACE_GMCK : + if (compare_color_names(pname, name_size, "Gold") || + compare_color_names(pname, name_size, "Gold Foil")) + return 0; + case CUPS_CSPACE_YMCK : + if (compare_color_names(pname, name_size, "Black")) + return 3; + case CUPS_CSPACE_YMC : + if (compare_color_names(pname, name_size, "Yellow")) + return 0; + if (compare_color_names(pname, name_size, "Magenta")) + return 1; + if (compare_color_names(pname, name_size, "Cyan")) + return 2; + else + return -1; + break; + case CUPS_CSPACE_KCMYcm : + if (compare_color_names(pname, name_size, "Light Cyan") || + compare_color_names(pname, name_size, "Photo Cyan")) + return 4; + if (compare_color_names(pname, name_size, "Light Magenta") || + compare_color_names(pname, name_size, "Photo Magenta")) + return 5; + case CUPS_CSPACE_KCMY : + if (compare_color_names(pname, name_size, "Black")) + return 0; + if (compare_color_names(pname, name_size, "Cyan")) + return 1; + if (compare_color_names(pname, name_size, "Magenta")) + return 2; + if (compare_color_names(pname, name_size, "Yellow")) + return 3; + else + return -1; + break; + case CUPS_CSPACE_GOLD : + if (compare_color_names(pname, name_size, "Gold") || + compare_color_names(pname, name_size, "Gold Foil")) + return 0; + else + return -1; + break; + case CUPS_CSPACE_SILVER : + if (compare_color_names(pname, name_size, "Silver") || + compare_color_names(pname, name_size, "Silver Foil")) + return 0; + else + return -1; + break; + default: + break; + } + return -1; +} + +/* + * 'cups_get_color_mapping_procs()' - Get the list of color mapping procedures. + */ + +private const gx_cm_color_map_procs * /* O - List of device procedures */ +cups_get_color_mapping_procs(const gx_device *pdev) + /* I - Device info */ +{ + return (&cups_color_mapping_procs); +} +#endif /* dev_t_proc_encode_color */ + + +/* + * 'cups_get_matrix()' - Generate the default page matrix. + */ + +private void +cups_get_matrix(gx_device *pdev, /* I - Device info */ + gs_matrix *pmat) /* O - Physical transform matrix */ +{ +#ifdef CUPS_DEBUG2 + dprintf2("DEBUG2: cups_get_matrix(%p, %p)\n", pdev, pmat); +#endif /* CUPS_DEBUG2 */ + + /* + * Set the raster width and height... + */ + + cups->header.cupsWidth = cups->width; + cups->header.cupsHeight = cups->height; + + /* + * Set the transform matrix... + */ + + if (cups->landscape) + { + /* + * Do landscape orientation... + */ +#ifdef CUPS_DEBUG2 + dprintf("DEBUG2: Landscape matrix: XX=0 XY=+1 YX=+1 YY=0\n"); +#endif /* CUPS_DEBUG2 */ + pmat->xx = 0.0; + pmat->xy = (float)cups->header.HWResolution[1] / 72.0; + pmat->yx = (float)cups->header.HWResolution[0] / 72.0; + pmat->yy = 0.0; + pmat->tx = -(float)cups->header.HWResolution[0] * pdev->HWMargins[1] / 72.0; + pmat->ty = -(float)cups->header.HWResolution[1] * pdev->HWMargins[0] / 72.0; + } + else + { + /* + * Do portrait orientation... + */ +#ifdef CUPS_DEBUG2 + dprintf("DEBUG2: Portrait matrix: XX=+1 XY=0 YX=0 YY=-1\n"); +#endif /* CUPS_DEBUG2 */ + pmat->xx = (float)cups->header.HWResolution[0] / 72.0; + pmat->xy = 0.0; + pmat->yx = 0.0; + pmat->yy = -(float)cups->header.HWResolution[1] / 72.0; + pmat->tx = -(float)cups->header.HWResolution[0] * pdev->HWMargins[0] / 72.0; + pmat->ty = (float)cups->header.HWResolution[1] * + ((float)cups->header.PageSize[1] - pdev->HWMargins[3]) / 72.0; + } + +#ifdef CUPS_RASTER_SYNCv1 + if (cups->header.cupsBorderlessScalingFactor > 1.0) + { + pmat->xx *= cups->header.cupsBorderlessScalingFactor; + pmat->xy *= cups->header.cupsBorderlessScalingFactor; + pmat->yx *= cups->header.cupsBorderlessScalingFactor; + pmat->yy *= cups->header.cupsBorderlessScalingFactor; + pmat->tx *= cups->header.cupsBorderlessScalingFactor; + pmat->ty *= cups->header.cupsBorderlessScalingFactor; + } +#endif /* CUPS_RASTER_SYNCv1 */ + +#ifdef CUPS_DEBUG2 + dprintf2("DEBUG2: width = %d, height = %d\n", cups->header.cupsWidth, + cups->header.cupsHeight); + dprintf4("DEBUG2: PageSize = [ %d %d ], HWResolution = [ %d %d ]\n", + cups->header.PageSize[0], cups->header.PageSize[1], + cups->header.HWResolution[0], cups->header.HWResolution[1]); + dprintf4("DEBUG2: HWMargins = [ %.3f %.3f %.3f %.3f ]\n", + pdev->HWMargins[0], pdev->HWMargins[1], pdev->HWMargins[2], + pdev->HWMargins[3]); + dprintf6("DEBUG2: matrix = [ %.3f %.3f %.3f %.3f %.3f %.3f ]\n", + pmat->xx, pmat->xy, pmat->yx, pmat->yy, pmat->tx, pmat->ty); +#endif /* CUPS_DEBUG2 */ +} + + +/* + * 'cups_get_params()' - Get pagedevice parameters. + */ + +private int /* O - Error status */ +cups_get_params(gx_device *pdev, /* I - Device info */ + gs_param_list *plist) /* I - Parameter list */ +{ +#ifdef CUPS_RASTER_SYNCv1 + int i; /* Looping var */ + char name[255]; /* Attribute name */ +#endif /* CUPS_RASTER_SYNCv1 */ + int code; /* Return code */ + gs_param_string s; /* Temporary string value */ + bool b; /* Temporary boolean value */ + + +#ifdef CUPS_DEBUG2 + dprintf2("DEBUG2: cups_get_params(%p, %p)\n", pdev, plist); +#endif /* CUPS_DEBUG2 */ + + /* + * First process the "standard" page device parameters... + */ + +#ifdef CUPS_DEBUG2 + dprintf("DEBUG2: before gdev_prn_get_params()\n"); +#endif /* CUPS_DEBUG2 */ + + if ((code = gdev_prn_get_params(pdev, plist)) < 0) + return (code); + +#ifdef CUPS_DEBUG2 + dprintf("DEBUG2: after gdev_prn_get_params()\n"); +#endif /* CUPS_DEBUG2 */ + + /* + * Then write the CUPS parameters... + */ + + param_string_from_string(s, cups->header.MediaClass); + if ((code = param_write_string(plist, "MediaClass", &s)) < 0) + return (code); + + param_string_from_string(s, cups->header.MediaColor); + if ((code = param_write_string(plist, "MediaColor", &s)) < 0) + return (code); + + param_string_from_string(s, cups->header.MediaType); + if ((code = param_write_string(plist, "MediaType", &s)) < 0) + return (code); + + param_string_from_string(s, cups->header.OutputType); + if ((code = param_write_string(plist, "OutputType", &s)) < 0) + return (code); + + if ((code = param_write_int(plist, "AdvanceDistance", + (int *)&(cups->header.AdvanceDistance))) < 0) + return (code); + + if ((code = param_write_int(plist, "AdvanceMedia", + (int *)&(cups->header.AdvanceMedia))) < 0) + return (code); + + b = cups->header.Collate; + if ((code = param_write_bool(plist, "Collate", &b)) < 0) + return (code); + + if ((code = param_write_int(plist, "CutMedia", + (int *)&(cups->header.CutMedia))) < 0) + return (code); + + b = cups->header.Duplex; + if ((code = param_write_bool(plist, "Duplex", &b)) < 0) + return (code); + + b = cups->header.InsertSheet; + if ((code = param_write_bool(plist, "InsertSheet", &b)) < 0) + return (code); + + if ((code = param_write_int(plist, "Jog", + (int *)&(cups->header.Jog))) < 0) + return (code); + + if ((code = param_write_int(plist, "LeadingEdge", + (int *)&(cups->header.LeadingEdge))) < 0) + return (code); + + b = cups->header.ManualFeed; + if ((code = param_write_bool(plist, "ManualFeed", &b)) < 0) + return (code); + + if ((code = param_write_int(plist, "MediaPosition", + (int *)&(cups->header.MediaPosition))) < 0) + return (code); + + if ((code = param_write_int(plist, "MediaWeight", + (int *)&(cups->header.MediaWeight))) < 0) + return (code); + + b = cups->header.MirrorPrint; + if ((code = param_write_bool(plist, "MirrorPrint", &b)) < 0) + return (code); + + b = cups->header.NegativePrint; + if ((code = param_write_bool(plist, "NegativePrint", &b)) < 0) + return (code); + + b = cups->header.OutputFaceUp; + if ((code = param_write_bool(plist, "OutputFaceUp", &b)) < 0) + return (code); + + b = cups->header.Separations; + if ((code = param_write_bool(plist, "Separations", &b)) < 0) + return (code); + + b = cups->header.TraySwitch; + if ((code = param_write_bool(plist, "TraySwitch", &b)) < 0) + return (code); + + b = cups->header.Tumble; + if ((code = param_write_bool(plist, "Tumble", &b)) < 0) + return (code); + +#if 0 /* Don't include read-only parameters... */ + if ((code = param_write_int(plist, "cupsWidth", + (int *)&(cups->header.cupsWidth))) < 0) + return (code); + + if ((code = param_write_int(plist, "cupsHeight", + (int *)&(cups->header.cupsHeight))) < 0) + return (code); + + if ((code = param_write_int(plist, "cupsBitsPerPixel", + (int *)&(cups->header.cupsBitsPerPixel))) < 0) + return (code); + + if ((code = param_write_int(plist, "cupsBytesPerLine", + (int *)&(cups->header.cupsBytesPerLine))) < 0) + return (code); +#endif /* 0 */ + + if ((code = param_write_int(plist, "cupsMediaType", + (int *)&(cups->header.cupsMediaType))) < 0) + return (code); + + if ((code = param_write_int(plist, "cupsBitsPerColor", + (int *)&(cups->header.cupsBitsPerColor))) < 0) + return (code); + + if ((code = param_write_int(plist, "cupsColorOrder", + (int *)&(cups->header.cupsColorOrder))) < 0) + return (code); + + if ((code = param_write_int(plist, "cupsColorSpace", + (int *)&(cups->header.cupsColorSpace))) < 0) + return (code); + + if ((code = param_write_int(plist, "cupsCompression", + (int *)&(cups->header.cupsCompression))) < 0) + return (code); + + if ((code = param_write_int(plist, "cupsRowCount", + (int *)&(cups->header.cupsRowCount))) < 0) + return (code); + + if ((code = param_write_int(plist, "cupsRowFeed", + (int *)&(cups->header.cupsRowFeed))) < 0) + return (code); + + if ((code = param_write_int(plist, "cupsRowStep", + (int *)&(cups->header.cupsRowStep))) < 0) + return (code); + +#ifdef CUPS_RASTER_SYNCv1 +#if 0 /* Don't include read-only parameters... */ + if ((code = param_write_int(plist, "cupsNumColors", + (int *)&(cups->header.cupsNumColors))) < 0) + return (code); +#endif /* 0 */ + + if ((code = param_write_float(plist, "cupsBorderlessScalingFactor", + &(cups->header.cupsBorderlessScalingFactor))) < 0) + return (code); + + for (i = 0; i < 16; i ++) + { + sprintf(name, "cupsInteger%d", i); + if ((code = param_write_int(plist, strdup(name), + (int *)(cups->header.cupsInteger + i))) < 0) + return (code); + } + + for (i = 0; i < 16; i ++) + { + sprintf(name, "cupsReal%d", i); + if ((code = param_write_float(plist, strdup(name), + cups->header.cupsReal + i)) < 0) + return (code); + } + + for (i = 0; i < 16; i ++) + { + sprintf(name, "cupsString%d", i); + param_string_from_string(s, cups->header.cupsString[i]); + if ((code = param_write_string(plist, strdup(name), &s)) < 0) + return (code); + } + + param_string_from_string(s, cups->header.cupsMarkerType); + if ((code = param_write_string(plist, "cupsMarkerType", &s)) < 0) + return (code); + + param_string_from_string(s, cups->header.cupsRenderingIntent); + if ((code = param_write_string(plist, "cupsRenderingIntent", &s)) < 0) + return (code); + + param_string_from_string(s, cups->header.cupsPageSizeName); + if ((code = param_write_string(plist, "cupsPageSizeName", &s)) < 0) + return (code); +#endif /* CUPS_RASTER_SYNCv1 */ + +#ifdef CUPS_DEBUG2 + dprintf("DEBUG2: Leaving cups_get_params()\n"); +#endif /* CUPS_DEBUG2 */ + + return (0); +} + + +/* + * 'cups_get_space_params()' - Get space parameters from the RIP_CACHE env var. + */ + +void +cups_get_space_params(const gx_device_printer *pdev, + /* I - Printer device */ + gdev_prn_space_params *space_params) + /* O - Space parameters */ +{ + float cache_size; /* Size of tile cache in bytes */ + char *cache_env, /* Cache size environment variable */ + cache_units[255]; /* Cache size units */ + + +#ifdef CUPS_DEBUG2 + dprintf2("DEBUG2: cups_get_space_params(%p, %p)\n", pdev, space_params); +#endif /* CUPS_DEBUG2 */ + + if ((cache_env = getenv("RIP_MAX_CACHE")) != NULL) + { + switch (sscanf(cache_env, "%f%254s", &cache_size, cache_units)) + { + case 0 : + return; + case 1 : + cache_size *= 4 * CUPS_TILE_SIZE * CUPS_TILE_SIZE; + break; + case 2 : + if (tolower(cache_units[0]) == 'g') + cache_size *= 1024 * 1024 * 1024; + else if (tolower(cache_units[0]) == 'm') + cache_size *= 1024 * 1024; + else if (tolower(cache_units[0]) == 'k') + cache_size *= 1024; + else if (tolower(cache_units[0]) == 't') + cache_size *= 4 * CUPS_TILE_SIZE * CUPS_TILE_SIZE; + break; + } + } + else + return; + + if (cache_size == 0) + return; + +#ifdef CUPS_DEBUG2 + dprintf1("DEBUG2: cache_size = %.0f\n", cache_size); +#endif /* CUPS_DEBUG2 */ + + space_params->MaxBitmap = (long)cache_size; + space_params->BufferSpace = (long)cache_size; +} + + +/* + * 'cups_map_cielab()' - Map CIE Lab transformation... + */ + +static double /* O - Adjusted color value */ +cups_map_cielab(double x, /* I - Raw color value */ + double xn) /* I - Whitepoint color value */ +{ + double x_xn; /* Fraction of whitepoint */ + + + x_xn = x / xn; + + if (x_xn > 0.008856) + return (cbrt(x_xn)); + else + return (7.787 * x_xn + 16.0 / 116.0); +} + + +#ifdef dev_t_proc_encode_color +/* + * 'cups_map_cmyk()' - Map a CMYK color value to device colors. + */ + +private void +cups_map_cmyk(gx_device *pdev, /* I - Device info */ + frac c, /* I - Cyan value */ + frac m, /* I - Magenta value */ + frac y, /* I - Yellow value */ + frac k, /* I - Black value */ + frac *out) /* O - Device colors */ +{ + int c0 = 0, c1 = 0, + c2 = 0, c3 = 0; /* Temporary color values */ + float rr, rg, rb, /* Real RGB colors */ + ciex, ciey, ciez, /* CIE XYZ colors */ + ciey_yn, /* Normalized luminance */ + ciel, ciea, cieb; /* CIE Lab colors */ + + +#ifdef CUPS_DEBUG2 + dprintf6("DEBUG2: cups_map_cmyk(%p, %d, %d, %d, %d, %p)\n", + pdev, c, m, y, k, out); +#endif /* CUPS_DEBUG2 */ + + /* + * Convert the CMYK color to the destination colorspace... + */ + + switch (cups->header.cupsColorSpace) + { + case CUPS_CSPACE_W : + c0 = (c * 31 + m * 61 + y * 8) / 100 + k; + + if (c0 < 0) + c0 = 0; + else if (c0 > frac_1) + c0 = frac_1; + out[0] = frac_1 - (frac)cups->Density[c0]; + break; + + case CUPS_CSPACE_RGBA : + out[3] = frac_1; + + case CUPS_CSPACE_RGB : + case CUPS_CSPACE_RGBW : + c0 = c + k; + c1 = m + k; + c2 = y + k; + if (cups->header.cupsColorSpace == CUPS_CSPACE_RGBW) { + if ((k >= frac_1 - 1) || + ((c0 >= frac_1) && (c1 >= frac_1) && (c2 >= frac_1))) { + c0 = frac_1; + c1 = frac_1; + c2 = frac_1; + c3 = frac_1; + } else + c3 = 0; + } + + if (c0 < 0) + c0 = 0; + else if (c0 > frac_1) + c0 = frac_1; + out[0] = frac_1 - (frac)cups->Density[c0]; + + if (c1 < 0) + c1 = 0; + else if (c1 > frac_1) + c1 = frac_1; + out[1] = frac_1 - (frac)cups->Density[c1]; + + if (c2 < 0) + c2 = 0; + else if (c2 > frac_1) + c2 = frac_1; + out[2] = frac_1 - (frac)cups->Density[c2]; + + if (cups->header.cupsColorSpace == CUPS_CSPACE_RGBW) { + if (c3 == 0) + out[3] = frac_1; + else if (c3 == frac_1) + out[3] = 0; + else + out[3] = frac_1; + } + break; + + default : + case CUPS_CSPACE_K : + c0 = (c * 31 + m * 61 + y * 8) / 100 + k; + + if (c0 < 0) + out[0] = 0; + else if (c0 > frac_1) + out[0] = (frac)cups->Density[frac_1]; + else + out[0] = (frac)cups->Density[c0]; + break; + + case CUPS_CSPACE_CMY : + c0 = c + k; + c1 = m + k; + c2 = y + k; + + if (c0 < 0) + out[0] = 0; + else if (c0 > frac_1) + out[0] = (frac)cups->Density[frac_1]; + else + out[0] = (frac)cups->Density[c0]; + + if (c1 < 0) + out[1] = 0; + else if (c1 > frac_1) + out[1] = (frac)cups->Density[frac_1]; + else + out[1] = (frac)cups->Density[c1]; + + if (c2 < 0) + out[2] = 0; + else if (c2 > frac_1) + out[2] = (frac)cups->Density[frac_1]; + else + out[2] = (frac)cups->Density[c2]; + break; + + case CUPS_CSPACE_YMC : + c0 = y + k; + c1 = m + k; + c2 = c + k; + + if (c0 < 0) + out[0] = 0; + else if (c0 > frac_1) + out[0] = (frac)cups->Density[frac_1]; + else + out[0] = (frac)cups->Density[c0]; + + if (c1 < 0) + out[1] = 0; + else if (c1 > frac_1) + out[1] = (frac)cups->Density[frac_1]; + else + out[1] = (frac)cups->Density[c1]; + + if (c2 < 0) + out[2] = 0; + else if (c2 > frac_1) + out[2] = (frac)cups->Density[frac_1]; + else + out[2] = (frac)cups->Density[c2]; + break; + + case CUPS_CSPACE_CMYK : + if (c < 0) + out[0] = 0; + else if (c > frac_1) + out[0] = (frac)cups->Density[frac_1]; + else + out[0] = (frac)cups->Density[c]; + + if (m < 0) + out[1] = 0; + else if (m > frac_1) + out[1] = (frac)cups->Density[frac_1]; + else + out[1] = (frac)cups->Density[m]; + + if (y < 0) + out[2] = 0; + else if (y > frac_1) + out[2] = (frac)cups->Density[frac_1]; + else + out[2] = (frac)cups->Density[y]; + + if (k < 0) + out[3] = 0; + else if (k > frac_1) + out[3] = (frac)cups->Density[frac_1]; + else + out[3] = (frac)cups->Density[k]; + break; + + case CUPS_CSPACE_YMCK : + case CUPS_CSPACE_GMCK : + case CUPS_CSPACE_GMCS : + if (y < 0) + out[0] = 0; + else if (y > frac_1) + out[0] = (frac)cups->Density[frac_1]; + else + out[0] = (frac)cups->Density[y]; + + if (m < 0) + out[1] = 0; + else if (m > frac_1) + out[1] = (frac)cups->Density[frac_1]; + else + out[1] = (frac)cups->Density[m]; + + if (c < 0) + out[2] = 0; + else if (c > frac_1) + out[2] = (frac)cups->Density[frac_1]; + else + out[2] = (frac)cups->Density[c]; + + if (k < 0) + out[3] = 0; + else if (k > frac_1) + out[3] = (frac)cups->Density[frac_1]; + else + out[3] = (frac)cups->Density[k]; + break; + + case CUPS_CSPACE_KCMYcm : + case CUPS_CSPACE_KCMY : + if (k < 0) + out[0] = 0; + else if (k > frac_1) + out[0] = (frac)cups->Density[frac_1]; + else + out[0] = (frac)cups->Density[k]; + + if (c < 0) + out[1] = 0; + else if (c > frac_1) + out[1] = (frac)cups->Density[frac_1]; + else + out[1] = (frac)cups->Density[c]; + + if (m < 0) + out[2] = 0; + else if (m > frac_1) + out[2] = (frac)cups->Density[frac_1]; + else + out[2] = (frac)cups->Density[m]; + + if (y < 0) + out[3] = 0; + else if (y > frac_1) + out[3] = (frac)cups->Density[frac_1]; + else + out[3] = (frac)cups->Density[y]; + break; + +# ifdef CUPS_RASTER_HAVE_COLORIMETRIC + case CUPS_CSPACE_CIEXYZ : + case CUPS_CSPACE_CIELab : + case CUPS_CSPACE_ICC1 : + case CUPS_CSPACE_ICC2 : + case CUPS_CSPACE_ICC3 : + case CUPS_CSPACE_ICC4 : + case CUPS_CSPACE_ICC5 : + case CUPS_CSPACE_ICC6 : + case CUPS_CSPACE_ICC7 : + case CUPS_CSPACE_ICC8 : + case CUPS_CSPACE_ICC9 : + case CUPS_CSPACE_ICCA : + case CUPS_CSPACE_ICCB : + case CUPS_CSPACE_ICCC : + case CUPS_CSPACE_ICCD : + case CUPS_CSPACE_ICCE : + case CUPS_CSPACE_ICCF : + /* + * Convert CMYK to sRGB... + */ + + c0 = frac_1 - c - k; + c1 = frac_1 - m - k; + c2 = frac_1 - y - k; + + if (c0 < 0) + c0 = 0; + + if (c1 < 0) + c1 = 0; + + if (c2 < 0) + c2 = 0; + + /* + * Convert sRGB to linear RGB... + */ + + rr = pow(((double)c0 / (double)frac_1 + 0.055) / 1.055, 2.4); + rg = pow(((double)c1 / (double)frac_1 + 0.055) / 1.055, 2.4); + rb = pow(((double)c2 / (double)frac_1 + 0.055) / 1.055, 2.4); + + /* + * Convert to CIE XYZ... + */ + + ciex = 0.412453 * rr + 0.357580 * rg + 0.180423 * rb; + ciey = 0.212671 * rr + 0.715160 * rg + 0.072169 * rb; + ciez = 0.019334 * rr + 0.119193 * rg + 0.950227 * rb; + + if (cups->header.cupsColorSpace == CUPS_CSPACE_CIEXYZ) + { + /* + * Convert to an integer XYZ color value... + */ + + if (cups->header.cupsBitsPerColor == 8) + { + if (ciex <= 0.0f) + c0 = 0; + else if (ciex < 1.1) + c0 = (int)(ciex * 231.8181 + 0.5); + else + c0 = 255; + + if (ciey <= 0.0f) + c1 = 0; + else if (ciey < 1.1) + c1 = (int)(ciey * 231.8181 + 0.5); + else + c1 = 255; + + if (ciez <= 0.0f) + c2 = 0; + else if (ciez < 1.1) + c2 = (int)(ciez * 231.8181 + 0.5); + else + c2 = 255; + } + else + { + if (ciex <= 0.0f) + c0 = 0; + else if (ciex < 1.1) + c0 = (int)(ciex * 59577.2727 + 0.5); + else + c0 = 65535; + + if (ciey <= 0.0f) + c1 = 0; + else if (ciey < 1.1) + c1 = (int)(ciey * 59577.2727 + 0.5); + else + c1 = 65535; + + if (ciez <= 0.0f) + c2 = 0; + else if (ciez < 1.1) + c2 = (int)(ciez * 59577.2727 + 0.5); + else + c2 = 65535; + } + } + else + { + /* + * Convert CIE XYZ to Lab... + */ + + ciey_yn = ciey / D65_Y; + + if (ciey_yn > 0.008856) + ciel = 116 * cbrt(ciey_yn) - 16; + else + ciel = 903.3 * ciey_yn; + + ciea = 500 * (cups_map_cielab(ciex, D65_X) - + cups_map_cielab(ciey, D65_Y)); + cieb = 200 * (cups_map_cielab(ciey, D65_Y) - + cups_map_cielab(ciez, D65_Z)); + + if (cups->header.cupsBitsPerColor == 8) + { + /* + * Scale the L value and bias the a and b values by 128 + * so that all values are in the range of 0 to 255. + */ + + ciel = ciel * 2.55 + 0.5; + ciea += 128.5; + cieb += 128.5; + + if (ciel <= 0.0) + c0 = 0; + else if (ciel < 255.0) + c0 = (int)ciel; + else + c0 = 255; + + if (ciea <= 0.0) + c1 = 0; + else if (ciea < 255.0) + c1 = (int)ciea; + else + c1 = 255; + + if (cieb <= 0.0) + c2 = 0; + else if (cieb < 255.0) + c2 = (int)cieb; + else + c2 = 255; + } + else + { + /* + * Scale the L value and bias the a and b values by 128 so that all + * numbers are from 0 to 65535. + */ + + ciel = ciel * 655.35 + 0.5; + ciea = (ciea + 128.0) * 256.0 + 0.5; + cieb = (cieb + 128.0) * 256.0 + 0.5; + + /* + * Output 16-bit values... + */ + + if (ciel <= 0.0) + c0 = 0; + else if (ciel < 65535.0) + c0 = (int)ciel; + else + c0 = 65535; + + if (ciea <= 0.0) + c1 = 0; + else if (ciea < 65535.0) + c1 = (int)ciea; + else + c1 = 65535; + + if (cieb <= 0.0) + c2 = 0; + else if (cieb < 65535.0) + c2 = (int)cieb; + else + c2 = 65535; + } + } + + out[0] = cups->DecodeLUT[c0]; + out[1] = cups->DecodeLUT[c1]; + out[2] = cups->DecodeLUT[c2]; + break; +# endif /* CUPS_RASTER_HAVE_COLORIMETRIC */ + } + +#ifdef CUPS_DEBUG2 + switch (cups->color_info.num_components) + { + default : + case 1 : + dprintf1("DEBUG2: \\=== COLOR %d\n", out[0]); + break; + + case 3 : + dprintf3("DEBUG2: \\=== COLOR %d, %d, %d\n", + out[0], out[1], out[2]); + break; + + case 4 : + dprintf4("DEBUG2: \\=== COLOR %d, %d, %d, %d\n", + out[0], out[1], out[2], out[3]); + break; + } +#endif /* CUPS_DEBUG2 */ +} + + +/* + * 'cups_map_gray()' - Map a grayscale value to device colors. + */ + +private void +cups_map_gray(gx_device *pdev, /* I - Device info */ + frac g, /* I - Grayscale value */ + frac *out) /* O - Device colors */ +{ +#ifdef CUPS_DEBUG22 + dprintf3("DEBUG2: cups_map_gray(%p, %d, %p)\n", + pdev, g, out); +#endif /* CUPS_DEBUG22 */ + + /* + * Just use the CMYK mapper... + */ + + cups_map_cmyk(pdev, 0, 0, 0, frac_1 - g, out); +} + + +/* + * 'cups_map_rgb()' - Map a RGB color value to device colors. + */ + +private void +cups_map_rgb(gx_device *pdev, + /* I - Device info */ + const gs_imager_state *pis,/* I - Device state */ + frac r, /* I - Red value */ + frac g, /* I - Green value */ + frac b, /* I - Blue value */ + frac *out)/* O - Device colors */ +{ + frac c, m, y, k; /* CMYK values */ + frac mk; /* Maximum K value */ + int tc, tm, ty; /* Temporary color values */ + + +#ifdef CUPS_DEBUG2 + dprintf6("DEBUG2: cups_map_rgb(%p, %p, %d, %d, %d, %p)\n", + pdev, pis, r, g, b, out); +#endif /* CUPS_DEBUG2 */ + + /* + * Compute CMYK values... + */ + + c = frac_1 - r; + m = frac_1 - g; + y = frac_1 - b; + k = min(c, min(m, y)); + + if ((mk = max(c, max(m, y))) > k) + k = (int)((float)k * (float)k * (float)k / ((float)mk * (float)mk)); + + c -= k; + m -= k; + y -= k; + + /* + * Do color correction as needed... + */ + + if (cups->HaveProfile) + { + /* + * Color correct CMY... + */ + + tc = cups->Matrix[0][0][c] + + cups->Matrix[0][1][m] + + cups->Matrix[0][2][y]; + tm = cups->Matrix[1][0][c] + + cups->Matrix[1][1][m] + + cups->Matrix[1][2][y]; + ty = cups->Matrix[2][0][c] + + cups->Matrix[2][1][m] + + cups->Matrix[2][2][y]; + + if (tc < 0) + c = 0; + else if (tc > frac_1) + c = frac_1; + else + c = (frac)tc; + + if (tm < 0) + m = 0; + else if (tm > frac_1) + m = frac_1; + else + m = (frac)tm; + + if (ty < 0) + y = 0; + else if (ty > frac_1) + y = frac_1; + else + y = (frac)ty; + } + + /* + * Use the CMYK mapping function to produce the device colors... + */ + + cups_map_cmyk(pdev, c, m, y, k, out); +} +#else +/* + * 'cups_map_cmyk_color()' - Map a CMYK color to a color index. + * + * This function is only called when a 4 or 6 color colorspace is + * selected for output. CMYK colors are *not* corrected but *are* + * density adjusted. + */ + +private gx_color_index /* O - Color index */ +cups_map_cmyk_color(gx_device *pdev, + /* I - Device info */ + const gx_color_value cv[4])/* I - CMYK color values */ +{ + gx_color_index i; /* Temporary index */ + gx_color_value c, m, y, k; + gx_color_value ic, im, iy, ik; /* Integral CMYK values */ + + c = cv[0]; + m = cv[1]; + y = cv[2]; + k = cv[3]; + +#ifdef CUPS_DEBUG2 + dprintf5("DEBUG2: cups_map_cmyk_color(%p, %d, %d, %d, %d)\n", pdev, + c, m, y, k); +#endif /* CUPS_DEBUG2 */ + + /* + * Setup the color info data as needed... + */ + + if (pdev->color_info.num_components == 0) { + if (cups_set_color_info(pdev) < 0) + return(gx_no_color_index); + } + + /* + * Density correct... + */ + + if (cups->HaveProfile) + { + c = cups->Density[c]; + m = cups->Density[m]; + y = cups->Density[y]; + k = cups->Density[k]; + } + + ic = cups->EncodeLUT[c]; + im = cups->EncodeLUT[m]; + iy = cups->EncodeLUT[y]; + ik = cups->EncodeLUT[k]; + + /* + * Convert the CMYK color to a color index... + */ + + switch (cups->header.cupsColorSpace) + { + default : + switch (cups->header.cupsBitsPerColor) + { + default : + i = (((((ic << 1) | im) << 1) | iy) << 1) | ik; + break; + case 2 : + i = (((((ic << 2) | im) << 2) | iy) << 2) | ik; + break; + case 4 : + i = (((((ic << 4) | im) << 4) | iy) << 4) | ik; + break; + case 8 : + i = (((((ic << 8) | im) << 8) | iy) << 8) | ik; + break; +#ifdef GX_COLOR_INDEX_TYPE + case 16 : + i = (((((ic << 16) | im) << 16) | iy) << 16) | ik; + break; +#endif /* GX_COLOR_INDEX_TYPE */ + } + break; + + case CUPS_CSPACE_YMCK : + case CUPS_CSPACE_GMCK : + case CUPS_CSPACE_GMCS : + switch (cups->header.cupsBitsPerColor) + { + default : + i = (((((iy << 1) | im) << 1) | ic) << 1) | ik; + break; + case 2 : + i = (((((iy << 2) | im) << 2) | ic) << 2) | ik; + break; + case 4 : + i = (((((iy << 4) | im) << 4) | ic) << 4) | ik; + break; + case 8 : + i = (((((iy << 8) | im) << 8) | ic) << 8) | ik; + break; +#ifdef GX_COLOR_INDEX_TYPE + case 16 : + i = (((((iy << 16) | im) << 16) | ic) << 16) | ik; + break; +#endif /* GX_COLOR_INDEX_TYPE */ + } + break; + + case CUPS_CSPACE_KCMYcm : + if (cups->header.cupsBitsPerColor == 1) + { + if (ik) + i = 32; + else + i = 0; + + if (ic && im) + i |= 17; + else if (ic && iy) + i |= 6; + else if (im && iy) + i |= 12; + else if (ic) + i |= 16; + else if (im) + i |= 8; + else if (iy) + i |= 4; + break; + } + + case CUPS_CSPACE_KCMY : + switch (cups->header.cupsBitsPerColor) + { + default : + i = (((((ik << 1) | ic) << 1) | im) << 1) | iy; + break; + case 2 : + i = (((((ik << 2) | ic) << 2) | im) << 2) | iy; + break; + case 4 : + i = (((((ik << 4) | ic) << 4) | im) << 4) | iy; + break; + case 8 : + i = (((((ik << 8) | ic) << 8) | im) << 8) | iy; + break; +#ifdef GX_COLOR_INDEX_TYPE + case 16 : + i = (((((ik << 16) | ic) << 16) | im) << 16) | iy; + break; +#endif /* GX_COLOR_INDEX_TYPE */ + } + break; + } + +#ifdef CUPS_DEBUG2 + dprintf9("DEBUG2: CMYK (%d,%d,%d,%d) -> CMYK %08x (%d,%d,%d,%d)\n", + c, m, y, k, (unsigned)i, ic, im, iy, ik); +#endif /* CUPS_DEBUG2 */ + + /* + * Make sure we don't get a CMYK color of 255, 255, 255, 255... + */ + + if (i == gx_no_color_index) + i --; + + return (i); +} + + +/* + * 'cups_map_color_rgb()' - Map a color index to an RGB color. + */ + +private int +cups_map_color_rgb(gx_device *pdev,/* I - Device info */ + gx_color_index color,/* I - Color index */ + gx_color_value prgb[3]) + /* O - RGB values */ +{ + unsigned char c0, c1, c2, c3; /* Color index components */ + gx_color_value c, m, y, k, divk; /* Colors, Black & divisor */ + + +#ifdef CUPS_DEBUG2 + dprintf3("DEBUG2: cups_map_color_rgb(%p, %d, %p)\n", pdev, + (unsigned)color, prgb); +#endif /* CUPS_DEBUG2 */ + + /* + * Setup the color info data as needed... + */ + + if (pdev->color_info.num_components == 0) { + if (cups_set_color_info(pdev) < 0) + return(gx_no_color_index); + } + +#ifdef CUPS_DEBUG2 + dprintf1("DEBUG2: COLOR %08x = ", (unsigned)color); +#endif /* CUPS_DEBUG2 */ + + /* + * Extract the color components from the color index... + */ + + switch (cups->header.cupsBitsPerColor) + { + default : + c3 = color & 1; + color >>= 1; + c2 = color & 1; + color >>= 1; + c1 = color & 1; + color >>= 1; + c0 = color; + break; + case 2 : + c3 = color & 3; + color >>= 2; + c2 = color & 3; + color >>= 2; + c1 = color & 3; + color >>= 2; + c0 = color; + break; + case 4 : + c3 = color & 15; + color >>= 4; + c2 = color & 15; + color >>= 4; + c1 = color & 15; + color >>= 4; + c0 = color; + break; + case 8 : + c3 = color & 255; + color >>= 8; + c2 = color & 255; + color >>= 8; + c1 = color & 255; + color >>= 8; + c0 = color; + break; +#ifdef GX_COLOR_INDEX_TYPE + case 16 : + c3 = color & 0xffff; + color >>= 16; + c2 = color & 0xffff; + color >>= 16; + c1 = color & 0xffff; + color >>= 16; + c0 = color; + break; +#endif /* GX_COLOR_INDEX_TYPE */ + } + + /* + * Convert the color components to RGB... + */ + + switch (cups->header.cupsColorSpace) + { + case CUPS_CSPACE_K : + case CUPS_CSPACE_WHITE : + case CUPS_CSPACE_GOLD : + case CUPS_CSPACE_SILVER : + prgb[0] = + prgb[1] = + prgb[2] = cups->DecodeLUT[c3]; + break; + + case CUPS_CSPACE_W : + prgb[0] = + prgb[1] = + prgb[2] = cups->DecodeLUT[c3]; + break; + + case CUPS_CSPACE_RGB : + prgb[0] = cups->DecodeLUT[c1]; + prgb[1] = cups->DecodeLUT[c2]; + prgb[2] = cups->DecodeLUT[c3]; + break; + + case CUPS_CSPACE_RGBA : + prgb[0] = cups->DecodeLUT[c0]; + prgb[1] = cups->DecodeLUT[c1]; + prgb[2] = cups->DecodeLUT[c2]; + break; + + case CUPS_CSPACE_CMY : + prgb[0] = cups->DecodeLUT[c1]; + prgb[1] = cups->DecodeLUT[c2]; + prgb[2] = cups->DecodeLUT[c3]; + break; + + case CUPS_CSPACE_YMC : + prgb[0] = cups->DecodeLUT[c3]; + prgb[1] = cups->DecodeLUT[c2]; + prgb[2] = cups->DecodeLUT[c1]; + break; + + case CUPS_CSPACE_KCMY : + case CUPS_CSPACE_KCMYcm : + k = cups->DecodeLUT[c0]; + divk = gx_max_color_value - k; + if (divk == 0) + { + prgb[0] = 0; + prgb[1] = 0; + prgb[2] = 0; + } + else + { + prgb[0] = gx_max_color_value + divk - + gx_max_color_value * c1 / divk; + prgb[1] = gx_max_color_value + divk - + gx_max_color_value * c2 / divk; + prgb[2] = gx_max_color_value + divk - + gx_max_color_value * c3 / divk; + } + break; + + case CUPS_CSPACE_RGBW : + /* + * cups->DecodeLUT actually maps to RGBW, not CMYK... + */ + + if (c3 == 0) { + c = 0; + m = 0; + y = 0; + } else { + c = cups->DecodeLUT[c0]; + m = cups->DecodeLUT[c1]; + y = cups->DecodeLUT[c2]; + } + + if (c > gx_max_color_value) + prgb[0] = gx_max_color_value; + else if (c < 0) + prgb[0] = 0; + else + prgb[0] = c; + + if (m > gx_max_color_value) + prgb[1] = gx_max_color_value; + else if (m < 0) + prgb[1] = 0; + else + prgb[1] = m; + + if (y > gx_max_color_value) + prgb[2] = gx_max_color_value; + else if (y < 0) + prgb[2] = 0; + else + prgb[2] = y; + break; + + case CUPS_CSPACE_CMYK : + k = cups->DecodeLUT[c3]; + divk = gx_max_color_value - k; + if (divk == 0) + { + prgb[0] = 0; + prgb[1] = 0; + prgb[2] = 0; + } + else + { + prgb[0] = gx_max_color_value + divk - + gx_max_color_value * c0 / divk; + prgb[1] = gx_max_color_value + divk - + gx_max_color_value * c1 / divk; + prgb[2] = gx_max_color_value + divk - + gx_max_color_value * c2 / divk; + } + break; + + case CUPS_CSPACE_YMCK : + case CUPS_CSPACE_GMCK : + case CUPS_CSPACE_GMCS : + k = cups->DecodeLUT[c3]; + divk = gx_max_color_value - k; + if (divk == 0) + { + prgb[0] = 0; + prgb[1] = 0; + prgb[2] = 0; + } + else + { + prgb[0] = gx_max_color_value + divk - + gx_max_color_value * c2 / divk; + prgb[1] = gx_max_color_value + divk - + gx_max_color_value * c1 / divk; + prgb[2] = gx_max_color_value + divk - + gx_max_color_value * c0 / divk; + } + break; + +# ifdef CUPS_RASTER_HAVE_COLORIMETRIC + case CUPS_CSPACE_CIEXYZ : + case CUPS_CSPACE_CIELab : + case CUPS_CSPACE_ICC1 : + case CUPS_CSPACE_ICC2 : + case CUPS_CSPACE_ICC3 : + case CUPS_CSPACE_ICC4 : + case CUPS_CSPACE_ICC5 : + case CUPS_CSPACE_ICC6 : + case CUPS_CSPACE_ICC7 : + case CUPS_CSPACE_ICC8 : + case CUPS_CSPACE_ICC9 : + case CUPS_CSPACE_ICCA : + case CUPS_CSPACE_ICCB : + case CUPS_CSPACE_ICCC : + case CUPS_CSPACE_ICCD : + case CUPS_CSPACE_ICCE : + case CUPS_CSPACE_ICCF : + break; +# endif /* CUPS_RASTER_HAVE_COLORIMETRIC */ + } + +#ifdef CUPS_DEBUG2 + dprintf3("DEBUG2: RGB values: %d,%d,%d\n", prgb[0], prgb[1], prgb[2]); +#endif /* CUPS_DEBUG2 */ + + return (0); +} + + +/* + * 'cups_map_rgb_color()' - Map an RGB color to a color index. We map the + * RGB color to the output colorspace & bits (we + * figure out the format when we output a page). + */ + +private gx_color_index /* O - Color index */ +cups_map_rgb_color(gx_device *pdev,/* I - Device info */ + const gx_color_value cv[3])/* I - RGB color values */ +{ + gx_color_index i; /* Temporary index */ + gx_color_value r, g, b; + gx_color_value ic, im, iy, ik; /* Integral CMYK values */ + gx_color_value mk; /* Maximum K value */ + int tc, tm, ty; /* Temporary color values */ + float rr, rg, rb, /* Real RGB colors */ + ciex, ciey, ciez, + /* CIE XYZ colors */ + ciey_yn, /* Normalized luminance */ + ciel, ciea, cieb; + /* CIE Lab colors */ + + r = cv[0]; + g = cv[1]; + b = cv[2]; + +#ifdef CUPS_DEBUG2 + dprintf4("DEBUG2: cups_map_rgb_color(%p, %d, %d, %d)\n", pdev, r, g, b); +#endif /* CUPS_DEBUG2 */ + + /* + * Setup the color info data as needed... + */ + + if (pdev->color_info.num_components == 0) { + if (cups_set_color_info(pdev) < 0) + return(gx_no_color_index); + } + + /* + * Do color correction as needed... + */ + + if (cups->HaveProfile) + { + /* + * Compute CMYK values... + */ + + ic = gx_max_color_value - r; + im = gx_max_color_value - g; + iy = gx_max_color_value - b; + ik = min(ic, min(im, iy)); + + if ((mk = max(ic, max(im, iy))) > ik) + ik = (int)((float)ik * (float)ik * (float)ik / ((float)mk * (float)mk)); + + ic -= ik; + im -= ik; + iy -= ik; + + /* + * Color correct CMY... + */ + + tc = cups->Matrix[0][0][ic] + + cups->Matrix[0][1][im] + + cups->Matrix[0][2][iy] + + ik; + tm = cups->Matrix[1][0][ic] + + cups->Matrix[1][1][im] + + cups->Matrix[1][2][iy] + + ik; + ty = cups->Matrix[2][0][ic] + + cups->Matrix[2][1][im] + + cups->Matrix[2][2][iy] + + ik; + + /* + * Density correct combined CMYK... + */ + + if (tc < 0) + r = gx_max_color_value; + else if (tc > gx_max_color_value) + r = gx_max_color_value - cups->Density[gx_max_color_value]; + else + r = gx_max_color_value - cups->Density[tc]; + + if (tm < 0) + g = gx_max_color_value; + else if (tm > gx_max_color_value) + g = gx_max_color_value - cups->Density[gx_max_color_value]; + else + g = gx_max_color_value - cups->Density[tm]; + + if (ty < 0) + b = gx_max_color_value; + else if (ty > gx_max_color_value) + b = gx_max_color_value - cups->Density[gx_max_color_value]; + else + b = gx_max_color_value - cups->Density[ty]; + } + + /* + * Convert the RGB color to a color index... + */ + + switch (cups->header.cupsColorSpace) + { + case CUPS_CSPACE_W : + i = cups->EncodeLUT[(r * 31 + g * 61 + b * 8) / 100]; + break; + + case CUPS_CSPACE_RGB : + ic = cups->EncodeLUT[r]; + im = cups->EncodeLUT[g]; + iy = cups->EncodeLUT[b]; + + switch (cups->header.cupsBitsPerColor) + { + default : + i = (((ic << 1) | im) << 1) | iy; + break; + case 2 : + i = (((ic << 2) | im) << 2) | iy; + break; + case 4 : + i = (((ic << 4) | im) << 4) | iy; + break; + case 8 : + i = (((ic << 8) | im) << 8) | iy; + break; +#ifdef GX_COLOR_INDEX_TYPE + case 16 : + i = (((ic << 16) | im) << 16) | iy; + break; +#endif /* GX_COLOR_INDEX_TYPE */ + } + break; + + case CUPS_CSPACE_RGBW : + if (!r && !g && !b) + { + /* + * Map black to W... + */ + + switch (cups->header.cupsBitsPerColor) + { + default : + i = 0x00; + break; + case 2 : + i = 0x00; + break; + case 4 : + i = 0x0000; + break; + case 8 : + i = 0x00000000; + break; +#ifdef GX_COLOR_INDEX_TYPE + case 16 : + i = 0x0000000000000000; + break; +#endif /* GX_COLOR_INDEX_TYPE */ + } + break; + } + + case CUPS_CSPACE_RGBA : + ic = cups->EncodeLUT[r]; + im = cups->EncodeLUT[g]; + iy = cups->EncodeLUT[b]; + + switch (cups->header.cupsBitsPerColor) + { + default : + i = (((((ic << 1) | im) << 1) | iy) << 1) | 0x01; + break; + case 2 : + i = (((((ic << 2) | im) << 2) | iy) << 2) | 0x03; + break; + case 4 : + i = (((((ic << 4) | im) << 4) | iy) << 4) | 0x0f; + break; + case 8 : + i = (((((ic << 8) | im) << 8) | iy) << 8) | 0xff; + break; +#ifdef GX_COLOR_INDEX_TYPE + case 16 : + i = (((((ic << 16) | im) << 16) | iy) << 16) | 0xffff; + break; +#endif /* GX_COLOR_INDEX_TYPE */ + } + break; + + default : + i = cups->EncodeLUT[gx_max_color_value - (r * 31 + g * 61 + b * 8) / 100]; + break; + + case CUPS_CSPACE_CMY : + ic = cups->EncodeLUT[gx_max_color_value - r]; + im = cups->EncodeLUT[gx_max_color_value - g]; + iy = cups->EncodeLUT[gx_max_color_value - b]; + + switch (cups->header.cupsBitsPerColor) + { + default : + i = (((ic << 1) | im) << 1) | iy; + break; + case 2 : + i = (((ic << 2) | im) << 2) | iy; + break; + case 4 : + i = (((ic << 4) | im) << 4) | iy; + break; + case 8 : + i = (((ic << 8) | im) << 8) | iy; + break; +#ifdef GX_COLOR_INDEX_TYPE + case 16 : + i = (((ic << 16) | im) << 16) | iy; + break; +#endif /* GX_COLOR_INDEX_TYPE */ + } + break; + + case CUPS_CSPACE_YMC : + ic = cups->EncodeLUT[gx_max_color_value - r]; + im = cups->EncodeLUT[gx_max_color_value - g]; + iy = cups->EncodeLUT[gx_max_color_value - b]; + + switch (cups->header.cupsBitsPerColor) + { + default : + i = (((iy << 1) | im) << 1) | ic; + break; + case 2 : + i = (((iy << 2) | im) << 2) | ic; + break; + case 4 : + i = (((iy << 4) | im) << 4) | ic; + break; + case 8 : + i = (((iy << 8) | im) << 8) | ic; + break; + } + break; + + case CUPS_CSPACE_CMYK : + ic = gx_max_color_value - r; + im = gx_max_color_value - g; + iy = gx_max_color_value - b; + ik = min(ic, min(im, iy)); + + if ((mk = max(ic, max(im, iy))) > ik) + ik = (int)((float)ik * (float)ik * (float)ik / + ((float)mk * (float)mk)); + + ic = cups->EncodeLUT[ic - ik]; + im = cups->EncodeLUT[im - ik]; + iy = cups->EncodeLUT[iy - ik]; + ik = cups->EncodeLUT[ik]; + + switch (cups->header.cupsBitsPerColor) + { + default : + i = (((((ic << 1) | im) << 1) | iy) << 1) | ik; + break; + case 2 : + i = (((((ic << 2) | im) << 2) | iy) << 2) | ik; + break; + case 4 : + i = (((((ic << 4) | im) << 4) | iy) << 4) | ik; + break; + case 8 : + i = (((((ic << 8) | im) << 8) | iy) << 8) | ik; + break; +#ifdef GX_COLOR_INDEX_TYPE + case 16 : + i = (((((ic << 16) | im) << 16) | iy) << 16) | ik; + break; +#endif /* GX_COLOR_INDEX_TYPE */ + } + +#ifdef CUPS_DEBUG2 + dprintf8("DEBUG2: CMY (%d,%d,%d) -> CMYK %08x (%d,%d,%d,%d)\n", + r, g, b, (unsigned)i, ic, im, iy, ik); +#endif /* CUPS_DEBUG2 */ + break; + + case CUPS_CSPACE_YMCK : + case CUPS_CSPACE_GMCK : + case CUPS_CSPACE_GMCS : + ic = gx_max_color_value - r; + im = gx_max_color_value - g; + iy = gx_max_color_value - b; + ik = min(ic, min(im, iy)); + + if ((mk = max(ic, max(im, iy))) > ik) + ik = (int)((float)ik * (float)ik * (float)ik / + ((float)mk * (float)mk)); + + ic = cups->EncodeLUT[ic - ik]; + im = cups->EncodeLUT[im - ik]; + iy = cups->EncodeLUT[iy - ik]; + ik = cups->EncodeLUT[ik]; + + switch (cups->header.cupsBitsPerColor) + { + default : + i = (((((iy << 1) | im) << 1) | ic) << 1) | ik; + break; + case 2 : + i = (((((iy << 2) | im) << 2) | ic) << 2) | ik; + break; + case 4 : + i = (((((iy << 4) | im) << 4) | ic) << 4) | ik; + break; + case 8 : + i = (((((iy << 8) | im) << 8) | ic) << 8) | ik; + break; +#ifdef GX_COLOR_INDEX_TYPE + case 16 : + i = (((((iy << 16) | im) << 16) | ic) << 16) | ik; + break; +#endif /* GX_COLOR_INDEX_TYPE */ + } + break; + + case CUPS_CSPACE_KCMYcm : + if (cups->header.cupsBitsPerColor == 1) + { + ic = gx_max_color_value - r; + im = gx_max_color_value - g; + iy = gx_max_color_value - b; + ik = min(ic, min(im, iy)); + + if ((mk = max(ic, max(im, iy))) > ik) + ik = (int)((float)ik * (float)ik * (float)ik / + ((float)mk * (float)mk)); + + ic = cups->EncodeLUT[ic - ik]; + im = cups->EncodeLUT[im - ik]; + iy = cups->EncodeLUT[iy - ik]; + ik = cups->EncodeLUT[ik]; + if (ik) + i = 32; + else if (ic && im) + i = 17; + else if (ic && iy) + i = 6; + else if (im && iy) + i = 12; + else if (ic) + i = 16; + else if (im) + i = 8; + else if (iy) + i = 4; + else + i = 0; + break; + } + + case CUPS_CSPACE_KCMY : + ic = gx_max_color_value - r; + im = gx_max_color_value - g; + iy = gx_max_color_value - b; + ik = min(ic, min(im, iy)); + + if ((mk = max(ic, max(im, iy))) > ik) + ik = (int)((float)ik * (float)ik * (float)ik / + ((float)mk * (float)mk)); + + ic = cups->EncodeLUT[ic - ik]; + im = cups->EncodeLUT[im - ik]; + iy = cups->EncodeLUT[iy - ik]; + ik = cups->EncodeLUT[ik]; + + switch (cups->header.cupsBitsPerColor) + { + default : + i = (((((ik << 1) | ic) << 1) | im) << 1) | iy; + break; + case 2 : + i = (((((ik << 2) | ic) << 2) | im) << 2) | iy; + break; + case 4 : + i = (((((ik << 4) | ic) << 4) | im) << 4) | iy; + break; + case 8 : + i = (((((ik << 8) | ic) << 8) | im) << 8) | iy; + break; +#ifdef GX_COLOR_INDEX_TYPE + case 16 : + i = (((((ik << 16) | ic) << 16) | im) << 16) | iy; + break; +#endif /* GX_COLOR_INDEX_TYPE */ + } + break; + +# ifdef CUPS_RASTER_HAVE_COLORIMETRIC + case CUPS_CSPACE_CIEXYZ : + case CUPS_CSPACE_CIELab : + case CUPS_CSPACE_ICC1 : + case CUPS_CSPACE_ICC2 : + case CUPS_CSPACE_ICC3 : + case CUPS_CSPACE_ICC4 : + case CUPS_CSPACE_ICC5 : + case CUPS_CSPACE_ICC6 : + case CUPS_CSPACE_ICC7 : + case CUPS_CSPACE_ICC8 : + case CUPS_CSPACE_ICC9 : + case CUPS_CSPACE_ICCA : + case CUPS_CSPACE_ICCB : + case CUPS_CSPACE_ICCC : + case CUPS_CSPACE_ICCD : + case CUPS_CSPACE_ICCE : + case CUPS_CSPACE_ICCF : + /* + * Convert sRGB to linear RGB... + */ + + rr = pow(((double)r / (double)gx_max_color_value + 0.055) / 1.055, 2.4); + rg = pow(((double)g / (double)gx_max_color_value + 0.055) / 1.055, 2.4); + rb = pow(((double)b / (double)gx_max_color_value + 0.055) / 1.055, 2.4); + + /* + * Convert to CIE XYZ... + */ + + ciex = 0.412453 * rr + 0.357580 * rg + 0.180423 * rb; + ciey = 0.212671 * rr + 0.715160 * rg + 0.072169 * rb; + ciez = 0.019334 * rr + 0.119193 * rg + 0.950227 * rb; + + if (cups->header.cupsColorSpace == CUPS_CSPACE_CIEXYZ) + { + /* + * Convert to an integer XYZ color value... + */ + + if (ciex > 1.1) + ic = 255; + else if (ciex > 0.0) + ic = (int)(ciex / 1.1 * 255.0 + 0.5); + else + ic = 0; + + if (ciey > 1.1) + im = 255; + else if (ciey > 0.0) + im = (int)(ciey / 1.1 * 255.0 + 0.5); + else + im = 0; + + if (ciez > 1.1) + iy = 255; + else if (ciez > 0.0) + iy = (int)(ciez / 1.1 * 255.0 + 0.5); + else + iy = 0; + } + else + { + /* + * Convert CIE XYZ to Lab... + */ + + ciey_yn = ciey / D65_Y; + + if (ciey_yn > 0.008856) + ciel = 116 * cbrt(ciey_yn) - 16; + else + ciel = 903.3 * ciey_yn; + + ciea = 500 * (cups_map_cielab(ciex, D65_X) - + cups_map_cielab(ciey, D65_Y)); + cieb = 200 * (cups_map_cielab(ciey, D65_Y) - + cups_map_cielab(ciez, D65_Z)); + + /* + * Scale the L value and bias the a and b values by 128 + * so that all values are in the range of 0 to 255. + */ + + ciel = ciel * 2.55 + 0.5; + ciea += 128.5; + cieb += 128.5; + + /* + * Convert to 8-bit values... + */ + + if (ciel < 0.0) + ic = 0; + else if (ciel < 255.0) + ic = (int)ciel; + else + ic = 255; + + if (ciea < 0.0) + im = 0; + else if (ciea < 255.0) + im = (int)ciea; + else + im = 255; + + if (cieb < 0.0) + iy = 0; + else if (cieb < 255.0) + iy = (int)cieb; + else + iy = 255; + } + + /* + * Put the final color value together... + */ + + switch (cups->header.cupsBitsPerColor) + { + default : + i = (((ic << 1) | im) << 1) | iy; + break; + case 2 : + i = (((ic << 2) | im) << 2) | iy; + break; + case 4 : + i = (((ic << 4) | im) << 4) | iy; + break; + case 8 : + i = (((ic << 8) | im) << 8) | iy; + break; +#ifdef GX_COLOR_INDEX_TYPE + case 16 : + i = (((((ic << 16) | im) << 16) | iy) << 16) | ik; + break; +#endif /* GX_COLOR_INDEX_TYPE */ + } + break; +# endif /* CUPS_RASTER_HAVE_COLORIMETRIC */ + } + +#ifdef CUPS_DEBUG2 + dprintf4("DEBUG2: RGB %d,%d,%d = %08x\n", r, g, b, (unsigned)i); +#endif /* CUPS_DEBUG2 */ + + return (i); +} +#endif /* dev_t_proc_encode_color */ + + +/* + * 'cups_open()' - Open the output file and initialize things. + */ + +private int /* O - Error status */ +cups_open(gx_device *pdev) /* I - Device info */ +{ + int code; /* Return status */ + +#ifdef CUPS_DEBUG2 + dprintf1("DEBUG2: cups_open(%p)\n", pdev); +#endif /* CUPS_DEBUG2 */ + + dprintf("INFO: Start rendering...\n"); + cups->printer_procs.get_space_params = cups_get_space_params; + + if (cups->page == 0) + { + dprintf("INFO: Processing page 1...\n"); + cups->page = 1; + } + + if ((code = cups_set_color_info(pdev)) < 0) { + return(code); + } + + if ((code = gdev_prn_open(pdev)) != 0) + return (code); + + if (cups->PPD == NULL) + cups->PPD = ppdOpenFile(getenv("PPD")); + + return (0); +} + + +/* + * 'cups_print_pages()' - Send one or more pages to the output file. + */ + +private int /* O - 0 if everything is OK */ +cups_print_pages(gx_device_printer *pdev, + /* I - Device info */ + FILE *fp, /* I - Output file */ + int num_copies) + /* I - Number of copies */ +{ + int code = 0; /* Error code */ + int copy; /* Copy number */ + int srcbytes; /* Byte width of scanline */ + unsigned char *src, /* Scanline data */ + *dst; /* Bitmap data */ + ppd_attr_t *RasterVersion = NULL; /* CUPS Raster version read from PPD + file */ + + (void)fp; /* reference unused file pointer to prevent compiler warning */ + +#ifdef CUPS_DEBUG2 + dprintf3("DEBUG2: cups_print_pages(%p, %p, %d)\n", pdev, fp, + num_copies); +#endif /* CUPS_DEBUG2 */ + + /* + * Figure out the number of bytes per line... + */ + + switch (cups->header.cupsColorOrder) + { + case CUPS_ORDER_CHUNKED : + cups->header.cupsBytesPerLine = (cups->header.cupsBitsPerPixel * + cups->header.cupsWidth + 7) / 8; + break; + + case CUPS_ORDER_BANDED : + if (cups->header.cupsColorSpace == CUPS_CSPACE_KCMYcm && + cups->header.cupsBitsPerColor == 1) + cups->header.cupsBytesPerLine = (cups->header.cupsBitsPerColor * + cups->header.cupsWidth + 7) / 8 * 6; + else + cups->header.cupsBytesPerLine = (cups->header.cupsBitsPerColor * + cups->header.cupsWidth + 7) / 8 * + cups->color_info.num_components; + break; + + case CUPS_ORDER_PLANAR : + cups->header.cupsBytesPerLine = (cups->header.cupsBitsPerColor * + cups->header.cupsWidth + 7) / 8; + break; + } + + /* + * Compute the width of a scanline and allocate input/output buffers... + */ + + srcbytes = gdev_prn_raster(pdev); + +#ifdef CUPS_DEBUG2 + dprintf4("DEBUG2: cupsBitsPerPixel = %d, cupsWidth = %d, cupsBytesPerLine = %d, srcbytes = %d\n", + cups->header.cupsBitsPerPixel, cups->header.cupsWidth, + cups->header.cupsBytesPerLine, srcbytes); +#endif /* CUPS_DEBUG2 */ + + src = (unsigned char *)gs_malloc(pdev->memory->non_gc_memory, srcbytes, 1, "cups_print_pages"); + + if (src == NULL) /* can't allocate input buffer */ + return_error(gs_error_VMerror); + + memset(src, 0, srcbytes); + + /* + * Need an output buffer, too... + */ + + dst = (unsigned char *)gs_malloc(pdev->memory->non_gc_memory, cups->header.cupsBytesPerLine, 2, + "cups_print_pages"); + + if (dst == NULL) /* can't allocate working area */ + return_error(gs_error_VMerror); + + memset(dst, 0, 2 * cups->header.cupsBytesPerLine); + + /* + * See if the stream has been initialized yet... + */ + + if (cups->stream == NULL) + { + RasterVersion = ppdFindAttr(cups->PPD, "cupsRasterVersion", NULL); + if (RasterVersion) { +#ifdef CUPS_DEBUG2 + dprintf1("DEBUG2: cupsRasterVersion = %s\n", RasterVersion->value); +#endif /* CUPS_DEBUG2 */ + cups->cupsRasterVersion = atoi(RasterVersion->value); + if ((cups->cupsRasterVersion != 2) && + (cups->cupsRasterVersion != 3)) { + dprintf1("ERROR: Unsupported CUPS Raster Version: %s", + RasterVersion->value); + return_error(gs_error_unknownerror); + } + } + if ((cups->stream = cupsRasterOpen(fileno(cups->file), + (cups->cupsRasterVersion == 3 ? + CUPS_RASTER_WRITE : + CUPS_RASTER_WRITE_COMPRESSED))) == NULL) + { + perror("ERROR: Unable to open raster stream - "); + return_error(gs_error_ioerror); + } + } + + /* + * Output a page of graphics... + */ + + if (num_copies < 1) + num_copies = 1; + + if (cups->PPD != NULL && !cups->PPD->manual_copies) + { + cups->header.NumCopies = num_copies; + num_copies = 1; + } + +#ifdef CUPS_DEBUG + dprintf3("DEBUG2: cupsWidth = %d, cupsHeight = %d, cupsBytesPerLine = %d\n", + cups->header.cupsWidth, cups->header.cupsHeight, + cups->header.cupsBytesPerLine); +#endif /* CUPS_DEBUG */ + + for (copy = num_copies; copy > 0; copy --) + { + cupsRasterWriteHeader(cups->stream, &(cups->header)); + + if (pdev->color_info.num_components == 1) + code = cups_print_chunked(pdev, src, dst, srcbytes); + else + switch (cups->header.cupsColorOrder) + { + case CUPS_ORDER_CHUNKED : + code = cups_print_chunked(pdev, src, dst, srcbytes); + break; + case CUPS_ORDER_BANDED : + code = cups_print_banded(pdev, src, dst, srcbytes); + break; + case CUPS_ORDER_PLANAR : + code = cups_print_planar(pdev, src, dst, srcbytes); + break; + } + if (code < 0) + break; + } + + /* + * Free temporary storage and return... + */ + + gs_free(pdev->memory->non_gc_memory, (char *)src, srcbytes, 1, "cups_print_pages"); + gs_free(pdev->memory->non_gc_memory, (char *)dst, cups->header.cupsBytesPerLine, 1, "cups_print_pages"); + + if (code < 0) + return (code); + + cups->page ++; + dprintf1("INFO: Processing page %d...\n", cups->page); + + return (0); +} + + +/* + * 'cups_put_params()' - Set pagedevice parameters. + */ + +private int /* O - Error status */ +cups_put_params(gx_device *pdev, /* I - Device info */ + gs_param_list *plist) /* I - Parameter list */ +{ + int i; /* Looping var */ +#ifdef CUPS_RASTER_SYNCv1 + char name[255]; /* Name of attribute */ + float sf; /* cupsBorderlessScalingFactor */ +#endif /* CUPS_RASTER_SYNCv1 */ + float margins[4]; /* Physical margins of print */ + ppd_size_t *size; /* Page size */ + int code; /* Error code */ + int intval; /* Integer value */ + bool boolval; /* Boolean value */ + float floatval; /* Floating point value */ + gs_param_string stringval; /* String value */ + gs_param_float_array arrayval; /* Float array value */ + int margins_set; /* Were the margins set? */ + int size_set; /* Was the size set? */ + int color_set; /* Were the color attrs set? */ + gdev_prn_space_params sp_old; /* Space parameter data */ + int width, /* New width of page */ + height, /* New height of page */ + width_old = 0, /* Previous width of page */ + height_old = 0; /* Previous height of page */ + bool transp_old = 0; /* Previous transparency usage state */ + ppd_attr_t *backside = NULL, + *backsiderequiresflippedmargins = NULL; + float swap; + int xflip = 0, + yflip = 0; + int found = 0; + gs_param_string icc_pro_dummy; + int old_cmps = cups->color_info.num_components; + int old_depth = cups->color_info.depth; + +#ifdef CUPS_DEBUG + dprintf2("DEBUG2: cups_put_params(%p, %p)\n", pdev, plist); +#endif /* CUPS_DEBUG */ + + /* + * Process other options for CUPS... + */ + +#define stringoption(name, sname) \ + if ((code = param_read_string(plist, sname, &stringval)) < 0) \ + { \ + dprintf1("ERROR: Error setting %s...\n", sname); \ + param_signal_error(plist, sname, code); \ + return (code); \ + } \ + else if (code == 0) \ + { \ + strncpy(cups->header.name, (const char *)(stringval.data), \ + stringval.size); \ + cups->header.name[stringval.size] = '\0'; \ + } + +#define intoption(name, sname, type) \ + if ((code = param_read_int(plist, sname, &intval)) < 0) \ + { \ + dprintf1("ERROR: Error setting %s ...\n", sname); \ + param_signal_error(plist, sname, code); \ + return (code); \ + } \ + else if (code == 0) \ + { \ + cups->header.name = (type)intval; \ + } + +#define floatoption(name, sname) \ + if ((code = param_read_float(plist, sname, &floatval)) < 0) \ + { \ + dprintf1("ERROR: Error setting %s ...\n", sname); \ + param_signal_error(plist, sname, code); \ + return (code); \ + } \ + else if (code == 0) \ + { \ + cups->header.name = (float)floatval; \ + } + +#define booloption(name, sname) \ + if ((code = param_read_bool(plist, sname, &boolval)) < 0) \ + { \ + if ((code = param_read_null(plist, sname)) < 0) \ + { \ + dprintf1("ERROR: Error setting %s ...\n", sname); \ + param_signal_error(plist, sname, code); \ + return (code); \ + } \ + if (code == 0) \ + cups->header.name = CUPS_FALSE; \ + } \ + else if (code == 0) \ + { \ + cups->header.name = (cups_bool_t)boolval; \ + } + +#define arrayoption(name, sname, count) \ + if ((code = param_read_float_array(plist, sname, &arrayval)) < 0) \ + { \ + if ((code = param_read_null(plist, sname)) < 0) \ + { \ + dprintf1("ERROR: Error setting %s...\n", sname); \ + param_signal_error(plist, sname, code); \ + return (code); \ + } \ + if (code == 0) \ + { \ + for (i = 0; i < count; i ++) \ + cups->header.name[i] = 0; \ + } \ + } \ + else if (code == 0) \ + { \ + for (i = 0; i < count; i ++) { \ + cups->header.name[i] = (unsigned)(arrayval.data[i]); \ + } \ + } + + sp_old = ((gx_device_printer *)pdev)->space_params; + width_old = pdev->width; + height_old = pdev->height; + transp_old = cups->page_uses_transparency; + size_set = param_read_float_array(plist, ".MediaSize", &arrayval) == 0 || + param_read_float_array(plist, "PageSize", &arrayval) == 0; + margins_set = param_read_float_array(plist, "Margins", &arrayval) == 0; + color_set = param_read_int(plist, "cupsColorSpace", &intval) == 0 || + param_read_int(plist, "cupsBitsPerColor", &intval) == 0; + + if (!cups->user_icc) { + cups->user_icc = param_read_string(plist, "OutputICCProfile", &icc_pro_dummy) == 0; + } + + /* We set the old dimensions to 1 if we have a color depth change, so + that memory reallocation gets forced. This is perhaps not the correct + approach to prevent crashes like in bug 690435. We keep it for the + time being until we decide finally */ + if (color_set) { + width_old = 1; + height_old = 1; + } + /* We also recompute page size and margins if we simply get onto a new + page without necessarily having a page size change in the PostScript + code, as for some printers margins have to be flipped on the back sides of + the sheets (even pages) when printing duplex */ + if (cups->page != cups->lastpage) { + size_set = 1; + cups->lastpage = cups->page; + } + + stringoption(MediaClass, "MediaClass") + stringoption(MediaColor, "MediaColor") + stringoption(MediaType, "MediaType") + stringoption(OutputType, "OutputType") + intoption(AdvanceDistance, "AdvanceDistance", unsigned) + intoption(AdvanceMedia, "AdvanceMedia", cups_adv_t) + booloption(Collate, "Collate") + intoption(CutMedia, "CutMedia", cups_cut_t) + booloption(Duplex, "Duplex") + arrayoption(ImagingBoundingBox, "ImagingBoundingBox", 4) + booloption(InsertSheet, "InsertSheet") + intoption(Jog, "Jog", cups_jog_t) + intoption(LeadingEdge, "LeadingEdge", cups_edge_t) + arrayoption(Margins, "Margins", 2) + booloption(ManualFeed, "ManualFeed") + intoption(MediaPosition, "cupsMediaPosition", unsigned) /* Compatibility */ + intoption(MediaPosition, "MediaPosition", unsigned) + intoption(MediaWeight, "MediaWeight", unsigned) + booloption(MirrorPrint, "MirrorPrint") + booloption(NegativePrint, "NegativePrint") + intoption(Orientation, "Orientation", cups_orient_t) + booloption(OutputFaceUp, "OutputFaceUp") + booloption(Separations, "Separations") + booloption(TraySwitch, "TraySwitch") + booloption(Tumble, "Tumble") + intoption(cupsMediaType, "cupsMediaType", unsigned) + intoption(cupsBitsPerColor, "cupsBitsPerColor", unsigned) + intoption(cupsColorOrder, "cupsColorOrder", cups_order_t) + intoption(cupsColorSpace, "cupsColorSpace", cups_cspace_t) + intoption(cupsCompression, "cupsCompression", unsigned) + intoption(cupsRowCount, "cupsRowCount", unsigned) + intoption(cupsRowFeed, "cupsRowFeed", unsigned) + intoption(cupsRowStep, "cupsRowStep", unsigned) + +#ifdef GX_COLOR_INDEX_TYPE + /* + * Support cupsPreferredBitsPerColor - basically, allows you to + * request 16-bits per color in a backwards-compatible way... + */ + + if (!param_read_int(plist, "cupsPreferredBitsPerColor", &intval)) + if (intval > cups->header.cupsBitsPerColor && intval <= 16) + cups->header.cupsBitsPerColor = intval; +#endif /* GX_COLOR_INDEX_TYPE */ + +#ifdef CUPS_RASTER_SYNCv1 + floatoption(cupsBorderlessScalingFactor, "cupsBorderlessScalingFactor"); + + for (i = 0; i < 16; i ++) + { + sprintf(name, "cupsInteger%d", i); + intoption(cupsInteger[i],strdup(name), unsigned) + } + + for (i = 0; i < 16; i ++) + { + sprintf(name, "cupsReal%d", i); + floatoption(cupsReal[i], strdup(name)) + } + + for (i = 0; i < 16; i ++) + { + sprintf(name, "cupsString%d", i); + stringoption(cupsString[i], strdup(name)) + } + + stringoption(cupsMarkerType, "cupsMarkerType"); + stringoption(cupsRenderingIntent, "cupsRenderingIntent"); + stringoption(cupsPageSizeName, "cupsPageSizeName"); +#endif /* CUPS_RASTER_SYNCv1 */ + + if ((code = param_read_string(plist, "cupsProfile", &stringval)) < 0) + { + param_signal_error(plist, "cupsProfile", code); + return (code); + } + else if (code == 0) + { + if (cups->Profile != NULL) + free(cups->Profile); + + cups->Profile = strdup((char *)stringval.data); + } + + if ((code = cups_set_color_info(pdev)) < 0) { + return(code); + } + + /* + * Then process standard page device options... + */ + + if ((code = gdev_prn_put_params(pdev, plist)) < 0) + return (code); + + /* If cups_set_color_info() changed the color model of the device we want to + * force the raster memory to be recreated/reinitialized + */ + if (cups->color_info.num_components != old_cmps || cups->color_info.depth != old_depth) { + width_old = 0; + height_old = 0; + } + else { + /* pdev->width/height may have been changed by the call to + * gdev_prn_put_params() + */ + width_old = pdev->width; + height_old = pdev->height; + } + /* + * Update margins/sizes as needed... + */ + + if (size_set) + { + /* + * Compute the page margins... + */ + +#ifdef CUPS_DEBUG + dprintf2("DEBUG: Updating PageSize to [%.0f %.0f]...\n", + cups->MediaSize[0], cups->MediaSize[1]); +#endif /* CUPS_DEBUG */ + + memset(margins, 0, sizeof(margins)); + + cups->landscape = 0; + + if (cups->PPD != NULL) + { +#ifdef CUPS_DEBUG + dprintf1("DEBUG2: cups->header.Duplex = %d\n", cups->header.Duplex); + dprintf1("DEBUG2: cups->header.Tumble = %d\n", cups->header.Tumble); + dprintf1("DEBUG2: cups->page = %d\n", cups->page); + dprintf1("DEBUG2: cups->PPD = %p\n", cups->PPD); +#endif /* CUPS_DEBUG */ + + backside = ppdFindAttr(cups->PPD, "cupsBackSide", NULL); + if (backside) { +#ifdef CUPS_DEBUG + dprintf1("DEBUG2: cupsBackSide = %s\n", backside->value); +#endif /* CUPS_DEBUG */ + cups->PPD->flip_duplex = 0; + } +#ifdef CUPS_DEBUG + dprintf1("DEBUG2: cups->PPD->flip_duplex = %d\n", cups->PPD->flip_duplex); +#endif /* CUPS_DEBUG */ + + backsiderequiresflippedmargins = + ppdFindAttr(cups->PPD, "APDuplexRequiresFlippedMargin", NULL); +#ifdef CUPS_DEBUG + if (backsiderequiresflippedmargins) + dprintf1("DEBUG2: APDuplexRequiresFlippedMargin = %s\n", + backsiderequiresflippedmargins->value); +#endif /* CUPS_DEBUG */ + + if (cups->header.Duplex && + (cups->header.Tumble && + (backside && !strcasecmp(backside->value, "Flipped"))) && + !(cups->page & 1)) + { + xflip = 1; + if (backsiderequiresflippedmargins && + !strcasecmp(backsiderequiresflippedmargins->value, "False")) { +#ifdef CUPS_DEBUG + dprintf("DEBUG2: (1) Flip: X=1 Y=0\n"); +#endif /* CUPS_DEBUG */ + yflip = 0; + } else { +#ifdef CUPS_DEBUG + dprintf("DEBUG2: (1) Flip: X=1 Y=1\n"); +#endif /* CUPS_DEBUG */ + yflip = 1; + } + } + else if (cups->header.Duplex && + (!cups->header.Tumble && + (backside && !strcasecmp(backside->value, "Flipped"))) && + !(cups->page & 1)) + { + xflip = 0; + if (backsiderequiresflippedmargins && + !strcasecmp(backsiderequiresflippedmargins->value, "False")) { +#ifdef CUPS_DEBUG + dprintf("DEBUG2: (2) Flip: X=0 Y=1\n"); +#endif /* CUPS_DEBUG */ + yflip = 1; + } else { +#ifdef CUPS_DEBUG + dprintf("DEBUG2: (2) Flip: X=0 Y=0\n"); +#endif /* CUPS_DEBUG */ + yflip = 0; + } + } + else if (cups->header.Duplex && + ((!cups->header.Tumble && + (cups->PPD->flip_duplex || + (backside && !strcasecmp(backside->value, "Rotated")))) || + (cups->header.Tumble && + (backside && !strcasecmp(backside->value, "ManualTumble")))) && + !(cups->page & 1)) + { + xflip = 1; + if (backsiderequiresflippedmargins && + !strcasecmp(backsiderequiresflippedmargins->value, "True")) { +#ifdef CUPS_DEBUG + dprintf("DEBUG2: (3) Flip: X=1 Y=0\n"); +#endif /* CUPS_DEBUG */ + yflip = 0; + } else { +#ifdef CUPS_DEBUG + dprintf("DEBUG2: (3) Flip: X=1 Y=1\n"); +#endif /* CUPS_DEBUG */ + yflip = 1; + } + } + else + { +#ifdef CUPS_DEBUG + dprintf("DEBUG2: (4) Flip: X=0 Y=0\n"); +#endif /* CUPS_DEBUG */ + xflip = 0; + yflip = 0; + } + +#ifdef CUPS_RASTER_SYNCv1 + /* + * Chack whether cupsPageSizeName has a valid value + */ + + if (strlen(cups->header.cupsPageSizeName) != 0) { + found = 0; + for (i = cups->PPD->num_sizes, size = cups->PPD->sizes; + i > 0; + i --, size ++) + if (strcasecmp(cups->header.cupsPageSizeName, size->name) == 0) { + found = 1; + break; + } + if (found == 0) cups->header.cupsPageSizeName[0] = '\0'; + } +#ifdef CUPS_DEBUG + dprintf1("DEBUG2: cups->header.cupsPageSizeName = %s\n", cups->header.cupsPageSizeName); +#endif /* CUPS_DEBUG */ +#endif /* CUPS_RASTER_SYNCv1 */ + + /* + * Find the matching page size... + */ + + for (i = cups->PPD->num_sizes, size = cups->PPD->sizes; + i > 0; + i --, size ++) + { + if (size->length == 0 || size->width == 0) continue; + if (fabs(cups->MediaSize[1] - size->length)/size->length < + (size->length > size->width ? 0.05 : 0.01) && + fabs(cups->MediaSize[0] - size->width)/size->width < + (size->width > size->length ? 0.05 : 0.01) && +#ifdef CUPS_RASTER_SYNCv1 + ((strlen(cups->header.cupsPageSizeName) == 0) || + (strcasecmp(cups->header.cupsPageSizeName, size->name) == 0)) && +#endif + /* We check whether all 4 margins match with the margin info + of the page size in the PPD. Here we check also for swapped + left/right and top/bottom margins as the cups->HWMargins + info can be from the previous page and there the margins + can be swapped due to duplex printing requirements */ + (!margins_set || + (((fabs(cups->HWMargins[0] - size->left) < 1.0 && + fabs(cups->HWMargins[2] - size->width + size->right) < 1.0) || + (fabs(cups->HWMargins[0] - size->width + size->right) < 1.0 && + fabs(cups->HWMargins[2] - size->left) < 1.0)) && + ((fabs(cups->HWMargins[1] - size->bottom) < 1.0 && + fabs(cups->HWMargins[3] - size->length + size->top) < 1.0) || + (fabs(cups->HWMargins[1] - size->length + size->top) < 1.0 && + fabs(cups->HWMargins[3] - size->bottom) < 1.0))))) + break; + } + + if (i > 0) + { + /* + * Standard size... + */ + +#ifdef CUPS_DEBUG + dprintf1("DEBUG: size = %s\n", size->name); +#endif /* CUPS_DEBUG */ + + gx_device_set_media_size(pdev, size->width, size->length); + + cups->landscape = 0; + + margins[0] = size->left / 72.0; + margins[1] = size->bottom / 72.0; + margins[2] = (size->width - size->right) / 72.0; + margins[3] = (size->length - size->top) / 72.0; + if (xflip == 1) + { + swap = margins[0]; margins[0] = margins[2]; margins[2] = swap; + } + if (yflip == 1) + { + swap = margins[1]; margins[1] = margins[3]; margins[3] = swap; + } + } + else + { + /* + * No matching portrait size; look for a matching size in + * landscape orientation... + */ + + for (i = cups->PPD->num_sizes, size = cups->PPD->sizes; + i > 0; + i --, size ++) + { + if (size->length == 0 || size->width == 0) continue; + if (fabs(cups->MediaSize[0] - size->length)/size->length < + (size->length > size->width ? 0.05 : 0.01) && + fabs(cups->MediaSize[1] - size->width)/size->width < + (size->width > size->length ? 0.05 : 0.01) && +#ifdef CUPS_RASTER_SYNCv1 + ((strlen(cups->header.cupsPageSizeName) == 0) || + (strcasecmp(cups->header.cupsPageSizeName, size->name) == 0)) && +#endif + /* We check whether all 4 margins match with the margin info + of the page size in the PPD. Here we check also for swapped + left/right and top/bottom margins as the cups->HWMargins + info can be from the previous page and there the margins + can be swapped due to duplex printing requirements */ + (!margins_set || + (((fabs(cups->HWMargins[1] - size->left) < 1.0 && + fabs(cups->HWMargins[3] - size->width + size->right) < 1.0) || + (fabs(cups->HWMargins[1] - size->width + size->right) < 1.0 && + fabs(cups->HWMargins[3] - size->left) < 1.0)) && + ((fabs(cups->HWMargins[0] - size->bottom) < 1.0 && + fabs(cups->HWMargins[2] - size->length + size->top) < 1.0) || + (fabs(cups->HWMargins[0] - size->length + size->top) < 1.0 && + fabs(cups->HWMargins[2] - size->bottom) < 1.0))))) + break; + } + + if (i > 0) + { + /* + * Standard size in landscape orientation... + */ + +#ifdef CUPS_DEBUG + dprintf1("DEBUG: landscape size = %s\n", size->name); +#endif /* CUPS_DEBUG */ + + gx_device_set_media_size(pdev, size->length, size->width); + + cups->landscape = 1; + + margins[0] = (size->length - size->top) / 72.0; + margins[1] = size->left / 72.0; + margins[2] = size->bottom / 72.0; + margins[3] = (size->width - size->right) / 72.0; + if (xflip == 1) + { + swap = margins[1]; margins[1] = margins[3]; margins[3] = swap; + } + if (yflip == 1) + { + swap = margins[0]; margins[0] = margins[2]; margins[2] = swap; + } + } + else + { + /* + * Custom size... + */ + +#ifdef CUPS_DEBUG + dprintf("DEBUG: size = Custom\n"); +#endif /* CUPS_DEBUG */ + + /* Rotate page if it only fits into the printer's dimensions + when rotated */ + if (((cups->MediaSize[0] > cups->PPD->custom_max[0]) || + (cups->MediaSize[1] > cups->PPD->custom_max[1])) && + ((cups->MediaSize[0] <= cups->PPD->custom_max[1]) && + (cups->MediaSize[1] <= cups->PPD->custom_max[0]))) { + /* Do not rotate */ + cups->landscape = 0; + + for (i = 0; i < 4; i ++) + margins[i] = cups->PPD->custom_margins[i] / 72.0; + if (xflip == 1) + { + swap = margins[0]; margins[0] = margins[2]; margins[2] = swap; + } + if (yflip == 1) + { + swap = margins[1]; margins[1] = margins[3]; margins[3] = swap; + } + } else { + /* Rotate */ + gx_device_set_media_size(pdev, cups->MediaSize[1], + cups->MediaSize[0]); + + cups->landscape = 1; + + margins[0] = cups->PPD->custom_margins[3] / 72.0; + margins[1] = cups->PPD->custom_margins[0] / 72.0; + margins[2] = cups->PPD->custom_margins[1] / 72.0; + margins[3] = cups->PPD->custom_margins[2] / 72.0; + if (xflip == 1) + { + swap = margins[1]; margins[1] = margins[3]; margins[3] = swap; + } + if (yflip == 1) + { + swap = margins[0]; margins[0] = margins[2]; margins[2] = swap; + } + } + } + } + +#ifdef CUPS_DEBUG + dprintf4("DEBUG: margins[] = [ %f %f %f %f ]\n", + margins[0], margins[1], margins[2], margins[3]); +#endif /* CUPS_DEBUG */ + } + + /* + * Set the margins to update the bitmap size... + */ + + gx_device_set_margins(pdev, margins, false); + } + + /* + * Reallocate memory if the size or color depth was changed... + */ + + if (color_set || size_set) + { + /* + * Make sure the page image is the correct size - current Ghostscript + * does not keep track of the margins in the bitmap size... + */ + + if (cups->landscape) + { + width = (pdev->MediaSize[1] - pdev->HWMargins[1] - pdev->HWMargins[3]) * + pdev->HWResolution[0] / 72.0f + 0.499f; + height = (pdev->MediaSize[0] - pdev->HWMargins[0] - pdev->HWMargins[2]) * + pdev->HWResolution[1] / 72.0f + 0.499f; + } + else + { + width = (pdev->MediaSize[0] - pdev->HWMargins[0] - pdev->HWMargins[2]) * + pdev->HWResolution[0] / 72.0f + 0.499f; + height = (pdev->MediaSize[1] - pdev->HWMargins[1] - pdev->HWMargins[3]) * + pdev->HWResolution[1] / 72.0f + 0.499f; + } + +#ifdef CUPS_RASTER_SYNCv1 + if (cups->header.cupsBorderlessScalingFactor > 1.0) + { + width *= cups->header.cupsBorderlessScalingFactor; + height *= cups->header.cupsBorderlessScalingFactor; + } +#endif /* CUPS_RASTER_SYNCv1 */ + + pdev->width = width; + pdev->height = height; + + /* + * Don't reallocate memory unless the device has been opened... + * Also reallocate only if the size has actually changed... + */ + + if (pdev->is_open) + { + + /* + * Device is open and size has changed, so reallocate... + */ + +#ifdef CUPS_DEBUG + dprintf4("DEBUG2: Reallocating memory, [%.0f %.0f] = %dx%d pixels...\n", + pdev->MediaSize[0], pdev->MediaSize[1], width, height); +#endif /* CUPS_DEBUG */ + + if ((code = gdev_prn_maybe_realloc_memory((gx_device_printer *)pdev, + &sp_old, + width_old, height_old, + transp_old)) + < 0) + return (code); +#ifdef CUPS_DEBUG + dprintf4("DEBUG2: Reallocated memory, [%.0f %.0f] = %dx%d pixels...\n", + pdev->MediaSize[0], pdev->MediaSize[1], width, height); +#endif /* CUPS_DEBUG */ + } + else + { + /* + * Device isn't yet open, so just save the new width and height... + */ + +#ifdef CUPS_DEBUG + dprintf4("DEBUG: Setting initial media size, [%.0f %.0f] = %dx%d pixels...\n", + pdev->MediaSize[0], pdev->MediaSize[1], width, height); +#endif /* CUPS_DEBUG */ + + pdev->width = width; + pdev->height = height; + } + } + + /* + * Set CUPS raster header values... + */ + + cups->header.HWResolution[0] = pdev->HWResolution[0]; + cups->header.HWResolution[1] = pdev->HWResolution[1]; + +#ifdef CUPS_RASTER_SYNCv1 + + if (cups->landscape) + { + cups->header.cupsPageSize[0] = pdev->MediaSize[1]; + cups->header.cupsPageSize[1] = pdev->MediaSize[0]; + + cups->header.cupsImagingBBox[0] = pdev->HWMargins[1]; + cups->header.cupsImagingBBox[1] = pdev->HWMargins[2]; + cups->header.cupsImagingBBox[2] = pdev->MediaSize[1] - pdev->HWMargins[3]; + cups->header.cupsImagingBBox[3] = pdev->MediaSize[0] - pdev->HWMargins[0]; + + if ((sf = cups->header.cupsBorderlessScalingFactor) < 1.0) + sf = 1.0; + + cups->header.Margins[0] = pdev->HWMargins[1] * sf; + cups->header.Margins[1] = pdev->HWMargins[2] * sf; + + cups->header.PageSize[0] = pdev->MediaSize[1] * sf; + cups->header.PageSize[1] = pdev->MediaSize[0] * sf; + + cups->header.ImagingBoundingBox[0] = pdev->HWMargins[1] * sf; + cups->header.ImagingBoundingBox[1] = pdev->HWMargins[2] * sf; + cups->header.ImagingBoundingBox[2] = (pdev->MediaSize[1] - + pdev->HWMargins[3]) * sf; + cups->header.ImagingBoundingBox[3] = (pdev->MediaSize[0] - + pdev->HWMargins[0]) * sf; + } + else + { + cups->header.cupsPageSize[0] = pdev->MediaSize[0]; + cups->header.cupsPageSize[1] = pdev->MediaSize[1]; + + cups->header.cupsImagingBBox[0] = pdev->HWMargins[0]; + cups->header.cupsImagingBBox[1] = pdev->HWMargins[1]; + cups->header.cupsImagingBBox[2] = pdev->MediaSize[0] - pdev->HWMargins[2]; + cups->header.cupsImagingBBox[3] = pdev->MediaSize[1] - pdev->HWMargins[3]; + + if ((sf = cups->header.cupsBorderlessScalingFactor) < 1.0) + sf = 1.0; + + cups->header.Margins[0] = pdev->HWMargins[0] * sf; + cups->header.Margins[1] = pdev->HWMargins[1] * sf; + + cups->header.PageSize[0] = pdev->MediaSize[0] * sf; + cups->header.PageSize[1] = pdev->MediaSize[1] * sf; + + cups->header.ImagingBoundingBox[0] = pdev->HWMargins[0] * sf; + cups->header.ImagingBoundingBox[1] = pdev->HWMargins[1] * sf; + cups->header.ImagingBoundingBox[2] = (pdev->MediaSize[0] - + pdev->HWMargins[2]) * sf; + cups->header.ImagingBoundingBox[3] = (pdev->MediaSize[1] - + pdev->HWMargins[3]) * sf; + } + +#else + + if (cups->landscape) + { + cups->header.Margins[0] = pdev->HWMargins[1]; + cups->header.Margins[1] = pdev->HWMargins[2]; + + cups->header.PageSize[0] = pdev->MediaSize[1]; + cups->header.PageSize[1] = pdev->MediaSize[0]; + + cups->header.ImagingBoundingBox[0] = pdev->HWMargins[1]; + cups->header.ImagingBoundingBox[1] = pdev->HWMargins[0]; + cups->header.ImagingBoundingBox[2] = pdev->MediaSize[1] - + pdev->HWMargins[3]; + cups->header.ImagingBoundingBox[3] = pdev->MediaSize[0] - + pdev->HWMargins[2]; + } + else + { + cups->header.Margins[0] = pdev->HWMargins[0]; + cups->header.Margins[1] = pdev->HWMargins[1]; + + cups->header.PageSize[0] = pdev->MediaSize[0]; + cups->header.PageSize[1] = pdev->MediaSize[1]; + + cups->header.ImagingBoundingBox[0] = pdev->HWMargins[0]; + cups->header.ImagingBoundingBox[1] = pdev->HWMargins[3]; + cups->header.ImagingBoundingBox[2] = pdev->MediaSize[0] - + pdev->HWMargins[2]; + cups->header.ImagingBoundingBox[3] = pdev->MediaSize[1] - + pdev->HWMargins[1]; + } + +#endif /* CUPS_RASTER_SYNCv1 */ + cups->header.cupsWidth = cups->width; + cups->header.cupsHeight = cups->height; + +#ifdef CUPS_DEBUG + dprintf1("DEBUG2: ppd = %p\n", cups->PPD); + dprintf2("DEBUG2: PageSize = [ %.3f %.3f ]\n", + pdev->MediaSize[0], pdev->MediaSize[1]); + if (size_set) + dprintf4("DEBUG2: margins = [ %.3f %.3f %.3f %.3f ]\n", + margins[0], margins[1], margins[2], margins[3]); + dprintf2("DEBUG2: HWResolution = [ %.3f %.3f ]\n", + pdev->HWResolution[0], pdev->HWResolution[1]); + dprintf2("DEBUG2: width = %d, height = %d\n", + pdev->width, pdev->height); + dprintf4("DEBUG2: HWMargins = [ %.3f %.3f %.3f %.3f ]\n", + pdev->HWMargins[0], pdev->HWMargins[1], + pdev->HWMargins[2], pdev->HWMargins[3]); +#endif /* CUPS_DEBUG */ + + return (0); +} + +/* + * 'cups_set_color_info()' - Set the color information structure based on + * the required output. + */ + +private int +cups_set_color_info(gx_device *pdev) /* I - Device info */ +{ + int i, j, k; /* Looping vars */ + int max_lut; /* Maximum LUT value */ + float d, g; /* Density and gamma correction */ + float m[3][3]; /* Color correction matrix */ + char resolution[41]; /* Resolution string */ + ppd_profile_t *profile; /* Color profile information */ + int code = 0; + +#ifdef CUPS_DEBUG + dprintf1("DEBUG2: cups_set_color_info(%p)\n", pdev); +#endif /* CUPS_DEBUG */ + +#ifndef GX_COLOR_INDEX_TYPE + if (cups->header.cupsBitsPerColor > 8) + cups->header.cupsBitsPerColor = 8; +#endif /* !GX_COLOR_INDEX_TYPE */ + + switch (cups->header.cupsColorSpace) + { + default : + case CUPS_CSPACE_W : + case CUPS_CSPACE_K : + case CUPS_CSPACE_WHITE : + case CUPS_CSPACE_GOLD : + case CUPS_CSPACE_SILVER : +#ifdef CUPS_RASTER_SYNCv1 + cups->header.cupsNumColors = 1; +#endif /* CUPS_RASTER_SYNCv1 */ + cups->header.cupsBitsPerPixel = cups->header.cupsBitsPerColor; + cups->color_info.depth = cups->header.cupsBitsPerPixel; + cups->color_info.num_components = 1; + cups->color_info.dither_grays = 1L << cups->header.cupsBitsPerColor; + cups->color_info.dither_colors = 1L << cups->header.cupsBitsPerColor; + cups->color_info.max_gray = cups->color_info.dither_grays - 1; + cups->color_info.max_color = cups->color_info.dither_grays - 1; + break; + + case CUPS_CSPACE_CMY : + case CUPS_CSPACE_YMC : + case CUPS_CSPACE_RGB : +#ifdef CUPS_RASTER_SYNCv1 + cups->header.cupsNumColors = 3; +#endif /* CUPS_RASTER_SYNCv1 */ + if (cups->header.cupsColorOrder != CUPS_ORDER_CHUNKED) + cups->header.cupsBitsPerPixel = cups->header.cupsBitsPerColor; + else if (cups->header.cupsBitsPerColor < 8) + cups->header.cupsBitsPerPixel = 4 * cups->header.cupsBitsPerColor; + else + cups->header.cupsBitsPerPixel = 3 * cups->header.cupsBitsPerColor; + + if (cups->header.cupsBitsPerColor < 8) + cups->color_info.depth = 4 * cups->header.cupsBitsPerColor; + else + cups->color_info.depth = 3 * cups->header.cupsBitsPerColor; + + cups->color_info.num_components = 3; + break; + + case CUPS_CSPACE_KCMYcm : + if (cups->header.cupsBitsPerColor == 1) + { +#ifdef CUPS_RASTER_SYNCv1 + cups->header.cupsNumColors = 6; +#endif /* CUPS_RASTER_SYNCv1 */ + cups->header.cupsBitsPerPixel = 8; + cups->color_info.depth = 8; + cups->color_info.num_components = 4; + break; + } + + case CUPS_CSPACE_RGBA : + case CUPS_CSPACE_RGBW : + case CUPS_CSPACE_CMYK : + case CUPS_CSPACE_YMCK : + case CUPS_CSPACE_KCMY : + case CUPS_CSPACE_GMCK : + case CUPS_CSPACE_GMCS : +#ifdef CUPS_RASTER_SYNCv1 + cups->header.cupsNumColors = 4; +#endif /* CUPS_RASTER_SYNCv1 */ + if (cups->header.cupsColorOrder != CUPS_ORDER_CHUNKED) + cups->header.cupsBitsPerPixel = cups->header.cupsBitsPerColor; + else + cups->header.cupsBitsPerPixel = 4 * cups->header.cupsBitsPerColor; + + cups->color_info.depth = 4 * cups->header.cupsBitsPerColor; + cups->color_info.num_components = 4; + break; + +#ifdef CUPS_RASTER_HAVE_COLORIMETRIC + case CUPS_CSPACE_CIEXYZ : + case CUPS_CSPACE_CIELab : + case CUPS_CSPACE_ICC1 : + case CUPS_CSPACE_ICC2 : + case CUPS_CSPACE_ICC3 : + case CUPS_CSPACE_ICC4 : + case CUPS_CSPACE_ICC5 : + case CUPS_CSPACE_ICC6 : + case CUPS_CSPACE_ICC7 : + case CUPS_CSPACE_ICC8 : + case CUPS_CSPACE_ICC9 : + case CUPS_CSPACE_ICCA : + case CUPS_CSPACE_ICCB : + case CUPS_CSPACE_ICCC : + case CUPS_CSPACE_ICCD : + case CUPS_CSPACE_ICCE : + case CUPS_CSPACE_ICCF : + /* + * Colorimetric color spaces currently are implemented as 24-bit + * mapping to XYZ or Lab, which are then converted as needed to + * the final representation... + * + * This code enforces a minimum output depth of 8 bits per + * component... + */ + +#ifdef CUPS_RASTER_SYNCv1 + cups->header.cupsNumColors = 3; +#endif /* CUPS_RASTER_SYNCv1 */ + + if (cups->header.cupsBitsPerColor < 8) + cups->header.cupsBitsPerColor = 8; + + if (cups->header.cupsColorOrder != CUPS_ORDER_CHUNKED) + cups->header.cupsBitsPerPixel = cups->header.cupsBitsPerColor; + else + cups->header.cupsBitsPerPixel = 3 * cups->header.cupsBitsPerColor; + + cups->color_info.depth = 24; + cups->color_info.num_components = 3; + break; +#endif /* CUPS_RASTER_HAVE_COLORIMETRIC */ + } + +#ifdef dev_t_proc_encode_color + switch (cups->header.cupsColorSpace) + { + default : + cups->color_info.gray_index = GX_CINFO_COMP_NO_INDEX; + break; + + case CUPS_CSPACE_W : + case CUPS_CSPACE_WHITE : + case CUPS_CSPACE_K : + case CUPS_CSPACE_GOLD : + case CUPS_CSPACE_SILVER : + case CUPS_CSPACE_KCMYcm : + case CUPS_CSPACE_KCMY : + cups->color_info.gray_index = 0; + break; + + case CUPS_CSPACE_CMYK : + case CUPS_CSPACE_YMCK : + case CUPS_CSPACE_GMCK : + case CUPS_CSPACE_GMCS : + cups->color_info.gray_index = 3; + break; + } + + switch (cups->header.cupsColorSpace) + { + default : + case CUPS_CSPACE_RGBW : + case CUPS_CSPACE_W : + case CUPS_CSPACE_WHITE : + case CUPS_CSPACE_RGB : + case CUPS_CSPACE_RGBA : +# ifdef CUPS_RASTER_HAVE_COLORIMETRIC + case CUPS_CSPACE_CIEXYZ : + case CUPS_CSPACE_CIELab : + case CUPS_CSPACE_ICC1 : + case CUPS_CSPACE_ICC2 : + case CUPS_CSPACE_ICC3 : + case CUPS_CSPACE_ICC4 : + case CUPS_CSPACE_ICC5 : + case CUPS_CSPACE_ICC6 : + case CUPS_CSPACE_ICC7 : + case CUPS_CSPACE_ICC8 : + case CUPS_CSPACE_ICC9 : + case CUPS_CSPACE_ICCA : + case CUPS_CSPACE_ICCB : + case CUPS_CSPACE_ICCC : + case CUPS_CSPACE_ICCD : + case CUPS_CSPACE_ICCE : + case CUPS_CSPACE_ICCF : +# endif /* CUPS_RASTER_HAVE_COLORIMETRIC */ + cups->color_info.polarity = GX_CINFO_POLARITY_ADDITIVE; + break; + + case CUPS_CSPACE_K : + case CUPS_CSPACE_GOLD : + case CUPS_CSPACE_SILVER : + case CUPS_CSPACE_CMY : + case CUPS_CSPACE_YMC : + case CUPS_CSPACE_KCMYcm : + case CUPS_CSPACE_CMYK : + case CUPS_CSPACE_YMCK : + case CUPS_CSPACE_KCMY : + case CUPS_CSPACE_GMCK : + case CUPS_CSPACE_GMCS : + cups->color_info.polarity = GX_CINFO_POLARITY_SUBTRACTIVE; + break; + } + + cups->color_info.separable_and_linear = GX_CINFO_SEP_LIN_NONE; +#endif /* dev_t_proc_encode_color */ + + i = cups->header.cupsBitsPerColor; + max_lut = (1 << i) - 1; + + switch (cups->color_info.num_components) + { + default : + case 1 : + cups->color_info.max_gray = max_lut; + cups->color_info.max_color = 0; + cups->color_info.dither_grays = max_lut + 1; + cups->color_info.dither_colors = 0; + break; + + case 3 : + cups->color_info.max_gray = 0; + cups->color_info.max_color = max_lut; + cups->color_info.dither_grays = 0; + cups->color_info.dither_colors = max_lut + 1; + break; + + case 4 : + cups->color_info.max_gray = max_lut; + cups->color_info.max_color = max_lut; + cups->color_info.dither_grays = max_lut + 1; + cups->color_info.dither_colors = max_lut + 1; + break; + } + + /* + * Enable/disable CMYK color support... + */ + +#ifdef dev_t_proc_encode_color + cups->color_info.max_components = cups->color_info.num_components; +#endif /* dev_t_proc_encode_color */ + + /* + * Tell Ghostscript to forget any colors it has cached... + */ + + gx_device_decache_colors(pdev); + + /* + * Compute the lookup tables... + */ + + for (i = 0; i <= gx_max_color_value; i ++) + { + j = (max_lut * i + gx_max_color_value / 2) / gx_max_color_value; + +#if !ARCH_IS_BIG_ENDIAN + if (max_lut > 255) + j = ((j & 255) << 8) | ((j >> 8) & 255); +#endif /* !ARCH_IS_BIG_ENDIAN */ + + cups->EncodeLUT[i] = j; + +#ifdef CUPS_DEBUG + if (i == 0 || cups->EncodeLUT[i] != cups->EncodeLUT[i - 1]) + dprintf2("DEBUG2: cups->EncodeLUT[%d] = %d\n", i, (int)cups->EncodeLUT[i]); +#endif /* CUPS_DEBUG */ + } + +#ifdef CUPS_DEBUG + dprintf1("DEBUG2: cups->EncodeLUT[0] = %d\n", (int)cups->EncodeLUT[0]); + dprintf2("DEBUG2: cups->EncodeLUT[%d] = %d\n", gx_max_color_value, + (int)cups->EncodeLUT[gx_max_color_value]); +#endif /* CUPS_DEBUG */ + + for (i = 0; i < cups->color_info.dither_grays; i ++) + cups->DecodeLUT[i] = gx_max_color_value * i / max_lut; + +#ifdef CUPS_DEBUG + dprintf2("DEBUG: num_components = %d, depth = %d\n", + cups->color_info.num_components, cups->color_info.depth); + dprintf2("DEBUG: cupsColorSpace = %d, cupsColorOrder = %d\n", + cups->header.cupsColorSpace, cups->header.cupsColorOrder); + dprintf2("DEBUG: cupsBitsPerPixel = %d, cupsBitsPerColor = %d\n", + cups->header.cupsBitsPerPixel, cups->header.cupsBitsPerColor); + dprintf2("DEBUG: max_gray = %d, dither_grays = %d\n", + cups->color_info.max_gray, cups->color_info.dither_grays); + dprintf2("DEBUG: max_color = %d, dither_colors = %d\n", + cups->color_info.max_color, cups->color_info.dither_colors); +#endif /* CUPS_DEBUG */ + + /* + * Set the color profile as needed... + */ + + cups->HaveProfile = 0; + +#ifdef dev_t_proc_encode_color + if (cups->Profile) +#else + if (cups->Profile && cups->header.cupsBitsPerColor == 8) +#endif /* dev_t_proc_encode_color */ + { +#ifdef CUPS_DEBUG + dprintf1("DEBUG: Using user-defined profile \"%s\"...\n", cups->Profile); +#endif /* CUPS_DEBUG */ + + if (sscanf(cups->Profile, "%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f", &d, &g, + m[0] + 0, m[0] + 1, m[0] + 2, + m[1] + 0, m[1] + 1, m[1] + 2, + m[2] + 0, m[2] + 1, m[2] + 2) != 11) + dprintf("ERROR: User-defined profile does not contain 11 integers!\n"); + else + { + cups->HaveProfile = 1; + + d *= 0.001f; + g *= 0.001f; + m[0][0] *= 0.001f; + m[0][1] *= 0.001f; + m[0][2] *= 0.001f; + m[1][0] *= 0.001f; + m[1][1] *= 0.001f; + m[1][2] *= 0.001f; + m[2][0] *= 0.001f; + m[2][1] *= 0.001f; + m[2][2] *= 0.001f; + } + } +#ifdef dev_t_proc_encode_color + else if (cups->PPD) +#else + else if (cups->PPD && cups->header.cupsBitsPerColor == 8) +#endif /* dev_t_proc_encode_color */ + { + /* + * Find the appropriate color profile... + */ + + if (pdev->HWResolution[0] != pdev->HWResolution[1]) + sprintf(resolution, "%.0fx%.0fdpi", pdev->HWResolution[0], + pdev->HWResolution[1]); + else + sprintf(resolution, "%.0fdpi", pdev->HWResolution[0]); + + for (i = 0, profile = cups->PPD->profiles; + i < cups->PPD->num_profiles; + i ++, profile ++) + if ((strcmp(profile->resolution, resolution) == 0 || + profile->resolution[0] == '-') && + (strcmp(profile->media_type, cups->header.MediaType) == 0 || + profile->media_type[0] == '-')) + break; + + /* + * If we found a color profile, use it! + */ + + if (i < cups->PPD->num_profiles) + { +#ifdef CUPS_DEBUG + dprintf("DEBUG: Using color profile in PPD file!\n"); +#endif /* CUPS_DEBUG */ + + cups->HaveProfile = 1; + + d = profile->density; + g = profile->gamma; + + memcpy(m, profile->matrix, sizeof(m)); + } + } + + if (cups->HaveProfile) + { + for (i = 0; i < 3; i ++) + for (j = 0; j < 3; j ++) + for (k = 0; k <= CUPS_MAX_VALUE; k ++) + { + cups->Matrix[i][j][k] = (int)((float)k * m[i][j] + 0.5); + +#ifdef CUPS_DEBUG + if ((k & 4095) == 0) + dprintf4("DEBUG2: cups->Matrix[%d][%d][%d] = %d\n", + i, j, k, cups->Matrix[i][j][k]); +#endif /* CUPS_DEBUG */ + } + + + for (k = 0; k <= CUPS_MAX_VALUE; k ++) + { + cups->Density[k] = (int)((float)CUPS_MAX_VALUE * d * + pow((float)k / (float)CUPS_MAX_VALUE, g) + + 0.5); + +#ifdef CUPS_DEBUG + if ((k & 4095) == 0) + dprintf2("DEBUG2: cups->Density[%d] = %d\n", k, cups->Density[k]); +#endif /* CUPS_DEBUG */ + } + } + else + { + for (k = 0; k <= CUPS_MAX_VALUE; k ++) + cups->Density[k] = k; + } + if (!cups->user_icc) { + /* Set up the ICC profile for ghostscript to use based upon the color space. + This is different than the PPD profile above which appears to be some sort + of matrix based TRC profile */ + switch (cups->header.cupsColorSpace) + { + default : + case CUPS_CSPACE_RGBW : + case CUPS_CSPACE_RGB : + case CUPS_CSPACE_RGBA : + case CUPS_CSPACE_CMY : + case CUPS_CSPACE_YMC : +# ifdef CUPS_RASTER_HAVE_COLORIMETRIC + case CUPS_CSPACE_CIELab : + case CUPS_CSPACE_ICC1 : + case CUPS_CSPACE_ICC2 : + case CUPS_CSPACE_ICC3 : + case CUPS_CSPACE_ICC4 : + case CUPS_CSPACE_ICC5 : + case CUPS_CSPACE_ICC6 : + case CUPS_CSPACE_ICC7 : + case CUPS_CSPACE_ICC8 : + case CUPS_CSPACE_ICC9 : + case CUPS_CSPACE_ICCA : + case CUPS_CSPACE_ICCB : + case CUPS_CSPACE_ICCC : + case CUPS_CSPACE_ICCD : + case CUPS_CSPACE_ICCE : + case CUPS_CSPACE_ICCF : +# endif /* CUPS_RASTER_HAVE_COLORIMETRIC */ + if (!pdev->icc_struct || (pdev->icc_struct && + pdev->icc_struct->device_profile[gsDEFAULTPROFILE]->data_cs != gsRGB)) { + + if (pdev->icc_struct) { + rc_decrement(pdev->icc_struct, "cups_set_color_info"); + } + pdev->icc_struct = gsicc_new_device_profile_array(pdev->memory); + + code = gsicc_set_device_profile(pdev, pdev->memory, + (char *)DEFAULT_RGB_ICC, gsDEFAULTPROFILE); + } + break; + + case CUPS_CSPACE_W : + case CUPS_CSPACE_WHITE : + case CUPS_CSPACE_K : + case CUPS_CSPACE_GOLD : + case CUPS_CSPACE_SILVER : + if (!pdev->icc_struct || (pdev->icc_struct && + pdev->icc_struct->device_profile[gsDEFAULTPROFILE]->data_cs != gsGRAY)) { + + if (pdev->icc_struct) { + rc_decrement(pdev->icc_struct, "cups_set_color_info"); + } + pdev->icc_struct = gsicc_new_device_profile_array(pdev->memory); + + code = gsicc_set_device_profile(pdev, pdev->memory->non_gc_memory, + (char *)DEFAULT_GRAY_ICC, gsDEFAULTPROFILE); + } + break; + case CUPS_CSPACE_KCMYcm : +# ifdef CUPS_RASTER_HAVE_COLORIMETRIC + case CUPS_CSPACE_CIEXYZ : +#endif + case CUPS_CSPACE_CMYK : + case CUPS_CSPACE_YMCK : + case CUPS_CSPACE_KCMY : + case CUPS_CSPACE_GMCK : + case CUPS_CSPACE_GMCS : + if (!pdev->icc_struct || (pdev->icc_struct && + pdev->icc_struct->device_profile[gsDEFAULTPROFILE]->data_cs != gsCMYK)) { + + if (pdev->icc_struct) { + rc_decrement(pdev->icc_struct, "cups_set_color_info"); + } + pdev->icc_struct = gsicc_new_device_profile_array(pdev->memory); + + code = gsicc_set_device_profile(pdev, pdev->memory, + (char *)DEFAULT_CMYK_ICC, gsDEFAULTPROFILE); + } + break; + } + } + return(code); +} + +/* + * 'cups_sync_output()' - Keep the user informed of our status... + */ + +private int /* O - Error status */ +cups_sync_output(gx_device *pdev) /* I - Device info */ +{ + dprintf1("INFO: Processing page %d...\n", cups->page); + + return (0); +} + + +/* + * 'cups_print_chunked()' - Print a page of chunked pixels. + */ + +static int +cups_print_chunked(gx_device_printer *pdev, + /* I - Printer device */ + unsigned char *src, + /* I - Scanline buffer */ + unsigned char *dst, + /* I - Bitmap buffer */ + int srcbytes) + /* I - Number of bytes in src */ +{ + int y; /* Looping var */ + unsigned char *srcptr, /* Pointer to data */ + *dstptr; /* Pointer to bits */ + int count; /* Count for loop */ + int xflip, /* Flip scanline? */ + yflip, /* Reverse scanline order? */ + ystart, yend, ystep; /* Loop control for scanline order */ + ppd_attr_t *backside = NULL; + +#ifdef CUPS_DEBUG + dprintf1("DEBUG2: cups->header.Duplex = %d\n", cups->header.Duplex); + dprintf1("DEBUG2: cups->header.Tumble = %d\n", cups->header.Tumble); + dprintf1("DEBUG2: cups->page = %d\n", cups->page); + dprintf1("DEBUG2: cups->PPD = %p\n", cups->PPD); +#endif /* CUPS_DEBUG */ + + if (cups->PPD) { + backside = ppdFindAttr(cups->PPD, "cupsBackSide", NULL); + if (backside) { +#ifdef CUPS_DEBUG + dprintf1("DEBUG2: cupsBackSide = %s\n", backside->value); +#endif /* CUPS_DEBUG */ + cups->PPD->flip_duplex = 0; + } + } + if (cups->header.Duplex && cups->PPD && + ((!cups->header.Tumble && + (cups->PPD->flip_duplex || + (backside && !strcasecmp(backside->value, "Rotated")))) || + (cups->header.Tumble && + (backside && (!strcasecmp(backside->value, "Flipped") || + !strcasecmp(backside->value, "ManualTumble"))))) && + !(cups->page & 1)) + xflip = 1; + else + xflip = 0; + if (cups->header.Duplex && cups->PPD && + ((!cups->header.Tumble && + (cups->PPD->flip_duplex || + (backside && (!strcasecmp(backside->value, "Flipped") || + !strcasecmp(backside->value, "Rotated"))))) || + (cups->header.Tumble && + (backside && !strcasecmp(backside->value, "ManualTumble")))) && + !(cups->page & 1)) { + yflip = 1; + ystart = cups->height - 1; + yend = -1; + ystep = -1; + } else { + yflip = 0; + ystart = 0; + yend = cups->height; + ystep = 1; + } + +#ifdef CUPS_DEBUG + dprintf3("DEBUG: cups_print_chunked: xflip = %d, yflip = %d, height = %d\n", + xflip, yflip, cups->height); +#endif /* CUPS_DEBUG */ + + /* + * Loop through the page bitmap and write chunked pixels, reversing as + * needed... + */ + for (y = ystart; y != yend; y += ystep) + { + /* + * Grab the scanline data... + */ + + if (gdev_prn_get_bits((gx_device_printer *)pdev, y, src, &srcptr) < 0) + { + dprintf1("ERROR: Unable to get scanline %d!\n", y); + return_error(gs_error_unknownerror); + } + + if (xflip) + { + /* + * Flip the raster data before writing it... + */ + + if (srcptr[0] == 0 && memcmp(srcptr, srcptr + 1, srcbytes - 1) == 0) + memset(dst, 0, cups->header.cupsBytesPerLine); + else + { + dstptr = dst; + count = srcbytes; + + switch (cups->color_info.depth) + { + case 1 : /* B&W bitmap */ + for (srcptr += srcbytes - 1; + count > 0; + count --, srcptr --, dstptr ++) + { + *dstptr = cups->RevUpper1[*srcptr & 15] | + cups->RevLower1[*srcptr >> 4]; + } + break; + + case 2 : /* 2-bit W/K image */ + for (srcptr += srcbytes - 1; + count > 0; + count --, srcptr --, dstptr ++) + { + *dstptr = cups->RevUpper2[*srcptr & 15] | + cups->RevLower2[*srcptr >> 4]; + } + break; + + case 4 : /* 1-bit RGB/CMY/CMYK bitmap or 4-bit W/K image */ + for (srcptr += srcbytes - 1; + count > 0; + count --, srcptr --, dstptr ++) + *dstptr = (*srcptr >> 4) | (*srcptr << 4); + break; + + case 8 : /* 2-bit RGB/CMY/CMYK or 8-bit W/K image */ + for (srcptr += srcbytes - 1; + count > 0; + count --, srcptr --, dstptr ++) + *dstptr = *srcptr; + break; + + case 16 : /* 4-bit RGB/CMY/CMYK or 16-bit W/K image */ + for (srcptr += srcbytes - 2; + count > 0; + count -= 2, srcptr -= 2, dstptr += 2) + { + dstptr[0] = srcptr[0]; + dstptr[1] = srcptr[1]; + } + break; + + case 24 : /* 8-bit RGB or CMY image */ + for (srcptr += srcbytes - 3; + count > 0; + count -= 3, srcptr -= 3, dstptr += 3) + { + dstptr[0] = srcptr[0]; + dstptr[1] = srcptr[1]; + dstptr[2] = srcptr[2]; + } + break; + + case 32 : /* 8-bit CMYK image */ + for (srcptr += srcbytes - 4; + count > 0; + count -= 4, srcptr -= 4, dstptr += 4) + { + dstptr[0] = srcptr[0]; + dstptr[1] = srcptr[1]; + dstptr[2] = srcptr[2]; + dstptr[3] = srcptr[3]; + } + break; + + case 48 : /* 16-bit RGB or CMY image */ + for (srcptr += srcbytes - 6; + count > 0; + count -= 6, srcptr -= 6, dstptr += 6) + { + dstptr[0] = srcptr[0]; + dstptr[1] = srcptr[1]; + dstptr[2] = srcptr[2]; + dstptr[3] = srcptr[3]; + dstptr[4] = srcptr[4]; + dstptr[5] = srcptr[5]; + } + break; + + case 64 : /* 16-bit CMYK image */ + for (srcptr += srcbytes - 8; + count > 0; + count -= 8, srcptr -= 8, dstptr += 8) + { + dstptr[0] = srcptr[0]; + dstptr[1] = srcptr[1]; + dstptr[2] = srcptr[2]; + dstptr[3] = srcptr[3]; + dstptr[4] = srcptr[4]; + dstptr[5] = srcptr[5]; + dstptr[6] = srcptr[6]; + dstptr[7] = srcptr[7]; + } + break; + } + } + + /* + * Write the bitmap data to the raster stream... + */ + + cupsRasterWritePixels(cups->stream, dst, cups->header.cupsBytesPerLine); + } + else + { + /* + * Write the scanline data to the raster stream... + */ + + cupsRasterWritePixels(cups->stream, srcptr, cups->header.cupsBytesPerLine); + } + } + return (0); +} + + +/* + * 'cups_print_banded()' - Print a page of banded pixels. + */ + +static int +cups_print_banded(gx_device_printer *pdev, + /* I - Printer device */ + unsigned char *src, + /* I - Scanline buffer */ + unsigned char *dst, + /* I - Bitmap buffer */ + int srcbytes) + /* I - Number of bytes in src */ +{ + int x; /* Looping var */ + int y; /* Looping var */ + int bandbytes; /* Bytes per band */ + unsigned char bit; /* Current bit */ + unsigned char temp; /* Temporary variable */ + unsigned char *srcptr; /* Pointer to data */ + unsigned char *cptr, *mptr, *yptr, /* Pointer to components */ + *kptr, *lcptr, *lmptr; /* ... */ + int xflip, /* Flip scanline? */ + yflip, /* Reverse scanline order? */ + ystart, yend, ystep; /* Loop control for scanline order */ + ppd_attr_t *backside = NULL; + +#ifdef CUPS_DEBUG + dprintf1("DEBUG2: cups->header.Duplex = %d\n", cups->header.Duplex); + dprintf1("DEBUG2: cups->header.Tumble = %d\n", cups->header.Tumble); + dprintf1("DEBUG2: cups->page = %d\n", cups->page); + dprintf1("DEBUG2: cups->PPD = %p\n", cups->PPD); +#endif /* CUPS_DEBUG */ + + if (cups->PPD) { + backside = ppdFindAttr(cups->PPD, "cupsBackSide", NULL); + if (backside) { +#ifdef CUPS_DEBUG + dprintf1("DEBUG2: cupsBackSide = %s\n", backside->value); +#endif /* CUPS_DEBUG */ + cups->PPD->flip_duplex = 0; + } + } + if (cups->header.Duplex && cups->PPD && + ((!cups->header.Tumble && + (cups->PPD->flip_duplex || + (backside && !strcasecmp(backside->value, "Rotated")))) || + (cups->header.Tumble && + (backside && (!strcasecmp(backside->value, "Flipped") || + !strcasecmp(backside->value, "ManualTumble"))))) && + !(cups->page & 1)) + xflip = 1; + else + xflip = 0; + if (cups->header.Duplex && cups->PPD && + ((!cups->header.Tumble && + (cups->PPD->flip_duplex || + (backside && (!strcasecmp(backside->value, "Flipped") || + !strcasecmp(backside->value, "Rotated"))))) || + (cups->header.Tumble && + (backside && !strcasecmp(backside->value, "ManualTumble")))) && + !(cups->page & 1)) { + yflip = 1; + ystart = cups->height - 1; + yend = -1; + ystep = -1; + } else { + yflip = 0; + ystart = 0; + yend = cups->height; + ystep = 1; + } + +#ifdef CUPS_DEBUG + dprintf3("DEBUG: cups_print_chunked: xflip = %d, yflip = %d, height = %d\n", + xflip, yflip, cups->height); +#endif /* CUPS_DEBUG */ + + /* + * Loop through the page bitmap and write banded pixels... We have + * to separate each chunked color as needed... + */ + +#ifdef CUPS_RASTER_SYNCv1 + bandbytes = cups->header.cupsBytesPerLine / cups->header.cupsNumColors; +#else + if (cups->header.cupsColorSpace == CUPS_CSPACE_KCMYcm && + cups->header.cupsBitsPerColor == 1) + bandbytes = cups->header.cupsBytesPerLine / 6; + else + bandbytes = cups->header.cupsBytesPerLine / cups->color_info.num_components; +#endif /* CUPS_RASTER_SYNCv1 */ + + for (y = ystart; y != yend; y += ystep) + { + /* + * Grab the scanline data... + */ + + if (gdev_prn_get_bits((gx_device_printer *)pdev, y, src, &srcptr) < 0) + { + dprintf1("ERROR: Unable to get scanline %d!\n", y); + return_error(gs_error_unknownerror); + } + + /* + * Separate the chunked colors into their components... + */ + + if (srcptr[0] == 0 && memcmp(srcptr, srcptr + 1, srcbytes - 1) == 0) + memset(dst, 0, cups->header.cupsBytesPerLine); + else + { + if (xflip) + cptr = dst + bandbytes - 1; + else + cptr = dst; + + mptr = cptr + bandbytes; + yptr = mptr + bandbytes; + kptr = yptr + bandbytes; + lcptr = kptr + bandbytes; + lmptr = lcptr + bandbytes; + + switch (cups->header.cupsBitsPerColor) + { + default : + memset(dst, 0, cups->header.cupsBytesPerLine); + + switch (cups->header.cupsColorSpace) + { + default : + for (x = cups->width, bit = xflip ? 1 << (x & 7) : 128; + x > 0; + x --, srcptr ++) + { + if (*srcptr & 0x40) + *cptr |= bit; + if (*srcptr & 0x20) + *mptr |= bit; + if (*srcptr & 0x10) + *yptr |= bit; + + if (xflip) + { + if (bit < 128) + bit <<= 1; + else + { + cptr --; + mptr --; + yptr --; + bit = 1; + } + } + else + bit >>= 1; + + x --; + if (x == 0) + break; + + if (*srcptr & 0x4) + *cptr |= bit; + if (*srcptr & 0x2) + *mptr |= bit; + if (*srcptr & 0x1) + *yptr |= bit; + + if (xflip) + { + if (bit < 128) + bit <<= 1; + else + { + cptr --; + mptr --; + yptr --; + bit = 1; + } + } + else if (bit > 1) + bit >>= 1; + else + { + cptr ++; + mptr ++; + yptr ++; + bit = 128; + } + } + break; + case CUPS_CSPACE_GMCK : + case CUPS_CSPACE_GMCS : + case CUPS_CSPACE_RGBA : + case CUPS_CSPACE_RGBW : + case CUPS_CSPACE_CMYK : + case CUPS_CSPACE_YMCK : + case CUPS_CSPACE_KCMY : + for (x = cups->width, bit = xflip ? 1 << (x & 7) : 128; + x > 0; + x --, srcptr ++) + { + if (*srcptr & 0x80) + *cptr |= bit; + if (*srcptr & 0x40) + *mptr |= bit; + if (*srcptr & 0x20) + *yptr |= bit; + if (*srcptr & 0x10) + *kptr |= bit; + + if (xflip) + { + if (bit < 128) + bit <<= 1; + else + { + cptr --; + mptr --; + yptr --; + kptr --; + bit = 1; + } + } + else + bit >>= 1; + + x --; + if (x == 0) + break; + + if (*srcptr & 0x8) + *cptr |= bit; + if (*srcptr & 0x4) + *mptr |= bit; + if (*srcptr & 0x2) + *yptr |= bit; + if (*srcptr & 0x1) + *kptr |= bit; + + if (xflip) + { + if (bit < 128) + bit <<= 1; + else + { + cptr --; + mptr --; + yptr --; + kptr --; + bit = 1; + } + } + else if (bit > 1) + bit >>= 1; + else + { + cptr ++; + mptr ++; + yptr ++; + kptr ++; + bit = 128; + } + } + break; + case CUPS_CSPACE_KCMYcm : + for (x = cups->width, bit = xflip ? 1 << (x & 7) : 128; + x > 0; + x --, srcptr ++) + { + /* + * Note: Because of the way the pointers are setup, + * the following code is correct even though + * the names don't match... + */ + + if (*srcptr & 0x20) + *cptr |= bit; + if (*srcptr & 0x10) + *mptr |= bit; + if (*srcptr & 0x08) + *yptr |= bit; + if (*srcptr & 0x04) + *kptr |= bit; + if (*srcptr & 0x02) + *lcptr |= bit; + if (*srcptr & 0x01) + *lmptr |= bit; + + if (xflip) + { + if (bit < 128) + bit <<= 1; + else + { + cptr --; + mptr --; + yptr --; + kptr --; + lcptr --; + lmptr --; + bit = 1; + } + } + else if (bit > 1) + bit >>= 1; + else + { + cptr ++; + mptr ++; + yptr ++; + kptr ++; + lcptr ++; + lmptr ++; + bit = 128; + } + } + break; + } + break; + + case 2 : + memset(dst, 0, cups->header.cupsBytesPerLine); + + switch (cups->header.cupsColorSpace) + { + default : + for (x = cups->width, bit = xflip ? 3 << (2 * (x & 3)) : 0xc0; + x > 0; + x --, srcptr ++) + switch (bit) + { + case 0xc0 : + if ((temp = *srcptr & 0x30) != 0) + *cptr |= temp << 2; + if ((temp = *srcptr & 0x0c) != 0) + *mptr |= temp << 4; + if ((temp = *srcptr & 0x03) != 0) + *yptr |= temp << 6; + + if (xflip) + { + bit = 0x03; + cptr --; + mptr --; + yptr --; + } + else + bit = 0x30; + break; + case 0x30 : + if ((temp = *srcptr & 0x30) != 0) + *cptr |= temp; + if ((temp = *srcptr & 0x0c) != 0) + *mptr |= temp << 2; + if ((temp = *srcptr & 0x03) != 0) + *yptr |= temp << 4; + + if (xflip) + bit = 0xc0; + else + bit = 0x0c; + break; + case 0x0c : + if ((temp = *srcptr & 0x30) != 0) + *cptr |= temp >> 2; + if ((temp = *srcptr & 0x0c) != 0) + *mptr |= temp; + if ((temp = *srcptr & 0x03) != 0) + *yptr |= temp << 2; + + if (xflip) + bit = 0x30; + else + bit = 0x03; + break; + case 0x03 : + if ((temp = *srcptr & 0x30) != 0) + *cptr |= temp >> 4; + if ((temp = *srcptr & 0x0c) != 0) + *mptr |= temp >> 2; + if ((temp = *srcptr & 0x03) != 0) + *yptr |= temp; + + if (xflip) + bit = 0x0c; + else + { + bit = 0xc0; + cptr ++; + mptr ++; + yptr ++; + } + break; + } + break; + case CUPS_CSPACE_GMCK : + case CUPS_CSPACE_GMCS : + case CUPS_CSPACE_RGBA : + case CUPS_CSPACE_RGBW : + case CUPS_CSPACE_CMYK : + case CUPS_CSPACE_YMCK : + case CUPS_CSPACE_KCMY : + case CUPS_CSPACE_KCMYcm : + for (x = cups->width, bit = xflip ? 3 << (2 * (x & 3)) : 0xc0; + x > 0; + x --, srcptr ++) + switch (bit) + { + case 0xc0 : + if ((temp = *srcptr & 0xc0) != 0) + *cptr |= temp; + if ((temp = *srcptr & 0x30) != 0) + *mptr |= temp << 2; + if ((temp = *srcptr & 0x0c) != 0) + *yptr |= temp << 4; + if ((temp = *srcptr & 0x03) != 0) + *kptr |= temp << 6; + + if (xflip) + { + bit = 0x03; + cptr --; + mptr --; + yptr --; + kptr --; + } + else + bit = 0x30; + break; + case 0x30 : + if ((temp = *srcptr & 0xc0) != 0) + *cptr |= temp >> 2; + if ((temp = *srcptr & 0x30) != 0) + *mptr |= temp; + if ((temp = *srcptr & 0x0c) != 0) + *yptr |= temp << 2; + if ((temp = *srcptr & 0x03) != 0) + *kptr |= temp << 4; + + if (xflip) + bit = 0xc0; + else + bit = 0x0c; + break; + case 0x0c : + if ((temp = *srcptr & 0xc0) != 0) + *cptr |= temp >> 4; + if ((temp = *srcptr & 0x30) != 0) + *mptr |= temp >> 2; + if ((temp = *srcptr & 0x0c) != 0) + *yptr |= temp; + if ((temp = *srcptr & 0x03) != 0) + *kptr |= temp << 2; + + if (xflip) + bit = 0x30; + else + bit = 0x03; + break; + case 0x03 : + if ((temp = *srcptr & 0xc0) != 0) + *cptr |= temp >> 6; + if ((temp = *srcptr & 0x30) != 0) + *mptr |= temp >> 4; + if ((temp = *srcptr & 0x0c) != 0) + *yptr |= temp >> 2; + if ((temp = *srcptr & 0x03) != 0) + *kptr |= temp; + + if (xflip) + bit = 0x0c; + else + { + bit = 0xc0; + cptr ++; + mptr ++; + yptr ++; + kptr ++; + } + break; + } + break; + } + break; + + case 4 : + memset(dst, 0, cups->header.cupsBytesPerLine); + + switch (cups->header.cupsColorSpace) + { + default : + for (x = cups->width, bit = xflip && (x & 1) ? 0xf0 : 0x0f; + x > 0; + x --, srcptr += 2) + switch (bit) + { + case 0xf0 : + if ((temp = srcptr[0] & 0x0f) != 0) + *cptr |= temp << 4; + if ((temp = srcptr[1] & 0xf0) != 0) + *mptr |= temp; + if ((temp = srcptr[1] & 0x0f) != 0) + *yptr |= temp << 4; + + bit = 0x0f; + + if (xflip) + { + cptr --; + mptr --; + yptr --; + } + break; + case 0x0f : + if ((temp = srcptr[0] & 0x0f) != 0) + *cptr |= temp; + if ((temp = srcptr[1] & 0xf0) != 0) + *mptr |= temp >> 4; + if ((temp = srcptr[1] & 0x0f) != 0) + *yptr |= temp; + + bit = 0xf0; + + if (!xflip) + { + cptr ++; + mptr ++; + yptr ++; + } + break; + } + break; + case CUPS_CSPACE_GMCK : + case CUPS_CSPACE_GMCS : + case CUPS_CSPACE_RGBA : + case CUPS_CSPACE_RGBW : + case CUPS_CSPACE_CMYK : + case CUPS_CSPACE_YMCK : + case CUPS_CSPACE_KCMY : + case CUPS_CSPACE_KCMYcm : + for (x = cups->width, bit = xflip && (x & 1) ? 0xf0 : 0x0f; + x > 0; + x --, srcptr += 2) + switch (bit) + { + case 0xf0 : + if ((temp = srcptr[0] & 0xf0) != 0) + *cptr |= temp; + if ((temp = srcptr[0] & 0x0f) != 0) + *mptr |= temp << 4; + if ((temp = srcptr[1] & 0xf0) != 0) + *yptr |= temp; + if ((temp = srcptr[1] & 0x0f) != 0) + *kptr |= temp << 4; + + bit = 0x0f; + + if (xflip) + { + cptr --; + mptr --; + yptr --; + kptr --; + } + break; + case 0x0f : + if ((temp = srcptr[0] & 0xf0) != 0) + *cptr |= temp >> 4; + if ((temp = srcptr[0] & 0x0f) != 0) + *mptr |= temp; + if ((temp = srcptr[1] & 0xf0) != 0) + *yptr |= temp >> 4; + if ((temp = srcptr[1] & 0x0f) != 0) + *kptr |= temp; + + bit = 0xf0; + + if (!xflip) + { + cptr ++; + mptr ++; + yptr ++; + kptr ++; + } + break; + } + break; + } + break; + + case 8 : + switch (cups->header.cupsColorSpace) + { + default : + if (xflip) + for (x = cups->width; x > 0; x --) + { + *cptr-- = *srcptr++; + *mptr-- = *srcptr++; + *yptr-- = *srcptr++; + } + else + for (x = cups->width; x > 0; x --) + { + *cptr++ = *srcptr++; + *mptr++ = *srcptr++; + *yptr++ = *srcptr++; + } + break; + case CUPS_CSPACE_GMCK : + case CUPS_CSPACE_GMCS : + case CUPS_CSPACE_RGBA : + case CUPS_CSPACE_RGBW : + case CUPS_CSPACE_CMYK : + case CUPS_CSPACE_YMCK : + case CUPS_CSPACE_KCMY : + case CUPS_CSPACE_KCMYcm : + if (xflip) + for (x = cups->width; x > 0; x --) + { + *cptr-- = *srcptr++; + *mptr-- = *srcptr++; + *yptr-- = *srcptr++; + *kptr-- = *srcptr++; + } + else + for (x = cups->width; x > 0; x --) + { + *cptr++ = *srcptr++; + *mptr++ = *srcptr++; + *yptr++ = *srcptr++; + *kptr++ = *srcptr++; + } + break; + } + break; + + case 16 : + switch (cups->header.cupsColorSpace) + { + default : + if (xflip) + for (x = cups->width; x > 0; x --, srcptr += 6) + { + *cptr-- = srcptr[1]; + *cptr-- = srcptr[0]; + *mptr-- = srcptr[3]; + *mptr-- = srcptr[2]; + *yptr-- = srcptr[5]; + *yptr-- = srcptr[4]; + } + else + for (x = cups->width; x > 0; x --) + { + *cptr++ = *srcptr++; + *cptr++ = *srcptr++; + *mptr++ = *srcptr++; + *mptr++ = *srcptr++; + *yptr++ = *srcptr++; + *yptr++ = *srcptr++; + } + break; + case CUPS_CSPACE_GMCK : + case CUPS_CSPACE_GMCS : + case CUPS_CSPACE_RGBA : + case CUPS_CSPACE_RGBW : + case CUPS_CSPACE_CMYK : + case CUPS_CSPACE_YMCK : + case CUPS_CSPACE_KCMY : + case CUPS_CSPACE_KCMYcm : + if (xflip) + for (x = cups->width; x > 0; x --, srcptr += 8) + { + *cptr-- = srcptr[1]; + *cptr-- = srcptr[0]; + *mptr-- = srcptr[3]; + *mptr-- = srcptr[2]; + *yptr-- = srcptr[5]; + *yptr-- = srcptr[4]; + *kptr-- = srcptr[7]; + *kptr-- = srcptr[6]; + } + else + for (x = cups->width; x > 0; x --) + { + *cptr++ = *srcptr++; + *cptr++ = *srcptr++; + *mptr++ = *srcptr++; + *mptr++ = *srcptr++; + *yptr++ = *srcptr++; + *yptr++ = *srcptr++; + *kptr++ = *srcptr++; + *kptr++ = *srcptr++; + } + break; + } + break; + } + } + + /* + * Write the bitmap data to the raster stream... + */ + + cupsRasterWritePixels(cups->stream, dst, cups->header.cupsBytesPerLine); + } + return (0); +} + + +/* + * 'cups_print_planar()' - Print a page of planar pixels. + */ + +static int +cups_print_planar(gx_device_printer *pdev, + /* I - Printer device */ + unsigned char *src, + /* I - Scanline buffer */ + unsigned char *dst, + /* I - Bitmap buffer */ + int srcbytes) + /* I - Number of bytes in src */ +{ + int x; /* Looping var */ + int y; /* Looping var */ + int z; /* Looping var */ + unsigned char srcbit; /* Current source bit */ + unsigned char dstbit; /* Current destination bit */ + unsigned char temp; /* Temporary variable */ + unsigned char *srcptr; /* Pointer to data */ + unsigned char *dstptr; /* Pointer to bitmap */ + + + /**** NOTE: Currently planar output doesn't support flipped duplex!!! ****/ + + /* + * Loop through the page bitmap and write planar pixels... We have + * to separate each chunked color as needed... + */ + + for (z = 0; z < pdev->color_info.num_components; z ++) + for (y = 0; y < cups->height; y ++) + { + /* + * Grab the scanline data... + */ + + if (gdev_prn_get_bits((gx_device_printer *)pdev, y, src, &srcptr) < 0) + { + dprintf1("ERROR: Unable to get scanline %d!\n", y); + return_error(gs_error_unknownerror); + } + + /* + * Pull the individual color planes out of the pixels... + */ + + if (srcptr[0] == 0 && memcmp(srcptr, srcptr + 1, srcbytes - 1) == 0) + memset(dst, 0, cups->header.cupsBytesPerLine); + else + switch (cups->header.cupsBitsPerColor) + { + default : + memset(dst, 0, cups->header.cupsBytesPerLine); + + switch (cups->header.cupsColorSpace) + { + default : + for (dstptr = dst, x = cups->width, srcbit = 64 >> z, + dstbit = 128; + x > 0; + x --) + { + if (*srcptr & srcbit) + *dstptr |= dstbit; + + if (srcbit >= 16) + srcbit >>= 4; + else + { + srcbit = 64 >> z; + srcptr ++; + } + + if (dstbit > 1) + dstbit >>= 1; + else + { + dstbit = 128; + dstptr ++; + } + } + break; + case CUPS_CSPACE_GMCK : + case CUPS_CSPACE_GMCS : + case CUPS_CSPACE_RGBA : + case CUPS_CSPACE_RGBW : + case CUPS_CSPACE_CMYK : + case CUPS_CSPACE_YMCK : + case CUPS_CSPACE_KCMY : + for (dstptr = dst, x = cups->width, srcbit = 128 >> z, + dstbit = 128; + x > 0; + x --) + { + if (*srcptr & srcbit) + *dstptr |= dstbit; + + if (srcbit >= 16) + srcbit >>= 4; + else + { + srcbit = 128 >> z; + srcptr ++; + } + + if (dstbit > 1) + dstbit >>= 1; + else + { + dstbit = 128; + dstptr ++; + } + } + break; + case CUPS_CSPACE_KCMYcm : + for (dstptr = dst, x = cups->width, srcbit = 32 >> z, + dstbit = 128; + x > 0; + x --, srcptr ++) + { + if (*srcptr & srcbit) + *dstptr |= dstbit; + + if (dstbit > 1) + dstbit >>= 1; + else + { + dstbit = 128; + dstptr ++; + } + } + break; + } + break; + + case 2 : + memset(dst, 0, cups->header.cupsBytesPerLine); + + switch (cups->header.cupsColorSpace) + { + default : + for (dstptr = dst, x = cups->width, srcbit = 48 >> (z * 2), + dstbit = 0xc0; + x > 0; + x --, srcptr ++) + { + if ((temp = *srcptr & srcbit) != 0) + { + if (srcbit == dstbit) + *dstptr |= temp; + else + { + switch (srcbit) + { + case 0x30 : + temp >>= 4; + break; + case 0x0c : + temp >>= 2; + break; + } + + switch (dstbit) + { + case 0xc0 : + *dstptr |= temp << 6; + break; + case 0x30 : + *dstptr |= temp << 4; + break; + case 0x0c : + *dstptr |= temp << 2; + break; + case 0x03 : + *dstptr |= temp; + break; + } + } + } + + if (dstbit > 0x03) + dstbit >>= 2; + else + { + dstbit = 0xc0; + dstptr ++; + } + } + break; + case CUPS_CSPACE_GMCK : + case CUPS_CSPACE_GMCS : + case CUPS_CSPACE_RGBA : + case CUPS_CSPACE_RGBW : + case CUPS_CSPACE_CMYK : + case CUPS_CSPACE_YMCK : + case CUPS_CSPACE_KCMY : + case CUPS_CSPACE_KCMYcm : + for (dstptr = dst, x = cups->width, srcbit = 192 >> (z * 2), + dstbit = 0xc0; + x > 0; + x --, srcptr ++) + { + if ((temp = *srcptr & srcbit) != 0) + { + if (srcbit == dstbit) + *dstptr |= temp; + else + { + switch (srcbit) + { + case 0xc0 : + temp >>= 6; + break; + case 0x30 : + temp >>= 4; + break; + case 0x0c : + temp >>= 2; + break; + } + + switch (dstbit) + { + case 0xc0 : + *dstptr |= temp << 6; + break; + case 0x30 : + *dstptr |= temp << 4; + break; + case 0x0c : + *dstptr |= temp << 2; + break; + case 0x03 : + *dstptr |= temp; + break; + } + } + } + + if (dstbit > 0x03) + dstbit >>= 2; + else + { + dstbit = 0xc0; + dstptr ++; + } + } + break; + } + break; + + case 4 : + memset(dst, 0, cups->header.cupsBytesPerLine); + + switch (cups->header.cupsColorSpace) + { + default : + if (z > 0) + srcptr ++; + + if (z == 1) + srcbit = 0xf0; + else + srcbit = 0x0f; + + for (dstptr = dst, x = cups->width, dstbit = 0xf0; + x > 0; + x --, srcptr += 2) + { + if ((temp = *srcptr & srcbit) != 0) + { + if (srcbit == dstbit) + *dstptr |= temp; + else + { + if (srcbit == 0xf0) + temp >>= 4; + + if (dstbit == 0xf0) + *dstptr |= temp << 4; + else + *dstptr |= temp; + } + } + + if (dstbit == 0xf0) + dstbit = 0x0f; + else + { + dstbit = 0xf0; + dstptr ++; + } + } + break; + case CUPS_CSPACE_GMCK : + case CUPS_CSPACE_GMCS : + case CUPS_CSPACE_RGBA : + case CUPS_CSPACE_RGBW : + case CUPS_CSPACE_CMYK : + case CUPS_CSPACE_YMCK : + case CUPS_CSPACE_KCMY : + case CUPS_CSPACE_KCMYcm : + if (z > 1) + srcptr ++; + + if (z & 1) + srcbit = 0x0f; + else + srcbit = 0xf0; + + for (dstptr = dst, x = cups->width, dstbit = 0xf0; + x > 0; + x --, srcptr += 2) + { + if ((temp = *srcptr & srcbit) != 0) + { + if (srcbit == dstbit) + *dstptr |= temp; + else + { + if (srcbit == 0xf0) + temp >>= 4; + + if (dstbit == 0xf0) + *dstptr |= temp << 4; + else + *dstptr |= temp; + } + } + + if (dstbit == 0xf0) + dstbit = 0x0f; + else + { + dstbit = 0xf0; + dstptr ++; + } + } + break; + } + break; + + case 8 : + for (srcptr += z, dstptr = dst, x = cups->header.cupsBytesPerLine; + x > 0; + srcptr += pdev->color_info.num_components, x --) + *dstptr++ = *srcptr; + break; + + case 16 : + for (srcptr += 2 * z, dstptr = dst, x = cups->header.cupsBytesPerLine; + x > 0; + srcptr += 2 * pdev->color_info.num_components, x --) + { + *dstptr++ = srcptr[0]; + *dstptr++ = srcptr[1]; + } + break; + } + + /* + * Write the bitmap data to the raster stream... + */ + + cupsRasterWritePixels(cups->stream, dst, cups->header.cupsBytesPerLine); + } + return (0); +} + + +/* + * End of "$Id$". + */ diff -Nru ghostscript-9.05~dfsg~20120125/debian/changelog ghostscript-9.05~dfsg~20120202/debian/changelog --- ghostscript-9.05~dfsg~20120125/debian/changelog 2012-01-25 23:09:30.000000000 +0000 +++ ghostscript-9.05~dfsg~20120202/debian/changelog 2012-02-02 21:17:14.000000000 +0000 @@ -1,3 +1,12 @@ +ghostscript (9.05~dfsg~20120202-0ubuntu1) precise; urgency=low + + * New upstream release + - GIT snapshot from February, 2 2012. + - Ghostscript 9.05rc1 + fix of paper size matching in CUPS Raster + output device (LP: #917148). + + -- Till Kamppeter Thu, 02 Feb 2012 22:16:15 +0100 + ghostscript (9.05~dfsg~20120125-0ubuntu1) precise; urgency=low * New upstream release diff -Nru ghostscript-9.05~dfsg~20120125/doc/API.htm ghostscript-9.05~dfsg~20120202/doc/API.htm --- ghostscript-9.05~dfsg~20120125/doc/API.htm 2012-01-07 20:18:22.000000000 +0000 +++ ghostscript-9.05~dfsg~20120202/doc/API.htm 2012-02-02 20:29:39.000000000 +0000 @@ -801,7 +801,7 @@ San Rafael, CA 94903, U.S.A., +1(415)492-9861, for further information.

-Ghostscript version 9.04, 5 August 2011 +Ghostscript version 9.05, 30 January 2012 diff -Nru ghostscript-9.05~dfsg~20120125/doc/Commprod.htm ghostscript-9.05~dfsg~20120202/doc/Commprod.htm --- ghostscript-9.05~dfsg~20120125/doc/Commprod.htm 2011-09-29 11:01:34.000000000 +0000 +++ ghostscript-9.05~dfsg~20120202/doc/Commprod.htm 2012-02-02 20:29:39.000000000 +0000 @@ -252,7 +252,7 @@ San Rafael, CA 94903, U.S.A., +1(415)492-9861.

-Ghostscript version 9.04, 5 August 2011 +Ghostscript version 9.05, 30 January 2012 diff -Nru ghostscript-9.05~dfsg~20120125/doc/C-style.htm ghostscript-9.05~dfsg~20120202/doc/C-style.htm --- ghostscript-9.05~dfsg~20120125/doc/C-style.htm 2011-09-29 11:01:34.000000000 +0000 +++ ghostscript-9.05~dfsg~20120202/doc/C-style.htm 2012-02-02 20:29:39.000000000 +0000 @@ -1579,7 +1579,7 @@ San Rafael, CA 94903, U.S.A., +1(415)492-9861, for further information.

-Ghostscript version 9.04, 5 August 2011 +Ghostscript version 9.05, 30 January 2012 diff -Nru ghostscript-9.05~dfsg~20120125/doc/Deprecated.htm ghostscript-9.05~dfsg~20120202/doc/Deprecated.htm --- ghostscript-9.05~dfsg~20120125/doc/Deprecated.htm 2011-09-29 11:01:34.000000000 +0000 +++ ghostscript-9.05~dfsg~20120202/doc/Deprecated.htm 2012-02-02 20:29:40.000000000 +0000 @@ -5593,7 +5593,7 @@ San Rafael, CA 94903, U.S.A., +1(415)492-9861, for further information.

-Ghostscript version 9.04, 5 August 2011 +Ghostscript version 9.05, 30 January 2012 diff -Nru ghostscript-9.05~dfsg~20120125/doc/Details8.htm ghostscript-9.05~dfsg~20120202/doc/Details8.htm --- ghostscript-9.05~dfsg~20120125/doc/Details8.htm 2011-09-29 11:01:34.000000000 +0000 +++ ghostscript-9.05~dfsg~20120202/doc/Details8.htm 2012-02-02 20:29:40.000000000 +0000 @@ -104189,7 +104189,7 @@ San Rafael, CA 94903, U.S.A., +1(415)492-9861, for further information.

-Ghostscript version 9.04, 5 August 2011 +Ghostscript version 9.05, 30 January 2012 diff -Nru ghostscript-9.05~dfsg~20120125/doc/Details9.htm ghostscript-9.05~dfsg~20120202/doc/Details9.htm --- ghostscript-9.05~dfsg~20120125/doc/Details9.htm 2011-09-29 11:01:34.000000000 +0000 +++ ghostscript-9.05~dfsg~20120202/doc/Details9.htm 2012-02-02 20:29:40.000000000 +0000 @@ -13043,7 +13043,7 @@ San Rafael, CA 94903, U.S.A., +1(415)492-9861, for further information.

-Ghostscript version 9.04, 5 August 2011 +Ghostscript version 9.05, 30 January 2012 diff -Nru ghostscript-9.05~dfsg~20120125/doc/Develop.htm ghostscript-9.05~dfsg~20120202/doc/Develop.htm --- ghostscript-9.05~dfsg~20120125/doc/Develop.htm 2011-12-09 10:16:21.000000000 +0000 +++ ghostscript-9.05~dfsg~20120202/doc/Develop.htm 2012-02-02 20:29:40.000000000 +0000 @@ -4840,7 +4840,7 @@ San Rafael, CA 94903, U.S.A., +1(415)492-9861, for further information.

-Ghostscript version 9.04, 5 August 2011 +Ghostscript version 9.05, 30 January 2012 diff -Nru ghostscript-9.05~dfsg~20120125/doc/Devices.htm ghostscript-9.05~dfsg~20120202/doc/Devices.htm --- ghostscript-9.05~dfsg~20120125/doc/Devices.htm 2011-11-12 18:29:08.000000000 +0000 +++ ghostscript-9.05~dfsg~20120202/doc/Devices.htm 2012-02-02 20:29:40.000000000 +0000 @@ -1766,7 +1766,7 @@ San Rafael, CA 94903, U.S.A., +1(415)492-9861, for further information.

-Ghostscript version 9.04, 5 August 2011 +Ghostscript version 9.05, 30 January 2012 diff -Nru ghostscript-9.05~dfsg~20120125/doc/DLL.htm ghostscript-9.05~dfsg~20120202/doc/DLL.htm --- ghostscript-9.05~dfsg~20120125/doc/DLL.htm 2011-09-29 11:01:34.000000000 +0000 +++ ghostscript-9.05~dfsg~20120202/doc/DLL.htm 2012-02-02 20:29:40.000000000 +0000 @@ -703,7 +703,7 @@ San Rafael, CA 94903, U.S.A., +1(415)492-9861, for further information.

-Ghostscript version 9.04, 5 August 2011 +Ghostscript version 9.05, 30 January 2012 diff -Nru ghostscript-9.05~dfsg~20120125/doc/Drivers.htm ghostscript-9.05~dfsg~20120202/doc/Drivers.htm --- ghostscript-9.05~dfsg~20120125/doc/Drivers.htm 2011-12-09 10:16:21.000000000 +0000 +++ ghostscript-9.05~dfsg~20120202/doc/Drivers.htm 2012-02-02 20:29:40.000000000 +0000 @@ -3398,7 +3398,7 @@ San Rafael, CA 94903, U.S.A., +1(415)492-9861, for further information.

-Ghostscript version 9.04, 5 August 2011 +Ghostscript version 9.05, 30 January 2012 diff -Nru ghostscript-9.05~dfsg~20120125/doc/Fonts.htm ghostscript-9.05~dfsg~20120202/doc/Fonts.htm --- ghostscript-9.05~dfsg~20120125/doc/Fonts.htm 2011-09-29 11:01:34.000000000 +0000 +++ ghostscript-9.05~dfsg~20120202/doc/Fonts.htm 2012-02-02 20:29:40.000000000 +0000 @@ -775,7 +775,7 @@ San Rafael, CA 94903, U.S.A., +1(415)492-9861, for further information.

-Ghostscript version 9.04, 5 August 2011 +Ghostscript version 9.05, 30 January 2012 diff -Nru ghostscript-9.05~dfsg~20120125/doc/gs-vms.hlp ghostscript-9.05~dfsg~20120202/doc/gs-vms.hlp --- ghostscript-9.05~dfsg~20120125/doc/gs-vms.hlp 2011-09-29 11:01:34.000000000 +0000 +++ ghostscript-9.05~dfsg~20120202/doc/gs-vms.hlp 2012-02-02 20:29:40.000000000 +0000 @@ -1,7 +1,7 @@ 1 gs gs - GPL Ghostscript interpreter/previewer ! $Id$ -! Ghostscript version 9.04, 5 August 2011 +! Ghostscript version 9.05, 30 January 2012 Usage: $ gs [options] [file ...] diff -Nru ghostscript-9.05~dfsg~20120125/doc/Helpers.htm ghostscript-9.05~dfsg~20120202/doc/Helpers.htm --- ghostscript-9.05~dfsg~20120125/doc/Helpers.htm 2011-09-29 11:01:34.000000000 +0000 +++ ghostscript-9.05~dfsg~20120202/doc/Helpers.htm 2012-02-02 20:29:40.000000000 +0000 @@ -301,7 +301,7 @@ San Rafael, CA 94903, U.S.A., +1(415)492-9861.

-Ghostscript version 9.04, 5 August 2011 +Ghostscript version 9.05, 30 January 2012 diff -Nru ghostscript-9.05~dfsg~20120125/doc/History1.htm ghostscript-9.05~dfsg~20120202/doc/History1.htm --- ghostscript-9.05~dfsg~20120125/doc/History1.htm 2011-09-29 11:01:34.000000000 +0000 +++ ghostscript-9.05~dfsg~20120202/doc/History1.htm 2012-02-02 20:29:40.000000000 +0000 @@ -431,7 +431,7 @@ San Rafael, CA 94903, U.S.A., +1(415)492-9861, for further information.

-Ghostscript version 9.04, 5 August 2011 +Ghostscript version 9.05, 30 January 2012 diff -Nru ghostscript-9.05~dfsg~20120125/doc/History2.htm ghostscript-9.05~dfsg~20120202/doc/History2.htm --- ghostscript-9.05~dfsg~20120125/doc/History2.htm 2011-09-29 11:01:34.000000000 +0000 +++ ghostscript-9.05~dfsg~20120202/doc/History2.htm 2012-02-02 20:29:40.000000000 +0000 @@ -5225,7 +5225,7 @@ San Rafael, CA 94903, U.S.A., +1(415)492-9861, for further information.

-Ghostscript version 9.04, 5 August 2011 +Ghostscript version 9.05, 30 January 2012 diff -Nru ghostscript-9.05~dfsg~20120125/doc/History3.htm ghostscript-9.05~dfsg~20120202/doc/History3.htm --- ghostscript-9.05~dfsg~20120125/doc/History3.htm 2011-09-29 11:01:34.000000000 +0000 +++ ghostscript-9.05~dfsg~20120202/doc/History3.htm 2012-02-02 20:29:40.000000000 +0000 @@ -8590,7 +8590,7 @@ San Rafael, CA 94903, U.S.A., +1(415)492-9861, for further information.

-Ghostscript version 9.04, 5 August 2011 +Ghostscript version 9.05, 30 January 2012 diff -Nru ghostscript-9.05~dfsg~20120125/doc/History4.htm ghostscript-9.05~dfsg~20120202/doc/History4.htm --- ghostscript-9.05~dfsg~20120125/doc/History4.htm 2011-09-29 11:01:34.000000000 +0000 +++ ghostscript-9.05~dfsg~20120202/doc/History4.htm 2012-02-02 20:29:40.000000000 +0000 @@ -3974,7 +3974,7 @@ San Rafael, CA 94903, U.S.A., +1(415)492-9861, for further information.

-Ghostscript version 9.04, 5 August 2011 +Ghostscript version 9.05, 30 January 2012 diff -Nru ghostscript-9.05~dfsg~20120125/doc/History5.htm ghostscript-9.05~dfsg~20120202/doc/History5.htm --- ghostscript-9.05~dfsg~20120125/doc/History5.htm 2011-09-29 11:01:34.000000000 +0000 +++ ghostscript-9.05~dfsg~20120202/doc/History5.htm 2012-02-02 20:29:40.000000000 +0000 @@ -13448,7 +13448,7 @@ San Rafael, CA 94903, U.S.A., +1(415)492-9861, for further information.

-Ghostscript version 9.04, 5 August 2011 +Ghostscript version 9.05, 30 January 2012 diff -Nru ghostscript-9.05~dfsg~20120125/doc/History6.htm ghostscript-9.05~dfsg~20120202/doc/History6.htm --- ghostscript-9.05~dfsg~20120125/doc/History6.htm 2011-09-29 11:01:34.000000000 +0000 +++ ghostscript-9.05~dfsg~20120202/doc/History6.htm 2012-02-02 20:29:40.000000000 +0000 @@ -7325,7 +7325,7 @@ San Rafael, CA 94903, U.S.A., +1(415)492-9861, for further information.

-Ghostscript version 9.04, 5 August 2011 +Ghostscript version 9.05, 30 January 2012 diff -Nru ghostscript-9.05~dfsg~20120125/doc/History7.htm ghostscript-9.05~dfsg~20120202/doc/History7.htm --- ghostscript-9.05~dfsg~20120125/doc/History7.htm 2011-09-29 11:01:34.000000000 +0000 +++ ghostscript-9.05~dfsg~20120202/doc/History7.htm 2012-02-02 20:29:40.000000000 +0000 @@ -15714,7 +15714,7 @@ San Rafael, CA 94903, U.S.A., +1(415)492-9861, for further information.

-Ghostscript version 9.04, 5 August 2011 +Ghostscript version 9.05, 30 January 2012 diff -Nru ghostscript-9.05~dfsg~20120125/doc/History8.htm ghostscript-9.05~dfsg~20120202/doc/History8.htm --- ghostscript-9.05~dfsg~20120125/doc/History8.htm 2011-09-29 11:01:34.000000000 +0000 +++ ghostscript-9.05~dfsg~20120202/doc/History8.htm 2012-02-02 20:29:40.000000000 +0000 @@ -62048,7 +62048,7 @@ San Rafael, CA 94903, U.S.A., +1(415)492-9861, for further information.

-Ghostscript version 9.04, 5 August 2011 +Ghostscript version 9.05, 30 January 2012 diff -Nru ghostscript-9.05~dfsg~20120125/doc/History9.htm ghostscript-9.05~dfsg~20120202/doc/History9.htm --- ghostscript-9.05~dfsg~20120125/doc/History9.htm 2011-09-29 11:01:34.000000000 +0000 +++ ghostscript-9.05~dfsg~20120202/doc/History9.htm 2012-02-02 20:29:40.000000000 +0000 @@ -30,6 +30,7 @@

Table of contents

    +
  • Version 9.05 (2012-01-30)
  • Version 9.04 (2011-08-05)
  • Version 9.02 (2011-03-30)
  • Version 9.01 (2011-02-07) @@ -65,6 +66,17251 @@ +

    Version 9.05 (2012-01-30)

    + +

    This is the fifth full release in the stable 9.x series. + +

    Highlights in this release include: +

      +
    • Ghostscript's PDF interpreter is now able to make use of the DroidSansFallback +TrueType font to automatically substitute for missing CIDFonts. Whilst it is +always best to ensure the original CIDFont is available for the best +and most accurate output, the ability to make an automatic substitution will +be valuable for those merely viewing or proofing such files. +

    • +
    • This release includes support for a proofing ICC profile. The command option +is specified using -sProofProfile=filename. With this option, the color output will +emulate what would be obtained had the source file been rendered on a device defined +by the proofing profile. +(See GS9_Color_Management.pdf for details. +

    • +
    • This release includes support for a device link ICC profile. The command option +is specified using -sDeviceLinkProfile=filename. With this option, the device link profile +is added to the end of the link transform from source to destination. In this case, one can +include a command line option like "-sDevice=tiff32nc -sOutputICCProfile=srgb.icc +-sDeviceLinkProfile=linkRGBtoCMYK.icc" and source colors will be mapped through sRGB +and through the device link profile to CMYK values for the device. +(See GS9_Color_Management.pdf for details. +

    • +
    • Ghostscript now supports "unmanaged color transformations" for source DeviceXXX +colors (in other words, they use a simplistic conversion, rather than the ICC profile +based color workflow). This is beneficial in uses where performance takes precedence +over ultimate color fidelity (the command line parameter -dUseFastColor enables this). +

    • +
    • The font set distributed with Ghostscript has been changed to the standard +35 Postscript-compatible fonts distributed by URW. +

    • +
    • Ghostscript now includes a simple ink-coverage device, contributed by +Sebastian Kapfer (inkconv). +

    • +
    • The TIFF, JPEG and PNG output devices now support embedding of the device ICC profile +in the output file. +

    • +
    • Ghostscript now ships modified OpenJPEG sources for JPEG2000 decoding (replacing +JasPer - although JasPer is still included for this release). Performance, reliability +and memory use whilst decoding JPX streams are all improved (in many cases, significantly). +

    • +
    • jbig2dec now has simple halftone region support. +

    • +
    • The ps2write device has had a large number of output quality and stability +improvements. +

    • +
    • The txtwrite output was modified so that it more closely matches the output from +MuPDF, if requested. Note that the algorithms used by the two products are not +identical and may return slightly differing results. +
      (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-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 Brüns ( 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. @@ -295,13 +17541,13 @@

      No other recorded incompatible changes. -

      -2011-08-04 14:40:12 +0100 -
      Chris Liddell
      +

      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
      @@ -330,14 +17576,13 @@

      - -

      -2011-08-04 10:05:13 +0100 -
      Chris Liddell
      +


      +

      2011-08-04 10:05:13 +0100 + +
      Chris Liddell <chris.liddell@artifex.com>
      6fc00870dd9d1e17709b532f425578b229a61544

      - -
      +

      Revise Luratech section of build docs.......
      @@ -358,14 +17603,13 @@

      - -

      -2011-08-03 17:44:55 +0100 -
      Chris Liddell
      +


      +

      2011-08-03 17:44:55 +0100 + +
      Chris Liddell <chris.liddell@artifex.com>
      a26ed9754118ab5a6027346f2e4d0c41077dfc1c

      - -
      +

      Bug 692393: ensure GS realises cups changed the page dimensions.
      @@ -390,14 +17634,13 @@

      - -

      -2011-08-01 16:28:52 +0200 -
      Till Kamppeter
      +


      +

      2011-08-01 16:28:52 +0200 + +
      Till Kamppeter <till.kamppeter@gmail.com>
      e6f2128efc15316a586813ff314bc037b1d36856

      - -
      +

      Fixes on the gstoraster CUPS filter
      @@ -420,14 +17663,13 @@

      - -

      -2011-07-30 17:48:14 +0100 -
      Robin Watts
      +


      +

      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.
      @@ -448,19 +17690,18 @@

      - -

      -2011-08-01 12:18:25 +0100 -
      Robin Watts
      +


      +

      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 + Avoid warnings given on some platforms about "unreachable code" by
      using an informative #define.
      @@ -474,14 +17715,13 @@

      - -

      -2011-08-01 13:05:09 +0200 -
      Till Kamppeter
      +


      +

      2011-08-01 13:05:09 +0200 + +
      Till Kamppeter <till.kamppeter@gmail.com>
      b4c67383d9e71b468b5384b7a63095864d3a9ae7

      - -
      +

      CUPS Raster output device: Ignore RIP_MAX_CACHE environment variable
      @@ -510,7 +17750,7 @@

      - To ignore this RIP_MAX_CACHE we simply add a "return" right at the + 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
      @@ -526,15 +17766,14 @@

      - -

      -2011-07-30 11:56:53 +0200 -
      Till Kamppeter
      +


      +

      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 +

      + Added "-dNOINTERPOLATE" to the Ghostscript command lines of the CUPS filters

      @@ -552,14 +17791,13 @@

      - -

      -2011-07-29 14:01:58 -0700 -
      Michael Vrhel
      +


      +

      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.
      @@ -572,14 +17810,13 @@

      - -

      -2011-07-29 12:18:04 -0700 -
      Michael Vrhel
      +


      +

      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.
      @@ -588,14 +17825,13 @@

      - -

      -2011-07-29 08:14:04 -0700 -
      Michael Vrhel
      +


      +

      2011-07-29 08:14:04 -0700 + +
      Michael Vrhel <michael.vrhel@artifex.com>
      d1d700d4d052e3a9a061e5d6c61e3a4a30e5135d

      - -
      +

      A test for fixing RGBW in gdevcups.c
      @@ -604,14 +17840,13 @@

      - -

      -2011-07-29 10:12:26 +0100 -
      Chris Liddell
      +


      +

      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
      @@ -738,30 +17973,28 @@

      - - -

      -2011-07-29 09:40:34 +0100 -
      Chris Liddell
      +


      +

      2011-07-29 09:40:34 +0100 + +
      Chris Liddell <chris.liddell@artifex.com>
      d248b98753421668ca683d074709a9422267b9ba

      - -
      -Change the expected directory for luratech. +

      + Change the expected directory for luratech.

      -For the build system to automatically include the luratech JPX and JBIG2 + 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 + code, we previously checked for the existence of lwf_jp2 and ldf_jb2
      -directories under the Ghostscript source dir. This changes it to check + directories under the Ghostscript source dir. This changes it to check
      -for /luratech/lwf_jp2 and /luratech/ldf_jb2 instead. + for <gs>/luratech/lwf_jp2 and <gs>/luratech/ldf_jb2 instead.

      -CLUSTER_UNTESTED + CLUSTER_UNTESTED

      @@ -771,23 +18004,22 @@

      - -

      -2011-07-28 22:28:37 -0600 -
      Henry Stiles
      +


      +

      2011-07-28 22:28:37 -0600 + +
      Henry Stiles <henry.stiles@artifex.com>
      ea57ffb4eb8e3c2bd9ae80547cd7ad011631e212

      - -
      -Restore X11 device to the default unix device. +

      + Restore X11 device to the default unix device.

      -In setting up autoconf to detect X11 (9b7298f) the X11 devices were + 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 + not put back at the beginning of the device list and so were no longer
      -the default device. + the default device.

      @@ -795,25 +18027,24 @@

      - -

      -2011-07-28 17:16:35 +0100 -
      Robin Watts
      +


      +

      2011-07-28 17:16:35 +0100 + +
      Robin Watts <Robin.Watts@artifex.com>
      c1cfbc2655dce2a1c3cc73caf0af54a51db61bfe

      - -
      -Changes to lcms v1 to spot failed allocations. +

      + Changes to lcms v1 to spot failed allocations.

      -lcms v1 sometimes forgets to deal with failed allocations. Patch at + lcms v1 sometimes forgets to deal with failed allocations. Patch at
      -least some of these problems. + least some of these problems.

      -Driven by bug 692352. Sufficient to make it run to completion now. + Driven by bug 692352. Sufficient to make it run to completion now.

      @@ -833,27 +18064,26 @@

      - -

      -2011-07-28 17:08:58 +0100 -
      Robin Watts
      +


      +

      2011-07-28 17:08:58 +0100 + +
      Robin Watts <Robin.Watts@artifex.com>
      0f6629c581fb56ca33fb7ec57d757ea96f236887

      - -
      -Check for failure to allocate icclink in shading. +

      + Check for failure to allocate icclink in shading.

      -When calling shade_init_fill_state, check for a return code to indicate + When calling shade_init_fill_state, check for a return code to indicate
      -failure. Trigger this case when an attempt to allocate an icclink + failure. Trigger this case when an attempt to allocate an icclink
      -fails. + fails.

      -No cluster differences expected. + No cluster differences expected.

      @@ -867,19 +18097,18 @@

      - -

      -2011-07-28 15:07:14 +0100 -
      Robin Watts
      +


      +

      2011-07-28 15:07:14 +0100 + +
      Robin Watts <Robin.Watts@artifex.com>
      f31edd69e23236fbae4b986883df8e0f43f15af6

      - -
      -Fix typo in rc_decrement description string. +

      + Fix typo in rc_decrement description string.

      -Simple typo fix. CLUSTER_UNTESTED. + Simple typo fix. CLUSTER_UNTESTED.

      @@ -887,20 +18116,18 @@

      - -

      Changelog

      -

      -2011-07-28 10:21:31 +0100 -
      Chris Liddell
      +


      +

      2011-07-28 10:21:31 +0100 + +
      Chris Liddell <chris.liddell@artifex.com>
      2364173a3ea2ac1e58b53a68e775d98157035b03

      - -
      -Disable the Windows UNICODE/UTF8 code for now. +

      + Disable the Windows UNICODE/UTF8 code for now.

      -CLUSTER_UNTESTED + CLUSTER_UNTESTED

      @@ -908,15 +18135,14 @@

      - -

      -2011-07-27 22:12:41 -0700 -
      Michael Vrhel
      +


      +

      2011-07-27 22:12:41 -0700 + +
      Michael Vrhel <michael.vrhel@artifex.com>
      cf056ad9ccf42b8c31e6c84ed0ee6d30e0fb7455

      - -
      -Update of Use.htm to include new color control options. +

      + Update of Use.htm to include new color control options.

      @@ -924,59 +18150,58 @@

      - -

      -2011-07-27 16:25:19 +0100 -
      Robin Watts
      +


      +

      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. +

      + Fix Bug 692368; SEGV with clist transparency pattern in clist rendering.

      -The invocation/file given in the bug uses banded rendering (clist). + The invocation/file given in the bug uses banded rendering (clist).
      -While drawing a band, it uses a pattern with transparency, that is + While drawing a band, it uses a pattern with transparency, that is
      -itself rendered by a clist (using the new pattern clist code). + itself rendered by a clist (using the new pattern clist code).

      -A fill rectangle is being done that tries to call the pattern clist + A fill rectangle is being done that tries to call the pattern clist
      -tiling code without the fill_trans_buffer having been setup, and + tiling code without the fill_trans_buffer having been setup, and
      -this causes a SEGV. + this causes a SEGV.

      -The reason for this appears to be that the device used by the + 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 + 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, + the pdf14 device. The clipper device does not call gx_forward_fill_path,
      -but instead calls gx_default_fill_path, meaning that the special + but instead calls gx_default_fill_path, meaning that the special
      -pdf14 handling done to setup the fill_trans_buffer isn't done. + 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 + 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. + problem either, as that results in no actual clipping being done.

      -The fix, therefore appears to be to implement a clipping version of + The fix, therefore appears to be to implement a clipping version of
      -fill_path. + fill_path.

      -No cluster differences expected. + No cluster differences expected.

      @@ -988,47 +18213,46 @@

      - -

      -2011-07-27 22:14:10 +0200 -
      Till Kamppeter
      +


      +

      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 +

      + 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 pxlmono and pxlcolor output devices produce PCL XL (PCL 6). With
      -the introduction of color management, the size of the output files + 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 + often got 10 times larger as before and so PCL XL jobs often did not
      -print as they exhausted the memory of the printer. + print as they exhausted the memory of the printer.

      -According to the contributor of this patch, Shailesh Mistry, the PDFs + According to the contributor of this patch, Shailesh Mistry, the PDFs
      -leading to that problem have a DeviceRGB image which is translated + 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 + 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 + it. This patch looks for incoming ICC profiles and resolves it into
      -the base colour which can be handled at this level. + the base colour which can be handled at this level.

      -The patch returns the size of the PCL XL output files to the old + The patch returns the size of the PCL XL output files to the old
      -values from Ghostscript 8.x. + values from Ghostscript 8.x.

      -Fixes bug 692329. + Fixes bug 692329.

      @@ -1036,29 +18260,28 @@

      - -

      -2011-07-27 20:37:20 +0200 -
      Till Kamppeter
      +


      +

      2011-07-27 20:37:20 +0200 + +
      Till Kamppeter <till.kamppeter@gmail.com>
      d6e940a92e47f0110438cf2f9bd6ebffa2f9e211

      - -
      -Fixes on the "pstopxl" CUPS filter +

      + Fixes on the "pstopxl" CUPS filter

      -1. Use POSIX and not Perl regular expressions with sed. This makes the + 1. Use POSIX and not Perl regular expressions with sed. This makes the
      -script working on a wider scope of systems (Bug #692328). + script working on a wider scope of systems (Bug #692328).

      -2. Switch the Ghostscript output device "pxlmono" if the "pxlcolor" is + 2. Switch the Ghostscript output device "pxlmono" if the "pxlcolor" is
      -used but "Gray" chosen as "ColorModel" setting. Monochrome + used but "Gray" chosen as "ColorModel" setting. Monochrome
      -"BitsPerPixel" settings do not work with "pxlcolor". + "BitsPerPixel" settings do not work with "pxlcolor".

      @@ -1066,27 +18289,26 @@

      - -

      -2011-07-27 10:41:14 -0700 -
      Michael Vrhel
      +


      +

      2011-07-27 10:41:14 -0700 + +
      Michael Vrhel <michael.vrhel@artifex.com>
      fead331855bddda90406d220e84fe5a284b2daa9

      - -
      -Fix for Windows Display Device showing gray only +

      + Fix for Windows Display Device showing gray only

      -This returns the use of DeviceGrayToK=true/false to set + This returns the use of DeviceGrayToK=true/false to set
      -if the user wants DeviceGray to map to K only for a + if the user wants DeviceGray to map to K only for a
      -CMYK device. Also, this fixes a problem where high + CMYK device. Also, this fixes a problem where high
      -level gray scale images were always going to composite + level gray scale images were always going to composite
      -an not K only. Bug 692204. + an not K only. Bug 692204.

      @@ -1100,19 +18322,18 @@

      - -

      -2011-07-27 09:14:04 -0700 -
      Michael Vrhel
      +


      +

      2011-07-27 09:14:04 -0700 + +
      Michael Vrhel <michael.vrhel@artifex.com>
      dc18980047abde427405973a6c9452959fb8e93c

      - -
      -Replacement of default gray ICC profile with Artifex generated versions +

      + Replacement of default gray ICC profile with Artifex generated versions

      -I reviewed the bmpcmp results and the relatively few diffs are minor. + I reviewed the bmpcmp results and the relatively few diffs are minor.

      @@ -1122,21 +18343,20 @@

      - -

      -2011-07-26 12:16:04 -0700 -
      Michael Vrhel
      +


      +

      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. +

      + 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 + Reviewed differences from this commit. With bmpcmp -16 the diffs amounted to halftone differences
      -with nothing visible. + with nothing visible.

      @@ -1144,19 +18364,18 @@

      - -

      -2011-07-25 22:42:34 -0700 -
      Michael Vrhel
      +


      +

      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. +

      + 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. + This results in very minor color diffs in a few files. I reviewed the diffs and everything is fine.

      @@ -1166,17 +18385,16 @@

      - -

      -2011-07-25 19:03:42 -0600 -
      Henry Stiles
      +


      +

      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 +

      + Fixes 692360 - the x11cmyk get bits procedure would only work properly
      -with a client supplied data pointer. + with a client supplied data pointer.

      @@ -1184,19 +18402,18 @@

      - -

      -2011-07-25 12:34:59 -0600 -
      Henry Stiles
      +


      +

      2011-07-25 12:34:59 -0600 + +
      Henry Stiles <henry.stiles@artifex.com>
      2ed6a01d99cc63f9953be1e29b9d05643e9ada73

      - -
      -Fixes 689502 - remove obsolete scripts. +

      + Fixes 689502 - remove obsolete scripts.

      -CLUSTER_UNTESTED + CLUSTER_UNTESTED

      @@ -1214,27 +18431,26 @@

      - -

      -2011-07-26 13:15:44 +0100 -
      Chris Liddell
      +


      +

      2011-07-26 13:15:44 +0100 + +
      Chris Liddell <chris.liddell@artifex.com>
      7ec7b1463507ba578e123dc15f4219472a09930f

      - -
      -Bug 691956: make installing the cups tools optional +

      + Bug 691956: make installing the cups tools optional

      -Introduces a --with-cups-install option to configure. To include the + Introduces a --with-cups-install option to configure. To include the
      -cups tools and associated data files in Ghostscript's "install" target + cups tools and associated data files in Ghostscript's "install" target
      -you will have to specify "--with-cups-install" at configure time. + you will have to specify "--with-cups-install" at configure time.

      -No cluster differences. + No cluster differences.

      @@ -1246,27 +18462,26 @@

      - -

      -2011-07-25 16:25:20 +0100 -
      Chris Liddell
      +


      +

      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 +

      + Bug 692367: NULL out pointers for three tables in the context

      -Add "finalize" methods for gs_name_table, io_device_table and + Add "finalize" methods for gs_name_table, io_device_table and
      -font_dir tables which ensure that the pointers in the lib + font_dir tables which ensure that the pointers in the lib
      -context are set to NULL when the memory is released. + context are set to NULL when the memory is released.

      -No cluster differences. + No cluster differences.

      @@ -1282,23 +18497,22 @@

      - -

      -2011-07-25 16:19:19 +0100 -
      Ken Sharp
      +


      +

      2011-07-25 16:19:19 +0100 + +
      Ken Sharp <ken.sharp@artifex.com>
      7dee8c1639a55e5b6ae4051afcfed9caa82e48b5

      - -
      -Remove the last traces of OPDFReadProcsetPath +

      + Remove the last traces of OPDFReadProcsetPath

      -The old Procsets had to be moved from PostScript resources to C files, in order that + 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 + ps2write work with non-PostScript interpreters (XPS, PCL). As a result the
      -old OPDFReadProcsetPath is no longer used and has been removed. + old OPDFReadProcsetPath is no longer used and has been removed.

      @@ -1316,15 +18530,14 @@

      - -

      -2011-07-25 09:05:05 +0100 -
      Ken Sharp
      +


      +

      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. +

      + Add some minimal documentation regarding the txtwrite device to devices.htm.

      @@ -1332,51 +18545,50 @@

      - -

      -2011-07-25 08:44:42 +0100 -
      Ken Sharp
      +


      +

      2011-07-25 08:44:42 +0100 + +
      Ken Sharp <ken.sharp@artifex.com>
      4e6a7b5c6fc0c202ba0d962cd19578162e1ce726

      - -
      -Add functionality to the textwrite device. +

      + Add functionality to the textwrite device.

      -The existing textwrite device was a null device which emitted nothing. This + The existing textwrite device was a null device which emitted nothing. This
      -version actually extracts text from input documents. It uses ToUnicode CMaps, + version actually extracts text from input documents. It uses ToUnicode CMaps,
      -GlyphNames2Unicode tables and glyph names in an attempt to map incoming text into + GlyphNames2Unicode tables and glyph names in an attempt to map incoming text into
      -Unicode (UTF-16) values. + Unicode (UTF-16) values.

      -It currently has one switch 'TextFormat' which has two possible values, 0 or 1. + 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 + -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. + 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 + -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 + 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 + 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 + and the Unicode string representing the text. This is intended for those who
      -would like to manipulate the text into other formats. + would like to manipulate the text into other formats.

      -The Adobe Glyph Names list is now embedded in the executable twice, in two + 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. + incompatible forms. A future enhanvement will be to only embed the list once.

      @@ -1386,23 +18598,22 @@

      - -

      -2011-07-24 16:03:31 -0400 -
      Alex Cherepanov
      +


      +

      2011-07-24 16:03:31 -0400 + +
      Alex Cherepanov <alex.cherepanov@artifex.com>
      128b9fce26e82ef38cedded8fc35a4c99ef55bee

      - -
      -Fix a trivial Valgrind warning. +

      + Fix a trivial Valgrind warning.

      -Reorder a logical expression to prevent the access to an unitialized + Reorder a logical expression to prevent the access to an unitialized
      -value. The only effect of the patch is some noise reduction in the + value. The only effect of the patch is some noise reduction in the
      -Valgrind log. + Valgrind log.

      @@ -1410,33 +18621,32 @@

      - -

      -2011-07-24 16:38:35 +0000 -
      Robin Watts
      +


      +

      2011-07-24 16:38:35 +0000 + +
      Robin Watts <robin@ghostscript.com>
      961a9a98ecff7a30503ee0bd5d2973263114def7

      - -
      -Backout commit 7f5d3d7; 8 bit display device palette change. +

      + Backout commit 7f5d3d7; 8 bit display device palette change.

      -Reverting earlier commit made to attempt to fix bug 692235. While + Reverting earlier commit made to attempt to fix bug 692235. While
      -this change does give the display device a much nicer palette + 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 + 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 + exists to interface to the display device, such as gsview, as the
      -palette is not exported with the data. + palette is not exported with the data.

      -Due to the looming release and the questions remaining to be answered + Due to the looming release and the questions remaining to be answered
      -on the bug, we pull the change for now. + on the bug, we pull the change for now.

      @@ -1452,21 +18662,20 @@

      - -

      -2011-07-20 23:28:19 -0700 -
      Ray Johnston
      +


      +

      2011-07-20 23:28:19 -0700 + +
      Ray Johnston <ray.johnston@artifex.com>
      68bf978d614ec610333abd6a51b88fc3e05689f7

      - -
      -Fix compiler warnings. +

      + Fix compiler warnings.

      -Check return code from "get_profile" dev_proc in gs_nulldevice.c and get rid of the + Check return code from "get_profile" dev_proc in gs_nulldevice.c and get rid of the
      -implicit declaration for gdev_mem_set_planar. + implicit declaration for gdev_mem_set_planar.

      @@ -1476,25 +18685,24 @@

      - -

      -2011-07-22 10:36:36 -0700 -
      Michael Vrhel
      +


      +

      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. +

      + 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 + 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. + that makes use of the true DeviceProfile, use the option -dDeviceGrayToK=false.
      -This commit includes a fix to rename the device member variable + This commit includes a fix to rename the device member variable
      -icc_array to icc_struct to reduce confusion in reading the code. + icc_array to icc_struct to reduce confusion in reading the code.

      @@ -1544,41 +18752,40 @@

      - -

      -2011-07-21 20:42:33 +0100 -
      Robin Watts
      +


      +

      2011-07-21 20:42:33 +0100 + +
      Robin Watts <Robin.Watts@artifex.com>
      7f5d3d7b298bbabc13a484e38e749d572d817bc8

      - -
      -Fix bug 692235: Rendering to 8bit colors shows bad colors. +

      + Fix bug 692235: Rendering to 8bit colors shows bad colors.

      -The display device uses an RGBK space for 8 bit rendering. Currently + 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, + this corresponds to a palette of 96 colors; 2 bits each for R,G,B,
      -supplemented by 16 greys. + supplemented by 16 greys.

      -This review alters it to use a 6x6x6 RGB cube, supplemented by 40 grey + This review alters it to use a 6x6x6 RGB cube, supplemented by 40 grey
      -levels. + levels.

      -In fact, this is slightly wasteful as we repeat the black and white + 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 + representations as color and as greyscale, but it's a huge improvement
      -on what we had before. + on what we had before.

      -No cluster differences expected as we don't test the display device. + No cluster differences expected as we don't test the display device.

      @@ -1594,25 +18801,24 @@

      - -

      -2011-07-22 23:27:18 -0400 -
      Alex Cherepanov
      +


      +

      2011-07-22 23:27:18 -0400 + +
      Alex Cherepanov <alex.cherepanov@artifex.com>
      4c2a089d0378402f374cb9004ac0faa3ff82d3c3

      - -
      -Bug 692361, trap errors produced by --token-- +

      + Bug 692361, trap errors produced by --token--

      -Thap errors thrown by --token--, adjust the stack, and rethrow. + Thap errors thrown by --token--, adjust the stack, and rethrow.
      -Rev. 4c6809dfa1c539d757c30f572922e05cd1436698 made the errors + Rev. 4c6809dfa1c539d757c30f572922e05cd1436698 made the errors
      -that occur during reading of the contents steam recoverable, + that occur during reading of the contents steam recoverable,
      -but missed the case, when the error happens in the --token--. + but missed the case, when the error happens in the --token--.

      @@ -1620,43 +18826,42 @@

      - -

      -2011-07-21 21:50:59 -0700 -
      Michael Vrhel
      +


      +

      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 +

      + 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 + 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 + 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 + 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 + 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 + 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 + 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 + 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 + 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 + 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 + 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 + 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 + issue will be addressed shortly by another commit where we by default map all DeviceGray
      -colors to K only in the CMYK devices. + colors to K only in the CMYK devices.

      @@ -1668,31 +18873,30 @@

      - -

      -2011-07-21 16:40:21 +0100 -
      Robin Watts
      +


      +

      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. +

      + Fix Bug 692355; gswin32 has garbage chars in window title bars.

      -Existing ghostscript includes windows.h without defining UNICODE, but + Existing ghostscript includes windows.h without defining UNICODE, but
      -calls the unicode versions of functions where appropriate. Here we + calls the unicode versions of functions where appropriate. Here we
      -move to defining UNICODE before including windows.h, but we keep to + 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. + 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 + Partly this is because of time before the release, but mostly a fear
      -that this might lead to a Pandoras box of changes. + that this might lead to a Pandoras box of changes.

      @@ -1702,43 +18906,42 @@

      - -

      -2011-07-19 20:02:50 +0100 -
      Robin Watts
      +


      +

      2011-07-19 20:02:50 +0100 + +
      Robin Watts <Robin.Watts@artifex.com>
      c9a8f8b3b0327bb62fc79cfe93d6bd79f997a2b6

      - -
      -pdf14 'dirty' rect optimisations. +

      + pdf14 'dirty' rect optimisations.

      -Rename 'bbox' to 'dirty' - makes the purpose of the field much clearer. + Rename 'bbox' to 'dirty' - makes the purpose of the field much clearer.

      -Export dirty rectangle pointer in gx_pattern_trans_t structure. + Export dirty rectangle pointer in gx_pattern_trans_t structure.

      -Remove automatic expansion of 'dirty' rects to full rect boundary. + Remove automatic expansion of 'dirty' rects to full rect boundary.

      -Ensure tiling code sets dirty rectangle as expected. + Ensure tiling code sets dirty rectangle as expected.

      -Remove debugging printfs. + Remove debugging printfs.

      -Testing shows 491 differences. 16 or so real changes (all neutral or + Testing shows 491 differences. 16 or so real changes (all neutral or
      -progressions), but most of them in the cups device. Manual testing + progressions), but most of them in the cups device. Manual testing
      -shows no changes at all - no idea what's going on there. + shows no changes at all - no idea what's going on there.

      @@ -1754,23 +18957,22 @@

      - -

      -2011-07-20 15:24:58 -0400 -
      Alex Cherepanov
      +


      +

      2011-07-20 15:24:58 -0400 + +
      Alex Cherepanov <alex.cherepanov@artifex.com>
      4a1159926a8094f19bcacddf0503b5a06edd9184 -

      - -
      -Bug 692362, tolerate stream object without stream. +
      +

      + Bug 692362, tolerate stream object without stream.

      -Check for the case, where the modified stream dictionary is missing + Check for the case, where the modified stream dictionary is missing
      -/File attribute (probably, because the original stream object was + /File attribute (probably, because the original stream object was
      -missing the stream body) and substitute an empty stream. + missing the stream body) and substitute an empty stream.

      @@ -1778,35 +18980,34 @@

      - -

      -2011-07-20 20:03:02 +0000 -
      Robin Watts
      +


      +

      2011-07-20 20:03:02 +0000 + +
      Robin Watts <robin@ghostscript.com>
      145a853a0f9ed9d58b76413a5c77aa026500af93

      - -
      -Add finalize function to pattern clist device. +

      + Add finalize function to pattern clist device.

      -This may need to do more than it does, but the immediate drive for + 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 + 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 + on closedown. This is sufficient to stop the SEGV seen on the final
      -garbage collection done on stars.pdf. + garbage collection done on stars.pdf.

      -The garbage collector was finding an unfreed pdf14 device, and stepping + The garbage collector was finding an unfreed pdf14 device, and stepping
      -into the target onto to find that the target had been destroyed already. + into the target onto to find that the target had been destroyed already.

      -No cluster differences shown in testing. + No cluster differences shown in testing.

      @@ -1814,39 +19015,38 @@

      - -

      -2011-07-20 10:29:47 -0700 -
      Ray Johnston
      +


      +

      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. +

      + 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 + 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 + 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 + 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 + (pseudo- global) which is accessible by the icc_manager and devices via the
      -gs_memory_t pointer. + gs_memory_t pointer.

      -Remove the no longer needed functions to set and sync the profile in the device and + 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. + 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 + Thanks to Michael Vrhel for adding to this patch to make it build on linux and
      -build the other parsers. + build the other parsers.

      @@ -1888,19 +19088,18 @@

      - -

      -2011-07-20 11:43:40 -0700 -
      Michael Vrhel
      +


      +

      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. +

      + 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. + This should also fix a polarity issue that we had with the plank device.

      @@ -1908,19 +19107,18 @@

      - -

      -2011-07-20 18:24:31 +0000 -
      Robin Watts
      +


      +

      2011-07-20 18:24:31 +0000 + +
      Robin Watts <robin@ghostscript.com>
      9a91acb5411b457383e59ed4bbefeb0247862228

      - -
      -Reverse the polarity of cups 'gray' colorspaces. +

      + Reverse the polarity of cups 'gray' colorspaces.

      -Cups colspace 0 is the inverse of colspace 3. + Cups colspace 0 is the inverse of colspace 3.

      @@ -1928,31 +19126,30 @@

      - -

      -2011-07-20 14:48:55 +0100 -
      Chris Liddell
      +


      +

      2011-07-20 14:48:55 +0100 + +
      Chris Liddell <chris.liddell@artifex.com>
      467b64692f0b74244fd0bc0748309d05b2f09294

      - -
      -Remove the eXternal Fonts functionality. +

      + Remove the eXternal Fonts functionality.

      -The XFonts feature was of very limited utility these days, and + The XFonts feature was of very limited utility these days, and
      -was deprecated a couple of releases ago. This commit removes + was deprecated a couple of releases ago. This commit removes
      -the unloved and rather bit-rotten feature completely. + the unloved and rather bit-rotten feature completely.

      -This does not really "fix" Bug 692357, but renders it pointless. + This does not really "fix" Bug 692357, but renders it pointless.

      -No cluster differences. + No cluster differences.

      @@ -1990,39 +19187,38 @@

      - -

      -2011-07-20 14:36:10 +0100 -
      Chris Liddell
      +


      +

      2011-07-20 14:36:10 +0100 + +
      Chris Liddell <chris.liddell@artifex.com>
      5ca50b1770ae583490954f1546b17bad421fbc9f

      - -
      -Bug 692359: Retain WMode from CMaps embedded in PDFs +

      + Bug 692359: Retain WMode from CMaps embedded in PDFs

      -The read_CMap procedure skips everything in the embedded + The read_CMap procedure skips everything in the embedded
      -CMap file stream except the actual character ranges (as does + CMap file stream except the actual character ranges (as does
      -Acrobat), thus we lose the WMode setting (if present) from + Acrobat), thus we lose the WMode setting (if present) from
      -the stream. Nor were we propagating the value from the PDF + the stream. Nor were we propagating the value from the PDF
      -CMap stream dict. + CMap stream dict.

      -This revision ensures we propagate the WMode value the PDF + This revision ensures we propagate the WMode value the PDF
      -CMap stream dictionary (if present), which matches Acrobat's + CMap stream dictionary (if present), which matches Acrobat's
      -behaviour. + behaviour.

      -No cluster differences. + No cluster differences.

      @@ -2030,23 +19226,22 @@

      - -

      -2011-07-19 21:57:35 -0600 -
      Henry Stiles
      +


      +

      2011-07-19 21:57:35 -0600 + +
      Henry Stiles <henry.stiles@artifex.com>
      a46123967e919fdd557411d2b0d177e6be2722e3

      - -
      -Fixes 692234 premature erasepage. +

      + Fixes 692234 premature erasepage.

      -The page was being erased before the postscript interpreter was + The page was being erased before the postscript interpreter was
      -properly initialized. In particular for the crash in this bug a + properly initialized. In particular for the crash in this bug a
      -default halftone has to be installed before erasepage. + default halftone has to be installed before erasepage.

      @@ -2054,29 +19249,28 @@

      - -

      -2011-07-19 17:12:23 +0100 -
      Robin Watts
      +


      +

      2011-07-19 17:12:23 +0100 + +
      Robin Watts <Robin.Watts@artifex.com>
      a6ec8697315e39dabd565a1ca114d3b42f006324

      - -
      -Small Memento tweaks. +

      + Small Memento tweaks.

      -When moving a block to the tail of the freelist, ensure that its next pointer + When moving a block to the tail of the freelist, ensure that its next pointer
      -is set to NULL. + is set to NULL.

      -When doing 'setParanoia' ensure that any existing countdown is reset. + When doing 'setParanoia' ensure that any existing countdown is reset.

      -No cluster changes. + No cluster changes.

      @@ -2084,15 +19278,14 @@

      - -

      -2011-07-19 10:05:14 +0100 -
      Chris Liddell
      +


      +

      2011-07-19 10:05:14 +0100 + +
      Chris Liddell <chris.liddell@artifex.com>
      923d5ca0673442a9e8d4921812ac4fbd75433140

      - -
      -Fix a warning I introduced, and a couple of others +

      + Fix a warning I introduced, and a couple of others

      @@ -2100,29 +19293,28 @@

      - -

      -2011-07-18 10:46:05 -0700 -
      Michael Vrhel
      +


      +

      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 +

      + 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 + This fixes bug 692139, also adds support for the ability to override the
      -internal rendering intent(s) with an externally set rendering intent. Also, + internal rendering intent(s) with an externally set rendering intent. Also,
      -it is possible to specify specific rendering intents for RGB graphics, images + 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 + 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 + regression test suite. In particular the file icc_rendering_intent.pdf at 300dpi
      -now renders correctly. + now renders correctly.

      @@ -2142,29 +19334,28 @@

      - -

      -2011-07-18 17:07:08 +0100 -
      Chris Liddell
      +


      +

      2011-07-18 17:07:08 +0100 + +
      Chris Liddell <chris.liddell@artifex.com>
      385f519d34703ba88d107649fb59452617590194

      - -
      -Remove the PNG_INTERNAL define from the PNG device. +

      + Remove the PNG_INTERNAL define from the PNG device.

      -PNG_INTERNAL being defined exposes libpng's internal APIs which we should + 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 + 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 + done to work around an issue in an earlier libpng version, and is no
      -longer relevant. + longer relevant.

      -No cluster differences + No cluster differences

      @@ -2172,57 +19363,56 @@

      - -

      -2011-07-17 09:45:35 -0700 -
      Ray Johnston
      +


      +

      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. +

      + 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 + 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 + the 9.03 release, as well as on the master branch. Partly these problems came from the
      -UTF-8 changes. + UTF-8 changes.

      -VS treats the "char" type as signed by default. When extended characters are promoted + 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 + 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. + 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()' + 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 + incorrectly returned an 'insufficient buffer space' verdict and let the 'needed
      -buffer size' to 0 (cbData = 0 after 'RegQueryValueExW()'). The call to fetch the + 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 + 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 + 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 + 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 + during the request for the buffer size) and the function was doing 'free(wp)' with
      -wp == NULL in a few cases. + wp == NULL in a few cases.

      -No cluster differences. + No cluster differences.

      -CLUSTER_UNTESTED + CLUSTER_UNTESTED

      @@ -2232,29 +19422,28 @@

      - -

      -2011-07-18 12:52:55 +0100 -
      Robin Watts
      +


      +

      2011-07-18 12:52:55 +0100 + +
      Robin Watts <Robin.Watts@artifex.com>
      80f11f7c17fd2d58eded8e8721a6932a0384f5f5

      - -
      -Fix plane calculations in planar pattern management. +

      + Fix plane calculations in planar pattern management.

      -The calculation of the depth/shift to use depth in planar pattern management + The calculation of the depth/shift to use depth in planar pattern management
      -was wrong due to a silly typo. + was wrong due to a silly typo.

      -This doesn't make it work, just solves an obvious problem. + This doesn't make it work, just solves an obvious problem.

      -No cluster differences expected. + No cluster differences expected.

      @@ -2262,33 +19451,32 @@

      - -

      -2011-07-16 15:22:03 +0000 -
      Robin Watts
      +


      +

      2011-07-16 15:22:03 +0000 + +
      Robin Watts <robin@ghostscript.com>
      ed9ba4062880109265bf286cb2e3fdc7527fe841

      - -
      -Pattern accumulator changes to support planar output devices. +

      + Pattern accumulator changes to support planar output devices.

      -When creating the memory buffer for a painttype 1 pattern tile, check + 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 + to see if the underlying device is planar - if it is, then create the
      -memory buffer as planar too. + memory buffer as planar too.

      -The code to tile out the planar pattern buffers still needs fixing, but + The code to tile out the planar pattern buffers still needs fixing, but
      -this allows halftoning jobs to run to completion at least. + this allows halftoning jobs to run to completion at least.

      -No cluster differences shown. + No cluster differences shown.

      @@ -2296,63 +19484,62 @@

      - -

      -2011-07-16 12:58:35 +0000 -
      Robin Watts
      +


      +

      2011-07-16 12:58:35 +0000 + +
      Robin Watts <robin@ghostscript.com>
      a438a9f7d363f76013e1c614fc0818fe081875ad

      - -
      -Fix pattern cache tile accounting. +

      + Fix pattern cache tile accounting.

      -When putting tiles into the pattern cache, we estimate the size we need + 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 + 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 + 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 + estimated size. When we come to evict we recalculate the exact size and
      -evict based on that. + evict based on that.

      -This causes a mismatch whereby the pattern cache thinks it has the wrong + 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 + 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 + using more memory than we'd like. When it overestimates however, we can
      -get into an infinite loop trying to evict things. + get into an infinite loop trying to evict things.

      -The fix is to record the number of bits we've accounted for in every + 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. + 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 + 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 + estimate we can do that, but we must adjust pcache->bits_cache and
      -ctile->used appropriately. + ctile->used appropriately.

      -No bug associated with this, but it was triggered by a forthcoming + No bug associated with this, but it was triggered by a forthcoming
      -commit to make the pattern accumulator use planar buffers for planar + commit to make the pattern accumulator use planar buffers for planar
      -devices. + devices.

      -No differences in cluster testing. + No differences in cluster testing.

      @@ -2364,15 +19551,14 @@

      - -

      -2011-07-15 20:03:50 -0600 -
      Henry Stiles
      +


      +

      2011-07-15 20:03:50 -0600 + +
      Henry Stiles <henry.stiles@artifex.com>
      9b7298f794a4d9bdf5f2bc9dd8401cbfa458a018

      - -
      -Autoconf changes for X11 and threads. +

      + Autoconf changes for X11 and threads.

      @@ -2384,19 +19570,18 @@

      - -

      -2011-07-15 18:46:37 +0100 -
      Chris Liddell
      +


      +

      2011-07-15 18:46:37 +0100 + +
      Chris Liddell <chris.liddell@artifex.com>
      10fa3cdcae73e526d6279e5a70522d821d08469d

      - -
      -Set the defines needed to build luratech on WIN64 +

      + Set the defines needed to build luratech on WIN64

      -CLUSTER_UNTESTED + CLUSTER_UNTESTED

      @@ -2404,15 +19589,14 @@

      - -

      -2011-07-15 10:42:30 -0700 -
      Michael Vrhel
      +


      +

      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 +

      + Addition of an destination ICC profile for demonstrating the setting of rendering intent

      @@ -2420,23 +19604,22 @@

      - -

      -2011-07-15 15:12:02 +0100 -
      Chris Liddell
      +


      +

      2011-07-15 15:12:02 +0100 + +
      Chris Liddell <chris.liddell@artifex.com>
      2472633cba1418733d079dea15f624c3649bf6dc

      - -
      -Fix the shared library builds. +

      + Fix the shared library builds.

      -The corrected dependencies in lib.mak broke the shared lib bulids, + The corrected dependencies in lib.mak broke the shared lib bulids,
      -so the rules needed split up to cover the shared and non-shared + so the rules needed split up to cover the shared and non-shared
      -cases. + cases.

      @@ -2448,19 +19631,18 @@

      - -

      -2011-07-15 14:35:04 +0100 -
      Chris Liddell
      +


      +

      2011-07-15 14:35:04 +0100 + +
      Chris Liddell <chris.liddell@artifex.com>
      b0277439b2de03cfcae9282f02021bec72aaa91a

      - -
      -Resolve a build issue with 64 Windows. +

      + Resolve a build issue with 64 Windows.

      -CLUSTER_UNTESTED + CLUSTER_UNTESTED

      @@ -2468,35 +19650,34 @@

      - -

      -2011-07-15 12:51:00 +0100 -
      Robin Watts
      +


      +

      2011-07-15 12:51:00 +0100 + +
      Robin Watts <Robin.Watts@artifex.com>
      9be999c3d781ff92b5498d8cc89b0d2c1fcdc69e

      - -
      -Fix crashes due to uninitialised reschedule and time_slice procs. +

      + Fix crashes due to uninitialised reschedule and time_slice procs.

      -Freek Kempe reports problems when ghostscript is built with just + Freek Kempe reports problems when ghostscript is built with just
      -psl3 and pdf FEATURE_DEVS, due to the context entries for + psl3 and pdf FEATURE_DEVS, due to the context entries for
      -time_slice_proc and reschedule_proc being uninitialised. + time_slice_proc and reschedule_proc being uninitialised.

      -We take on a (very slightly modified) version of his suggested fix; + We take on a (very slightly modified) version of his suggested fix;
      -they are now initialised to a dummy procedure, and can be overridden + they are now initialised to a dummy procedure, and can be overridden
      -by zcontext_init later if required. + by zcontext_init later if required.

      -No cluster differences seen. + No cluster differences seen.

      @@ -2504,15 +19685,14 @@

      - -

      -2011-07-15 08:57:45 +0100 -
      Chris Liddell
      +


      +

      2011-07-15 08:57:45 +0100 + +
      Chris Liddell <chris.liddell@artifex.com>
      7d56fdb732eda354c1c0ccd53e62306caf4f600f

      - -
      -Small formatting change for the html changelog +

      + Small formatting change for the html changelog

      @@ -2520,15 +19700,14 @@

      - -

      -2011-07-15 08:51:36 +0100 -
      Chris Liddell
      +


      +

      2011-07-15 08:51:36 +0100 + +
      Chris Liddell <chris.liddell@artifex.com>
      fc670d3f5dd1e066a838165acec54b2859b1ed78

      - -
      -Increment the Ghostscript version number to 9.04. +

      + Increment the Ghostscript version number to 9.04.

      @@ -2538,23 +19717,22 @@

      - -

      -2011-07-15 07:01:39 +0100 -
      Chris Liddell
      +


      +

      2011-07-15 07:01:39 +0100 + +
      Chris Liddell <chris.liddell@artifex.com>
      7e299cc60681c53113f513f95a940ef0349219f9

      - -
      -Fix an error in the Win64 building of genarch.exe +

      + Fix an error in the Win64 building of genarch.exe

      -It was using AUXDIR instead of AUX for the path. + It was using AUXDIR instead of AUX for the path.

      -CLUSTER_UNTESTED + CLUSTER_UNTESTED

      @@ -2562,21 +19740,20 @@

      - -

      -2011-07-14 14:19:37 -0700 -
      Michael Vrhel
      +


      +

      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) +

      + Addition of support to override the document specified rendering intent(s)

      -Also this includes fixes so that if the source color profiles are specified + Also this includes fixes so that if the source color profiles are specified
      -the rendering intents associated with those will be used. + the rendering intents associated with those will be used.

      @@ -2594,27 +19771,26 @@

      - -

      -2011-07-14 16:07:03 +0100 -
      Chris Liddell
      +


      +

      2011-07-14 16:07:03 +0100 + +
      Chris Liddell <chris.liddell@artifex.com>
      fb5f2b5f317f9df6a1258ba53c17da84292cafee

      - -
      -Small fix to changes for Bug 688528. +

      + Small fix to changes for Bug 688528.

      -The fix for Bug 688528 contained a conditional error checking for + The fix for Bug 688528 contained a conditional error checking for
      -a return value of greater than zero when in fact it should be + a return value of greater than zero when in fact it should be
      -greater than or equal to zero. + greater than or equal to zero.

      -No cluster differences. + No cluster differences.

      @@ -2622,35 +19798,34 @@

      - -

      -2011-07-14 10:08:02 +0100 -
      Chris Liddell
      +


      +

      2011-07-14 10:08:02 +0100 + +
      Chris Liddell <chris.liddell@artifex.com>
      7694aad7c0d84ea8c95acff6ca9b189016c280d1

      - -
      -Revise error/warning on PDF missing CIDFont. +

      + Revise error/warning on PDF missing CIDFont.

      -Now that GS will attempt to continue interpreting a PDF after an error + 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 + 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 + missing CIDFont in a PDF condition to reflect that. If PDFSTOPONERROR
      -keep the previous message. + keep the previous message.

      -Also, add a "flush" at the end of each message to ensure they don't get + Also, add a "flush" at the end of each message to ensure they don't get
      -mangled by later, high priority messages. + mangled by later, high priority messages.

      -No cluster differences. + No cluster differences.

      @@ -2658,35 +19833,34 @@

      - -

      -2011-07-14 10:03:35 +0100 -
      Chris Liddell
      +


      +

      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 +

      + 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" + 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 + related library functions needed for the Windows Unicode path and
      -parameter handling, causing a link error. + parameter handling, causing a link error.

      -So when building with VC7 and earlier, leave out the Unicode stuff. + So when building with VC7 and earlier, leave out the Unicode stuff.

      -No cluster differences. + No cluster differences.

      -CLUSTER_UNTESTED + CLUSTER_UNTESTED

      @@ -2694,15 +19868,14 @@

      - -

      -2011-07-13 14:34:32 -0700 -
      Michael Vrhel
      +


      +

      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 +

      + Addition of ICC profile for demonstrating use of rendering intent on source color

      @@ -2710,21 +19883,20 @@

      - -

      -2011-07-13 10:08:29 -0700 -
      Ray Johnston
      +


      +

      2011-07-13 10:08:29 -0700 + +
      Ray Johnston <ray.johnston@artifex.com>
      880f2b2b80ce8f1506b2ec9d81ba73737dfaa4af

      - -
      -Add flush after -sGenericResourceDir warning message. +

      + Add flush after -sGenericResourceDir warning message.

      -I often have seen this message get garbled by having other messages on stderr "jump in" + 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. + so that the message on stdout gets split up. The "flush" prevents that.

      @@ -2732,19 +19904,18 @@

      - -

      -2011-07-12 19:26:21 -0700 -
      Michael Vrhel
      +


      +

      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 +

      + 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. + This fixes issues on windows when going to the bbox device but there are still issues on linux.

      @@ -2752,19 +19923,18 @@

      - -

      -2011-07-12 14:07:22 -0700 -
      Michael Vrhel
      +


      +

      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 +

      + Addition of code to support source color management dependent upon the graphic type

      -Also fix of the example file that demonstrates this feature. + Also fix of the example file that demonstrates this feature.

      @@ -2782,29 +19952,28 @@

      - -

      -2011-07-12 20:11:46 +0100 -
      Chris Liddell
      +


      +

      2011-07-12 20:11:46 +0100 + +
      Chris Liddell <chris.liddell@artifex.com>
      a06634a969ea9b0db2d0840d8641847247056145

      - -
      -Update autoconf build and the Windows build to use Luratech +

      + Update autoconf build and the Windows build to use Luratech
      -if the directories are found where we expect. + if the directories are found where we expect.

      -Include options on each build to disable using Luratech explicitly. + Include options on each build to disable using Luratech explicitly.

      -Document the change in Make.htm + Document the change in Make.htm

      -No cluster differences. + No cluster differences.

      @@ -2818,19 +19987,18 @@

      - -

      -2011-07-12 19:15:33 +0100 -
      Chris Liddell
      +


      +

      2011-07-12 19:15:33 +0100 + +
      Chris Liddell <chris.liddell@artifex.com>
      15d3904a43b2dddda12ed842000d9668c2aff8d7

      - -
      -Add a simple git log to html changelog script. +

      + Add a simple git log to html changelog script.

      -CLUSTER_UNTESTED + CLUSTER_UNTESTED

      @@ -2838,45 +20006,44 @@

      - -

      -2011-07-12 17:28:45 +0100 -
      Chris Liddell
      +


      +

      2011-07-12 17:28:45 +0100 + +
      Chris Liddell <chris.liddell@artifex.com>
      89de03454ba02713403571cb1cdd1312ae818f81

      - -
      -Bug 692338: address performance regression in FAPI +

      + Bug 692338: address performance regression in FAPI

      -Previously I changed FAPI to only dispose of the outline or + Previously I changed FAPI to only dispose of the outline or
      -bitmap part of the Freetype glyph, intead of the entire + bitmap part of the Freetype glyph, intead of the entire
      -internal glyph object, so as avoid freeing, re-allocating + internal glyph object, so as avoid freeing, re-allocating
      -and initialising a glyph object for every glyph. That seemed + and initialising a glyph object for every glyph. That seemed
      -to cause a memory leak, so I reverted it. + to cause a memory leak, so I reverted it.

      -This commit does it properly, addresing the memory leak by + This commit does it properly, addresing the memory leak by
      -correctly freeing the memory that Freetype returns to us + correctly freeing the memory that Freetype returns to us
      -*containing* the pointer to the bitmap or outline, as well + *containing* the pointer to the bitmap or outline, as well
      -as the bitmap/outline data. + as the bitmap/outline data.

      -This is measurably quicker than the previous method. + This is measurably quicker than the previous method.

      -No cluster differences expected. + No cluster differences expected.

      @@ -2884,15 +20051,14 @@

      - -

      -2011-07-12 06:50:46 -0700 -
      Michael Vrhel
      +


      +

      2011-07-12 06:50:46 -0700 + +
      Michael Vrhel <michael.vrhel@artifex.com>
      b6a234634d7987890851cb4375e0520ba8dd0750

      - -
      -Addition of code to support override of internal ICC profiles +

      + Addition of code to support override of internal ICC profiles

      @@ -2908,19 +20074,18 @@

      - -

      -2011-07-11 09:22:20 +0100 -
      Chris Liddell
      +


      +

      2011-07-11 09:22:20 +0100 + +
      Chris Liddell <chris.liddell@artifex.com>
      99cbbdaad585b78dfd32db6dc59c08f9743d8d6a

      - -
      -Add debugbin to the list of directories to ignore. +

      + Add debugbin to the list of directories to ignore.

      -CLUSTER_UNTESTED + CLUSTER_UNTESTED

      @@ -2928,25 +20093,24 @@

      - -

      -2011-07-11 09:14:34 +0100 -
      Chris Liddell
      +


      +

      2011-07-11 09:14:34 +0100 + +
      Chris Liddell <chris.liddell@artifex.com>
      ee688b964bee8f9562ce92835b2478f88b0dbe31

      - -
      -Bug 692327: Support libpng 1.5.x API +

      + Bug 692327: Support libpng 1.5.x API

      -Revise to support the latest libpng API, conditionally compiled based on + Revise to support the latest libpng API, conditionally compiled based on
      -the PNG_LIBPNG_VER_MINOR. + the PNG_LIBPNG_VER_MINOR.

      -No cluster differences expected. + No cluster differences expected.

      @@ -2954,15 +20118,14 @@

      - -

      -2011-07-10 13:14:04 -0700 -
      Michael Vrhel
      +


      +

      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 +

      + Addition of pdf example file to demonstrate source color graphic object control

      @@ -2970,15 +20133,14 @@

      - -

      -2011-07-10 12:54:02 -0700 -
      Michael Vrhel
      +


      +

      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. +

      + reorganization of files for demonstrating source color control based upon graphic type.

      @@ -3010,21 +20172,20 @@

      - -

      -2011-07-10 12:19:33 -0700 -
      Michael Vrhel
      +


      +

      2011-07-10 12:19:33 -0700 + +
      Michael Vrhel <michael.vrhel@artifex.com>
      213fd2eb89c8a818c546cb888fde6bb67d481c07

      - -
      -Addition of special effect ICC CMYK source profiles +

      + Addition of special effect ICC CMYK source profiles

      -A set of CMYK based profiles for demonstrating the usage of source + A set of CMYK based profiles for demonstrating the usage of source
      -color graphic object type dependent color management + color graphic object type dependent color management

      @@ -3036,21 +20197,20 @@

      - -

      -2011-07-10 09:39:21 -0700 -
      Michael Vrhel
      +


      +

      2011-07-10 09:39:21 -0700 + +
      Michael Vrhel <michael.vrhel@artifex.com>
      f24c2cb3f3e030068e48b9c608ebf87e70679547

      - -
      -Addition of special effect RGB ICC profiles +

      + Addition of special effect RGB ICC profiles

      -These profiles are for use in demonstrating the use of graphic object + These profiles are for use in demonstrating the use of graphic object
      -specific color management on source RGB objects. + specific color management on source RGB objects.

      @@ -3062,23 +20222,22 @@

      - -

      -2011-07-09 22:47:53 -0700 -
      Michael Vrhel
      +


      +

      2011-07-09 22:47:53 -0700 + +
      Michael Vrhel <michael.vrhel@artifex.com>
      048a939c8c5880d1f89f3f61df78e147910cb1d0

      - -
      -Fix for bug 692333. +

      + Fix for bug 692333.

      -Caused by insufficient testing for change in color run when spot colors + Caused by insufficient testing for change in color run when spot colors
      -are present during the DeviceN color rendering. Cluster push shows a + are present during the DeviceN color rendering. Cluster push shows a
      -diff in Bug691425.pdf bmpcmp seemed OK. + diff in Bug691425.pdf bmpcmp seemed OK.

      @@ -3086,51 +20245,50 @@

      - -

      -2011-07-08 14:11:52 -0700 -
      Ray Johnston
      +


      +

      2011-07-08 14:11:52 -0700 + +
      Ray Johnston <ray.johnston@artifex.com>
      ec7d65ce2cccbc97a2b696ceecb2ba7d329eff79

      - -
      -Fix initialization in gs_nulldevice (PS nulldevice operator) Bug 692334. +

      + 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 + 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 + 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 + 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 + 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 + link handle, but a subsequent call to gscms_transform_color with the same link handle
      -expected more than one component. + expected more than one component.

      -The initialization of the default profile can only be done if the io_device_table has + 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. + 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 + 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 + introduce any changes to gscms_transform_color_buffer to avoid changing the number
      -of components or issue a warning as mentioned in the bug. + of components or issue a warning as mentioned in the bug.

      -EXPECTED_DIFFERENCES: + EXPECTED_DIFFERENCES:

      -12-07D should revert to the output prior to the tagfix change (06df93f) + 12-07D should revert to the output prior to the tagfix change (06df93f)

      @@ -3138,19 +20296,18 @@

      - -

      -2011-07-08 16:41:47 -0700 -
      Michael Vrhel
      +


      +

      2011-07-08 16:41:47 -0700 + +
      Michael Vrhel <michael.vrhel@artifex.com>
      c48d47e85a27149ecbd84512c8ed80e3d3ab498c

      - -
      -Fix for graphic tag setting during forward procedure. +

      + Fix for graphic tag setting during forward procedure.

      -CLUSTER_UNTESTED + CLUSTER_UNTESTED

      @@ -3158,25 +20315,24 @@

      - -

      -2011-07-08 12:52:25 -0700 -
      Michael Vrhel
      +


      +

      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 +

      + 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 + 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. + it made sense to rename the source color object types similarly.

      -CLUSTER_UNTESTED + CLUSTER_UNTESTED

      @@ -3190,19 +20346,18 @@

      - -

      -2011-07-08 11:42:37 -0700 -
      Michael Vrhel
      +


      +

      2011-07-08 11:42:37 -0700 + +
      Michael Vrhel <michael.vrhel@artifex.com>
      4df7c79bc1c4df59818ddbc53b20eb1315e7cb48

      - -
      -Rename of misnamed file. +

      + Rename of misnamed file.

      -CLUSTER_UNTESTED + CLUSTER_UNTESTED

      @@ -3212,79 +20367,78 @@

      - -

      -2011-06-23 11:55:14 -0700 -
      Ray Johnston
      +


      +

      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. +

      + 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 + 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 + 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 + 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 + 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 + and use the appropriate tag as the bands are played back without thread
      -interference. + interference.

      -Rename the gs_object_tag_type_t to gs_graphics_type_t to make it more unique for + 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'. + 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. + 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 + 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' + 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 + 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 + 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. + is not needed -- the dev->graphics_type_tag can be access directly.

      -Previously, tags were not recorded except for devices that enabled tags. + 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 + 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 + 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 + for use by compositors that want to know whether or not to maintain a tag
      -plane, such as the pdf14 device. + plane, such as the pdf14 device.

      -Also replace the old 'get_object_type' that the anti-aliasing used with the + 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 + single approach for consistency and to cure problems (not identifed) with using
      -AA when other devices are interposed in the chain (clipper, compositor). + AA when other devices are interposed in the chain (clipper, compositor).

      -EXPECTED_DIFFERENCES: + EXPECTED_DIFFERENCES:

      -Various 12-07D.PS PS LL3 CET files will show color differences on page 3 (GLOBINT) + Various 12-07D.PS PS LL3 CET files will show color differences on page 3 (GLOBINT)
      -as described in Bug692334. + as described in Bug692334.

      @@ -3390,33 +20544,32 @@

      - -

      -2011-07-08 14:12:51 +0100 -
      Robin Watts
      +


      +

      2011-07-08 14:12:51 +0100 + +
      Robin Watts <Robin.Watts@artifex.com>
      73c09fa015d1e5a19083001bc343abbb67992c9d

      - -
      -Fix Bug 692331: SEGV in image interpolation. +

      + Fix Bug 692331: SEGV in image interpolation.

      -In fixing bug 692225, it seems I broke this. + In fixing bug 692225, it seems I broke this.

      -In the setup code that decides whether decoding is required or not, I + 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 + 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 + 'decoding' is done later for CIE colorspaces. As such I should have used
      -the no-decode case. + the no-decode case.

      -Fixing this appears to cure the problem. + Fixing this appears to cure the problem.

      @@ -3424,23 +20577,22 @@

      - -

      -2011-07-08 11:14:08 +0100 -
      Chris Liddell
      +


      +

      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. +

      + Bug 692322: Clarify in ps2pdf manpage that output goes to cwd by default.

      -Credit to Jonathan Nieder . + Credit to Jonathan Nieder <jrnieder@gmail.com>.

      -CLUSTER_UNTESTED + CLUSTER_UNTESTED

      @@ -3448,47 +20600,46 @@

      - -

      -2011-07-07 20:50:35 +0000 -
      Robin Watts
      +


      +

      2011-07-07 20:50:35 +0000 + +
      Robin Watts <robin@ghostscript.com>
      0e0db1ca146d82f6a1b0ae90f7146e7d65ffbba9

      - -
      -Fix bug 692330: SEGV in clist memfile fseek. +

      + Fix bug 692330: SEGV in clist memfile fseek.

      -The icc unserialise profile code ftells, then reads, then fseeks to + The icc unserialise profile code ftells, then reads, then fseeks to
      -maintain the position of the stream. The fseek was leaving the stream + 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 + 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 + 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 + have memory allocated for us to write into, and in this circumstance
      -we didn't. + we didn't.

      -The fseek code was actually correct, as was the ftell code. The problem + 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. + 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 + 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 + to have space on entry to the loop, so we just need to ensure we have
      -space on exit. + space on exit.

      -Cluster testing shows no differences (or none due to this change at least). + Cluster testing shows no differences (or none due to this change at least).

      @@ -3498,15 +20649,14 @@

      - -

      -2011-07-06 23:12:51 -0600 -
      Henry Stiles
      +


      +

      2011-07-06 23:12:51 -0600 + +
      Henry Stiles <henry.stiles@artifex.com>
      91c925158fd8bb84c0d44dff2ec4888dc4d6168e

      - -
      -Updates PDL README.txt +

      + Updates PDL README.txt

      @@ -3514,15 +20664,14 @@

      - -

      -2011-07-07 13:47:03 +0100 -
      Chris Liddell
      +


      +

      2011-07-07 13:47:03 +0100 + +
      Chris Liddell <chris.liddell@artifex.com>
      8191a2e349d1f8787b2f4805d770fa8b11f82d18

      - -
      -Bug 688528-addendum: quell warnings and handle errors. +

      + Bug 688528-addendum: quell warnings and handle errors.

      @@ -3534,43 +20683,42 @@

      - -

      -2011-07-07 10:41:27 +0100 -
      Chris Liddell
      +


      +

      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. +

      + 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) + 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 + 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 + this case, it simply inherits the profile array from the parent
      -device. + device.

      -This also meant moving the ICC manager initialization to before the + This also meant moving the ICC manager initialization to before the
      -device "open" call in gs_setdevice_no_erase() because the device set + 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 + 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 + 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 + there must be an array of ICC profiles at that stage for bbox to
      -inherit. + inherit.

      -No cluster differences expected. + No cluster differences expected.

      @@ -3584,21 +20732,20 @@

      - -

      -2011-07-06 22:05:43 -0400 -
      Alex Cherepanov
      +


      +

      2011-07-06 22:05:43 -0400 + +
      Alex Cherepanov <alex.cherepanov@artifex.com>
      73bfbe4b5f6e7090c2b6aad0183ddc8a186d5788

      - -
      -Fix Cygwin build. +

      + Fix Cygwin build.

      -Some Cygwin tools use \r\n line endings. Add transliteration of \r + Some Cygwin tools use \r\n line endings. Add transliteration of \r
      -to the space character to compensate for this lossage. + to the space character to compensate for this lossage.

      @@ -3606,35 +20753,34 @@

      - -

      -2011-07-06 17:29:24 -0600 -
      Henry Stiles
      +


      +

      2011-07-06 17:29:24 -0600 + +
      Henry Stiles <henry.stiles@artifex.com>
      7531d50c7b6dec596e142ff555f3cbfc28613abe

      - -
      -Shailesh Mistry's fix for 692311 - corrupt character rendering. +

      + Shailesh Mistry's fix for 692311 - corrupt character rendering.

      -In adaptive compression mode the seed row for delta row compression + In adaptive compression mode the seed row for delta row compression
      -was not properly cleared. With this change the code is now compatible + was not properly cleared. With this change the code is now compatible
      -with HP monochrome printers, previously the Artifex code was + with HP monochrome printers, previously the Artifex code was
      -compatible with HP Color Laserjets. We do not implement a device + compatible with HP Color Laserjets. We do not implement a device
      -specific switch - for example the new code could be enabled if the + specific switch - for example the new code could be enabled if the
      -current mode of emulation was PCL5E (mono PCL) and not PCL5C (color + current mode of emulation was PCL5E (mono PCL) and not PCL5C (color
      -PCL) allowing emulation of both product types. However the corrupt + PCL) allowing emulation of both product types. However the corrupt
      -character output of HP color printers is probably never an intended + character output of HP color printers is probably never an intended
      -result. + result.

      @@ -3642,23 +20788,22 @@

      - -

      -2011-07-05 11:04:27 -0600 -
      Henry Stiles
      +


      +

      2011-07-05 11:04:27 -0600 + +
      Henry Stiles <henry.stiles@artifex.com>
      6e1c268d0ceb3d39e33d242132a917ac27cc2491

      - -
      -Fix allocator and cleanup. +

      + Fix allocator and cleanup.

      -Use global allocator in the font directory not the local allocator in + 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 + the graphics state. Move the cache size assignment to the end of the
      -procedure after any error can occur and trivial style changes. + procedure after any error can occur and trivial style changes.

      @@ -3666,29 +20811,28 @@

      - -

      -2011-06-29 23:29:44 -0600 -
      Henry Stiles
      +


      +

      2011-06-29 23:29:44 -0600 + +
      Henry Stiles <henry.stiles@artifex.com>
      00dbc00bbbbc5dd7d3ec4fce2ac5ed72a4e13bde

      - -
      -Implement gs_setcachesize properly. +

      + Implement gs_setcachesize properly.

      -The previous implementation simply set the cache size state value but + The previous implementation simply set the cache size state value but
      -didn't attempt to rebuild the cache. The new font cache size is + didn't attempt to rebuild the cache. The new font cache size is
      -provided by size operand of setcacheparams. + provided by size operand of setcacheparams.

      -We also limit the size operand to the values discovered used by CPSI, the + We also limit the size operand to the values discovered used by CPSI, the
      -range is device dependent and the CPSI range appears reasonable. + range is device dependent and the CPSI range appears reasonable.

      @@ -3696,21 +20840,20 @@

      - -

      -2011-06-23 12:58:53 -0600 -
      Henry Stiles
      +


      +

      2011-06-23 12:58:53 -0600 + +
      Henry Stiles <henry.stiles@artifex.com>
      ee351ae182d5f5fabe36f0ce9216a4da39c1c831

      - -
      -Removes obsolete code. +

      + Removes obsolete code.

      -The is callback used to be used to delete all characters from the + The is callback used to be used to delete all characters from the
      -cache, we don't do that anymore. + cache, we don't do that anymore.

      @@ -3718,25 +20861,24 @@

      - -

      -2011-06-18 18:03:44 -0600 -
      Henry Stiles
      +


      +

      2011-06-18 18:03:44 -0600 + +
      Henry Stiles <henry.stiles@artifex.com>
      f91aa55a593789c3e342f649e1ebd7f575008e2c

      - -
      -Fix bug #692246 infinite loop searching the character table. +

      + Fix bug #692246 infinite loop searching the character table.

      -Set up the number of characters in the table and the maximum amount of + 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 + 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 + we will run out of memory before running out of table entries. Thanks
      -to Shailesh Mistry for assistance in analyzing this problem. + to Shailesh Mistry for assistance in analyzing this problem.

      @@ -3744,39 +20886,38 @@

      - -

      -2011-07-06 13:30:23 +0100 -
      Chris Liddell
      +


      +

      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. +

      + 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 + 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 + built with the same compiler flags as Ghostscript/Ghost*. In this case
      -the integer type used for encoded color values was not getting used + the integer type used for encoded color values was not getting used
      -when compiling genarch. + when compiling genarch.

      -Also, add a warning when tiffsep does have to skip one or more plates, with + 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 + 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 + that the contone preview output may not be as expected if the job uses
      -overprint. + overprint.

      -No cluster differences expected. + No cluster differences expected.

      @@ -3794,21 +20935,20 @@

      - -

      -2011-07-04 23:55:57 -0400 -
      Alex Cherepanov
      +


      +

      2011-07-04 23:55:57 -0400 + +
      Alex Cherepanov <alex.cherepanov@artifex.com>
      836ac602259ed7e6dfa2845ce78c5fcb516c72e1

      - -
      -Bug 692026: Replace vsprintf() with vsnprintf() +

      + Bug 692026: Replace vsprintf() with vsnprintf()

      -vsnprintf() is a safer function. No new compatibility problams are + vsnprintf() is a safer function. No new compatibility problams are
      -expected because vsnprintf() is already used it in Ghostscript. + expected because vsnprintf() is already used it in Ghostscript.

      @@ -3818,23 +20958,22 @@

      - -

      -2011-07-02 13:50:28 -0700 -
      Ray Johnston
      +


      +

      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. +

      + 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. + 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 + Detected under certain circumstances with the tiffsep device using compressed color
      -encoding. + encoding.

      @@ -3844,21 +20983,20 @@

      - -

      -2011-07-01 16:46:32 -0400 -
      Alex Cherepanov
      +


      +

      2011-07-01 16:46:32 -0400 + +
      Alex Cherepanov <alex.cherepanov@artifex.com>
      c841237f86505fad348295dfb17aea45beed4c89

      - -
      -Bug 692320: check page count type. +

      + Bug 692320: check page count type.

      -Check the type of /Count attrubute before using it. Reject invalid + Check the type of /Count attrubute before using it. Reject invalid
      -values and types and scan the page tree instead. + values and types and scan the page tree instead.

      @@ -3866,25 +21004,24 @@

      - -

      -2011-07-01 18:03:19 +0100 -
      Robin Watts
      +


      +

      2011-07-01 18:03:19 +0100 + +
      Robin Watts <Robin.Watts@artifex.com>
      52d2decab7955e61a605ab44acb88a08eb79b9cb

      - -
      -Clist change for plane rop operations. +

      + Clist change for plane rop operations.

      -If strip_copy_rop is called with the 'lop_planar' indicator bit set in + 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 rop, it should encode just a planes worth of data.

      -The reading side of clists works without change, I believe. + The reading side of clists works without change, I believe.

      @@ -3892,37 +21029,36 @@

      - -

      -2011-07-01 12:31:54 +0100 -
      Robin Watts
      +


      +

      2011-07-01 12:31:54 +0100 + +
      Robin Watts <Robin.Watts@artifex.com>
      e14ea75d716da7ecdef2211a5d60e46deec55b9f

      - -
      -Fix clist planar device detection. +

      + Fix clist planar device detection.

      -When the clist interrogates a device to see if it is a planar one, it was + 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 + 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 + responding to the question. We fix the main planar device to respond too
      -here. + here.

      -Also, any device that doesn't understand the is_native_planar question + 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 + would respond -1; the existing code would take this to mean that it is
      -planar. The code now only triggers on positive responses. + planar. The code now only triggers on positive responses.

      -No cluster differences expected. + No cluster differences expected.

      @@ -3932,23 +21068,22 @@

      - -

      -2011-06-30 12:17:08 -0700 -
      Ray Johnston
      +


      +

      2011-06-30 12:17:08 -0700 + +
      Ray Johnston <ray.johnston@artifex.com>
      93b4821ada53277b61efb87cbb12eb6a6f71ced0

      - -
      -FIx segfaults caused by missing prototype causing pointer truncation. +

      + 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 + 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 + 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. + on the macpro when doing ps2write. Problematic call was line 1086.

      @@ -3956,25 +21091,24 @@

      - -

      -2011-06-30 20:02:09 +0100 -
      Robin Watts
      +


      +

      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. +

      + Fix error in plib and plan devices not properly closing down.

      -plib_close and plan_close were failing to call the underlying device + plib_close and plan_close were failing to call the underlying device
      -close method, hence leaking. + close method, hence leaking.

      -CLUSTER_UNTESTED. + CLUSTER_UNTESTED.

      @@ -3984,29 +21118,28 @@

      - -

      -2011-06-30 18:19:30 +0100 -
      Robin Watts
      +


      +

      2011-06-30 18:19:30 +0100 + +
      Robin Watts <Robin.Watts@artifex.com>
      b62b3a9ce165ebca357ebf6b4e2ff4cae8d630d3

      - -
      -Fix leak of icc_profile in clist playback. +

      + Fix leak of icc_profile in clist playback.

      -When reading an icc_profile profile from the clist we were forgetting to + When reading an icc_profile profile from the clist we were forgetting to
      -decrement it's reference count, and so it was being leaked. + decrement it's reference count, and so it was being leaked.

      -Also fix a whitespace issue. + Also fix a whitespace issue.

      -No cluster differences expected. + No cluster differences expected.

      @@ -4016,21 +21149,20 @@

      - -

      -2011-06-30 17:05:19 +0100 -
      Robin Watts
      +


      +

      2011-06-30 17:05:19 +0100 + +
      Robin Watts <Robin.Watts@artifex.com>
      5baa14a107150a5ba4189ff830f21bfdd7da528c

      - -
      -More Makefile dependency tweaks. +

      + More Makefile dependency tweaks.

      -Limit our insistence on gnu make (for order only dependencies) to + Limit our insistence on gnu make (for order only dependencies) to
      -the autoconf generated makefiles. + the autoconf generated makefiles.

      @@ -4046,41 +21178,40 @@

      - -

      -2011-06-30 16:42:24 +0100 -
      Robin Watts
      +


      +

      2011-06-30 16:42:24 +0100 + +
      Robin Watts <Robin.Watts@artifex.com>
      396fa30df058ccd35375a08e5385fa4251d4b714

      - -
      -Various Memento changes. +

      + Various Memento changes.

      -Add MEMENTO_LEAKONLY option to speed Memento (avoids filling memory and + Add MEMENTO_LEAKONLY option to speed Memento (avoids filling memory and
      -checking the filled values for consistency). + checking the filled values for consistency).

      -Also, rewrite freelist management to avoid delays when making room. + Also, rewrite freelist management to avoid delays when making room.

      -Memento in MEMENTO_LEAKONLY now runs almost as fast as normal code. + 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 + 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 + (and hence Memento) for all blocks (when MEMENTO is defined). No changes
      -to normal operation. + to normal operation.

      -CLUSTER_UNTESTED. + CLUSTER_UNTESTED.

      @@ -4094,39 +21225,38 @@

      - -

      -2011-06-30 14:24:17 +0100 -
      Robin Watts
      +


      +

      2011-06-30 14:24:17 +0100 + +
      Robin Watts <Robin.Watts@artifex.com>
      44a609ed782883815571bcbc1ed7a602db03c786

      - -
      -Another attempt at proper directory dependencies. +

      + Another attempt at proper directory dependencies.

      -The previous attempt failed due to directories getting their timestamp + The previous attempt failed due to directories getting their timestamp
      -updated whenever the contents changed - hence causing stuff to be + updated whenever the contents changed - hence causing stuff to be
      -always out of date. + always out of date.

      -The 'correct' fix appears to be to use order only dependencies. We do + 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 + this in a portable way by defining a MAKEDIRS variable, that should
      -always be the last dependency listed. Unix builds define this to + always be the last dependency listed. Unix builds define this to
      -"| directories", windows builds leave it blank. + "| directories", windows builds leave it blank.

      -Testing this work in turn showed up more problems with device + Testing this work in turn showed up more problems with device
      -dependencies - also fixed here. + dependencies - also fixed here.

      @@ -4158,21 +21288,20 @@

      - -

      -2011-06-30 13:55:54 +0100 -
      Ken Sharp
      +


      +

      2011-06-30 13:55:54 +0100 + +
      Ken Sharp <ken.sharp@artifex.com>
      93df8de63350ec70d38cc79494a47cf0a6e172b9

      - -
      -More changes for CIDSet. +

      + More changes for CIDSet.

      -Make sure that if the CID (LastChar) is greater than num_glyphs, then use LastChar + Make sure that if the CID (LastChar) is greater than num_glyphs, then use LastChar
      -for the length of CIDSet and CIDToGIDMap. + for the length of CIDSet and CIDToGIDMap.

      @@ -4180,39 +21309,38 @@

      - -

      -2011-06-29 21:39:01 +0100 -
      Robin Watts
      +


      +

      2011-06-29 21:39:01 +0100 + +
      Robin Watts <Robin.Watts@artifex.com>
      4a65a114f83a6826679625ef8686c1f43c648b43

      - -
      -Fix leaks in icc code seen during performance testing. +

      + Fix leaks in icc code seen during performance testing.

      -Whilst performance testing the new thresholding code against the plank + Whilst performance testing the new thresholding code against the plank
      -device as follows: + device as follows:

      -pcl6.exe -sDEVICE=plank -o nul: -r600 lj4700_pcl5_color_AC8Z51CC.prn + pcl6.exe -sDEVICE=plank -o nul: -r600 lj4700_pcl5_color_AC8Z51CC.prn

      -various leaks were seen (I used Memento to see them). + 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 + 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. + a buffer used to read an icc profile into from the clist.

      -Various small bits of error case code is also fixed here. + Various small bits of error case code is also fixed here.

      @@ -4224,19 +21352,18 @@

      - -

      -2011-06-29 21:39:58 +0100 -
      Robin Watts
      +


      +

      2011-06-29 21:39:58 +0100 + +
      Robin Watts <Robin.Watts@artifex.com>
      3992ee84c892ed2fcc16b3bd0e89d7e9d878bbaa

      - -
      -Add STDDIRS dependencies to unix-aux too. +

      + Add STDDIRS dependencies to unix-aux too.

      -This prevented configured debug gs builds from working (and possibly others). + This prevented configured debug gs builds from working (and possibly others).

      @@ -4244,35 +21371,34 @@

      - -

      -2011-06-29 20:55:42 +0100 -
      Robin Watts
      +


      +

      2011-06-29 20:55:42 +0100 + +
      Robin Watts <Robin.Watts@artifex.com>
      22f63a9438d563c3f36a2e652784d53be028bd7d

      - -
      -Tweak to gsicc_manage.c to avoid potential leak. +

      + Tweak to gsicc_manage.c to avoid potential leak.

      -Examining the code, if gsicc_set_icc_directory is called with namelen=0 + 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 + then the existing code will allocate a 1 byte buffer and store it in
      -the icc_manager. + the icc_manager.

      -If the same function is called again, in the same way, this buffer + If the same function is called again, in the same way, this buffer
      -will not be freed before it is overwritten. + will not be freed before it is overwritten.

      -The fix is simply to test for icc_manager->profiledir being non NULL + The fix is simply to test for icc_manager->profiledir being non NULL
      -rather than the namelen > 0. + rather than the namelen > 0.

      @@ -4280,31 +21406,30 @@

      - -

      -2011-06-29 15:10:03 +0100 -
      Robin Watts
      +


      +

      2011-06-29 15:10:03 +0100 + +
      Robin Watts <Robin.Watts@artifex.com>
      3a26f3c1aa08e6bd4b4550e066da449fb61ee2cf

      - -
      -Makefile dependency fixes. +

      + Makefile dependency fixes.

      -Ray pointed out yesterday that the gs makefile has a malformed dependency + Ray pointed out yesterday that the gs makefile has a malformed dependency
      -rule ensuring that the object dirs are created before any compilation + 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 + 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 + build task at once, but parallel invocations (e.g. make -f 5) can fall
      -foul fof it. + foul fof it.

      -The fix is to properly make every .$(OBJ) file depend on STDDIRS. + The fix is to properly make every .$(OBJ) file depend on STDDIRS.

      @@ -4324,15 +21449,14 @@

      - -

      -2011-06-29 08:17:46 +0100 -
      Ken Sharp
      +


      +

      2011-06-29 08:17:46 +0100 + +
      Ken Sharp <ken.sharp@artifex.com>
      865dca5781dcb4fea12d1349d4f7392d7d809c42

      - -
      -Change the documented default settings for ps2write to match reality. +

      + Change the documented default settings for ps2write to match reality.

      @@ -4340,23 +21464,22 @@

      - -

      -2011-06-28 21:55:44 -0400 -
      Alex Cherepanov
      +


      +

      2011-06-28 21:55:44 -0400 + +
      Alex Cherepanov <alex.cherepanov@artifex.com>
      c6a8de32823db74a0da27187b7fb049b337c2573

      - -
      -Bug 692305: Remove -dSAFER from pfbtopfa +

      + Bug 692305: Remove -dSAFER from pfbtopfa

      -Remove -dSAFER flag from pfbtopfa and wftopfa scripts because it + Remove -dSAFER flag from pfbtopfa and wftopfa scripts because it
      -interferes with the the normal operation of Ghostscript and serves + interferes with the the normal operation of Ghostscript and serves
      -no purpose. No client code is executed by these utilities. + no purpose. No client code is executed by these utilities.

      @@ -4368,27 +21491,26 @@

      - -

      -2011-06-28 21:54:31 +0100 -
      Chris Liddell
      +


      +

      2011-06-28 21:54:31 +0100 + +
      Chris Liddell <chris.liddell@artifex.com>
      31cb1ff75d4a77ac32854a68f56d973d06b5da10

      - -
      -Bug 692310 Add another fallback case for an FT error. +

      + Bug 692310 Add another fallback case for an FT error.

      -Add a fallback for the FT_Err_Invalid_Reference error from Freetype. + 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 + As this is a hinting error, we'll fall back to rendering the glyph
      -unhinted. + unhinted.

      -No cluster differences. + No cluster differences.

      @@ -4396,29 +21518,28 @@

      - -

      -2011-06-28 20:09:11 +0100 -
      Robin Watts
      +


      +

      2011-06-28 20:09:11 +0100 + +
      Robin Watts <Robin.Watts@artifex.com>
      a1ee78a6de94b8b4292b9ce3b71b54ed3ae7502b

      - -
      -Fix for Bug 692303, antialiasing problems. +

      + Fix for Bug 692303, antialiasing problems.

      -In trying to fix Bug 692081, I'd inadvertantly broken antialiased + In trying to fix Bug 692081, I'd inadvertantly broken antialiased
      -operation on shapes with multiple 'alpha=0'/'alpha-non-zero' + operation on shapes with multiple 'alpha=0'/'alpha-non-zero'
      -transitions. + transitions.

      -My understanding of Peters line accumulator macros was incomplete. + My understanding of Peters line accumulator macros was incomplete.
      -This new version seems to fix both cases. + This new version seems to fix both cases.

      @@ -4428,19 +21549,18 @@

      - -

      -2011-06-28 20:08:40 +0100 -
      Robin Watts
      +


      +

      2011-06-28 20:08:40 +0100 + +
      Robin Watts <Robin.Watts@artifex.com>
      4d44e8a15bfa263b54b369940db9d8ec97d4fc48

      - -
      -Fix typo in comment. +

      + Fix typo in comment.

      -CLUSTER_UNTESTED + CLUSTER_UNTESTED

      @@ -4448,33 +21568,32 @@

      - -

      -2011-06-28 13:12:34 +0100 -
      Robin Watts
      +


      +

      2011-06-28 13:12:34 +0100 + +
      Robin Watts <Robin.Watts@artifex.com>
      11fa4e84f504bdbd9e78495cf5214e49554383b0

      - -
      -More 'aux' makefile changes. +

      + More 'aux' makefile changes.

      -Configured gs builds were still not putting the aux directory in the + Configured gs builds were still not putting the aux directory in the
      -right place. Reworked here. + right place. Reworked here.

      -This has meant changing the horrible 'RELDIR' hack for a slightly + This has meant changing the horrible 'RELDIR' hack for a slightly
      -less horrible hack using 'BUILDDIRPREFIX'. In turn this has meant + less horrible hack using 'BUILDDIRPREFIX'. In turn this has meant
      -that the shared object targets have one mroe layer of recursion in + 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 + the make, but it's still at the top level, and (arguably) clearer
      -now than it was before. + now than it was before.

      @@ -4500,15 +21619,14 @@

      - -

      -2011-06-27 20:09:20 -0400 -
      Alex Cherepanov
      +


      +

      2011-06-27 20:09:20 -0400 + +
      Alex Cherepanov <alex.cherepanov@artifex.com>
      680d0f9b0a30de60c3289b827714be3f5adc65b1

      - -
      -Rename -dPDFNOSTOPPED to -dPDFSTOPONERROR +

      + Rename -dPDFNOSTOPPED to -dPDFSTOPONERROR

      @@ -4520,23 +21638,22 @@

      - -

      -2011-06-27 19:34:37 -0400 -
      Alex Cherepanov
      +


      +

      2011-06-27 19:34:37 -0400 + +
      Alex Cherepanov <alex.cherepanov@artifex.com>
      66700ec35f74a6e049ed6654283418a6d23bfb3e

      - -
      -Bug 692301: Support /Filter array with /JPXDecode +

      + Bug 692301: Support /Filter array with /JPXDecode

      -Fix a bug in /JPXDecode filter handler that generated bad + Fix a bug in /JPXDecode filter handler that generated bad
      -/DecodeParms when /JPXDecode filter was used in a /Filter + /DecodeParms when /JPXDecode filter was used in a /Filter
      -array. Remove some obsolete code related to /JPXDecode. + array. Remove some obsolete code related to /JPXDecode.

      @@ -4546,27 +21663,26 @@

      - -

      -2011-06-27 14:06:27 -0400 -
      Alex Cherepanov
      +


      +

      2011-06-27 14:06:27 -0400 + +
      Alex Cherepanov <alex.cherepanov@artifex.com>
      2f08f6f0c1b9bae95387534617005df0b4b7e46f

      - -
      -Add -dPDFNOSTOPPED option. +

      + Add -dPDFNOSTOPPED option.

      -Norrmally, PDF interpreter tries to repair all problems in PDF files. + Norrmally, PDF interpreter tries to repair all problems in PDF files.
      --dPDFNOSTOPPED option skips some of the stopped contexts. On error, + -dPDFNOSTOPPED option skips some of the stopped contexts. On error,
      -instead of printing a warning and continue, PDF interpreter drops into + instead of printing a warning and continue, PDF interpreter drops into
      -a PostScript error handler that prints detailed information about the + a PostScript error handler that prints detailed information about the
      -problem and kills the job. + problem and kills the job.

      @@ -4578,15 +21694,14 @@

      - -

      -2011-06-27 09:22:30 -0600 -
      Henry Stiles
      +


      +

      2011-06-27 09:22:30 -0600 + +
      Henry Stiles <henry.stiles@artifex.com>
      9b9d97a5a2c299595048c72fa10e1a2b2845ff58

      - -
      -Add planar device to the Windows build. +

      + Add planar device to the Windows build.

      @@ -4594,37 +21709,36 @@

      - -

      -2011-06-27 14:35:52 +0100 -
      Ken Sharp
      +


      +

      2011-06-27 14:35:52 +0100 + +
      Ken Sharp <ken.sharp@artifex.com>
      5e292c6c611659105f9bbc50ad33518c97a1923d

      - -
      -bug #692304 Don't emit '0 g' for 'erasepage' +

      + bug #692304 Don't emit '0 g' for 'erasepage'

      -showpage causes a fill of an empty path, apparently as part of the erasepage mechanism. + 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 + 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. + 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 + 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 + 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. + '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 + 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. + draws all the output instead of dropping portions of it due to a 'nocurrentpoint' error.

      @@ -4632,43 +21746,42 @@

      - -

      -2011-06-26 11:20:33 +0100 -
      Chris Liddell
      +


      +

      2011-06-26 11:20:33 +0100 + +
      Chris Liddell <chris.liddell@artifex.com>
      f3b1a56bb0c5d716868b7914bee6c3740f3f035a

      - -
      -Update to libjpeg 8c. +

      + Update to libjpeg 8c.

      -Combines (from libs-update branch) the commits: + Combines (from libs-update branch) the commits:

      -Commit a vanilla copy of libjpeg-8c. + Commit a vanilla copy of libjpeg-8c.

      -And the makefile changes to let it build. + And the makefile changes to let it build.

      -Commit our patch to the libjpeg source. + Commit our patch to the libjpeg source.

      -Add our patches to the jpeg-8c src. + Add our patches to the jpeg-8c src.

      -This changes every cluster test which contains DCT/JPEG data, but + This changes every cluster test which contains DCT/JPEG data, but
      -they are all very small colour shifts that are invisible + they are all very small colour shifts that are invisible
      -to the naked eye - as expected by this type of update. + to the naked eye - as expected by this type of update.

      @@ -5002,19 +22115,18 @@

      - -

      -2011-06-26 23:12:38 -0700 -
      Michael Vrhel
      +


      +

      2011-06-26 23:12:38 -0700 + +
      Michael Vrhel <michael.vrhel@artifex.com>
      5b7a917fa6d092f76a0400e1bce70d02b8b724f1

      - -
      -Fix for compiler complaint. +

      + Fix for compiler complaint.

      -CLUSTER_UNTESTED + CLUSTER_UNTESTED

      @@ -5022,15 +22134,14 @@

      - -

      -2011-06-25 11:07:25 -0700 -
      Michael Vrhel
      +


      +

      2011-06-25 11:07:25 -0700 + +
      Michael Vrhel <michael.vrhel@artifex.com>
      f4e1d4b280f6e6ff73d630e2b103a1a6b50c03d9

      - -
      -Fix for icc directory and icc device profile initialization. +

      + Fix for icc directory and icc device profile initialization.

      @@ -5062,49 +22173,48 @@

      - -

      -2011-06-24 18:46:51 +0100 -
      Robin Watts
      +


      +

      2011-06-24 18:46:51 +0100 + +
      Robin Watts <Robin.Watts@artifex.com>
      7af1ebacdb9947ea5197523bcda7764431769e8f

      - -
      -Add copy_plane to rop source device. +

      + Add copy_plane to rop source device.

      -This uses 'creative engineering' (aka a blatant hack) to allow copy_color + This uses 'creative engineering' (aka a blatant hack) to allow copy_color
      -to be implemented in the "rop source" device. + to be implemented in the "rop source" device.

      -We implement a copy_plane entrypoint for the rop source device, that + 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 + 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 + 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. + 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 + This is detected in mem_planar_strip_copy_rop and unpicked to a call
      -to the appropriate plane. + to the appropriate plane.

      -Care must be taken when doing rops on the planar device, as + 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 + 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. + 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 + The solution is to ensure that we always remove our get_bits_rectangle
      -implementation when passing on a ropping call. + implementation when passing on a ropping call.

      @@ -5116,37 +22226,36 @@

      - -

      -2011-06-24 17:38:55 +0100 -
      Chris Liddell
      +


      +

      2011-06-24 17:38:55 +0100 + +
      Chris Liddell <chris.liddell@artifex.com>
      0c927bb3e177b5b34ebb1b1f7fa2d9669614fbaf

      - -
      -Bug 692274: handle vastly different magnitudes in x/y scale +

      + Bug 692274: handle vastly different magnitudes in x/y scale

      -If the difference in the scale on the x and y axes is large + 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 + (in this case, a factor of 1000), the value scaling we do
      -to pass into Freetype can run over/under flow when applied + to pass into Freetype can run over/under flow when applied
      -to both. The solution is to apply the value scaling + to both. The solution is to apply the value scaling
      -separately for x and y axes. But the quality is very + separately for x and y axes. But the quality is very
      -marginally better when the two are scaled together, so we + marginally better when the two are scaled together, so we
      -do that normally, and only fall back to the separate handling + do that normally, and only fall back to the separate handling
      -when the x and y scales differ by more than 512. + when the x and y scales differ by more than 512.

      -No cluster differences expected. + No cluster differences expected.

      @@ -5154,25 +22263,24 @@

      - -

      -2011-06-24 12:11:48 +0100 -
      Robin Watts
      +


      +

      2011-06-24 12:11:48 +0100 + +
      Robin Watts <Robin.Watts@artifex.com>
      90324e2c6466978f3c01e4a5a3c27d916b9ba9fa

      - -
      -Fix 'aux' cluster breakages. Move aux into obj. +

      + Fix 'aux' cluster breakages. Move aux into obj.

      -Move aux directories into the appropriate obj directories. + Move aux directories into the appropriate obj directories.
      -Makes cleaning easier, and is neater overall. + Makes cleaning easier, and is neater overall.

      -Also fix some unrelated problems with cleaning in the msvc builds. + Also fix some unrelated problems with cleaning in the msvc builds.

      @@ -5194,23 +22302,22 @@

      - -

      -2011-06-23 12:53:01 -0600 -
      Henry Stiles
      +


      +

      2011-06-23 12:53:01 -0600 + +
      Henry Stiles <henry.stiles@artifex.com>
      7f2d55272963b039a472adbd26bb9a111e5d31ac

      - -
      -Use filenames instead of stdin and stdout. +

      + Use filenames instead of stdin and stdout.

      -The original example c programs used stdin and stdout instead of + The original example c programs used stdin and stdout instead of
      -reading directly from files. The C programs were changed to use files + reading directly from files. The C programs were changed to use files
      -but the associated shell script wasn't updated. + but the associated shell script wasn't updated.

      @@ -5218,21 +22325,20 @@

      - -

      -2011-06-22 21:39:01 +0100 -
      Robin Watts
      +


      +

      2011-06-22 21:39:01 +0100 + +
      Robin Watts <Robin.Watts@artifex.com>
      ca0f4ff4a0df386dd4d494a418f09336d06c2451

      - -
      -Cross compilation (AUX) changes to ghostscript and ghostpdl. +

      + Cross compilation (AUX) changes to ghostscript and ghostpdl.

      -Introduce a new 'aux' directory and appropriate defines to allow + Introduce a new 'aux' directory and appropriate defines to allow
      -easier cross-compilation of gs/ghostpdl. + easier cross-compilation of gs/ghostpdl.

      @@ -5274,25 +22380,24 @@

      - -

      -2011-06-22 20:05:15 +0100 -
      Chris Liddell
      +


      +

      2011-06-22 20:05:15 +0100 + +
      Chris Liddell <chris.liddell@artifex.com>
      3b3261eca08cd73ca355b28fe5125c98d411820d

      - -
      -Bug 692297: reinstate the proper way to release FT glyphs. +

      + Bug 692297: reinstate the proper way to release FT glyphs.

      -FT_Glyph_Done is the correct method for freeing both bitmap and + FT_Glyph_Done is the correct method for freeing both bitmap and
      -outline glyphs from Freetype. + outline glyphs from Freetype.

      -No cluster differences expected. + No cluster differences expected.

      @@ -5300,15 +22405,14 @@

      - -

      -2011-06-22 10:46:18 -0700 -
      Ray Johnston
      +


      +

      2011-06-22 10:46:18 -0700 + +
      Ray Johnston <ray.johnston@artifex.com>
      f8c4663d5108ca0b7416bf35ba37a8bb63f0b8ed

      - -
      -Improve documentation about gsapi_set_poll +

      + Improve documentation about gsapi_set_poll

      @@ -5316,19 +22420,18 @@

      - -

      -2011-06-22 10:17:32 -0700 -
      Michael Vrhel
      +


      +

      2011-06-22 10:17:32 -0700 + +
      Michael Vrhel <michael.vrhel@artifex.com>
      b28982145ccdea3a39f7ad13d7f5c8a00f14f83d

      - -
      -Replace previous commit file with smaller file. +

      + Replace previous commit file with smaller file.

      -CLUSTER_UNTESTED + CLUSTER_UNTESTED

      @@ -5336,19 +22439,18 @@

      - -

      -2011-06-22 10:12:33 -0700 -
      Michael Vrhel
      +


      +

      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. +

      + Addition of simple example file with text graphic and image objects.

      -CLUSTER_UNTESTED + CLUSTER_UNTESTED

      @@ -5356,37 +22458,36 @@

      - -

      -2011-06-22 09:05:28 -0700 -
      Michael Vrhel
      +


      +

      2011-06-22 09:05:28 -0700 + +
      Michael Vrhel <michael.vrhel@artifex.com>
      e3def0b758231cd1c5c0510945cef0dd3d938393

      - -
      -Support for fast thresholding to CMYK planar devices +

      + Support for fast thresholding to CMYK planar devices

      -Code works for various orientations for color as well as indexed (mono) images. + 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 + 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 + rendering issue during the buffer clean up with landscape images. These
      -will be resolved shortly. For now, code is sufficiently complete to begin + will be resolved shortly. For now, code is sufficiently complete to begin
      -timing testing and optimizations. To use specify + timing testing and optimizations. To use specify

      --dCOLORSCREEN -sDEVICE=plank + -dCOLORSCREEN -sDEVICE=plank

      -and enable processing of color images by setting use_fast_thresh = true + and enable processing of color images by setting use_fast_thresh = true
      -on line 67 in gxicolor.c + on line 67 in gxicolor.c

      @@ -5404,19 +22505,18 @@

      - -

      -2011-06-21 18:52:03 +0100 -
      Robin Watts
      +


      +

      2011-06-21 18:52:03 +0100 + +
      Robin Watts <Robin.Watts@artifex.com>
      fef629cab877b0bbf4f86777f37038d1f37de838

      - -
      -Fix cut/paste tiffscaled typo in docs. +

      + Fix cut/paste tiffscaled typo in docs.

      -CLUSTER_UNTESTED. + CLUSTER_UNTESTED.

      @@ -5424,31 +22524,30 @@

      - -

      -2011-06-21 16:45:52 +0100 -
      Chris Liddell
      +


      +

      2011-06-21 16:45:52 +0100 + +
      Chris Liddell <chris.liddell@artifex.com>
      368e14c73337b42a24299445a660f029d2c26861

      - -
      -Reinstate the configure check for cups/raster.h. +

      + Reinstate the configure check for cups/raster.h.

      -Several Linux distributions seem to have neglected to make + Several Linux distributions seem to have neglected to make
      -the cups development package depend on the cupsimage + the cups development package depend on the cupsimage
      -development package, but we need both for the cups device. + development package, but we need both for the cups device.

      -No cluster differences expected. + No cluster differences expected.

      -CLUSTER_UNTESTED + CLUSTER_UNTESTED

      @@ -5456,37 +22555,36 @@

      - -

      -2011-06-21 12:31:45 +0100 -
      Ken Sharp
      +


      +

      2011-06-21 12:31:45 +0100 + +
      Ken Sharp <ken.sharp@artifex.com>
      dfc53c791d8a121273bd22bbc0c04fd3ed375cdf

      - -
      -Bug #692218 Create comatible CIDSet +

      + Bug #692218 Create comatible CIDSet

      -The fix in Bug 692218 did not (apparently) work for the SolidWorks + 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 + 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 + be the number of glyphs in the font program, and makes the number of entries
      -in a CIDToGIDMap the same. + in a CIDToGIDMap the same.

      -Together with the commit 27b740 here: + Together with the commit 27b740 here:

      -http://ghostscript.com/pipermail/gs-cvs/2011-June/013024.html + http://ghostscript.com/pipermail/gs-cvs/2011-June/013024.html

      -this now seems to work correctly. + this now seems to work correctly.

      @@ -5494,33 +22592,32 @@

      - -

      -2011-06-21 12:08:58 +0100 -
      Ken Sharp
      +


      +

      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. +

      + 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, + 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 + 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 + 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. + 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 + 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 + 64-bit code is not tested. However it continues to work normally with the
      -clustre regression tests. + clustre regression tests.

      @@ -5540,57 +22637,56 @@

      - -

      -2011-06-20 17:57:46 +0100 -
      Robin Watts
      +


      +

      2011-06-20 17:57:46 +0100 + +
      Robin Watts <Robin.Watts@artifex.com>
      da1152191fb97516b82303ab187b08c971bfd360

      - -
      -Fix Bug 692057, 'hang' while converting mask->rectangle list. +

      + Fix Bug 692057, 'hang' while converting mask->rectangle list.

      -Previously the clip accumulator code would attempt to add a new + Previously the clip accumulator code would attempt to add a new
      -rectangle would always search backwards from the tail of the + rectangle would always search backwards from the tail of the
      -list when looking for a new place to insert a rectangle. + list when looking for a new place to insert a rectangle.

      -This works well when rectangles are coming in at (or near) the + 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 + end of the list. For cases where this doesn't happen we quickly
      -break down to O(n^2) operation. + break down to O(n^2) operation.

      -The example file on the bug shows one such circumstance, where + The example file on the bug shows one such circumstance, where
      -we process a landscape image; this results in the masks coming + we process a landscape image; this results in the masks coming
      -in as '8 bit columns'. The first column accumulates nicely, + in as '8 bit columns'. The first column accumulates nicely,
      -subsequent ones do not. + subsequent ones do not.

      -The fix here, as suggested by Chris Liddell, is to store the + The fix here, as suggested by Chris Liddell, is to store the
      -'last insert point', and to search from that. Locality of + 'last insert point', and to search from that. Locality of
      -reference should pay off here and lead to much improved + reference should pay off here and lead to much improved
      -performance. Certainly tests with the example file show that we + performance. Certainly tests with the example file show that we
      -complete within 2.5 minutes on my machine, compared to 1.5 minutes + complete within 2.5 minutes on my machine, compared to 1.5 minutes
      -with -dMaxPatternBitmap=32000000, and an unknown time over 5 minutes + with -dMaxPatternBitmap=32000000, and an unknown time over 5 minutes
      -with the old code. + with the old code.

      @@ -5602,29 +22698,27 @@

      - -

      -2011-06-20 09:56:37 -0600 -
      Henry Stiles
      +


      +

      2011-06-20 09:56:37 -0600 + +
      Henry Stiles <henry.stiles@artifex.com>
      19f10a95bae408363a77f5a2fd05f69350269cb7

      - -
      -Merge branch 'deprecate_crd_and_cleanup' +

      + Merge branch 'deprecate_crd_and_cleanup'

      - -

      -2011-06-03 00:15:50 -0600 -
      Henry Stiles
      +


      +

      2011-06-03 00:15:50 -0600 + +
      Henry Stiles <henry.stiles@artifex.com>
      476256194a8886951885a4e9ce71972504161192

      - -
      -Deprecate CRDs in PCL +

      + Deprecate CRDs in PCL

      @@ -5656,15 +22750,14 @@

      - -

      -2011-06-02 16:55:55 -0600 -
      Henry Stiles
      +


      +

      2011-06-02 16:55:55 -0600 + +
      Henry Stiles <henry.stiles@artifex.com>
      1c1c457a4262f1ef539ec75792c57494c8a746b2

      - -
      -Trivial warning fixes +

      + Trivial warning fixes

      @@ -5674,15 +22767,14 @@

      - -

      -2011-06-02 14:18:35 -0600 -
      Henry Stiles
      +


      +

      2011-06-02 14:18:35 -0600 + +
      Henry Stiles <henry.stiles@artifex.com>
      854a16b3eefc0d3b434f446db84e3a9317eda49e

      - -
      -Make page size procedure robust against paper size table changes. +

      + Make page size procedure robust against paper size table changes.

      @@ -5690,15 +22782,14 @@

      - -

      -2011-06-01 11:52:40 -0600 -
      Henry Stiles
      +


      +

      2011-06-01 11:52:40 -0600 + +
      Henry Stiles <henry.stiles@artifex.com>
      b89ab3397895d41818170a7f4ea893bbb1580e79

      - -
      -Clean up warnings and problems identified with static analysis. +

      + Clean up warnings and problems identified with static analysis.

      @@ -5724,21 +22815,20 @@

      - -

      -2011-05-27 14:30:10 -0600 -
      Henry Stiles
      +


      +

      2011-05-27 14:30:10 -0600 + +
      Henry Stiles <henry.stiles@artifex.com>
      22b24ea5e3006b4cdc0394c9360423f02b6d3bf9

      - -
      -Code cleanup directed by static analysis tools. +

      + Code cleanup directed by static analysis tools.

      -Changes function not properly made static, removes unread and unused + Changes function not properly made static, removes unread and unused
      -variables. + variables.

      @@ -5750,15 +22840,14 @@

      - -

      -2011-05-27 13:48:38 -0600 -
      Henry Stiles
      +


      +

      2011-05-27 13:48:38 -0600 + +
      Henry Stiles <henry.stiles@artifex.com>
      00d4d232283b2eb6c9820618d04b5d4c9eb8a7b3

      - -
      -Makes procedure static. +

      + Makes procedure static.

      @@ -5766,19 +22855,18 @@

      - -

      -2011-05-27 13:45:03 -0600 -
      Henry Stiles
      +


      +

      2011-05-27 13:45:03 -0600 + +
      Henry Stiles <henry.stiles@artifex.com>
      d98ceb81d6d45f4a2bc49b2f28dd16fe94fea601

      - -
      -Fixes static analyzer discovered logic error. +

      + Fixes static analyzer discovered logic error.

      -With an array size of 0, the line dash pattern should not be accessed. + With an array size of 0, the line dash pattern should not be accessed.

      @@ -5786,29 +22874,28 @@

      - -

      -2011-06-20 15:43:34 +0100 -
      Ken Sharp
      +


      +

      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 +

      + Permit the calculation of CIDSet and CIDToGIDMap size, for PDF/A validation

      -The SolidWorks PDF/A validator complains about the CIDSet we produce for + The SolidWorks PDF/A validator complains about the CIDSet we produce for
      -embedded TrueType fonts, converted to CIDFonts, when creating PDF/A files. + 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 + 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 + our customer to resolve this. In the meantime, this code makes it easier
      -to play with teh emission of CIDSet and CIDToGIDMap. + to play with teh emission of CIDSet and CIDToGIDMap.

      @@ -5824,31 +22911,30 @@

      - -

      -2011-06-20 11:17:26 +0100 -
      Ken Sharp
      +


      +

      2011-06-20 11:17:26 +0100 + +
      Ken Sharp <ken.sharp@artifex.com>
      27b7404218093f3d1cf414b52721c8a24dbc2746

      - -
      -ps2write output crashes with limitcheck error after converting large documents +

      + ps2write output crashes with limitcheck error after converting large documents

      -Adopting patch from 'Steve166' (bug # 692172) with a little gratuitous + Adopting patch from 'Steve166' (bug # 692172) with a little gratuitous
      -reformatting. (note that opdfread.ps is now compiled in as opdfread.h) + 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 + 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. + which allows for a more or less unlimited (64k*64k) number of objects.

      -No cluster differences expected. + No cluster differences expected.

      @@ -5858,15 +22944,14 @@

      - -

      -2011-06-20 03:12:22 -0700 -
      Marcos H. Woehrmann
      +


      +

      2011-06-20 03:12:22 -0700 + +
      Marcos H. Woehrmann <marcos.woehrmann@artifex.com>
      0700f67de273e92f06a1e4a0e67e3d023fc29442

      - -
      -Added dependencies to various makefiles to fix parallel make. +

      + Added dependencies to various makefiles to fix parallel make.

      @@ -5876,21 +22961,20 @@

      - -

      -2011-06-17 23:20:30 +0000 -
      Robin Watts
      +


      +

      2011-06-17 23:20:30 +0000 + +
      Robin Watts <robin@ghostscript.com>
      29c7111f3fc5eb4878e875674750c79b1bd85bcc

      - -
      -Add gdevplan.c to ghostscript visual studio project. +

      + Add gdevplan.c to ghostscript visual studio project.

      -Should have done this earlier, but forgot. CLUSTER UNTESTED as windows + Should have done this earlier, but forgot. CLUSTER UNTESTED as windows
      -only. + only.

      @@ -5898,25 +22982,24 @@

      - -

      -2011-06-17 21:08:49 +0100 -
      Robin Watts
      +


      +

      2011-06-17 21:08:49 +0100 + +
      Robin Watts <Robin.Watts@artifex.com>
      75e1e089f68480b68bb9548ba1e6cf0b9d0f73e0

      - -
      -Fix windows compile breakage; missing definition of int64_t. +

      + Fix windows compile breakage; missing definition of int64_t.

      -Simply add a #include "stdint_.h" to the top of a file; breakage + Simply add a #include "stdint_.h" to the top of a file; breakage
      -presumably caused by the dependency changes done earlier. + presumably caused by the dependency changes done earlier.

      -CLUSTER_UNTESTED. + CLUSTER_UNTESTED.

      @@ -5924,19 +23007,18 @@

      - -

      -2011-06-17 12:34:26 -0700 -
      Michael Vrhel
      +


      +

      2011-06-17 12:34:26 -0700 + +
      Michael Vrhel <michael.vrhel@artifex.com>
      b058182285c21ff142e46997fd3b8510b6993d66

      - -
      -Fix for improper offset in contone data. Halftone project only. +

      + Fix for improper offset in contone data. Halftone project only.

      -CLUSTER_UNTESTED + CLUSTER_UNTESTED

      @@ -5944,27 +23026,26 @@

      - -

      -2011-06-17 12:32:11 -0700 -
      Michael Vrhel
      +


      +

      2011-06-17 12:32:11 -0700 + +
      Michael Vrhel <michael.vrhel@artifex.com>
      096e21027a7ff99cf0e3d0d1e24dac29b2d69f12

      - -
      -Fix for Bug 692286 - Image too light -- not fully opaque +

      + 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 + 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 + 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 + 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 + 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. + solution is that we have to write the blend parameters in all bands.

      @@ -5972,35 +23053,34 @@

      - -

      -2011-06-17 10:37:44 -0700 -
      Ray Johnston
      +


      +

      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. +

      + 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 + 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 + 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 + 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 + j0, i0 loop in tile by steps calculated a VERY large loop range from large
      -negative to large positive value. + negative to large positive value.

      -The gx_path_translate may not be needed for in this path, but it is included + 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 + 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. + path is empty as expected, but the call is harmless.

      @@ -6008,29 +23088,28 @@

      - -

      -2011-06-17 19:43:09 +0100 -
      Robin Watts
      +


      +

      2011-06-17 19:43:09 +0100 + +
      Robin Watts <Robin.Watts@artifex.com>
      9dd7c86d0619a9293f6476092765b86abab3baf1

      - -
      -Move planar dev_spec_op into core planar device. +

      + Move planar dev_spec_op into core planar device.

      -Rather than having plib and plan devices provide a dev_spec_op that + Rather than having plib and plan devices provide a dev_spec_op that
      -responds to gxdso_is_native_planar, put the responsibility for this + responds to gxdso_is_native_planar, put the responsibility for this
      -into the core planar memory device. + into the core planar memory device.

      -This not only simplifies the code, it actually fixes a problem whereby + This not only simplifies the code, it actually fixes a problem whereby
      -the memory device was overwriting it with the default. + the memory device was overwriting it with the default.

      @@ -6042,19 +23121,18 @@

      - -

      -2011-06-03 09:55:57 -0700 -
      Ray Johnston
      +


      +

      2011-06-03 09:55:57 -0700 + +
      Ray Johnston <ray.johnston@artifex.com>
      a2a0b404be0365a2f789e154733ab51db3b3aa99

      - -
      -Add an example that uses PostScript to do simple transparency. +

      + Add an example that uses PostScript to do simple transparency.

      -CLUSTER_UNTESTED. + CLUSTER_UNTESTED.

      @@ -6062,19 +23140,18 @@

      - -

      -2011-06-17 17:53:53 +0000 -
      Robin Watts
      +


      +

      2011-06-17 17:53:53 +0000 + +
      Robin Watts <robin@ghostscript.com>
      f80bc7001e2e250348a6db82aa50d25d18848b66

      - -
      -Enable plan devices in non-windows builds. +

      + Enable plan devices in non-windows builds.

      -No cluster differences expected. + No cluster differences expected.

      @@ -6084,27 +23161,26 @@

      - -

      -2011-06-17 17:11:27 +0000 -
      Robin Watts
      +


      +

      2011-06-17 17:11:27 +0000 + +
      Robin Watts <robin@ghostscript.com>
      4ed123916f3f3373d5648011ea03c3cd969e00c1

      - -
      -Fix for Bug 692285: phase shift in patterns in long image. +

      + Fix for Bug 692285: phase shift in patterns in long image.

      -The phase for a pattern mask was being held in a short, rather + The phase for a pattern mask was being held in a short, rather
      -than in an int. Unsurprisingly this caused problems when the + than in an int. Unsurprisingly this caused problems when the
      -phase overflowed. Simple fix is to use an int instead. + phase overflowed. Simple fix is to use an int instead.

      -Cluster testing shows no changes. + Cluster testing shows no changes.

      @@ -6112,33 +23188,32 @@

      - -

      -2011-06-17 13:21:05 +0100 -
      Chris Liddell
      +


      +

      2011-06-17 13:21:05 +0100 + +
      Chris Liddell <chris.liddell@artifex.com>
      b8326c843f0d14b55b7b5cc3694977df73d4a0e4

      - -
      -Remove circular dependency involving gscms.h. +

      + Remove circular dependency involving gscms.h.

      -Robin Watts identified that gscms.h relies on gsutil.h + Robin Watts identified that gscms.h relies on gsutil.h
      -which relies on gxstate.h, which relies on gscspace.h which + which relies on gxstate.h, which relies on gscspace.h which
      -relies on gscms.h + relies on gscms.h

      -Adding a couple of opaque declarations to gscspace.h (along with + Adding a couple of opaque declarations to gscspace.h (along with
      -relevant declaration guards) removes this circular dependency. + relevant declaration guards) removes this circular dependency.

      -No cluster differences. + No cluster differences.

      @@ -6148,15 +23223,14 @@

      - -

      -2011-06-17 09:43:21 +0100 -
      Chris Liddell
      +


      +

      2011-06-17 09:43:21 +0100 + +
      Chris Liddell <chris.liddell@artifex.com>
      af98a55ac576545d9495cef0884462b7b2fb8205

      - -
      -Tidy up some of the GS<->FT number conversions. +

      + Tidy up some of the GS<->FT number conversions.

      @@ -6164,35 +23238,34 @@

      - -

      -2011-06-17 09:49:14 +0000 -
      Robin Watts
      +


      +

      2011-06-17 09:49:14 +0000 + +
      Robin Watts <robin@ghostscript.com>
      7a8971739d33a18dd7d433adcabf2e2dea5b6ba8

      - -
      -New lib.mak dependency checker, and update lib.mak using it. +

      + New lib.mak dependency checker, and update lib.mak using it.

      -Invoke gs/toolbin/checkdeps.pl and it performs rudimentary + Invoke gs/toolbin/checkdeps.pl and it performs rudimentary
      -and easily confused checks on the dependencies in lib.mak. + and easily confused checks on the dependencies in lib.mak.
      -It may be simple, but it spots MANY problems, the important + It may be simple, but it spots MANY problems, the important
      -of which are fixed here. + of which are fixed here.

      -It gets easily confused by files not being in the expected + It gets easily confused by files not being in the expected
      -paths (but these are easy for an operator to spot and ignore). + paths (but these are easy for an operator to spot and ignore).

      -No cluster differences expected. + No cluster differences expected.

      @@ -6204,33 +23277,32 @@

      - -

      -2011-06-17 09:30:32 +0100 -
      Chris Liddell
      +


      +

      2011-06-17 09:30:32 +0100 + +
      Chris Liddell <chris.liddell@artifex.com>
      2cd56d061e655569ec473d605caae9552355a59f

      - -
      -Bug 689546: Add clist.dev to the core lib dependencies. +

      + Bug 689546: Add clist.dev to the core lib dependencies.

      -I previously noted that the clist device is essentially always required + 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 + now, but I used a less than ideal method to address it: having it as
      -a dependency of the gdevprn.o object. + a dependency of the gdevprn.o object.

      -The correct solution, done here, is to include the clist device in the + 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. + libs.dev file, thus making it a direct requirement of the core lib.

      -No cluster differences. + No cluster differences.

      @@ -6238,25 +23310,24 @@

      - -

      -2011-06-16 12:11:41 -0700 -
      Michael Vrhel
      +


      +

      2011-06-16 12:11:41 -0700 + +
      Michael Vrhel <michael.vrhel@artifex.com>
      449e9c8909e5e0cbf92497f1d95bfe60e8e89f6e

      - -
      -Addition of copy_plane command for clist +

      + Addition of copy_plane command for clist

      -The command closely mimics the copy_mono command and as such shares its + 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 + 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 + code reduction but the recursive nature of the functions makes it a bit
      -tricky. + tricky.

      @@ -6276,65 +23347,64 @@

      - -

      -2011-06-16 14:55:07 +0100 -
      Robin Watts
      +


      +

      2011-06-16 14:55:07 +0100 + +
      Robin Watts <Robin.Watts@artifex.com>
      e34770c45cefbe6c4cf2d564269ff849282dd10f

      - -
      -Second attempt to add plan devices. +

      + Second attempt to add plan devices.

      -Add new 'plan' family of planar devices. + Add new 'plan' family of planar devices.

      -Equivalent to the plib devices, but without the necessity to always band, + Equivalent to the plib devices, but without the necessity to always band,
      -and not using the band donor. + and not using the band donor.

      -From the end users point of view, these output ppm etc and are probably + 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 + 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 + us to test planar output, and to act as a basis for devices that need
      -planar non-interlaced output. + planar non-interlaced output.

      -The development of these devices showed a problem with + The development of these devices showed a problem with
      -gx_get_bits_return_pointer in the planar case. When called, it would + 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 + assume that the start of the first line of the first plane was at
      -'base', and that subsequent planes could be reached by adding + 'base', and that subsequent planes could be reached by adding
      -raster * height to it. Unfortunately, clist_rasterize_lines resets the + raster * height to it. Unfortunately, clist_rasterize_lines resets the
      -buffer device at the end, so that height is unrelated (often 1). + 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 + 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 + a pointer to the line pointers, rather than a direct base value. This
      -means we can always find the subsequent planes correctly. + means we can always find the subsequent planes correctly.

      -In my initial attempt at this, I broke the code by failing to notice that + 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. + gdevmem.c passes the same base pointer to gx_get_bits_copy. Fixed here.
      -Cluster testing shows it be OK this time around. + Cluster testing shows it be OK this time around.

      @@ -6356,21 +23426,20 @@

      - -

      -2011-06-16 11:49:18 +0000 -
      Robin Watts
      +


      +

      2011-06-16 11:49:18 +0000 + +
      Robin Watts <robin@ghostscript.com>
      11e242eae4d9c78a556b030ef5e69cb0c94e0d48

      - -
      -Backout previous commit of 'plan' devices. +

      + Backout previous commit of 'plan' devices.

      -The previous commit caused large numbers of changes. Back it out while + The previous commit caused large numbers of changes. Back it out while
      -I investigate why. + I investigate why.

      @@ -6392,31 +23461,30 @@

      - -

      -2011-06-16 10:00:33 +0100 -
      Robin Watts
      +


      +

      2011-06-16 10:00:33 +0100 + +
      Robin Watts <Robin.Watts@artifex.com>
      583e964a55bf50dc28d1467fd9e9bad7bc03849a

      - -
      -Add new 'plan' family of planar devices. +

      + Add new 'plan' family of planar devices.

      -Equivalent to the plib devices, but without the necessity to always band, + Equivalent to the plib devices, but without the necessity to always band,
      -and not using the band donor. + and not using the band donor.

      -From the end users point of view, these output ppm etc and are probably + 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 + 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 + us to test planar output, and to act as a basis for devices that need
      -planar non-interlaced output. + planar non-interlaced output.

      @@ -6438,27 +23506,26 @@

      - -

      -2011-06-14 18:56:03 +0100 -
      Robin Watts
      +


      +

      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. +

      + Update gx_path_print (and gx_path_dump) to output postscript.

      -Same information as before is output, just in a a slightly different + 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 + order. This means we can paste it back into a postscript file with
      -less editing. + less editing.

      -CLUSTER_UNTESTED as this is never called in production code. + CLUSTER_UNTESTED as this is never called in production code.

      @@ -6466,23 +23533,22 @@

      - -

      -2011-06-14 19:15:29 +0100 -
      Robin Watts
      +


      +

      2011-06-14 19:15:29 +0100 + +
      Robin Watts <Robin.Watts@artifex.com>
      c442d7d0d5b11addc39519b155b93b3677c11c4d

      - -
      -Add memento.c/memento.h to VS project +

      + Add memento.c/memento.h to VS project

      -Forgot to add these when they were created. + Forgot to add these when they were created.

      -CLUSTER_UNTESTED as windows only. + CLUSTER_UNTESTED as windows only.

      @@ -6490,19 +23556,18 @@

      - -

      -2011-06-16 09:56:47 +0100 -
      Ken Sharp
      +


      +

      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. +

      + Extend the uuid change in commit g0b7cd7c to cover Instance UIDs as well as Document UIDs.

      -No differences expetced. + No differences expetced.

      @@ -6510,27 +23575,26 @@

      - -

      -2011-06-15 19:36:31 +0100 -
      Ken Sharp
      +


      +

      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" +

      + (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 + 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 + of 256 entries. Fixed by treating them as TrueType CIDFonts (2 byte codes, maximum
      -64K entries) + 64K entries)

      -This may need later testing with more extensive collections of conts, we possibly should treat them as regular CIDFotns. + This may need later testing with more extensive collections of conts, we possibly should treat them as regular CIDFotns.

      @@ -6538,23 +23602,22 @@

      - -

      -2011-06-15 12:18:16 -0400 -
      Alex Cherepanov
      +


      +

      2011-06-15 12:18:16 -0400 + +
      Alex Cherepanov <alex.cherepanov@artifex.com>
      10fad95042303b1996d8565a40d8ca4d5c4eed06

      - -
      -Dump unchanged MediaBox and CropBox values. +

      + Dump unchanged MediaBox and CropBox values.

      -Output unmodified values of /MediaBox and /CropBox attributes. + Output unmodified values of /MediaBox and /CropBox attributes.
      -This is done on request from a customer, but should also benefit + This is done on request from a customer, but should also benefit
      -every pdf_info.ps user. This change is not backward compatible. + every pdf_info.ps user. This change is not backward compatible.

      @@ -6562,29 +23625,28 @@

      - -

      -2011-06-15 01:53:26 -0400 -
      Alex Cherepanov
      +


      +

      2011-06-15 01:53:26 -0400 + +
      Alex Cherepanov <alex.cherepanov@artifex.com>
      28ab2c1fafd763c7ab1074c91bf217bbbc871fe7

      - -
      -Bug 691335: Fix Photoshop EPS separations. +

      + Bug 691335: Fix Photoshop EPS separations.

      -Use DSC comments to get separation names. If the output device supports + Use DSC comments to get separation names. If the output device supports
      -separations (i.e. has big /MaxSeparations attribute), set /SeparationColorNames + separations (i.e. has big /MaxSeparations attribute), set /SeparationColorNames
      -accordingly. Fix DSC handler; make it ignore the comments after %%EndComments + accordingly. Fix DSC handler; make it ignore the comments after %%EndComments
      -to avoid handling of DSC comments in nested EPS documents. Drop strange + 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 + code that runs tint transform function when any of the colorant names is
      -is a standard name (Gray, Red, Cyan, ...). + is a standard name (Gray, Red, Cyan, ...).

      @@ -6594,27 +23656,26 @@

      - -

      -2011-06-14 16:52:57 +0100 -
      Ken Sharp
      +


      +

      2011-06-14 16:52:57 +0100 + +
      Ken Sharp <ken.sharp@artifex.com>
      0b7cd7ca121ac440d5607cc6795ba8bcd7c20c85

      - -
      -(pdfwrite) Bug #692268 "pdfwrite sets xapMM:DocumentID incorrectly" +

      + (pdfwrite) Bug #692268 "pdfwrite sets xapMM:DocumentID incorrectly"

      -The XML emission in pdfwrite was simply pasting the UUID as a hex string, + The XML emission in pdfwrite was simply pasting the UUID as a hex string,
      -whereas the spec says it must be a URI. + whereas the spec says it must be a URI.

      -This change adds the 'uri:' which is required for compliance. + This change adds the 'uri:' which is required for compliance.
      -No cluster differences expected. + No cluster differences expected.

      @@ -6622,29 +23683,28 @@

      - -

      -2011-05-26 10:58:31 +0100 -
      Ken Sharp
      +


      +

      2011-05-26 10:58:31 +0100 + +
      Ken Sharp <ken.sharp@artifex.com>
      cba939306ceacde74aac1d9b69ca6cf08ce1ebce

      - -
      -Use correct enumerator for PCL type 3 fonts in pdfwrite +

      + Use correct enumerator for PCL type 3 fonts in pdfwrite

      -Part of the change for type 3 fonts from PCL used the wrong enumerator. + 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, + 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 + which is guaranteed true if we use the right one, but may not be if we
      -use the wrong one. + use the wrong one.

      -This didn't seem to be causing any problems, but fixed anyway. + This didn't seem to be causing any problems, but fixed anyway.

      @@ -6652,23 +23712,22 @@

      - -

      -2011-06-11 20:52:20 -0400 -
      Ken Sharp
      +


      +

      2011-06-11 20:52:20 -0400 + +
      Ken Sharp <ken.sharp@artifex.com>
      49ae789184ebb094c29b14a6778e8fa823f6637a

      - -
      -Bug 691706: Keep page number with /View +

      + Bug 691706: Keep page number with /View

      -If we have a View and a Page, but no matrix (not required if we have + 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 + 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). + /Page argument (adding one because pdfmark starts from page 1, not 0).

      @@ -6676,27 +23735,26 @@

      - -

      -2011-06-11 16:26:11 -0700 -
      Michael Vrhel
      +


      +

      2011-06-11 16:26:11 -0700 + +
      Michael Vrhel <michael.vrhel@artifex.com>
      03bce08fdcb15702abf4cafbe8723dc8b9b7bd6f

      - -
      -Fix for aliasing of icc link hash code +

      + Fix for aliasing of icc link hash code

      -This fixes a problem that existed in the computation of the ICC + 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 + 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 + 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 + addition of code to handle the transfer function when doing the fast
      -thresholding of color images. + thresholding of color images.

      @@ -6714,23 +23772,22 @@

      - -

      -2011-06-11 10:27:53 -0400 -
      Alex Cherepanov
      +


      +

      2011-06-11 10:27:53 -0400 + +
      Alex Cherepanov <alex.cherepanov@artifex.com>
      4c6809dfa1c539d757c30f572922e05cd1436698

      - -
      -Bug 692252: Trap contents stream errors +

      + Bug 692252: Trap contents stream errors

      -Run PDF operator streams in a stopped context. Stop processing of the + 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 + stream on error, but continue to process rest of the file. Remove a
      -hack that defined 'inf' as 0. + hack that defined 'inf' as 0.

      @@ -6740,21 +23797,20 @@

      - -

      -2011-06-10 00:10:39 -0400 -
      Alex Cherepanov
      +


      +

      2011-06-10 00:10:39 -0400 + +
      Alex Cherepanov <alex.cherepanov@artifex.com>
      f256d925aba7bd2c552e3598b5782bc3ab09cf4f

      - -
      -Bug 692258: Search annots, forms, patterns for fonts. +

      + Bug 692258: Search annots, forms, patterns for fonts.

      -Besides the contents, look into annotations to identify fonts used by + Besides the contents, look into annotations to identify fonts used by
      -the PDF file. Add recursive enumeration of Form and Pattern resources. + the PDF file. Add recursive enumeration of Form and Pattern resources.

      @@ -6762,33 +23818,32 @@

      - -

      -2011-06-09 16:07:15 +0100 -
      Robin Watts
      +


      +

      2011-06-09 16:07:15 +0100 + +
      Robin Watts <Robin.Watts@artifex.com>
      ce51b64c335d6c995c003497988d0327c64985cb

      - -
      -Add Sags unicode patch for gswin32c stdin/out. +

      + Add Sags unicode patch for gswin32c stdin/out.

      -Patch from Sags to read/write stdin/stdout as unicode and convert + Patch from Sags to read/write stdin/stdout as unicode and convert
      -to/from utf8 when passing to/reading from the core. + to/from utf8 when passing to/reading from the core.

      -Once again, build with WINDOWS_NO_UNICODE to preserve old behaviour. + Once again, build with WINDOWS_NO_UNICODE to preserve old behaviour.

      -See bug 692770. + See bug 692770.

      -CLUSTER_UNTESTED. + CLUSTER_UNTESTED.

      @@ -6796,37 +23851,36 @@

      - -

      -2011-06-09 16:11:00 +0100 -
      Robin Watts
      +


      +

      2011-06-09 16:11:00 +0100 + +
      Robin Watts <Robin.Watts@artifex.com>
      c39c030b850848540a5df1fc25c4dc76ee90040b

      - -
      -More unicode changes for gswin32 +

      + More unicode changes for gswin32

      -Taken on (most of) a patch from Russell Lang to dwtext.c, with bugfixes + 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 + 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. + on, were to do with running gswin32 as a true Unicode application.

      -Currently we are an ANSI application with a Unicode window. Moving to + 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 + 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 + (and would certainly leave us different to gswin32c.exe). I don't think
      -we lose anything by staying as we are. + we lose anything by staying as we are.

      -CLUSTER_UNTESTED. + CLUSTER_UNTESTED.

      @@ -6834,31 +23888,30 @@

      - -

      -2011-06-09 12:09:38 +0100 -
      Chris Liddell
      +


      +

      2011-06-09 12:09:38 +0100 + +
      Chris Liddell <chris.liddell@artifex.com>
      752397ab6f16aad4147d6e7101373edd7c9d14d5

      - -
      -Bug 692263 spot and elide glyphs with zero dimensions. +

      + Bug 692263 spot and elide glyphs with zero dimensions.

      -A glyph with a zero scale in either dimension could cause divide by + 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 + 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 + (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 + the case early by skipping such case. The wrinkle is charpath operations
      -which *must* create a path, even of zero dimensions. + which *must* create a path, even of zero dimensions.

      -No cluster differences. + No cluster differences.

      @@ -6874,55 +23927,54 @@

      - -

      -2011-06-08 18:36:35 +0100 -
      Robin Watts
      +


      +

      2011-06-08 18:36:35 +0100 + +
      Robin Watts <Robin.Watts@artifex.com>
      199498069233c98424567d22964dd1934c9f766e

      - -
      -Windows gs console window unicode changes. +

      + Windows gs console window unicode changes.

      -Changes to dwtext.c to allow unicode operation. + Changes to dwtext.c to allow unicode operation.

      -The window is created as a Unicode one, so we get unicode character codes + 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 + 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 + into utf8, as the gs core expects. Any output from the core is converted
      -from utf8 to unicode, and the window now displays unicode. + from utf8 to unicode, and the window now displays unicode.

      -The net effect is that the window looks like it's behaving exactly like + The net effect is that the window looks like it's behaving exactly like
      -a unix window does. + a unix window does.

      -The copy and paste functions are updated to cut and paste unicode too. + The copy and paste functions are updated to cut and paste unicode too.

      -As usual, building with WINDOWS_NO_UNICODE preserves existing behaviour + As usual, building with WINDOWS_NO_UNICODE preserves existing behaviour
      -(useful for windows 95/98/me builds). + (useful for windows 95/98/me builds).

      -The sole difference in behaviour is that the copy function now removes + 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. + trailing blank lines from the output, as this is never what you want.

      -CLUSTER_UNTESTED as windows only changes. + CLUSTER_UNTESTED as windows only changes.

      @@ -6932,25 +23984,24 @@

      - -

      -2011-06-08 14:55:28 +0100 -
      Robin Watts
      +


      +

      2011-06-08 14:55:28 +0100 + +
      Robin Watts <Robin.Watts@artifex.com>
      afda147d56efff03ff6967a91a0436732d7b38fc

      - -
      -Tweaks to windows makefiles. +

      + Tweaks to windows makefiles.

      -Eliminate some noise during windows builds. Thanks to Norbert Janssen for + Eliminate some noise during windows builds. Thanks to Norbert Janssen for
      -this. + this.

      -CLUSTER_UNTESTED + CLUSTER_UNTESTED

      @@ -6960,19 +24011,18 @@

      - -

      -2011-06-08 10:05:21 +0100 -
      Robin Watts
      +


      +

      2011-06-08 10:05:21 +0100 + +
      Robin Watts <Robin.Watts@artifex.com>
      3367282be8da9713c0cd7a95a56c59a6b4e69a6e

      - -
      -Add file missed from last nights commit, 232b1d3. +

      + Add file missed from last nights commit, 232b1d3.

      -Forgot to add the new file :( + Forgot to add the new file :(

      @@ -6980,27 +24030,26 @@

      - -

      -2011-06-07 15:25:57 -0700 -
      Michael Vrhel
      +


      +

      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 +

      + 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. + 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. + 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. + 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 copy_plan operations in gxht_thresh.c for CMYK planar devices.
      -Addition of clip_copy_plane for the clip device (thanks Robin Watts). + Addition of clip_copy_plane for the clip device (thanks Robin Watts).

      @@ -7018,67 +24067,66 @@

      - -

      -2011-06-08 00:02:44 +0100 -
      Robin Watts
      +


      +

      2011-06-08 00:02:44 +0100 + +
      Robin Watts <Robin.Watts@artifex.com>
      232b1d36ad90b8d8be357033a80162fdd9de7aa8

      - -
      -More work on unicode handling under windows. +

      + More work on unicode handling under windows.

      -Continuing from commit 0ea739147, fix other issues, including: + Continuing from commit 0ea739147, fix other issues, including:

      -* OpenPrinter calls changed to use OpenPrinterW. + * OpenPrinter calls changed to use OpenPrinterW.
      -* FindFirstFile/FindNextFile changed to use FindFirstFileW/FindNextFileW. + * FindFirstFile/FindNextFile changed to use FindFirstFileW/FindNextFileW.
      -* gp_getenv windows specific registry lookups changed to use unicode + * gp_getenv windows specific registry lookups changed to use unicode
      -versions. + versions.
      -* GetProfileString changed to use GetProfileStringW. + * GetProfileString changed to use GetProfileStringW.
      -* Add unicode changes to gswin32 as well as gswin32c.exe. + * Add unicode changes to gswin32 as well as gswin32c.exe.

      -This hopefully concludes the bulk of the work on unicode support. Possible + This hopefully concludes the bulk of the work on unicode support. Possible
      -areas to consider in future include: + areas to consider in future include:

      -* changing gswin32 so that cut and pasting operates in unicode + * changing gswin32 so that cut and pasting operates in unicode
      -* make gswin32 display text in unicode + * make gswin32 display text in unicode
      -* modify stdin to go from unicode to utf8, and stdout to go from utf8 + * modify stdin to go from unicode to utf8, and stdout to go from utf8
      -back to unicode. + back to unicode.

      -I hope no idea if any of those are possible or not. + 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 + Testing seems to indicate that this all works OK, but I am not ideally
      -set up here. + set up here.

      -For safety, I have introduced a WINDOWS_NO_UNICODE define. If this is + 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 + predefined during a build then this will cause the code to drop back to
      -the old mode of operation. + the old mode of operation.

      @@ -7112,27 +24160,26 @@

      - -

      -2011-06-06 22:13:07 -0400 -
      Alex Cherepanov
      +


      +

      2011-06-06 22:13:07 -0400 + +
      Alex Cherepanov <alex.cherepanov@artifex.com>
      8b90a80fe86364c0b6c1cad12cfb241c66943c24

      - -
      -Bug 688064: Add AdjustWidth=WIDTH +

      + Bug 688064: Add AdjustWidth=WIDTH

      -Extend AdjustWidth option to support adjustment to any width. This option + Extend AdjustWidth option to support adjustment to any width. This option
      -now accepts the following values; + now accepts the following values;
      -0 - no adjustment, the same as before + 0 - no adjustment, the same as before
      -1 - low res fax adjustments, the same as before + 1 - low res fax adjustments, the same as before
      ->1 - adjust to the given width, regardless of the document width. + >1 - adjust to the given width, regardless of the document width.

      @@ -7156,73 +24203,72 @@

      - -

      -2011-06-06 21:00:41 +0100 -
      Robin Watts
      +


      +

      2011-06-06 21:00:41 +0100 + +
      Robin Watts <Robin.Watts@artifex.com>
      f92a542b0475a12f4724d3e57f232cafbe17ce50

      - -
      -Bug 691118: Fix radial shading bug +

      + Bug 691118: Fix radial shading bug

      -Bug 691118 describes a bug with radial shadings in a PDF file. + Bug 691118 describes a bug with radial shadings in a PDF file.

      -Back in r7982 (git 69a43b0) (16 May 2007) Igor introduced some cunning + 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 + code to speed radial shadings. It would spot that the shading was large
      -in comparison with the area being filled, and produce a smaller, + in comparison with the area being filled, and produce a smaller,
      -equivalent shading. + equivalent shading.

      -Essentially, it would take the destination rectangle, and figure out + Essentially, it would take the destination rectangle, and figure out
      -where in the shading the 'extremes' of that rectangle would come from + where in the shading the 'extremes' of that rectangle would come from
      -(allowing for distortion in shape generation) and ensure that the newly + (allowing for distortion in shape generation) and ensure that the newly
      -generated shading covered the same area. + generated shading covered the same area.

      -Either the corners of the rectangle could be extremes, or points on the + 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 + side. The code for the points on the sides was broken due to a typo
      -causing the X and Y cases to be switched. + causing the X and Y cases to be switched.

      -All that is required to solve the bug is to change the == to !=. + 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 + In researching the problem however, I recommented lots of the code to
      -make it more comprehensible (to me at least!) along with introducing + make it more comprehensible (to me at least!) along with introducing
      -some temporary variables to make it clearer and avoid needless + some temporary variables to make it clearer and avoid needless
      -recomputation of values. I am committing this as I believe it's a step + 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 + forward for the code, even though it doesn't actually make a
      -difference. + difference.

      -48 differences in non-pdfwrite/ps2write tests. 11 in pdfwrite, 17 in + 48 differences in non-pdfwrite/ps2write tests. 11 in pdfwrite, 17 in
      -ps2write. Checked with bmpcmp, all unnoticable to the naked eye, so + ps2write. Checked with bmpcmp, all unnoticable to the naked eye, so
      -presumably progressions. + presumably progressions.

      @@ -7230,49 +24276,48 @@

      - -

      -2011-06-06 14:59:09 +0100 -
      Robin Watts
      +


      +

      2011-06-06 14:59:09 +0100 + +
      Robin Watts <Robin.Watts@artifex.com>
      82dc5982726c8ea05c3be6faa2f370a62f11a94a

      - -
      -Fix Bug 689737: antialiasing issues with patterns. +

      + Fix Bug 689737: antialiasing issues with patterns.

      -Bug 689737 shows mismatches between rendering with and without + Bug 689737 shows mismatches between rendering with and without
      -antialiasing when PaintType 2 patterns are used. + antialiasing when PaintType 2 patterns are used.

      -Following Michaels analysis of the bug, the fix seems to be very simple; + 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 + when opening a pattern accumulator device, if the PaintType is 2, then
      -set color_info.anti_alias.graphics_bits to 1. We also set + 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 + color_info.anti_alias.text_bits to 1, even though this is unlikely to
      -make a difference if freetype is used. + make a difference if freetype is used.

      -No expected cluster differences as antialiasing isn't used in any + No expected cluster differences as antialiasing isn't used in any
      -cluster tests. + cluster tests.

      -This commit also removes a FIXME (as I've checked with Michael), and + 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 + improves the commenting on the device proc structure (which I'd done
      -when trying a different device proc based fix, but is an improvement + when trying a different device proc based fix, but is an improvement
      -anyway). + anyway).

      @@ -7280,23 +24325,22 @@

      - -

      -2011-06-05 23:42:14 -0400 -
      Alex Cherepanov
      +


      +

      2011-06-05 23:42:14 -0400 + +
      Alex Cherepanov <alex.cherepanov@artifex.com>
      a0720527bcabb2732c3c06dfe3cae1f9c9ea9318

      - -
      -Bug 692252: define 'inf' as 0 +

      + Bug 692252: define 'inf' as 0

      -Work around a bug in PDF file that has 'inf' instead of a number + 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 + in the content stream. Define a PDF operator 'inf' that returns 0
      -and issues a warning. + and issues a warning.

      @@ -7304,51 +24348,50 @@

      - -

      -2011-06-04 22:04:12 +0100 -
      Robin Watts
      +


      +

      2011-06-04 22:04:12 +0100 + +
      Robin Watts <Robin.Watts@artifex.com>
      0ea739147fd02ee0e63e58c036bb63fa841ddd3c

      - -
      -Bug 691222: Make windows build use UTF-8 encoding. +

      + Bug 691222: Make windows build use UTF-8 encoding.

      -We change the windows builds to use the 'wmain' rather than 'main' + 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 + 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 + rather than chars. We convert back to chars using UTF-8 encoding, and
      -call (what was) the main entrypoint. + call (what was) the main entrypoint.

      -This means that we can cope with unicode filenames/paths etc. + This means that we can cope with unicode filenames/paths etc.

      -To match the encoding, we therefore need to wrap every use of the + To match the encoding, we therefore need to wrap every use of the
      -filenames with the associated utf-8 -> wchar_t conversion and use + filenames with the associated utf-8 -> wchar_t conversion and use
      -the unicode file access functions (_wfopen instead of fopen etc) + the unicode file access functions (_wfopen instead of fopen etc)
      -instead. + instead.

      -Simple testing seems to indicate that this works. I think I've got + 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 + every occurence of file access, but it's possible I've missed some. If so
      -I'll fix them piecemeal as they are reported. + I'll fix them piecemeal as they are reported.

      -This should solve bug 691222, and hopefully 691117. + This should solve bug 691222, and hopefully 691117.

      @@ -7360,19 +24403,18 @@

      - -

      -2011-06-04 22:09:58 +0100 -
      Robin Watts
      +


      +

      2011-06-04 22:09:58 +0100 + +
      Robin Watts <Robin.Watts@artifex.com>
      4aff3e0d813cb00eb62db9720cf99b2d419f999a

      - -
      -Move various uses of fopen to use gp_fopen. +

      + Move various uses of fopen to use gp_fopen.

      -For portability we should be using gp_fopen, not fopen. + For portability we should be using gp_fopen, not fopen.

      @@ -7390,27 +24432,26 @@

      - -

      -2011-06-04 00:35:37 -0700 -
      Marcos H. Woehrmann
      +


      +

      2011-06-04 00:35:37 -0700 + +
      Marcos H. Woehrmann <marcos.woehrmann@artifex.com>
      77b456f298aeabaa4b27b63a9ead0aa0470ac5b8

      - -
      -Removed HAVE_HYPOT from configure scripts. +

      + Removed HAVE_HYPOT from configure scripts.

      -This revision disables checking for a system hypot() function and is + This revision disables checking for a system hypot() function and is
      -a followup to 7dcc68ce753175a9c686021d53a061253e2787c3 which modified + a followup to 7dcc68ce753175a9c686021d53a061253e2787c3 which modified
      -math_.h to always use our internal hypot() function. + math_.h to always use our internal hypot() function.

      -No expected cluster differences. + No expected cluster differences.

      @@ -7428,57 +24469,56 @@

      - -

      -2011-06-03 17:33:51 +0100 -
      Robin Watts
      +


      +

      2011-06-03 17:33:51 +0100 + +
      Robin Watts <Robin.Watts@artifex.com>
      31174084f95474f9c0edfd4c534c3b1654c02255

      - -
      -Fix bug 692226; stray pixels in skewed masked image +

      + Fix bug 692226; stray pixels in skewed masked image

      -When painting a masked image, we first plot a scanlines worth of + 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 + mask pixels to a mask plane. This is then used in a clipping device to
      -clip the image pixels that follow thereafter. + clip the image pixels that follow thereafter.

      -In the code that plots the masked pixels it currently gathers up 'runs' + 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 + 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 + 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 + 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 + gaps between subsequent rows of masked pixels, and b) get a mismatch
      -between the pixels covered by the mask and the image. These manifest + between the pixels covered by the mask and the image. These manifest
      -as holes in the image. + as holes in the image.

      -The image code already has a comment in it to the effect that we cannot + The image code already has a comment in it to the effect that we cannot
      -amalgamate large blocks due to rounding errors. + amalgamate large blocks due to rounding errors.

      -This fix therefore extends this policy (of not amalgamating) to skewed + This fix therefore extends this policy (of not amalgamating) to skewed
      -masked images too. + masked images too.

      -426 non-pdfwrite/pswrite differences expected. 79 pdfwrite. 31 ps2write. + 426 non-pdfwrite/pswrite differences expected. 79 pdfwrite. 31 ps2write.
      -Checked with bmpcmp and all seem either progressions or neutral. + Checked with bmpcmp and all seem either progressions or neutral.

      @@ -7486,25 +24526,24 @@

      - -

      -2011-06-03 19:07:47 +0100 -
      Robin Watts
      +


      +

      2011-06-03 19:07:47 +0100 + +
      Robin Watts <Robin.Watts@artifex.com>
      9c5325b7778074c3add1f682058260d7f8154386

      - -
      -Add clip_copy_plane device procedure. +

      + Add clip_copy_plane device procedure.

      -Cut and pasted with obvious changes from clip_copy_mono. Nothing remarkable + Cut and pasted with obvious changes from clip_copy_mono. Nothing remarkable
      -worth mentioning. + worth mentioning.

      -Not used in current code, so CLUSTER_UNTESTED. + Not used in current code, so CLUSTER_UNTESTED.

      @@ -7514,25 +24553,24 @@

      - -

      -2011-06-03 17:32:09 +0100 -
      Robin Watts
      +


      +

      2011-06-03 17:32:09 +0100 + +
      Robin Watts <Robin.Watts@artifex.com>
      7c8855aed043415063ad7472eb2af4320d4544eb

      - -
      -Add rasterop to FEATURE_DEVS in msvc makefile. +

      + Add rasterop to FEATURE_DEVS in msvc makefile.

      -The rasterop module is already added by default under unix, so this moves + The rasterop module is already added by default under unix, so this moves
      -windows into line. + windows into line.

      -CLUSTER_UNTESTED + CLUSTER_UNTESTED

      @@ -7540,27 +24578,26 @@

      - -

      -2011-06-03 12:29:50 -0400 -
      Alex Cherepanov
      +


      +

      2011-06-03 12:29:50 -0400 + +
      Alex Cherepanov <alex.cherepanov@artifex.com>
      636788a8e6d2133a7e3294ee4e1b573c64e1254a

      - -
      -Bug 691906, Drop symbolic flag with named encodings. +

      + Bug 691906, Drop symbolic flag with named encodings.

      -PDF font descriptor has 3 attributes that affect whether the TT font + 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 + is processed as symbolic one. The spec is not clear what to do when
      -the attributes conflict. This revision consigers fonts that have + the attributes conflict. This revision consigers fonts that have
      -/WinAnsiEncoding or /MacRomanEncoding as non-symbolic regardless of + /WinAnsiEncoding or /MacRomanEncoding as non-symbolic regardless of
      -the flags. + the flags.

      @@ -7568,25 +24605,24 @@

      - -

      -2011-06-02 20:49:27 -0700 -
      Michael Vrhel
      +


      +

      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 +

      + 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 + 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 + 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 + intent. Next step is to implement the usage of these profiles in the link
      -construction. + construction.

      @@ -7600,93 +24636,92 @@

      - -

      -2011-06-02 12:38:40 +0100 -
      Robin Watts
      +


      +

      2011-06-02 12:38:40 +0100 + +
      Robin Watts <Robin.Watts@artifex.com>
      585cac9d3aa6bca9e877c3e12ef3e28fd4f7f571

      - -
      -Fix bug 691152; gradients appear 'stepped'. +

      + Fix bug 691152; gradients appear 'stepped'.

      -The original bug report was that tiffsep and tiff24nc give noticably + The original bug report was that tiffsep and tiff24nc give noticably
      -different results. This turns out to be because tiffsep is set to use + different results. This turns out to be because tiffsep is set to use
      -non 'linear-and-separable' colours. + non 'linear-and-separable' colours.

      -When shadings are rendered, they are 'decomposed' down into smaller + When shadings are rendered, they are 'decomposed' down into smaller
      -and smaller regions, until they are smaller than a given threshold. + and smaller regions, until they are smaller than a given threshold.
      -These regions are then filled either with linear filled traps (in the + These regions are then filled either with linear filled traps (in the
      -linear and separable case) or with constant colour (in the non linear + 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 + and separable case). This means that we can get away with a larger
      -threshold in the linear and separable case (tiff24nc) and still see + threshold in the linear and separable case (tiff24nc) and still see
      -smooth results. + smooth results.

      -The original version of the code (pre SVN rev 7936) used to decompose + 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 + 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 + 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 + larger). Reverting to this original code solves the problem by making
      -the constant color regions small enough so that they still look + the constant color regions small enough so that they still look
      -smooth. + smooth.

      -There would therefore appear to be several possible approaches to + There would therefore appear to be several possible approaches to
      -solve the problem: + solve the problem:

      -1) We could back out the change in 7936. This trades time (27% in the + 1) We could back out the change in 7936. This trades time (27% in the
      -worst measured test case) for correctness. + worst measured test case) for correctness.

      -2) We could change tiffsep to use linear and separable colours. + 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 + 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 + shows easily visible differences in some files in other devices, for
      -example: + example:

      -tests_private/comparefiles/470-01.ps.pgmraw.300.0 + tests_private/comparefiles/470-01.ps.pgmraw.300.0

      -By default, the code now operates as pre revision 7936. Should the + By default, the code now operates as pre revision 7936. Should the
      -change in speed be considered unacceptable, gs can be build with the + change in speed be considered unacceptable, gs can be build with the
      -symbol MAX_SHADING_RESOLUTION defined to maximum dpi to which shadings + symbol MAX_SHADING_RESOLUTION defined to maximum dpi to which shadings
      -should be decomposed; building with -DMAX_SHADING_RESOLUTION=72 will + should be decomposed; building with -DMAX_SHADING_RESOLUTION=72 will
      -give the same results as the existing code. + give the same results as the existing code.

      @@ -7694,21 +24729,20 @@

      - -

      -2011-06-01 11:12:31 -0600 -
      Henry Stiles
      +


      +

      2011-06-01 11:12:31 -0600 + +
      Henry Stiles <henry.stiles@artifex.com>
      4132ef5d36ff63b2b84f9864b7240609ac84ac38

      - -
      -Enhance autoconf tests for SSE2 and byte swapping support. +

      + Enhance autoconf tests for SSE2 and byte swapping support.

      -Previously we only checked if the test programs compile, now we check + Previously we only checked if the test programs compile, now we check
      -if they compile and link. + if they compile and link.

      @@ -7718,23 +24752,22 @@

      - -

      -2011-06-01 16:22:40 +0100 -
      Robin Watts
      +


      +

      2011-06-01 16:22:40 +0100 + +
      Robin Watts <Robin.Watts@artifex.com>
      f83e6d48c33ff1edd2aecbe4482b8a1374808951

      - -
      -Tweak jbig2dec os_types.h for android mupdf build. +

      + Tweak jbig2dec os_types.h for android mupdf build.

      -If HAVE_STDINT_H is defined we are supposed to be getting our definitions + 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 + from stdint.h. Instead the header defines them anyway. Fix this. This showed
      -up when building MuPDF for Android. + up when building MuPDF for Android.

      @@ -7742,23 +24775,22 @@

      - -

      -2011-06-01 09:47:56 -0400 -
      Alex Cherepanov
      +


      +

      2011-06-01 09:47:56 -0400 + +
      Alex Cherepanov <alex.cherepanov@artifex.com>
      e895d3aae94fa6ca1c53c4e7a47f5894ee3c5943

      - -
      -Bug 591335: Get ink names from images. +

      + Bug 591335: Get ink names from images.

      -Fixes a bug in indexed color space handler that prevented proper + Fixes a bug in indexed color space handler that prevented proper
      -recursion into the base color space, and add /Image /XObject + recursion into the base color space, and add /Image /XObject
      -to the list of resources that are searched for separation color names. + to the list of resources that are searched for separation color names.

      @@ -7766,21 +24798,20 @@

      - -

      -2011-05-31 23:39:45 -0400 -
      Alex Cherepanov
      +


      +

      2011-05-31 23:39:45 -0400 + +
      Alex Cherepanov <alex.cherepanov@artifex.com>
      db4af9eaf902dbac931ca8c88c586df9d160fb72

      - -
      -Bug 692245: Make pattern handler more robust. +

      + Bug 692245: Make pattern handler more robust.

      -Make pattern handling code tolerant to pattern streams that leave + Make pattern handling code tolerant to pattern streams that leave
      -some junk on the operand stack. + some junk on the operand stack.

      @@ -7788,29 +24819,28 @@

      - -

      -2011-05-31 09:23:10 -0700 -
      Michael Vrhel
      +


      +

      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 +

      + Fix for issues in the setting of the newer ICC device parameters

      -This fixes issues that were introduced when I added the new device + This fixes issues that were introduced when I added the new device
      -parameters for rendering intent. Also, this adds in a new structure + parameters for rendering intent. Also, this adds in a new structure
      -for defining different ICC profiles for the SOURCE colors + for defining different ICC profiles for the SOURCE colors
      -of objects (e.g. text image graphic). This will be set as a user + 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 + parameter and stored in the icc manager. Next step in this is
      -to get things initialized and then use the associated profiles. + to get things initialized and then use the associated profiles.

      @@ -7828,25 +24858,24 @@

      - -

      -2011-05-31 01:14:21 -0700 -
      Marcos H. Woehrmann
      +


      +

      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. +

      + Change rsync max-size in clusterpush.pl to 10 megs.

      -To prevent accidently transferring large log files to the casper during + 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 + 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, + 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. + is 2.6 megs, so the max-size limit has been increased to 10 megs.

      @@ -7854,21 +24883,20 @@

      - -

      -2011-05-31 00:19:38 -0400 -
      Alex Cherepanov
      +


      +

      2011-05-31 00:19:38 -0400 + +
      Alex Cherepanov <alex.cherepanov@artifex.com>
      16e928c697f4282c830ab57b7e16347b0b5b086f

      - -
      -Bug 692242, drop outlines without /Title. +

      + Bug 692242, drop outlines without /Title.

      -Ignore outlines without a required /Title attribute and + Ignore outlines without a required /Title attribute and
      -issue a warning. + issue a warning.

      @@ -7876,37 +24904,36 @@

      - -

      -2011-05-30 20:26:53 +0100 -
      Robin Watts
      +


      +

      2011-05-30 20:26:53 +0100 + +
      Robin Watts <Robin.Watts@artifex.com>
      91b9580bf09b81126d6a99c6fe3e0048972fe3d0

      - -
      -Fix Bug 692225. Interpolate and Decode don't play nice. +

      + Fix Bug 692225. Interpolate and Decode don't play nice.

      -Bug 692225 gives an example where an Image with both a Decode array + Bug 692225 gives an example where an Image with both a Decode array
      -and interpolation set to true gives bad results. + and interpolation set to true gives bad results.

      -The problem was with a branch of the if in image_render_interpolate_icc + 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 + that was assuming that any decode array given was [0 1]. The fix here is
      -simply to test for whether need_decode is set. + simply to test for whether need_decode is set.

      -No changes seen on clusterpushing. + No changes seen on clusterpushing.

      -Check this with Michael quand il sont retourne. + Check this with Michael quand il sont retourne.

      @@ -7914,21 +24941,20 @@

      - -

      -2011-05-30 14:21:02 +0100 -
      Robin Watts
      +


      +

      2011-05-30 14:21:02 +0100 + +
      Robin Watts <Robin.Watts@artifex.com>
      9fd0b414427b58fc79dae23cb11607ea5fcd0890

      - -
      -Updated gitpush.sh script. +

      + Updated gitpush.sh script.

      -Fixed script in light of kens experiences. Better error messages, more + Fixed script in light of kens experiences. Better error messages, more
      -thorough (i.e. any!) checking. Some documentation in the script. + thorough (i.e. any!) checking. Some documentation in the script.

      @@ -7936,57 +24962,56 @@

      - -

      -2011-05-28 18:04:24 +0100 -
      Robin Watts
      +


      +

      2011-05-28 18:04:24 +0100 + +
      Robin Watts <Robin.Watts@artifex.com>
      543fd70fd3b6afc75a767ba1a41663ec3a982866

      - -
      -Excellently crufty gitpush script to interface with cluster. +

      + Excellently crufty gitpush script to interface with cluster.

      -In your local git repo, do the following: + In your local git repo, do the following:

      -git remote add regression@ghostscript.com:/home/regression/cluster/gitbridge/ghostpdl + 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 + Ensure that you are setup to be able to ssh into ghostscript.com as the
      -regression user. + regression user.

      -Then: + Then:

      -git config alias.cluster '!gs/toolbin/localcluster/gitpush.sh' + git config alias.cluster '!gs/toolbin/localcluster/gitpush.sh'

      -Then you can: + Then you can:

      -git cluster + git cluster <blah>

      -in exactly the same way as we used to be able to be able to: + in exactly the same way as we used to be able to be able to:

      -gs/toolbin/localcluster/clusterpush.pl + gs/toolbin/localcluster/clusterpush.pl <blah>

      -CLUSTER_UNTESTED. + CLUSTER_UNTESTED.

      @@ -7994,27 +25019,26 @@

      - -

      -2011-05-28 08:49:10 +0100 -
      Chris Liddell
      +


      +

      2011-05-28 08:49:10 +0100 + +
      Chris Liddell <chris.liddell@artifex.com>
      94f1a552f75647f142b85e5f30c075c19dde0084

      - -
      -Bug 692240: Gracefully handle incomplete FontBBox arrays. +

      + Bug 692240: Gracefully handle incomplete FontBBox arrays.

      -The FAPI code would throw an error if the FontBBox array had fewer + 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 + than four values. We'll now replace the broken array with a valid
      -one. + one.

      -No cluster differences expected. + No cluster differences expected.

      @@ -8022,23 +25046,22 @@

      - -

      -2011-05-27 10:15:08 -0700 -
      Ray Johnston
      +


      +

      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 +

      + 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 + 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 + 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. + as strings. Thanks to Norbert Janssen for finding this.

      @@ -8046,19 +25069,18 @@

      - -

      -2011-05-27 18:07:10 +0100 -
      Chris Liddell
      +


      +

      2011-05-27 18:07:10 +0100 + +
      Chris Liddell <chris.liddell@artifex.com>
      5974e9171854673d86e0c47a1d1cfef1ff9a5cb1

      - -
      -Address a compiler warning. +

      + Address a compiler warning.

      -No cluster differences. + No cluster differences.

      @@ -8066,19 +25088,18 @@

      - -

      -2011-05-27 17:32:36 +0100 -
      Chris Liddell
      +


      +

      2011-05-27 17:32:36 +0100 + +
      Chris Liddell <chris.liddell@artifex.com>
      6a743893666fa2c00244f291b83208e5cb961a27

      - -
      -Bug 692238: fix a couple of typos in News.htm. +

      + Bug 692238: fix a couple of typos in News.htm.

      -CLUSTER_UNTESTED + CLUSTER_UNTESTED

      @@ -8086,27 +25107,26 @@

      - -

      -2011-05-27 15:58:28 +0100 -
      Chris Liddell
      +


      +

      2011-05-27 15:58:28 +0100 + +
      Chris Liddell <chris.liddell@artifex.com>
      9a83627c1c0015a446fbf087848e98234a2bdddb

      - -
      -Bug 692220: have the lib file arrays extend as required. +

      + 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 + 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 + 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. + default space available, but allows the arrays to extend as required.

      -No cluster differences expected. + No cluster differences expected.

      @@ -8116,31 +25136,30 @@

      - -

      -2011-05-27 10:15:37 +0100 -
      Chris Liddell
      +


      +

      2011-05-27 10:15:37 +0100 + +
      Chris Liddell <chris.liddell@artifex.com>
      96da6c46750074869c5bcaeeba7e204d8df83a16

      - -
      -Have clusterpush.pl check for/use CLUSTER_USER env var. +

      + Have clusterpush.pl check for/use CLUSTER_USER env var.

      -For anyone that uses a different local login than their user name + 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 + 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 + command line every time, you can now set CLUSTER_USER in your
      -shell, and clusterpush.pl will use that, before going to check + shell, and clusterpush.pl will use that, before going to check
      -USER and USERNAME as before. + USER and USERNAME as before.

      -CLUSTER_UNTESTED + CLUSTER_UNTESTED

      @@ -8150,23 +25169,22 @@

      - -

      -2011-05-26 11:20:10 -0700 -
      Marcos H. Woehrmann
      +


      +

      2011-05-26 11:20:10 -0700 + +
      Marcos H. Woehrmann <marcos.woehrmann@artifex.com>
      998fc31cc9bd717190b0313eb246c14fe6303602

      - -
      -Restore Makefile to clusterpush.pl file list. +

      + Restore Makefile to clusterpush.pl file list.

      -Removed Makefile from the list of files excluded from the rsync + Removed Makefile from the list of files excluded from the rsync
      -operation in clusterpush.pl since the ghostpdl Makefile is not + operation in clusterpush.pl since the ghostpdl Makefile is not
      -built by a configure/autogen.sh operation. + built by a configure/autogen.sh operation.

      @@ -8174,15 +25192,14 @@

      - -

      -2011-05-26 01:09:55 -0700 -
      Ray Johnston
      +


      +

      2011-05-26 01:09:55 -0700 + +
      Ray Johnston <ray.johnston@artifex.com>
      eb0b920bd993d1b03478c9ba4dfc54e995ec7bac

      - -
      -Fix minor typo. +

      + Fix minor typo.

      @@ -8190,23 +25207,22 @@

      - -

      -2011-05-25 23:47:04 -0600 -
      Henry Stiles
      +


      +

      2011-05-25 23:47:04 -0600 + +
      Henry Stiles <henry.stiles@artifex.com>
      ec6afb99389c13414a43820908e090841b6bcd75

      - -
      -Fixes Bug 692232 - landscape printed on portrait media. +

      + Fixes Bug 692232 - landscape printed on portrait media.

      -Add the ability to pass postscript names on the command line - so now + Add the ability to pass postscript names on the command line - so now
      -AutoRotatePages can be set. The other way of fixing this - specifying + AutoRotatePages can be set. The other way of fixing this - specifying
      -a different MediaBox would be awkward in the current PCL design. + a different MediaBox would be awkward in the current PCL design.

      @@ -8214,29 +25230,28 @@

      - -

      -2011-05-24 08:08:35 -0700 -
      Ray Johnston
      +


      +

      2011-05-24 08:08:35 -0700 + +
      Ray Johnston <ray.johnston@artifex.com>
      25de59220e9472e6de1acc046c317141a1751770

      - -
      -Fix for Bug 692217 nested trans_pattern_clist SEGV +

      + Fix for Bug 692217 nested trans_pattern_clist SEGV

      -This was caused by a clip device created for tiling a mask with a transparent + 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 + 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, + get its color_info updated when its target (pdf14) changed the color_info,
      -specifically the depth. + specifically the depth.

      -Fixed by grabbing the target color_info after calling the target's compositor. + Fixed by grabbing the target color_info after calling the target's compositor.

      @@ -8244,21 +25259,20 @@

      - -

      -2011-05-25 20:55:29 -0400 -
      Alex Cherepanov
      +


      +

      2011-05-25 20:55:29 -0400 + +
      Alex Cherepanov <alex.cherepanov@artifex.com>
      b8a35e6cf6f0394487c9e46d989ea57dd0e4203d

      - -
      -Bug 692229, rename variables in Luratech license blocks. +

      + Bug 692229, rename variables in Luratech license blocks.

      -Change variable names in rarely compiled blocks related to Luratech + Change variable names in rarely compiled blocks related to Luratech
      -license key to match the declarations. + license key to match the declarations.

      @@ -8266,27 +25280,26 @@

      - -

      -2011-05-25 19:55:04 +0000 -
      Robin Watts
      +


      +

      2011-05-25 19:55:04 +0000 + +
      Robin Watts <robin@ghostscript.com>
      1de7e6dcb4a89cfdbc93ef176cee17f2e1b430f3

      - -
      -Revised clusterpush.pl; msys git operation +

      + Revised clusterpush.pl; msys git operation

      -Changes to accomodate clusterpushing from windows msys git shells. + Changes to accomodate clusterpushing from windows msys git shells.
      -This relies on various other tools being added to the path. See + This relies on various other tools being added to the path. See
      -forthcoming email. + forthcoming email.

      -CLUSTER_UNTESTED. + CLUSTER_UNTESTED.

      @@ -8294,27 +25307,26 @@

      - -

      -2011-05-25 11:11:25 +0000 -
      Robin Watts
      +


      +

      2011-05-25 11:11:25 +0000 + +
      Robin Watts <robin@ghostscript.com>
      177d0f5ef5d3d2f992b10750e072dc91696c92cc

      - -
      -Update gitsetup.h; remove --local. +

      + Update gitsetup.h; remove --local.

      -Remove a --local from a command that upsets old versions of git, while + 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 + not making a difference to later versions. Thanks to Ray for pointing this
      -out. + out.

      -CLUSTER_UNTESTED. + CLUSTER_UNTESTED.

      @@ -8322,15 +25334,14 @@

      - -

      -2011-05-25 06:54:07 +0000 -
      Ray Johnston
      +


      +

      2011-05-25 06:54:07 +0000 + +
      Ray Johnston <ray.johnston@artifex.com>
      ebefadf4428a0fd4ca4607221bb59e2e0343b35b

      - -
      -Fix executable property to +x. +

      + Fix executable property to +x.

      @@ -8338,25 +25349,24 @@

      - -

      -2011-05-24 16:23:32 +0100 -
      Robin Watts
      +


      +

      2011-05-24 16:23:32 +0100 + +
      Robin Watts <Robin.Watts@artifex.com>
      8151aa54b8a71e5c9929bb43390a9be1b4b8d042

      - -
      -Add gitsetup.sh to gs/toolbin. +

      + Add gitsetup.sh to gs/toolbin.

      -Simple script for doing the 'obvious' configuration to a freshly checked + Simple script for doing the 'obvious' configuration to a freshly checked
      -out git clone of ghostscript. + out git clone of ghostscript.

      -CLUSTER_UNTESTED. + CLUSTER_UNTESTED.

      @@ -8364,25 +25374,24 @@

      - -

      -2011-05-24 07:53:59 -0700 -
      Robin Watts
      +


      +

      2011-05-24 07:53:59 -0700 + +
      Robin Watts <robin@peeves.(none)>
      4dc31e78ea0b58973f5a97319eafcbc10e5b9f2b

      - -
      -Add autoconf check for bswap32/byteswap.h availability. +

      + Add autoconf check for bswap32/byteswap.h availability.

      -As per bug 692211, add some autoconf magic to detect the presence of + As per bug 692211, add some autoconf magic to detect the presence of
      -__builtin_bswap32 and/or byteswap.h. + __builtin_bswap32 and/or byteswap.h.

      -No expected cluster changes. + No expected cluster changes.

      @@ -8398,29 +25407,28 @@

      - -

      -2011-05-24 12:38:27 +0100 -
      Robin Watts
      +


      +

      2011-05-24 12:38:27 +0100 + +
      Robin Watts <Robin.Watts@artifex.com>
      38720da47205c029d9bee6c3b792791b6f39277d

      - -
      -mem_mono_copy_mono optimisations. +

      + mem_mono_copy_mono optimisations.

      -Working on Norberts latest test files, I have changed mem_mono_copy_mono + 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 + 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). + 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 + This is sufficiently high that we get 9.01 or better performance on all the
      -test files, but might benefit from further tuning later. + test files, but might benefit from further tuning later.

      @@ -8428,29 +25436,28 @@

      - -

      -2011-05-24 08:35:18 +0100 -
      Ken Sharp
      +


      +

      2011-05-24 08:35:18 +0100 + +
      Ken Sharp <ken.sharp@artifex.com>
      b246d9d85c119f101956ba07cf9e1c8b9f510b49

      - -
      -pdfwrite : set bit 0 of CIDSet. +

      + pdfwrite : set bit 0 of CIDSet.

      -Set the CID 0 bit of the CIDSet array, so that this glyph is marked as + 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 + being present, when converting TrueType fonts to CIDFonts for PDF/A
      -output. + output.

      -CID 0 is required to be present for all CIDFonts, it is the /.notdef + CID 0 is required to be present for all CIDFonts, it is the /.notdef
      -equivalent. + equivalent.

      @@ -8458,23 +25465,22 @@

      - -

      -2011-05-20 20:45:41 +0100 -
      Robin Watts
      +


      +

      2011-05-20 20:45:41 +0100 + +
      Robin Watts <Robin.Watts@artifex.com>
      99b6056dda5ccf74a270d5ca3dbbe2319dc2c219

      - -
      -Fix for pdfwritten fts_42xx.xps crashing in transparency stuff. +

      + Fix for pdfwritten fts_42xx.xps crashing in transparency stuff.

      -See Bug 692219. This may well be patching symptoms rather than correctly + 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 + 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. + problems. We can always back it out after michael has had time to look.

      @@ -8484,23 +25490,22 @@

      - -

      -2011-05-23 15:42:46 +0100 -
      Robin Watts
      +


      +

      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. +

      + mem_mono_strip_copy_rop_dev opts; non-texture 'short' case.

      -Attempt to optimise for latest test cases from Norbert. + Attempt to optimise for latest test cases from Norbert.

      -Use reverted, and optimised old code for the width < 32 no texture case. + Use reverted, and optimised old code for the width < 32 no texture case.

      @@ -8508,33 +25513,32 @@

      - -

      -2011-05-23 16:41:17 +0100 -
      Ken Sharp
      +


      +

      2011-05-23 16:41:17 +0100 + +
      Ken Sharp <ken.sharp@artifex.com>
      54796e82370348412811db945b95c42953ce0957

      - -
      -Bug #692202 Bug in display_raster function +

      + Bug #692202 Bug in display_raster function

      -The calculation of bytewidth, the number of bytes required for a row of + 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. + 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 + 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 + general method for getting data out of GS, this is not reasonable
      -(monochrome and greyscale devices are less than 8 bits) + (monochrome and greyscale devices are less than 8 bits)

      -Modified as suggested by Martin Osieka to round up the calculation. + Modified as suggested by Martin Osieka to round up the calculation.

      @@ -8542,15 +25546,14 @@

      - -

      -2011-05-23 08:08:23 +0100 -
      Ken Sharp
      +


      +

      2011-05-23 08:08:23 +0100 + +
      Ken Sharp <ken.sharp@artifex.com>
      7fcb89d46d42eb8806d226d3eb39a64f2ad0fe08

      - -
      -Squash a very minor compiler warning +

      + Squash a very minor compiler warning

      @@ -8558,47 +25561,46 @@

      - -

      -2011-05-22 22:23:49 +0100 -
      Robin Watts
      +


      +

      2011-05-22 22:23:49 +0100 + +
      Robin Watts <robin.watts@artifex.com>
      b7d52f725a7c4ef939469f757687a86252fade9c

      - -
      -Add Memory squeezing functionality to Memento. +

      + Add Memory squeezing functionality to Memento.

      -If you build with MEMENTO_HAS_FORK predefined, then in-app memory + If you build with MEMENTO_HAS_FORK predefined, then in-app memory
      -squeezing is enabled. + squeezing is enabled.

      -export MEMENTO_SQUEEZEAT=1 then run the app, and it will do some magic + 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. + with repeated forks to test the "failure to allocate" paths through the code.

      -All the allocation events before the MEMENTO_SQUEEZEATth one will proceed + All the allocation events before the MEMENTO_SQUEEZEATth one will proceed
      -as normal. After that, on every allocation, the code will fork. The child + as normal. After that, on every allocation, the code will fork. The child
      -will proceed with every allocation failing until the program exits + will proceed with every allocation failing until the program exits
      -(hopefully cleanly, but sometimes leaking memory, sometimes dying with a + (hopefully cleanly, but sometimes leaking memory, sometimes dying with a
      -SEGV due to failure to cleanup properly). When the child exits, the + SEGV due to failure to cleanup properly). When the child exits, the
      -parent carries on execution (until the next allocation, when the same fork + parent carries on execution (until the next allocation, when the same fork
      -process happens again). + process happens again).

      -CLUSTER_UNTESTED as disabled by default. + CLUSTER_UNTESTED as disabled by default.

      @@ -8606,33 +25608,32 @@

      - -

      -2011-05-22 08:36:29 -0700 -
      Michael Vrhel
      +


      +

      2011-05-22 08:36:29 -0700 + +
      Michael Vrhel <michael.vrhel@artifex.com>
      1be218b08069f483ba53eacddc6f7cfbe96957ea

      - -
      -Fixes in ICC profile handling and device parameters +

      + Fixes in ICC profile handling and device parameters

      -This fixes some issues that were encountered when setting ICC + This fixes some issues that were encountered when setting ICC
      -profiles on the command line. One issue is that the put_profile + profiles on the command line. One issue is that the put_profile
      -procedure needs to be initialized a bit earlier which required + procedure needs to be initialized a bit earlier which required
      -a change in gdevprn.h In addition, when the output profile is + a change in gdevprn.h In addition, when the output profile is
      -specified to be the CIELAB profile and there is transparency in + 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 file there was a rc issue with the profile when going through
      -the clist. This also includes code to handle the rendering intent device + the clist. This also includes code to handle the rendering intent device
      -parameters for object types. + parameters for object types.

      @@ -8652,21 +25653,20 @@

      - -

      -2011-05-22 08:32:34 -0700 -
      Michael Vrhel
      +


      +

      2011-05-22 08:32:34 -0700 + +
      Michael Vrhel <michael.vrhel@artifex.com>
      185b6f5db3771f6501d55b7b0b6c6ca8663b24c5

      - -
      -Update of ICC Creator +

      + Update of ICC Creator

      -Update to ICC creator project to enable the creation of special effect profiles. + Update to ICC creator project to enable the creation of special effect profiles.
      -Also addition of profiles to demonstrate object dependent color management. + Also addition of profiles to demonstrate object dependent color management.

      @@ -8700,23 +25700,22 @@

      - -

      -2011-05-22 00:03:57 -0400 -
      Alex Cherepanov
      +


      +

      2011-05-22 00:03:57 -0400 + +
      Alex Cherepanov <alex.cherepanov@artifex.com>
      70912a68940b1361e8d33a239a57280eead00bfc

      - -
      -Fix optional inline image skipping. +

      + Fix optional inline image skipping.

      -Use newly created function that calculates the number of components + Use newly created function that calculates the number of components
      -of a given image and fix calculation of the inline image size that + of a given image and fix calculation of the inline image size that
      -is used to skip optional inline images. + is used to skip optional inline images.

      @@ -8724,29 +25723,28 @@

      - -

      -2011-05-21 01:15:49 -0400 -
      Alex Cherepanov
      +


      +

      2011-05-21 01:15:49 -0400 + +
      Alex Cherepanov <alex.cherepanov@artifex.com>
      3ac9479be8db8eb44f3787d54a171747b61c2b44

      - -
      -Bug 692213: verify /Default* colorspaces. +

      + Bug 692213: verify /Default* colorspaces.

      -Check that the number of components of /DefaultGray, /DefaultRGB, and + Check that the number of components of /DefaultGray, /DefaultRGB, and
      -/DefaultCMYK is correct, and reject inappropriate color spaces. + /DefaultCMYK is correct, and reject inappropriate color spaces.

      -Also fix the code that forces update of the color space at the + 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 + beginning of the page when the page defines any of /Defailt* color
      -spaces. This hack has been written long ago but it was unreachable. + spaces. This hack has been written long ago but it was unreachable.

      @@ -8756,15 +25754,14 @@

      - -

      -2011-05-20 19:59:16 +0100 -
      Ken Sharp
      +


      +

      2011-05-20 19:59:16 +0100 + +
      Ken Sharp <ken.sharp@artifex.com>
      4c64b898e1dc2b3532e0fe6c18a292fa58843207

      - -
      -Merge branch 'Type3_PCL' +

      + Merge branch 'Type3_PCL'

      @@ -8772,33 +25769,32 @@

      - -

      -2011-05-20 19:43:55 +0100 -
      Ken Sharp
      +


      +

      2011-05-20 19:43:55 +0100 + +
      Ken Sharp <ken.sharp@artifex.com>
      83318bd849910c6c79f0ea5cb11912557ac01307

      - -
      -Final type 3 font modifications for PCL +

      + Final type 3 font modifications for PCL

      -We need to probe the glyph cache in process_text_modify_width as well + 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, + process_text_return_width, this is a possible path through the code,
      -depending on the exact combination of text operations. + depending on the exact combination of text operations.

      -Remove debugging code + Remove debugging code

      -Tidy up some declarations and casting of poitners to make compilers + Tidy up some declarations and casting of poitners to make compilers
      -happy. + happy.

      @@ -8810,19 +25806,18 @@

      - -

      -2011-05-20 12:03:14 +0100 -
      Ken Sharp
      +


      +

      2011-05-20 12:03:14 +0100 + +
      Ken Sharp <ken.sharp@artifex.com>
      96b967aac2176d9cd96167cc1430bb76074d6384

      - -
      -Add some prints to caching +

      + 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. + Set the FtonMatrix to the identity when making the CTM the identity, so that these don't get applied twice.

      @@ -8832,31 +25827,30 @@

      - -

      -2011-05-19 13:51:24 +0100 -
      Ken Sharp
      +


      +

      2011-05-19 13:51:24 +0100 + +
      Ken Sharp <ken.sharp@artifex.com>
      0b8df1bfb7f5496ba5b644b21c7586fda6dcdc46

      - -
      -Add some extra debugging printouts +

      + Add some extra debugging printouts

      -Fix log2_scale and depth when creating and testing cache entries in order + 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 + 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) + 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 + 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 + as cached, as well as those with setcachedevice. (the same is not true
      -for PostScript) + for PostScript)

      @@ -8868,43 +25862,42 @@

      - -

      -2011-05-17 15:53:56 +0100 -
      Ken Sharp
      +


      +

      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 +

      + Add another new font type 'ft_PCL_user_defined' for the PCL bitmap
      -font. + font.

      -Update various parts of the code to treat the new font the same as a + Update various parts of the code to treat the new font the same as a
      -PostScript type 3 font. + PostScript type 3 font.

      -In pdfwrite, if we capture a CharpProcs, and its for a PCL bitmap 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 + 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 + 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 + 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 + 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 + 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 + 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 + 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. + so capture into a different font using the old style 'default' implementation.

      @@ -8936,17 +25929,16 @@

      - -

      -2011-05-13 19:57:44 +0100 -
      Ken Sharp
      +


      +

      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 +

      + Apparently missed in previous commit. Update so that stick fonts are
      -identified as such to pdfwrite. + identified as such to pdfwrite.

      @@ -8954,39 +25946,38 @@

      - -

      -2011-05-13 19:53:56 +0100 -
      Ken Sharp
      +


      +

      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 +

      + 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 + of the HP/GL2 stick font. Modify code throughout to treat it the same as
      -'ft_user_defined', ie a type 3 font. + 'ft_user_defined', ie a type 3 font.

      -Allow pdfwrite to attach a type 3 'PDF font' to a stick font (normally the + Allow pdfwrite to attach a type 3 'PDF font' to a stick font (normally the
      -types are required to be the same). + types are required to be the same).

      -Alter the way we calculate the 'default' device matrix during stick font + Alter the way we calculate the 'default' device matrix during stick font
      -accumulation so that we get better stroke widhts. + accumulation so that we get better stroke widhts.

      -Now that we cna identify a stick font, check for anamorphic scaling before + 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 + accumulating the glyphs. If anamorphic scaling, then *don't* treat this as
      -a font. THis is because the stroke width will be inconsistent. + a font. THis is because the stroke width will be inconsistent.

      @@ -9012,23 +26003,22 @@

      - -

      -2011-05-12 16:04:17 +0100 -
      Ken Sharp
      +


      +

      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 +

      + Alter the way we handle missing glyph names, use the saem code as for
      -composite fonts. + composite fonts.

      -Don't assume the CharProc matrix will be upright when creating the dummy + Don't assume the CharProc matrix will be upright when creating the dummy
      -'initial' matrix, copy and scale all the values. + 'initial' matrix, copy and scale all the values.

      @@ -9036,49 +26026,48 @@

      - -

      -2011-05-11 15:46:23 +0100 -
      Ken Sharp
      +


      +

      2011-05-11 15:46:23 +0100 + +
      Ken Sharp <ken.sharp@artifex.com>
      d2ce995693b6c279ea207081728f6906a02e718a

      - -
      -More type 3 font madness +

      + More type 3 font madness

      -Use the device level 'PS_accumulator' flag in various places instead of + Use the device level 'PS_accumulator' flag in various places instead of
      -the more kludgy test against penuym->pte_default being NULL. + 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 + If we don't get a glyph name back from the interpreter (PCL) then invent
      -one instead of giving up with an error. + one instead of giving up with an error.

      -If we are not a type 3 accumulator, then don't undo the factor of 100 + 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. + 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 + 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 + 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 + and we need to account for various PS/PDF scaling which will otherwise
      -be ignored. + be ignored.

      -Make sure we don't try and accumulate a charproc when its being run for a + Make sure we don't try and accumulate a charproc when its being run for a
      -charpath operation. + charpath operation.

      @@ -9090,31 +26079,30 @@

      - -

      -2011-05-06 15:35:13 +0100 -
      Ken Sharp
      +


      +

      2011-05-06 15:35:13 +0100 + +
      Ken Sharp <ken.sharp@artifex.com>
      bc6a5bdd6329a0027d0c162e29eda277f85c2a8a

      - -
      -Type PCL fonts again. +

      + Type PCL fonts again.

      -Put back the matrix scaling in pdf_text_set_cache, even though the matrix + 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. + 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 + 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 + 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 + so the glyph was elided. Added check to make sure these are correct. This
      -required removal of 'const' from an arry as well. + required removal of 'const' from an arry as well.

      @@ -9126,43 +26114,42 @@

      - -

      -2011-05-06 15:06:22 +0100 -
      Ken Sharp
      +


      +

      2011-05-06 15:06:22 +0100 + +
      Ken Sharp <ken.sharp@artifex.com>
      8730b9f1c3c1977805a9f0ad830b0268170343c4

      - -
      -More type 3 changes +

      + More type 3 changes

      -Don't scale the CTM by 100 (done for FreeType) when handling PCL fonts + 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 + 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. + 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' + 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 + (ie PostScript) type 3 font or not, if its not then don't undo the scaling
      -by 100 of the CTM. + by 100 of the CTM.

      -When accumulating a chraproc, before setting the CTM to identity matrix + 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 + 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 + doesn't get baked into the character description. Also invalidate the
      -'char_tm' txy_fixed_valid member of the graphics state, this will force + 'char_tm' txy_fixed_valid member of the graphics state, this will force
      -a recalculation of char_tm using the new identity matrix. + a recalculation of char_tm using the new identity matrix.

      @@ -9174,33 +26161,32 @@

      - -

      -2011-05-06 12:29:38 +0100 -
      Ken Sharp
      +


      +

      2011-05-06 12:29:38 +0100 + +
      Ken Sharp <ken.sharp@artifex.com>
      1b7695b7f2fe4dac0e228294b944b667e617e822

      - -
      -More PCL type 3 improvements +

      + More PCL type 3 improvements

      -Add code to initialise the returned character code, so that the charproc + Add code to initialise the returned character code, so that the charproc
      -is assigned the correct character code. Further test for PCL fonts in + 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 + 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 + 'output_char_code' when we are doing PCL, instead use the one from the
      -text enumerator 'returned' structure. Normally this would not be valid + text enumerator 'returned' structure. Normally this would not be valid
      -yet as this is filled in after we've completed the 'show', but we + 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 + set this before startig the show, from the text string, so that it will be
      -valid. + valid.

      @@ -9208,23 +26194,22 @@

      - -

      -2011-05-06 11:49:19 +0100 -
      Ken Sharp
      +


      +

      2011-05-06 11:49:19 +0100 + +
      Ken Sharp <ken.sharp@artifex.com>
      3791899545ad61db983158e468d29de85153f94a

      - -
      -More type 3 PCL fonts +

      + More type 3 PCL fonts

      -Attempt to get gsave/grestore counting correct by addig requied gs_gsave. + 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 + 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). + for capture, and don't want to use the char_ctm (values are restored later).

      @@ -9232,23 +26217,22 @@

      - -

      -2011-05-05 15:26:17 +0100 -
      Ken Sharp
      +


      +

      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 +

      + 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 + patches the enumerator procs so that the pdfwrite set_cache is used when
      -setcachedevice is issued. + setcachedevice is issued.

      -Text matrices are wrong in many places leading to empty output. + Text matrices are wrong in many places leading to empty output.

      @@ -9256,17 +26240,16 @@

      - -

      -2011-05-05 14:50:33 +0100 -
      Ken Sharp
      +


      +

      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 +

      + 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. + I make sure it doesn't break any PS/PDF files.

      @@ -9274,15 +26257,14 @@

      - -

      -2011-05-05 13:15:19 +0100 -
      Ken Sharp
      +


      +

      2011-05-05 13:15:19 +0100 + +
      Ken Sharp <ken.sharp@artifex.com>
      f5cc30c83a05acacfd9c2e18b72e7e716c38d024

      - -
      -File missed in previous commit +

      + File missed in previous commit

      @@ -9290,21 +26272,20 @@

      - -

      -2011-05-05 13:13:27 +0100 -
      Ken Sharp
      +


      +

      2011-05-05 13:13:27 +0100 + +
      Ken Sharp <ken.sharp@artifex.com>
      7838510e494245cc5e5349f2ea0d5ff9028c96d0

      - -
      -Add better PCL type 3 font handling, step 1 +

      + Add better PCL type 3 font handling, step 1

      -First, break all the code for starting and stopping accumulators + First, break all the code for starting and stopping accumulators
      -into procedures, because the existing code is too hard to read. + into procedures, because the existing code is too hard to read.

      @@ -9320,19 +26301,18 @@

      - -

      -2011-04-29 16:42:30 +0100 -
      Ken Sharp
      +


      +

      2011-04-29 16:42:30 +0100 + +
      Ken Sharp <ken.sharp@artifex.com>
      947e90ad0229b6333d6eb61e7f54ac33b200ab28

      - -
      -initial changes for capturing PCL type 3 fonts in pdfwrite +

      + 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. + Seems to be OK now with PS/PCL, does not crash any longer with PCL, but capture is incorrect.

      @@ -9350,35 +26330,34 @@

      - -

      -2011-05-20 18:22:37 +0100 -
      Chris Liddell
      +


      +

      2011-05-20 18:22:37 +0100 + +
      Chris Liddell <chris.liddell@artifex.com>
      1ab5da13a846b9fde15c2863b6b75ae5b28d22d8

      - -
      -Bug 692218: Incorrect CIDtoGIDMap length causing crash. +

      + Bug 692218: Incorrect CIDtoGIDMap length causing crash.

      -In pdfwrite's pdf_convert_truetype_font_descriptor() function, + In pdfwrite's pdf_convert_truetype_font_descriptor() function,
      -the lengths of both the CIDtoGIDMap and the CIDSet were being set + 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 + 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. + be, and were being filled, as being LastChar + 1 entries long.

      -As well as memory corruption, the contents would have been wrong, + As well as memory corruption, the contents would have been wrong,
      -too. + too.

      -No cluster differences expected. + No cluster differences expected.

      @@ -9386,41 +26365,40 @@

      - -

      -2011-05-20 12:46:09 +0000 -
      Robin Watts
      +


      +

      2011-05-20 12:46:09 +0000 + +
      Robin Watts <robin@ghostscript.com>
      0805588e9bcaec02b4eef4582db6ab23ae8ea1b1

      - -
      -Fix Bug 692216. Remove zero height traps from shadings. +

      + Fix Bug 692216. Remove zero height traps from shadings.

      -The simplified file in Bug 692216 shows a division by zero error when + 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 + filling a trapezoid with zero height. The fix is simply to update
      -the code not to draw zero height traps. + the code not to draw zero height traps.

      -This should be safe as any fill adjustment is done well before this point. + 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 + 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 + 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 + regression. Ken informs me he's seen the same differences before with
      -unrelated changes, so perhaps it's an indeterminism. + unrelated changes, so perhaps it's an indeterminism.

      -The code seems more sensible this way round anyway. + The code seems more sensible this way round anyway.

      @@ -9428,27 +26406,26 @@

      - -

      -2011-05-20 07:58:28 +0100 -
      Chris Liddell
      +


      +

      2011-05-20 07:58:28 +0100 + +
      Chris Liddell <chris.liddell@artifex.com>
      c6341648ed83b1a3dde948bdf8bcf54a2f275fe5

      - -
      -Reinstate x11alpha as the default device on Unix. +

      + Reinstate x11alpha as the default device on Unix.

      -With the recent revisions to make transparency play nicely + With the recent revisions to make transparency play nicely
      -with anti-aliased output, should now be safe to use as the + with anti-aliased output, should now be safe to use as the
      -default device. + default device.

      -CLUSTER_UNTESTED + CLUSTER_UNTESTED

      @@ -9456,25 +26433,24 @@

      - -

      -2011-05-19 14:55:52 -0600 -
      Henry Stiles
      +


      +

      2011-05-19 14:55:52 -0600 + +
      Henry Stiles <henry.stiles@artifex.com>
      9de72911de76b582f028c70564b1539f913b517c

      - -
      -Make directories silently. +

      + Make directories silently.

      -The previous mkdir incantantation had unwanted warning messages if the + The previous mkdir incantantation had unwanted warning messages if the
      -directory already existed. Thanks to Norbert Janssen for the patch. + directory already existed. Thanks to Norbert Janssen for the patch.

      -CLUSTER_UNTESTED + CLUSTER_UNTESTED

      @@ -9482,23 +26458,22 @@

      - -

      -2011-05-18 19:04:26 -0600 -
      Henry Stiles
      +


      +

      2011-05-18 19:04:26 -0600 + +
      Henry Stiles <henry.stiles@artifex.com>
      413e6e5a1c7ccc3d86678a54e93130ca182f9e98

      - -
      -Simplify the svg device state. +

      + Simplify the svg device state.

      -Represent colors directly with color indices not strings. + Represent colors directly with color indices not strings.
      -This will address bug 691886 indirectly but wasn't the motivation + This will address bug 691886 indirectly but wasn't the motivation
      -for changing the state value types. + for changing the state value types.

      @@ -9506,21 +26481,20 @@

      - -

      -2011-05-16 13:28:46 -0600 -
      Henry Stiles
      +


      +

      2011-05-16 13:28:46 -0600 + +
      Henry Stiles <henry.stiles@artifex.com>
      86da13321eaa87a01b804af3619d30f8a7263f5e -

      - -
      -Decrease debugging verbosity. +
      +

      + Decrease debugging verbosity.

      -Change default printing to be conditonal on high level device + Change default printing to be conditonal on high level device
      -debug flag '_'. + debug flag '_'.

      @@ -9528,29 +26502,28 @@

      - -

      -2011-05-19 18:32:07 +0100 -
      Chris Liddell
      +


      +

      2011-05-19 18:32:07 +0100 + +
      Chris Liddell <chris.liddell@artifex.com>
      4812b7189345fa94075445d8e8d5eef7eb04cdab

      - -
      -Explicitly disable libtiff's jbig code. +

      + Explicitly disable libtiff's jbig code.

      -Add the --disable-jbig option to both Ghostscript and GhostPDL's + Add the --disable-jbig option to both Ghostscript and GhostPDL's
      -calls to the libtiff configure script, otherwise, if the build + calls to the libtiff configure script, otherwise, if the build
      -system has libjbig installed, libtiff's jbig code is enabled, + system has libjbig installed, libtiff's jbig code is enabled,
      -and we don't want/need it. + and we don't want/need it.

      -Bug 692214. + Bug 692214.

      @@ -9560,23 +26533,22 @@

      - -

      -2011-05-19 16:58:33 +0000 -
      Robin Watts
      +


      +

      2011-05-19 16:58:33 +0000 + +
      Robin Watts <robin@ghostscript.com>
      8f4b7b96b14df2bef1564e00c72f087f72bb8f56

      - -
      -More Memento tweaks. Thanks to Dave Thomas. +

      + More Memento tweaks. Thanks to Dave Thomas.

      -Remove unused variables/unneeded inits. + Remove unused variables/unneeded inits.

      -CLUSTER_UNTESTED. + CLUSTER_UNTESTED.

      @@ -9584,19 +26556,18 @@

      - -

      -2011-05-19 15:26:05 +0000 -
      Robin Watts
      +


      +

      2011-05-19 15:26:05 +0000 + +
      Robin Watts <robin@ghostscript.com>
      b35b5d610738a521cfe6374965a8f6c4d6b5d477

      - -
      -Correct memset prototype in memento.c. D'Oh. +

      + Correct memset prototype in memento.c. D'Oh.

      -CLUSTER_UNTESTED. + CLUSTER_UNTESTED.

      @@ -9604,49 +26575,47 @@

      - -

      -2011-05-19 15:34:31 +0100 -
      Robin Watts
      +


      +

      2011-05-19 15:34:31 +0100 + +
      Robin Watts <Robin.Watts@artifex.com>
      44e59fd123729ba05f8728f01d13406d3e283855

      - -
      -Merge branch 'patt_trans_clist' +

      + Merge branch 'patt_trans_clist'

      - -

      -2011-05-19 15:01:14 +0100 -
      Robin Watts
      +


      +

      2011-05-19 15:01:14 +0100 + +
      Robin Watts <Robin.Watts@artifex.com>
      3bf453e7987830459ca677c8fa1b93fbd6c4a7e3

      - -
      -Fix for icc profile refcounting. +

      + Fix for icc profile refcounting.

      -Take new reference before discarding old one, lest we throw away the + Take new reference before discarding old one, lest we throw away the
      -last reference and then can't pick it up again. + last reference and then can't pick it up again.

      -This solves the SEGV with: + This solves the SEGV with:

      -gs\debugbin\gswin32c.exe -sDEVICE=ppmraw -o out.ppm + gs\debugbin\gswin32c.exe -sDEVICE=ppmraw -o out.ppm
      --r300 ..\ghostpcl\tests_private\comparefiles\Bug689690.pdf + -r300 ..\ghostpcl\tests_private\comparefiles\Bug689690.pdf

      -No cluster differences expected. + No cluster differences expected.

      @@ -9654,29 +26623,28 @@

      - -

      -2011-05-19 13:35:37 +0100 -
      Robin Watts
      +


      +

      2011-05-19 13:35:37 +0100 + +
      Robin Watts <Robin.Watts@artifex.com>
      bc9e69257a1605d67aca0cd121e167d7e0ae22be

      - -
      -Merge branch 'master' into patt_trans_clist +

      + Merge branch 'master' into patt_trans_clist

      -I expect this to leave me with all files working except for Bug689690.pdf + I expect this to leave me with all files working except for Bug689690.pdf
      -which has profile reference counting problems introduced from the trunk. + which has profile reference counting problems introduced from the trunk.

      -For example: + For example:
      -gs\debugbin\gswin32c.exe -sDEVICE=ppmraw -o out.ppm + gs\debugbin\gswin32c.exe -sDEVICE=ppmraw -o out.ppm
      --r300 ..\ghostpcl\tests_private\comparefiles\Bug689690.pdf + -r300 ..\ghostpcl\tests_private\comparefiles\Bug689690.pdf

      @@ -9688,27 +26656,26 @@

      - -

      -2011-05-18 15:57:45 +0000 -
      Robin Watts
      +


      +

      2011-05-18 15:57:45 +0000 + +
      Robin Watts <robin@ghostscript.com>
      5cff633dff1b8b91afb97925f8a4f7781db5a9b2

      - -
      -Fix SEGV in tile_rect_trans_simple. +

      + Fix SEGV in tile_rect_trans_simple.

      -If the left hand copy region started to the right of the subtile that was + 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 + actually populated, we would attempt a copy with a negative length. Simple
      -fix is to check for this case. + fix is to check for this case.

      -This should resolve the 5 xps SEGVs. + This should resolve the 5 xps SEGVs.

      @@ -9716,31 +26683,30 @@

      - -

      -2011-05-17 23:37:56 +0000 -
      Robin Watts
      +


      +

      2011-05-17 23:37:56 +0000 + +
      Robin Watts <robin@ghostscript.com>
      128650aac51fcf723428b8a902c4e3af7d1d058f

      - -
      -Fix SEGV in Bug691538.pdf. +

      + Fix SEGV in Bug691538.pdf.

      -Local testing with: + Local testing with:
      -gs -dNOGC -Z@? -r300 -sDEVICE=pbmraw -dMaxBitmap=30000000 -o nul: ..\ghostpcl\tests_private\comparefiles\Bug691538.pdf + 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 + shows a SEGV on windows with a debug build. Removing the reference
      -decrement solves it and doesn't show any leaks. + decrement solves it and doesn't show any leaks.

      -Oddly the cluster doesn't show the SEGV any more, but it did previously. + Oddly the cluster doesn't show the SEGV any more, but it did previously.

      @@ -9748,21 +26714,20 @@

      - -

      -2011-05-17 18:13:17 +0100 -
      Robin Watts
      +


      +

      2011-05-17 18:13:17 +0100 + +
      Robin Watts <Robin.Watts@artifex.com>
      6780bf7996f1d5a0be5b0dc55e89ea48bf89980e

      - -
      -Memento realloc fix. +

      + Memento realloc fix.

      -Memento was filling the 'new' section of realloced blocks incorrectly, + Memento was filling the 'new' section of realloced blocks incorrectly,
      -resulting in memory overwrites. + resulting in memory overwrites.

      @@ -9770,15 +26735,14 @@

      - -

      -2011-05-17 15:53:01 +0100 -
      Robin Watts
      +


      +

      2011-05-17 15:53:01 +0100 + +
      Robin Watts <Robin.Watts@artifex.com>
      ce8bddd7cef1f9e0d2c2ae28b82d513a6cfa9dce

      - -
      -Merge branch 'master' into patt_trans_clist +

      + Merge branch 'master' into patt_trans_clist

      @@ -9800,25 +26764,24 @@

      - -

      -2011-05-17 15:42:11 +0100 -
      Robin Watts
      +


      +

      2011-05-17 15:42:11 +0100 + +
      Robin Watts <Robin.Watts@artifex.com>
      1b7bf4222988019f17a454ce7a6b841d586c3d4d

      - -
      -Comment and error code handling tweaks to gdevp14.c +

      + Comment and error code handling tweaks to gdevp14.c

      -Correct a typo, update a comment, and avoid a SEGV in the case where + Correct a typo, update a comment, and avoid a SEGV in the case where
      -an allocation of an iccsmask fails. + an allocation of an iccsmask fails.

      -No cluster differences expected. + No cluster differences expected.

      @@ -9826,25 +26789,24 @@

      - -

      -2011-05-17 15:38:38 +0100 -
      Robin Watts
      +


      +

      2011-05-17 15:38:38 +0100 + +
      Robin Watts <Robin.Watts@artifex.com>
      6283d613595f2c42a461d2cb8cfddb2e0a6fc168

      - -
      -Tiny tweak to leaks.tcl +

      + Tiny tweak to leaks.tcl

      -Tweak leaks.tcl so it doesn't think the file is empty if 'memory allocated' + Tweak leaks.tcl so it doesn't think the file is empty if 'memory allocated'
      -is on the first line of the log. + is on the first line of the log.

      -CLUSTER_UNTESTED. + CLUSTER_UNTESTED.

      @@ -9852,25 +26814,24 @@

      - -

      -2011-05-17 15:23:24 +0100 -
      Robin Watts
      +


      +

      2011-05-17 15:23:24 +0100 + +
      Robin Watts <Robin.Watts@artifex.com>
      4ec504eeddfd5e17ca5f1b4e58090fb0c1b15201

      - -
      -Rework colorspace ref counting of cmm_icc_profile_data. +

      + Rework colorspace ref counting of cmm_icc_profile_data.

      -Previously the code seemed to be trying to take one reference to + 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 + 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 + this here to only take a single reference to cmm_icc_profile_data for each
      -colorspace. This solves at least one SEGV. + colorspace. This solves at least one SEGV.

      @@ -9892,23 +26853,22 @@

      - -

      -2011-05-12 17:49:46 +0100 -
      Robin Watts
      +


      +

      2011-05-12 17:49:46 +0100 + +
      Robin Watts <Robin.Watts@artifex.com>
      a0ac4ac2082132905463703ddd8b6db6fd95e4fb

      - -
      -Squash another warning; gdevp14.c. +

      + Squash another warning; gdevp14.c.

      -Remove an unused variable definition (that is shadowed later on). + Remove an unused variable definition (that is shadowed later on).

      -CLUSTER_UNTESTED. + CLUSTER_UNTESTED.

      @@ -9916,23 +26876,22 @@

      - -

      -2011-05-12 17:41:17 +0100 -
      Robin Watts
      +


      +

      2011-05-12 17:41:17 +0100 + +
      Robin Watts <Robin.Watts@artifex.com>
      d40646d2f1c48c174fad480c03309707b16659c7

      - -
      -Squash warning. +

      + Squash warning.

      -Remove unused variable, left over from merge. + Remove unused variable, left over from merge.

      -CLUSTER_UNTESTED + CLUSTER_UNTESTED

      @@ -9940,23 +26899,22 @@

      - -

      -2011-05-12 17:01:59 +0100 -
      Robin Watts
      +


      +

      2011-05-12 17:01:59 +0100 + +
      Robin Watts <Robin.Watts@artifex.com>
      6d910ef6207e3704f1050cd46c481ac81b681261

      - -
      -Fix SEGVs seen due to icc profile data being freed. +

      + Fix SEGVs seen due to icc profile data being freed.

      -If we swap the ICC profile data for a colorspace due to starting/stopping + 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 + 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. + will solve all the SEGVs we see. It does solve at least one.

      @@ -9964,31 +26922,30 @@

      - -

      -2011-05-12 15:26:56 +0100 -
      Robin Watts
      +


      +

      2011-05-12 15:26:56 +0100 + +
      Robin Watts <Robin.Watts@artifex.com>
      4d9eb7298700e0b4c484f164805d556c03c22b24

      - -
      -Merge branch 'master' into patt_trans_clist +

      + Merge branch 'master' into patt_trans_clist

      -Conflicts: + Conflicts:
      -gs/base/gdevnfwd.c + gs/base/gdevnfwd.c
      -gs/base/gxdevice.h + gs/base/gxdevice.h
      -gs/toolbin/bmpcmp.c + gs/toolbin/bmpcmp.c

      -All trivially resolved except for gdevnfwd.c where I backed out one of the + All trivially resolved except for gdevnfwd.c where I backed out one of the
      -fixes from 8ae4342 on instruction from Michael. + fixes from 8ae4342 on instruction from Michael.

      @@ -10008,23 +26965,22 @@

      - -

      -2011-05-04 20:00:50 +0100 -
      Robin Watts
      +


      +

      2011-05-04 20:00:50 +0100 + +
      Robin Watts <Robin.Watts@artifex.com>
      9d8dc0278374c7c5bb4868a1ed356b8b5f8ece8a

      - -
      -Whitespace fixes + Return from gx_forward_create_compositor. +

      + Whitespace fixes + Return from gx_forward_create_compositor.

      -Fix up some stray trailing whitespace. + Fix up some stray trailing whitespace.

      -Also, gx_forward_create_compositor was neglecting to return a value. + Also, gx_forward_create_compositor was neglecting to return a value.

      @@ -10034,15 +26990,14 @@

      - -

      -2011-05-03 20:36:49 -0700 -
      Michael Vrhel
      +


      +

      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. +

      + 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.

      @@ -10052,19 +27007,18 @@

      - -

      -2011-05-03 17:30:58 +0100 -
      Robin Watts
      +


      +

      2011-05-03 17:30:58 +0100 + +
      Robin Watts <Robin.Watts@artifex.com>
      e0e5e5c874d7546805558a00bec9c54ebd0770e5

      - -
      -Backout strokeafterfill stuff, as it proved unnecessary. +

      + Backout strokeafterfill stuff, as it proved unnecessary.

      -Remove commit eaae298 as it turns out not to be required. + Remove commit eaae298 as it turns out not to be required.

      @@ -10078,41 +27032,39 @@

      - -

      -2011-05-02 19:39:22 +0000 -
      Robin Watts
      +


      +

      2011-05-02 19:39:22 +0000 + +
      Robin Watts <robin@ghostscript.com>
      04eef3817a5a6d3fee054338629b1e50eaa4ee0f

      - -
      -Merge branch 'master' into patt_trans_clist +

      + Merge branch 'master' into patt_trans_clist

      - -

      -2011-05-02 19:28:39 +0000 -
      Robin Watts
      +


      +

      2011-05-02 19:28:39 +0000 + +
      Robin Watts <robin@ghostscript.com>
      df2175e571369df32fc66e375357bc69976c5fed

      - -
      -Put back default map_rgb_color forwarding. +

      + Put back default map_rgb_color forwarding.

      -At some point around the creation of this branch (which corresponded to our + 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 + 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 + 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 + back in. This probably hasn't caused any problems as it's a deprecated
      -function now. + function now.

      @@ -10120,23 +27072,22 @@

      - -

      -2011-05-02 20:02:59 +0100 -
      Robin Watts
      +


      +

      2011-05-02 20:02:59 +0100 + +
      Robin Watts <Robin.Watts@artifex.com>
      8eed15b976995b889a2498b064b53397a7d164a1

      - -
      -Add gxdevsop.h to VS solution. +

      + Add gxdevsop.h to VS solution.

      -Don't know why this wasn't in before... + Don't know why this wasn't in before...

      -CLUSTER_UNTESTED. + CLUSTER_UNTESTED.

      @@ -10144,27 +27095,26 @@

      - -

      -2011-05-02 19:50:04 +0100 -
      Robin Watts
      +


      +

      2011-05-02 19:50:04 +0100 + +
      Robin Watts <Robin.Watts@artifex.com>
      8d52d58da97faadd2dcd009f9a5381e87182789d

      - -
      -Pacify valgrind (and improve performance?) with tiny change. +

      + Pacify valgrind (and improve performance?) with tiny change.

      -A tiny change to gxclrast.c where we initialise state_tile.size.{x,y}. + A tiny change to gxclrast.c where we initialise state_tile.size.{x,y}.
      -This stops valgrind giving warnings. While the code works OK without + This stops valgrind giving warnings. While the code works OK without
      -this (I believe), it can cause various %, /, gcd operations. These are + this (I believe), it can cause various %, /, gcd operations. These are
      -all expensive operations and are neatly sidestepped by the simple + all expensive operations and are neatly sidestepped by the simple
      -expedient of setting the variable to 0 to start with. + expedient of setting the variable to 0 to start with.

      @@ -10172,43 +27122,42 @@

      - -

      -2011-05-02 18:32:06 +0000 -
      Robin Watts
      +


      +

      2011-05-02 18:32:06 +0000 + +
      Robin Watts <robin@ghostscript.com>
      4cd416d1e5f46c01ce9827b803035a939872e7f7

      - -
      -Fix clipping problems with composited pattern clists. +

      + Fix clipping problems with composited pattern clists.

      -When using a clist to fill a clipped area with a pattern, the current + When using a clist to fill a clipped area with a pattern, the current
      -code can drop the clipping device out of the chain. This change solves that + code can drop the clipping device out of the chain. This change solves that
      -problem. + problem.

      -When we create a new compositor, we generally want that compositor to become + When we create a new compositor, we generally want that compositor to become
      -the top device in the chain, so all new drawing commands go to it. In the + the top device in the chain, so all new drawing commands go to it. In the
      -pattern clist case however, we don't create a new compositor - we reuse an + pattern clist case however, we don't create a new compositor - we reuse an
      -existing one. It's important in this case *not* to take this as our new + existing one. It's important in this case *not* to take this as our new
      -target, otherwise the higher devices in the chain (such as the clipper + target, otherwise the higher devices in the chain (such as the clipper
      -device) are lost. + device) are lost.

      -This was shown when rendering pattrans_big.pdf at 300dpi banded to the pkm + This was shown when rendering pattrans_big.pdf at 300dpi banded to the pkm
      -device. + device.

      @@ -10216,15 +27165,14 @@

      - -

      -2011-05-02 11:21:50 -0700 -
      Michael Vrhel
      +


      +

      2011-05-02 11:21:50 -0700 + +
      Michael Vrhel <michael.vrhel@artifex.com>
      1d33714d197a3335ad34d21e70fc767cf42b369d

      - -
      -Fix for typo in pointer name during initialization of shape buffer during transparency pattern filling. +

      + Fix for typo in pointer name during initialization of shape buffer during transparency pattern filling.

      @@ -10232,41 +27180,40 @@

      - -

      -2011-05-02 18:53:00 +0100 -
      Robin Watts
      +


      +

      2011-05-02 18:53:00 +0100 + +
      Robin Watts <Robin.Watts@artifex.com>
      600aa9cc10d4439823de265d2805617154294ee7

      - -
      -Quiet valgrind warning, and remove misleading init. +

      + Quiet valgrind warning, and remove misleading init.

      -When run with valgrind on: + When run with valgrind on:

      -gs -sDEVICE=pbmraw -r300 -dMaxBitmap=100000000 -o out.pbm Bug690189c.pdf + gs -sDEVICE=pbmraw -r300 -dMaxBitmap=100000000 -o out.pbm Bug690189c.pdf

      -Valgrind complains that params.GrayBackground is used without being + Valgrind complains that params.GrayBackground is used without being
      -initialised. We fix this here by amending gs_trans_mask_params_init. + initialised. We fix this here by amending gs_trans_mask_params_init.

      -In so doing, we note that in zbegintransparencymaskgroup we were setting + In so doing, we note that in zbegintransparencymaskgroup we were setting
      -params.ColorSpace, only to call gs_trans_mask_params_init and have it + params.ColorSpace, only to call gs_trans_mask_params_init and have it
      -overwrite it. To avoid confusion we therefore remove this needless init. + overwrite it. To avoid confusion we therefore remove this needless init.

      -No cluster differences seen in testing. + No cluster differences seen in testing.

      @@ -10276,15 +27223,14 @@

      - -

      -2011-05-02 14:51:26 +0100 -
      Robin Watts
      +


      +

      2011-05-02 14:51:26 +0100 + +
      Robin Watts <Robin.Watts@artifex.com>
      1dbe20d53a4443a70692e9b7807cfb8a158229d0

      - -
      -Add support for cups (1bpp) files to bmpcmp. +

      + Add support for cups (1bpp) files to bmpcmp.

      @@ -10292,31 +27238,30 @@

      - -

      -2011-04-30 17:55:42 +0100 -
      Robin Watts
      +


      +

      2011-04-30 17:55:42 +0100 + +
      Robin Watts <Robin.Watts@artifex.com>
      eaae298fcfe31efda0166786c5624ef8fefd0e12

      - -
      -Add new .strokeafterfill ps operator/graphics state bit. +

      + Add new .strokeafterfill ps operator/graphics state bit.

      -We add a new .strokeafterfill ps operator that takes a bool, and sets it in + We add a new .strokeafterfill ps operator that takes a bool, and sets it in
      -the graphics state. The intention is that this will allow us to spot the + the graphics state. The intention is that this will allow us to spot the
      -case where we are executing the stroke part of a combined 'fill and stroke' + case where we are executing the stroke part of a combined 'fill and stroke'
      -operation (as required by pdf). This should allow us to solve the + operation (as required by pdf). This should allow us to solve the
      -remaining problems with the pdf14/knockout group. + remaining problems with the pdf14/knockout group.

      -No cluster differences expected. + No cluster differences expected.

      @@ -10330,15 +27275,14 @@

      - -

      -2011-04-29 19:41:50 +0100 -
      Robin Watts
      +


      +

      2011-04-29 19:41:50 +0100 + +
      Robin Watts <Robin.Watts@artifex.com>
      96339fd0f400d7c0534a8ff73c355787d7773297

      - -
      -Correct typo in comment. CLUSTER_UNTESTED. +

      + Correct typo in comment. CLUSTER_UNTESTED.

      @@ -10346,15 +27290,14 @@

      - -

      -2011-04-29 19:39:27 +0100 -
      Robin Watts
      +


      +

      2011-04-29 19:39:27 +0100 + +
      Robin Watts <Robin.Watts@artifex.com>
      6ac5520977be5b3ee198c155ef395c6406962db4

      - -
      -Whitespace fixes. +

      + Whitespace fixes.

      @@ -10364,19 +27307,18 @@

      - -

      -2011-04-27 22:41:28 -0700 -
      Michael Vrhel
      +


      +

      2011-04-27 22:41:28 -0700 + +
      Michael Vrhel <michael.vrhel@artifex.com>
      c9de3e70e4027fb86dde6079a48b29cfd6825c72

      - -
      -Revert "MSVC changes plus gitignore for patt_trans_clist" +

      + Revert "MSVC changes plus gitignore for patt_trans_clist"

      -This reverts commit 01c9c2bd3dbd8be851b2e8dde68885413807e704. + This reverts commit 01c9c2bd3dbd8be851b2e8dde68885413807e704.

      @@ -10406,37 +27348,36 @@

      - -

      -2011-04-27 22:27:39 -0700 -
      Michael Vrhel
      +


      +

      2011-04-27 22:27:39 -0700 + +
      Michael Vrhel <michael.vrhel@artifex.com>
      4b191e99538574a67178a8a4df0e19f380d47403

      - -
      -Fix for reference counting issue of the compositor device at +

      + Fix for reference counting issue of the compositor device at
      -the end of the clist playback. In most cases, the compositor rc + the end of the clist playback. In most cases, the compositor rc
      -should be 1 at this point and so the device is closed and then + should be 1 at this point and so the device is closed and then
      -freed. The case, when it is not 1 is when we have a pattern + freed. The case, when it is not 1 is when we have a pattern
      -that has a transparency and is stored in a clist. In this case + that has a transparency and is stored in a clist. In this case
      -the target for the pattern clist device is the main pdf14 device and + the target for the pattern clist device is the main pdf14 device and
      -we increment the rc during this assignment. So, when the + we increment the rc during this assignment. So, when the
      -playback completes, the rc of the compositor is 2. We do not + playback completes, the rc of the compositor is 2. We do not
      -want to close and free the compositor, since it is part of the + want to close and free the compositor, since it is part of the
      -main clist that we have going on. Instead we only want to + main clist that we have going on. Instead we only want to
      -decrement the rc. The test file pattrans_big.pdf is now + decrement the rc. The test file pattrans_big.pdf is now
      -handled correctly but has a rendering/tiling issue it appears. + handled correctly but has a rendering/tiling issue it appears.

      @@ -10444,15 +27385,14 @@

      - -

      -2011-04-27 22:20:56 -0700 -
      Michael Vrhel
      +


      +

      2011-04-27 22:20:56 -0700 + +
      Michael Vrhel <michael.vrhel@artifex.com>
      01c9c2bd3dbd8be851b2e8dde68885413807e704

      - -
      -MSVC changes plus gitignore for patt_trans_clist +

      + MSVC changes plus gitignore for patt_trans_clist

      @@ -10482,15 +27422,14 @@

      - -

      -2011-04-27 18:43:52 +0000 -
      Robin Watts
      +


      +

      2011-04-27 18:43:52 +0000 + +
      Robin Watts <robin@ghostscript.com>
      82437e248e95c3e9830720feaf5030d37950b091

      - -
      -Whitespace fixups. +

      + Whitespace fixups.

      @@ -10498,33 +27437,32 @@

      - -

      -2011-04-27 18:42:10 +0000 -
      Robin Watts
      +


      +

      2011-04-27 18:42:10 +0000 + +
      Robin Watts <robin@ghostscript.com>
      bdbb2b5da2ad758d07dfefc84b2a53c00ba091d4

      - -
      -Revert SVN commit 12934, ref count checking before free in gxclrast.c +

      + Revert SVN commit 12934, ref count checking before free in gxclrast.c

      -A couple of weeks ago, I applied a wild stab in the dark to solve a problem + A couple of weeks ago, I applied a wild stab in the dark to solve a problem
      -that I cannot now locate. Having discussed it with Michael it seems that this + that I cannot now locate. Having discussed it with Michael it seems that this
      -was (at best) just masking another problem (the incorrect ref count + was (at best) just masking another problem (the incorrect ref count
      -initialisation of compositors). This has been fixed, so my faulty attempt + initialisation of compositors). This has been fixed, so my faulty attempt
      -can be backed out. + can be backed out.

      -We leave a debug only check in there to catch this situation. This should be + We leave a debug only check in there to catch this situation. This should be
      -replaced by an assert when we have such things. + replaced by an assert when we have such things.

      @@ -10532,15 +27470,14 @@

      - -

      -2011-04-27 15:25:22 +0100 -
      Robin Watts
      +


      +

      2011-04-27 15:25:22 +0100 + +
      Robin Watts <Robin.Watts@artifex.com>
      bdfb4cf85e6c7d78dbeecfb8c6dd06c1eed14714

      - -
      -Fix overflow in pattern tile size estimation code. +

      + Fix overflow in pattern tile size estimation code.

      @@ -10548,15 +27485,14 @@

      - -

      -2011-04-27 10:46:22 +0000 -
      Robin Watts
      +


      +

      2011-04-27 10:46:22 +0000 + +
      Robin Watts <robin@ghostscript.com>
      1540df197675f2935c6d743927ad25df0396dfff

      - -
      -Merge branch 'master' into patt_trans_clist +

      + Merge branch 'master' into patt_trans_clist

      @@ -10564,15 +27500,14 @@

      - -

      -2011-04-26 13:23:00 -0700 -
      Michael Vrhel
      +


      +

      2011-04-26 13:23:00 -0700 + +
      Michael Vrhel <michael.vrhel@artifex.com>
      212d2dba16a53088ba6de69266603db847069ec7

      - -
      -Check to make sure an empty deviceN params member does not lead to an improper path during the device creation. +

      + Check to make sure an empty deviceN params member does not lead to an improper path during the device creation.

      @@ -10580,15 +27515,14 @@

      - -

      -2011-04-26 19:40:25 +0100 -
      Robin Watts
      +


      +

      2011-04-26 19:40:25 +0100 + +
      Robin Watts <Robin.Watts@artifex.com>
      696ee8153b72d20484e66f5da43b6ee6027fddc4

      - -
      -Remove partial merge left over from svn conversion. +

      + Remove partial merge left over from svn conversion.

      @@ -10596,85 +27530,84 @@

      - -

      -2011-02-09 21:38:24 +0000 -
      mvrhel
      +


      +

      2011-02-09 21:38:24 +0000 + +
      mvrhel <mvrhel@a1074d23-0009-0410-80fe-cf8c14f379e6>
      ebf1da59669bb51701c3df9747ebe3f4fe9f6b26

      - -
      -Work on the pattern transparency clist code. +

      + Work on the pattern transparency clist code.

      -A squashed and rebased patch based on the following svn commits. + A squashed and rebased patch based on the following svn commits.

      -Author: robin + Author: robin <robin@a1074d23-0009-0410-80fe-cf8c14f379e6>
      -Date: Tue Apr 19 12:40:00 2011 +0000 + Date: Tue Apr 19 12:40:00 2011 +0000

      -Various fixes to the transparency clist branch to correctly use + Various fixes to the transparency clist branch to correctly use
      -just the subrectangle of transparency tiles that is actually present. + just the subrectangle of transparency tiles that is actually present.

      -Getting this in before the Great Git Change this afternoon. + Getting this in before the Great Git Change this afternoon.

      -git-svn-id: http://svn.ghostscript.com/ghostscript/branches/patt_trans_clist_gs@12407 a1074d23-0009-0410-80fe-cf8c14f379e6 + git-svn-id: http://svn.ghostscript.com/ghostscript/branches/patt_trans_clist_gs@12407 a1074d23-0009-0410-80fe-cf8c14f379e6

      -Author: ray + Author: ray <ray@a1074d23-0009-0410-80fe-cf8c14f379e6>
      -Date: Fri Apr 8 16:56:48 2011 +0000 + Date: Fri Apr 8 16:56:48 2011 +0000

      -A couple of minor fixes that help things along, get past compile errors. + A couple of minor fixes that help things along, get past compile errors.

      -git-svn-id: http://svn.ghostscript.com/ghostscript/branches/patt_trans_clist_gs@12379 a1074d23-0009-0410-80fe-cf8c14f379e6 + git-svn-id: http://svn.ghostscript.com/ghostscript/branches/patt_trans_clist_gs@12379 a1074d23-0009-0410-80fe-cf8c14f379e6

      -Author: mvrhel + Author: mvrhel <mvrhel@a1074d23-0009-0410-80fe-cf8c14f379e6>
      -Date: Wed Feb 9 21:38:24 2011 +0000 + Date: Wed Feb 9 21:38:24 2011 +0000

      -Initial commit of work so far on getting the pattern transparency + Initial commit of work so far on getting the pattern transparency
      -clist code working. Much of this comes from work that Ray and I did + clist code working. Much of this comes from work that Ray and I did
      -for customer 532. The remaining portion of the work is primarily + for customer 532. The remaining portion of the work is primarily
      -in pdf14_tile_pattern_fill in gdevp14.c, where we need to make + in pdf14_tile_pattern_fill in gdevp14.c, where we need to make
      -sure that the group that we are going to push is the intersection + sure that the group that we are going to push is the intersection
      -with the rect from trans pattern since we only use the part that we + with the rect from trans pattern since we only use the part that we
      -drew into in the pattern creation and not the whole group buffer. I + drew into in the pattern creation and not the whole group buffer. I
      -had not worked on this in a few weeks so I don't have more details + had not worked on this in a few weeks so I don't have more details
      -right now. I will spend a day on it this week to see exactly what + right now. I will spend a day on it this week to see exactly what
      -remains to be done. + remains to be done.

      -git-svn-id: http://svn.ghostscript.com/ghostscript/branches/patt_trans_clist_gs@12137 a1074d23-0009-0410-80fe-cf8c14f379e6 + git-svn-id: http://svn.ghostscript.com/ghostscript/branches/patt_trans_clist_gs@12137 a1074d23-0009-0410-80fe-cf8c14f379e6

      @@ -10712,23 +27645,22 @@

      - -

      -2011-05-19 15:27:07 +0100 -
      Robin Watts
      +


      +

      2011-05-19 15:27:07 +0100 + +
      Robin Watts <Robin.Watts@artifex.com>
      e60ed1f615f7347dc9318b2c8e17851fb3a6199a

      - -
      -Address bug 692211; byteswap.h not present on FreeBSD. +

      + Address bug 692211; byteswap.h not present on FreeBSD.

      -After googling it seems like the correct thing to do is to use gcc builtin + After googling it seems like the correct thing to do is to use gcc builtin
      -intrinsics for byteswapping from 4.3 upwards, and to use byteswap.h + intrinsics for byteswapping from 4.3 upwards, and to use byteswap.h
      -for all other versions of gcc >= 2.0. This should address the problem. + for all other versions of gcc >= 2.0. This should address the problem.

      @@ -10736,27 +27668,26 @@

      - -

      -2011-05-19 12:28:06 +0000 -
      Robin Watts
      +


      +

      2011-05-19 12:28:06 +0000 + +
      Robin Watts <robin@ghostscript.com>
      f66aa4e491ecff0a5787c4f4a8c8ace1cb7d3432

      - -
      -Minor tweaks to memento. +

      + Minor tweaks to memento.

      -Improve debugging output, documentation. Fix the time at which the sequence + Improve debugging output, documentation. Fix the time at which the sequence
      -counter is incremented to give less confusing messages. Add Memento_inited + counter is incremented to give less confusing messages. Add Memento_inited
      -function to breakpoint on. + function to breakpoint on.

      -Not enabled in cluster so, CLUSTER_UNTESTED. + Not enabled in cluster so, CLUSTER_UNTESTED.

      @@ -10768,29 +27699,27 @@

      - -

      -2011-05-18 12:28:05 -0600 -
      Henry Stiles
      +


      +

      2011-05-18 12:28:05 -0600 + +
      Henry Stiles <henry.stiles@artifex.com>
      ef883a068ea54fca1569e5389f7ccfa6aa01e6a8

      - -
      -Merge branch 'pcl_documentation' +

      + Merge branch 'pcl_documentation'

      - -

      -2011-05-14 15:15:32 -0600 -
      Henry Stiles
      +


      +

      2011-05-14 15:15:32 -0600 + +
      Henry Stiles <henry.stiles@artifex.com>
      21503ee8197c9707f8ced1c92593c4e279687ee2

      - -
      -Long overdue update of the PCL documentation. +

      + Long overdue update of the PCL documentation.

      @@ -10802,21 +27731,20 @@

      - -

      -2011-05-18 17:48:10 +0100 -
      Robin Watts
      +


      +

      2011-05-18 17:48:10 +0100 + +
      Robin Watts <Robin.Watts@artifex.com>
      62b57818e9117c1ebfe32894464ab12956826f7d

      - -
      -Workaround SEGV in clist with fillpage (Bug 692076). +

      + Workaround SEGV in clist with fillpage (Bug 692076).

      -This is a simple patch for the symptoms, not a proper cure, but it suffices + This is a simple patch for the symptoms, not a proper cure, but it suffices
      -to get it out of regression test error lists. + to get it out of regression test error lists.

      @@ -10824,37 +27752,36 @@

      - -

      -2011-05-18 15:05:28 +0100 -
      Chris Liddell
      +


      +

      2011-05-18 15:05:28 +0100 + +
      Chris Liddell <chris.liddell@artifex.com>
      1a7d4d447c2fc05240ab258f4eb232080fd1fb5f

      - -
      -Revise 64 bit build options for VS2010. +

      + Revise 64 bit build options for VS2010.

      -Mainly, there was come confusion between the WIN64 setting + Mainly, there was come confusion between the WIN64 setting
      -for the type of build, and the BUILD_SYSTEM setting for + for the type of build, and the BUILD_SYSTEM setting for
      -whether the system is 32 or 64 bit. + whether the system is 32 or 64 bit.

      -NOTE: 64 bit builds on 32 bit systems do not work, and + NOTE: 64 bit builds on 32 bit systems do not work, and
      -I do not intend to attempt to make them work. + I do not intend to attempt to make them work.

      -Bug 692126 + Bug 692126

      -CLUSTER_UNTESTED + CLUSTER_UNTESTED

      @@ -10862,23 +27789,22 @@

      - -

      -2011-05-18 08:21:21 +0100 -
      Chris Liddell
      +


      +

      2011-05-18 08:21:21 +0100 + +
      Chris Liddell <chris.liddell@artifex.com>
      f9cf64f56577b593f424c7d661b5fb8ea7a53216

      - -
      -Reinstate the Mememto build rules..... +

      + Reinstate the Mememto build rules.....

      -....that went AWOL with commit 447c1a791d28fb72b196f75356bc411ef45afbdd + ....that went AWOL with commit 447c1a791d28fb72b196f75356bc411ef45afbdd

      -No cluster differences expected. + No cluster differences expected.

      @@ -10886,37 +27812,36 @@

      - -

      -2011-05-17 23:43:14 -0700 -
      Michael Vrhel
      +


      +

      2011-05-17 23:43:14 -0700 + +
      Michael Vrhel <michael.vrhel@artifex.com>
      447c1a791d28fb72b196f75356bc411ef45afbdd

      - -
      -Fix for MT crashes in lcms +

      + Fix for MT crashes in lcms

      -It turns out that lcms is can not safely share + It turns out that lcms is can not safely share
      -profiles between threads when creating links. This + profiles between threads when creating links. This
      -was fixed by placing a mutex lock around the profile + was fixed by placing a mutex lock around the profile
      -creation. It also turns out that lcms can not + creation. It also turns out that lcms can not
      -use the same link to do transformations between threads. + use the same link to do transformations between threads.
      -This was solved by disabling the shared cache between + This was solved by disabling the shared cache between
      -the threads. Finally there was a race condition in + the threads. Finally there was a race condition in
      -reference counting the device ICC profile in the pdf14 + reference counting the device ICC profile in the pdf14
      -device. Also, this commit includes a fix for a memory + device. Also, this commit includes a fix for a memory
      -leak in the pdf_mask object in gdevp14. + leak in the pdf_mask object in gdevp14.

      @@ -10938,25 +27863,24 @@

      - -

      -2011-05-17 22:33:15 +0100 -
      Robin Watts
      +


      +

      2011-05-17 22:33:15 +0100 + +
      Robin Watts <Robin.Watts@artifex.com>
      8d9bc767c0c59a7effa7652cbcbde14ab82de249

      - -
      -Make Memento work with valgrind, plus fix unix build issues. +

      + Make Memento work with valgrind, plus fix unix build issues.

      -Various fixes for Memento, most especially to ensure it works with + Various fixes for Memento, most especially to ensure it works with
      -Valgrind (lots of valgrind calls to make memory readable/hide it again). + Valgrind (lots of valgrind calls to make memory readable/hide it again).

      -No cluster differences expected. + No cluster differences expected.

      @@ -10970,23 +27894,22 @@

      - -

      -2011-05-17 15:29:53 -0400 -
      Alex Cherepanov
      +


      +

      2011-05-17 15:29:53 -0400 + +
      Alex Cherepanov <alex.cherepanov@artifex.com>
      cbe9dcfc93812aae26ffd5c2bebbe5b2dc1a4623

      - -
      -Bug 692209: tolerate missing /Length in PDF stream. +

      + Bug 692209: tolerate missing /Length in PDF stream.

      -Add branches that deal with a missing /Length attribute in the + Add branches that deal with a missing /Length attribute in the
      -PDF string directory. The sample file misspells /Length as /Lenght + PDF string directory. The sample file misspells /Length as /Lenght
      -but the patch addresses a more general problem. + but the patch addresses a more general problem.

      @@ -10994,23 +27917,22 @@

      - -

      -2011-05-17 11:28:50 -0700 -
      Ray Johnston
      +


      +

      2011-05-17 11:28:50 -0700 + +
      Ray Johnston <ray.johnston@artifex.com>
      784c8aa262a2a71659ce2d882c424e0254368a10

      - -
      -Fix ref counting for icc_array +

      + Fix ref counting for icc_array

      -Copy the icc_array BEFORE putdeviceparams so we don't end up creating extra ones, and bump the shared icc_array. + Copy the icc_array BEFORE putdeviceparams so we don't end up creating extra ones, and bump the shared icc_array.

      -The finalize when the device is freed will decrement the ref count. + The finalize when the device is freed will decrement the ref count.

      @@ -11018,25 +27940,24 @@

      - -

      -2011-05-17 18:13:17 +0100 -
      Robin Watts
      +


      +

      2011-05-17 18:13:17 +0100 + +
      Robin Watts <Robin.Watts@artifex.com>
      bc9c681b53babcab8d5e6bd102bfb0c51b8b7ed1

      - -
      -Memento realloc fix. +

      + Memento realloc fix.

      -Memento was filling the 'new' section of realloced blocks incorrectly, + Memento was filling the 'new' section of realloced blocks incorrectly,
      -resulting in memory overwrites. + resulting in memory overwrites.

      -CLUSTER_UNTESTED as Memento is not enabled by default. + CLUSTER_UNTESTED as Memento is not enabled by default.

      @@ -11044,29 +27965,28 @@

      - -

      -2011-05-17 12:03:33 +0000 -
      Robin Watts
      +


      +

      2011-05-17 12:03:33 +0000 + +
      Robin Watts <robin@ghostscript.com>
      2b7e6a4174a58cf0c395e4950a428a722607f860

      - -
      -Initial commit of new Memento module (attempt #2) +

      + Initial commit of new Memento module (attempt #2)

      -Memento is a simple memory checking module; it helps to track memory + Memento is a simple memory checking module; it helps to track memory
      -corruption and leaks. To use it, build with -DMEMENTO. + corruption and leaks. To use it, build with -DMEMENTO.

      -Still to do: Valgrind integration. + Still to do: Valgrind integration.

      -No cluster differences expected. + No cluster differences expected.

      @@ -11080,43 +28000,42 @@

      - -

      -2011-05-15 15:50:40 -0700 -
      Michael Vrhel
      +


      +

      2011-05-15 15:50:40 -0700 + +
      Michael Vrhel <michael.vrhel@artifex.com>
      1787ce3393956701e6241b8efc6f575887c3f5c1

      - -
      -Change in device ICC profile handling +

      + Change in device ICC profile handling

      -This is the major portion of the code needed to achieve object dependent + This is the major portion of the code needed to achieve object dependent
      -color management. This fixes the problems that existed in the + color management. This fixes the problems that existed in the
      -previous code with the device parameters and introduces an array of + previous code with the device parameters and introduces an array of
      -ICC profiles in the device structure. The code was cluster pushed and + ICC profiles in the device structure. The code was cluster pushed and
      -showed some very minor differences in a couple files but they appear to be + showed some very minor differences in a couple files but they appear to be
      -OK with bmpcmp. I still need to do further testing to verify that all the + OK with bmpcmp. I still need to do further testing to verify that all the
      -functionality is correct (e.g. make sure setting the text profile properly + functionality is correct (e.g. make sure setting the text profile properly
      -affects the text only). In addition, the rendering intent options need to be + affects the text only). In addition, the rendering intent options need to be
      -implemented. + implemented.

      -I also need to check that nothing was broken with respect to MT + I also need to check that nothing was broken with respect to MT
      -rendering and some of the devices that are not tested with cluster + rendering and some of the devices that are not tested with cluster
      -pushing (e.g. the display device and the x11alpha device). + pushing (e.g. the display device and the x11alpha device).

      @@ -11204,27 +28123,26 @@

      - -

      -2011-05-13 10:52:18 -0700 -
      Marcos H. Woehrmann
      +


      +

      2011-05-13 10:52:18 -0700 + +
      Marcos H. Woehrmann <marcos.woehrmann@artifex.com>
      c622f66846aa6b8124b1dffed7dbdaedabedd93f

      - -
      -Modified clusterpush.pl to not rsync Makefiles +

      + Modified clusterpush.pl to not rsync Makefiles

      -Modified clusterpush.pl to not rsync Makefiles and config.log files. + Modified clusterpush.pl to not rsync Makefiles and config.log files.
      -Also removed the various files that have been moved to the cluster.git + Also removed the various files that have been moved to the cluster.git
      -repository. + repository.

      -No expected cluster differences. + No expected cluster differences.

      @@ -11268,63 +28186,62 @@

      - -

      -2011-05-13 09:42:41 -0700 -
      Marcos H. Woehrmann
      +


      +

      2011-05-13 09:42:41 -0700 + +
      Marcos H. Woehrmann <marcos.woehrmann@artifex.com>
      7dcc68ce753175a9c686021d53a061253e2787c3

      - -
      -Modified math_.h to use our hypot(). +

      + Modified math_.h to use our hypot().

      -The system hypot() function gives slightly different results on Linux vs + The system hypot() function gives slightly different results on Linux vs
      -Mac OS X systems for same input values. This minor difference results + Mac OS X systems for same input values. This minor difference results
      -in rendering variations in some files, confounding the regression + in rendering variations in some files, confounding the regression
      -test system. + test system.

      -This revision changes math_.h to use our hypot() in all cases instead + This revision changes math_.h to use our hypot() in all cases instead
      -of the system one (previously our function was used on those platforms + of the system one (previously our function was used on those platforms
      -where there was no system hypot() function). + where there was no system hypot() function).

      -Testing by Robin shows that our function is faster than the system one, + Testing by Robin shows that our function is faster than the system one,
      -so another reason to make this change. + so another reason to make this change.

      -Fixes Bug 692197. + Fixes Bug 692197.

      -Cluster differences on some nodes expected in: + Cluster differences on some nodes expected in:

      -tests_private__pcl__pcl5ccet__28-10.BIN ppmraw + tests_private__pcl__pcl5ccet__28-10.BIN ppmraw
      -tests_private__pcl__pcl5ccet__32-01.BIN pbmraw + tests_private__pcl__pcl5ccet__32-01.BIN pbmraw
      -tests_private__pcl__pcl5cfts__fts.2210a pbmraw + tests_private__pcl__pcl5cfts__fts.2210a pbmraw
      -tests_private__pcl__pcl5efts__fts.1810 ppmraw + tests_private__pcl__pcl5efts__fts.1810 ppmraw
      -tests_private__pcl__pcl5efts__fts.2132 pbmraw + tests_private__pcl__pcl5efts__fts.2132 pbmraw
      -tests_private__pcl__pcl5efts__fts.2291 pbmraw + tests_private__pcl__pcl5efts__fts.2291 pbmraw
      -tests_private__pcl__pcl5efts__fts.2350 pbmraw + tests_private__pcl__pcl5efts__fts.2350 pbmraw

      @@ -11332,21 +28249,20 @@

      - -

      -2011-05-13 09:33:29 +0000 -
      Robin Watts
      +


      +

      2011-05-13 09:33:29 +0000 + +
      Robin Watts <robin@ghostscript.com>
      4bd5322f27e9b95716323bdd000e312418a59676

      - -
      -Further tweak to lcms cached transforms. +

      + Further tweak to lcms cached transforms.

      -Use int comparisons rather than memcmp. No differences shown in cluster + Use int comparisons rather than memcmp. No differences shown in cluster
      -testing. + testing.

      @@ -11354,29 +28270,28 @@

      - -

      -2011-05-12 23:14:47 +0000 -
      Robin Watts
      +


      +

      2011-05-12 23:14:47 +0000 + +
      Robin Watts <robin@ghostscript.com>
      3767ee67758778d00c9c5c879ade41fc9f41c83b

      - -
      -Simplify LCMS cached transform template. +

      + Simplify LCMS cached transform template.

      -I'd overengineered the cached transform template code; the cache is + I'd overengineered the cached transform template code; the cache is
      -reset on every format change, so there is no need to check for that + reset on every format change, so there is no need to check for that
      -in the transform function. + in the transform function.

      -No expected performance increase, but the code is less complex. No + No expected performance increase, but the code is less complex. No
      -differences seen in cluster testing. CLUSTER_UNTESTED. + differences seen in cluster testing. CLUSTER_UNTESTED.

      @@ -11384,19 +28299,18 @@

      - -

      -2011-05-12 17:57:55 +0100 -
      Robin Watts
      +


      +

      2011-05-12 17:57:55 +0100 + +
      Robin Watts <Robin.Watts@artifex.com>
      8bcf5d9dd0c4088a811f85121addb238c9240478

      - -
      -Add new lcms source/header file to ghostscript.vcproj. +

      + Add new lcms source/header file to ghostscript.vcproj.

      -No cluster differences as this isn't tested. CLUSTER_UNTESTED. + No cluster differences as this isn't tested. CLUSTER_UNTESTED.

      @@ -11404,39 +28318,38 @@

      - -

      -2011-05-12 16:06:08 +0000 -
      Robin Watts
      +


      +

      2011-05-12 16:06:08 +0000 + +
      Robin Watts <robin@ghostscript.com>
      d324305b11fd0bb399c868fe87b26cb768dc06c5

      - -
      -LCMS (v1) Optimisations for CachedXFORM etc. +

      + LCMS (v1) Optimisations for CachedXFORM etc.

      -Optimise CachedXFORM (and related functions) by using a 'template' header + Optimise CachedXFORM (and related functions) by using a 'template' header
      -file and repeatedly including it with different options to generate + file and repeatedly including it with different options to generate
      -different specific versions of the code. + different specific versions of the code.

      -This gives a 10% improvement on 568.40345_VO_nr_3_vpeSR18.xl (a file where + This gives a 10% improvement on 568.40345_VO_nr_3_vpeSR18.xl (a file where
      -most of the time is spent in clipping). + most of the time is spent in clipping).

      -No expected cluster differences. I've just done a full test with a bmpcmp + No expected cluster differences. I've just done a full test with a bmpcmp
      -and it showed no differences, but in light of what happened last time I + and it showed no differences, but in light of what happened last time I
      -committed this, I am not going to use the magic rune to stop the cluster + committed this, I am not going to use the magic rune to stop the cluster
      -rechecking it on commit. + rechecking it on commit.

      @@ -11452,53 +28365,52 @@

      - -

      -2011-05-12 15:08:01 +0100 -
      Robin Watts
      +


      +

      2011-05-12 15:08:01 +0100 + +
      Robin Watts <Robin.Watts@artifex.com>
      e79fff7a2b215103c795b74d4abe162bf8ca3486

      - -
      -Change PSI so -Z! works by default in debug builds. +

      + Change PSI so -Z! works by default in debug builds.

      -Previously, the -Z! option (to show the name of each PS operator as it is + Previously, the -Z! option (to show the name of each PS operator as it is
      -executed) has only been available in DEBUG builds that specifically use + executed) has only been available in DEBUG builds that specifically use
      -the DEBUG_TRACE_PS_OPERATORS option. This change ensures that it is available + the DEBUG_TRACE_PS_OPERATORS option. This change ensures that it is available
      -in ALL debug builds, and in any release build where the + in ALL debug builds, and in any release build where the
      -DEBUG_TRACE_PS_OPERATORS symbol is predefined. + DEBUG_TRACE_PS_OPERATORS symbol is predefined.

      -The reason for historically having it as a separate option was because + The reason for historically having it as a separate option was because
      -checking for whether the ! debug flag was set on every operator was felt + checking for whether the ! debug flag was set on every operator was felt
      -to be too large an overhead. I have arranged the code so that this overhead + to be too large an overhead. I have arranged the code so that this overhead
      -is minimised now - in debug builds we only get the extra overhead when + is minimised now - in debug builds we only get the extra overhead when
      -the -Z! is specified on the command line. + the -Z! is specified on the command line.

      -In normal release builds there is no change to the overhead. In release + In normal release builds there is no change to the overhead. In release
      -builds with DEBUG_TRACE_PS_OPERATORS, the same overheads apply as in + builds with DEBUG_TRACE_PS_OPERATORS, the same overheads apply as in
      -DEBUG builds (that is a small additional overhead when -Z! is not used + DEBUG builds (that is a small additional overhead when -Z! is not used
      -and a larger one when it is). + and a larger one when it is).

      -No cluster differences expected. + No cluster differences expected.

      @@ -11510,21 +28422,20 @@

      - -

      -2011-05-11 15:39:06 -0600 -
      Henry Stiles
      +


      +

      2011-05-11 15:39:06 -0600 + +
      Henry Stiles <henry.stiles@artifex.com>
      7d77dabf5a1e24118455a5c0417ae75c5d5dcf60

      - -
      -Fixes bug #689870 - add proper big endian number accessors. +

      + Fixes bug #689870 - add proper big endian number accessors.

      -Previously only an unsigned accessor was provided and it was being + Previously only an unsigned accessor was provided and it was being
      -used to read both signed and unsigned quantities. + used to read both signed and unsigned quantities.

      @@ -11544,25 +28455,24 @@

      - -

      -2011-05-11 15:18:11 -0600 -
      Henry Stiles
      +


      +

      2011-05-11 15:18:11 -0600 + +
      Henry Stiles <henry.stiles@artifex.com>
      7c309e8a33333da3c124732bb6b00b0701e85579

      - -
      -Fixes 690889, potential null dereference. +

      + Fixes 690889, potential null dereference.

      -Prevent a theoretical (no test file) null dereference. There are + Prevent a theoretical (no test file) null dereference. There are
      -several of these cases identified by by static analysis. We believe + several of these cases identified by by static analysis. We believe
      -the authors intent was to pass the word stream if the arithmetic state + the authors intent was to pass the word stream if the arithmetic state
      -was not set, as in the other call of the same function. + was not set, as in the other call of the same function.

      @@ -11570,15 +28480,14 @@

      - -

      -2011-05-11 17:12:59 +0000 -
      Robin Watts
      +


      +

      2011-05-11 17:12:59 +0000 + +
      Robin Watts <robin@ghostscript.com>
      2bde8dc655c36ef729964980aa373c26dbe873e5

      - -
      -Backout 6469f73 pending investigation of unexpected differences. +

      + Backout 6469f73 pending investigation of unexpected differences.

      @@ -11592,33 +28501,32 @@

      - -

      -2011-05-11 16:17:05 +0000 -
      Robin Watts
      +


      +

      2011-05-11 16:17:05 +0000 + +
      Robin Watts <robin@ghostscript.com>
      6469f738123e0c212473f11d38e88bb3650a9087

      - -
      -LCMS (v1) optimisations for CachedXFORM etc. +

      + LCMS (v1) optimisations for CachedXFORM etc.

      -Optimise CachedXFORM (and related functions) by using a 'template' header + Optimise CachedXFORM (and related functions) by using a 'template' header
      -file and repeatedly including it with different options to generate + file and repeatedly including it with different options to generate
      -different specific versions of the code. + different specific versions of the code.

      -This gives a 10% improvement on 568.40345_VO_nr_3_vpeSR18.xl (a file where + This gives a 10% improvement on 568.40345_VO_nr_3_vpeSR18.xl (a file where
      -most of the time is spent in clipping). + most of the time is spent in clipping).

      -No expected cluster differences. + No expected cluster differences.

      @@ -11634,27 +28542,26 @@

      - -

      -2011-05-02 19:50:04 +0100 -
      Robin Watts
      +


      +

      2011-05-02 19:50:04 +0100 + +
      Robin Watts <Robin.Watts@artifex.com>
      1d07f53add51362ce5887b599f2dcb360f9cf348

      - -
      -Pacify valgrind (and improve performance?) with tiny change. +

      + Pacify valgrind (and improve performance?) with tiny change.

      -A tiny change to gxclrast.c where we initialise state_tile.size.{x,y}. + A tiny change to gxclrast.c where we initialise state_tile.size.{x,y}.
      -This stops valgrind giving warnings. While the code works OK without + This stops valgrind giving warnings. While the code works OK without
      -this (I believe), it can cause various %, /, gcd operations. These are + this (I believe), it can cause various %, /, gcd operations. These are
      -all expensive operations and are neatly sidestepped by the simple + all expensive operations and are neatly sidestepped by the simple
      -expedient of setting the variable to 0 to start with. + expedient of setting the variable to 0 to start with.

      @@ -11662,47 +28569,46 @@

      - -

      -2011-05-10 19:29:49 +0100 -
      Robin Watts
      +


      +

      2011-05-10 19:29:49 +0100 + +
      Robin Watts <Robin.Watts@artifex.com>
      f6f6de913f2f20914ed641a0331e405011d6565b

      - -
      -Add LAND_BITS define to landscape mono halftoning code. +

      + Add LAND_BITS define to landscape mono halftoning code.

      -The monochrome halftone thresholding code relies on collating incoming + The monochrome halftone thresholding code relies on collating incoming
      -scanline data into 'scancolumn' buffers. When we have 16 bytes in these + scanline data into 'scancolumn' buffers. When we have 16 bytes in these
      -buffers, they halftoned and flushed through copy_mono. + buffers, they halftoned and flushed through copy_mono.

      -copy_mono would prefer to work with longer than 16 byte runs, so we + copy_mono would prefer to work with longer than 16 byte runs, so we
      -remove the hardcoded 16s from throughout the code and replace it with + remove the hardcoded 16s from throughout the code and replace it with
      -a #defined value. A side effect of this is that the code becomes + a #defined value. A side effect of this is that the code becomes
      -slightly clearer. + slightly clearer.

      -Sadly, it seems this doesn't give the expected speedups; testing here + Sadly, it seems this doesn't give the expected speedups; testing here
      -indicates that both 32 and 128 run slower, possibly due to cache effects. + indicates that both 32 and 128 run slower, possibly due to cache effects.

      -Nonetheless we commit the code in case inspiration strikes us later on. + Nonetheless we commit the code in case inspiration strikes us later on.

      -No cluster differences expected. + No cluster differences expected.

      @@ -11714,25 +28620,24 @@

      - -

      -2011-05-10 19:24:55 +0100 -
      Robin Watts
      +


      +

      2011-05-10 19:24:55 +0100 + +
      Robin Watts <Robin.Watts@artifex.com>
      21cfb2e3b6c0d15c84b748586c51969daae58345

      - -
      -LCMS performance tweak; ToFixedDomain/FromFixedDomain. +

      + LCMS performance tweak; ToFixedDomain/FromFixedDomain.

      -Make ToFixedDomain/FromFixedDomains #defines rather than inline functions. + Make ToFixedDomain/FromFixedDomains #defines rather than inline functions.
      -MSVC doesn't inline them, and they are used in speed critical areas. + MSVC doesn't inline them, and they are used in speed critical areas.

      -No cluster differences expected. + No cluster differences expected.

      @@ -11740,45 +28645,44 @@

      - -

      -2011-05-02 18:53:00 +0100 -
      Robin Watts
      +


      +

      2011-05-02 18:53:00 +0100 + +
      Robin Watts <Robin.Watts@artifex.com>
      eef6a4d712a79a5f8d5f48f43c2572d5f002fc38

      - -
      -Quiet valgrind warning, and remove misleading init. +

      + Quiet valgrind warning, and remove misleading init.

      -Cherry picked from patt_trans_clist branch to fix bug 692138. + Cherry picked from patt_trans_clist branch to fix bug 692138.

      -When run with valgrind on: + When run with valgrind on:

      -gs -sDEVICE=pbmraw -r300 -dMaxBitmap=100000000 -o out.pbm Bug690189c.pdf + gs -sDEVICE=pbmraw -r300 -dMaxBitmap=100000000 -o out.pbm Bug690189c.pdf

      -Valgrind complains that params.GrayBackground is used without being + Valgrind complains that params.GrayBackground is used without being
      -initialised. We fix this here by amending gs_trans_mask_params_init. + initialised. We fix this here by amending gs_trans_mask_params_init.

      -In so doing, we note that in zbegintransparencymaskgroup we were setting + In so doing, we note that in zbegintransparencymaskgroup we were setting
      -params.ColorSpace, only to call gs_trans_mask_params_init and have it + params.ColorSpace, only to call gs_trans_mask_params_init and have it
      -overwrite it. To avoid confusion we therefore remove this needless init. + overwrite it. To avoid confusion we therefore remove this needless init.

      -No cluster differences seen in testing. + No cluster differences seen in testing.

      @@ -11788,37 +28692,36 @@

      - -

      -2011-05-10 09:16:17 +0000 -
      Robin Watts
      +


      +

      2011-05-10 09:16:17 +0000 + +
      Robin Watts <robin@ghostscript.com>
      b1cf87e28636a4922505e9c486b59e64c857717f

      - -
      -Optimisations for mem_mono_strip_copy_rop_dev. +

      + Optimisations for mem_mono_strip_copy_rop_dev.

      -Now that mem_mono_strip_copy_rop_dev is working reliably, cut out the + Now that mem_mono_strip_copy_rop_dev is working reliably, cut out the
      -excess debugging code so we can see the wood for the trees. + excess debugging code so we can see the wood for the trees.

      -To cope with situations where we get narrow texture tiles, reinstate the + To cope with situations where we get narrow texture tiles, reinstate the
      -old code (as rop_run relies on longer runs to get traction). Add new cases + old code (as rop_run relies on longer runs to get traction). Add new cases
      -for no-textures to avoid nested loops etc. + for no-textures to avoid nested loops etc.

      -This all seems to help with the performance of cicero_call. + This all seems to help with the performance of cicero_call.

      -No cluster differences expected. + No cluster differences expected.

      @@ -11826,23 +28729,22 @@

      - -

      -2011-05-10 08:39:19 +0000 -
      Robin Watts
      +


      +

      2011-05-10 08:39:19 +0000 + +
      Robin Watts <robin@ghostscript.com>
      2429ef51f12477d083bfcd3f15f97f90bb653b52

      - -
      -Optimisations to gximono.c; special case the spp_out == 1 case. +

      + Optimisations to gximono.c; special case the spp_out == 1 case.

      -Simple optimisations to the hotspots in image_render_mono_ht. + Simple optimisations to the hotspots in image_render_mono_ht.

      -No real differences seen in cluster testing. + No real differences seen in cluster testing.

      @@ -11850,27 +28752,26 @@

      - -

      -2011-05-09 23:46:09 +0000 -
      Robin Watts
      +


      +

      2011-05-09 23:46:09 +0000 + +
      Robin Watts <robin@ghostscript.com>
      bf8d753f7346c0c97bd4109f0684993ab0a46041

      - -
      -New gxdda.h formulation. +

      + New gxdda.h formulation.

      -Rejig the gxdda macros slightly. We store more 'natural' values internally + Rejig the gxdda macros slightly. We store more 'natural' values internally
      -and get code that optimises slightly better. + and get code that optimises slightly better.

      -No differences expected in cluster testing (1 SEGV shown in my testing, but + No differences expected in cluster testing (1 SEGV shown in my testing, but
      -I think that's random). + I think that's random).

      @@ -11882,19 +28783,18 @@

      - -

      -2011-05-10 00:21:21 -0400 -
      Alex Cherepanov
      +


      +

      2011-05-10 00:21:21 -0400 + +
      Alex Cherepanov <alex.cherepanov@artifex.com>
      0f5928344123e31229d31eb81e3f09b528170e38

      - -
      -Execute linkdest procedure in a stopped context to trap errors caused +

      + Execute linkdest procedure in a stopped context to trap errors caused
      -by out-of-range link destinations that can occur in an invalid files or + by out-of-range link destinations that can occur in an invalid files or
      -during processing of a page range. Bug 692200. + during processing of a page range. Bug 692200.

      @@ -11902,15 +28802,14 @@

      - -

      -2011-05-09 14:47:48 -0600 -
      Henry Stiles
      +


      +

      2011-05-09 14:47:48 -0600 + +
      Henry Stiles <henry.stiles@artifex.com>
      df4e669177f7757a5c054084f4990599bef5c355

      - -
      -Remove unused file should have been committed with e55d362f. +

      + Remove unused file should have been committed with e55d362f.

      @@ -11918,29 +28817,28 @@

      - -

      -2011-05-09 13:16:31 -0600 -
      Henry Stiles
      +


      +

      2011-05-09 13:16:31 -0600 + +
      Henry Stiles <henry.stiles@artifex.com>
      e55d362f3370b4bff0d72dc58c4b7a08b0dba71a

      - -
      -Incorporate raster operation library into the core graphics library. +

      + Incorporate raster operation library into the core graphics library.

      -We were going to fold the roblib in for simplicity, more recently + We were going to fold the roblib in for simplicity, more recently
      -the graphics library code has been refactored such that the raster op + the graphics library code has been refactored such that the raster op
      -library is always required. For example operations previously done in + library is always required. For example operations previously done in
      -the copy_mono code are now done with the raster op code. + the copy_mono code are now done with the raster op code.

      -CLUSTER_UNTESTED + CLUSTER_UNTESTED

      @@ -11962,33 +28860,32 @@

      - -

      -2011-05-05 16:16:22 +0100 -
      Chris Liddell
      +


      +

      2011-05-05 16:16:22 +0100 + +
      Chris Liddell <chris.liddell@artifex.com>
      60d4b088c6d314079643a92a3c4e983b116600a9

      - -
      -Use defined default page size for nullpage device. +

      + Use defined default page size for nullpage device.

      -The nullpage device previously used a 1"x1" default page size, this changes it + The nullpage device previously used a 1"x1" default page size, this changes it
      -to use the same default setting as other page devices (this can be Letter or + to use the same default setting as other page devices (this can be Letter or
      -A4, set in a makefile). + A4, set in a makefile).

      -Also, add some lower bounds checking to gslp.ps so that it will error out if + Also, add some lower bounds checking to gslp.ps so that it will error out if
      -the page size is too small to hold at least one line of text. + the page size is too small to hold at least one line of text.

      -No cluster difference expected. + No cluster difference expected.

      @@ -11998,15 +28895,14 @@

      - -

      -2011-05-08 11:26:15 -0700 -
      Michael Vrhel
      +


      +

      2011-05-08 11:26:15 -0700 + +
      Michael Vrhel <michael.vrhel@artifex.com>
      c677c48f278aba56d45bf2601ed5d152287540f1

      - -
      -Fix for compiler warning +

      + Fix for compiler warning

      @@ -12014,31 +28910,30 @@

      - -

      -2011-05-07 23:21:38 -0700 -
      Michael Vrhel
      +


      +

      2011-05-07 23:21:38 -0700 + +
      Michael Vrhel <michael.vrhel@artifex.com>
      b1d311f06250a07d4c360e67369980d199722694

      - -
      -Significant change in how the device profile is handled in ghostscript. This +

      + Significant change in how the device profile is handled in ghostscript. This
      -change adds in a new device procedure called get_profile, which is going to + change adds in a new device procedure called get_profile, which is going to
      -typically be set to gx_forward_get_profile or gx_default_get_profile. Most + typically be set to gx_forward_get_profile or gx_default_get_profile. Most
      -internal devices like the pattern accumulator, the clip device, memory devices, + internal devices like the pattern accumulator, the clip device, memory devices,
      -will use the gx_forward_get_profile procedure. In this way, the profile is + will use the gx_forward_get_profile procedure. In this way, the profile is
      -typically only maintained by the the target device. The gdevp14 device is the significant internal device that takes special handling due to the way that it + typically only maintained by the the target device. The gdevp14 device is the significant internal device that takes special handling due to the way that it
      -can change its ICC profile based upon the current transparency group color space. The get_profile procedure also passes along information about the object + can change its ICC profile based upon the current transparency group color space. The get_profile procedure also passes along information about the object
      -type so that we will be able to easily add in the device dependent color + type so that we will be able to easily add in the device dependent color
      -management. The rendering intent, which can also be object dependent is also returned by the call. This change has been cluster tested and showed no differences. + management. The rendering intent, which can also be object dependent is also returned by the call. This change has been cluster tested and showed no differences.

      @@ -12102,15 +28997,14 @@

      - -

      -2011-05-06 08:57:07 -0400 -
      Alex Cherepanov
      +


      +

      2011-05-06 08:57:07 -0400 + +
      Alex Cherepanov <alex.cherepanov@artifex.com>
      a065765cd3529d17ba687954d8f4deacd8319247

      - -
      -Add a missing check of the return value from runarg(). Bug 692189. +

      + Add a missing check of the return value from runarg(). Bug 692189.

      @@ -12118,19 +29012,18 @@

      - -

      -2011-05-06 01:13:51 -0400 -
      Alex Cherepanov
      +


      +

      2011-05-06 01:13:51 -0400 + +
      Alex Cherepanov <alex.cherepanov@artifex.com>
      2822d8a9f4186aa14f3913258841b74ff87309cf

      - -
      -Check the type of /File and /Length attributes during XForm identification +

      + Check the type of /File and /Length attributes during XForm identification
      -to avoud confusion with appearance subdictionary, which can include any + to avoud confusion with appearance subdictionary, which can include any
      -attributes (including /File or /Length) pointing to a dictionary. Bug 692192. + attributes (including /File or /Length) pointing to a dictionary. Bug 692192.

      @@ -12138,19 +29031,18 @@

      - -

      -2011-05-04 15:38:22 +0000 -
      Robin Watts
      +


      +

      2011-05-04 15:38:22 +0000 + +
      Robin Watts <robin@ghostscript.com>
      2756e4d6160f73af7bf5ed913af207914aeee588

      - -
      -Invert bmpcmps reading of cups files. +

      + Invert bmpcmps reading of cups files.

      -I had black <-> white. Easy fix. + I had black <-> white. Easy fix.

      @@ -12158,19 +29050,18 @@

      - -

      -2011-05-04 15:08:36 +0100 -
      Robin Watts
      +


      +

      2011-05-04 15:08:36 +0100 + +
      Robin Watts <Robin.Watts@artifex.com>
      e97bf09450c5a08b591e0fca4ef59a21fb78b6ef

      - -
      -Fix bmpcmp to read cups colorspace=0 files too. +

      + Fix bmpcmp to read cups colorspace=0 files too.

      -CLUSTER_UNTESTED. + CLUSTER_UNTESTED.

      @@ -12178,19 +29069,18 @@

      - -

      -2011-05-04 00:45:28 -0400 -
      Alex Cherepanov
      +


      +

      2011-05-04 00:45:28 -0400 + +
      Alex Cherepanov <alex.cherepanov@artifex.com>
      2f0b609805f1abf42b4b10dd721d9fef3001a847

      - -
      -Accept and skip any number of whitespace characters (including +

      + Accept and skip any number of whitespace characters (including
      -just spaces) after the entry count in the xref table. Remove /lineeq + just spaces) after the entry count in the xref table. Remove /lineeq
      -and /linene procedures that are no longer used. Bug 692177. + and /linene procedures that are no longer used. Bug 692177.

      @@ -12198,33 +29088,32 @@

      - -

      -2011-05-03 08:58:18 -0600 -
      Henry Stiles
      +


      +

      2011-05-03 08:58:18 -0600 + +
      Henry Stiles <henry.stiles@artifex.com>
      af70515f6dcd1ffae90250697325fee224182e17

      - -
      -Retain or bias the reference count of the rop texture device. +

      + Retain or bias the reference count of the rop texture device.

      -The image code was using the rop texture device without any reference + The image code was using the rop texture device without any reference
      -counting, explicitly freeing the device when it was done. That was + counting, explicitly freeing the device when it was done. That was
      -fine if the device was the only device in the chain, however, linking + fine if the device was the only device in the chain, however, linking
      -in other devices could lead indirectly to unintended freeing of the + in other devices could lead indirectly to unintended freeing of the
      -rop device. A crash was seen in the the XL test file C705.BIN but + rop device. A crash was seen in the the XL test file C705.BIN but
      -only with halftoning at particular resolutions like 72 dpi. We did + only with halftoning at particular resolutions like 72 dpi. We did
      -not study why the crash was limited to particular resolutions and + not study why the crash was limited to particular resolutions and
      -devices. + devices.

      @@ -12232,31 +29121,30 @@

      - -

      -2011-05-03 17:45:45 +0100 -
      Robin Watts
      +


      +

      2011-05-03 17:45:45 +0100 + +
      Robin Watts <Robin.Watts@artifex.com>
      afcbace446526e29bae11ce53bac5769a409e56f

      - -
      -Add gx_device_dump debugging function. +

      + Add gx_device_dump debugging function.

      -In DEBUG builds gx_device_dump(gx_device *dev, char *text); prints a + In DEBUG builds gx_device_dump(gx_device *dev, char *text); prints a
      -recursive listing of devices, their refcounts and names, and targets. + recursive listing of devices, their refcounts and names, and targets.

      -If anyone spots a forwarding device this doesn't work with, please let me + If anyone spots a forwarding device this doesn't work with, please let me
      -know. + know.

      -No cluster differences expected. + No cluster differences expected.

      @@ -12270,25 +29158,24 @@

      - -

      -2011-05-03 16:39:13 +0000 -
      Robin Watts
      +


      +

      2011-05-03 16:39:13 +0000 + +
      Robin Watts <robin@ghostscript.com>
      6d5e2bde4fe7a42bdd631fb0756f4fafc460ec41

      - -
      -Fix copy_plane; was always copying into plane 0. +

      + Fix copy_plane; was always copying into plane 0.

      -When writing copy_plane, I had neglected to offset into the data + When writing copy_plane, I had neglected to offset into the data
      -according to the plane required. + according to the plane required.

      -CLUSTER_UNTESTED. + CLUSTER_UNTESTED.

      @@ -12296,15 +29183,14 @@

      - -

      -2011-05-02 14:51:26 +0100 -
      Robin Watts
      +


      +

      2011-05-02 14:51:26 +0100 + +
      Robin Watts <Robin.Watts@artifex.com>
      a78476dd0be85f69885f2614be5ab614b03c9168

      - -
      -Add support for cups (1bpp) files to bmpcmp. +

      + Add support for cups (1bpp) files to bmpcmp.

      @@ -12312,33 +29198,32 @@

      - -

      -2011-05-02 20:41:12 +0100 -
      Robin Watts
      +


      +

      2011-05-02 20:41:12 +0100 + +
      Robin Watts <Robin.Watts@artifex.com>
      cc3562ce331bc45a89cebd49c91e10149b5a90b2

      - -
      -Solve windows debug build crash on exit with cups device. +

      + Solve windows debug build crash on exit with cups device.

      -It seems that the cups device takes it upon itself to close the output file + It seems that the cups device takes it upon itself to close the output file
      -rather than leaving it for the ghostscript core to close as every other + rather than leaving it for the ghostscript core to close as every other
      -device does. This upsets the windows DLL file handling. + device does. This upsets the windows DLL file handling.

      -The solution is simply to remove the lines that close the file. I've + The solution is simply to remove the lines that close the file. I've
      -checked both with Till and Ken, and they concur. Thanks. + checked both with Till and Ken, and they concur. Thanks.

      -No cluster differences expected. + No cluster differences expected.

      @@ -12346,53 +29231,52 @@

      - -

      -2011-05-02 14:32:18 +0100 -
      Chris Liddell
      +


      +

      2011-05-02 14:32:18 +0100 + +
      Chris Liddell <chris.liddell@artifex.com>
      e784a5443d0bee380d1ad32055ad3075e3aa0995

      - -
      -Change error return to remove confusion over meaning. +

      + Change error return to remove confusion over meaning.

      -When we encounter a font whose charstring has been replaced with a PS + When we encounter a font whose charstring has been replaced with a PS
      -procedure, we were returning FT_Err_Invalid_File_Format, and using that + procedure, we were returning FT_Err_Invalid_File_Format, and using that
      -as a hint we should try to execute it as a PS procedure. This + as a hint we should try to execute it as a PS procedure. This
      -turns out to be problematic as it is also the error return generated by + turns out to be problematic as it is also the error return generated by
      -Freetype for an invalid charstring. In the case of an invalid charstring + Freetype for an invalid charstring. In the case of an invalid charstring
      -we should fall back to the notdef, not attempt to execute the object as + we should fall back to the notdef, not attempt to execute the object as
      -Postscript. + Postscript.

      -So, change the error return value that *we* generate, and subsequently + So, change the error return value that *we* generate, and subsequently
      -check for, to FT_Err_Unknown_File_Format, which FT should never, + check for, to FT_Err_Unknown_File_Format, which FT should never,
      -normally, generate during glyph interpretation. This means, in this + normally, generate during glyph interpretation. This means, in this
      -case, we correctly identify a failed attempt to interpret a charstring, + case, we correctly identify a failed attempt to interpret a charstring,
      -and use the notdef fallback - instead of, eventually, throwing an + and use the notdef fallback - instead of, eventually, throwing an
      -error. + error.

      -Bug 692176. + Bug 692176.

      -No cluster differences expected. + No cluster differences expected.

      @@ -12400,15 +29284,14 @@

      - -

      -2011-04-30 19:01:53 +0100 -
      Robin Watts
      +


      +

      2011-04-30 19:01:53 +0100 + +
      Robin Watts <Robin.Watts@artifex.com>
      5091054103f3b07bbae8ab2fc75e6c6cc3fd7a86

      - -
      -Remove unused variable. +

      + Remove unused variable.

      @@ -12416,29 +29299,28 @@

      - -

      -2011-04-30 18:11:47 +0100 -
      Robin Watts
      +


      +

      2011-04-30 18:11:47 +0100 + +
      Robin Watts <Robin.Watts@artifex.com>
      dcae57315a683272c799545783694c43545b6fe0

      - -
      -Fix PNG device error when no downscale specified. +

      + Fix PNG device error when no downscale specified.

      -When I introduced the downscaling to selected png devices, I neglected to + When I introduced the downscaling to selected png devices, I neglected to
      -set a sensible default value for downscale factor. This means that if you + set a sensible default value for downscale factor. This means that if you
      -attempt to set any device parameters, without specifying -dDownScaleFactor + attempt to set any device parameters, without specifying -dDownScaleFactor
      -then you get a rangecheck error. This commit fixes that. + then you get a rangecheck error. This commit fixes that.

      -No cluster changes expected. + No cluster changes expected.

      @@ -12446,17 +29328,16 @@

      - -

      -2011-04-30 08:38:31 -0400 -
      Alex Cherepanov
      +


      +

      2011-04-30 08:38:31 -0400 + +
      Alex Cherepanov <alex.cherepanov@artifex.com>
      c98ade33d2b8fbc0ca6579c6d9e0ceb425374b0c

      - -
      -Normalize pattern /BBox in PDF interpreter before passing it to PS +

      + Normalize pattern /BBox in PDF interpreter before passing it to PS
      -to avoid a /rangecheck error. Bug 692174. + to avoid a /rangecheck error. Bug 692174.

      @@ -12464,45 +29345,44 @@

      - -

      -2011-04-27 22:27:39 -0700 -
      Michael Vrhel
      +


      +

      2011-04-27 22:27:39 -0700 + +
      Michael Vrhel <michael.vrhel@artifex.com>
      b128a1424550b3462348bd40ecd768356cdb08ae

      - -
      -Fix for reference counting issue of the compositor device at +

      + Fix for reference counting issue of the compositor device at
      -the end of the clist playback. In most cases, the compositor rc + the end of the clist playback. In most cases, the compositor rc
      -should be 1 at this point and so the device is closed and then + should be 1 at this point and so the device is closed and then
      -freed. The case, when it is not 1 is when we have a pattern + freed. The case, when it is not 1 is when we have a pattern
      -that has a transparency and is stored in a clist. In this case + that has a transparency and is stored in a clist. In this case
      -the target for the pattern clist device is the main pdf14 device and + the target for the pattern clist device is the main pdf14 device and
      -we increment the rc during this assignment. So, when the + we increment the rc during this assignment. So, when the
      -playback completes, the rc of the compositor is 2. We do not + playback completes, the rc of the compositor is 2. We do not
      -want to close and free the compositor, since it is part of the + want to close and free the compositor, since it is part of the
      -main clist that we have going on. Instead we only want to + main clist that we have going on. Instead we only want to
      -decrement the rc. The test file pattrans_big.pdf is now + decrement the rc. The test file pattrans_big.pdf is now
      -handled correctly but has a rendering/tiling issue it appears. + handled correctly but has a rendering/tiling issue it appears.

      -This commit (from the patt_trans_clist_branch) has been cherry-picked + This commit (from the patt_trans_clist_branch) has been cherry-picked
      -to the trunk to solve the SEGV in bug #692160. This leaves pdf14 + to the trunk to solve the SEGV in bug #692160. This leaves pdf14
      -compositors leaking though. + compositors leaking though.

      @@ -12510,41 +29390,40 @@

      - -

      -2011-04-28 20:23:29 +0100 -
      Robin Watts
      +


      +

      2011-04-28 20:23:29 +0100 + +
      Robin Watts <Robin.Watts@artifex.com>
      1553ea878b414b4ac389f7cec4c2076bc52be966

      - -
      -Stop compiler turning for loop into memset in halftoning code. +

      + Stop compiler turning for loop into memset in halftoning code.

      -The msvc compiler cleverly spots that a for loop can be turned + The msvc compiler cleverly spots that a for loop can be turned
      -into a memset. Unfortunately it can't know that the values for + into a memset. Unfortunately it can't know that the values for
      -which the loop is called are normally so small that the calling + which the loop is called are normally so small that the calling
      -of the function costs more than simply doing the stores. + of the function costs more than simply doing the stores.

      -The fix is to cast the pointer to which we are storing to be + The fix is to cast the pointer to which we are storing to be
      -volatile. This saves a significant chunk of runtime for: + volatile. This saves a significant chunk of runtime for:

      -pcl6.exe -sDEVICE=bit -r600 -o null: -dLeadingEdge=3 + pcl6.exe -sDEVICE=bit -r600 -o null: -dLeadingEdge=3
      -cicero_call_CRF03-all-in_adobe-8_358p_xNuv288.xl + cicero_call_CRF03-all-in_adobe-8_358p_xNuv288.xl

      -No cluster differences expected. + No cluster differences expected.

      @@ -12552,35 +29431,34 @@

      - -

      -2011-04-28 17:19:14 +0100 -
      Chris Liddell
      +


      +

      2011-04-28 17:19:14 +0100 + +
      Chris Liddell <chris.liddell@artifex.com>
      dd0ead1acfd2cf2fea4e417afdd4b52b06d8c3ad

      - -
      -Ensure optimization flags get propogated for lcms +

      + Ensure optimization flags get propogated for lcms

      -An inconcistency between definitions in the Unix and Windows builds meant + An inconcistency between definitions in the Unix and Windows builds meant
      -that on Windows several compiler flags (including that for optimization) + that on Windows several compiler flags (including that for optimization)
      -was not being used when buliding the lcms source files. The confusion + was not being used when buliding the lcms source files. The confusion
      -stems from Ghostscript requiring /Za to compile, and lcms failing to + stems from Ghostscript requiring /Za to compile, and lcms failing to
      -compile with /Za. + compile with /Za.

      -Bug 692173. + Bug 692173.

      -No cluster differences expected. + No cluster differences expected.

      @@ -12588,21 +29466,20 @@

      - -

      -2011-04-28 16:20:38 +0100 -
      Robin Watts
      +


      +

      2011-04-28 16:20:38 +0100 + +
      Robin Watts <Robin.Watts@artifex.com>
      98a891175a74e4fdbdd2b5dc10a7fa60b9f75e16

      - -
      -Add special case runrops for rops 0xF0 and CC (copy S and copy T). +

      + Add special case runrops for rops 0xF0 and CC (copy S and copy T).

      -This is in response to Norberts complaints about the speed of 9.02 with + This is in response to Norberts complaints about the speed of 9.02 with
      -cicero_call_CRF03-all-in_adobe-8_358p_xNuv288.xl and others. + cicero_call_CRF03-all-in_adobe-8_358p_xNuv288.xl and others.

      @@ -12610,27 +29487,26 @@

      - -

      -2011-04-28 09:01:05 +0100 -
      Chris Liddell
      +


      +

      2011-04-28 09:01:05 +0100 + +
      Chris Liddell <chris.liddell@artifex.com>
      26e55117205eaf76dfa6011c29e287f84ec99799

      - -
      -Change to include psi/ierrors.h. +

      + Change to include psi/ierrors.h.

      -psitop.c previously included the deprecated header file base/errors.h + psitop.c previously included the deprecated header file base/errors.h
      -which has now been removed. psi/ierrors.h is the correct header to + which has now been removed. psi/ierrors.h is the correct header to
      -include. + include.

      -No cluster differences expected. + No cluster differences expected.

      @@ -12638,23 +29514,22 @@

      - -

      -2011-04-28 08:10:39 +0100 -
      Chris Liddell
      +


      +

      2011-04-28 08:10:39 +0100 + +
      Chris Liddell <chris.liddell@artifex.com>
      7132af8bb76824feb241374cf152349995b6cc10

      - -
      -Remove the deprecated errors.h file. +

      + Remove the deprecated errors.h file.

      -Related to Bug 692151 in that it rendered the bug invalid. + Related to Bug 692151 in that it rendered the bug invalid.

      -No cluster differences expected. + No cluster differences expected.

      @@ -12662,31 +29537,30 @@

      - -

      -2011-04-25 18:58:52 -0600 -
      Henry Stiles
      +


      +

      2011-04-25 18:58:52 -0600 + +
      Henry Stiles <henry.stiles@artifex.com>
      0361e41b57f8f4d798eb42e6320e6e96c355169d

      - -
      -PJL filesystem commands can be made static. +

      + PJL filesystem commands can be made static.

      -Warning cleanup - make local functions static. + Warning cleanup - make local functions static.

      -Use %s if the argument is not literal to address the warning "format + Use %s if the argument is not literal to address the warning "format
      -not a string literal and no format arguments". + not a string literal and no format arguments".

      -Presumably a format specifier could appear in the character array + Presumably a format specifier could appear in the character array
      -resulting in an argument mismatch. + resulting in an argument mismatch.

      @@ -12700,17 +29574,16 @@

      - -

      -2011-04-25 17:53:50 -0600 -
      Henry Stiles
      +


      +

      2011-04-25 17:53:50 -0600 + +
      Henry Stiles <henry.stiles@artifex.com>
      732dc98f92f2132f21811cf8b2612c1091e65050

      - -
      -Partially refactor image api so it can be shared between pcl and pxl, +

      + Partially refactor image api so it can be shared between pcl and pxl,
      -also to move away from using the obsolete image api. + also to move away from using the obsolete image api.

      @@ -12724,39 +29597,38 @@

      - -

      -2011-04-26 19:20:25 +0100 -
      Robin Watts
      +


      +

      2011-04-26 19:20:25 +0100 + +
      Robin Watts <Robin.Watts@artifex.com>
      262c866a71d08c1709484d95ffb3639f53156078

      - -
      -Fix for bug 692081. Antialiasing patterns results in white holes. +

      + Fix for bug 692081. Antialiasing patterns results in white holes.

      -gx_default_copy_alpha simulates alpha by weighted average of RGB values. + gx_default_copy_alpha simulates alpha by weighted average of RGB values.
      -When the alpha value is zero, the current implementation reads the current + When the alpha value is zero, the current implementation reads the current
      -background value, and just writes it back. This has the effect of making + background value, and just writes it back. This has the effect of making
      -any device that watches what devices get written to think that that pixel + any device that watches what devices get written to think that that pixel
      -is solid. (One such device is the pattern tile device where it collects what + is solid. (One such device is the pattern tile device where it collects what
      -pixels have been marked, and what haven't). + pixels have been marked, and what haven't).

      -The CORRECT way to do this is to stop the line accumulation at that point, + The CORRECT way to do this is to stop the line accumulation at that point,
      -flush everything to there, then start again a pixel later. + flush everything to there, then start again a pixel later.

      -Doing this solves the bug, and causes no cluster changes. + Doing this solves the bug, and causes no cluster changes.

      @@ -12766,15 +29638,14 @@

      - -

      -2011-04-26 12:37:14 +0100 -
      Robin Watts
      +


      +

      2011-04-26 12:37:14 +0100 + +
      Robin Watts <Robin.Watts@artifex.com>
      11b5fb512393a6e9d9bdf6c076dc388ebd8c7c3f

      - -
      -Fix warnings (unused variables and missing cases in switches). +

      + Fix warnings (unused variables and missing cases in switches).

      @@ -12792,15 +29663,14 @@

      - -

      -2011-04-26 10:34:46 +0100 -
      Robin Watts
      +


      +

      2011-04-26 10:34:46 +0100 + +
      Robin Watts <Robin.Watts@artifex.com>
      a349c53ca01df5e425f25d1fa14d38c43d95b60c

      - -
      -Removed unused variables to quiet warnings. +

      + Removed unused variables to quiet warnings.

      @@ -12810,15 +29680,14 @@

      - -

      -2011-04-25 22:56:41 -0700 -
      Michael Vrhel
      +


      +

      2011-04-25 22:56:41 -0700 + +
      Michael Vrhel <michael.vrhel@artifex.com>
      79e14a10307ba37bcf00af1b05c1c52875d9774a

      - -
      -Fix for multithreaded rendering crash that can occur due to race conditions between threads with the increment and decrement of the icc link cache object during the rendering of the bands. Fix involved place a lock around the operations. Thanks to Ray for helping with this. +

      + Fix for multithreaded rendering crash that can occur due to race conditions between threads with the increment and decrement of the icc link cache object during the rendering of the bands. Fix involved place a lock around the operations. Thanks to Ray for helping with this.

      @@ -12828,15 +29697,14 @@

      - -

      -2011-04-25 17:37:09 -0700 -
      Michael Vrhel
      +


      +

      2011-04-25 17:37:09 -0700 + +
      Michael Vrhel <michael.vrhel@artifex.com>
      03cb94a9da2cddd2b7055e8565dd797c67bf56f4

      - -
      -Fix for memory leak in gdevp14 device. This involved making sure the overprint compositor was initialized retained with a ref count of 1 like the pdf14 device. +

      + Fix for memory leak in gdevp14 device. This involved making sure the overprint compositor was initialized retained with a ref count of 1 like the pdf14 device.

      @@ -12846,27 +29714,26 @@

      - -

      -2011-04-26 00:53:07 +0100 -
      Robin Watts
      +


      +

      2011-04-26 00:53:07 +0100 + +
      Robin Watts <Robin.Watts@artifex.com>
      16789dc892db636719383c2542aa9cec04092e4d

      - -
      -Fix memory overwrite in png devices. +

      + Fix memory overwrite in png devices.

      -In my fiddling with the png devices the other day to add downscaling, I + In my fiddling with the png devices the other day to add downscaling, I
      -omitted to extend the size of two of them (png16m and png48). This meant + omitted to extend the size of two of them (png16m and png48). This meant
      -that png16m was overwriting 8 bytes of memory after its device structure. + that png16m was overwriting 8 bytes of memory after its device structure.

      -Fix this to solve a SEGV when DownScaleFactor is used. + Fix this to solve a SEGV when DownScaleFactor is used.

      @@ -12874,19 +29741,18 @@

      - -

      -2011-04-24 20:35:45 -0400 -
      Alex Cherepanov
      +


      +

      2011-04-24 20:35:45 -0400 + +
      Alex Cherepanov <alex.cherepanov@artifex.com>
      f5a6de969ae67a2318115c5e8e6e2b3b06fc58f3

      - -
      -Split large beginbfrange..endbfrange blocks in ToUnicode CMaps into +

      + Split large beginbfrange..endbfrange blocks in ToUnicode CMaps into
      -smaller blocks to stay within the limits of various PS constricts and + smaller blocks to stay within the limits of various PS constricts and
      -speed up operand stack manipulation, esp. "counttomark -3 roll". Bug 691908. + speed up operand stack manipulation, esp. "counttomark -3 roll". Bug 691908.

      @@ -12894,19 +29760,18 @@

      - -

      -2011-04-25 09:31:32 -0600 -
      Henry Stiles
      +


      +

      2011-04-25 09:31:32 -0600 + +
      Henry Stiles <henry.stiles@artifex.com>
      3b66709cafd05910f2442250e12d1918f239c34b

      - -
      -The new custom paper size implementation introduced a bug in +

      + The new custom paper size implementation introduced a bug in
      -passthrough mode requiring additional state setup when we switch from + passthrough mode requiring additional state setup when we switch from
      -PXL to PCL state. + PXL to PCL state.

      @@ -12916,17 +29781,16 @@

      - -

      -2011-04-22 15:40:50 -0600 -
      henrys
      +


      +

      2011-04-22 15:40:50 -0600 + +
      henrys <henry.stiles@artifex.com>
      460ff495a31f8a87d0ed677eed2660fca79369fc

      - -
      -Revision 43a5362 modified a global variable. We address that by +

      + Revision 43a5362 modified a global variable. We address that by
      -making the page table a dynamic member of the pcl state. + making the page table a dynamic member of the pcl state.

      @@ -12940,17 +29804,16 @@

      - -

      -2011-04-20 23:25:50 -0600 -
      henrys
      +


      +

      2011-04-20 23:25:50 -0600 + +
      henrys <henry.stiles@artifex.com>
      e5a9f968265abc47a85811e620c79bedf87b1da0

      - -
      -Josef Hinteregger's patch to implement custom paper sizes in PJL and PCL, +

      + Josef Hinteregger's patch to implement custom paper sizes in PJL and PCL,
      -bug #691587. + bug #691587.

      @@ -12960,15 +29823,14 @@

      - -

      -2011-04-20 23:20:34 -0700 -
      Michael Vrhel
      +


      +

      2011-04-20 23:20:34 -0700 + +
      Michael Vrhel <michael.vrhel@artifex.com>
      4ddefa258ee17e359429c901ef8a0a8f3b234083

      - -
      -Fix to stop reset of ICC profile directory to the default directory (which is the romfs) when there is a VMreclaim. Previously if the VMreclaim happens while we are still in the process of initializing the icc manager this can cause a crash. This was the source of the crash with the tiffsep device when COMPILE_INITS=0. +

      + Fix to stop reset of ICC profile directory to the default directory (which is the romfs) when there is a VMreclaim. Previously if the VMreclaim happens while we are still in the process of initializing the icc manager this can cause a crash. This was the source of the crash with the tiffsep device when COMPILE_INITS=0.

      @@ -12976,33 +29838,32 @@

      - -

      -2011-04-22 18:08:10 +0100 -
      Robin Watts
      +


      +

      2011-04-22 18:08:10 +0100 + +
      Robin Watts <Robin.Watts@artifex.com>
      1b3908faa01c7ef6197374a27b1a5861f0a383fe

      - -
      -Extend downscaling to png devices too (from tiffscaled). +

      + Extend downscaling to png devices too (from tiffscaled).

      -Extract the code to do downscaling/min feature size from tiffscaled{,8,24} + Extract the code to do downscaling/min feature size from tiffscaled{,8,24}
      -into a new gx_downscaler class. Make tiffscaled{,8,24} call this new class + into a new gx_downscaler class. Make tiffscaled{,8,24} call this new class
      -with no change in functionality. + with no change in functionality.

      -Make png devices call this new code. Only png16m and pnggray are actually + Make png devices call this new code. Only png16m and pnggray are actually
      -affected by downscaling though. Add a new pngmonod device to do grayscale + affected by downscaling though. Add a new pngmonod device to do grayscale
      -rendering internally and to downscale/min_feature_size/error diffuse to + rendering internally and to downscale/min_feature_size/error diffuse to
      -monochrome. + monochrome.

      @@ -13044,15 +29905,14 @@

      - -

      -2011-04-20 10:40:58 -0700 -
      Marcos H. Woehrmann
      +


      +

      2011-04-20 10:40:58 -0700 + +
      Marcos H. Woehrmann <marcos.woehrmann@artifex.com>
      8a203b909d59f8aa649492c23fa570afe3a61565

      - -
      -Revert of a4c4877b35b6782ef64b382713eaa6bcd4eca8d6 since we decided to rename the directories back to their before svn => git transition names. +

      + Revert of a4c4877b35b6782ef64b382713eaa6bcd4eca8d6 since we decided to rename the directories back to their before svn => git transition names.

      @@ -13060,15 +29920,14 @@

      - -

      -2011-04-20 09:17:25 -0700 -
      mvrhel
      +


      +

      2011-04-20 09:17:25 -0700 + +
      mvrhel <michael.vrhel@artifex.com>
      20b6c78ff6fb123bc11a068ca329a96d2452b529

      - -
      -Fix for issue when creating ICC profiles from DEF/G structures. As a few progressions and fixes bug 692156 and likely bug 691977 +

      + Fix for issue when creating ICC profiles from DEF/G structures. As a few progressions and fixes bug 692156 and likely bug 691977

      @@ -13076,15 +29935,14 @@

      - -

      -2011-04-19 21:23:01 -0700 -
      Marcos H. Woehrmann
      +


      +

      2011-04-19 21:23:01 -0700 + +
      Marcos H. Woehrmann <marcos.woehrmann@artifex.com>
      a4c4877b35b6782ef64b382713eaa6bcd4eca8d6

      - -
      -Modified clusterpush.pl to account for the new directory structure introduced with the svn => git transition. +

      + Modified clusterpush.pl to account for the new directory structure introduced with the svn => git transition.

      @@ -13092,21 +29950,20 @@

      - -

      -2011-04-20 14:56:12 +0100 -
      Robin Watts
      +


      +

      2011-04-20 14:56:12 +0100 + +
      Robin Watts <Robin.Watts@artifex.com>
      0f57eacebce435c7da518b2d17638036a3ae5a40

      - -
      -Add bin directories to .gitignore file. +

      + Add bin directories to .gitignore file.

      -Also add some comments with useful lines that people might want to copy + Also add some comments with useful lines that people might want to copy
      -to their local .git/info/exclude file. + to their local .git/info/exclude file.

      @@ -13114,33 +29971,32 @@

      - -

      -2011-04-20 14:46:26 +0100 -
      Robin Watts
      +


      +

      2011-04-20 14:46:26 +0100 + +
      Robin Watts <Robin.Watts@artifex.com>
      c10532c1b2e63dd6d6d95f1a0b578eb865ff4d9a

      - -
      -New tiffscaled8 and tiffscaled24 devices. +

      + New tiffscaled8 and tiffscaled24 devices.

      -Add new tiffscaled8 and tiffscaled24 devices, copied and modified from + Add new tiffscaled8 and tiffscaled24 devices, copied and modified from
      -tiffscaled. These output greyscale and 24bit rgb instead of tiffscaleds + tiffscaled. These output greyscale and 24bit rgb instead of tiffscaleds
      -mono output. MinFeatureSize is ignored for these devices as it's meaningless + mono output. MinFeatureSize is ignored for these devices as it's meaningless
      -for contone output. + for contone output.

      -Error Diffusion is still done, but is almost certainly a waste of time - it + Error Diffusion is still done, but is almost certainly a waste of time - it
      -was just simpler to make the code work this way. If performance is an issue, + was just simpler to make the code work this way. If performance is an issue,
      -we can remove that later. + we can remove that later.

      @@ -13172,15 +30028,14 @@

      - -

      -2011-04-20 00:00:45 +0200 -
      Tor Andersson
      +


      +

      2011-04-20 00:00:45 +0200 + +
      Tor Andersson <tor.andersson@artifex.com>
      f6e8c8d24c4a2f66b45ce04ab544aaf8b305a0d1

      - -
      -Change GS_PRODUCTFAMILY to say GIT instead of SVN PRERELEASE. +

      + Change GS_PRODUCTFAMILY to say GIT instead of SVN PRERELEASE.

      @@ -13188,15 +30043,14 @@

      - -

      -2011-04-19 23:58:23 +0200 -
      Tor Andersson
      +


      +

      2011-04-19 23:58:23 +0200 + +
      Tor Andersson <tor.andersson@artifex.com>
      c91007a224a533fb7582646d98b6bf1721f4f297

      - -
      -Clean up file permissions. +

      + Clean up file permissions.

      @@ -13308,15 +30162,14 @@

      - -

      -2011-04-19 23:49:56 +0200 -
      Tor Andersson
      +


      +

      2011-04-19 23:49:56 +0200 + +
      Tor Andersson <tor.andersson@artifex.com>
      781969994b5381ba4bed03beef217f9bde6e7c58

      - -
      -Indent with spaces and strip trailing whitespace. +

      + Indent with spaces and strip trailing whitespace.

      @@ -16590,15 +33443,14 @@

      - -

      -2011-04-19 23:40:49 +0200 -
      Tor Andersson
      +


      +

      2011-04-19 23:40:49 +0200 + +
      Tor Andersson <tor.andersson@artifex.com>
      0b17959f31afe3baffbc328e7f92e88e634ad8b8

      - -
      -Introduce end-of-line normalization. +

      + Introduce end-of-line normalization.

      @@ -17114,23 +33966,22 @@

      - -

      -2011-04-19 14:01:55 +0000 -
      Robin Watts
      +


      +

      2011-04-19 14:01:55 +0000 + +
      Robin Watts <robin.watts@artifex.com>
      1eadba53383fad842dbc5e72ca137914a83b63e6

      - -
      -Changes to localcluster code to attempt to implement bmpcmphead. This certainly +

      + Changes to localcluster code to attempt to implement bmpcmphead. This certainly
      -doesn't break anything, but I don't actually ever seem to get any differences + doesn't break anything, but I don't actually ever seem to get any differences
      -out when running bmpcmphead. + out when running bmpcmphead.

      -git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12408 a1074d23-0009-0410-80fe-cf8c14f379e6 + git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12408 a1074d23-0009-0410-80fe-cf8c14f379e6

      @@ -17142,41 +33993,40 @@

      - -

      -2011-04-19 10:06:23 +0000 -
      Robin Watts
      +


      +

      2011-04-19 10:06:23 +0000 + +
      Robin Watts <robin.watts@artifex.com>
      c9e506d7e910f6560c97a81de704296236a782cb

      - -
      -Fix for bug 692152. +

      + Fix for bug 692152.

      -We 'bend' the size of pattern tiles, against the spec, ostensibly to better + We 'bend' the size of pattern tiles, against the spec, ostensibly to better
      -match Acrobat. The fix here is simply to avoid such bending in the case where + match Acrobat. The fix here is simply to avoid such bending in the case where
      -TilingType is 2. According to the spec, TilingType 2 says specifically not + TilingType is 2. According to the spec, TilingType 2 says specifically not
      -to use the same device pixel size for every repeat of the pattern, and that + to use the same device pixel size for every repeat of the pattern, and that
      -is exactly what we were doing. + is exactly what we were doing.

      -This cures the original bug, and produces 464 changes in the cluster tests. + This cures the original bug, and produces 464 changes in the cluster tests.
      -Some (like ps3cet/18-02B.PS) are clear progressions. Others are less obviously + Some (like ps3cet/18-02B.PS) are clear progressions. Others are less obviously
      -improvements, but comparison with Acrobat (and discussion with Ken/Chris) + improvements, but comparison with Acrobat (and discussion with Ken/Chris)
      -shows that it's no worse than before, just 'different'. + shows that it's no worse than before, just 'different'.

      -git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12405 a1074d23-0009-0410-80fe-cf8c14f379e6 + git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12405 a1074d23-0009-0410-80fe-cf8c14f379e6

      @@ -17184,21 +34034,20 @@

      - -

      -2011-04-18 22:58:18 +0000 -
      Alex Cherepanov
      +


      +

      2011-04-18 22:58:18 +0000 + +
      Alex Cherepanov <alex.cherepanov@artifex.com>
      a05ab8a88d5bc33c068a8e05ecba5f1adf3f3645

      - -
      -Fix reading of an embedded ICC profile from DSC comments and a +

      + Fix reading of an embedded ICC profile from DSC comments and a
      -potential SEGV when the value of /N exceeds 8. Bug 692156. + potential SEGV when the value of /N exceeds 8. Bug 692156.

      -git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12404 a1074d23-0009-0410-80fe-cf8c14f379e6 + git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12404 a1074d23-0009-0410-80fe-cf8c14f379e6

      @@ -17208,19 +34057,18 @@

      - -

      -2011-04-18 20:34:34 +0000 -
      Michael Vrhel
      +


      +

      2011-04-18 20:34:34 +0000 + +
      Michael Vrhel <michael.vrhel@artifex.com>
      64bfc773be69bd422c95bca132c47782a421dc3a

      - -
      -Further movement toward getting fast thresholding operations working for CMYK output devices. Addition of special op to detect if a device is a planar type, creation of threshold screen for all the planes and spatial resampling of color input to output resolution for portrait case. A commit to get things in trunk before we convert from SVN to git. +

      + Further movement toward getting fast thresholding operations working for CMYK output devices. Addition of special op to detect if a device is a planar type, creation of threshold screen for all the planes and spatial resampling of color input to output resolution for portrait case. A commit to get things in trunk before we convert from SVN to git.

      -git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12403 a1074d23-0009-0410-80fe-cf8c14f379e6 + git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12403 a1074d23-0009-0410-80fe-cf8c14f379e6

      @@ -17238,25 +34086,24 @@

      - -

      -2011-04-18 18:41:26 +0000 -
      Alex Cherepanov
      +


      +

      2011-04-18 18:41:26 +0000 + +
      Alex Cherepanov <alex.cherepanov@artifex.com>
      25152b1f7b5317ef1c3efd438a4d5ce26bcca5ba

      - -
      -Consider any xref entry with 0 offset as a free entry. Earlier revisions +

      + Consider any xref entry with 0 offset as a free entry. Earlier revisions
      -rebuilt the xref table when offset == 0 but generation != 0. + rebuilt the xref table when offset == 0 but generation != 0.
      -However, rebuilding is an unreliable process and should be avoided if + However, rebuilding is an unreliable process and should be avoided if
      -possible. Bug 692159. + possible. Bug 692159.

      -git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12402 a1074d23-0009-0410-80fe-cf8c14f379e6 + git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12402 a1074d23-0009-0410-80fe-cf8c14f379e6

      @@ -17264,37 +34111,36 @@

      - -

      -2011-04-18 07:58:13 +0000 -
      Chris Liddell
      +


      +

      2011-04-18 07:58:13 +0000 + +
      Chris Liddell <chris.liddell@artifex.com>
      7169dc6a5af38e1955c660813ed6e62392dc0deb

      - -
      -Add a fallback check for libpaper support. +

      + Add a fallback check for libpaper support.

      -Older versions of autogen appear to have a bug which causes the AC_CHECK_LIB + Older versions of autogen appear to have a bug which causes the AC_CHECK_LIB
      -macro to mis-identify the libpaper development library as being present when + macro to mis-identify the libpaper development library as being present when
      -it is not. + it is not.

      -So add a second check check based on the presence of paper.h using + So add a second check check based on the presence of paper.h using
      -AC_CHECK_HEADER(). + AC_CHECK_HEADER().

      -No cluster differences expected. + No cluster differences expected.

      -git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12401 a1074d23-0009-0410-80fe-cf8c14f379e6 + git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12401 a1074d23-0009-0410-80fe-cf8c14f379e6

      @@ -17302,25 +34148,24 @@

      - -

      -2011-04-16 14:21:57 +0000 -
      Alex Cherepanov
      +


      +

      2011-04-16 14:21:57 +0000 + +
      Alex Cherepanov <alex.cherepanov@artifex.com>
      848275e2554bb57ebf2e12dabc47fc2922e7b877

      - -
      -Instead of searching for %%EOF marker (which is often damaged) and browsing the +

      + Instead of searching for %%EOF marker (which is often damaged) and browsing the
      -file backwards, search for 'startxref' and take the next token as an xref + file backwards, search for 'startxref' and take the next token as an xref
      -position. Besides fixing the reported bug, this greatly simplifies the search + position. Besides fixing the reported bug, this greatly simplifies the search
      -for xref position. Bug 692153. + for xref position. Bug 692153.

      -git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12400 a1074d23-0009-0410-80fe-cf8c14f379e6 + git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12400 a1074d23-0009-0410-80fe-cf8c14f379e6

      @@ -17330,19 +34175,18 @@

      - -

      -2011-04-14 20:59:18 +0000 -
      Michael Vrhel
      +


      +

      2011-04-14 20:59:18 +0000 + +
      Michael Vrhel <michael.vrhel@artifex.com>
      3be81f880b7f0a31d3c213ad4245d0bbfeb0b5ef

      - -
      -code to support rendering color source images to a mono device using thresholding. The code is currently disabled pending additional testing. +

      + code to support rendering color source images to a mono device using thresholding. The code is currently disabled pending additional testing.

      -git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12397 a1074d23-0009-0410-80fe-cf8c14f379e6 + git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12397 a1074d23-0009-0410-80fe-cf8c14f379e6

      @@ -17350,19 +34194,18 @@

      - -

      -2011-04-13 22:17:12 +0000 -
      Michael Vrhel
      +


      +

      2011-04-13 22:17:12 +0000 + +
      Michael Vrhel <michael.vrhel@artifex.com>
      4a3666ee2833e877a26ef75fece00fd6fad14c93

      - -
      -Reorganization of thresholding code to make it easier to get the threshold operation working for color images as input as well as the case when we go to a cmyk planar device. +

      + Reorganization of thresholding code to make it easier to get the threshold operation working for color images as input as well as the case when we go to a cmyk planar device.

      -git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12396 a1074d23-0009-0410-80fe-cf8c14f379e6 + git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12396 a1074d23-0009-0410-80fe-cf8c14f379e6

      @@ -17378,27 +34221,26 @@

      - -

      -2011-04-13 16:21:07 +0000 -
      Robin Watts
      +


      +

      2011-04-13 16:21:07 +0000 + +
      Robin Watts <robin.watts@artifex.com>
      3791878570227c7f5f1c07891c066fab3db2e5d3

      - -
      -Fix reference counting of compositors in clist rendering; previously +

      + Fix reference counting of compositors in clist rendering; previously
      -the code assumed that it was the only claimant of a compositor and + the code assumed that it was the only claimant of a compositor and
      -closed/freed the device regardless of the reference count. + closed/freed the device regardless of the reference count.

      -Cluster testing shows no differences. + Cluster testing shows no differences.

      -git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12394 a1074d23-0009-0410-80fe-cf8c14f379e6 + git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12394 a1074d23-0009-0410-80fe-cf8c14f379e6

      @@ -17406,43 +34248,42 @@

      - -

      -2011-04-13 13:30:03 +0000 -
      Ken Sharp
      +


      +

      2011-04-13 13:30:03 +0000 + +
      Ken Sharp <ken.sharp@artifex.com>
      29ff2a6f7d27ac9b19887ecc9243a6a8bc6aa9b8

      - -
      -Fix (pdfwrite) : Restore TT->CIDFOnt conversion +

      + Fix (pdfwrite) : Restore TT->CIDFOnt conversion

      -When creating PDF/A output, the Acrobat pre-flight tool throws out subset TrueType fonts + When creating PDF/A output, the Acrobat pre-flight tool throws out subset TrueType fonts
      -which are symbolic. Its not clear why, since the spec says that subset TrueType fonts + which are symbolic. Its not clear why, since the spec says that subset TrueType fonts
      -are permitted and does not require any additional information (such as /CharSet for + are permitted and does not require any additional information (such as /CharSet for
      -type 1 fonts). + type 1 fonts).

      -If we instead create a CIDFont with a CIDSet, then the pre-flight tool is happy (and + If we instead create a CIDFont with a CIDSet, then the pre-flight tool is happy (and
      -also, usefully, doesn't complain about multiple CMAP subtables), so here we spot + also, usefully, doesn't complain about multiple CMAP subtables), so here we spot
      -that there is no preferred Encoding (always the case with Symbolic fonts) and make + that there is no preferred Encoding (always the case with Symbolic fonts) and make
      -the conversion. + the conversion.

      -No differences expected. + No differences expected.

      -git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12393 a1074d23-0009-0410-80fe-cf8c14f379e6 + git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12393 a1074d23-0009-0410-80fe-cf8c14f379e6

      @@ -17450,33 +34291,32 @@

      - -

      -2011-04-13 04:47:52 +0000 -
      Ray Johnston
      +


      +

      2011-04-13 04:47:52 +0000 + +
      Ray Johnston <ray.johnston@artifex.com>
      124ab469aa0ad450a46d909e99c1b5d7072e646b

      - -
      -Fix for PCL when NumRenderingThreads > 0. PCL uses a memory allocator that is +

      + Fix for PCL when NumRenderingThreads > 0. PCL uses a memory allocator that is
      -not thread safe (chunk memory) but the mt rendering needs a thread safe base + not thread safe (chunk memory) but the mt rendering needs a thread safe base
      -allocator since the main thread may be allocating as well as the rendering + allocator since the main thread may be allocating as well as the rendering
      -threads. This problem was seen with a couple of 'performance' documents, but + threads. This problem was seen with a couple of 'performance' documents, but
      -could fail on any document. Bug 692111 for customer #661. + could fail on any document. Bug 692111 for customer #661.

      -cluster testing showed no regressions, as expected since it didn't use MT + cluster testing showed no regressions, as expected since it didn't use MT
      -rendering. + rendering.

      -git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12392 a1074d23-0009-0410-80fe-cf8c14f379e6 + git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12392 a1074d23-0009-0410-80fe-cf8c14f379e6

      @@ -17498,29 +34338,28 @@

      - -

      -2011-04-12 20:08:59 +0000 -
      Ray Johnston
      +


      +

      2011-04-12 20:08:59 +0000 + +
      Ray Johnston <ray.johnston@artifex.com>
      fdac37730cb0f86e8cd1efad2c49243c5ea5ec0b

      - -
      -Add some more useful stuff to pdf_info.ps: Default dumps Media paramters and +

      + Add some more useful stuff to pdf_info.ps: Default dumps Media paramters and
      -fonts that are needed, but not embedded and standard fonts. Media parameters + fonts that are needed, but not embedded and standard fonts. Media parameters
      -now include Rotate value and states if the page has transparency. + now include Rotate value and states if the page has transparency.

      -Also allow this to be used more conveniently with the -- syntax: + Also allow this to be used more conveniently with the -- syntax:
      -gs {-q} -- toolbin/pdf_info.ps inputfile.pdf + gs {-q} -- toolbin/pdf_info.ps inputfile.pdf

      -git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12391 a1074d23-0009-0410-80fe-cf8c14f379e6 + git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12391 a1074d23-0009-0410-80fe-cf8c14f379e6

      @@ -17528,67 +34367,66 @@

      - -

      -2011-04-12 15:19:15 +0000 -
      Ken Sharp
      +


      +

      2011-04-12 15:19:15 +0000 + +
      Ken Sharp <ken.sharp@artifex.com>
      78bb9a6585153e2cf0cbcc689706cd89d68b5b7b

      - -
      -Fix PostScript colour handling +

      + Fix PostScript colour handling

      -Bug #692116 "gs crash while executing stop operator" + Bug #692116 "gs crash while executing stop operator"

      -The problem was caused by a mismatch between the graphics library and the PostScript + The problem was caused by a mismatch between the graphics library and the PostScript
      -interpreter. When executing setcachedevice the graphcis library can set the colour + interpreter. When executing setcachedevice the graphcis library can set the colour
      -space to DeviceGray. Because it is unaware of the 'higher level' members of the graphics + space to DeviceGray. Because it is unaware of the 'higher level' members of the graphics
      -state which belong to the PostScript interpreter it does not, and cannot, set the + state which belong to the PostScript interpreter it does not, and cannot, set the
      -*PostScript* graphics state colour space to the same space. + *PostScript* graphics state colour space to the same space.

      -Normally this does not matter, because after the glyph is complete the colour space is + Normally this does not matter, because after the glyph is complete the colour space is
      -restored. However, if a currentgray/currentrgb/currentcmyk operator is executed after + restored. However, if a currentgray/currentrgb/currentcmyk operator is executed after
      -the graphics library has set the space to DeviceGray, but before it has restored the + the graphics library has set the space to DeviceGray, but before it has restored the
      -space, then the PostScript space will be incorrect. This leads to the PostScript + space, then the PostScript space will be incorrect. This leads to the PostScript
      -handling trying to access more elements from the stack than 'currentcolor' put there + handling trying to access more elements from the stack than 'currentcolor' put there
      -(currentcolor uses the underlying space, not the PostScript space), and causes errors. + (currentcolor uses the underlying space, not the PostScript space), and causes errors.

      -There isn't a really good way to handle this, because we can't put information about + There isn't a really good way to handle this, because we can't put information about
      -the PostScript state into the graphics library. So I've chosen to check the underlying + the PostScript state into the graphics library. So I've chosen to check the underlying
      -colour space when processing currentgray etc, and if the space in the graphics + colour space when processing currentgray etc, and if the space in the graphics
      -library is DeviceGray and does not match the expected PostScript space, then instead + library is DeviceGray and does not match the expected PostScript space, then instead
      -of raising an error we proceed as if the PostScript space had been DeviceGray all + of raising an error we proceed as if the PostScript space had been DeviceGray all
      -along. + along.

      -No differences expected + No differences expected

      -git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12389 a1074d23-0009-0410-80fe-cf8c14f379e6 + git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12389 a1074d23-0009-0410-80fe-cf8c14f379e6

      @@ -17596,35 +34434,34 @@

      - -

      -2011-04-12 09:12:59 +0000 -
      Chris Liddell
      +


      +

      2011-04-12 09:12:59 +0000 + +
      Chris Liddell <chris.liddell@artifex.com>
      1b48fe7a0a2bd2aa49cd6cbf0ec5de3abcab7c89

      - -
      -Fix the GS_LIB registry value. +

      + Fix the GS_LIB registry value.

      -The GS_LIB registry entry was missing the "lib" directory. + The GS_LIB registry entry was missing the "lib" directory.

      -Also, tidy up some of the uninstall rules. + Also, tidy up some of the uninstall rules.

      -No cluster differences. + No cluster differences.

      -Bug 692140 + Bug 692140

      -git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12388 a1074d23-0009-0410-80fe-cf8c14f379e6 + git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12388 a1074d23-0009-0410-80fe-cf8c14f379e6

      @@ -17632,19 +34469,18 @@

      - -

      -2011-04-12 06:44:27 +0000 -
      Michael Vrhel
      +


      +

      2011-04-12 06:44:27 +0000 + +
      Michael Vrhel <michael.vrhel@artifex.com>
      f0a9ab32440ecade2d301187489805284cbf1a9d

      - -
      -Forgot to save the readme +

      + Forgot to save the readme

      -git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12387 a1074d23-0009-0410-80fe-cf8c14f379e6 + git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12387 a1074d23-0009-0410-80fe-cf8c14f379e6

      @@ -17652,19 +34488,18 @@

      - -

      -2011-04-12 06:38:17 +0000 -
      Michael Vrhel
      +


      +

      2011-04-12 06:38:17 +0000 + +
      Michael Vrhel <michael.vrhel@artifex.com>
      d90c248c90cb8e12c6613d32b347846a64f91ca6

      - -
      -Addition of one more profile, which is a CMYK profile but which only outputs in the K channel and a ifdef in the code to generate this thing. +

      + Addition of one more profile, which is a CMYK profile but which only outputs in the K channel and a ifdef in the code to generate this thing.

      -git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12386 a1074d23-0009-0410-80fe-cf8c14f379e6 + git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12386 a1074d23-0009-0410-80fe-cf8c14f379e6

      @@ -17674,19 +34509,18 @@

      - -

      -2011-04-12 06:17:59 +0000 -
      Michael Vrhel
      +


      +

      2011-04-12 06:17:59 +0000 + +
      Michael Vrhel <michael.vrhel@artifex.com>
      a031163dc9ada140b6e606582c29c9515fc7d839

      - -
      -Fix for an issue related to white point for the cmyk profile also fix for when UCR/BG is used in the profile creation. +

      + Fix for an issue related to white point for the cmyk profile also fix for when UCR/BG is used in the profile creation.

      -git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12385 a1074d23-0009-0410-80fe-cf8c14f379e6 + git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12385 a1074d23-0009-0410-80fe-cf8c14f379e6

      @@ -17696,19 +34530,18 @@

      - -

      -2011-04-12 05:11:30 +0000 -
      Michael Vrhel
      +


      +

      2011-04-12 05:11:30 +0000 + +
      Michael Vrhel <michael.vrhel@artifex.com>
      6acec66087ba2de2d99c42c9e1d33cdb89473089

      - -
      -Addition of ICC profiles that properly emulate the PS color mappings +

      + Addition of ICC profiles that properly emulate the PS color mappings

      -git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12384 a1074d23-0009-0410-80fe-cf8c14f379e6 + git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12384 a1074d23-0009-0410-80fe-cf8c14f379e6

      @@ -17720,19 +34553,18 @@

      - -

      -2011-04-12 05:02:03 +0000 -
      Michael Vrhel
      +


      +

      2011-04-12 05:02:03 +0000 + +
      Michael Vrhel <michael.vrhel@artifex.com>
      151535c554165c2f03fbe07098cc45fb0b341f67

      - -
      -Fix for bugs in ICC creator tool related primarily to the CMYK profile for simulating PS color conversions. Added in a option so that we do the CPSI like conversion and also added in the ability to define UCR/BG and pack those mappings into ICC profiles. These fixes were needed to take care of an issue found by customer 850. +

      + Fix for bugs in ICC creator tool related primarily to the CMYK profile for simulating PS color conversions. Added in a option so that we do the CPSI like conversion and also added in the ability to define UCR/BG and pack those mappings into ICC profiles. These fixes were needed to take care of an issue found by customer 850.

      -git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12383 a1074d23-0009-0410-80fe-cf8c14f379e6 + git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12383 a1074d23-0009-0410-80fe-cf8c14f379e6

      @@ -17758,43 +34590,42 @@

      - -

      -2011-04-11 15:59:22 +0000 -
      Ken Sharp
      +


      +

      2011-04-11 15:59:22 +0000 + +
      Ken Sharp <ken.sharp@artifex.com>
      4509a49f66c24f3a5590aadaaee30325676df877

      - -
      -Fix (colour handling) : crash when executing 'stop' +

      + Fix (colour handling) : crash when executing 'stop'

      -This is part of the fix for bug #692116. The crash in that report is caused because the + This is part of the fix for bug #692116. The crash in that report is caused because the
      -continuation procedures for the colour handling are sometimes pushed with a + continuation procedures for the colour handling are sometimes pushed with a
      -push_mark_estack where the opproc has a value of 0. This is not valid and I always + push_mark_estack where the opproc has a value of 0. This is not valid and I always
      -intended to fix it, but forgot. + intended to fix it, but forgot.

      -This changes all uses of push_mark_estack so that the opproc is set to a valid routine + This changes all uses of push_mark_estack so that the opproc is set to a valid routine
      -which does nothing, thus solving the crash and exposing the real problem. The only + which does nothing, thus solving the crash and exposing the real problem. The only
      -reason we get a crash is because we are executing stop as part of the error handler, + reason we get a crash is because we are executing stop as part of the error handler,
      -because currentgray returned an error. + because currentgray returned an error.

      -No differences expected. + No differences expected.

      -git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12382 a1074d23-0009-0410-80fe-cf8c14f379e6 + git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12382 a1074d23-0009-0410-80fe-cf8c14f379e6

      @@ -17802,21 +34633,20 @@

      - -

      -2011-04-09 07:06:43 +0000 -
      Alex Cherepanov
      +


      +

      2011-04-09 07:06:43 +0000 + +
      Alex Cherepanov <alex.cherepanov@artifex.com>
      6cb2c7110447967b01f19415ae0ff0f8dd1a251b

      - -
      -Add special processing for a broken PDF file that uses bare stream +

      + Add special processing for a broken PDF file that uses bare stream
      -dictionaries instead of ICCBased color space arrays. Bug 692213. + dictionaries instead of ICCBased color space arrays. Bug 692213.

      -git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12381 a1074d23-0009-0410-80fe-cf8c14f379e6 + git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12381 a1074d23-0009-0410-80fe-cf8c14f379e6

      @@ -17824,19 +34654,18 @@

      - -

      -2011-04-08 17:03:54 +0000 -
      Michael Vrhel
      +


      +

      2011-04-08 17:03:54 +0000 + +
      Michael Vrhel <michael.vrhel@artifex.com>
      0791cc859ad38053ab3d3eef50169ac259f771cb

      - -
      -Fix for x11alpha device when the source file has transparency. Two issues existed. One, found by henry, was that the target device of the x11alpha device was not inheriting the icc profile of the x11alpha device. The other was that the x11alpha device was using the bbox compositor procedure, which has some operations in it related to checking if the device has a target and the pdf14 device will target the target of the bbox device. This is not what we want for the x11alpha device. This should fix a lot of the x11alpha bugs Basically any source files that had transparency would have failed prior to this fix. +

      + Fix for x11alpha device when the source file has transparency. Two issues existed. One, found by henry, was that the target device of the x11alpha device was not inheriting the icc profile of the x11alpha device. The other was that the x11alpha device was using the bbox compositor procedure, which has some operations in it related to checking if the device has a target and the pdf14 device will target the target of the bbox device. This is not what we want for the x11alpha device. This should fix a lot of the x11alpha bugs Basically any source files that had transparency would have failed prior to this fix.

      -git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12380 a1074d23-0009-0410-80fe-cf8c14f379e6 + git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12380 a1074d23-0009-0410-80fe-cf8c14f379e6

      @@ -17844,31 +34673,30 @@

      - -

      -2011-04-08 13:34:53 +0000 -
      Robin Watts
      +


      +

      2011-04-08 13:34:53 +0000 + +
      Robin Watts <robin.watts@artifex.com>
      507cbee1403b20b2c3fec692f746f41d9d985566

      - -
      -Fix Bug 692129. If an image is scaled to zero height and interpolation +

      + Fix Bug 692129. If an image is scaled to zero height and interpolation
      -is on, we end up mallocing a zero byte buffer and then overrunning it. + is on, we end up mallocing a zero byte buffer and then overrunning it.

      -The fix is to detect this scaling, and still allocate a 1 pixel high + The fix is to detect this scaling, and still allocate a 1 pixel high
      -buffer. + buffer.

      -No cluster differences expected. + No cluster differences expected.

      -git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12378 a1074d23-0009-0410-80fe-cf8c14f379e6 + git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12378 a1074d23-0009-0410-80fe-cf8c14f379e6

      @@ -17876,31 +34704,30 @@

      - -

      -2011-04-08 08:48:17 +0000 -
      Ken Sharp
      +


      +

      2011-04-08 08:48:17 +0000 + +
      Ken Sharp <ken.sharp@artifex.com>
      1b6c7591e0f62007e4cf690d2f2fcbb56be9f989

      - -
      -Fix GSLite : update to changes in decode_glyph method +

      + Fix GSLite : update to changes in decode_glyph method

      -Revision 12374 altered the decode_glyph font method to take an additional parameter, + Revision 12374 altered the decode_glyph font method to take an additional parameter,
      -the character code. This commit updates the GSLite code routines to take the extra + the character code. This commit updates the GSLite code routines to take the extra
      -parameter + parameter

      -No differences expected, I don't think this is tested (or even compiled) + No differences expected, I don't think this is tested (or even compiled)

      -git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12377 a1074d23-0009-0410-80fe-cf8c14f379e6 + git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12377 a1074d23-0009-0410-80fe-cf8c14f379e6

      @@ -17914,35 +34741,34 @@

      - -

      -2011-04-08 08:36:35 +0000 -
      Ken Sharp
      +


      +

      2011-04-08 08:36:35 +0000 + +
      Ken Sharp <ken.sharp@artifex.com>
      cc053e229b4a2dd03ff83673bfb819be51e970c3

      - -
      -Fix XPS and PCL interpreters : Change to decode_glyph routine +

      + Fix XPS and PCL interpreters : Change to decode_glyph routine

      -The decode_glyph font method was changed to pass in the character code in revision + The decode_glyph font method was changed to pass in the character code in revision
      -12374, but I missed the fact that these methods also exist in the XPS and PCL + 12374, but I missed the fact that these methods also exist in the XPS and PCL
      -interpreters. + interpreters.

      -This revision simply updates the methods with the additional parameter. + This revision simply updates the methods with the additional parameter.

      -No differences expected. + No differences expected.

      -git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12376 a1074d23-0009-0410-80fe-cf8c14f379e6 + git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12376 a1074d23-0009-0410-80fe-cf8c14f379e6

      @@ -17954,39 +34780,38 @@

      - -

      -2011-04-07 15:52:45 +0000 -
      Chris Liddell
      +


      +

      2011-04-07 15:52:45 +0000 + +
      Chris Liddell <chris.liddell@artifex.com>
      a69dfc3caebd4f16ab8ba7f1c888bdbed6e5dbce

      - -
      -Resolve a path problem when running mkcidfm.ps. +

      + Resolve a path problem when running mkcidfm.ps.

      -mkcidfm.ps did not handle the path to the Windows + mkcidfm.ps did not handle the path to the Windows
      -font directory using back slash directory delimiters + font directory using back slash directory delimiters
      -so the nsis script now replaces all the back slash + so the nsis script now replaces all the back slash
      -delimiters with forward slash, with which mkcidfm.ps + delimiters with forward slash, with which mkcidfm.ps
      -works correctly. + works correctly.

      -Bug 691511 + Bug 691511

      -No cluster differences expected. + No cluster differences expected.

      -git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12375 a1074d23-0009-0410-80fe-cf8c14f379e6 + git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12375 a1074d23-0009-0410-80fe-cf8c14f379e6

      @@ -17994,73 +34819,72 @@

      - -

      -2011-04-07 15:48:21 +0000 -
      Ken Sharp
      +


      +

      2011-04-07 15:48:21 +0000 + +
      Ken Sharp <ken.sharp@artifex.com>
      24c562b9bcedcd9e6bd1d63a06c09eba52a24cbd

      - -
      -Fix (pdfwrite) : Not using ToUnicode CMaps under some conditions +

      + Fix (pdfwrite) : Not using ToUnicode CMaps under some conditions

      -Bug #692119 "Cannot copy text from Ghostscript generated PDF/A document" + Bug #692119 "Cannot copy text from Ghostscript generated PDF/A document"

      -The PDF interpreter converts ToUnicode CMaps into GlyphNames2Unicode dictionaries, to + The PDF interpreter converts ToUnicode CMaps into GlyphNames2Unicode dictionaries, to
      -do this it uses the Encoding to convert the character codes into glyph names. Of course + do this it uses the Encoding to convert the character codes into glyph names. Of course
      -for CIDFonts we don't want to do this, and so when there is no Encoding we instead + for CIDFonts we don't want to do this, and so when there is no Encoding we instead
      -put the Unicode value directly into the dictionary using the CID as an index. + put the Unicode value directly into the dictionary using the CID as an index.

      -If the font has no Encoding (which is optional in PDF) then we do the same for a + If the font has no Encoding (which is optional in PDF) then we do the same for a
      -regular font. However, by the time pdfwrite sees the font we have had to add an Encoding + regular font. However, by the time pdfwrite sees the font we have had to add an Encoding
      -as its not valid for us to define a regular font with no Encoding. + as its not valid for us to define a regular font with no Encoding.

      -So pdfwrite converts the character code into a (bogus) glyph name, and then tries to + So pdfwrite converts the character code into a (bogus) glyph name, and then tries to
      -look up that glyph name in the GlyphNames2Unicode dictionary. Obviously this fails. + look up that glyph name in the GlyphNames2Unicode dictionary. Obviously this fails.

      -I've extended the 'decode_glyph' call so that it takes both the glyph name and the + I've extended the 'decode_glyph' call so that it takes both the glyph name and the
      -character code, for CID fonts the character code is always -1. If the glyph name can't + character code, for CID fonts the character code is always -1. If the glyph name can't
      -be found in the GlyphNames2Unicode dictionary then we try to use the character code + be found in the GlyphNames2Unicode dictionary then we try to use the character code
      -instead. + instead.

      -This works for this test case, and I don't think its likely to produce worse results + This works for this test case, and I don't think its likely to produce worse results
      -than the old code. Regression tests show no differences, but since they don't test + than the old code. Regression tests show no differences, but since they don't test
      -ToUnicode CMaps they weren't expected to. My own tests seem to be OK but I can't say + ToUnicode CMaps they weren't expected to. My own tests seem to be OK but I can't say
      -I'm terribly sure about this one. + I'm terribly sure about this one.

      -Expected Differences + Expected Differences
      -None + None

      -git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12374 a1074d23-0009-0410-80fe-cf8c14f379e6 + git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12374 a1074d23-0009-0410-80fe-cf8c14f379e6

      @@ -18078,19 +34902,18 @@

      - -

      -2011-04-07 03:30:16 +0000 -
      Michael Vrhel
      +


      +

      2011-04-07 03:30:16 +0000 + +
      Michael Vrhel <michael.vrhel@artifex.com>
      8170bf69742a320e7e28bffa58cbf0f0f14f2eb0

      - -
      -Fix for 692123. It was necessary to make sure that the blending state of the pdf14 device is updated when we have the alpha buffer device installed in front of the pdf14 device. +

      + Fix for 692123. It was necessary to make sure that the blending state of the pdf14 device is updated when we have the alpha buffer device installed in front of the pdf14 device.

      -git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12373 a1074d23-0009-0410-80fe-cf8c14f379e6 + git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12373 a1074d23-0009-0410-80fe-cf8c14f379e6

      @@ -18110,37 +34933,36 @@

      - -

      -2011-04-06 18:33:27 +0000 -
      Robin Watts
      +


      +

      2011-04-06 18:33:27 +0000 + +
      Robin Watts <robin.watts@artifex.com>
      c03e320614893bb304b6c63e02a597d0153df031

      - -
      -Change lcms2 memory handling and update lib. +

      + Change lcms2 memory handling and update lib.

      -As of this commit, we can (and do) run a completely unchanged library. + As of this commit, we can (and do) run a completely unchanged library.

      -This includes our tiny tweak to be able to get the input/output formats for + This includes our tiny tweak to be able to get the input/output formats for
      -a given transform. Also update our interface code so that we use the plugin + a given transform. Also update our interface code so that we use the plugin
      -mechanism to redirect malloc/free etc through us rather than hacking the + mechanism to redirect malloc/free etc through us rather than hacking the
      -code direct. Thanks to Marti Maria for both of these. + code direct. Thanks to Marti Maria for both of these.

      -No cluster changes as this code is not tested. CLUSTER_UNTESTED. + No cluster changes as this code is not tested. CLUSTER_UNTESTED.

      -git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12372 a1074d23-0009-0410-80fe-cf8c14f379e6 + git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12372 a1074d23-0009-0410-80fe-cf8c14f379e6

      @@ -18190,39 +35012,38 @@

      - -

      -2011-04-06 17:41:50 +0000 -
      Chris Liddell
      +


      +

      2011-04-06 17:41:50 +0000 + +
      Chris Liddell <chris.liddell@artifex.com>
      a54df2d2b0e78777a037ceacfba76dd47d9993d3

      - -
      -Resolve a crash to due an unexpected CMap object type. +

      + Resolve a crash to due an unexpected CMap object type.

      -The code was not checking that the CMap object was a string or an array (of + The code was not checking that the CMap object was a string or an array (of
      -strings) before trying read bytes from it. If the CMap actually turned out + strings) before trying read bytes from it. If the CMap actually turned out
      -to be an unexpected object, such as an integer, it would cause a crash. + to be an unexpected object, such as an integer, it would cause a crash.

      -Credit to Ken Sharp for the patch. + Credit to Ken Sharp for the patch.

      -Bug 692124 + Bug 692124

      -No cluster differences expected. + No cluster differences expected.

      -git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12371 a1074d23-0009-0410-80fe-cf8c14f379e6 + git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12371 a1074d23-0009-0410-80fe-cf8c14f379e6

      @@ -18230,41 +35051,40 @@

      - -

      -2011-04-06 12:13:55 +0000 -
      Ken Sharp
      +


      +

      2011-04-06 12:13:55 +0000 + +
      Ken Sharp <ken.sharp@artifex.com>
      d97f8c354d97c8ec941c2d4b702b7d17ab0e03b3

      - -
      -Fix (ps2write/pdfwrite) : bitmapped font problem +

      + Fix (ps2write/pdfwrite) : bitmapped font problem

      -When producing an inline image representing a glyph which could not be embedded as text, + When producing an inline image representing a glyph which could not be embedded as text,
      -the code emitted the matrix setup for the image before opening the context. If there + the code emitted the matrix setup for the image before opening the context. If there
      -was (for example) a pending text operation this caused the matrix setup to appear in + was (for example) a pending text operation this caused the matrix setup to appear in
      -the text context instead of the image context, leading to the image disappearing. + the text context instead of the image context, leading to the image disappearing.

      -Opening the image context before emitting the matrix solves the problem. + Opening the image context before emitting the matrix solves the problem.

      -Expected Differences + Expected Differences
      -The output from ps2write (resolution = 300 dpi) with the file + The output from ps2write (resolution = 300 dpi) with the file
      -'metrics_no_bbox.ps' + 'metrics_no_bbox.ps'

      -git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12370 a1074d23-0009-0410-80fe-cf8c14f379e6 + git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12370 a1074d23-0009-0410-80fe-cf8c14f379e6

      @@ -18272,35 +35092,34 @@

      - -

      -2011-04-05 15:01:49 +0000 -
      Chris Liddell
      +


      +

      2011-04-05 15:01:49 +0000 + +
      Chris Liddell <chris.liddell@artifex.com>
      2d72418b094cb62501d6af82a845848d01134119

      - -
      -The FAPI code was relying on the result of gx_compute_text_oversampling() +

      + The FAPI code was relying on the result of gx_compute_text_oversampling()
      -to ascertain whether anti-aliasing is in force. + to ascertain whether anti-aliasing is in force.

      -This is insufficient, as it turns out, and we actually need to base the + This is insufficient, as it turns out, and we actually need to base the
      -decision on the alpha bits as requested by the device. + decision on the alpha bits as requested by the device.

      -No cluster differences expected. + No cluster differences expected.

      -Bug 692120. + Bug 692120.

      -git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12369 a1074d23-0009-0410-80fe-cf8c14f379e6 + git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12369 a1074d23-0009-0410-80fe-cf8c14f379e6

      @@ -18308,19 +35127,18 @@

      - -

      -2011-04-04 16:33:13 +0000 -
      Robin Watts
      +


      +

      2011-04-04 16:33:13 +0000 + +
      Robin Watts <robin.watts@artifex.com>
      f4a6e441bbe26758d4d3d9c62c369fde2b0e9643

      - -
      -Squash some warnings in the lcms v2 interface code. No expected differences. +

      + Squash some warnings in the lcms v2 interface code. No expected differences.

      -git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12368 a1074d23-0009-0410-80fe-cf8c14f379e6 + git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12368 a1074d23-0009-0410-80fe-cf8c14f379e6

      @@ -18328,23 +35146,22 @@

      - -

      -2011-04-04 14:42:57 +0000 -
      Robin Watts
      +


      +

      2011-04-04 14:42:57 +0000 + +
      Robin Watts <robin.watts@artifex.com>
      b359a954d93cd140b3e000c107854b021ccd9189

      - -
      -Squash 4 warnings in the lcmvs v1 stuff. +

      + Squash 4 warnings in the lcmvs v1 stuff.

      -No cluster differences expected (and testing shows none, so CLUSTER_UNTESTED). + No cluster differences expected (and testing shows none, so CLUSTER_UNTESTED).

      -git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12367 a1074d23-0009-0410-80fe-cf8c14f379e6 + git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12367 a1074d23-0009-0410-80fe-cf8c14f379e6

      @@ -18354,25 +35171,24 @@

      - -

      -2011-04-04 07:40:55 +0000 -
      Ken Sharp
      +


      +

      2011-04-04 07:40:55 +0000 + +
      Ken Sharp <ken.sharp@artifex.com>
      1f92f1449bf208c8f7a878c8f149ca67cd62ab49

      - -
      -Alter the generation of Decode array entries for images using Indexed colour spaces by +

      + Alter the generation of Decode array entries for images using Indexed colour spaces by
      -using bit shifting instead of simple 'exp' operator. + using bit shifting instead of simple 'exp' operator.

      -No differences expected, code is equivalent. + No differences expected, code is equivalent.

      -git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12366 a1074d23-0009-0410-80fe-cf8c14f379e6 + git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12366 a1074d23-0009-0410-80fe-cf8c14f379e6

      @@ -18382,17 +35198,26 @@

      - -

      -2011-04-03 20:40:27 +0000 -
      Gheorghe Savulescu
      +


      +

      2011-04-03 20:40:27 +0000 + +
      Gheorghe Savulescu <sags@ghostscript.com>
      b58247cecc1fd272e12adc26890d912346dd92c5

      +

      + Bug 689093 #21/ HTML compatibility: +
      + Do not use SHORTTAGS (the "<tag ... />" form) in HTML. +

      -Bug 689093 #21/ HTML compatibility + While not necessarily a HTML-conformance issue, the W3C Validator signals +
      + these as not recommended due to problems with some browsers. +
      +
      -git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12365 a1074d23-0009-0410-80fe-cf8c14f379e6 + git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12365 a1074d23-0009-0410-80fe-cf8c14f379e6

      @@ -18400,17 +35225,28 @@

      - -

      -2011-04-03 20:39:48 +0000 -
      Gheorghe Savulescu
      +


      +

      2011-04-03 20:39:48 +0000 + +
      Gheorghe Savulescu <sags@ghostscript.com>
      d52ff94dea3bb3db0dc4c9ee1c8e89d48b1fb7ed

      +

      + Bug 689093 #20/ HTML compatibility: +
      + Specify the charset for remaining HTML files by using a <META/> element. +

      -Bug 689093 #20/ HTML compatibility + Files Details(|8|9).htm, History(8|9).htm already contain such a
      -git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12364 a1074d23-0009-0410-80fe-cf8c14f379e6 + specification, because they either already use utf-8 chars or may do so in +
      + the future. For all others, ‘us-ascii’ is enough. +
      + +
      + git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12364 a1074d23-0009-0410-80fe-cf8c14f379e6

      @@ -18492,17 +35328,26 @@

      - -

      -2011-04-03 20:39:13 +0000 -
      Gheorghe Savulescu
      +


      +

      2011-04-03 20:39:13 +0000 + +
      Gheorghe Savulescu <sags@ghostscript.com>
      591b83fa9500a99ff8d24ddd7aa8962bd44312d6

      +

      + Bug 689093 #19/ CSS conformance: +
      + CSS ‘text-weight’ should be ‘font-weight’ +

      -Bug 689093 #19/ CSS conformance: + Fix a typo in Ghostscript’s CSS style sheet, allowing code fragments in the
      -git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12363 a1074d23-0009-0410-80fe-cf8c14f379e6 + documentation to appear in bold type, as intended. +
      + +
      + git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12363 a1074d23-0009-0410-80fe-cf8c14f379e6

      @@ -18510,35 +35355,34 @@

      - -

      -2011-04-03 20:39:01 +0000 -
      Gheorghe Savulescu
      +


      +

      2011-04-03 20:39:01 +0000 + +
      Gheorghe Savulescu <sags@ghostscript.com>
      464ee97310cd5c003d3683f2a2ceb16691394813

      - -
      -Bug 689093 #18bis/ SVN damage: +

      + Bug 689093 #18bis/ SVN damage:
      -Replace ijs\ijs_spec.pdf, with a good copy. + Replace ijs\ijs_spec.pdf, with a good copy.

      -This file is currently damaged in the SVN Repository. The damage seem to have + This file is currently damaged in the SVN Repository. The damage seem to have
      -happened during the conversion of the Repository from CVS to Subversion. This copy + happened during the conversion of the Repository from CVS to Subversion. This copy
      -of the file comes from the last CVS version available; the copy in the 1st SVN + of the file comes from the last CVS version available; the copy in the 1st SVN
      -checkout I have is already damaged. Note the "/CreationDate" inside the pdf is the + checkout I have is already damaged. Note the "/CreationDate" inside the pdf is the
      -same as in the current (damaged) version and the last change to this file is very + same as in the current (damaged) version and the last change to this file is very
      -old, so this file's substantive content did not change after the migration to SVN. + old, so this file's substantive content did not change after the migration to SVN.

      -git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12362 a1074d23-0009-0410-80fe-cf8c14f379e6 + git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12362 a1074d23-0009-0410-80fe-cf8c14f379e6

      @@ -18546,17 +35390,40 @@

      - -

      -2011-04-03 20:38:09 +0000 -
      Gheorghe Savulescu
      +


      +

      2011-04-03 20:38:09 +0000 + +
      Gheorghe Savulescu <sags@ghostscript.com>
      bbb639d51f543398c6e318075656af4857ad58b5

      +

      + Bug 689093 #18/ SVN damage: +
      + Protect text-"$Id$" from expansion, part #2/2: fix existing files +

      -Bug 689093 #18/ SVN damage + This patch changes files that contain "$Id..." as text in order to +
      + protect the apparent keyword from being expanded by SubVersion. The +
      + methods used are as follows: +
      + - for HTML: use the numeric entity "$" instead of "$". +
      + - for C and Python: if the parser finds 2 consecutive string +
      + literals, separated by nothing but whitespace, then it
      -git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12361 a1074d23-0009-0410-80fe-cf8c14f379e6 + automatically treats them as if it were a single, longer, string +
      + obtained from concatenating the 2 original ones. Thus, the patch +
      + replaces '"$Id"' => '"$" "Id$"'. +
      + +
      + git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12361 a1074d23-0009-0410-80fe-cf8c14f379e6

      @@ -18616,17 +35483,34 @@

      - -

      -2011-04-03 20:27:35 +0000 -
      Gheorghe Savulescu
      +


      +

      2011-04-03 20:27:35 +0000 + +
      Gheorghe Savulescu <sags@ghostscript.com>
      5ff3a16a18372eff2b65054ced9b0cd283ad1ea9

      +

      + Bug 689093 #17/ SVN damage: +
      + Protect text-"$Id$" from expansion, part #1/2: script generating HTML +

      -Bug 689093 #17/ SVN damage + If a commit log contains the text "$Id$", or some other text that +
      + looks like a SVN keyword, toolbin\split_changelog.py outputs it as-is +
      + to HTML and later SVN expands it as a keyword. The result is the text +
      + displayed differs. This patch extends the substitutions done for +
      + character entities to include "$" => "$"; there won't be any +
      + "$"-as-text, and thus no "$Keyword..$"-as-text, anymore. +
      +
      -git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12360 a1074d23-0009-0410-80fe-cf8c14f379e6 + git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12360 a1074d23-0009-0410-80fe-cf8c14f379e6

      @@ -18634,17 +35518,34 @@

      - -

      -2011-04-03 20:25:28 +0000 -
      Gheorghe Savulescu
      +


      +

      2011-04-03 20:25:28 +0000 + +
      Gheorghe Savulescu <sags@ghostscript.com>
      5b7d759adc6fb7f5ab85b72c195aaa4cc8a9882b

      +

      + Bug 689093 #16/ HTML conformance: +
      + For utf-8 HTML, declare the charset +

      -Bug 689093 #16/ HTML conformance + toolbin\split_changelog.py encodes text coming from log messages as +
      + utf-8. The patch changes it to output a "<meta/>" element specifying +
      + the charset used, otherwise browsers that are not set for utf-8 by +
      + default won't necessarily display the file correctly [if message +
      + logs contain extended characters]. It also changes the already generated
      -git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12359 a1074d23-0009-0410-80fe-cf8c14f379e6 + Details(|8|9).htm and History(8|9).htm to include the <meta/> element. +
      + +
      + git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12359 a1074d23-0009-0410-80fe-cf8c14f379e6

      @@ -18662,17 +35563,36 @@

      - -

      -2011-04-03 20:25:06 +0000 -
      Gheorghe Savulescu
      +


      +

      2011-04-03 20:25:06 +0000 + +
      Gheorghe Savulescu <sags@ghostscript.com>
      399081713e3314b04fa4404e870434f0bacb4590

      +

      + Bug 689093 #15 (note: there's no #14)/ HTML conformance: +
      + Avoid the use of non-ASCII in HTML files. +
      + +
      + Character codes outside 7-bit ASCII are a problem if the HTML file does not +
      + explicitly declare the encoding used. Files Details(|8|9).htm and +
      + History(8|9).htm may need extended characters coming from commit logs, and will +
      + be handled by a later patch. Other files only need 7-bit ASCII. +

      -Bug 689093 #15 (note: there's no #14)/ HTML conformance + This patch also contains a small change not related to HTML-conformance: +
      + a missing space in doc\Language.htm ("... for[NO SPACE HERE]1-, ..."). +
      +
      -git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12358 a1074d23-0009-0410-80fe-cf8c14f379e6 + git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12358 a1074d23-0009-0410-80fe-cf8c14f379e6

      @@ -18684,17 +35604,26 @@

      - -

      -2011-04-03 20:24:56 +0000 -
      Gheorghe Savulescu
      +


      +

      2011-04-03 20:24:56 +0000 + +
      Gheorghe Savulescu <sags@ghostscript.com>
      ce833816683f46ec1acd966c4c86a01a33b2f687

      +

      + Bug 689093 #13/ HTML conformance: +
      + 'align="middle"' should be 'align="center"' +

      -Bug 689093 #13/ HTML conformance + "Middle" is only for vertical alignment ("valign="); for the
      -git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12357 a1074d23-0009-0410-80fe-cf8c14f379e6 + horizontal alignment use "center". +
      + +
      + git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12357 a1074d23-0009-0410-80fe-cf8c14f379e6

      @@ -18702,17 +35631,26 @@

      - -

      -2011-04-03 20:24:48 +0000 -
      Gheorghe Savulescu
      +


      +

      2011-04-03 20:24:48 +0000 + +
      Gheorghe Savulescu <sags@ghostscript.com>
      394631da0981713367ca2472be75445bd0fb0d56

      +

      + Bug 689093 #12 (note: there's no #11)/ HTML conformance: +
      + Miscellaneous missing/ misplaced/ misspelled/ extraneous tags +

      -Bug 689093 #12 (note: there's no #11)/ HTML conformance + This patch includes an assortment of fixes, related to tags, that +
      + did not fit into other patches.
      -git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12356 a1074d23-0009-0410-80fe-cf8c14f379e6 + +
      + git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12356 a1074d23-0009-0410-80fe-cf8c14f379e6

      @@ -18734,17 +35672,26 @@

      - -

      -2011-04-03 20:24:30 +0000 -
      Gheorghe Savulescu
      +


      +

      2011-04-03 20:24:30 +0000 + +
      Gheorghe Savulescu <sags@ghostscript.com>
      a17d948ba8edffee3d5cdd710ed495da93d72bda

      +

      + Bug 689093 #10/ HTML conformance: +
      + Replace remaining nested "<b/>"+"<tt/>" with "<code/>" +

      -Bug 689093 #10/ HTML conformance + Revision #9030 already did many such replacements, here we do those +
      + that remained. +
      +
      -git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12355 a1074d23-0009-0410-80fe-cf8c14f379e6 + git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12355 a1074d23-0009-0410-80fe-cf8c14f379e6

      @@ -18794,17 +35741,30 @@

      - -

      -2011-04-03 20:24:19 +0000 -
      Gheorghe Savulescu
      +


      +

      2011-04-03 20:24:19 +0000 + +
      Gheorghe Savulescu <sags@ghostscript.com>
      01a5f1374998c9d24e021ee8851ae36cb58a8230

      +

      + Bug 689093 #09/ HTML conformance: +
      + Missing/misplaced "<pre>"/ "</pre>" in doc\History6/7.htm +

      -Bug 689093 #09/ HTML conformance + doc\History6.htm has lots of "<pre/>" elements that are not closed. +
      + There are also e few misplaced opening "<pre>" tags in History6.htm, +
      + and a few misplaced closing "</pre>" tags in History7.htm ("<pre/>" +
      + elements cannot contain "<hr/>", "<h1/>", or "<h2/>").
      -git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12354 a1074d23-0009-0410-80fe-cf8c14f379e6 + +
      + git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12354 a1074d23-0009-0410-80fe-cf8c14f379e6

      @@ -18814,17 +35774,32 @@

      - -

      -2011-04-03 20:24:04 +0000 -
      Gheorghe Savulescu
      +


      +

      2011-04-03 20:24:04 +0000 + +
      Gheorghe Savulescu <sags@ghostscript.com>
      2692aa2af43e7f1d3655fabad728ceca9157f9b5

      +

      + Bug 689093 #08/ HTML conformance: +
      + Invalid HTML comments +

      -Bug 689093 #08/ HTML conformance + HTML comments start/end with "--" and are inside SGML mark-up, which +
      + starts with "<!" and ends with ">". The consequence is that the former +
      + cannot contain "--". ("<!--" and "-->" are *not* the delimiters, +
      + although most often the "<!" and the starting "--" come one after +
      + the other forming "<!--"; similar for end of a HTML comment.) +
      +
      -git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12353 a1074d23-0009-0410-80fe-cf8c14f379e6 + git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12353 a1074d23-0009-0410-80fe-cf8c14f379e6

      @@ -18834,31 +35809,53 @@

      - -

      -2011-04-03 20:23:39 +0000 -
      Gheorghe Savulescu
      +


      +

      2011-04-03 20:23:39 +0000 + +
      Gheorghe Savulescu <sags@ghostscript.com>
      7215a52b4ae31ceb807da776b2c06f368dc9e275

      +

      + Bug 689093 #07/ HTML conformance: +
      + Double "</title>", part #2/2: fix existing html +
      + +
      + toolbin\split_changelog.py generates double closing "</title>" for +
      + the detailed changelog. This patch fixes the already-generated HTML. +

      -Bug 689093 #07/ HTML conformance + git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12352 a1074d23-0009-0410-80fe-cf8c14f379e6 +
      +
      gs/doc/Details.htm

      - -

      -2011-04-03 20:22:54 +0000 -
      Gheorghe Savulescu
      +


      +

      2011-04-03 20:22:54 +0000 + +
      Gheorghe Savulescu <sags@ghostscript.com>
      9be02f9987043d2f1c4ea6bb1da403e9bbeaa535

      +

      + Bug 689093 #06/ HTML conformance: +
      + Double "</title>", part #1/2: script generating incorrect HTML +

      -Bug 689093 #06/ HTML conformance + toolbin\split_changelog.py generates double closing "</title>" for +
      + the detailed changelog. This patch fixes the script. +
      +
      -git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12351 a1074d23-0009-0410-80fe-cf8c14f379e6 + git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12351 a1074d23-0009-0410-80fe-cf8c14f379e6

      @@ -18866,17 +35863,30 @@

      - -

      -2011-04-03 20:22:27 +0000 -
      Gheorghe Savulescu
      +


      +

      2011-04-03 20:22:27 +0000 + +
      Gheorghe Savulescu <sags@ghostscript.com>
      33674899f2fca8b2ed947862131bc57eb99c749a

      +

      + Bug 689093 #05/ HTML conformance: +
      + Character entities for "<>&", part #3/3: manual fixes to existing HTML +

      -Bug 689093 #05/ HTML conformance + Mostly a continuation of the previous patch: +
      + - Replaces "&"/"<"/">" => "&"/">"/"<" in the other HTMLs; +
      + - Fix 4 places in doc\Details8.htm and doc\History8.htm where the script +
      + used to generated the preceding patch was overzealous.
      -git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12350 a1074d23-0009-0410-80fe-cf8c14f379e6 + +
      + git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12350 a1074d23-0009-0410-80fe-cf8c14f379e6

      @@ -18916,17 +35926,36 @@

      - -

      -2011-04-03 20:21:59 +0000 -
      Gheorghe Savulescu
      +


      +

      2011-04-03 20:21:59 +0000 + +
      Gheorghe Savulescu <sags@ghostscript.com>
      6b853264c8be1ce8efdf0f511889647d2e3251fa

      +

      + Bug 689093 #04/ HTML conformance: +
      + Character entities for "<>&", part #2/3: fix "automatic" HTML +
      + +
      + This patch replaces "&"/"<"/">" => "&"/">"/"<" in +
      + doc\History8.htm and doc\Details8.htm, which (I think) were automatically +
      + generated by the incorrect version of toolbin\split_changelog.py. +

      -Bug 689093 #04/ HTML conformance + Note: +
      + These changes were done automatically by a script that relies on
      -git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12349 a1074d23-0009-0410-80fe-cf8c14f379e6 + the particular way that split_changelog.py generates the HTML. +
      + +
      + git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12349 a1074d23-0009-0410-80fe-cf8c14f379e6

      @@ -18936,17 +35965,26 @@

      - -

      -2011-04-03 20:21:48 +0000 -
      Gheorghe Savulescu
      +


      +

      2011-04-03 20:21:48 +0000 + +
      Gheorghe Savulescu <sags@ghostscript.com>
      24d88fd4b1c8c57e01ba295de69b6ff8a7c3431b

      +

      + Bug 689093 #03/ HTML conformance: +
      + Character entities for "<>&", part #1/3: Remove an obsolete comment +

      -Bug 689093 #03/ HTML conformance + This comment, about the need to HTML-escape "&<>", became obsolete +
      + after SVN revision #9411.
      -git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12348 a1074d23-0009-0410-80fe-cf8c14f379e6 + +
      + git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12348 a1074d23-0009-0410-80fe-cf8c14f379e6

      @@ -18954,17 +35992,32 @@

      - -

      -2011-04-03 20:20:32 +0000 -
      Gheorghe Savulescu
      +


      +

      2011-04-03 20:20:32 +0000 + +
      Gheorghe Savulescu <sags@ghostscript.com>
      81cda2e93b17532409bdea39168db92bf2552919

      +

      + Bug 689093 #02/ HTML conformance: +
      + "</small>" is mandatory, part #2/2: fix existing HTML +

      -Bug 689093 #02/ HTML conformance: + The closing "</small>" tag is mandatory. This patch: +
      + - adds it to existing HTMLs; +
      + - suppresses existing "</small>" from the few files that contained it +
      + on a different line than the opening "<small>"; these files would +
      + become incorrect after using the script fixed in comment #1. +
      +
      -git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12347 a1074d23-0009-0410-80fe-cf8c14f379e6 + git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12347 a1074d23-0009-0410-80fe-cf8c14f379e6

      @@ -19048,17 +36101,26 @@

      - -

      -2011-04-03 20:19:46 +0000 -
      Gheorghe Savulescu
      +


      +

      2011-04-03 20:19:46 +0000 + +
      Gheorghe Savulescu <sags@ghostscript.com>
      a5a20b7b8c0443ac5fd8c88bdb3af37390e4bf5c

      +

      + Bug 689093 #01/ HTML conformance: +
      + "</small>" is mandatory, part #1/2: script generating incorrect HTML +

      -Bug 689093 #01/ HTML conformance + The closing "</small>" tag is mandatory. This patch fixes
      -git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12346 a1074d23-0009-0410-80fe-cf8c14f379e6 + toolbin/makehist.tcl which generates HTML without it. +
      + +
      + git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12346 a1074d23-0009-0410-80fe-cf8c14f379e6

      @@ -19066,21 +36128,20 @@

      - -

      -2011-04-01 23:17:22 +0000 -
      Henry Stiles
      +


      +

      2011-04-01 23:17:22 +0000 + +
      Henry Stiles <henry.stiles@artifex.com>
      2674c673a3f4f29c9ca1620c36a97e0bd89c0e18

      - -
      -Remove temporary development definition used to identify the graphics +

      + Remove temporary development definition used to identify the graphics
      -library supported the new ICC code. + library supported the new ICC code.

      -git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12345 a1074d23-0009-0410-80fe-cf8c14f379e6 + git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12345 a1074d23-0009-0410-80fe-cf8c14f379e6

      @@ -19098,25 +36159,24 @@

      - -

      -2011-04-01 22:58:42 +0000 -
      Henry Stiles
      +


      +

      2011-04-01 22:58:42 +0000 + +
      Henry Stiles <henry.stiles@artifex.com>
      ad470fdd8c23d7597260ec1c068da69075e1d7f8

      - -
      -Fixes 691870 where the banding code was using an ICC color and the +

      + Fixes 691870 where the banding code was using an ICC color and the
      -full page was not. For color spaces in images we never actually call + full page was not. For color spaces in images we never actually call
      -"setcolorspace" so the image type was not being set to icc, we do this + "setcolorspace" so the image type was not being set to icc, we do this
      -now explicitly in the PCL/XL code now. + now explicitly in the PCL/XL code now.

      -git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12344 a1074d23-0009-0410-80fe-cf8c14f379e6 + git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12344 a1074d23-0009-0410-80fe-cf8c14f379e6

      @@ -19124,23 +36184,22 @@

      - -

      -2011-04-01 18:42:42 +0000 -
      Robin Watts
      +


      +

      2011-04-01 18:42:42 +0000 + +
      Robin Watts <robin.watts@artifex.com>
      a51bd3e408207936f0e795280a71253695a9d57e

      - -
      -Add 2 files missed in commit 12341. These ones WILL have mattered. +

      + Add 2 files missed in commit 12341. These ones WILL have mattered.
      -Apoligies for this. A combination of git svn eating my first attempt + Apoligies for this. A combination of git svn eating my first attempt
      -at committing it, and my own base level of incompetence caused this. + at committing it, and my own base level of incompetence caused this.

      -git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12343 a1074d23-0009-0410-80fe-cf8c14f379e6 + git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12343 a1074d23-0009-0410-80fe-cf8c14f379e6

      @@ -19152,23 +36211,22 @@

      - -

      -2011-04-01 18:38:52 +0000 -
      Robin Watts
      +


      +

      2011-04-01 18:38:52 +0000 + +
      Robin Watts <robin.watts@artifex.com>
      b3ce17fce356461895d536c65d39defdb0137b06

      - -
      -Add file that somehow got missed in the lcms2 commit (r12340). +

      + Add file that somehow got missed in the lcms2 commit (r12340).

      -Not enabled by default so CLUSTER_UNTESTED. + Not enabled by default so CLUSTER_UNTESTED.

      -git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12342 a1074d23-0009-0410-80fe-cf8c14f379e6 + git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12342 a1074d23-0009-0410-80fe-cf8c14f379e6

      @@ -19176,19 +36234,18 @@

      - -

      -2011-04-01 18:05:33 +0000 -
      Michael Vrhel
      +


      +

      2011-04-01 18:05:33 +0000 + +
      Michael Vrhel <michael.vrhel@artifex.com>
      b3703b36cb5544d9defd00780d814caed4eae5b4

      - -
      -Fix so that we have proper antialiasing with softmasks. Fixes bug 687674 +

      + Fix so that we have proper antialiasing with softmasks. Fixes bug 687674

      -git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12341 a1074d23-0009-0410-80fe-cf8c14f379e6 + git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12341 a1074d23-0009-0410-80fe-cf8c14f379e6

      @@ -19196,87 +36253,86 @@

      - -

      -2011-04-01 18:00:12 +0000 -
      Robin Watts
      +


      +

      2011-04-01 18:00:12 +0000 + +
      Robin Watts <robin.watts@artifex.com>
      50ecc84d5463bd013f794a9dd53254c2e295a85e

      - -
      -Initial import of LittleCMS v2.1 into the Ghostscript/GhostPDL +

      + Initial import of LittleCMS v2.1 into the Ghostscript/GhostPDL
      -build, with simple integration. LittleCMS version 1 is still used by default, + build, with simple integration. LittleCMS version 1 is still used by default,
      -so no cluster differences expected. + so no cluster differences expected.

      -The version of little cms imported was taken from the lcms git repository, + The version of little cms imported was taken from the lcms git repository,
      -commit 314bc7201d340ab303b36a0ade2c37cf40b83a3b, and then a couple of + commit 314bc7201d340ab303b36a0ade2c37cf40b83a3b, and then a couple of
      -small tweaks were applied: + small tweaks were applied:

      -* lcms2 currently offers no way to get the input/output format for a + * lcms2 currently offers no way to get the input/output format for a
      -transform, so I add 2 functions (cmsGetTransformInputFormat and + transform, so I add 2 functions (cmsGetTransformInputFormat and
      -cmsGetTransformOutputFormat) to do this. + cmsGetTransformOutputFormat) to do this.

      -* lcms2 currently offers no easy way to redirect malloc/free operations + * lcms2 currently offers no easy way to redirect malloc/free operations
      -away from it's internal implementation, so we add a define (LCMS_USER_ALLOC) + away from it's internal implementation, so we add a define (LCMS_USER_ALLOC)
      -to allow us to be able to define our own functions. This mirrors the + to allow us to be able to define our own functions. This mirrors the
      -work done in lcms1 by Michael, I believe. + work done in lcms1 by Michael, I believe.

      -The choice of which version of lcms to build with is made by the WHICH_CMS + The choice of which version of lcms to build with is made by the WHICH_CMS
      -define option in the makefile. Currently this is set to lcms by default, + define option in the makefile. Currently this is set to lcms by default,
      -but can be changed to lcms2 to allow lcms2 to be used instead. + but can be changed to lcms2 to allow lcms2 to be used instead.

      -To make this work, various small tweaks have been required. Firstly, we + To make this work, various small tweaks have been required. Firstly, we
      -rename gsicc_littlecms.h to gsicc_cms.h, reflecting the fact that this is + rename gsicc_littlecms.h to gsicc_cms.h, reflecting the fact that this is
      -not littlecms specific - rather, it defines the interface that any cms + not littlecms specific - rather, it defines the interface that any cms
      -would have to provide in order to work with Ghostscript/GhostPDL. + would have to provide in order to work with Ghostscript/GhostPDL.

      -Secondly, we rename gsicc_littlecms.c to gsicc_lcms.c to make the makefile + Secondly, we rename gsicc_littlecms.c to gsicc_lcms.c to make the makefile
      -macros easier. + macros easier.

      -We add a gsicc_lcms2.c file (derived from copying and editing gsicc_lcms.c) + We add a gsicc_lcms2.c file (derived from copying and editing gsicc_lcms.c)
      -that interfaces with lcms2. + that interfaces with lcms2.

      -Currently lcms2 builds and appears to run without crashing, but gives + Currently lcms2 builds and appears to run without crashing, but gives
      -differing results in some cases. This will need to be solved before we can + differing results in some cases. This will need to be solved before we can
      -swap over to using lcms2 by default. + swap over to using lcms2 by default.

      -git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12340 a1074d23-0009-0410-80fe-cf8c14f379e6 + git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12340 a1074d23-0009-0410-80fe-cf8c14f379e6

      @@ -19686,19 +36742,18 @@

      - -

      -2011-04-01 16:44:50 +0000 -
      Michael Vrhel
      +


      +

      2011-04-01 16:44:50 +0000 + +
      Michael Vrhel <michael.vrhel@artifex.com>
      b960ff15c895dbe5a7d6baf470ad8a12949ad054

      - -
      -Fix for mistaken double allocation of threshold array object. Thanks to ray for finding this. +

      + Fix for mistaken double allocation of threshold array object. Thanks to ray for finding this.

      -git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12339 a1074d23-0009-0410-80fe-cf8c14f379e6 + git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12339 a1074d23-0009-0410-80fe-cf8c14f379e6

      @@ -19706,27 +36761,26 @@

      - -

      -2011-04-01 16:39:59 +0000 -
      Michael Vrhel
      +


      +

      2011-04-01 16:39:59 +0000 + +
      Michael Vrhel <michael.vrhel@artifex.com>
      66adf73f5cbaa010b6a7ee730384c3a58752bff3

      - -
      -Fix so that anti-aliasing works when the source file contains transparency. This involved the addition of a copy_alpha procedure for the gdevp14 device. In addition, the anti-aliasing parameters for the target device are passed along to the gdevp14 device. The gdevp14 clist device uses the forward copy alpha operation, so that we end up using the clist_copy_alpha operation. Then during the clist reading phase we use the gdevp14 device's copy_alpha command. +

      + Fix so that anti-aliasing works when the source file contains transparency. This involved the addition of a copy_alpha procedure for the gdevp14 device. In addition, the anti-aliasing parameters for the target device are passed along to the gdevp14 device. The gdevp14 clist device uses the forward copy alpha operation, so that we end up using the clist_copy_alpha operation. Then during the clist reading phase we use the gdevp14 device's copy_alpha command.

      -There are two things that I do need to do in relation to this commit. One is that the operation that actually computes and applies the alpha associated with the transparency needs to be optimized so that we are not doing floating point math. Also, support needs to be added for knockout fills. However, for the vast majority of files with transparency we should now have support with -dGraphicAlphaBits and -dTextAlphaBits. + There are two things that I do need to do in relation to this commit. One is that the operation that actually computes and applies the alpha associated with the transparency needs to be optimized so that we are not doing floating point math. Also, support needs to be added for knockout fills. However, for the vast majority of files with transparency we should now have support with -dGraphicAlphaBits and -dTextAlphaBits.

      -I will open a bug on the two outstanding issues so that I don't forget. + I will open a bug on the two outstanding issues so that I don't forget.

      -git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12338 a1074d23-0009-0410-80fe-cf8c14f379e6 + git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12338 a1074d23-0009-0410-80fe-cf8c14f379e6

      @@ -19736,27 +36790,26 @@

      - -

      -2011-03-31 17:30:58 +0000 -
      Henry Stiles
      +


      +

      2011-03-31 17:30:58 +0000 + +
      Henry Stiles <henry.stiles@artifex.com>
      7825ac4552256609c8060b5af13bb168170db6eb

      - -
      -Bug #692100, padding was being treated inconsistently within 2 +

      + Bug #692100, padding was being treated inconsistently within 2
      -procedures resulting in UMR's and incorrect results. I'm afraid we + procedures resulting in UMR's and incorrect results. I'm afraid we
      -still don't understand the details of HP's seemingly bug-ridden + still don't understand the details of HP's seemingly bug-ridden
      -padding implementation but this fix at least makes the code internally + padding implementation but this fix at least makes the code internally
      -consistent. + consistent.

      -git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12337 a1074d23-0009-0410-80fe-cf8c14f379e6 + git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12337 a1074d23-0009-0410-80fe-cf8c14f379e6

      @@ -19764,25 +36817,24 @@

      - -

      -2011-03-31 17:22:23 +0000 -
      Henry Stiles
      +


      +

      2011-03-31 17:22:23 +0000 + +
      Henry Stiles <henry.stiles@artifex.com>
      91b7f320484904d60e8cf017611f5a8da4a6c685

      - -
      -Fixes 692109, the "no argument case" of the HPGL/2 INPUT RELATIVE +

      + Fixes 692109, the "no argument case" of the HPGL/2 INPUT RELATIVE
      -command did not properly initialized the operands to their defaults. + command did not properly initialized the operands to their defaults.
      -Only likely to be seen in unusual test cases. Fixes indeterminacy + Only likely to be seen in unusual test cases. Fixes indeterminacy
      -in CET 32-07.BIN reported in the regression tests. + in CET 32-07.BIN reported in the regression tests.

      -git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12336 a1074d23-0009-0410-80fe-cf8c14f379e6 + git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12336 a1074d23-0009-0410-80fe-cf8c14f379e6

      @@ -19790,33 +36842,32 @@

      - -

      -2011-03-31 15:36:32 +0000 -
      Chris Liddell
      +


      +

      2011-03-31 15:36:32 +0000 + +
      Chris Liddell <chris.liddell@artifex.com>
      65ea9547d5760284c68da6b6b413d335e4e68ed1

      - -
      -The last of Hintak's (usable) improvements to the nsis installer +

      + The last of Hintak's (usable) improvements to the nsis installer
      -script, plus a tweak or two. + script, plus a tweak or two.

      -Make the cidfmap generation a tickbox option on the final page. + Make the cidfmap generation a tickbox option on the final page.

      -Add a link to the uninstaller from the Start Menu group. + Add a link to the uninstaller from the Start Menu group.

      -No cluster differences + No cluster differences

      -git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12335 a1074d23-0009-0410-80fe-cf8c14f379e6 + git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12335 a1074d23-0009-0410-80fe-cf8c14f379e6

      @@ -19824,29 +36875,28 @@

      - -

      -2011-03-30 15:33:28 +0000 -
      Chris Liddell
      +


      +

      2011-03-30 15:33:28 +0000 + +
      Chris Liddell <chris.liddell@artifex.com>
      700f41807524588d82a674c3618322f71bbe9d7b

      - -
      -Bring the nsis installer script and it's caller up +

      + Bring the nsis installer script and it's caller up
      -to date. + to date.

      -Vast majority of the credit to Hintak for this. + Vast majority of the credit to Hintak for this.

      -No cluster differences. + No cluster differences.

      -git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12334 a1074d23-0009-0410-80fe-cf8c14f379e6 + git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12334 a1074d23-0009-0410-80fe-cf8c14f379e6

      @@ -19856,23 +36906,22 @@

      - -

      -2011-03-30 12:23:41 +0000 -
      Robin Watts
      +


      +

      2011-03-30 12:23:41 +0000 + +
      Robin Watts <robin.watts@artifex.com>
      c428998ab5d6b6f164de9474c25ee788ae4ef77f

      - -
      -Squash a warning in a device call. +

      + Squash a warning in a device call.

      -No cluster differences expected. + No cluster differences expected.

      -git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12333 a1074d23-0009-0410-80fe-cf8c14f379e6 + git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12333 a1074d23-0009-0410-80fe-cf8c14f379e6

      @@ -19880,37 +36929,36 @@

      - -

      -2011-03-30 11:13:37 +0000 -
      Tor Andersson
      +


      +

      2011-03-30 11:13:37 +0000 + +
      Tor Andersson <tor.andersson@artifex.com>
      807af34ac8671f03b8c73cca2cdbebca796c716e

      - -
      -xps: Fix bug when parsing cluster mappings. +

      + xps: Fix bug when parsing cluster mappings.

      -We incorrectly encoded and emitted all characters in a + We incorrectly encoded and emitted all characters in a
      -Many-to-One cluster mapping, resulting in extraneous characters + Many-to-One cluster mapping, resulting in extraneous characters
      -where ligatures were used. A (2:1) cluster map for the ligature + where ligatures were used. A (2:1) cluster map for the ligature
      -"fi" has two characters (f, i) and one glyph (fi). We showed it + "fi" has two characters (f, i) and one glyph (fi). We showed it
      -as two glyphs (fi, i) instead of skipping the second character + as two glyphs (fi, i) instead of skipping the second character
      -while decoding the cluster map. + while decoding the cluster map.

      -This fixes multiple errors in MXDW/TypeSamples.xps + This fixes multiple errors in MXDW/TypeSamples.xps

      -git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12332 a1074d23-0009-0410-80fe-cf8c14f379e6 + git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12332 a1074d23-0009-0410-80fe-cf8c14f379e6

      @@ -19918,25 +36966,24 @@

      - -

      -2011-03-30 10:17:57 +0000 -
      Robin Watts
      +


      +

      2011-03-30 10:17:57 +0000 + +
      Robin Watts <robin.watts@artifex.com>
      2e594aee0d69b99a17fa9cd3cf21696773afde43

      - -
      -Add gs/doc to Visual Studio project, enabling documentation to be easily +

      + Add gs/doc to Visual Studio project, enabling documentation to be easily
      -edited in the Visual Studio editor. + edited in the Visual Studio editor.

      -No cluster differences expected. + No cluster differences expected.

      -git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12331 a1074d23-0009-0410-80fe-cf8c14f379e6 + git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12331 a1074d23-0009-0410-80fe-cf8c14f379e6

      @@ -19944,23 +36991,22 @@

      - -

      -2011-03-30 10:17:42 +0000 -
      Robin Watts
      +


      +

      2011-03-30 10:17:42 +0000 + +
      Robin Watts <robin.watts@artifex.com>
      790f395b044a7e7179c3ca918e30475827c8a30b

      - -
      -Add documentation for dev_spec_op to Devices.htm. +

      + Add documentation for dev_spec_op to Devices.htm.

      -No cluster changes. + No cluster changes.

      -git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12330 a1074d23-0009-0410-80fe-cf8c14f379e6 + git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12330 a1074d23-0009-0410-80fe-cf8c14f379e6

      @@ -19968,39 +37014,38 @@

      - -

      -2011-03-30 10:17:26 +0000 -
      Robin Watts
      +


      +

      2011-03-30 10:17:26 +0000 + +
      Robin Watts <robin.watts@artifex.com>
      a243545401bf0fdb8b1a18e7e5379119c56aecfa

      - -
      -Add new copy_plane device procedure; arguments as for copy_color with an +

      + Add new copy_plane device procedure; arguments as for copy_color with an
      -extra int to identify which plane we want to work on. + extra int to identify which plane we want to work on.

      -The call effectively says "Copy this pixmap into the specified plane of this + The call effectively says "Copy this pixmap into the specified plane of this
      -device". It is envisaged that it will only be defined for planar devices. + device". It is envisaged that it will only be defined for planar devices.

      -For now clients can detect whether or not to use this based on whether the + For now clients can detect whether or not to use this based on whether the
      -function pointer is non NULL. If need be (to cope with forwarding devices) + function pointer is non NULL. If need be (to cope with forwarding devices)
      -we can add a dev_spec_op. + we can add a dev_spec_op.

      -No cluster differences expected. + No cluster differences expected.

      -git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12329 a1074d23-0009-0410-80fe-cf8c14f379e6 + git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12329 a1074d23-0009-0410-80fe-cf8c14f379e6

      @@ -20012,35 +37057,34 @@

      - -

      -2011-03-30 10:17:10 +0000 -
      Robin Watts
      +


      +

      2011-03-30 10:17:10 +0000 + +
      Robin Watts <robin.watts@artifex.com>
      3bdda000eabced6e4c015af4c6dbb5b02f1abdda

      - -
      -Add new dev_spec_op operation for spotting that a device maps colours in +

      + Add new dev_spec_op operation for spotting that a device maps colours in
      -the 'standard' 1bit cmyk way, and use that rather than manually checking + the 'standard' 1bit cmyk way, and use that rather than manually checking
      -function pointers. This allows bitcmyk, pamcmyk4 and plibk devices to + function pointers. This allows bitcmyk, pamcmyk4 and plibk devices to
      -correctly spot the optimisation in get_bits (used for rops that use D). + correctly spot the optimisation in get_bits (used for rops that use D).

      -Testing locally indicates that the special case is now taken, but that no + Testing locally indicates that the special case is now taken, but that no
      -differences are seen in the results (as we would hope). + differences are seen in the results (as we would hope).

      -No cluster differences expected. + No cluster differences expected.

      -git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12328 a1074d23-0009-0410-80fe-cf8c14f379e6 + git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12328 a1074d23-0009-0410-80fe-cf8c14f379e6

      @@ -20056,29 +37100,28 @@

      - -

      -2011-03-30 10:16:54 +0000 -
      Robin Watts
      +


      +

      2011-03-30 10:16:54 +0000 + +
      Robin Watts <robin.watts@artifex.com>
      f81e8f47c06572ecc4f7e3fcc03ca4db60507ce4

      - -
      -Tweak dev_spec_op implementations so that they correctly forward through +

      + Tweak dev_spec_op implementations so that they correctly forward through
      -to the 'default' (or base) implementations for unknown operations. Stupid + to the 'default' (or base) implementations for unknown operations. Stupid
      -of me to have got this wrong initially, as it is one of the main purposes + of me to have got this wrong initially, as it is one of the main purposes
      -of this mechanism. + of this mechanism.

      -No cluster differences expected. + No cluster differences expected.

      -git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12327 a1074d23-0009-0410-80fe-cf8c14f379e6 + git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12327 a1074d23-0009-0410-80fe-cf8c14f379e6

      @@ -20092,33 +37135,32 @@

      - -

      -2011-03-30 10:15:18 +0000 -
      Robin Watts
      +


      +

      2011-03-30 10:15:18 +0000 + +
      Robin Watts <robin.watts@artifex.com>
      bca8531f23845a6c70cf938fb0ab1bc6e9f14fd9

      - -
      -Add new dev_spec_op call to device procs table, along with gxdevsop.h header +

      + Add new dev_spec_op call to device procs table, along with gxdevsop.h header
      -that defines the operation enumeration for it. + that defines the operation enumeration for it.

      -Move existing calls of pattern_manage across to using dev_spec_op instead. + Move existing calls of pattern_manage across to using dev_spec_op instead.
      -Add comments to the pattern management definitions noting that it is + Add comments to the pattern management definitions noting that it is
      -deprecated and should not be used. + deprecated and should not be used.

      -No cluster differences (aside from indeterminisms). + No cluster differences (aside from indeterminisms).

      -git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12326 a1074d23-0009-0410-80fe-cf8c14f379e6 + git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12326 a1074d23-0009-0410-80fe-cf8c14f379e6

      @@ -20179,41 +37221,18 @@ gs/base/gxshade6.c
      gs/psi/zpcolor.c -
      xps/xpstile.c -

      - -

      -2011-03-30 09:26:50 +0000 -
      Chris Liddell
      -ed774ca984d2566b00e212d130644abd5529235f -

      - -
      -Update version number post-release. -
      - -
      -git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@12325 a1074d23-0009-0410-80fe-cf8c14f379e6 -
      - -
      -gs/Resource/Init/gs_init.ps -
      -gs/base/gscdef.c -
      -gs/base/version.mak -
      -

      +


      +

      Version 9.02 (2011-03-30)

      This is the third release in the stable 9.x series. -

      This is an "out of order" release, primarily to ensure the -GPL Ghostscript release remains in version "lock-step" with the +

      This is an "out of order" release, primarily to ensure the +GPL Ghostscript release remains in version "lock-step" with the Artifex commercial release.

      Highlights in this release include: @@ -20237,8 +37256,7 @@

      No recorded incompatible changes. - - +

      Changelog

      2011-03-30T06:48:01.334550Z chrisl

      @@ -20883,13 +37901,24 @@
       Fix for bug 692038.
       
      -This fixes 3 issues when using a CIELAB based profile for the output device ICC profile.
      +This fixes 3 issues when using a CIELAB based profile for the output device
      +ICC profile.
       
      -One was a problem when handling separation color spaces when they had the ALL entry and we were going to an additive device.  AR does a 1-INK level for the device values and no color management.  We were doing the same, but this approach will not work if our destination color space is CIELAB.  Now if we are headed toward CIELAB we do the 1-INK to RGB and then transform to CIELAB.
      -
      -Another was that transparency blending should never be done in CIELAB or similar type color spaces.  With transparency, the PDF14 device inherits the profile for the target device and if the transparency groups don't specify a color space we would end up blending in CIELAB.  The solution was to detect this situation and use the defaultRGB profile for blending.  Conversion to CIELAB occurs during the pdf14 put image operation.
      -
      -Finally, with shading in transparency, we need to make sure to pass along the transparency device through the shading parameters whenever we have a color mismatch between the pdf14 device and the target device so that the shading will occur in the proper color space.
      +One was a problem when handling separation color spaces when they had the ALL
      +entry and we were going to an additive device.  AR does a 1-INK level for the
      +device values and no color management.  We were doing the same, but this approach
      +will not work if our destination color space is CIELAB.  Now if we are headed toward
      +CIELAB we do the 1-INK to RGB and then transform to CIELAB.
      +
      +Another was that transparency blending should never be done in CIELAB or similar type
      +color spaces.  With transparency, the PDF14 device inherits the profile for the target
      +device and if the transparency groups don't specify a color space we would end up blending
      +in CIELAB.  The solution was to detect this situation and use the defaultRGB profile for blending.
      +Conversion to CIELAB occurs during the pdf14 put image operation.
      +
      +Finally, with shading in transparency, we need to make sure to pass along the transparency device
      +through the shading parameters whenever we have a color mismatch between the pdf14 device and the
      +target device so that the shading will occur in the proper color space.
       
       These changes are all related to a non-tested cluster case when we have -sOutputICCProfile=lab.icc

      [base/gdevp14.c base/gxcmap.c base/gstrans.c base/gxclist.h base/gdevtfnx.c base/gsfunc0.c base/devs.mak base/gsicc.c]

      @@ -21010,7 +38039,8 @@ 2011-03-07T22:19:29.253652Z Michael Vrhel

      -Initialize ht landscape structure to zero when in portrait case.  There is a conditional test on the value later.
      +Initialize ht landscape structure to zero when in portrait case. There is +a conditional test on the value later.

      [base/gximono.c]

      @@ -21065,7 +38095,9 @@ 2011-03-07T18:58:08.149818Z Michael Vrhel

      -Fix for improper indexing of reversed portrait image line.  We were off by one byte and ended up with one byte not set.  Def. a source of indeterminism.  Thanks to Robin for tracking this down.
      +Fix for improper indexing of reversed portrait image line. We were off +by one byte and ended up with one byte not set. Def. a source of +indeterminism. Thanks to Robin for tracking this down.

      [base/gximono.c]

      @@ -21171,7 +38203,12 @@ 2011-03-06T16:52:19.765042Z Michael Vrhel

      -Fix to use proper DDA incrementation for interpolation.  We still maintain special loops for when there is no scaling or for when it is 2x.  This should fix the intdeterminism issues.   Tested performance on customer files and no significant difference was observed.   About 1500 cluster differences will be reported with this fix.
      +Fix to use proper DDA incrementation for interpolation. +We still maintain special loops for when there is no scalin +or for when it is 2x. This should fix the intdeterminism issues. +Tested performance on customer files and no significant difference +was observed. About 1500 cluster differences will be reported with +this fix.

      [base/lib.mak base/gximono.c]

      @@ -21309,7 +38346,12 @@ 2011-03-03T17:51:48.590954Z Michael Vrhel

      -Enabling of thresholding code as default image rendering of monochrome/indexed images for monochrome devices.  This will result in about 2432 differences reported.  I stepped through them in a bmpcmp to check for serious issues.  The minor halftone differences were due to the fact that we step in the device space for pixel replication in the threshold code but step in source space for the rect fill code.  Enabling this code now will make it easier to track issues as we expand the use of the thresholding code.
      +Enabling of thresholding code as default image rendering of monochrome/indexed +images for monochrome devices. This will result in about 2432 differences reported. +I stepped through them in a bmpcmp to check for serious issues. The minor halftone +differences were due to the fact that we step in the device space for pixel replication +in the threshold code but step in source space for the rect fill code. Enabling this +code now will make it easier to track issues as we expand the use of the thresholding code.

      [base/gximono.c]

      @@ -21398,7 +38440,15 @@ 2011-03-02T18:51:23.645025Z Michael Vrhel

      -Introduction of a member variable in gs_image1_t, which will let us know the original source type of the image.  For example if, the parent source were type3 this spawns two type1 images.  One for the mask and one for the image data.  The mask is rendered using image render simple.  If the image is monochrome or indexed, it is rendered with the renderer in gximono.c .   If we are going to a halftone monochrome device, we end up using the fast threshold based renderer which has its interpolation stepping in device space as opposed to source space.  This causes very minor differences between the mask and the image data.  To avoid this, we use the old rect_fill code for the image type3 data to ensure a more exact spatial match.
      +Introduction of a member variable in gs_image1_t, which will let us know the +original source type of the image. For example if, the parent source were type3 +this spawns two type1 images. One for the mask and one for the image data. The +mask is rendered using image render simple. If the image is monochrome or indexed, +it is rendered with the renderer in gximono.c . If we are going to a halftone +monochrome device, we end up using the fast threshold based renderer which has its +interpolation stepping in device space as opposed to source space. This causes very +minor differences between the mask and the image data. To avoid this, we use the old +rect_fill code for the image type3 data to ensure a more exact spatial match.

      [base/gximono.c base/gximage1.c base/gximage2.c base/gximage3.c base/gximage4.c base/gximage.h base/gximag3x.c base/gsiparam.h]

      @@ -21437,7 +38487,8 @@ 2011-03-01T17:18:30.158752Z Michael Vrhel

      -Fix for error introduced in non-SSE2 code when I removed the inclusion of the transfer function into the threshold values.
      +Fix for error introduced in non-SSE2 code when I removed the inclusion +of the transfer function into the threshold values.

      [base/gximono.c]

      @@ -21510,7 +38561,8 @@ 2011-02-28T05:23:46.157854Z Michael Vrhel

      -Fix for mis-scale on decode for render mono cache.  Fixes improper rendering of 148-11.ps with new halftone code.
      +Fix for mis-scale on decode for render mono cache. Fixes improper rendering +of 148-11.ps with new halftone code.

      [base/gxipixel.c]

      @@ -21518,7 +38570,9 @@ 2011-02-27T23:26:10.406657Z Michael Vrhel

      -Removal (or inactivation) of code to include inverse of transfer function in the threshold values.  Also minor fix for scaling issue in halftone code in portrait mode.  Code is inactive so no regression diffs expected.
      +Removal (or inactivation) of code to include inverse of transfer function in +the threshold values. Also minor fix for scaling issue in halftone code in +portrait mode. Code is inactive so no regression diffs expected.

      [base/gximono.c base/gsht.c]

      @@ -21526,7 +38580,14 @@ 2011-02-27T23:23:30.287293Z Michael Vrhel

      -Fix for a bug that was introduced with the ICC branch.  This was causing a mismatch between banded an unbanded rendering and in particular had rendering errors in banded mode when rendering PS and PDF files that had a non identity transfer function.  Minor progression diffs in many files with very visible progressions in 246-01.ps, 258-01.ps as examples.  What was happening is that when running in clist mode, we were not recognizing that a transfer function was present when doing the ICC branch.  Stumble upon this working the transfer function in with the new threshold based halftoning code.
      +Fix for a bug that was introduced with the ICC branch. This was causing a +mismatch between banded an unbanded rendering and in particular had rendering +errors in banded mode when rendering PS and PDF files that had a non identity +transfer function. Minor progression diffs in many files with very visible +progressions in 246-01.ps, 258-01.ps as examples. What was happening is that +when running in clist mode, we were not recognizing that a transfer function was +present when doing the ICC branch. Stumble upon this working the transfer function +in with the new threshold based halftoning code.

      [base/gxipixel.c]

      @@ -21604,7 +38665,8 @@ 2011-02-25T19:49:39.160812Z Michael Vrhel

      -Fix so that we only do the fast code if we are in portrait or landscape mode.  Skewed objects will have to use the rect fill method.
      +Fix so that we only do the fast code if we are in portrait or landscape mode. +Skewed objects will have to use the rect fill method.

      [base/gximono.c]

      @@ -21612,7 +38674,11 @@ 2011-02-25T19:33:55.727547Z Michael Vrhel

      -Addition of code to incorporate the inverse of the transfer curve into the threshold matrix.  If the curve is an inverting type (e.g. 0 to 1 and 1 to 0) then a the thresholding comparison is switched.  Also, if the curve is not monotonic, it can not be inverted and we revert to the old rect fill method.  This commit has the code disabled so there should not be any regressions.
      +Addition of code to incorporate the inverse of the transfer curve into the +threshold matrix. If the curve is an inverting type (e.g. 0 to 1 and 1 to 0) +then a the thresholding comparison is switched. Also, if the curve is not +monotonic, it can not be inverted and we revert to the old rect fill method. +This commit has the code disabled so there should not be any regressions.

      [base/lib.mak base/gximono.c base/gzht.h base/gxdht.h base/gsht.c]

      @@ -21801,7 +38867,9 @@ 2011-02-22T19:52:43.275685Z Michael Vrhel

      -Merge of halftone branch into the trunk.  The new rendering code is actually disabled with this commit.  As such, there should not be any testing differences.
      +Merge of halftone branch into the trunk. The new rendering code is actually +disabled with this commit. As such, there should not be any testing +differences.

      [base/gxipixel.c base/lib.mak base/Makefile.in base/gxcie.h /trunk/gs base/gsht.c base/gxcmap.c psi/msvc.mak ghostscript.vcproj base/gximono.c base/gzht.h base/gxidata.c base/configure.ac base/gxdht.h base/gxcmap.h base/gxicolor.c base/gximage.h base/gsciemap.c]

      @@ -22284,7 +39352,7 @@

      No recorded incompatible changes. -

      Changelog

      +

      Changelog

      2011-02-07T14:10:27.833602Z Chris Liddell

      @@ -23229,14 +40297,18 @@
       Fix for a number of issues found by Ray with the halftone creation tool.
       
      -These include a crash for a divide by zero in the gcd function (caused failure at 0 degree screen generation)
      +These include a crash for a divide by zero in the gcd function (caused failure
      +at 0 degree screen generation)
       Fix so that the Holladay screen is no longer created as an output option.
       Fix in  ppm output header.
       Fix in how the lpi is selected.
       Fix for when we have a screen that has essentially one dot (also caused a crash).
       Addition of a ReadMe.
       
      -A lot more testing is needed, in particular, the dithering of the dots in the macro-screens needs additional testing and the relationship between the desired number of quantization levels and the size of the screen needs to be properly computed.  There is a list of features that need to be added described in the ReadMe.  
      +A lot more testing is needed, in particular, the dithering of the dots in the +macro-screens needs additional testing and the relationship between the desired +number of quantization levels and the size of the screen needs to be properly +computed. There is a list of features that need to be added described in the ReadMe.

      [toolbin/color/halftone/halfttoning/halfttoning.vcproj toolbin/color/halftone/README toolbin/color/halftone/halfttoning/halftone.c]

      @@ -23265,7 +40337,13 @@ 2011-01-11T00:49:20.559732Z Michael Vrhel

      -Hopefully a fix for indeterminism introduced in rev 12005.  The source of this was that the cups and psdcmyk device are now using the older slower color image rendering function due to the fact that they have non-standard color mapping procedures.  Missing parenthesis were introduced when the ICC branch was merged into the trunk which was the source of the issue.  This was causing a check for color range mask testing even when the image was not a type 4.
      +Hopefully a fix for indeterminism introduced in rev 12005. The +source of this was that the cups and psdcmyk device are now using +the older slower color image rendering function due to the fact that +they have non-standard color mapping procedures. Missing parenthesis +were introduced when the ICC branch was merged into the trunk which was +the source of the issue. This was causing a check for color range mask +testing even when the image was not a type 4.

      [base/gxicolor.c]

      @@ -23387,7 +40465,8 @@ 2011-01-08T10:36:56.827100Z Till Kamppeter

      -CUPS Raster: Another approach to fix both bug #691733 and #690435: Set _old values at the beginning of the cups_put_params() function.
      +CUPS Raster: Another approach to fix both bug #691733 and #690435: Set _old
      +values at the beginning of the cups_put_params() function.
       

      [cups/gdevcups.c]

      @@ -23396,7 +40475,8 @@ 2011-01-07T23:33:17.663910Z Till Kamppeter

      -CUPS Raster output device: Use positive values (1) as dummy values to mark that the color depth has changed and therefore memory needs to get rallocated
      +CUPS Raster output device: Use positive values (1) as dummy values to mark
      +that the color depth has changed and therefore memory needs to get rallocated
       
       WEith this both bug #691733 and bug #690435 get fixed, but this is not
       necessarily he right and best solution.
      @@ -23418,7 +40498,16 @@
       2011-01-07T04:49:42.455234Z Michael Vrhel

      -Fix so that we do not do the ICC optimized flow for color images when our target device does not have standard color mapping procedures.  This occurs for example, in the case for the CUPs device where the color mapping procedures map CMYK, RGB and Gray to the current CUPs device color space.   For standard gray, RGB and CMYK devices these procedures are avoided as the CMM performs all the required mappings.  This commit will show differences in the files for the cups device as well as the psdcmyk device, which also should be using the non-optimized flow due to the use of CMYK + spot colorants, which will not be managed correctly by the CMM in general.  The differences int the psdcmyk files that do not have extra spot colorants are tiny.  This should fix bug 691760.
      +Fix so that we do not do the ICC optimized flow for color images when our +target device does not have standard color mapping procedures. This occurs +for example, in the case for the CUPs device where the color mapping procedures +map CMYK, RGB and Gray to the current CUPs device color space. For standard +gray, RGB and CMYK devices these procedures are avoided as the CMM performs +all the required mappings. This commit will show differences in the files for the +cups device as well as the psdcmyk device, which also should be using the non-optimized +flow due to the use of CMYK + spot colorants, which will not be managed correctly by +the CMM in general. The differences int the psdcmyk files that do not have extra spot +colorants are tiny. This should fix bug 691760.

      [base/gxi12bit.c base/gdevp14.c base/lib.mak base/gxcmap.c base/gxiscale.c base/gdevnfwd.c base/gxcmap.h base/gxicolor.c]

      @@ -23478,7 +40567,8 @@ 2011-01-05T15:28:39.325806Z Till Kamppeter

      -Use the "x11" output device as default output device for an X-enabled Ghostscript, as "x11alpha" is too buggy
      +Use the "x11" output device as default output device for an X-enabled
      +Ghostscript, as "x11alpha" is too buggy
       
       The simple call "gs <file>" is a common call to check a PostScript
       file when debugging printing problems. Unfortunately, this call uses
      @@ -23525,7 +40615,14 @@
       2011-01-04T18:19:41.129921Z Michael Vrhel

      -Fix so that the presence of source black and white are properly detected with the ICC color management changes.  This detection is useful for the optimization of certain ROPs.  Previously black and white were detected from looking at the device color.  This was a problem since the device black color is usually not pure for a CMYK printer with the ICC changes.  This fix updates the detection function so that it looks at the source color and maps it to the default RGB color space where black and white are well defined.
      +Fix so that the presence of source black and white are properly detected
      +with the ICC color management changes.  This detection is useful for the
      +optimization of certain ROPs.  Previously black and white were detected
      +from looking at the device color.  This was a problem since the device
      +black color is usually not pure for a CMYK printer with the ICC changes.
      +This fix updates the detection function so that it looks at the source
      +color and maps it to the default RGB color space where black and white
      +are well defined.
       

      [base/gxipixel.c base/lib.mak]

      @@ -23819,7 +40916,19 @@ 2010-12-22T18:48:13.456231Z Michael Vrhel

      -Initial commit of code for creating halftone screens.  This code needs additional debugging, especially in the case of edge parameters.  It will currently create threshold arrays based upon desired lpi, angle, quantization levels, and device resolution.  The method is restricted to angles that are the arctangent of rational numbers. Every attempt is made to achieve the requested lpi by using the rational angle that achieves an lpi over the requested value.  Since there is a trade off between lpi and quantization levels, the requested quantization levels are obtained through dithering of the dot cells within the supercell.  Essentially, the dots within the supercell do not all take on the same values and can grow at different rates in a visually pleasing manner.  There is still a bit of work to do still on this dithering as well as controlling the rate of growth for the dots.
      +Initial commit of code for creating halftone screens. This code needs +additional debugging, especially in the case of edge parameters. It +will currently create threshold arrays based upon desired lpi, angle, +quantization levels, and device resolution. The method is restricted +to angles that are the arctangent of rational numbers. Every attempt is +made to achieve the requested lpi by using the rational angle that achieves +an lpi over the requested value. Since there is a trade off between lpi +and quantization levels, the requested quantization levels are obtained +through dithering of the dot cells within the supercell. Essentially, the +dots within the supercell do not all take on the same values and can grow at +different rates in a visually pleasing manner. There is still a bit of work +to do still on this dithering as well as controlling the rate of growth for +the dots.

      [toolbin/color/halftone toolbin/color/halftone/halfttoning.sln toolbin/color/halftone/halfttoning/halfttoning.vcproj toolbin/color/halftone/halfttoning toolbin/color/halftone/halfttoning/halftone.c]

      @@ -24168,7 +41277,8 @@ 2010-12-10T19:50:53.800825Z Michael Vrhel

      -Removal of Smask_is_CIE flag in the code as well as removal of code that is no longer used in the soft mask rendering.
      +Removal of Smask_is_CIE flag in the code as well as removal of code that +is no longer used in the soft mask rendering.

      [base/gdevp14.c base/gdevp14.h base/gstrans.c base/gstparam.h base/gxblend.c base/gstrans.h base/gxblend.h]

      @@ -24219,7 +41329,8 @@ 2010-12-10T03:06:40.558274Z Michael Vrhel

      -Apply proper alpha blending to compute luminosity of mask per the PDF specification.  Fixes bug 691822
      +Apply proper alpha blending to compute luminosity of mask per the PDF +specification. Fixes bug 691822

      [base/gdevp14.c]

      @@ -24318,7 +41429,8 @@
       pdfwrite enhancement : more work towards DSC compliant ps2write output
       
      -This should now output pages in the correct order, with %%Page:/%%PageTrailer comments.
      +This should now output pages in the correct order, with %%Page:/%%PageTrailer
      +comments.
       Still need to address Resource comments and definitions.
       
       Committed so that a user can try out the code. No differences expected.
      @@ -24330,7 +41442,10 @@
       2010-12-06T20:30:42.463413Z Michael Vrhel

      -Fix for bug 691466.  Problem was caused by the DeviceN alternate color space being Lab and the color values not being properly decoded to enable use of the lab ICC profile.  A few progressions in the cluster data base with this commit.
      +Fix for bug 691466. Problem was caused by the DeviceN alternate color +space being Lab and the color values not being properly decoded to enable +use of the lab ICC profile. A few progressions in the cluster data base +with this commit.

      [base/gscdevn.c base/gdevp14.c base/gsicc.c]

      @@ -24356,7 +41471,8 @@ 2010-12-06T16:07:30.222320Z regression

      -Limit clusterpush.pl bmpcmp jobs to 10 megs of changes per file in addition to the 100 changes per file limit.
      +Limit clusterpush.pl bmpcmp jobs to 10 megs of changes per file in addition
      +to the 100 changes per file limit.
       

      [toolbin/localcluster/checkSize.pl toolbin/localcluster/clustermonitor.pl toolbin/localcluster/clustermaster.pl toolbin/localcluster/build.pl toolbin/localcluster/run.pl]

      @@ -24365,7 +41481,11 @@ 2010-12-04T21:12:37.349224Z Michael Vrhel

      -Fix for bug 691724.  The issue was due to a bug in the code that creates equivalent ICC profiles from CIEABC types.  This has a pile of progressions in the cluster data base.  I stepped through them with bmpcmp and they appeared to be correct to me.  I also altered the DefaultRGB PS color space to by in-sync with the D50 ICC sRGB based default that we are currently using.   
      +Fix for bug 691724. The issue was due to a bug in the code that creates +equivalent ICC profiles from CIEABC types. This has a pile of progressions +in the cluster data base. I stepped through them with bmpcmp and they +appeared to be correct to me. I also altered the DefaultRGB PS color space +to by in-sync with the D50 ICC sRGB based default that we are currently using.

      [base/gsicc_create.c Resource/ColorSpace/DefaultRGB]

      @@ -24441,7 +41561,14 @@ 2010-12-02T17:09:45.886919Z Michael Vrhel

      -Fix for bug 691803.  This provides a fix for cases where we have soft masks embedded within other soft masks.  Such rare cases are detected and when they occur and the soft mask type is luminosity, the alpha channel of the soft mask buffer is pre-blended with the luminosity data to give the proper mask values.  There appears to a be change in fts_33xx.xps from this commit.  However, it appears to me that this file was not being rendered properly, compared to the windows xps viewer, prior to the commit either.  I will file a bug related to this issue.
      +Fix for bug 691803. This provides a fix for cases where we have soft masks +embedded within other soft masks. Such rare cases are detected and when they +occur and the soft mask type is luminosity, the alpha channel of the soft +mask buffer is pre-blended with the luminosity data to give the proper mask +values. There appears to a be change in fts_33xx.xps from this commit. +However, it appears to me that this file was not being rendered properly, +compared to the windows xps viewer, prior to the commit either. I will file +a bug related to this issue.

      [base/gdevp14.c base/gdevp14.h base/gxblend.c base/gxblend.h]

      @@ -24472,9 +41599,14 @@ 2010-12-01T05:16:55.267986Z Michael Vrhel

      -Fix so that the blend compositor actions are only removed from the clist compositor queue if they are completely over-ridden by a subsequent compositor action.  Previously no check was made to see that the same settings were being up-dated by the new action.
      -
      -This fixes two P1 customer bugs and has several progressions in the test suite but one file Bug691783.pdf has both regressions and progressions.  I will get the page 18 regressions into a bug.
      +Fix so that the blend compositor actions are only removed from the clist +compositor queue if they are completely over-ridden by a subsequent compositor +action. Previously no check was made to see that the same settings were being +up-dated by the new action. + +This fixes two P1 customer bugs and has several progressions in the test suite +but one file Bug691783.pdf has both regressions and progressions. I will get +the page 18 regressions into a bug.

      [base/gdevp14.c base/gxclimag.c base/gxcldev.h]

      @@ -24482,7 +41614,11 @@ 2010-11-29T21:12:32.441057Z regression

      -Additonal improvement in the cluster's ability to be able to recover from machines going down late in the run.  Machines are put into a standby state when there are no jobs left to send and they have processed all of their jobs until all machines are in the standby state, then all the machines are released from standby and can upload their logs
      +Additonal improvement in the cluster's ability to be able to recover from
      +machines going down late in the run.  Machines are put into a standby state
      +when there are no jobs left to send and they have processed all of their jobs
      +until all machines are in the standby state, then all the machines are released
      +from standby and can upload their logs
       

      [toolbin/localcluster/clustermaster.pl toolbin/localcluster/run.pl]

      @@ -24491,7 +41627,11 @@ 2010-11-29T18:55:03.883221Z Michael Vrhel

      -Fix for issues with the default ICC directory.  The PS interpreter now checks if the default name is OK before setting to LIBPATH/iccprofiles .  Also, the current name is first tested before we prepend with the directory name, to avoid doing double applications of the profile directory.  Thanks to Ray for the fixes in gs_lev2.ps
      +Fix for issues with the default ICC directory. The PS interpreter now checks +if the default name is OK before setting to LIBPATH/iccprofiles . Also, the +current name is first tested before we prepend with the directory name, to avoid +doing double applications of the profile directory. Thanks to Ray for the fixes +in gs_lev2.ps

      [base/gsicc_manage.c Resource/Init/gs_lev2.ps]

      @@ -24499,7 +41639,12 @@ 2010-11-29T18:30:38.060525Z Michael Vrhel

      -Fix for bug 691748.  The idle optimizations for the softmask are not really valid since we have since created the proper bounding box for the soft mask in a previous commit.  In the cluster push testing, some files came back as having problems with the psdcmyk device.  Checking, it appears that these issues are not related to this fix but are another bug.  I am working on this now and will submit a bug.
      +Fix for bug 691748. The idle optimizations for the softmask are not +really valid since we have since created the proper bounding box for +the soft mask in a previous commit. In the cluster push testing, some +files came back as having problems with the psdcmyk device. Checking, +it appears that these issues are not related to this fix but are another +bug. I am working on this now and will submit a bug.

      [base/gdevp14.c]

      @@ -24642,7 +41787,20 @@ 2010-11-24T17:44:39.808162Z Michael Vrhel

      -Fix so that we handle the \B command properly when we have transparency.  The stroke should be drawn in a knock-out fashion rather than blended with the fill.  This was achieved by adding in the push of a knockout transparency group for the stroke operation.  The opacity for that group had to be 1 rather than what ever the current graphic state was (otherwise you end up with the opacity applied twice).  That change revealed an issue in the clist when a transparency group is pushed where the opacity for the pdf14 clist device was being altered without having the information passed into the clist.  Fixing that required a few changes to make sure that the blend parameter changes for the transparency group end up written in the same bands as the group push rather than all bands like the normal blend parameter change compositor action does.  A few changes were needed in the clist compositor writing code to make sure that this special blend parameter change did not push a new cropping item on the cropping stack.  This commit results in a lot of progressions.  However, the cluster push revealed a couple files fts_06_0608.pdf.pdf.ppmraw for example, which may have an issue.  These are being checked and if found to be an issue a new bug report will be filed.
      +Fix so that we handle the \B command properly when we have transparency. The stroke +should be drawn in a knock-out fashion rather than blended with the fill. This was +achieved by adding in the push of a knockout transparency group for the stroke operation. +The opacity for that group had to be 1 rather than what ever the current graphic state was +(otherwise you end up with the opacity applied twice). That change revealed an issue in the +clist when a transparency group is pushed where the opacity for the pdf14 clist device was +being altered without having the information passed into the clist. Fixing that required a +few changes to make sure that the blend parameter changes for the transparency group end up +written in the same bands as the group push rather than all bands like the normal blend parameter +change compositor action does. A few changes were needed in the clist compositor writing code to +make sure that this special blend parameter change did not push a new cropping item on the cropping +stack. This commit results in a lot of progressions. However, the cluster push revealed a couple +files fts_06_0608.pdf.pdf.ppmraw for example, which may have an issue. These are being checked and +if found to be an issue a new bug report will be filed.

      [Resource/Init/pdf_ops.ps base/gdevp14.c base/gxclimag.c base/gxblend.c base/gstrans.h base/gxblend.h]

      @@ -24848,7 +42006,20 @@ 2010-11-16T14:48:31.620067Z Michael Vrhel

      -Fix so that the initial gray color spaces in the graphic state are properly color managed. Previously, if we immediately started drawing in the document with a gray color space, the initial un-managed color space in the graphic state was used and this was not associated with the specified gray source profile.  With this fix we initialize the stroking and filling color spaces to be ICC color spaces associated with the profile for default_gray in the icc manager.  Also a fix for an issue in littleCMS.  When merging profiles, littleCMS will often do an optimization where it approximates 1-D LUTs with an exponent operation for use during merging and interpolation of the profile structures.  If the curve is very steep, as in like a step function, it should not do this approximation.  This was an issue when we had profiles that provided thresholding operations with their 1-D LUTs.   I spoke with Marti about this issue a couple weeks ago.  This commit will create over 6000 differences in the regression test.   I reviewed many of these and they all are minor differences in gray colors as expected.  These are differences where we were drawing unmanaged colors.
      +Fix so that the initial gray color spaces in the graphic state are properly color +managed. Previously, if we immediately started drawing in the document with a gray +color space, the initial un-managed color space in the graphic state was used +and this was not associated with the specified gray source profile. With this +fix we initialize the stroking and filling color spaces to be ICC color spaces +associated with the profile for default_gray in the icc manager. Also a fix for +an issue in littleCMS. When merging profiles, littleCMS will often do an optimization +where it approximates 1-D LUTs with an exponent operation for use during merging and +interpolation of the profile structures. If the curve is very steep, as in like a step +function, it should not do this approximation. This was an issue when we had profiles +that provided thresholding operations with their 1-D LUTs. I spoke with Marti about +this issue a couple weeks ago. This commit will create over 6000 differences in the +regression test. I reviewed many of these and they all are minor differences in gray +colors as expected. These are differences where we were drawing unmanaged colors.

      [base/gsicc_manage.c psi/zusparam.c base/gsicc_manage.h lcms/src/cmsgmt.c]

      @@ -24957,7 +42128,11 @@ 2010-11-06T15:36:18.568592Z Michael Vrhel

      -Fix for a string handling bug that occurred when the device ICC profile name was smaller than the default device profile name.  Also, additional code to ensure that the ICC path and the device profile name are properly combined when needed.  Finally, if the device profile name is given as an absolute name the icc directory is not added to it.
      +Fix for a string handling bug that occurred when the device ICC profile name +was smaller than the default device profile name. Also, additional code to +ensure that the ICC path and the device profile name are properly combined +when needed. Finally, if the device profile name is given as an absolute +name the icc directory is not added to it.

      [base/lib.mak base/gsdparam.c base/gsicc_manage.c]

      @@ -24965,7 +42140,8 @@ 2010-11-05T22:12:05.617541Z Michael Vrhel

      -Fix so that when compositing with tags, the tos tag data has no effect on the nos tag data if the pixel alpha value is 0.  Fixes Bug 691752.
      +Fix so that when compositing with tags, the tos tag data has no effect on +the nos tag data if the pixel alpha value is 0. Fixes Bug 691752.

      [base/gxblend1.c]

      @@ -25001,7 +42177,8 @@ 2010-11-04T19:13:08.201769Z Michael Vrhel

      -Increase in curve size to enable sharper cut offs (i.e. no interpolation of curve points) for thresholding profiles.  
      +Increase in curve size to enable sharper cut offs (i.e. no interpolation of +curve points) for thresholding profiles.

      [toolbin/color/icc_creator/ICC_Creator/icc_create.cpp]

      @@ -25009,7 +42186,8 @@ 2010-11-03T20:44:07.993086Z Michael Vrhel

      -Fix to avoid potential crash instead of error if an improper file name is given for the device ICC profile.
      +Fix to avoid potential crash instead of error if an improper file name +is given for the device ICC profile.

      [base/gsicc_manage.c]

      @@ -25032,7 +42210,8 @@ 2010-11-01T23:59:27.933765Z Michael Vrhel

      -Performance fix so that the md5 code is not used to hash the rendering conditions for the icc link.  
      +Performance fix so that the md5 code is not used to hash the rendering +conditions for the icc link.

      [base/gsicc_cache.c base/gscms.h]

      @@ -25064,7 +42243,11 @@ 2010-10-29T23:40:30.279741Z Michael Vrhel

      -Fix so that the image clues array is dynamically allocate only when needed as opposed to being a static array in gx_image_enum.  clues is used only in the case of monochrome or indexed with bps <= 8 and masked images.  Another optimization to do is to make it allocate only 2 entries for the masked case rather than all 256.
      +Fix so that the image clues array is dynamically allocate only when needed +as opposed to being a static array in gx_image_enum. clues is used only +in the case of monochrome or indexed with bps <= 8 and masked images. +Another optimization to do is to make it allocate only 2 entries for the +masked case rather than all 256.

      [base/gxipixel.c base/gxidata.c base/gximage.h]

      @@ -25117,7 +42300,8 @@ 2010-10-28T20:41:14.761110Z Michael Vrhel

      -Addition in profile creation tool to create Gray ICC profiles with abrupt thresholds.   Needed for solution to bug 691737
      +Addition in profile creation tool to create Gray ICC profiles with +abrupt thresholds. Needed for solution to bug 691737

      [toolbin/color/icc_creator/ICC_Creator/icc_create.h toolbin/color/icc_creator/ICC_Creator/ICC_CreatorDlg.h toolbin/color/icc_creator/ICC_Creator/resource.h toolbin/color/icc_creator/ICC_Creator/ICC_Creator.rc toolbin/color/icc_creator/ICC_Creator/icc_create.cpp toolbin/color/icc_creator/ICC_Creator/ICC_CreatorDlg.cpp]

      @@ -25125,7 +42309,8 @@ 2010-10-28T19:57:51.569853Z Michael Vrhel

      -Fix for issues that arise when the embedded icc profile is the same as one of the default icc profiles and we are using pdfwrite.  This should fix 691731.
      +Fix for issues that arise when the embedded icc profile is the same as one +of the default icc profiles and we are using pdfwrite. This should fix 691731.

      [base/gsicc_create.c base/gsicc_manage.c base/gscms.h base/gsciemap.c]

      @@ -25175,7 +42360,14 @@ 2010-10-28T06:12:53.429268Z Michael Vrhel

      -Code to speed up cases where a file contains a lot of small images that are embedded in the clist as high level images.  Previously, for every high level image, the serialized ICC source data was read out of the clist at a different clist file location, which required a fseek, a fread and then another fseek.  This occurred even if all the images shared the same profile.  The cost of file i/o for this can become significant if we have a lot of images.  With this commit, the reading of the profile data is delayed and will only occur if a link using that profile does not already exist in the link cache.  
      +Code to speed up cases where a file contains a lot of small images that are +embedded in the clist as high level images. Previously, for every high level +image, the serialized ICC source data was read out of the clist at a different +clist file location, which required a fseek, a fread and then another fseek. +This occurred even if all the images shared the same profile. The cost of +file i/o for this can become significant if we have a lot of images. With +this commit, the reading of the profile data is delayed and will only occur +if a link using that profile does not already exist in the link cache.

      [base/gxclpath.c base/gxclimag.c base/gxclist.h base/gxclrast.c]

      @@ -25314,7 +42506,9 @@ 2010-10-26T18:50:49.267717Z Michael Vrhel

      -Fix so that wtsimidi device works again.   I had the device using the wrong structure for maintaining its device link that maps the contone RGB data to CMYK.
      +Fix so that wtsimidi device works again. I had the device using the wrong +structure for maintaining its device link that maps the contone RGB data to +CMYK.

      [base/gdevwts.c]

      @@ -26014,7 +43208,17 @@ 2010-10-12T05:52:16.851470Z Michael Vrhel

      -Fix for a large memory leak that can occur when a pattern cache entry is freed and a transparency buffer exists in the entry.  A problem was that the pdf14 device, which contains pointers to the buffer, had its close device procedure set to forward due to the device being set in a disabled state during pattern_paint_finish.  The close device proc for the pdf14 device contains the calls to actually free the buffers so this was not occurring (instead we were forwarding to another device).  In addition, the pdf14 device itself was not being destroyed.  With this commit, when the pattern entry is freed, the  pdf14 device is now closed, which frees the buffers, and the pdf14 device is properly reference count decremented to result in the device itself getting freed.  Regression run revealed no problems.
      +Fix for a large memory leak that can occur when a pattern cache entry +is freed and a transparency buffer exists in the entry. A problem was +that the pdf14 device, which contains pointers to the buffer, had its +close device procedure set to forward due to the device being set in a +disabled state during pattern_paint_finish. The close device proc for +the pdf14 device contains the calls to actually free the buffers so this +was not occurring (instead we were forwarding to another device). In addition, +the pdf14 device itself was not being destroyed. With this commit, when the +pattern entry is freed, the pdf14 device is now closed, which frees the buffers, +and the pdf14 device is properly reference count decremented to result in the +device itself getting freed. Regression run revealed no problems.

      [psi/zpcolor.c base/gxpcmap.c]

      @@ -26320,7 +43524,9 @@ 2010-10-05T20:18:10.046358Z Michael Vrhel

      -Fix for error in detecting the presence of a device profile set in the command line.  Unfortunately, the device was not being reset from the default profile based upon the setting.
      +Fix for error in detecting the presence of a device profile set in the +command line. Unfortunately, the device was not being reset from the +default profile based upon the setting.

      [base/gsicc_manage.c]

      @@ -26583,7 +43789,21 @@ 2010-09-23T19:45:27.249371Z Michael Vrhel

      -Fix so that objects tag information makes it through transparency rendering AND the clist.  An issue was that the pdf14 encode and decode procedures are used as opposed to the target device encode and decode procedures and it is through a value in the color index that we currently communicate the object type through the clist.  When we are in page rendering mode, it is easy to get the current object from mem->gs_lib_ctx->BITTAG, but this is not set correctly in clist rendering if for example a glyph is stored in the clist as a mask fill.  Instead the information about the object is extracted from the color index.  So, to make this work, we had to introduce an encode method for the pdf14 device that incorporates the tag information and also make sure that the bit depth for the pdf14 color info value is incremented appropriately so that the extra byte is stored and extracted from the clist.  The object type is then recovered during the pdf14 mark fill rect procedure.  This was tested with the updated bitrgbtags device using a custom file that has overlapping text, image and path objects with varying transparency amounts.   
      +Fix so that objects tag information makes it through transparency rendering +AND the clist. An issue was that the pdf14 encode and decode procedures are +used as opposed to the target device encode and decode procedures and it is +through a value in the color index that we currently communicate the object +type through the clist. When we are in page rendering mode, it is easy to +get the current object from mem->gs_lib_ctx->BITTAG, but this is not set +correctly in clist rendering if for example a glyph is stored in the clist as a +mask fill. Instead the information about the object is extracted from the color +index. So, to make this work, we had to introduce an encode method for the +pdf14 device that incorporates the tag information and also make sure that the bit +depth for the pdf14 color info value is incremented appropriately so that the extra +byte is stored and extracted from the clist. The object type is then recovered +during the pdf14 mark fill rect procedure. This was tested with the updated +bitrgbtags device using a custom file that has overlapping text, image and path +objects with varying transparency amounts.

      [base/gdevp14.c base/gsimage.c base/gsutil.h base/gstext.c base/gsdps1.c base/gdevbit.c base/gdevmem.c base/gxblend1.c base/gspaint.c base/gdevddrw.c base/gsutil.c base/gxclrast.c base/gxblend.h]

      @@ -26750,7 +43970,28 @@ 2010-09-17T05:40:48.428712Z Michael Vrhel

      -Addition of support to enable persistence of objects tag information through transparency rendering.    In the current code base, transparency blending erases all knowledge about the objects that were drawn and blended, setting the entire object to image type.   With this commit, the tag information is retained through blending by doing a bit-wise or of the tag values.  When a device supports tags, the pdf14 device will create an additional plane to maintain the tag data information.  Blending of the tag information occurs in pdf14_mark_fill_rectangle, pdf14_mark_fill_rectangle_ko_simple and pdf14_compose_group.   A new device procedure called put_image is added.  This is called by the pdf14_put_image operation, which enables the communication of the tag information to the target device.  pdf14_put_image will first attempt to pass the alpha channel and the image data not scaled by the alpha channel and the tag data to the target device.  The planar offset location of the alpha and tag data is communicated in the put_image procedure interface.  If the target device cannot handle this form of the data, it should return 0.  The pdf14_put_image operation will then blend the alpha data and attempt the put_image again but this time with an alpha offset of 0 to indicate that there is no alpha data.  Note that the alpha data remains valid for those devices that still want the alpha but also want to have the graphics library do a premultiplcation of the alpha with the data.  Details of this interface will be added to the documentation.  In addition, the bitrgbtags device is being updated to demonstrate the use of the put_image procedure.
      +Addition of support to enable persistence of objects tag information through +transparency rendering. In the current code base, transparency blending +erases all knowledge about the objects that were drawn and blended, setting +the entire object to image type. With this commit, the tag information is +retained through blending by doing a bit-wise or of the tag values. When a +evice supports tags, the pdf14 device will create an additional plane to +maintain the tag data information. Blending of the tag information occurs +in pdf14_mark_fill_rectangle, pdf14_mark_fill_rectangle_ko_simple and +pdf14_compose_group. A new device procedure called put_image is added. +This is called by the pdf14_put_image operation, which enables the communication +of the tag information to the target device. pdf14_put_image will first attempt +to pass the alpha channel and the image data not scaled by the alpha channel and +the tag data to the target device. The planar offset location of the alpha and +tag data is communicated in the put_image procedure interface. If the target +device cannot handle this form of the data, it should return 0. The +pdf14_put_image operation will then blend the alpha data and attempt the +put_image again but this time with an alpha offset of 0 to indicate that there +is no alpha data. Note that the alpha data remains valid for those devices that +still want the alpha but also want to have the graphics library do a premultiplcation +of the alpha with the data. Details of this interface will be added to the documentation. +In addition, the bitrgbtags device is being updated to demonstrate the use of the +put_image procedure.

      [base/gdevp14.c base/gxdevcli.h base/gxclist.c base/gdevp14.h base/gdevbbox.c cups/gdevcups.c base/gsovrc.c base/gxblend.c base/gxblend1.c base/gdevprn.c base/gsutil.c base/gxblend.h]

      @@ -26957,7 +44198,7 @@

      No recorded incompatible changes. -

      Changelog

      +

      Changelog

      2010-09-13T15:09:40.310889Z Chris Liddell

      @@ -27062,7 +44303,15 @@ 2010-09-08T23:20:36.969829Z Michael Vrhel

      -Fix to enable proper mask filling with patterns that have transparency.  Major change is in gdevp14.c where begin_type_image and mask_fill procedures now will (if we are filling with a pattern that has transparency) push a transparency group.  When we are finished processing the image, the group is popped which enables proper blending.  There remains an issue with a special file that Ken created when it is run in c-list mode.  A new bug will be opened for this issue.  Thanks to Ray for helping with this project and finding a bounding box issue in the creation of the transparency group during c-list reading.
      +Fix to enable proper mask filling with patterns that have transparency. +Major change is in gdevp14.c where begin_type_image and mask_fill procedures +now will (if we are filling with a pattern that has transparency) push a +transparency group. When we are finished processing the image, the group is +popped which enables proper blending. There remains an issue with a special +file that Ken created when it is run in c-list mode. A new bug will be opened +for this issue. Thanks to Ray for helping with this project and finding a +bounding box issue in the creation of the transparency group during c-list +reading.

      [base/gdevp14.c base/gxclimag.c base/gsptype1.c base/lib.mak base/gxpcmap.c base/gdevpdfb.c base/gsptype1.h base/gstrans.c base/gxpcolor.h base/gxblend1.c base/gxp1fill.c base/gxp1impl.h base/gdevpdfi.c]

      @@ -27347,7 +44596,13 @@ 2010-09-01T06:08:51.456140Z Michael Vrhel

      -Fix to avoid issues with subtractive monochrome devices when we have transparency.  The gray device pdf14 prototype is used in this case.  VERY limited testing indicates that this fixes a crash with the cups device with its default settings and gives proper rendering.  More complete testing is required to ensure that proper blending is being performed and to investigate the other process color models that the cups device supports (e.g. cmy).  
      +Fix to avoid issues with subtractive monochrome devices when we have +transparency. The gray device pdf14 prototype is used in this case. +VERY limited testing indicates that this fixes a crash with the cups +device with its default settings and gives proper rendering. More +complete testing is required to ensure that proper blending is being +performed and to investigate the other process color models that the +cups device supports (e.g. cmy).

      [base/gdevp14.c]

      @@ -27355,7 +44610,15 @@ 2010-08-31T23:21:15.562664Z Michael Vrhel

      -Revert back to having pdfwrite handle what to do with PS color spaces instead of using the V4 profile that gsicc_create generates.  Also, fix a few issues that existed with pdfwrites handling of those spaces, in particular adjustments are made for non D50 white points.  D50 is the required white point for the ICC profile.  About 189 pdfwrite test files will report differences.  I went through them with bmpcmp.    Since the profiles that were generated differ between gsicc_create and pdfwrite minor color differences exist.  In addition, there were some regressions that existed, which this revision will fix.  
      +Revert back to having pdfwrite handle what to do with PS color spaces +instead of using the V4 profile that gsicc_create generates. Also, fix a +few issues that existed with pdfwrites handling of those spaces, in particular +adjustments are made for non D50 white points. D50 is the required white point +for the ICC profile. About 189 pdfwrite test files will report differences. +I went through them with bmpcmp. Since the profiles that were generated +differ between gsicc_create and pdfwrite minor color differences exist. In +addition, there were some regressions that existed, which this revision will +fix.

      [psi/zcolor.c base/gdevpdfk.c psi/zimage.c base/gdevpdfc.c base/gsciemap.c]

      @@ -27722,7 +44985,8 @@ 2010-08-12T02:55:40.283339Z Michael Vrhel

      -Fix to handle case where the profiledir is NOT set AND there is a change in the process color model for the device AFTER a profile had already been set.  
      +Fix to handle case where the profiledir is NOT set AND there is a change in +the process color model for the device AFTER a profile had already been set.

      [base/gsicc_manage.c]

      @@ -27740,7 +45004,8 @@ 2010-08-11T23:31:48.385487Z Michael Vrhel

      -Fix for indeterminism issue that was introduced with changes in 16bit image handling.  Last subpixel element was not getting unpacked properly.  
      +Fix for indeterminism issue that was introduced with changes in 16bit image +handling. Last subpixel element was not getting unpacked properly.

      [base/gxi16bit.c]

      @@ -27772,7 +45037,13 @@ 2010-08-11T16:17:45.421152Z Henry Stiles

      -Fix bug # 691532.  Do not attempt to clone an image that does not exist, each completed page should have an associated image.  We'd like to handle this corrupt file with a better fix, for example the absence of an end page segement is clearly a problem with respect to the specification, but Adobe and Artifex have chosen to support other "off spec" streams so more subtle and less obvious error checking is needed.  Thanks to Tim Waugh for analysis on this problem.
      +Fix bug # 691532.  Do not attempt to clone an image that does not exist,
      +each completed page should have an associated image.  We'd like to handle
      +this corrupt file with a better fix, for example the absence of an end page
      +segement is clearly a problem with respect to the specification, but Adobe and
      +Artifex have chosen to support other "off spec" streams so more subtle
      +and less obvious error checking is needed.  Thanks to Tim Waugh for analysis on
      +this problem.
       

      [jbig2dec/jbig2_page.c]

      @@ -27813,7 +45084,11 @@ 2010-08-10T16:20:19.775613Z Michael Vrhel

      -Commit to move the ICC profile for the device within the device structure.  This will make it easier to handle dynamic changes that may occur to the process color model for the device.  Also a move of device profiles into non gc memory and removal of any references to profiles to the GC.    A few progressions occur with this commit including Bug689918.pdf testpage.pdf. 
      +Commit to move the ICC profile for the device within the device structure. +This will make it easier to handle dynamic changes that may occur to the +process color model for the device. Also a move of device profiles into non gc +memory and removal of any references to profiles to the GC. A few progressions +occur with this commit including Bug689918.pdf testpage.pdf.

      [base/gxi12bit.c base/gsdevice.c base/gdevpdfk.c base/gxpcmap.c base/gxdevice.h /trunk/ghostpdl/xps/xpsgradient.c base/gdevprn.c base/gdevpsdi.c base/gscsepr.c base/gscpixel.c base/gxcmap.c base/gdevbit.c base/gxclip.c base/gxicolor.c base/gximag3x.c base/gscspace.c base/gsicc.c base/gscdevn.c base/gscolor2.c base/lib.mak base/gxiscale.c base/gsicc_manage.c base/gxcspace.h base/gscicach.c base/gdevnfwd.c base/gxdevcli.h base/gdevp14.c psi/zdevice.c base/gsicc_create.c base/gsicc_cache.c base/gdevp14.h base/gsicc_cache.h base/gxccman.c base/gscms.h base/gxclist.h psi/zusparam.c base/gxshade.c base/gxblend.c base/gsequivc.c base/gsciemap.c]

      @@ -28342,9 +45617,17 @@
       Fix for bug 691488.
       
      -This commit fixes the issues that we are seeing with the JPEG2000 images in the FTS files EXCEPT for the issues related to SmaskInData.  Those images will be addressed in a separate commit and will now be handled in bug 691470.
      -
      -With this commit, support is in place for faster 16 bit image rendering due to the improved ICC support, which lets us avoid the multiple conversions from 16 bit to frac to float to unsigned short to byte which occurred in the old flow.  Also, the jasper interface will now, when it encounters a 16 bit or 12 bit image, use the higher bit depth renderer and pass the data along.  Previously, we were truncating to 8bits in our jasper interface.  These changes have been regression tested and checked with bmpcmp.
      +This commit fixes the issues that we are seeing with the JPEG2000 images in
      +the FTS files EXCEPT for the issues related to SmaskInData.  Those images
      +will be addressed in a separate commit and will now be handled in bug
      +691470.
      +With this commit, support is in place for faster 16 bit image rendering due
      +to the improved ICC support, which lets us avoid the multiple conversions from
      +16 bit to frac to float to unsigned short to byte which occurred in the old
      +flow.  Also, the jasper interface will now, when it encounters a 16 bit or
      +12 bit image, use the higher bit depth renderer and pass the data along.
      +Previously, we were truncating to 8bits in our jasper interface.  These
      +changes have been regression tested and checked with bmpcmp.
       
       
       
      @@ -28373,9 +45656,16 @@
       Fix for bug 691488.
       
      -This commit fixes the issues that we are seeing with the JPEG2000 images in the FTS files EXCEPT for the issues related to SmaskInData.  Those images will be addressed in a separate commit and will now be handled in bug 691470.
      -
      -With this commit, support is in place for faster 16 bit image rendering due to the improved ICC support, which lets us avoid the multiple conversions from 16 bit to frac to float to unsigned short to byte which occurred in the old flow.  Also, the jasper interface will now, when it encounters a 16 bit or 12 bit image, use the higher bit depth renderer and pass the data along.  Previously, we were truncating to 8bits in our jasper interface.  These changes have been regression tested and checked with bmpcmp.
      +This commit fixes the issues that we are seeing with the JPEG2000 images
      +in the FTS files EXCEPT for the issues related to SmaskInData.  Those images
      +will be addressed in a separate commit and will now be handled in bug 691470.
      +With this commit, support is in place for faster 16 bit image rendering due to
      +the improved ICC support, which lets us avoid the multiple conversions from 16
      +bit to frac to float to unsigned short to byte which occurred in the old flow.
      +Also, the jasper interface will now, when it encounters a 16 bit or 12 bit image,
      +use the higher bit depth renderer and pass the data along.  Previously, we were
      +truncating to 8bits in our jasper interface.  These changes have been regression
      +tested and checked with bmpcmp.
       
       
       
      @@ -28874,7 +46164,19 @@
       Fix for bug 691478
       
      -Note that string objects that are maintained as user params must be either allocated in non-gc memory or be a constant in the executable. The problem stems from the way userparams are retained during garbage collection in a param_list (collected by currentuserparams).  For some reason this param_list does not get the pointers to strings relocated during the GC. Note that the param_dict itself is correctly updated by reloc, it is just the pointers to the strings in the param_list that are not traced and updated. In this particular case, ICCProfilesDir sets a string in the icc_manager. When a reclaim occurs, the string is relocated (when in non-gc memory and when it is noted to the gc with the proper object descriptor).  Then if a set_icc_directory occurs, the user params pointer has NOT been updated and validation problems will occur.  Fix for this was to make the string not known to the GC and to allocate in non-gc memory.  When icc manager is deallocated, the string is also deallocated.
      +Note that string objects that are maintained as user params must be either +allocated in non-gc memory or be a constant in the executable. The problem stems +from the way userparams are retained during garbage collection in a param_list +(collected by currentuserparams). For some reason this param_list does not get +the pointers to strings relocated during the GC. Note that the param_dict itself +is correctly updated by reloc, it is just the pointers to the strings in the +param_list that are not traced and updated. In this particular case, ICCProfilesDir +sets a string in the icc_manager. When a reclaim occurs, the string is relocated +(when in non-gc memory and when it is noted to the gc with the proper object +descriptor). Then if a set_icc_directory occurs, the user params pointer has NOT +been updated and validation problems will occur. Fix for this was to make the string +not known to the GC and to allocate in non-gc memory. When icc manager is deallocated, +the string is also deallocated.

      [base/gsicc_manage.c psi/zusparam.c]

      @@ -28882,7 +46184,10 @@ 2010-07-21T00:03:16.900862Z Michael Vrhel

      -Fix so that non-isolated transparency groups are rendered correctly.  This fixes a rendering issue with fts_25_2524 and with a few in the test suite.  A future optimization will be to avoid the extra buffer push if the blend mode is normal, since in that case we can draw directly into the parent buffer.
      +Fix so that non-isolated transparency groups are rendered correctly. This fixes a +rendering issue with fts_25_2524 and with a few in the test suite. A future optimization +will be to avoid the extra buffer push if the blend mode is normal, since in that case we +can draw directly into the parent buffer.

      [base/gdevp14.c]

      @@ -28967,7 +46272,8 @@ 2010-07-20T05:56:04.938511Z Michael Vrhel

      -Remove noisy warnings if embedded icc profile is not valid.  In those cases, we use the default and move on.  
      +Remove noisy warnings if embedded icc profile is not valid. In those +cases, we use the default and move on.

      [psi/zicc.c]

      @@ -28975,7 +46281,12 @@ 2010-07-19T21:22:35.957060Z Michael Vrhel

      -Fix for Bug691474.  Source of error was due to icc hash code being read from clist after the transfer function.  It should have been read prior to the transfer function.  This was the first file we have seen that had a soft mask with a transfer function.  Also fix for rendering of this file.  The softmasks only uses the alpha channel as opposed to the luminosity of the object.  Progression with CityMap-evnice.pdf in test suite.  That file must have a alpha style softmask.
      +Fix for Bug691474. Source of error was due to icc hash code being read from clist +after the transfer function. It should have been read prior to the transfer function. +This was the first file we have seen that had a soft mask with a transfer function. +Also fix for rendering of this file. The softmasks only uses the alpha channel as +opposed to the luminosity of the object. Progression with CityMap-evnice.pdf in test +suite. That file must have a alpha style softmask.

      [base/gdevp14.c base/gstparam.h]

      @@ -29064,7 +46375,14 @@ 2010-07-16T19:58:03.971410Z Michael Vrhel

      -Prepend icc directory to device profile name if the default name is used so that we have it during clist reading.  This is a fix for the iccprofiles/ problem in 691408 when compile inits is not used.  Also,  fix so that the profile name is allocated in non-gc memory.  This was a source of issues with the userparams dict not seeming to be traced or at least not getting its members relocated if a profile in the icc manager was relocated.  This fixes the breaking of the psdcmyk device in rev  11499.  Also removal of spurious warning messages.
      +Prepend icc directory to device profile name if the default name is +used so that we have it during clist reading. This is a fix for the +iccprofiles/ problem in 691408 when compile inits is not used. Also, +fix so that the profile name is allocated in non-gc memory. This was +a source of issues with the userparams dict not seeming to be traced +or at least not getting its members relocated if a profile in the icc +manager was relocated. This fixes the breaking of the psdcmyk device +in rev 11499. Also removal of spurious warning messages.

      [base/gsicc_manage.c]

      @@ -29135,7 +46453,8 @@ 2010-07-14T21:25:33.726848Z Till Kamppeter

      -Allow the CUPS Raster backend alternatively output compressed (version 2) CUPS Raster data (bug #689885).
      +Allow the CUPS Raster backend alternatively output compressed (version 2)
      +CUPS Raster data (bug #689885).
       

      [cups/gdevcups.c]

      @@ -29144,7 +46463,9 @@ 2010-07-13T18:30:29.088597Z Chris Liddell

      -Ensure the local variable into which we read Truetype cmap table data (platform ID, encoding ID etc) is actually large enough to hold all the data we read into it.
      +Ensure the local variable into which we read Truetype cmap table data
      +(platform ID, encoding ID etc) is actually large enough to hold all
      +the data we read into it.
       
       Bug 691452 (part 1)
       
      @@ -29169,7 +46490,12 @@
       2010-07-13T07:04:59.625768Z Michael Vrhel

      -Fix for Bug 691444.  Issue was introduced when interpolation max output range was set to be 65535 so that the output could be fed directly into CMM. Problem was for HT output devices like pbmraw the interpolation filter ignored the max range setting and used a max value of the frac range as output.  This fixes a number of files that had regressions.  Files checked with bmpcmp.
      +Fix for Bug 691444. Issue was introduced when interpolation max output range +was set to be 65535 so that the output could be fed directly into CMM. +Problem was for HT output devices like pbmraw the interpolation filter +ignored the max range setting and used a max value of the frac range as +output. This fixes a number of files that had regressions. Files checked +with bmpcmp.

      [base/sidscale.c]

      @@ -29177,7 +46503,9 @@ 2010-07-13T01:20:10.578834Z Michael Vrhel

      -Fix for bug 691445.  pdf14 mapping procs were not paying attention to the trans device in the imager state.  bmpcmp showed that this fixed several files.
      +Fix for bug 691445. pdf14 mapping procs were not paying attention to the +trans device in the imager state. bmpcmp showed that this fixed several +files.

      [base/gdevp14.c]

      @@ -29185,7 +46513,8 @@ 2010-07-12T15:03:57.186505Z Chris Liddell

      -In the event the FAPI code has to replace the FontBBox array, make sure the new array is marked executable.
      +In the event the FAPI code has to replace the FontBBox array, make sure the new
      +array is marked executable.
       
       No cluster differences expected.

      [psi/zfapi.c]

      @@ -29195,7 +46524,14 @@ 2010-07-11T15:26:14.804339Z Michael Vrhel

      -Fix for overprint regressions introduced with icc branch merge.  Review of bmp compares reveals that this fixes a number of issues hence the large number of differences with the commit.  There is one regression introduced with this commit, which is IA3Z0302.pdf.pdf.pkmraw.300 page 2 a bug will be opened for this.   Also, review of Atona_Technical_1v1_x3.pdf.pam.72 reveals there some overprint issues may still exist with bitmap and halftone image overprinting on top of spotcolors when Overprint is true and and Overprint mode is set to On.  This issue may have existed prior to the icc commit.  Will open a bug to investigate.
      +Fix for overprint regressions introduced with icc branch merge. Review of bmp +compares reveals that this fixes a number of issues hence the large number of +differences with the commit. There is one regression introduced with this commit, +which is IA3Z0302.pdf.pdf.pkmraw.300 page 2 a bug will be opened for this. Also, +review of Atona_Technical_1v1_x3.pdf.pam.72 reveals there some overprint issues may +still exist with bitmap and halftone image overprinting on top of spotcolors when +Overprint is true and and Overprint mode is set to On. This issue may have existed +prior to the icc commit. Will open a bug to investigate.

      [base/gsicc_create.c base/gxcspace.h base/gscspace.c base/gsicc.c]

      @@ -29435,7 +46771,10 @@ 2010-07-05T01:23:43.139942Z Hin-Tak Leung

      -test for emptiness of HAVE_FONTCONFIG is better than non-yes-ness of enable_fontconfig; fine-tuning of r11448 to --disable-cairo when fontconfig is not available or user-disabled
      +test for emptiness of HAVE_FONTCONFIG is better than non-yes-ness of +enable_fontconfig; +fine-tuning of r11448 to --disable-cairo when fontconfig is not available or +user-disabled

      [base/configure.ac]

      @@ -29443,7 +46782,8 @@ 2010-07-05T01:18:30.861454Z Hin-Tak Leung

      -new/renamed documentation file libpng-1.2.44.txt missed in r11482 for libpng 1.2.42->1.2.44 upgrade
      +new/renamed documentation file libpng-1.2.44.txt missed in r11482 for +libpng 1.2.42->1.2.44 upgrade

      [libpng/libpng-1.2.44.txt]

      @@ -29452,7 +46792,9 @@
       Reaplly Hin-Tak's patch, rev. 11453, which was rolled back by the rev. 11462.
      -Apply diff between stock 1.2.42 <-> 1.2.44 to upgrade to libpng 1.2.44 - bug
      +
      +Apply diff between stock 1.2.42 <-> 1.2.44 to upgrade to libpng 1.2.44
      +- bug
       fixes - CVE-2010-1205. Bug 691438.
       

      [libpng/pngrtran.c libpng/scripts/makefile.gcmmx libpng/contrib/pngminim/encoder/gather.sh libpng/scripts/makefile.sgi libpng/scripts/makefile.sco libpng/scripts/makefile.hpgcc libpng/KNOWNBUG libpng/projects/xcode/libpng.xcodeproj/project.pbxproj libpng/scripts/pngos2.def libpng/scripts/makefile.nommx libpng/scripts/makefile.linux libpng/pngmem.c libpng/png.c libpng/contrib/pngminim/decoder/gather.sh libpng/scripts/makefile.64sunu libpng/scripts/makefile.elf libpng/scripts/libpng-config-head.in libpng/png.h libpng/CMakeLists.txt libpng/pngrio.c libpng/pngpread.c libpng/Y2KINFO libpng/scripts/makefile.netbsd libpng/pngwio.c libpng/pngrutil.c libpng/scripts/makefile.hpux libpng/scripts/makefile.darwin libpng/scripts/makefile.sggcc libpng/README libpng/contrib/pngminim/decoder/makefile libpng/scripts/makefile.32sunu libpng/libpngpf.3 libpng/scripts/makefile.solaris-x86 libpng/libpng-1.2.42.txt libpng/contrib/pngminim/preader/makefile libpng/scripts/makefile.solaris libpng/pngwtran.c libpng/contrib/pngminim/preader/gather.sh libpng/scripts/makefile.mingw libpng/scripts/makefile.aix libpng/scripts/makefile.hp64 libpng/scripts/png32ce.def libpng/scripts/makefile.beos libpng/scripts/makefile.ne12bsd libpng/pngread.c libpng/scripts/pngw32.def libpng/pngget.c libpng/INSTALL libpng/scripts/makefile.cegcc libpng/CHANGES libpng/contrib/pngminim/encoder/makefile libpng/projects/wince.txt libpng/libpng.3 libpng/example.c libpng/scripts/makefile.so9 libpng/pngwrite.c libpng/pngconf.h libpng/pngset.c libpng/LICENSE libpng/png.5 libpng/pngwutil.c libpng/scripts/makefile.openbsd libpng/scripts/makefile.dec libpng/scripts/README.txt libpng/scripts/makefile.cygwin libpng/pngtest.c libpng/ANNOUNCE libpng/scripts/libpng.pc.in]

      @@ -29462,7 +46804,8 @@ 2010-07-03T00:29:40.754683Z Hin-Tak Leung

      -missed linker defines needed to build under 64-bit windows in a previous commit r11388 for bug 691302
      +missed linker defines needed to build under 64-bit windows in a +previous commit r11388 for bug 691302

      [psi/msvc32.mak]

      @@ -29508,7 +46851,12 @@ 2010-07-01T17:14:23.564053Z Michael Vrhel

      -Fix for Bug 691431.  This was caused by a PS CIE color space being used for a transparency group color space.  That really should not be allowed since those color spaces are unidirectional.  They are installed though when -dUseCIEColor is used with a PDF file that has transparency. Solution is to use the default ICC profiles for the group color space when this occurs.
      +Fix for Bug 691431. This was caused by a PS CIE color space being +used for a transparency group color space. That really should not +be allowed since those color spaces are unidirectional. They are +installed though when -dUseCIEColor is used with a PDF file that has +transparency. Solution is to use the default ICC profiles for the group +color space when this occurs.

      [base/gstrans.c]

      @@ -29567,7 +46915,8 @@ 2010-06-30T23:34:11.835858Z Hin-Tak Leung

      -security patch from Werner Fink, to disable loading init files from group/world-writable directories - bug 691350
      +security patch from Werner Fink, to disable loading init files from +group/world-writable directories - bug 691350

      [psi/zfile.c]

      @@ -29575,9 +46924,8 @@ 2010-06-30T22:12:02.295636Z Michael Vrhel

      -Initialize profile member variables that are part of serialization.  Fix for Bug 691433
      -
      -
      +Initialize profile member variables that are part of serialization.
      +Fix for Bug 691433
       

      [base/gsicc_manage.c]

      @@ -29604,7 +46952,9 @@ 2010-06-29T07:08:29.009258Z Hin-Tak Leung

      -more cygwin/mingw-related patches from Jan Nieuwenhuizen (lilypond/gub) ; this one depends on features of GNU make, so it is added as comments to avoid breaking build with non-GNU make
      +more cygwin/mingw-related patches from Jan Nieuwenhuizen (lilypond/gub) ; this +one depends on features of GNU make, so it is added as comments to avoid +breaking build with non-GNU make

      [base/unix-dll.mak]

      @@ -29612,7 +46962,8 @@ 2010-06-29T07:05:45.877229Z Hin-Tak Leung

      -avoid re-define _Windows if it is already defined; one of the cygwin/mingw-related patches from Jan Nieuwenhuizen (lilypond/gub)
      +avoid re-define _Windows if it is already defined; one of the cygwin/mingw-related +patches from Jan Nieuwenhuizen (lilypond/gub)

      [base/gs_dll_call.h]

      @@ -29620,7 +46971,9 @@ 2010-06-29T07:04:25.796552Z Hin-Tak Leung

      -cygwin is one platform which uses the unix file name interface but is sensitive to binary/text mode; one of the cygwin/mingw-related patches from Jan Nieuwenhuizen (lilypond/gub)
      +cygwin is one platform which uses the unix file name interface but is +sensitive to binary/text mode; one of the cygwin/mingw-related patches from +Jan Nieuwenhuizen (lilypond/gub)

      [base/gp_unifn.c]

      @@ -29645,7 +46998,8 @@ 2010-06-29T06:05:26.121392Z Hin-Tak Leung

      -updating jpeg config.sub config.guess to that from libpng 1.2.44; bug 690486
      +updating jpeg config.sub config.guess to that from +libpng 1.2.44; bug 690486

      [jpeg/config.guess jpeg/config.sub]

      @@ -29653,7 +47007,8 @@ 2010-06-29T05:30:19.407679Z Hin-Tak Leung

      -apply diff between stock 1.2.42 <-> 1.2.44 to upgrade to libpng 1.2.44 - bug fixes - CVE-2010-1205
      +apply diff between stock 1.2.42 <-> 1.2.44 to upgrade to +libpng 1.2.44 - bug fixes - CVE-2010-1205

      [libpng/pngrtran.c libpng/scripts/makefile.gcmmx libpng/contrib/pngminim/encoder/gather.sh libpng/scripts/makefile.sgi libpng/scripts/makefile.sco libpng/scripts/makefile.hpgcc libpng/KNOWNBUG libpng/projects/xcode/libpng.xcodeproj/project.pbxproj libpng/scripts/pngos2.def libpng/scripts/makefile.nommx libpng/scripts/makefile.linux libpng/pngmem.c libpng/png.c libpng/contrib/pngminim/decoder/gather.sh libpng/scripts/makefile.64sunu libpng/scripts/makefile.elf libpng/scripts/libpng-config-head.in libpng/png.h libpng/CMakeLists.txt libpng/pngrio.c libpng/pngpread.c libpng/Y2KINFO libpng/scripts/makefile.netbsd libpng/pngwio.c libpng/pngrutil.c libpng/scripts/makefile.hpux libpng/scripts/makefile.darwin libpng/scripts/makefile.sggcc libpng/README libpng/contrib/pngminim/decoder/makefile libpng/scripts/makefile.32sunu libpng/libpngpf.3 libpng/scripts/makefile.solaris-x86 libpng/libpng-1.2.42.txt libpng/libpng-1.2.44.txt libpng/contrib/pngminim/preader/makefile libpng/scripts/makefile.solaris libpng/pngwtran.c libpng/contrib/pngminim/preader/gather.sh libpng/scripts/makefile.mingw libpng/scripts/makefile.aix libpng/scripts/makefile.hp64 libpng/scripts/png32ce.def libpng/scripts/makefile.beos libpng/scripts/makefile.ne12bsd libpng/pngread.c libpng/scripts/pngw32.def libpng/pngget.c libpng/INSTALL libpng/scripts/makefile.cegcc libpng/CHANGES libpng/contrib/pngminim/encoder/makefile libpng/libpng.3 libpng/projects/wince.txt libpng/example.c libpng/scripts/makefile.so9 libpng/pngwrite.c libpng/pngconf.h libpng/pngset.c libpng/LICENSE libpng/png.5 libpng/pngwutil.c libpng/scripts/makefile.openbsd libpng/scripts/makefile.dec libpng/scripts/README.txt libpng/scripts/makefile.cygwin libpng/pngtest.c libpng/ANNOUNCE libpng/scripts/libpng.pc.in]

      @@ -29661,7 +47016,8 @@ 2010-06-29T05:25:07.282125Z Hin-Tak Leung

      -change documentation as --enable-dynamics is no longer required for "make so" to work
      +change documentation as --enable-dynamics is no longer required +for "make so" to work

      [doc/Make.htm]

      @@ -29669,7 +47025,8 @@ 2010-06-29T05:20:09.043972Z Hin-Tak Leung

      -split lcms code build into arch-specific targets; try to make both windows inline assembly and unix "make so" work simultaneously; bug 691427
      +split lcms code build into arch-specific targets; try to make both windows +inline assembly and unix "make so" work simultaneously; bug 691427

      [base/watclib.mak base/lib.mak base/bcwin32.mak base/openvms.mak base/ugcclib.mak base/macosx.mak base/watcw32.mak base/Makefile.in base/unix-gcc.mak base/unixansi.mak psi/msvc32.mak base/macos-mcp.mak base/msvclib.mak]

      @@ -29677,7 +47034,9 @@ 2010-06-29T05:16:38.524502Z Hin-Tak Leung

      -move the DYNAMIC_* defines out of the --enable-dynamic condition so that it applies generally; try to "make so" work with just ./configure ; many bugs ask for make so to work
      +move the DYNAMIC_* defines out of the --enable-dynamic condition so that it +applies generally; try to "make so" work with just +./configure ; many bugs ask for make so to work

      [base/configure.ac]

      @@ -29685,7 +47044,9 @@ 2010-06-29T04:34:10.440639Z Hin-Tak Leung

      -switch autoconf png test away from testing for a soon-to-be-obsolete routine to one we actually use, to smooth over the libpng 1.2.x to 1.4.x transition; bug 691111
      +switch autoconf png test away from testing for a soon-to-be-obsolete routine +to one we actually use, to smooth over the libpng 1.2.x to 1.4.x +transition; bug 691111

      [jbig2dec/configure.ac base/configure.ac]

      @@ -29785,7 +47146,11 @@ 2010-06-28T05:16:59.820980Z Michael Vrhel

      -Interface with lcms so that the memory allocators make use of ghostscript's allocator.  This required fixing a few bugs in littlecms where he was using free instead of _cmsFree and also having lcms.h provide the prototypes if the external mem alloc is defined.  Performed cluster push with no problem.  Thanks to Henry for helping me track down a 64 bit issue.
      +Interface with lcms so that the memory allocators make use of ghostscript's +allocator. This required fixing a few bugs in littlecms where he was using +free instead of _cmsFree and also having lcms.h provide the prototypes if the +external mem alloc is defined. Performed cluster push with no problem. Thanks +to Henry for helping me track down a 64 bit issue.

      [lcms/include/lcms.h base/lib.mak lcms/src/cmslut.c base/lcms.mak lcms/src/cmsio1.c base/gsicc_littlecms.c]

      @@ -29817,9 +47182,13 @@ 2010-06-25T12:00:50.643763Z Chris Liddell

      -Provide more robust behaviour when FT fails to render a glyph. Inistead of silently continuing when FT errors on a glyph, we'll now attempt to use the notdef, if the notdef triggers an error, we signal the error to the GS world. This ensures that any time we expect processing to continue there is valid glyph information available to the cache and other downstream devices.
      -
      -This causes one regression difference with 34_all.PS, where an extra TTF notdef is rendered.
      +Provide more robust behaviour when FT fails to render a glyph. Inistead
      +of silently continuing when FT errors on a glyph, we'll now attempt to use
      +the notdef, if the notdef triggers an error, we signal the error to the GS
      +world. This ensures that any time we expect processing to continue there is
      +valid glyph information available to the cache and other downstream devices.
      +This causes one regression difference with 34_all.PS, where an extra TTF
      +notdef is rendered.
       
       Bug 691416

      [psi/fapi_ft.c]

      @@ -29863,7 +47232,8 @@ 2010-06-23T14:33:08.852324Z Michael Vrhel

      -Fix for bug691415.  When equivalent ICC profile is already created we should just use it.  Thanks to Ken for getting the details together.
      +Fix for bug691415. When equivalent ICC profile is already created we +should just use it. Thanks to Ken for getting the details together.

      [base/gscsepr.c]

      @@ -29873,9 +47243,19 @@
       Fix for 691359. Problem tracked down by Alex.
       
      -What lcms is trying to do is to figure out the best prelinearization for the incoming data prior to doing the CLUT interpolation.  In the case when the input is RGB based and the output Gray, lcms was using uninitialized data in constructing is prelinearization.
      -
      -Tangentially related, there could still be problems with what lcms is doing here if the number of Input channels is 1 and the number of Output channels is 3.  In that case, it is possible (but not likely) that I could have radically different gamma behavior in each of the RGB channels.  Trans in such a case would be constructed based upon only one curve based on the red channel.   In the real world, this is probably not a problem but ideally it would be optimal to use something that provides the best prelinearization in all three channels.  That is an optimization for Marti to do and perhaps is already in lcms2.
      +What lcms is trying to do is to figure out the best prelinearization +for the incoming data prior to doing the CLUT interpolation. In the +case when the input is RGB based and the output Gray, lcms was using +uninitialized data in constructing is prelinearization. +Tangentially related, there could still be problems with what lcms is +doing here if the number of Input channels is 1 and the number of Output +channels is 3. In that case, it is possible (but not likely) that I could +have radically different gamma behavior in each of the RGB channels. Trans +in such a case would be constructed based upon only one curve based on the +red channel. In the real world, this is probably not a problem but ideally +it would be optimal to use something that provides the best prelinearization +in all three channels. That is an optimization for Marti to do and perhaps +is already in lcms2.

      [lcms/src/cmsgmt.c]

      @@ -29970,7 +47350,8 @@ 2010-06-21T01:14:18.832712Z Hin-Tak Leung

      -auto-detect host as *BSD and use a differently named obj directory; no effect on non-*BSDs. fixes bug 687214
      +auto-detect host as *BSD and use a differently named obj directory; +no effect on non-*BSDs. fixes bug 687214

      [base/Makefile.in base/configure.ac]

      @@ -30002,7 +47383,9 @@ 2010-06-20T23:38:47.757390Z Hin-Tak Leung

      -borland build fix (bug 691400): borland defines P_tmpdir but not _P_tmpdir; similiar difference between borlandc and msvc has been seen with setmode/_setmode in the ijs code in ijs/ijs_server.c
      +borland build fix (bug 691400): borland defines P_tmpdir but not +_P_tmpdir; similiar difference between borlandc and msvc has been +seen with setmode/_setmode in the ijs code in ijs/ijs_server.c

      [jasper/src/libjasper/base/jas_stream.c]

      @@ -30010,7 +47393,8 @@ 2010-06-20T23:32:24.162240Z Hin-Tak Leung

      -borland build fix (bug 691400): update and complete documentation on working around for too-many-warnings-equal-error problem of borland c++
      +borland build fix (bug 691400): update and complete documentation on +working around for too-many-warnings-equal-error problem of borland c++

      [doc/Make.htm]

      @@ -30018,7 +47402,8 @@ 2010-06-20T23:29:34.775566Z Hin-Tak Leung

      -borland fix (bug 691400): Borland c++ does not support c99 LL nor ULL, but use i64/ui64 like MSVC for 64-bit integer literals
      +borland fix (bug 691400): Borland c++ does not support c99 LL nor +ULL, but use i64/ui64 like MSVC for 64-bit integer literals

      [base/sha2.c]

      @@ -30050,7 +47435,10 @@ 2010-06-20T22:57:32.647408Z Hin-Tak Leung

      -defines a unix target, since win32 requires specific compiler flags; HP-UX make/MS nmake both issues a warning and borland make issues an error for duplicate targets; fixes bug 691337, and also part of the problems with borland build (bug 691400)
      +defines a unix target, since win32 requires specific compiler flags; +HP-UX make/MS nmake both issues a warning and borland make issues an +error for duplicate targets; fixes bug 691337, and also part of the +problems with borland build (bug 691400)

      [base/libtiff.mak]

      @@ -30078,7 +47466,8 @@ 2010-06-18T23:59:23.662717Z Michael Vrhel

      -Fix so that when the CIE color spaces are released, the icc equivalent space is also rc decremented as is the profile.
      +Fix so that when the CIE color spaces are released, the icc equivalent +space is also rc decremented as is the profile.

      [base/gscscie.c]

      @@ -30105,7 +47494,8 @@ 2010-06-17T20:23:33.279930Z Hin-Tak Leung

      -adjust self-reference of bswin32.mak to correct location. Part 1 of fix to bug 691400
      +adjust self-reference of bswin32.mak to correct location. +Part 1 of fix to bug 691400

      [base/bcwin32.mak]

      @@ -30113,7 +47503,8 @@ 2010-06-17T20:03:30.325885Z Hin-Tak Leung

      -mentioning -P-/-P and further reference to the INITIALIZATION FILES and Use.htm in the man page. bug 691350
      +mentioning -P-/-P and further reference to the INITIALIZATION FILES and +Use.htm in the man page. bug 691350

      [man/gs.1]

      @@ -30129,7 +47520,8 @@ 2010-06-17T19:38:39.362075Z Hin-Tak Leung

      -split make_filelist functionality out of setupgs, to allow UAC restriction during packaging of the installer. Bug 691302
      +split make_filelist functionality out of setupgs, to allow UAC restriction +during packaging of the installer. Bug 691302

      [psi/dwsetup.cpp psi/winint.mak psi/msvc32.mak psi/mkfilelt.cpp]

      @@ -30145,7 +47537,8 @@ 2010-06-17T19:28:20.229863Z Michael Vrhel

      -rc_decrement any icc objects that may exist in the imager state that was created for handling the conversion from PS CIE objects to ICC profiles.
      +rc_decrement any icc objects that may exist in the imager state that was +created for handling the conversion from PS CIE objects to ICC profiles.

      [base/gscie.c]

      @@ -30161,7 +47554,11 @@ 2010-06-17T17:13:34.616951Z Michael Vrhel

      -Change to help track down any memory leaks related to the new icc code.  Also fix so that gs_init_iccmanager copies the null character from the default profile string names.  There was a mismatch between what happened here and what happens when the default user params are set.  This was causing the profiles to reset in the manager when they did not need to be.
      +Change to help track down any memory leaks related to the new icc code. +Also fix so that gs_init_iccmanager copies the null character from the default +profile string names. There was a mismatch between what happened here and what +happens when the default user params are set. This was causing the profiles to +reset in the manager when they did not need to be.

      [base/gsicc_manage.c]

      @@ -30191,7 +47588,9 @@ 2010-06-15T17:17:15.944441Z Michael Vrhel

      -Rename of a few functions to match documentation, update of gdevwts.c to use new color architecture, addition of minor utility functions for use in gxps.  This should not generate regressions.
      +Rename of a few functions to match documentation, update of gdevwts.c to +use new color architecture, addition of minor utility functions for use in gxps. +This should not generate regressions.

      [base/lib.mak base/gsicc_littlecms.h base/gsicc_cache.h base/gsicc_manage.c base/gscms.h base/gdevwts.c base/gsicc_manage.h base/gsicc_littlecms.c]

      @@ -30227,7 +47626,8 @@ 2010-06-14T18:07:49.834071Z Chris Liddell

      -Remove the "<font> is being rendered with FAPI=<renderer>" messages. But leave a warning if we fall back to the old GS renderer.
      +Remove the "<font> is being rendered with FAPI=<renderer>" +messages. But leave a warning if we fall back to the old GS renderer.

      [Resource/Init/gs_fapi.ps]

      @@ -30316,12 +47716,12 @@ 2010-06-11T17:24:06.899434Z Chris Liddell

      -In the event of a FreeType error when scaling a font face, don't clean up the FT data, but leave it to the garbage collector
      -to call the font object's "finalize" function, which will then clean up the FT data.
      -
      -Secondly, add code to deal with very low resolutions underflowing some of FT's fixed point code (similar to code for small
      -scale factors).
      -
      +In the event of a FreeType error when scaling a font face, don't clean
      +up the FT data, but leave it to the garbage collector
      +to call the font object's "finalize" function, which will then
      +clean up the FT data.
      +Secondly, add code to deal with very low resolutions underflowing some of FT's
      +fixed point code (similar to code for small scale factors).
       Bug 691381
       

      [psi/fapi_ft.c]

      @@ -30353,13 +47753,13 @@ 2010-06-10T16:11:08.241878Z Chris Liddell

      -When extracting a path from the FAPI world (for a charpath, for example), only close the path if it has been "opened".
      -
      -This prevents empty paths from non-marking glyphs resulting in a point being rendered on the page.
      -
      +When extracting a path from the FAPI world (for a charpath, for example),
      +only close the path if it has been "opened".
      +This prevents empty paths from non-marking glyphs resulting in a point being
      +rendered on the page.
       Another part of Bug 691252.
      -
      -This change causes ~195 differences to be reported on the cluster, but they are all progressions.
      +This change causes ~195 differences to be reported on the cluster, but they
      +are all progressions.
       
       

      [psi/zfapi.c]

      @@ -30369,10 +47769,10 @@ 2010-06-10T14:06:40.549557Z Chris Liddell

      -Make the rendering of the Truetype notdef glyph optional with the FAPI interface (as per the previous behaviour).
      -
      -A few cluster differences are expected as we have test files which use the TTF notdef, I have checked all the differences, and they are correct.
      -
      +Make the rendering of the Truetype notdef glyph optional with the FAPI interface
      +(as per the previous behaviour).
      +A few cluster differences are expected as we have test files which use the TTF notdef,
      +I have checked all the differences, and they are correct.
       This is part of Bug 691252
       
       
      @@ -30399,7 +47799,10 @@ 2010-06-08T16:20:39.058317Z Chris Liddell

      -In bytes_copy_rectangle() clamp the length of each row to be copied to the stride of the raster. This takes care of problems copying bitmaps from FT (or potentially other font libraries) which use different alignment to the "internal" rasters. Bug 691328.
      +In bytes_copy_rectangle() clamp the length of each row to be copied to the +stride of the raster. This takes care of problems copying bitmaps from FT +(or potentially other font libraries) which use different alignment to +the "internal" rasters. Bug 691328.

      [base/gsbitops.c]

      @@ -30421,7 +47824,12 @@
       Fix for Bug 691368.
       
      -lcms appears not to check its handles of link transforms when a profile is released, to clear out xform->InputProfile.  Probably due to the fact that lcms may not expect a change of the formatters after the link is created.  That would imply that we would need to create links based upon data types, which is not so efficient.  Disable this check in lcms since it is only related to named color profiles, which we will not run into.  Will kick this up to Marti.
      +lcms appears not to check its handles of link transforms when a profile is +released, to clear out xform->InputProfile. Probably due to the fact that +lcms may not expect a change of the formatters after the link is created. +That would imply that we would need to create links based upon data types, +which is not so efficient. Disable this check in lcms since it is only related +to named color profiles, which we will not run into. Will kick this up to Marti.

      [lcms/src/cmspack.c]

      @@ -30429,7 +47837,9 @@ 2010-06-06T18:00:36.332831Z Michael Vrhel

      -Fix for Bug 691367.  Seg fault should no longer occur.  If an attempt is made to set a color space in the graphic state and the ICC manager's profiles have not yet been initialized, it will be taken care of.  
      +Fix for Bug 691367. Seg fault should no longer occur. If an attempt is +made to set a color space in the graphic state and the ICC manager's +profiles have not yet been initialized, it will be taken care of.

      [base/gsicc_manage.c base/gscspace.c]

      @@ -30446,7 +47856,11 @@ 2010-06-05T19:20:40.615579Z Michael Vrhel

      -Fix for indeterminisms in some PS files where the alternate tint transform color space for a DeviceN or Separation color space is CIE based.  Previously we were  returning either CMYK, or RGB based based upon the channel count for the CIE space.  Now we are returning an equivalent ICC based color space.  Also minor fix for uninitialized memory in generated profile.
      +Fix for indeterminisms in some PS files where the alternate tint transform +color space for a DeviceN or Separation color space is CIE based. Previously +we were returning either CMYK, or RGB based based upon the channel count for +the CIE space. Now we are returning an equivalent ICC based color space. Also +minor fix for uninitialized memory in generated profile.

      [base/gscdevn.c base/gsicc_create.c base/gscsepr.c]

      @@ -30542,7 +47956,10 @@ 2010-06-01T17:41:20.224359Z Michael Vrhel

      -Rename of gsicccache.c/h to gsicc_cache.c/h  and gsiccmanage.c/h to gsicc_manage.c/h to fall in line with the name space of the other files that came from the icc branch.  Currently working on the documentation and it is clear that this is needed (and I wish I had done it earlier).
      +Rename of gsicccache.c/h to gsicc_cache.c/h and gsiccmanage.c/h to +gsicc_manage.c/h to fall in line with the name space of the other files +that came from the icc branch. Currently working on the documentation +and it is clear that this is needed (and I wish I had done it earlier).

      [/trunk/ghostpdl/pxl/pxpthr.c /trunk/ghostpdl/pxl/pxl.mak /trunk/ghostpdl/xps/ghostxps.h base/gsiccmanage.c base/gxshade1.c base/gsiccmanage.h base/gscsepr.c base/gxshade4.c base/gxshade6.c /trunk/ghostpdl/pxl/pxtop.c base/gxcmap.c ghostscript.vcproj base/gsistate.c /trunk/ghostpdl/pcl/pcl.mak base/gdevrinkj.c base/gdevwts.c base/gdevxcf.c base/gxicolor.c base/devs.mak base/gsicc.c base/gdevimdi.c base/gscdevn.c base/gxclread.c base/gdevpsd.c base/lib.mak base/gxiscale.c base/gsicc_manage.c psi/int.mak /trunk/ghostpdl/pxl/pxgstate.c /trunk/ghostpdl/pcl/pctop.c base/gsicc_manage.h psi/zicc.c psi/zdevice.c base/gdevp14.c base/gsstate.c base/gsicc_cache.c base/gsicc_create.c psi/zcie.c base/gsicccache.c base/gxclist.c base/gsicc_cache.h base/gsicccache.h base/gstrans.c base/gscms.h base/gxidata.c base/gdevpdfc.c base/gxblend.c base/gxshade.c psi/zusparam.c base/gdevpdfg.c base/gxp1fill.c base/gxclrast.c base/gsciemap.c]

      @@ -30550,7 +47967,9 @@ 2010-05-31T14:49:14.514014Z Hin-Tak Leung

      -for "ln -s base/unix-gcc.mak Makefile; make" builds, do not modularize X, nor build most of the modularzed linux modules, since they depend on the linux GNU linker
      +for "ln -s base/unix-gcc.mak Makefile; make" builds, do +not modularize X, nor build most of the modularzed linux modules, +since they depend on the linux GNU linker

      [base/unix-gcc.mak]

      @@ -30558,7 +47977,8 @@ 2010-05-31T14:41:08.956692Z Hin-Tak Leung

      -another attempt to make "ln -s base/unix-gcc.mak Makefile; make" to work; libtiff really want configure so we hook it in
      +another attempt to make "ln -s base/unix-gcc.mak Makefile; make" +to work; libtiff really want configure so we hook it in

      [base/libtiff.mak]

      @@ -30566,7 +47986,8 @@ 2010-05-31T09:58:14.532526Z Hin-Tak Leung

      -more icc branch merge related change to make "make -f base/unix-gcc.mak" and other targets work"
      +more icc branch merge related change to make +"make -f base/unix-gcc.mak" and other targets work"

      [base/unix-gcc.mak base/unixansi.mak]

      @@ -30586,7 +48007,11 @@ 2010-05-27T21:02:21.460781Z Michael Vrhel

      -Fix so that shading strokes that go through the clist transparency code communicate the transparency device so that the proper color information is used as opposed to the color information related to the final target device.  This should fix the indeterminism with bug688807.pdf when going out to a monochrome device.
      +Fix so that shading strokes that go through the clist transparency code +communicate the transparency device so that the proper color information +is used as opposed to the color information related to the final target +device. This should fix the indeterminism with bug688807.pdf when going +out to a monochrome device.

      [base/gdevp14.c base/gxshade.c]

      @@ -30604,7 +48029,10 @@ 2010-05-27T00:44:57.701730Z Michael Vrhel

      -Fix for indeterminism when using psdcmyk device and interpolated images.  For cases where the device profile has fewer components than the actual number of device colorants we need to use the slower interpolation code.  Otherwise we end up encoding uninitialized memory. 
      +Fix for indeterminism when using psdcmyk device and interpolated images. +For cases where the device profile has fewer components than the actual +number of device colorants we need to use the slower interpolation code. +Otherwise we end up encoding uninitialized memory.

      [base/gxiscale.c]

      @@ -30612,7 +48040,13 @@ 2010-05-26T22:01:50.106123Z Michael Vrhel

      -Fix for bug690218.   For clist reader the pdf14 device was getting its color information set based upon the number of spot colorants in the page.  The real number should be based upon the number of actual components the device is capable of handling.  This occurs when using separation device with a limited set of colorants invoked via a command like -c "<< /SeparationColorNames [ /Cyan /Magenta /Yellow /Black ]
      +Fix for bug690218.   For clist reader the pdf14 device was getting its color
      +information set based upon the number of spot colorants in the page.  The real
      +number should be based upon the number of actual components the device is capable
      +of handling.  This occurs when using separation device with a limited set of
      +colorants invoked via a command like
      +-c "<< /SeparationColorNames [ /Cyan /Magenta /Yellow /Black ]
      +
       /SeparationOrder [ /Cyan /Magenta /Yellow /Black ] >> setpagedevice"

      [base/gdevp14.c]

      @@ -30621,7 +48055,8 @@ 2010-05-26T18:16:52.113331Z Michael Vrhel

      -Improvements and fixes in icc search path description and bolder alert with respect to Windows delimiter \" interpretation . Thanks to Ray.
      +Improvements and fixes in icc search path description and bolder alert with +respect to Windows delimiter \" interpretation . Thanks to Ray.

      [doc/Use.htm]

      @@ -30641,7 +48076,8 @@ 2010-05-26T03:07:02.463936Z Michael Vrhel

      -Addition of lcms and new icc files to Visual studio solution.  Also did a little organizing of the files in the explorer window base folder.
      +Addition of lcms and new icc files to Visual studio solution. Also did a +little organizing of the files in the explorer window base folder.

      [ghostscript.vcproj]

      @@ -30657,7 +48093,11 @@ 2010-05-25T19:38:23.177347Z Michael Vrhel

      -Removal of iccprofiles/ from default icc profile names and post-pend %rom% with iccprofiles/ .  This is in preparation for having the ps init code initialize a default value for ICCProfilesDir (which will be ./iccprofiles/ )  so that code works with COMPILE_INITS=0 when not in the base directory and when -sICCProfilesDir is not specified on the command line.
      +Removal of iccprofiles/ from default icc profile names and post-pend %rom% +with iccprofiles/ . This is in preparation for having the ps init code +initialize a default value for ICCProfilesDir (which will be ./iccprofiles/ ) +so that code works with COMPILE_INITS=0 when not in the base directory and +when -sICCProfilesDir is not specified on the command line.

      [base/gsiccmanage.c base/gsiccmanage.h]

      @@ -30707,7 +48147,9 @@ 2010-05-25T10:22:09.642632Z Chris Liddell

      -Bug 691336: Resolve some confusion between the original global variable removal changes, and subsequent changes, that could result in warning emprintf calls using a memory pointer that could not exist at that stage.
      +Bug 691336: Resolve some confusion between the original global variable
      +removal changes, and subsequent changes, that could result in warning emprintf
      +calls using a memory pointer that could not exist at that stage.
       

      [psi/fapiufst.c]

      @@ -30727,8 +48169,14 @@
       Another bunch of CRLF to LF's.
       
      -find . -type f | grep -v 'svn-base' | xargs file | grep CRLF | grep -v -E '\.(dsp|dsw|sln|rc):' | grep -v -E '(cbuilder5|masm|dotzlib|vstudio|BorlandC_5.5|visualc6)' | cut -d ':' -f 1 | xargs -n 1 svn propset svn:eol-style native
      -find . -type f | grep -v 'svn-base' | xargs file | grep CRLF | grep -v -E '\.(dsp|dsw|sln|rc):' | grep -v -E '(cbuilder5|masm|dotzlib|vstudio|BorlandC_5.5|visualc6)' | cut -d ':' -f 1 | xargs dos2unix
      +find . -type f | grep -v 'svn-base' | xargs file | grep CRLF | \
      +grep -v -E '\.(dsp|dsw|sln|rc):' | grep -v -E \
      +'(cbuilder5|masm|dotzlib|vstudio|BorlandC_5.5|visualc6)' | cut -d ':' -f 1 | \
      +xargs -n 1 svn propset svn:eol-style native
      +find . -type f | grep -v 'svn-base' | xargs file | grep CRLF | \
      +grep -v -E '\.(dsp|dsw|sln|rc):' | grep -v -E \
      +'(cbuilder5|masm|dotzlib|vstudio|BorlandC_5.5|visualc6)' | cut -d ':' -f 1 | \
      +xargs dos2unix
       
       

      [tiff/nmake.opt psi/zcolor.h toolbin/color/icc_creator/ICC_Creator/stdafx.h lib/cat.ps toolbin/color/icc_creator/ICC_Creator/ICC_CreatorDlg.cpp toolbin/color/icc_creator/example/cielab_values.txt toolbin/color/icc_creator/ICC_Creator/icc34.h contrib/lxm3200-tweaked/LICENSE toolbin/color/icc_creator/README.txt toolbin/color/icc_creator/ICC_Creator/ICC_Creator.cpp toolbin/color/named_color/named_color_table.txt zlib/contrib/testzlib/testzlib.txt lib/Fontmap.URW-136.T1 toolbin/color/icc_creator/example/tritone_names.txt zlib/contrib/testzlib/testzlib.c toolbin/color/icc_creator/ICC_Creator/CIELAB.h toolbin/color/icc_creator/ICC_Creator/icc_create.h base/gsicc_profilecache.c toolbin/color/icc_creator/ICC_Creator/stdafx.cpp toolbin/color/icc_creator/ICC_Creator/resource.h base/gsicc_profilecache.h toolbin/color/icc_creator/example/tritone_cielab.txt base/gsicc_create.c toolbin/color/icc_creator/ICC_Creator/targetver.h toolbin/color/icc_creator/ICC_Creator/ICC_CreatorDlg.h toolbin/color/icc_creator/ICC_Creator/res/ICC_Creator.rc2 psi/zcie.h psi/write_t2.c base/gsicc_create.h toolbin/color/icc_creator/example/color_names.txt base/gscms.h toolbin/color/icc_creator/ICC_Creator/icc_create.cpp toolbin/color/icc_creator/ICC_Creator/ICC_Creator.h psi/fapibstm.c lib/Fontmap.URW-136.TT]

      @@ -30740,8 +48188,11 @@
       remove some more CR's and more eol-style native.
       
      -find . -type f   -exec file {} \; |grep 'CRLF' | grep -v '/Projects' | grep -v 'svn-base' | cut -f 1 -d ':' | xargs -n 1 svn propset svn:eol-style native
      -find . -type f   -exec file {} \; |grep 'CRLF' | grep -v '/Projects' | grep -v 'svn-base' | cut -f 1 -d ':' | xargs -n 1 dos2unix
      +find . -type f   -exec file {} \; |grep 'CRLF' | grep -v '/Projects' | \
      +grep -v 'svn-base' | cut -f 1 -d ':' | xargs -n 1 svn propset \
      +svn:eol-style native
      +find . -type f   -exec file {} \; |grep 'CRLF' | grep -v '/Projects' | \
      +grep -v 'svn-base' | cut -f 1 -d ':' | xargs -n 1 dos2unix
       
       

      [lcms/Delphi/delphidemo.dof lcms/src/makefile.simple lcms/Delphi/demo1.pas lcms/python/testbed/srgb2xyz.py lcms/Delphi/Samples/create.pas lcms/python/testbed/srgb2lab.py lcms/Delphi/delphidemo.dpr lcms/python/testbed/cam02.py lcms/makefile.simple lcms/samples/makefile.simple lcms/Delphi/Samples/TEST.PAS lcms/Delphi/delphidemo.cfg lcms/python/testbed/createmsh.py lcms/python/testbed/lab2adobe.py lcms/Delphi/Samples/testfrm.pas lcms/Delphi/Samples/testwp.pas lcms/src/lcms.def lcms/Delphi/Samples/getxyz.pas]

      @@ -30763,8 +48214,16 @@
       Changes c/c++/shell script/english text to native text and strip off CR.
       
      -find . -type f   -exec grep -l '\r\n' {} \; | grep -v 'svn-base' | grep -v '\.vcproj' | grep -v '/Projects' | xargs -n 1 file |  grep -E '(ASCII C\+\+ program text|ISO\-8859 English text|ASCII C program text|shell script text executable)' | cut -f 1 -d ':'  | xargs dos2unix
      -find . -type f   -exec grep -l '\r\n' {} \; | grep -v 'svn-base' | grep -v '\.vcproj' | grep -v '/Projects' | xargs -n 1 file |  grep -E '(ASCII C\+\+ program text|ISO\-8859 English text|ASCII C program text|shell script text executable)' | cut -f 1 -d ':'  | xargs svn propset svn:eol-style native
      +find . -type f   -exec grep -l '\r\n' {} \; | grep -v 'svn-base' | \
      +grep -v '\.vcproj' | grep -v '/Projects' | xargs -n 1 file |  \
      +grep -E '(ASCII C\+\+ program text|ISO\-8859 English text|ASCII \
      +C program text|shell script text executable)' | cut -f 1 -d ':'  |\
      +xargs dos2unix
      +find . -type f   -exec grep -l '\r\n' {} \; | grep -v 'svn-base' | \
      +grep -v '\.vcproj' | grep -v '/Projects' | xargs -n 1 file |  grep -E \
      +'(ASCII C\+\+ program text|ISO\-8859 English text|ASCII C program text|\
      +shell script text executable)' | cut -f 1 -d ':'  | xargs svn propset \
      +svn:eol-style native
       
       
       
      @@ -30816,24 +48275,37 @@
       Merge of icc_work branch into trunk.
      -
      -These changes make the color architecture of the graphics library ICC-based.  All colors are now managed in terms of ICC profiles including PS CIE color spaces, for which equivalent ICC profiles are created.    A big feature of this change is that it makes it very easy to interface a color management module (CMM) to ghostscript.   The default CMM is now littleCMS and the interface to littleCMS is contained in gsicc_littlecms.c .
      -
      -New member variables were added to the imager state including an ICC manager, which stores the default ICC profiles; a link cache, which reduces the cost of creating links between ICC profiles, and a profile cache which stores color spaces created from PS CIE, PDF CalRGB and PDF CalGray colors spaces.
      -
      -A new directory named iccprofiles has been added.  It contains the default ICC profiles used if none are specified in the command line.  If COMPILE_INITS=1, these will be included in the ROM file system.  The new command line options related to ICC profiles are described in the Use.htm documentation.
      -
      -For c-list based rendering, all ICC profiles used in the rendering are stored in the c-list.   During multi-threaded c-list reading, a link cache is associated with the primary reader device and is shared amongst the various threads.
      -
      -Efficiency improvements were made in the handling of soft mask groups, shading smoothness calculations, and color image rendering.
      -
      -For details on the branch, please see the commits that were made within the branch.  There remain indeterminisms to fix.  The files affected include Bug688807.pdf,  Bug688845.eps, Bug690208.pdf, 09-34.PS, CATX0988.pdf,  CATX1028.pdf,  CATX1101.pdf,  CATX5529.pdf.
      -
      -Rendering issues to investigate include Bug689830.pdf, fts43xx.xps (page 3) (shopping cart image), Bug689880.pdf, Bug691002.pdf, Bug689968.pdf, Bug688584.ps (page 4), catx4949.pdf.
      -
      -Note that the number of differences generated with the merge amounts to pretty much every file.
      -
      -Thanks to everyone who helped and provided input in this work, especially Ray Johnston.
      +These changes make the color architecture of the graphics library ICC-based.
      +All colors are now managed in terms of ICC profiles including PS CIE color
      +spaces, for which equivalent ICC profiles are created.    A big feature of
      +this change is that it makes it very easy to interface a color management
      +module (CMM) to ghostscript.   The default CMM is now littleCMS and the
      +interface to littleCMS is contained in gsicc_littlecms.c .
      +New member variables were added to the imager state including an ICC manager,
      +which stores the default ICC profiles; a link cache, which reduces the cost of
      +creating links between ICC profiles, and a profile cache which stores color
      +spaces created from PS CIE, PDF CalRGB and PDF CalGray colors spaces.
      +A new directory named iccprofiles has been added.  It contains the default
      +ICC profiles used if none are specified in the command line.  If
      +COMPILE_INITS=1, these will be included in the ROM file system.  The new
      +command line options related to ICC profiles are described in the Use.htm
      +documentation.
      +For c-list based rendering, all ICC profiles used in the rendering are stored in
      +the c-list.   During multi-threaded c-list reading, a link cache is associated with
      +the primary reader device and is shared amongst the various threads.
      +Efficiency improvements were made in the handling of soft mask groups, shading
      +smoothness calculations, and color image rendering.
      +For details on the branch, please see the commits that were made within the
      +branch.  There remain indeterminisms to fix.  The files affected include
      +Bug688807.pdf,  Bug688845.eps, Bug690208.pdf, 09-34.PS, CATX0988.pdf,
      +CATX1028.pdf,  CATX1101.pdf,  CATX5529.pdf.
      +Rendering issues to investigate include Bug689830.pdf, fts43xx.xps (page 3)
      +(shopping cart image), Bug689880.pdf, Bug691002.pdf, Bug689968.pdf,
      +Bug688584.ps (page 4), catx4949.pdf.
      +Note that the number of differences generated with the merge amounts to
      +pretty much every file.
      +Thanks to everyone who helped and provided input in this work, especially
      +Ray Johnston.
       

      [base/gdevpdfk.c base/gxclimag.c doc/Use.htm base/gdevdflt.c psi/icie.h base/gxpcmap.c base/gxpcolor.h lcms base/gscsepr.c base/gxshade4.c base/gxclthrd.c base/gxcmap.c base/gscscie.c base/gdevwts.c base/gsistate.c base/msvclib.mak base/gxclpage.c base/gscolor2.c base/gsicc_profilecache.c base/gxistate.h base/gscolor2.h base/gsicc_profilecache.h iccprofiles base/gdevp14.c base/gsicc_create.c base/gdevp14.h base/gsicc_create.h psi/write_t2.c psi/zusparam.c base/gdevpbm.c psi/zcolor.c psi/ztrans.c base/gdevpdft.c base/gxshade1.c /trunk/gs base/gdevpsdi.c psi/ireclaim.c psi/os2.mak base/watclib.mak Resource/Init/gs_lev2.ps base/gdevpsdu.c base/gscie.c base/gxclutil.c base/gscolor3.c base/gdevpsd.c base/gscie.h base/gxiscale.c base/gxcldev.h Resource/Init/gs_res.ps base/gxifast.c base/gxdevcli.h base/openvms.mak base/watcw32.mak base/gscms.h psi/msvc32.mak base/gsalloc.c base/lcms.mak base/gxp1fill.c base/gximage.h base/gsciemap.c base/gdevpx.c psi/zcsdevn.c base/ugcclib.mak base/unix-gcc.mak base/gsovrc.c base/gxcie.h base/macos-mcp.mak base/gxshade6.c base/macosx.mak base/gsccolor.h base/gdevrinkj.c base/unixansi.mak base/devs.mak base/gsicc.c base/gxipixel.c base/lib.mak psi/zimage.c base/gsicc.h psi/dxmain.c psi/dxmainc.c Resource/Init/pdf_draw.ps base/gscolor.c Resource/Init/pdf_ops.ps psi/zdevice.c psi/zcie.c psi/zdpnext.c base/gxclist.c psi/zcie.h base/gximono.c base/gxidata.c base/gstrans.c psi/iimage.h base/gdevpdfb.c base/gxclist.h base/gxshade.c base/gstrans.h base/gxclrast.c psi/zncdummy.c base/gxshade.h toolbin/color base/gsiccmanage.c base/Makefile.in base/gdevpdfv.c base/gsiccmanage.h base/gsicc_littlecms.c base/gxclpath.c base/gsicc_littlecms.h psi/icontext.c base/gxclpath.h base/gsstruct.h base/gdevxcf.c base/gxicolor.c base/gscspace.c base/gdevimdi.c base/gscdevn.c base/gscolor1.c base/gxclread.c base/gscspace.h base/bcwin32.mak base/gsdparam.c base/gs.mak psi/zshade.c base/gdevbbox.c psi/int.mak base/gxcspace.h psi/zicc.c base/gsstate.c base/winlib.mak base/gsicccache.c psi/zicc.h psi/zimage3.c base/gsicccache.h base/gdevpdfc.c base/gstparam.h base/gxblend.c base/gdevpdfg.c base/gxblend.h]

      @@ -31049,7 +48521,8 @@ 2010-05-18T22:40:39.023883Z Hin-Tak Leung

      -define -DHAVE_CONFIG_H and run jbig2dec/configure from top-level configure. The fixes some portability issues seen on opensolaris; further follow-up to bug 691304
      +define -DHAVE_CONFIG_H and run jbig2dec/configure from top-level configure. +The fixes some portability issues seen on opensolaris; further follow-up to bug 691304

      [base/Makefile.in base/configure.ac]

      @@ -31088,7 +48561,10 @@ 2010-05-18T08:55:18.202611Z Chris Liddell

      -Bug 691313: remove the IBM Omni driver from the default build on Linux. Previously it could be excluded by giving configure "--without-omni", this revision reverses the logic, so Omni can be include by giving configure "--with-omni".
      +Bug 691313: remove the IBM Omni driver from the default build on Linux. +Previously it could be excluded by giving configure "--without-omni", +this revision reverses the logic, so Omni can be include by giving +configure "--with-omni".

      [base/configure.ac]

      @@ -31096,7 +48572,8 @@ 2010-05-18T04:32:25.607601Z Marcos H. Woehrmann

      -Change the order in which jobs that take too long are killed on the cluster nodes to prevent leftover jobs when running bmpcmp.
      +Change the order in which jobs that take too long are killed on the cluster
      +nodes to prevent leftover jobs when running bmpcmp.
       

      [toolbin/localcluster/run.pl]

      @@ -31292,7 +48769,9 @@ 2010-05-15T06:30:20.380857Z Hin-Tak Leung

      -"-shared" is a linker flag and not a compiler (object code generation) flag; another piece of trying to make "make -f base/unix-gcc.mak" work
      +"-shared" is a linker flag and not a compiler (object code +generation) flag; another piece of trying to +make "make -f base/unix-gcc.mak" work

      [base/unix-gcc.mak]

      @@ -31313,7 +48792,8 @@ 2010-05-15T06:23:35.840946Z Hin-Tak Leung

      -correct documentation on how make so should work - ./configure --enable-dynamic is required
      +correct documentation on how make so should work - +./configure --enable-dynamic is required

      [doc/Make.htm]

      @@ -31329,7 +48809,8 @@ 2010-05-15T03:13:49.664716Z Hin-Tak Leung

      -adding a needed include to silent a compiler warning introduced by the recent remove-globals effort
      +adding a needed include to silent a compiler warning introduced by the +recent remove-globals effort

      [base/gslibctx.c]

      @@ -31380,7 +48861,9 @@ 2010-05-15T02:58:14.802157Z Hin-Tak Leung

      -freetype2 dependency in base/unixansi.mak to make "make -f base/unixansi.mak" work; another part for bug 691306
      +freetype2 dependency in base/unixansi.mak to +make "make -f base/unixansi.mak" work; +another part for bug 691306

      [base/unixansi.mak]

      @@ -31388,7 +48871,8 @@ 2010-05-15T02:57:22.770443Z Hin-Tak Leung

      -freetype2 dependency in base/unix-gcc.mak to make "make -f base/unix-gcc.mak" work; bug 691306
      +freetype2 dependency in base/unix-gcc.mak to +make "make -f base/unix-gcc.mak" work; bug 691306

      [base/unix-gcc.mak]

      @@ -31436,7 +48920,8 @@ 2010-05-14T04:23:14.678757Z Hin-Tak Leung

      -remove one extra tab introduced in r10994; non-GNU Make on Tru64 and HP-UX is picky. Bug 688184 and bug 691299
      +remove one extra tab introduced in r10994; non-GNU Make on Tru64 and HP-UX is +picky. Bug 688184 and bug 691299

      [psi/psromfs.mak]

      @@ -31444,7 +48929,8 @@ 2010-05-14T04:20:29.682174Z Hin-Tak Leung

      -HP compiler quirk - apparently the same workaround is needed for SUN Pro C and GCC 1.x (see a few lines before this change) ; bug 688184
      +HP compiler quirk - apparently the same workaround is needed for SUN Pro C and +GCC 1.x (see a few lines before this change) ; bug 688184

      [contrib/opvp/opvp.h]

      @@ -31587,7 +49073,10 @@ 2010-05-11T17:25:01.376580Z Chris Liddell

      -Bugs 690356 and 690832: have the colour space object take a copy of string data associated with an indexed colour space lookup table. This prevents the colour space finalising code (gx_final_Indexed) freeing the contents of a Postscript object which may still be in use.
      +Bugs 690356 and 690832: have the colour space object take a copy of string +data associated with an indexed colour space lookup table. This prevents the +colour space finalising code (gx_final_Indexed) freeing the contents of a +Postscript object which may still be in use.

      [psi/zcolor.c]

      @@ -31617,9 +49106,11 @@ 2010-05-11T14:34:32.672494Z Chris Liddell

      -Revise the UFST interface code for PCL/PXL and GS to work with the changes to eliminate global variables in the Artifex code base.
      -
      -NOTE: the UFST_REENTRANT configuration was broken, and still is (it has been since the creation of gxfapiu.[ch] files. To be resolved in the future. At this time, therefore, no build integrating UFST can be thread safe.
      +Revise the UFST interface code for PCL/PXL and GS to work with the changes to
      +eliminate global variables in the Artifex code base.
      +NOTE: the UFST_REENTRANT configuration was broken, and still is (it has been
      +since the creation of gxfapiu.[ch] files. To be resolved in the future. At
      +this time, therefore, no build integrating UFST can be thread safe.
       
       
       
      @@ -31645,7 +49136,8 @@ 2010-05-11T12:41:44.704781Z Hin-Tak Leung

      -replace "/*" by "<slash><star>" to avoid compiler warning about comments inside comment 
      +replace "/*" by "<slash><star>" to avoid +compiler warning about comments inside comment

      [base/mkromfs.c]

      @@ -31653,7 +49145,11 @@ 2010-05-11T11:55:10.416074Z Michael Vrhel

      -Debug code for helping in debug of 689737.  The pattern that is created is 1 bpp.  With this code the pattern bit map is dumped for opening with photoshop as a raw 8bit image.  The source of the problem appears to be incorrect creation of the pattern bit map when GraphicAlphaBits is set to greater than 1.
      +Debug code for helping in debug of 689737. The pattern that is created is 1 +bpp. With this code the pattern bit map is dumped for opening with photoshop +as a raw 8bit image. The source of the problem appears to be incorrect +creation of the pattern bit map when GraphicAlphaBits is set to greater than +1.

      [base/gxpcmap.c]

      @@ -31702,7 +49198,12 @@ 2010-05-10T12:29:09.676516Z Michael Vrhel

      -Retry of fix for Bug 69048 (this one actually builds...) Again this should only be a factor when using GraphicsAlphaBits.  The fix was to make sure that when GraphicsAlphaBits is used we initialize the pattern bits buffer.  Otherwise the get_bits operation used during the gx_default_copy_alpha grabs uninitialized memory.  Since we do not test with GraphicsAlphabits in the regression testing I don't expect there to be any differences.
      +Retry of fix for Bug 69048 (this one actually builds...) Again this should +only be a factor when using GraphicsAlphaBits. The fix was to make sure +that when GraphicsAlphaBits is used we initialize the pattern bits buffer. +Otherwise the get_bits operation used during the gx_default_copy_alpha grabs +uninitialized memory. Since we do not test with GraphicsAlphabits in the +regression testing I don't expect there to be any differences.

      [base/lib.mak base/gxpcmap.c base/gxdevmem.h base/gdevabuf.c base/gspaint.c]

      @@ -31718,7 +49219,12 @@ 2010-05-09T23:10:59.799862Z Michael Vrhel

      -Fix for Bug 690487.  This should only be a factor when using GraphicsAlphaBits.  The fix was to make sure that when GraphicsAlphaBits is used we initialize the pattern bits buffer.  Otherwise the get_bits operation used during the gx_default_copy_alpha grabs uninitialized memory.  Since we do not test with GraphicsAlphabits in the regression testing I don't expect there to be any differences.
      +Fix for Bug 690487. This should only be a factor when using GraphicsAlphaBits. +The fix was to make sure that when GraphicsAlphaBits is used we initialize the +pattern bits buffer. Otherwise the get_bits operation used during the +gx_default_copy_alpha grabs uninitialized memory. Since we do not test with +GraphicsAlphabits in the regression testing I don't expect there to be any +differences.

      [base/gsutil.h base/lib.mak base/gxpcmap.c base/gspaint.c base/gsutil.c]

      @@ -31799,7 +49305,9 @@ 2010-05-07T14:30:08.276765Z Ray Johnston

      -Fix clist_band_height to use the macro defined in gxband.h as other code does to prevent future bitrot. Also use macros for the clist_ cfname, cfile, bfname, bfile.
      +Fix clist_band_height to use the macro defined in gxband.h as other +code does to prevent future bitrot. Also use macros for the clist_ cfname, +cfile, bfname, bfile.

      [base/gxclist.h]

      @@ -31807,7 +49315,8 @@ 2010-05-07T14:23:18.978837Z Ray Johnston

      -Fix number of elements in the BAND_PARAMS_INITIAL initializer macro to correspond to the size of gx_band_params_t (needed since rev 5751).
      +Fix number of elements in the BAND_PARAMS_INITIAL initializer macro to +correspond to the size of gx_band_params_t (needed since rev 5751).

      [base/gxband.h]

      @@ -32441,7 +49950,9 @@ 2010-04-27T14:53:14.939131Z Chris Liddell

      -Bug 691260: make the FAPI and Freetype related warning messages debug only, and depend on -Zm for the FAPI warnings or -Z1 for the Freetype warnings. Also address compiler warnings in fapi_ft.c.
      +Bug 691260: make the FAPI and Freetype related warning messages debug only, +and depend on -Zm for the FAPI warnings or -Z1 for the Freetype warnings. +Also address compiler warnings in fapi_ft.c.

      [psi/fapi_ft.c psi/zfapi.c]

      @@ -32463,7 +49974,8 @@ 2010-04-27T09:56:26.779813Z Till Kamppeter

      -Made the CUPS Raster output device working in a multi-threaded mode, removing all global variables. Thanks to James Cloos for the patch. Fixes bug #691241.
      +Made the CUPS Raster output device working in a multi-threaded mode, removing all
      +global variables. Thanks to James Cloos for the patch. Fixes bug #691241.
       

      [cups/gdevcups.c]

      @@ -32492,7 +50004,12 @@ 2010-04-26T05:58:46.519692Z Michael Vrhel

      -Change so that when a graphic state is restored, the overprint compositor action only occurs if there is a change from the current overprint state.  This fixes a problem in one of the files associated with bug 691014.  In the particular file, overprint compositor actions were getting placed into a pattern clist.  The file in fact had no overprint settings.  Ran regression test, no differences expected.
      +Change so that when a graphic state is restored, the overprint compositor +action only occurs if there is a change from the current overprint state. +This fixes a problem in one of the files associated with bug 691014. In +the particular file, overprint compositor actions were getting placed into +a pattern clist. The file in fact had no overprint settings. +Ran regression test, no differences expected.

      [base/gsstate.c]

      @@ -32548,11 +50065,25 @@ 2010-04-25T00:41:40.540207Z Michael Vrhel

      -Fix for Bug 691014.  Problem was caused by the fact that we had a soft mask present and a pattern with no transparency.  This means the PDF14 device is installed and more importantly that transparency state pushes and pops occur to keep the softmask in sync with the graphic state.  This particular files pattern is installed as a clist, which happens to not have any transparency.  The transparency state pushes and pops were getting placed into the pattern clist when the Q and q operations occurred in the pattern, which was causing problems since the pattern clist device had no pdf14 device installed to handle such commands.
      -
      -The solution is to check, when a transparency compositor action is to occur, if the current device is a pattern accumulator or a pattern-clist device.  If it is, then the pattern instance is checked to see if it has transparency.  If it does not, then the transparency state chance is ignored.  This all occurs on the clist writing phase in the gs_trans functions.
      -
      -In addition, a fix was made so that the pdf14custom device sets up it's color information correctly.  For subtractive devices that do not have cmyk process colorants the custompdf14 device is installed.  This pdf14 device was obtaining its color_info from the target device.  The pdf14 device must be continuous tone even if the target device is not.
      +Fix for Bug 691014.  Problem was caused by the fact that we had a soft
      +mask present and a pattern with no transparency.  This means the PDF14
      +device is installed and more importantly that transparency state pushes
      +and pops occur to keep the softmask in sync with the graphic state.  This
      +particular files pattern is installed as a clist, which happens to not have
      +any transparency.  The transparency state pushes and pops were getting placed
      +into the pattern clist when the Q and q operations occurred in the pattern, which
      +was causing problems since the pattern clist device had no pdf14 device installed to
      +handle such commands.
      +The solution is to check, when a transparency compositor action is to occur, if the
      +current device is a pattern accumulator or a pattern-clist device.  If it is, then
      +the pattern instance is checked to see if it has transparency.  If it does not, then
      +the transparency state chance is ignored.  This all occurs on the clist writing phase
      +in the gs_trans functions.
      +
      +In addition, a fix was made so that the pdf14custom device sets up it's color information
      +correctly.  For subtractive devices that do not have cmyk process colorants the custompdf14
      +device is installed.  This pdf14 device was obtaining its color_info from the target device.
      +The pdf14 device must be continuous tone even if the target device is not.
       
       Ran a regression test and saw no differences.

      [base/gdevp14.c base/lib.mak base/gstrans.c]

      @@ -32573,7 +50104,8 @@ 2010-04-23T12:56:00.372874Z Chris Liddell

      -Resolve issues with the language_switch Ghostscript build for Windows, since Freetype enabled became the default for the normal GS build.
      +Resolve issues with the language_switch Ghostscript build for Windows, since
      +Freetype enabled became the default for the normal GS build.
       

      [/trunk/ghostpdl/common/msvc_top.mak /trunk/ghostpdl/language_switch/pspcl6_msvc.mak /trunk/ghostpdl/psi/psitop.c psi/msvc32.mak]

      @@ -32582,7 +50114,10 @@ 2010-04-23T04:10:50.732099Z Michael Vrhel

      -Fix of minor memory leak found by Ray.  maskbuf entry of transparency ctx object was not getting freed.  The large mask buffer, which is a member variable of maskbuf was getting freed but not this 12 byte structure.  No expected differences.
      +Fix of minor memory leak found by Ray. maskbuf entry of transparency ctx +object was not getting freed. The large mask buffer, which is a member +variable of maskbuf was getting freed but not this 12 byte structure. +No expected differences.

      [base/gdevp14.c]

      @@ -32978,7 +50513,9 @@ 2010-04-14T16:25:11.391305Z Chris Liddell

      -Reverse the previous build options for Freetype integration: now --disable-freetype for configure on Unix type systems or pass FT_BRIDGE=0 to nmake on Windows if you do not want to integrate Freetype.
      +Reverse the previous build options for Freetype integration: now
      +--disable-freetype for configure on Unix type systems or pass FT_BRIDGE=0
      +to nmake on Windows if you do not want to integrate Freetype.
       

      [base/configure.ac psi/msvc32.mak]

      @@ -33036,7 +50573,8 @@ 2010-04-14T02:31:58.209185Z Masaki Ushizaka

      -Fixed jbig2dec command getopt() parameter for -v option.  Not used by ghostscript itself but worth for standalone debugging.
      +Fixed jbig2dec command getopt() parameter for -v option. Not used by +ghostscript itself but worth for standalone debugging.

      [jbig2dec/jbig2dec.c]

      @@ -33128,8 +50666,11 @@
       A fix for 691081, 691206, and part of 690094.
       
      -From r9769, jbig2dec wasn't capable of decoding some JBIG2 files and throwing a error "jbig2dec FATAL ERROR runlength too large in export symbol table (XXX > XX - XX) (segment 0xXX)".
      -This was caused by accidentaly bound checking export symbol table size with number of non-export symbol.  This fixes it.
      +From r9769, jbig2dec wasn't capable of decoding some JBIG2 files and throwing
      +a error "jbig2dec FATAL ERROR runlength too large in export symbol table
      +(XXX > XX - XX) (segment 0xXX)".
      +This was caused by accidentaly bound checking export symbol table size with
      +number of non-export symbol.  This fixes it.
       No differences expected, other than JBIG2 files suffered from this problem.
       

      [jbig2dec/jbig2_symbol_dict.c]

      @@ -33139,7 +50680,8 @@ 2010-04-13T09:38:22.017180Z Chris Liddell

      -Minor revision to FAPI code to better ensure GS errors in callbacks survive through the font renderer library.
      +Minor revision to FAPI code to better ensure GS errors in callbacks +survive through the font renderer library.

      [psi/fapi_ft.c psi/zfapi.c psi/ifapi.h psi/fapiufst.c]

      @@ -33157,7 +50699,9 @@ 2010-04-12T10:44:43.428786Z Chris Liddell

      -Remove the hardcoded identity matrix in the Type 1 serialization code in favour of the new FAPI call allowing the interface code to dictate the matrix to be used.
      +Remove the hardcoded identity matrix in the Type 1 serialization code in +favour of the new FAPI call allowing the interface code to dictate the matrix +to be used.

      [psi/zfapi.c]

      @@ -33430,7 +50974,8 @@ 2010-04-07T13:23:37.938542Z Chris Liddell

      -Revise the interface code and the use of FT so that both use GS managed memory, rather than the stdlib memory routines (malloc/free and co.).
      +Revise the interface code and the use of FT so that both use GS managed +memory, rather than the stdlib memory routines (malloc/free and co.).

      [psi/fapi_ft.c]

      @@ -33475,7 +51020,9 @@ 2010-04-06T17:15:54.520182Z Michael Vrhel

      -Update of fuzzy to report average and max color errors.  This is useful for continuous tone images only.  If the max error reaches the largest possible, the calculations for these values are not performed.
      +Update of fuzzy to report average and max color errors. This is useful +for continuous tone images only. If the max error reaches the largest +possible, the calculations for these values are not performed.

      [toolbin/tests/fuzzy.c]

      @@ -33603,7 +51150,8 @@ 2010-04-05T10:03:59.155794Z Chris Liddell

      -Fix the FAPI implementation of finding the appropriate bytes for a given character code from an array of strings representing a CMap.
      +Fix the FAPI implementation of finding the appropriate bytes for a given +character code from an array of strings representing a CMap.

      [psi/zfapi.c]

      @@ -33628,7 +51176,9 @@ 2010-04-02T09:19:23.286738Z Chris Liddell

      -Extend Ken's change to avoid using FT's "synthetic" vertical metrics for Type42 fonts to cover all fonts using TTF outlines (so CIDType 2 fonts, as well).
      +Extend Ken's change to avoid using FT's "synthetic" vertical metrics +for Type42 fonts to cover all fonts using TTF outlines (so CIDType 2 fonts, as +well).

      [psi/fapi_ft.c]

      @@ -33683,7 +51233,10 @@ 2010-03-31T13:22:01.442343Z Chris Liddell

      -Prevent applying the nominalWidthX for T2 fonts, when FT already applies it for us. Previously, the code was actually erroneously adding the defaultWidthX. Since this use of nominalWidthX *may* be renderer dependent, it is now controlled by the can_replace_metrics() call.
      +Prevent applying the nominalWidthX for T2 fonts, when FT already applies +it for us. Previously, the code was actually erroneously adding the +defaultWidthX. Since this use of nominalWidthX *may* be renderer dependent, +it is now controlled by the can_replace_metrics() call.

      [psi/zfapi.c]

      @@ -33691,7 +51244,8 @@ 2010-03-31T13:16:41.790764Z Chris Liddell

      -In the even a glyph name is not found in the CharStrings dictionary, fall back to using the .notdef (instead of returning an error).
      +In the even a glyph name is not found in the CharStrings dictionary, fall +back to using the .notdef (instead of returning an error).

      [psi/zfapi.c]

      @@ -33699,7 +51253,8 @@ 2010-03-31T13:07:44.152960Z Chris Liddell

      -For certain errors from FT, retry interpretting the glyph without hinting - this more closely matches the existing behaviour.
      +For certain errors from FT, retry interpretting the glyph without hinting - this more +closely matches the existing behaviour.

      [psi/fapi_ft.c]

      @@ -33822,7 +51377,9 @@ 2010-03-29T07:52:49.284823Z Chris Liddell

      -Change the FT interface code so we always use metrics retrieved from Freetype, rather than attempting to "fabricate" metrics (which have already been handled correctly by FT).
      +Change the FT interface code so we always use metrics retrieved from Freetype, +rather than attempting to "fabricate" metrics (which have already +been handled correctly by FT).

      [psi/fapi_ft.c]

      @@ -33919,7 +51476,9 @@ 2010-03-23T09:02:16.120692Z Till Kamppeter

      -CUPS Raster output device: Error out correctly with the return_error() macro and not with "gs_exit(); exit()", force banding mode as there are files which do not render otherwise (Bug #691170).
      +CUPS Raster output device: Error out correctly with the return_error() macro
      +and not with "gs_exit(); exit()", force banding mode as there are
      +files which do not render otherwise (Bug #691170).
       

      [cups/gdevcups.c]

      @@ -33928,7 +51487,8 @@ 2010-03-23T00:06:59.853037Z Till Kamppeter

      -Code clean-ups in the "cups" output device to fix the segfaults in bug #691170 and bug #691014 (but does not fix the bugs yet).
      +Code clean-ups in the "cups" output device to fix the segfaults
      +in bug #691170 and bug #691014 (but does not fix the bugs yet).
       

      [cups/gdevcups.c]

      @@ -34228,7 +51788,10 @@ 2010-03-10T15:05:57.116970Z Chris Liddell

      -Change how we derive the glyph metrics from FT: we now interpret the glyph description only once, scaled and hinted, and then calculate the metrics from that. It's more accurate, accounts for hints that extend the glyph outline, and should be a worthwhile speed improvement.
      +Change how we derive the glyph metrics from FT: we now interpret the glyph +description only once, scaled and hinted, and then calculate the metrics +from that. It's more accurate, accounts for hints that extend the glyph outline +and should be a worthwhile speed improvement.

      [psi/fapi_ft.c]

      @@ -34438,7 +52001,9 @@ 2010-03-08T21:47:15.240330Z Hin-Tak Leung

      -revert to r8185 version of the korean example - it was removed in r8190 and a corrupted version r9325 was subsequently checked in; found during fixing bug 688437 (incompete font substitution list)
      +revert to r8185 version of the korean example - it was removed in r8190 and a +corrupted version r9325 was subsequently checked in; found during fixing bug +688437 (incompete font substitution list)

      [examples/cjk/gscjk_ak.ps]

      @@ -34496,7 +52061,9 @@ 2010-03-08T09:28:49.484133Z Chris Liddell

      -Latest improvements to the FAPI/FT bridge code. This code resolves the issues with font matrices which do more than just scale. It is not yet "finished", but is too big a step forward to risk losing.
      +Latest improvements to the FAPI/FT bridge code. This code resolves the +issues with font matrices which do more than just scale. It is not yet +"finished", but is too big a step forward to risk losing.

      [psi/fapi_ft.c psi/zfapi.c]

      @@ -34877,7 +52444,8 @@ 2010-02-25T11:04:59.765077Z Chris Liddell

      -add quotes around the expansion of DEVSTUDIO variable when it's used for the recursive nmake call for debug targets - in case it has white space in it.
      +add quotes around the expansion of DEVSTUDIO variable when it's used for +the recursive nmake call for debug targets - in case it has white space in it.

      [psi/msvc32.mak]

      @@ -34885,7 +52453,10 @@ 2010-02-25T08:21:46.259499Z Masaki Ushizaka

      -Fix for bug 691103.  The pdfwrite device now considers FDArray fonts' FontMatrix and writes correct W/W2/DW/DW2 widths for CIDFont with unusual FontMatrix.  This also fixes a problem gs_font::orig_FontMatrix not being initialized for CIDFont.
      +Fix for bug 691103.  The pdfwrite device now considers FDArray fonts'
      +FontMatrix and writes correct W/W2/DW/DW2 widths for CIDFont with unusual
      +FontMatrix.  This also fixes a problem gs_font::orig_FontMatrix not being
      +initialized for CIDFont.
       Bug687832.pdf and Bug690834.ps will show differences which are improvements.
       

      [Resource/Init/gs_cidfn.ps base/gdevpdtt.c]

      @@ -35041,7 +52612,9 @@ 2010-02-22T11:45:33.943563Z Chris Liddell

      -resolve inappropriate variable type (signed vs unsigned) and comparisons with the wrong variable when writing the local subrs info to the serialized T2 Private dictionary.
      +resolve inappropriate variable type (signed vs unsigned) and comparisons with +the wrong variable when writing the local subrs info to the serialized T2 Private +dictionary.

      [psi/write_t2.c]

      @@ -35212,7 +52785,7 @@ San Rafael, CA 94903, U.S.A., +1(415)492-9861, for further information.

      -Ghostscript version 9.04, 5 August 2011 +Ghostscript version 9.05, 30 January 2012 diff -Nru ghostscript-9.05~dfsg~20120125/doc/Install.htm ghostscript-9.05~dfsg~20120202/doc/Install.htm --- ghostscript-9.05~dfsg~20120125/doc/Install.htm 2012-01-07 20:18:22.000000000 +0000 +++ ghostscript-9.05~dfsg~20120202/doc/Install.htm 2012-02-02 20:29:40.000000000 +0000 @@ -565,7 +565,7 @@ San Rafael, CA 94903, U.S.A., +1(415)492-9861, for further information.

      -Ghostscript version 9.04, 5 August 2011 +Ghostscript version 9.05, 30 January 2012 diff -Nru ghostscript-9.05~dfsg~20120125/doc/Issues.htm ghostscript-9.05~dfsg~20120202/doc/Issues.htm --- ghostscript-9.05~dfsg~20120125/doc/Issues.htm 2011-09-29 11:01:34.000000000 +0000 +++ ghostscript-9.05~dfsg~20120202/doc/Issues.htm 2012-02-02 20:29:40.000000000 +0000 @@ -589,7 +589,7 @@ San Rafael, CA 94903, U.S.A., +1(415)492-9861, for further information.

      -Ghostscript version 9.04, 5 August 2011 +Ghostscript version 9.05, 30 January 2012 diff -Nru ghostscript-9.05~dfsg~20120125/doc/Language.htm ghostscript-9.05~dfsg~20120202/doc/Language.htm --- ghostscript-9.05~dfsg~20120125/doc/Language.htm 2011-11-21 08:55:19.000000000 +0000 +++ ghostscript-9.05~dfsg~20120202/doc/Language.htm 2012-02-02 20:29:40.000000000 +0000 @@ -2343,7 +2343,7 @@ San Rafael, CA 94903, U.S.A., +1(415)492-9861, for further information.

      -Ghostscript version 9.04, 5 August 2011 +Ghostscript version 9.05, 30 January 2012 diff -Nru ghostscript-9.05~dfsg~20120125/doc/Lib.htm ghostscript-9.05~dfsg~20120202/doc/Lib.htm --- ghostscript-9.05~dfsg~20120125/doc/Lib.htm 2011-09-29 11:01:34.000000000 +0000 +++ ghostscript-9.05~dfsg~20120202/doc/Lib.htm 2012-02-02 20:29:40.000000000 +0000 @@ -862,7 +862,7 @@ San Rafael, CA 94903, U.S.A., +1(415)492-9861, for further information.

      -Ghostscript version 9.04, 5 August 2011 +Ghostscript version 9.05, 30 January 2012 diff -Nru ghostscript-9.05~dfsg~20120125/doc/Make.htm ghostscript-9.05~dfsg~20120202/doc/Make.htm --- ghostscript-9.05~dfsg~20120125/doc/Make.htm 2012-01-25 08:44:24.000000000 +0000 +++ ghostscript-9.05~dfsg~20120202/doc/Make.htm 2012-02-02 20:29:40.000000000 +0000 @@ -2911,7 +2911,7 @@ San Rafael, CA 94903, U.S.A., +1(415)492-9861, for further information.

      -Ghostscript version 9.04, 5 August 2011 +Ghostscript version 9.05, 30 January 2012 diff -Nru ghostscript-9.05~dfsg~20120125/doc/News.htm ghostscript-9.05~dfsg~20120202/doc/News.htm --- ghostscript-9.05~dfsg~20120125/doc/News.htm 2011-09-29 11:01:34.000000000 +0000 +++ ghostscript-9.05~dfsg~20120202/doc/News.htm 2012-02-02 20:29:40.000000000 +0000 @@ -57,237 +57,52 @@ -

      Version 9.04 (2011-08-05)

      +

      Version 9.05 (2012-01-30)

      -

      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. +

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

      Highlights in this release include:

        -
      • -Transition source base to git source control - not a big deal for most users, -but an important change for those who develop Ghostscript and GhostPDL. +
      • Ghostscript's PDF interpreter is now able to make use of the DroidSansFallback +TrueType font to automatically substitute for missing CIDFonts. Whilst it is +always best to ensure the original CIDFont is available for the best +and most accurate output, the ability to make an automatic substitution will +be valuable for those merely viewing or proofing such files.

      • -
        -
      • -This release introduces flexibility for controlling color based upon the -graphic object type. In particular, it is now possible to specify unique -output ICC profiles and rendering intents for vector graphic, image and text -portions of a document. It is also possible to override source color -specifications and use specified ICC profiles and rendering intents for -RGB and CMYK vector graphics, images and text portions of a document. Finally, -DeviceGray source colors can now easily be specified to map either to K only -or composite CMYK when the output device supports CMYK colorants. + +
      • Ghostscript now supports "unmanaged color transformations" for source DeviceXXX +colors (in other words, they use a simple conversion, rather than the ICC profile +based color workflow). This is beneficial in uses where performance takes precedence +over ultimate color fidelity (the command line parameter -dUseFastColor enables this).

      • -
        -
      • -New tiffscaled8 and tiffscaled24 devices. Add new tiffscaled8 and tiffscaled24 -devices, copied and modified from tiffscaled. These output grayscale and 24bit rgb -instead of tiffscaleds mono output. MinFeatureSize is ignored for these devices as -it's meaningless for contone output. Downscaling is also now supported for png16m -and pnggray, and a new pngmonod device has been implemented which uses grayscale -rendering internally and then downscales/min_feature_sizes/error diffuses to monochrome. +
      • The font set distributed with Ghostscript has been changed to the standard +35 Postscript-compatible fonts distributed by URW.

      • -
        -
      • -The PDF interpreter will now try to continue interpreting a PDF after encountering -an error in a stream. The previous bevahior can be reinstated by passing --dPDFSTOPONERROR to Ghostscript. +
      • Ghostscript now includes a simple ink-coverage device, contributed by +Sebastian Kapfer (inkconv).

      • -
        -
      • -Re-enable x11alpha as the default device on Unix systems, now that compatibility -problems between anti-aliased output and transparency are resolved. +
      • The TIFF, JPEG and PNG output devices now support embedding of the device ICC profile +in the output file.

      • -
        -
      • -Update libjpeg to version 8c. +
      • Ghostscript now ships modified OpenJPEG sources for JPEG2000 decoding (replacing +JasPer - although JasPer is still included for this release). Performance, reliability +and memory use whilst decoding JPX streams are all improved

      • -
        -
      • - Experimental Text output/extraction device -

        The txtwrite device has undergone some development, and now has genuine -functionality. It accepts any input format which GhostPDL supports, and uses a -combination of methods to try and determine the Unicode values for any text -contained in the document. - -

        The code descends a hierarchy of methods in this process, starting with the -most reliable and only falling back to less reliable methods when better methods -fail. The current hierarchy is as follows: - -

          -
        1. ToUnicode CMaps (PostScript or PDF) or GlyphNamesToUnicode tables (PostScript).
        2. -
        3. Glyph names of the form 'unixxxx'.
        4. -
        5. Glyph names defined in the Adobe Glyph List document.
        6. -
        7. Input character code.
        8. -
        - -

        Method 1 is highly reliable, method 4 is a best guess and not terribly -reliable, though it will work for many files. It is probably most reliable -for PostScript and PCL files. - -

        The device currently has one parameter 'TextFormat' which controls whether -the output is Unicode text reflecting the layout of the original document -(-dTextFormat=0) or a format intended for use by developers which includes the -Unicode text and some formatting information, such as the size and position of -the text, and the font in use (-dTextFormat=1). - -

        Note that his device does not do OCR (Optical Character Recognition) it is -not capable of finding 'text' which is part of an image. However it will recover -the 'invisible' text from PDF documents which have been scanned and OCR'ed -by Acrobat for searching. Such text has a render mode of 3. - -

        This is the first release of this code and is very much an alpha release, we -expect problems. - -

        In particular the TextFormat=0 output is likely to be incorrect, and will -only work with top-to-bottom left-to-right text. It will probably also be -confused by landscape documents printed on portrait media. - -

        TextFormat=1 should be more reliable, but there may be cases where text is -dropped from the output. Text in PostScript documents using charpath is not yet -supported for example. - -

        We do encourage feedback on the state of this device, and would be -interested in hearing what kind of output would be useful for developers -using TextFormat=1. For now, however, please do not raise bugs through Bugzilla, -instead please send feedback to the gs-devel mailing list. +

      • jbig2dec now has simple halftone region support

      • -
        -
      • - Experimental Unicode/UTF8 Support on Windows -

        This release introduces some experimental build-time optional support -for UNICODE pathnames on Windows. Essentially this works by following -the model that Linux (and MacOS) have followed for years. - -

        If this code is enabled, then the way ghostscript handles command lines, -registry settings, file accesses and other api calls with top bit set -characters in (i.e. codes >= 128) will change. The net benefit of this -change is that ghostscript will now be able to cope with accessing -files with unicode characters (i.e. codes >= 256) in their pathnames. - -

        This behavior is all completely transparent to users, with the exception -of those calling the gsapi functions with strings including 'extended -ascii' (i.e. characters with codes >= 128 and <= 255). These characters -include accented latin characters, such as u + umlaut, a + grave etc. -The changes required for code that is affected by this are relatively -minor, but as this is a change to the current API, we are announcing -it in advance, and inviting comments. - -

        As of the 9.04 release, the code is disabled. For those who wish to -experiment you will need to build Ghostscript from source, and either -pass USEUNICODE=1 when you invoke nmake or edit psi/msvc.mak to remove -the /DWINDOWS_NO_UNICODE option from CFLAGS. - -

        WARNING: Our intention, subject to feedback, is to enable this by -default in near-future releases (hopefully, the next major release). -If you make use of the affected APIs you should be prepared for the -change to occur - be aware, however, that the current code is -experimental and, depending on the feedback we get, maybe subject -to change. - -

        NOTE: this whole change refers to file paths, command line parameters -and so on - it does not imply that we have unilaterally extended -Postscript to understand UNICODE. - -

        More details: - -

        To give an example, suppose we have a file 'EXAMPLE' we'd like to -invoke ghostscript on, where 'EXAMPLE' is actually a string that -contains some characters with codes >= 128. - -

        On Linux (or MacOS X), when ghostscript is called from a shell, e.g. - -

        gs EXAMPLE - -

        the command is UTF8 encoded; this means that characters with codes < 128 -are left unchanged, and characters >= 128 are encoded into multiple bytes. -This encoded string is then passed to the standard 'main' entrypoint in -the gs executable. - -

        Ghostscript proceeds internally without any special handling of these -multibyte characters at all. When it comes to access files it therefore -passes out the UTF8 encoded strings to the standard OS file handling -routines. These routines are designed to take pathnames in UTF8 format, -and thus the files are accessed as normal. - -

        If the Ghostscript executable outputs these (or other) strings to its -stdout, the shell again converts the output from UTF8 back to unicode in -order to display it. - -

        The net effect is that the caller can seamlessly pass in unicode filenames, -has his fileaccesses work out and gets unicode output without the core -of ghostscript ever having to worry about it. - -

        The code change discussed here endeavours to make Windows follow the same -pattern as closely as possible. - -

        When Windows executables are invoked, they can either be called through -an 'ascii' entrypoint (main), or through a unicode ('wide') entrypoint -(wmain). The difference is invisible to the caller, except that unicode -executables can accept characters >= 256 in their invocations. - -

        The new code changes ghostscript from being an ascii executable to being -a unicode one. The Windows specific outer layer takes the unicode -command string and UTF8 encodes it before passing it to the ghostscript -core. - -

        Similarly, the Windows specific filing system calls are updated to -accept utf8 encoded strings from the core, and to convert them to -unicode before operating on them. - -

        The Windows gui app (gswin32.exe, NOT gswin32c.exe) is also updated to -convert stdin/stdout between unicode and utf8 as appropriate, allowing -unicode strings to be copied/pasted to/from other apps. - -

        All of this should be completely transparent to the user, and no code -changes should be required. The one area where changes may be required -are where ghostscript is invoked through the gsapi functions. - -

        Currently, on Linux (and MacOS X) any strings sent over the gsapi are -assumed to be utf8 encoded (and thus can represent any Unicode -character). On Windows, they are assumed simply to be in extended ASCII -(and can therefore represent any character < 256 in the current codepage). -With the proposed change, Windows will move to be in step with Linux. -No differences will be caused to anyone who only uses chars <= 128, -but those people using character codes between 128 and 256 (or indeed -wanting to use higher codes) will need to utf8 encode the strings before -calling gsapi functions. - -

        Such encoding/decoding is a very simple process, and code for both -directions can be found in psi/dwmain.c, psi/dwmainc.c and psi/dwtext.c. - -

        Again, we welcome feedback on this feature, in this case problems -or suggestions about the implementation can be submitted via Bugzilla -but for detailed discussion about the approach for which we opted, it -would be more beneficial discuss it (preferably) on our IRC channel -#ghostscript on freenode.net, or on the gs-devel mailing list. +

      • The ps2write device has had a large number of output quality and stability +improvements.

      • -
      -


      +

      +

      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. - +

      Incompatible changes

      -No other recorded incompatible changes. +No recorded incompatible changes. -

      Changelog

      +

      Changelog

      See the history file for complete log of changes. @@ -298,7 +113,7 @@


      -Copyright © 2005-2011 Artifex Software, Inc. +Copyright © 2005-2012 Artifex Software, Inc. All rights reserved.

      @@ -312,7 +127,7 @@ San Rafael, CA 94903, U.S.A., +1(415)492-9861, for further information.

      -Ghostscript version 9.04, 5 August 2011 +Ghostscript version 9.05, 30 January 2012 diff -Nru ghostscript-9.05~dfsg~20120125/doc/Projects.htm ghostscript-9.05~dfsg~20120202/doc/Projects.htm --- ghostscript-9.05~dfsg~20120125/doc/Projects.htm 2011-09-29 11:01:34.000000000 +0000 +++ ghostscript-9.05~dfsg~20120202/doc/Projects.htm 2012-02-02 20:29:40.000000000 +0000 @@ -670,7 +670,7 @@ San Rafael, CA 94903, U.S.A., +1(415)492-9861, for further information.

      -Ghostscript version 9.04, 5 August 2011 +Ghostscript version 9.05, 30 January 2012 diff -Nru ghostscript-9.05~dfsg~20120125/doc/Ps2epsi.htm ghostscript-9.05~dfsg~20120202/doc/Ps2epsi.htm --- ghostscript-9.05~dfsg~20120125/doc/Ps2epsi.htm 2011-09-29 11:01:34.000000000 +0000 +++ ghostscript-9.05~dfsg~20120202/doc/Ps2epsi.htm 2012-02-02 20:29:40.000000000 +0000 @@ -177,7 +177,7 @@ San Rafael, CA 94903, U.S.A., +1(415)492-9861, for further information.

      -Ghostscript version 9.04, 5 August 2011 +Ghostscript version 9.05, 30 January 2012 diff -Nru ghostscript-9.05~dfsg~20120125/doc/Ps2pdf.htm ghostscript-9.05~dfsg~20120202/doc/Ps2pdf.htm --- ghostscript-9.05~dfsg~20120125/doc/Ps2pdf.htm 2012-01-25 08:44:24.000000000 +0000 +++ ghostscript-9.05~dfsg~20120202/doc/Ps2pdf.htm 2012-02-02 20:29:40.000000000 +0000 @@ -1094,7 +1094,7 @@ San Rafael, CA 94903, U.S.A., +1(415)492-9861, for further information.

      -Ghostscript version 9.04, 5 August 2011 +Ghostscript version 9.05, 30 January 2012 diff -Nru ghostscript-9.05~dfsg~20120125/doc/Ps2ps2.htm ghostscript-9.05~dfsg~20120202/doc/Ps2ps2.htm --- ghostscript-9.05~dfsg~20120125/doc/Ps2ps2.htm 2012-01-25 08:44:24.000000000 +0000 +++ ghostscript-9.05~dfsg~20120202/doc/Ps2ps2.htm 2012-02-02 20:29:40.000000000 +0000 @@ -282,7 +282,7 @@ San Rafael, CA 94903, U.S.A., +1(415)492-9861, for further information.

      -Ghostscript version 9.04, 5 August 2011 +Ghostscript version 9.05, 30 January 2012 diff -Nru ghostscript-9.05~dfsg~20120125/doc/Psfiles.htm ghostscript-9.05~dfsg~20120202/doc/Psfiles.htm --- ghostscript-9.05~dfsg~20120125/doc/Psfiles.htm 2011-09-29 11:01:34.000000000 +0000 +++ ghostscript-9.05~dfsg~20120202/doc/Psfiles.htm 2012-02-02 20:29:40.000000000 +0000 @@ -1018,7 +1018,7 @@ San Rafael, CA 94903, U.S.A., +1(415)492-9861, for further information.

      -Ghostscript version 9.04, 5 August 2011 +Ghostscript version 9.05, 30 January 2012 diff -Nru ghostscript-9.05~dfsg~20120125/doc/Ps-style.htm ghostscript-9.05~dfsg~20120202/doc/Ps-style.htm --- ghostscript-9.05~dfsg~20120125/doc/Ps-style.htm 2011-09-29 11:01:34.000000000 +0000 +++ ghostscript-9.05~dfsg~20120202/doc/Ps-style.htm 2012-02-02 20:29:40.000000000 +0000 @@ -506,7 +506,7 @@ San Rafael, CA 94903, U.S.A., +1(415)492-9861, for further information.

      -Ghostscript version 9.04, 5 August 2011 +Ghostscript version 9.05, 30 January 2012 diff -Nru ghostscript-9.05~dfsg~20120125/doc/Readme.htm ghostscript-9.05~dfsg~20120202/doc/Readme.htm --- ghostscript-9.05~dfsg~20120125/doc/Readme.htm 2011-09-29 11:01:34.000000000 +0000 +++ ghostscript-9.05~dfsg~20120202/doc/Readme.htm 2012-02-02 20:29:40.000000000 +0000 @@ -36,6 +36,16 @@

      Table of contents

    • Primarily for developers:
      @@ -520,6 +531,16 @@
      +
      thirdparty.htm +
      +Contains a table of "third party libraries" (that is, code from outwith the +Ghostscript/GhostPDL project) that we import to our project and supply in our +releases. Including the purpose they serve, the version we QA and ship, the +license under which the code distributed and the URL for the "upstream" +project. +
      + +
      COPYING
      The GNU General Public License, which states the conditions for using and redistributing GPL Ghostscript. @@ -582,7 +603,7 @@ San Rafael, CA 94903, U.S.A., +1(415)492-9861, for further information.

      -Ghostscript version 9.04, 5 August 2011 +Ghostscript version 9.05, 30 January 2012 diff -Nru ghostscript-9.05~dfsg~20120125/doc/Release.htm ghostscript-9.05~dfsg~20120202/doc/Release.htm --- ghostscript-9.05~dfsg~20120125/doc/Release.htm 2011-09-29 11:01:34.000000000 +0000 +++ ghostscript-9.05~dfsg~20120202/doc/Release.htm 2012-02-02 20:29:40.000000000 +0000 @@ -845,7 +845,7 @@ San Rafael, CA 94903, U.S.A., +1(415)492-9861, for further information.

      -Ghostscript version 9.04, 5 August 2011 +Ghostscript version 9.05, 30 January 2012 diff -Nru ghostscript-9.05~dfsg~20120125/doc/Source.htm ghostscript-9.05~dfsg~20120202/doc/Source.htm --- ghostscript-9.05~dfsg~20120125/doc/Source.htm 2011-09-29 11:01:34.000000000 +0000 +++ ghostscript-9.05~dfsg~20120202/doc/Source.htm 2012-02-02 20:29:40.000000000 +0000 @@ -377,7 +377,7 @@ San Rafael, CA 94903, U.S.A., +1(415)492-9861, for further information.

      -Ghostscript version 9.04, 5 August 2011 +Ghostscript version 9.05, 30 January 2012 diff -Nru ghostscript-9.05~dfsg~20120125/doc/thirdparty.htm ghostscript-9.05~dfsg~20120202/doc/thirdparty.htm --- ghostscript-9.05~dfsg~20120125/doc/thirdparty.htm 2012-01-25 08:44:24.000000000 +0000 +++ ghostscript-9.05~dfsg~20120202/doc/thirdparty.htm 2012-02-02 20:29:40.000000000 +0000 @@ -160,28 +160,6 @@

      - - - - - - - - + + + + + + + + + + + + + + + + + @@ -308,6 +323,20 @@ + + + + + + + +
      -jpegxr -
      -(JPEG XR reference software) -
      -1.8 - -HDPhoto/JPEG-XR image decoding for the XPS interpreter. - -ITU/ISO/IEC "Free" Licence -
      -Reference implementation -
      -http://www.itu.int/rec/T-REC-T.835 -
      LittleCMS 2
      (lcms2) @@ -279,6 +257,7 @@ http://www.zlib.net/

      @@ -295,7 +274,43 @@
      -The following are relevant to Artifex commercial releases only +The following are no-cost, open source licensed, but not GPL compatible + + + + +
      +jpegxr +
      +(JPEG XR reference software) +
      +1.8 + +HDPhoto/JPEG-XR image decoding for the XPS interpreter. + +ITU/ISO/IEC "Free" Licence +
      +Reference implementation +
      +http://www.itu.int/rec/T-REC-T.835 +
      +
      +The following are relevant to Artifex commercial releases only + + + + +
      AGFA UFST
      @@ -467,7 +496,7 @@ San Rafael, CA 94903, U.S.A., +1(415)492-9861, for further information.

      -Ghostscript version 9.04, 5 August 2011 +Ghostscript version 9.05, 30 January 2012 diff -Nru ghostscript-9.05~dfsg~20120125/doc/Unix-lpr.htm ghostscript-9.05~dfsg~20120202/doc/Unix-lpr.htm --- ghostscript-9.05~dfsg~20120125/doc/Unix-lpr.htm 2011-09-29 11:01:34.000000000 +0000 +++ ghostscript-9.05~dfsg~20120202/doc/Unix-lpr.htm 2012-02-02 20:29:40.000000000 +0000 @@ -261,7 +261,7 @@ San Rafael, CA 94903, U.S.A., +1(415)492-9861, for further information.

      -Ghostscript version 9.04, 5 August 2011 +Ghostscript version 9.05, 30 January 2012 diff -Nru ghostscript-9.05~dfsg~20120125/doc/Use.htm ghostscript-9.05~dfsg~20120202/doc/Use.htm --- ghostscript-9.05~dfsg~20120125/doc/Use.htm 2012-01-25 08:44:24.000000000 +0000 +++ ghostscript-9.05~dfsg~20120202/doc/Use.htm 2012-02-02 20:29:40.000000000 +0000 @@ -2741,6 +2741,11 @@

      ICC color parameters

      +
      +For details about the ICC controls see the document +GS9 Color Management. +
      +
      -sDefaultGrayProfile=filename
      Set the ICC profile that will be associated with @@ -2779,17 +2784,26 @@
      -sProofProfile=filename -
      Define the proofing ICC profile. This is the profile for the -device to which we would like the output to appear to be rendered. -This is not fully implemented at this time. +
      +Enable the specificiation of a proofing profile that will make the +color manegement system link multiple profiles together to emulate the +device defined by the proofing profile. See the document +GS9 Color Management for details about this option.
      -sDeviceLinkProfile=filename -
      Define a device link profile through which the the rendered -buffers should be remapped. This is not fully -implemented at this time and will be only available for a select -few devices. +
      Define a device link profile. This profile is used following +the output device profile. Care should be taken to ensure that the +output device process color model is the same as the output color +space for the device link profile. In addition, the color space of +the OutputICCProfile should match the input color space of the device +link profile. For example, the following would be a valid specification +-sDEVICE=tiff32nc -sOutputICCProfile=srgb.icc -sDeviceLinkProfile=linkRGBtoCMYK.icc. +In this case, the output device's color model is CMYK (tiff32nc) and the colors +are mapped through sRGB and through a devicelink profile that maps sRGB to +CMYK values. See the document +GS9 Color Management for details about this option.
      @@ -2824,7 +2838,8 @@
      -sRenderIntent=intent
      Set the rendering intent that should be used with the profile specified above by -sOutputICCProfile. The -options for intent are per, col , sat, and abs, +options for intent are +0, 1, 2, and 3, which correspond to the ICC intents of Perceptual, Colorimetric, Saturation, and Absolute Colorimetric. Also see OverrideRI. @@ -2922,7 +2937,8 @@ Profiles to demonstrate this method of specification are also included in this folder. Note that if objects are colorimetrically specified through this mechanism other operations like -sImageIntent, --dOverrideICC, have no real affect. +-dOverrideICC, have no real affect. See further details in the document +GS9 Color Management.
      @@ -2937,6 +2953,16 @@
      +
      -dUseFastColor=true/false +
      +This is used to avoid the use of ICC profiles for source colors that +are defined by DeviceGray, DeviceRGB and DeviceCMYK definitions. With +UseFastColor set to true, the traditional Postscript 255 minus operations +are used to convert between RGB and CMYK with black generation and undercolor +removal mappings. +
      + +
      -sICCProfilesDir=path
      Set a directory in which to search for the above profiles. The directory path must end with a file system delimiter. @@ -4077,7 +4103,7 @@ San Rafael, CA 94903, U.S.A., +1(415)492-9861, for further information.

      -Ghostscript version 9.04, 5 August 2011 +Ghostscript version 9.05, 30 January 2012 diff -Nru ghostscript-9.05~dfsg~20120125/doc/WhatIsGS.htm ghostscript-9.05~dfsg~20120202/doc/WhatIsGS.htm --- ghostscript-9.05~dfsg~20120125/doc/WhatIsGS.htm 1970-01-01 00:00:00.000000000 +0000 +++ ghostscript-9.05~dfsg~20120202/doc/WhatIsGS.htm 2012-02-02 18:32:11.000000000 +0000 @@ -0,0 +1,205 @@ + + + + +What is Ghostscript? + + + + + + + + + + +

      What is Ghostscript?

      + + + + + +

      +There are various different products in the Ghostscript family; this document +attempts to explain what they are, and how they are related. + + + +


      + + + +

      Table of contents

      + +
      + + + +
      + + + + + +

      What is Ghostscript?

      + +

      Ghostscript is an interpreter for PostScript and Portable Document Format +(PDF) files. It is available both under the GNU GPL license +and for commercial licensing +from Artifex. It has been under active +development for over 20 years and has been ported to many different systems +during this time. + +

      Ghostscript consists of a PostScript interpreter layer, and a graphics +library. Sometimes the Ghostscript graphics library is confusingly also referred +to simply as Ghostscript. Even more confusingly, sometimes people say Ghostscript +when they really mean GhostPDL. + +

      Binaries for Ghostscript for various systems can be downloaded from +www.ghostscript.com/download. The +source code is included in both the Ghostscript and GhostPDL downloads from +the same site. + +

      What is GhostPDF?

      + +

      GhostPDF is an interpreter built on top of Ghostscript that handles PDF files. +Currently GhostPDF relies on extensions to the PostScript language/imaging model, +and so cannot be used independently of the Ghostscript PostScript interpreter +component. As such GhostPDF is an umbrella term used to refer to both these +extensions and the interpreter code. + +

      Many people (including the authors) frequently just refer to Ghostscript +as supporting PDF and only specifically mention GhostPDF when wanting to make +the distinction between the PostScript and PDF support. + +

      GhostPDF is included in the Ghostscript binaries for various systems available +from www.ghostscript.com/download. +The source can be found in both the Ghostscript and GhostPDL downloads from +the same site. + +

      What is GhostPCL?

      + +

      GhostPCL is an interpreter for PCL and PXL files. This consists of an +PCL/PXL interpreter hooked up to the Ghostscript graphics library. + +

      GhostPCL is available both under the GNU GPL license +and for commercial licensing +from Artifex. + +

      Binaries for GhostPCL for various systems can be downloaded from +www.ghostscript.com/download. The +source can be found in the GhostPCL/GhostPDL downloads from the same site. + +

      What is GhostXPS?

      + +

      GhostXPS is an interpreter for XPS (XML Paper Specfication) files. This +consists of an XPS interpreter hooked up to the Ghostscript graphics library. + +

      GhostXPS is available both under the GNU GPL license +and for commercial licensing +from Artifex. + +

      Binaries for GhostXPS for various systems can be downloaded from +www.ghostscript.com/download. The +source can be found in the GhostXPS/GhostPDL downloads from the same site. + +

      What is GhostSVG?

      + +

      GhostSVG is an interpreter for SVG (Scalable Vector Graphics) files. This +consists of an SVG interpreter hooked up to the Ghostscript graphics library. +This project has acheived proof of concept, but is not actively being worked +on. + +

      GhostSVG is available both under the GNU GPL license +and for commercial licensing +from Artifex. + +

      The source code for GhostSVG can be found in the GhostPDL archives on +www.ghostscript.com/download. + +

      What is GhostPDL?

      + +

      GhostPDL (Ghost Page Description Languages) is an umbrella term for all +the above technologies. As all the above interpreters are built upon a +single graphics library, there are size and portability benefits to using +two of more of the languages in a given project. A product that +includes more than one such language in a single binary and automatically +chooses between them is sometimes referred to as a "Language Switch" build. + +

      GhostPDL is available both under the GNU GPL license +and for commercial licensing +from Artifex. + +

      The source code for GhostPDL can be found on +www.ghostscript.com/download. + +

      What is MuPDF?

      + +

      MuPDF is an alternative PDF viewer/library also written by some of the +Ghostscript developers and licensed under the same dual +GNU GPL/ +commercial license scheme +by Artifex. + +

      Like Ghostscript, MuPDF consists both of an interpreter and a graphics +library (sometimes called 'Fitz'). The name MuPDF is used both to +refer to the PDF interpreter/viewer, the associated tools for manipulating +PDF files and to the package of MuPDF and MuXPS together. + +

      MuPDF itself supports only PDF, not PostScript, and none of the +Ghostscript PostScript/PDF interpreter code is shared with MuPDF (except +for certain self-contained decoder libraries, such as JBig2Dec). + +

      Binaries for MuPDF for various systems can be downloaded from +www.ghostscript.com/download. The +source can be found on the same site. + +

      What is MuXPS?

      + +

      MuXPS is an XPS viewer/library, developed from the GhostXPS interpreter +and the MuPDF graphics library. MuXPS is distributed as part of the MuXPS +bundle, but can be separated from the PDF interpreter component of MuPDF +if required. + +

      Binaries for MuXPS for various systems can be downloaded as part of the MuPDF +distributions from +www.ghostscript.com/download. The +source can be found on the same site. + + + + +


      +

      PostScript is a registered trademark of Adobe Systems Inc. +

      PCL is a registered trademark of Hewlett-Packard Company. +


      + +

      +Copyright © 2000-2012 Artifex Software, Inc. All rights reserved. + +

      +This software is provided AS-IS with no warranty, either express or +implied. + +This software is distributed under license and may not be copied, modified +or distributed except as expressly authorized under the terms of that +license. Refer to licensing information at http://www.artifex.com/ +or contact Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, +San Rafael, CA 94903, U.S.A., +1(415)492-9861, for further information. + +

      +Ghostscript version 9.05, 30 January 2012 + + + + + diff -Nru ghostscript-9.05~dfsg~20120125/doc/Xfonts.htm ghostscript-9.05~dfsg~20120202/doc/Xfonts.htm --- ghostscript-9.05~dfsg~20120125/doc/Xfonts.htm 2011-09-29 11:01:34.000000000 +0000 +++ ghostscript-9.05~dfsg~20120202/doc/Xfonts.htm 2012-02-02 20:29:40.000000000 +0000 @@ -272,7 +272,7 @@ San Rafael, CA 94903, U.S.A., +1(415)492-9861, for further information.

      -Ghostscript version 9.04, 5 August 2011 +Ghostscript version 9.05, 30 January 2012 diff -Nru ghostscript-9.05~dfsg~20120125/lib/opdfread.ps ghostscript-9.05~dfsg~20120202/lib/opdfread.ps --- ghostscript-9.05~dfsg~20120125/lib/opdfread.ps 2012-01-07 20:18:22.000000000 +0000 +++ ghostscript-9.05~dfsg~20120202/lib/opdfread.ps 2012-02-02 18:32:11.000000000 +0000 @@ -1959,7 +1959,7 @@ 2 copy get % fr E M s mw c0 W i w exch 3 index add % fr E M s mw c0 W w c 7 index exch get % fr E M s mw c0 W w n - dup null ne { + dup dup null ne exch /.notdef ne and { 6 index 3 1 roll exch % fr E M s mw c0 W M n w 6 index div 3 copy pop //knownget exec { diff -Nru ghostscript-9.05~dfsg~20120125/LICENSE ghostscript-9.05~dfsg~20120202/LICENSE --- ghostscript-9.05~dfsg~20120125/LICENSE 2011-09-29 11:01:33.000000000 +0000 +++ ghostscript-9.05~dfsg~20120202/LICENSE 2012-02-02 18:32:11.000000000 +0000 @@ -1,54 +1,59 @@ - - The files in the base, psi, lib, toolbin, examples, doc and man - directories (folders) and any subdirectories (sub-folders) - thereof are part of GPL Ghostscript. - - The files in the Resource directory and any subdirectories thereof - are also part of GPL Ghostscript, with the explicit exception of - the files in the CMap subdirectory. The CMap files are copyright - Adobe Systems Incorporated and covered by a separate license - which permits only verbatim distribution. - - GPL Ghostscript is free software; you can redistribute it and/or - modify it under the terms the GNU General Public License as - published by the Free Software Foundation, either version 3 - of the License, or (at your option) any later version. - - GPL Ghostscript is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program so you can know your rights and responsibilities. - It should be in a file named doc/COPYING. If not, write to the - Free Software Foundation, Inc., 59 Temple Place Suite 330, Boston, MA - 02111-1307, USA. - - --- - - GPL Ghostscript contains an implementation of techniques covered - by US Patents 5,055,942 and 5,917,614, and corresponding - international patents. These patents are licensed for use with - GPL Ghostscript under the following grant: - - Whereas, Raph Levien (hereinafter "Inventor") has obtained patent - protection for related technology (hereinafter "Patented - Technology"), Inventor wishes to aid the the GNU free software - project in achieving its goals, and Inventor also wishes to - increase public awareness of Patented Technology, Inventor hereby - grants a fully paid up, nonexclusive, royalty free license to - practice the patents listed below ("the Patents") if and only if - practiced in conjunction with software distributed under the - terms of any version of the GNU General Public License as - published by the Free Software Foundation, 59 Temple Place, Suite - 330, Boston, MA 02111. Inventor reserves all other rights, - including without limitation, licensing for software not - distributed under the GNU General Public License. - - 5055942 Photographic image reproduction device using digital - halftoning to screen images allowing adjustable coarseness - - 5917614 Method and apparatus for error diffusion screening of - images with improved smoothness in highlight and shadow - regions +The files in the base, psi, lib, toolbin, examples, doc and man +directories (folders) and any subdirectories (sub-folders) +thereof are part of GPL Ghostscript. + +The files in the Resource directory and any subdirectories thereof +are also part of GPL Ghostscript, with the explicit exception of +the files in the CMap subdirectory (except "Identity-UTF16-H", +which is part of GPL Ghostscript). The CMap files are copyright +Adobe Systems Incorporated and covered by a separate, GPL +compatible license. + +The files under the jpegxr directory and any subdirectories +thereof are distributed under a no cost, open source license +granted by the ITU/ISO/IEC but it is not GPL compatible - see +jpegxr/COPYRIGHT.txt for details. + +GPL Ghostscript is free software; you can redistribute it and/or +modify it under the terms the GNU General Public License as +published by the Free Software Foundation, either version 3 +of the License, or (at your option) any later version. + +GPL Ghostscript is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program so you can know your rights and responsibilities. +It should be in a file named doc/COPYING. If not, write to the +Free Software Foundation, Inc., 59 Temple Place Suite 330, Boston, MA +02111-1307, USA. + +--- + +GPL Ghostscript contains an implementation of techniques covered +by US Patents 5,055,942 and 5,917,614, and corresponding +international patents. These patents are licensed for use with +GPL Ghostscript under the following grant: + +Whereas, Raph Levien (hereinafter "Inventor") has obtained patent +protection for related technology (hereinafter "Patented +Technology"), Inventor wishes to aid the the GNU free software +project in achieving its goals, and Inventor also wishes to +increase public awareness of Patented Technology, Inventor hereby +grants a fully paid up, nonexclusive, royalty free license to +practice the patents listed below ("the Patents") if and only if +practiced in conjunction with software distributed under the +terms of any version of the GNU General Public License as +published by the Free Software Foundation, 59 Temple Place, Suite +330, Boston, MA 02111. Inventor reserves all other rights, +including without limitation, licensing for software not +distributed under the GNU General Public License. + +5055942 Photographic image reproduction device using digital +halftoning to screen images allowing adjustable coarseness + +5917614 Method and apparatus for error diffusion screening of +images with improved smoothness in highlight and shadow +regions diff -Nru ghostscript-9.05~dfsg~20120125/man/dvipdf.1 ghostscript-9.05~dfsg~20120202/man/dvipdf.1 --- ghostscript-9.05~dfsg~20120125/man/dvipdf.1 2011-09-29 11:01:35.000000000 +0000 +++ ghostscript-9.05~dfsg~20120202/man/dvipdf.1 2012-02-02 20:29:40.000000000 +0000 @@ -1,5 +1,5 @@ .\" $Id$ -.TH DVIPDF 1 "5 August 2011" 9.04 Ghostscript \" -*- nroff -*- +.TH DVIPDF 1 "30 January 2012" 9.05 Ghostscript \" -*- nroff -*- .SH NAME dvipdf \- Convert TeX DVI file to PDF using ghostscript and dvips .SH SYNOPSIS @@ -22,7 +22,7 @@ .SH SEE ALSO gs(1), dvips(1) .SH VERSION -This document was last revised for Ghostscript version 9.04. +This document was last revised for Ghostscript version 9.05. .SH AUTHOR Artifex Software, Inc. are the primary maintainers of Ghostscript. diff -Nru ghostscript-9.05~dfsg~20120125/man/font2c.1 ghostscript-9.05~dfsg~20120202/man/font2c.1 --- ghostscript-9.05~dfsg~20120125/man/font2c.1 2011-09-29 11:01:35.000000000 +0000 +++ ghostscript-9.05~dfsg~20120202/man/font2c.1 2012-02-02 20:29:40.000000000 +0000 @@ -1,5 +1,5 @@ .\" $Id$ -.TH FONT2C 1 "5 August 2011" 9.04 Ghostscript \" -*- nroff -*- +.TH FONT2C 1 "30 January 2012" 9.05 Ghostscript \" -*- nroff -*- .SH NAME font2c \- Write PostScript Type 0 or Type 1 font as C code .SH SYNOPSIS @@ -18,7 +18,7 @@ .SH SEE ALSO gs(1) .SH VERSION -This document was last revised for Ghostscript version 9.04. +This document was last revised for Ghostscript version 9.05. .SH AUTHOR Artifex Software, Inc. are the primary maintainers of Ghostscript. diff -Nru ghostscript-9.05~dfsg~20120125/man/gs.1 ghostscript-9.05~dfsg~20120202/man/gs.1 --- ghostscript-9.05~dfsg~20120125/man/gs.1 2011-09-29 11:01:35.000000000 +0000 +++ ghostscript-9.05~dfsg~20120202/man/gs.1 2012-02-02 20:29:40.000000000 +0000 @@ -1,5 +1,5 @@ .\" $Id$ -.TH GS 1 "5 August 2011" 9.04 Ghostscript \" -*- nroff -*- +.TH GS 1 "30 January 2012" 9.05 Ghostscript \" -*- nroff -*- .SH NAME gs \- Ghostscript (PostScript and PDF language interpreter and previewer) .SH SYNOPSIS @@ -404,7 +404,7 @@ See http://bugs.ghostscript.com/ and the Usenet news group comp.lang.postscript. .SH VERSION -This document was last revised for Ghostscript version 9.04. +This document was last revised for Ghostscript version 9.05. .SH AUTHOR Artifex Software, Inc. are the primary maintainers of Ghostscript. diff -Nru ghostscript-9.05~dfsg~20120125/man/gslp.1 ghostscript-9.05~dfsg~20120202/man/gslp.1 --- ghostscript-9.05~dfsg~20120125/man/gslp.1 2011-09-29 11:01:35.000000000 +0000 +++ ghostscript-9.05~dfsg~20120202/man/gslp.1 2012-02-02 20:29:40.000000000 +0000 @@ -1,5 +1,5 @@ .\" $Id$ -.TH GSLP 1 "5 August 2011" 9.04 Ghostscript \" -*- nroff -*- +.TH GSLP 1 "30 January 2012" 9.05 Ghostscript \" -*- nroff -*- .SH NAME gslp \- Format and print text using ghostscript .br @@ -93,7 +93,7 @@ .SH SEE ALSO gs(1) .SH VERSION -This document was last revised for Ghostscript version 9.04. +This document was last revised for Ghostscript version 9.05. .SH AUTHOR Artifex Software, Inc. are the primary maintainers of Ghostscript. diff -Nru ghostscript-9.05~dfsg~20120125/man/gsnd.1 ghostscript-9.05~dfsg~20120202/man/gsnd.1 --- ghostscript-9.05~dfsg~20120125/man/gsnd.1 2011-09-29 11:01:35.000000000 +0000 +++ ghostscript-9.05~dfsg~20120202/man/gsnd.1 2012-02-02 20:29:40.000000000 +0000 @@ -1,5 +1,5 @@ .\" $Id$ -.TH GSND 1 "5 August 2011" 9.04 Ghostscript \" -*- nroff -*- +.TH GSND 1 "30 January 2012" 9.05 Ghostscript \" -*- nroff -*- .SH NAME gsnd \- Run ghostscript (PostScript and PDF engine) without display .SH SYNOPSIS @@ -13,7 +13,7 @@ .SH SEE ALSO gs(1) .SH VERSION -This document was last revised for Ghostscript version 9.04. +This document was last revised for Ghostscript version 9.05. .SH AUTHOR Artifex Software, Inc. are the primary maintainers of Ghostscript. diff -Nru ghostscript-9.05~dfsg~20120125/man/pdf2dsc.1 ghostscript-9.05~dfsg~20120202/man/pdf2dsc.1 --- ghostscript-9.05~dfsg~20120125/man/pdf2dsc.1 2011-09-29 11:01:35.000000000 +0000 +++ ghostscript-9.05~dfsg~20120202/man/pdf2dsc.1 2012-02-02 20:29:40.000000000 +0000 @@ -1,5 +1,5 @@ .\" $Id$ -.TH PDF2DSC 1 "5 August 2011" 9.04 "Ghostscript Tools" \" -*- nroff -*- +.TH PDF2DSC 1 "30 January 2012" 9.05 "Ghostscript Tools" \" -*- nroff -*- .SH NAME pdf2dsc \- generate a PostScript page list of a PDF document .SH SYNOPSIS @@ -29,6 +29,6 @@ .SH SEE ALSO gs(1), ghostview(1) .SH VERSION -This document was last revised for Ghostscript version 9.04. +This document was last revised for Ghostscript version 9.05. .SH AUTHOR Yves Arrouye and Russell Lang gsview at ghostgum.com.au diff -Nru ghostscript-9.05~dfsg~20120125/man/pdf2ps.1 ghostscript-9.05~dfsg~20120202/man/pdf2ps.1 --- ghostscript-9.05~dfsg~20120125/man/pdf2ps.1 2011-09-29 11:01:35.000000000 +0000 +++ ghostscript-9.05~dfsg~20120202/man/pdf2ps.1 2012-02-02 20:29:40.000000000 +0000 @@ -1,5 +1,5 @@ .\" $Id$ -.TH PDF2PS 1 "5 August 2011" 9.04 "Ghostscript Tools" \" -*- nroff -*- +.TH PDF2PS 1 "30 January 2012" 9.05 "Ghostscript Tools" \" -*- nroff -*- .SH NAME pdf2ps \- Ghostscript PDF to PostScript translator .SH SYNOPSIS @@ -15,7 +15,7 @@ Run "\fBgs -h\fR" to find the location of Ghostscript documentation on your system, from which you can get more details. .SH VERSION -This document was last revised for Ghostscript version 9.04. +This document was last revised for Ghostscript version 9.05. .SH AUTHOR Artifex Software, Inc. are the primary maintainers of Ghostscript. diff -Nru ghostscript-9.05~dfsg~20120125/man/pdfopt.1 ghostscript-9.05~dfsg~20120202/man/pdfopt.1 --- ghostscript-9.05~dfsg~20120125/man/pdfopt.1 2011-09-29 11:01:35.000000000 +0000 +++ ghostscript-9.05~dfsg~20120202/man/pdfopt.1 2012-02-02 20:29:40.000000000 +0000 @@ -1,5 +1,5 @@ .\" $Id$ -.TH PDFOPT 1 "5 August 2011" 9.04 "Ghostscript Tools" \" -*- nroff -*- +.TH PDFOPT 1 "30 January 2012" 9.05 "Ghostscript Tools" \" -*- nroff -*- .SH NAME pdfopt \- Ghostscript PDF Optimizer .SH SYNOPSIS @@ -21,7 +21,7 @@ "Linearized PDF" in Adobe's PDF reference manual, http://partners.adobe.com/asn/developer/acrosdk/DOCS/pdfspec.pdf .SH VERSION -This document was last revised for Ghostscript version 9.04. +This document was last revised for Ghostscript version 9.05. .SH AUTHOR Artifex Software, Inc. are the primary maintainers of Ghostscript. diff -Nru ghostscript-9.05~dfsg~20120125/man/pf2afm.1 ghostscript-9.05~dfsg~20120202/man/pf2afm.1 --- ghostscript-9.05~dfsg~20120125/man/pf2afm.1 2011-09-29 11:01:35.000000000 +0000 +++ ghostscript-9.05~dfsg~20120202/man/pf2afm.1 2012-02-02 20:29:40.000000000 +0000 @@ -1,5 +1,5 @@ .\" $Id$ -.TH PF2AFM 1 "5 August 2011" 9.04 Ghostscript \" -*- nroff -*- +.TH PF2AFM 1 "30 January 2012" 9.05 Ghostscript \" -*- nroff -*- .SH NAME pf2afm \- Make an AFM file from Postscript (PFB/PFA/PFM) font files using ghostscript .SH SYNOPSIS @@ -16,7 +16,7 @@ .br pf2afm.ps in the Ghostscript lib directory. .SH VERSION -This document was last revised for Ghostscript version 9.04. +This document was last revised for Ghostscript version 9.05. .SH AUTHOR Artifex Software, Inc. are the primary maintainers of Ghostscript. diff -Nru ghostscript-9.05~dfsg~20120125/man/pfbtopfa.1 ghostscript-9.05~dfsg~20120202/man/pfbtopfa.1 --- ghostscript-9.05~dfsg~20120125/man/pfbtopfa.1 2011-09-29 11:01:35.000000000 +0000 +++ ghostscript-9.05~dfsg~20120202/man/pfbtopfa.1 2012-02-02 20:29:40.000000000 +0000 @@ -1,5 +1,5 @@ .\" $Id$ -.TH PFBTOPFA 1 "5 August 2011" 9.04 Ghostscript \" -*- nroff -*- +.TH PFBTOPFA 1 "30 January 2012" 9.05 Ghostscript \" -*- nroff -*- .SH NAME pfbtopfa \- Convert Postscript .pfb fonts to .pfa format using ghostscript .SH SYNOPSIS @@ -11,7 +11,7 @@ .SH SEE ALSO gs(1) .SH VERSION -This document was last revised for Ghostscript version 9.04. +This document was last revised for Ghostscript version 9.05. .SH AUTHOR Artifex Software, Inc. are the primary maintainers of Ghostscript. diff -Nru ghostscript-9.05~dfsg~20120125/man/printafm.1 ghostscript-9.05~dfsg~20120202/man/printafm.1 --- ghostscript-9.05~dfsg~20120125/man/printafm.1 2011-09-29 11:01:35.000000000 +0000 +++ ghostscript-9.05~dfsg~20120202/man/printafm.1 2012-02-02 20:29:40.000000000 +0000 @@ -1,5 +1,5 @@ .\" $Id$ -.TH PRINTAFM 1 "5 August 2011" 9.04 Ghostscript \" -*- nroff -*- +.TH PRINTAFM 1 "30 January 2012" 9.05 Ghostscript \" -*- nroff -*- .SH NAME printafm \- Print the metrics from a Postscript font in AFM format using ghostscript .SH SYNOPSIS @@ -12,7 +12,7 @@ .SH SEE ALSO gs(1) .SH VERSION -This document was last revised for Ghostscript version 9.04. +This document was last revised for Ghostscript version 9.05. .SH AUTHOR Artifex Software, Inc. are the primary maintainers of Ghostscript. diff -Nru ghostscript-9.05~dfsg~20120125/man/ps2ascii.1 ghostscript-9.05~dfsg~20120202/man/ps2ascii.1 --- ghostscript-9.05~dfsg~20120125/man/ps2ascii.1 2011-09-29 11:01:35.000000000 +0000 +++ ghostscript-9.05~dfsg~20120202/man/ps2ascii.1 2012-02-02 20:29:40.000000000 +0000 @@ -1,5 +1,5 @@ .\" $Id$ -.TH PS2ASCII 1 "5 August 2011" 9.04 "Ghostscript Tools" \" -*- nroff -*- +.TH PS2ASCII 1 "30 January 2012" 9.05 "Ghostscript Tools" \" -*- nroff -*- .SH NAME ps2ascii \- Ghostscript translator from PostScript or PDF to ASCII .SH SYNOPSIS @@ -23,7 +23,7 @@ .SH SEE ALSO pstotext(1), http://www.research.digital.com/SRC/virtualpaper/pstotext.html .SH VERSION -This document was last revised for Ghostscript version 9.04. +This document was last revised for Ghostscript version 9.05. .SH AUTHOR Artifex Software, Inc. are the primary maintainers of Ghostscript. diff -Nru ghostscript-9.05~dfsg~20120125/man/ps2epsi.1 ghostscript-9.05~dfsg~20120202/man/ps2epsi.1 --- ghostscript-9.05~dfsg~20120125/man/ps2epsi.1 2011-09-29 11:01:35.000000000 +0000 +++ ghostscript-9.05~dfsg~20120202/man/ps2epsi.1 2012-02-02 20:29:40.000000000 +0000 @@ -1,5 +1,5 @@ .\" $Id$ -.TH PS2EPSI 1 "5 August 2011" 9.04 "Ghostscript Tools" \" -*- nroff -*- +.TH PS2EPSI 1 "30 January 2012" 9.05 "Ghostscript Tools" \" -*- nroff -*- .SH NAME ps2epsi \- generate conforming Encapsulated PostScript .SH SYNOPSIS @@ -60,7 +60,7 @@ .SH SEE ALSO gs (1) .SH VERSION -This document was last revised for Ghostscript version 9.04. +This document was last revised for Ghostscript version 9.05. However, the content may be obsolete, or inconsistent with ps2epsi.txt. .SH AUTHOR George Cameron diff -Nru ghostscript-9.05~dfsg~20120125/man/ps2pdf.1 ghostscript-9.05~dfsg~20120202/man/ps2pdf.1 --- ghostscript-9.05~dfsg~20120125/man/ps2pdf.1 2011-09-29 11:01:35.000000000 +0000 +++ ghostscript-9.05~dfsg~20120202/man/ps2pdf.1 2012-02-02 20:29:40.000000000 +0000 @@ -1,5 +1,5 @@ .\" $Id$ -.TH PS2PDF 1 "5 August 2011" 9.04 Ghostscript \" -*- nroff -*- +.TH PS2PDF 1 "30 January 2012" 9.05 Ghostscript \" -*- nroff -*- .SH NAME ps2pdf \- Convert PostScript to PDF using ghostscript .br @@ -90,7 +90,7 @@ See http://bugs.ghostscript.com/ and the Usenet news group comp.lang.postscript. .SH VERSION -This document was last revised for Ghostscript version 9.04. +This document was last revised for Ghostscript version 9.05. .SH AUTHOR Artifex Software, Inc. are the primary maintainers of Ghostscript. diff -Nru ghostscript-9.05~dfsg~20120125/man/ps2pdfwr.1 ghostscript-9.05~dfsg~20120202/man/ps2pdfwr.1 --- ghostscript-9.05~dfsg~20120125/man/ps2pdfwr.1 2011-09-29 11:01:35.000000000 +0000 +++ ghostscript-9.05~dfsg~20120202/man/ps2pdfwr.1 2012-02-02 20:29:40.000000000 +0000 @@ -1,5 +1,5 @@ .\" $Id$ -.TH PS2PDFWR 1 "5 August 2011" 9.04 Ghostscript \" -*- nroff -*- +.TH PS2PDFWR 1 "30 January 2012" 9.05 Ghostscript \" -*- nroff -*- .SH NAME ps2pdfwr \- Convert PostScript to PDF without specifying CompatibilityLevel, using ghostscript .SH SYNOPSIS @@ -24,7 +24,7 @@ .SH SEE ALSO gs(1), ps2pdf(1) .SH VERSION -This document was last revised for Ghostscript version 9.04. +This document was last revised for Ghostscript version 9.05. .SH AUTHOR Artifex Software, Inc. are the primary maintainers of Ghostscript. diff -Nru ghostscript-9.05~dfsg~20120125/man/ps2ps.1 ghostscript-9.05~dfsg~20120202/man/ps2ps.1 --- ghostscript-9.05~dfsg~20120125/man/ps2ps.1 2011-09-29 11:01:35.000000000 +0000 +++ ghostscript-9.05~dfsg~20120202/man/ps2ps.1 2012-02-02 20:29:40.000000000 +0000 @@ -1,5 +1,5 @@ .\" $Id$ -.TH PS2PS 1 "5 August 2011" 9.04 "Ghostscript Tools" \" -*- nroff -*- +.TH PS2PS 1 "30 January 2012" 9.05 "Ghostscript Tools" \" -*- nroff -*- .SH NAME ps2ps, eps2eps \- Ghostscript PostScript "distiller" .SH SYNOPSIS @@ -27,7 +27,7 @@ .SH SEE ALSO ps2pdf(1), ps2ascii(1), ps2epsi(1) .SH VERSION -This document was last revised for Ghostscript version 9.04. +This document was last revised for Ghostscript version 9.05. .SH AUTHOR Artifex Software, Inc. are the primary maintainers of Ghostscript. diff -Nru ghostscript-9.05~dfsg~20120125/man/wftopfa.1 ghostscript-9.05~dfsg~20120202/man/wftopfa.1 --- ghostscript-9.05~dfsg~20120125/man/wftopfa.1 2011-09-29 11:01:35.000000000 +0000 +++ ghostscript-9.05~dfsg~20120202/man/wftopfa.1 2012-02-02 20:29:40.000000000 +0000 @@ -1,5 +1,5 @@ .\" $Id$ -.TH WFTOPFA 1 "5 August 2011" 9.04 Ghostscript \" -*- nroff -*- +.TH WFTOPFA 1 "30 January 2012" 9.05 Ghostscript \" -*- nroff -*- .SH NAME wftopfa \- Convert a Wadalab base font to Postscript .PFA (or .PFB) format using ghostscript @@ -13,7 +13,7 @@ .SH SEE ALSO gs(1) .SH VERSION -This document was last revised for Ghostscript version 9.04. +This document was last revised for Ghostscript version 9.05. .SH AUTHOR Artifex Software, Inc. are the primary maintainers of Ghostscript. diff -Nru ghostscript-9.05~dfsg~20120125/Resource/Init/pdf_main.ps ghostscript-9.05~dfsg~20120202/Resource/Init/pdf_main.ps --- ghostscript-9.05~dfsg~20120125/Resource/Init/pdf_main.ps 2011-10-17 13:34:52.000000000 +0000 +++ ghostscript-9.05~dfsg~20120202/Resource/Init/pdf_main.ps 2012-02-02 18:32:11.000000000 +0000 @@ -213,6 +213,9 @@ QUIET not { (Page ) print dup //== exec flush } if pdfgetpage pdfshowpage } for + % Indicate that the number of spot colors is unknown in case the next page + % imaged is a PS file. + << /PageSpotColors -1 >> .setpagedevice << /PDFScanRules //null >> setuserparams % restore scanning rules for PS } bind def @@ -258,6 +261,35 @@ } ifelse } bind def +% Recursively enumerate /Names entries +% pdf_collection_names /temp_file_name ... +/pdf_collection_names { + dup /Names knownoget { + exch pop + { oforce + dup type /dicttype eq { + /EF knownoget { + /F knownoget { + copy_embedded_file + } if + } if + } { + pop + } ifelse + } forall + } { + /Kids knownoget { + { oforce + dup //null ne { + pdf_collection_names + } { + pop + } ifelse + } forall + } if + } ifelse +} bind def + % Copy selected subfiles to temporary files and return the file names % as a PostScript names to protect them from restore. % Currently, all PDF files in the Portfolio are extracted and returned. @@ -269,19 +301,7 @@ dup /Collection oknown { /Names knownoget { /EmbeddedFiles knownoget { - /Names knownoget { - { oforce - dup type /dicttype eq { - /EF knownoget { - /F knownoget { - copy_embedded_file - } if - } if - } { - pop - } ifelse - } forall - } if + pdf_collection_names } if } if } { @@ -1742,9 +1762,6 @@ % problems, for example with the pnga device. endpage end % scratch dict - % Indicate that the number of spot colors is unknown in case the next page - % imaged is a PS file. - << /PageSpotColors -1 >> .setpagedevice % Some PDF files don't have matching q/Q (gsave/grestore) so we need % to clean up any left over dicts from the dictstack diff -Nru ghostscript-9.05~dfsg~20120125/toolbin/gitlog2changelog.py ghostscript-9.05~dfsg~20120202/toolbin/gitlog2changelog.py --- ghostscript-9.05~dfsg~20120125/toolbin/gitlog2changelog.py 2011-09-29 11:01:35.000000000 +0000 +++ ghostscript-9.05~dfsg~20120202/toolbin/gitlog2changelog.py 2012-02-02 18:32:11.000000000 +0000 @@ -16,6 +16,7 @@ import string import datetime import time +import codecs argc = len(sys.argv) if argc < 3: @@ -52,7 +53,7 @@ res = os.popen(cmd, "r") commit=res.readlines() # This assumes the order of the lines..... - sys.stdout.write("

      ") if str.find(commit[1], "Merge:") < 0: nm = commit[1] dt = commit[2] @@ -63,21 +64,29 @@ logidx = 4 sys.stdout.write (dt.split("Date:")[1].strip()) - sys.stdout.write (">\n") - sys.stdout.write (dt.split("Date:")[1].strip()) - sys.stdout.write ("\n
      " + nm.split("Author: ")[1].strip() + "
      \n") + sys.stdout.write ("\n") + auth_name=nm.split("Author: ")[1].strip() + sys.stdout.write ("
      \n
      " + auth_name.replace("<", "<").replace(">", ">") + "
      \n") sys.stdout.write ("") sys.stdout.write (commit[0].split("commit ")[1].strip() + "\n") sys.stdout.write ("

      \n") + sys.stdout.write ("

      \n") log = commit[logidx:] + marked = 0 + # this loop needs to skip initial blank lines for logline in log: - sys.stdout.write (logline + "
      \n") + if len(logline.strip()) == 0 and marked == 0 : + continue + + sys.stdout.write (logline.replace("&", "&").replace("<", "<").replace(">", ">").replace("\"", """).rstrip() + "
      \n") + marked = 1 sys.stdout.write ("

      \n") sys.stdout.write ("

      \n") - sys.stdout.write ("\n") + sys.stdout.write ("
      \n") + sys.stdout.write ("
      \n\n\n") sys.stdout.write ("\n") sys.stdout.write ("\n")