|
|
2008-02-29T23:59:31.476236Z Ray Johnston
Fix typo that caused unbalanced 'q' 'Q' operators in PDF's (caused by rev 8501). Bug 689728.[src/gdevpdfi.c]
2008-02-29T22:27:59.143965Z Ralph Giles
Release notes for the 8.62 release. Thanks to Ray Johnston for compiling these.[doc/News.htm]
2008-02-29T20:49:04.253927Z Ralph Giles
Remove some C++ style comments.[src/siscale.c src/gdevijs.c]
2008-02-29T20:49:02.503198Z Ralph Giles
Add some new files to the documentation tree.[doc/Develop.htm]
2008-02-29T20:47:52.884152Z Ralph Giles
Update product name, copyright and release dates.[doc/History7.htm doc/Projects.htm doc/History8.htm man/dvipdf.1 man/ps2ascii.1 doc/Use.htm doc/Readme.htm doc/Deprecated.htm doc/Source.htm man/ps2epsi.1 doc/Install.htm src/gscdef.c doc/API.htm doc/Issues.htm doc/DLL.htm doc/Drivers.htm man/pfbtopfa.1 doc/Release.htm doc/Commprod.htm doc/Xfonts.htm doc/Devices.htm doc/Language.htm src/version.mak man/gs.1 src/dwsetup.rc man/pf2afm.1 doc/Fonts.htm doc/Ps2ps2.htm man/printafm.1 doc/Develop.htm doc/Ps2pdf.htm doc/Helpers.htm man/pdf2dsc.1 doc/Psfiles.htm doc/Lib.htm doc/gs-vms.hlp doc/Htmstyle.htm man/font2c.1 man/gsnd.1 man/pdfopt.1 src/winint.mak doc/News.htm man/pdf2ps.1 man/ps2pdf.1 doc/Make.htm doc/Details8.htm doc/Testing.htm doc/Unix-lpr.htm doc/Ps-style.htm doc/C-style.htm doc/History1.htm doc/History2.htm man/gslp.1 doc/History3.htm man/wftopfa.1 doc/Ps2epsi.htm doc/History4.htm man/ps2pdfwr.1 man/ps2ps.1 doc/History5.htm doc/History6.htm]
2008-02-29T18:53:14.162723Z Ray Johnston
Add default FontResourceDir needed when COMPILE_INITS=1 is used so that the fonts from Resource/Font in the distribution directory that are built into %rom%Resource/Font/ will be found.[src/iccinit1.c]
2008-02-29T08:13:08.227205Z Ray Johnston
Fix COMPILE_INITS=1. Note the next commit to the PCL tree will combine with this one, but we can't commit to both trees atomically. DETAILS: Tested with Windows and linux. Needs OS/2 testing. Other build systems may have bit rotted, and I don't hav them to test. Some of the changes here are to allow working with a PCL or XPS only build where the PS interpreter is not used/needed. I noticed that the default systemparam value for FontResourceDir isn't getting et to %rom$Resource/Font/ as it should, but GenericResourceDir _is_ being initialized correctly to %rom%Resource/ which is _NOT_ fixed by this commit.[src/openvms.mak src/psromfs.mak src/macosx.mak src/int.mak src/watcw32.mak src/dvx-gcc.mak src/unixansi.mak src/msvclib.mak src/unixlink.mak src/os2.mak src/lib.mak src/bcwin32.mak src/ugcclib.mak src/gsromfs0.c src/Makefile.in src/msvc32.mak src/unix-gcc.mak src/unix-aux.mak src/macos-mcp.mak src/watclib.mak]
2008-02-28T14:56:32.629339Z Alex Cherepanov
Attempt to repair invalid embedded TT fonts without cmap table. Bug 689707, customer 531. DETAILS: 1. Use identity cmap if it is missing from the TT file. Set an unknown language ID to activate post table processing. 2. To avoid false rejection during the validation of post table run the validator only on the TT files generated by an utility that is known to write broken post tables.[lib/gs_ttf.ps]
2008-02-27T19:36:18.181168Z Igor Melichev
Fix (clist interpreter) : Improve transparency performance, step 4a. DETAILS : Bug 689708 "Long processing time of PDF file" Bug 689714 "Severe performance penalty for PDF transparency through to clist" The last patch is incomplete due to a commitment failure. The patch completely removes .inittransparencymask because it is noop. With the test case of the bug 689708 at 144 dpi with default band size it reduces the temp file size from 64.8Meg to 36.5 Meg, and speeds up the rendering in 11 times. With the test case of the bug 689714 at 144 dpi with default band size it reduces the temp file size from 12.0Meg to 3.3 Meg, and speeds up the rendering in 11 times. The speed factor depends on resolution.[lib/pdf_draw.ps lib/pdf_ops.ps]
2008-02-27T19:22:57.279403Z Igor Melichev
Fix (clist interpreter) : Improve transparency performance, step 4. DETAILS : Bug 689708 "Long processing time of PDF file" Bug 689714 "Severe performance penalty for PDF transparency through to clist" The patch completely removes .inittransparencymask because it is noop. With the test case of the bug 689708 at 144 dpi with default band size it reduces the temp file size from 64.8Meg to 36.5 Meg, and speeds up the rendering in 11 times. With the test case of the bug 689714 at 144 dpi with default band size it reduces the temp file size from 12.0Meg to 3.3 Meg, and speeds up the rendering in 11 times. The speed factor depends on resolution.[src/gstrans.c src/ztrans.c src/gdevpdft.c src/gstrans.h src/gdevp14.c]
2008-02-27T18:39:31.036262Z Igor Melichev
Fix (clist interpreter) : Improve transparency performance, step 3. DETAILS : This is a preparation for fixing bug 689708 "Long processing time of PDF file" The last patch appears incomplete, now fixing.[src/gxistate.h]
2008-02-27T00:47:37.036819Z Marcos Woehrmann
Added setting of fill_rule in pclxl_endpath(). DETAILS: The pclxl_endpath() function checked if a clip_rule needed to be set but not a fill_rule. This is a fix for bug 689665.[src/gdevpx.c]
2008-02-27T00:08:22.308407Z Igor Melichev
Fix (clist interpreter) : Improve transparency performance, step 2. DETAILS : This is a preparation for fixing bug 689708 "Long processing time of PDF file" The last patch appears incomplete due to a missed dependence in makefile. Now we see the mask pointer was used but it was always NULL.[src/lib.mak src/gxistate.h src/gsistate.c src/gdevpdfg.c]
2008-02-26T23:14:40.608304Z Igor Melichev
Fix (clist interpreter) : Improve transparency performance, step 1. DETAILS : This is a preparation for fixing bug 689708 "Long processing time of PDF file" It completely removes the mask pointer field from gs_transparency_source_s. No idea what it was defined for. Nobody uses it.[src/gstrans.c src/gstrans.h]
2008-02-26T07:12:49.848447Z Alex Cherepanov
Change the decimal separator in generated strings to '.' effectively selecting a C numeric locale without calling any locale functions. Bug 689624. DETAILS: For most clients Ghostscript is a library. We cannot set C locale before sprintf() and reset it afterwards because this may affect other threads.[src/spprint.c src/zdouble.c]
2008-02-25T16:10:43.614503Z Alex Cherepanov
Remove a space betveen -f and a file name to prevent parsing of the file name that starts with '-' as an options. Bug 689682.[lib/ps2pdfxx.bat]
2008-02-25T05:48:45.219666Z Alex Cherepanov
Add a check for null value. Since rev. 6956 following Adobe implementation Ghostscript doesn't accept null as a key in dictionary look-up. Bug 689696.[lib/pdf2dsc.ps]
2008-02-25T04:20:47.177440Z Alex Cherepanov
When the values of the color key mask exceed the valid range clip them to the nearest valid values and continue. Don't discard the mask as we did before. Bug 689717, customer 580.[lib/pdf_draw.ps]
2008-02-24T09:21:54.361457Z Igor Melichev
Fix (images) : Improve coordinate precision when scaling an image (continued 8). DETAILS : Ghostscript Bug 687345 "Image interpolation problem at a band boundary" Ghostscript Bug 689686 "siscale.c contrast degradation" Accurately compute pixel center coordinates when applying the interpolation filter. See comment in code. When scale=1, the offsets mutually eliminate. Also the old code missed a bit when computing center_denom/2 in integers.[src/siscale.c]
2008-02-24T03:37:03.979896Z Igor Melichev
Fix (images) : Improve coordinate precision when scaling an image (continued 7). DETAILS : Ghostscript Bug 687345 "Image interpolation problem at a band boundary" Ghostscript Bug 689720 "Hang with -dDOINTERPOLATE caused by rev 8530 changes" An expression for HeightOut missed 'abs' with recent patch. Thanks to Ray for pointing it out.[src/gxiscale.c]
2008-02-24T02:58:34.824461Z Alex Cherepanov
Fix link errors in the file descriptor-based implementation of file streams. Move function used by both fd and stdio implementations to a separate file and compile it in both versions. Bug 688918. DETAILS: Although the patch fixes link errors, pdfwrite and other devices, use stdio functions directly and generate incorrect documents in fd version.[src/lib.mak src/sfxstdio.c src/sfxcommon.c]
2008-02-24T01:12:18.214936Z Alex Cherepanov
Add definitions of some C99 types missing from old versions of Cygwin.[src/stdint_.h]
2008-02-23T22:26:01.799844Z Ray Johnston
Fix typo that caused Cygwin build to fail if 'fontconfig' package was present.[src/configure.ac]
2008-02-22T20:18:08.422807Z Igor Melichev
Fix (images) : Improve coordinate precision when scaling an image (continued 6). DETAILS : Ghostscript Bug 687345 "Image interpolation problem at a band boundary" Ghostscript Bug 689718 "Regression: differences in FIG3.eps". 1. siscale.c : The revision 8529 patch part 4 tried to represent 'ceil' with rational arithmetics. But when downsampling the argument still uses a floating number WidthIn, so we still need 'ceil'. This patch converts the formula back to floats, assuming that double precision is enough for precise result because source image size usually is smaller than 2^24. The wrong rational representation of 'ceil' caused an array element index to fall outside the array. Debugged with FIG3.eps. 2. Improved debug printing and visual trace.[src/gsimage.c src/lib.mak src/gxiscale.c src/siscale.c src/gdevm24.c]
2008-02-22T10:29:49.290734Z Igor Melichev
Fix (FAPI) : Embedded fonts didn't work (continued). DETAILS : A condition for querying a glyph in GlyphDirectory was wrong. Debugged with buttons.pdf from Karen.[src/zfapi.c]
2008-02-22T10:09:30.542153Z Igor Melichev
Fix (FAPI) : Embedded fonts didn't work. DETAILS : Embedded Type 42 FAPI support was broken since Revision 7107 Sun Oct 15 17:19:45 2006 UTC (16 months, 1 week ago) due to premature binding.[lib/gs_typ42.ps]
2008-02-20T21:02:48.212097Z Igor Melichev
Fix (images) : Improve coordinate precision when scaling an image (continued 5). DETAILS : Ghostscript Bug 687345 "Image interpolation problem at a band boundary" This is a further improvement to image placement precision. Debugged with a.pdf . The old code provides insufficientg precision when computing transformation matrix for an image. This computation include matrix inversion and matrix miltiplication. The old code uses floats and causes a visible shift of subimages with banding. The new code uses double precision. We didn't test how it relates to the revision 7026 change, which dectreased the matrix precision for CPSI compatibility. It should be a separate job. In the new gsmatrix.c code we simply duplicate old code fragments and replace types for double. We don't want to define a template for now. Will see after the code passes enough practical work. Besides that, in gxidata.c replaced fixed2int_pixround with fixed2int_pixround_perfect. It is not related to a.pdf, but we believe it is an useful change. In gxipixel.c the patch replaces dda_advance with a repeated dda_next. The old code appears implrecise due to loosing fraction pixels. It eliminates a 1 pixel difference with Bug688789.pdf . Minor changes : inserted debug printing and visual trace.[src/lib.mak src/gsmatrix.c src/gximono.c src/gxidata.c src/gsmatrix.h src/gdevm24.c src/gxipixel.c]
2008-02-18T20:28:59.836803Z Ralph Giles
Propagate the new method argument change introduced in r8528 to the wts device so that it compiles again.[src/gdevwts.c]
2008-02-17T23:36:50.588580Z Igor Melichev
Fix (images) : Improve coordinate precision when scaling an image (continued 4). DETAILS : Ghostscript Bug 687345 "Image interpolation problem at a band boundary" This patch doesn't change the algorithm. It only removes tracks of dead development branches.[src/gxiscale.c src/siscale.c src/gxipixel.c]
2008-02-17T23:25:47.528293Z Igor Melichev
Fix (images) : Improve coordinate precision when scaling an image (continued 3). DETAILS : Ghostscript Bug 687345 "Image interpolation problem at a band boundary" 1. The macro fixed2int_pixround returns a mathematically incorrect result with negative half-integer arguments. For example fixed2int_pixround(-2.5) = -3 when the math gives -2. We guess it was designed for positive page coordinates only, but later it was applied to objects with negative coordinates. Particularly, an image can start outside the page with a negative coordinate, and fixed2int_pixround causes distorsions with banding. We do not update fixed2int_pixround for backward compatibility of other parts of the algorithm. Instead that the patch defines a mew macro fixed2int_pixround_perfect, and applies it to images with Interpolate=true. (gxfixed.h, gxipixel.c, gxiscale.c). 2. Added gx_image_enum_s::yi0 to provide entire image origion in the page. This value does not depend on band size, so it gives more stability - see below. (gximage.h). 3. Added entire image sizes to stream_image_scale_params_s for source image and scaled image. These values do not depend on band size and provide more stability - see how they are used in siscale.c. (sisparam.h, gxiscale.c). 4. (siscale.c) calculate_contrib now computes the filter kernel center with global (page) coordinates of the image, using the right macro fixed2int_pixround_perfect and with the rational arithmetics instead floats. It gives the kernel center position relatively to source image with no dependence on the band size. Also improved the debug printing about that. 5. In siscale.c we keep track of some experiments done while developing the patch. We need to save them to history because they're not trivial. See comments in code. We'll remove them from trunk with a separate patch.[src/lib.mak src/gxiscale.c src/gxfixed.h src/siscale.c src/sisparam.h src/gximage.h src/gxipixel.c]
2008-02-17T22:32:15.427994Z Igor Melichev
Fix (images) : Improve coordinate precision when scaling an image (continued 2). DETAILS : Ghostscript Bug 687345 "Image interpolation problem at a band boundary" This patch does not change the algorithm, except adding a debug printing with y coordinate of an image rectangle in the page coordinate systems. It allows to compare image fragments, which fall to verious bands depending on band size. We could wrap the definition of gx_device_memory_s::band_y and all access to it with #ifdef DEBUG, but we don't want to reduce the readability and because memory and the CPU time expense is too small.[src/gxclist.c src/gxdevbuf.h src/gxdevmem.h src/gdevppla.c src/gdevmem.c src/gdevbmpa.c src/gdevprn.c src/gdevppla.h src/gdevm24.c src/gxclread.c src/gdevpng.c src/gdevprn.h src/gdevijs.c]
2008-02-17T03:59:45.216145Z Ray Johnston
Fix for regressions introduced with rev 8526. Some resolutions of CMYK, 1-bit per component devices that had CMYK colors and Gray colors had strange dithers. Bug 689706. DETAILS: The previous changes missed changing the cache index logic in gx_render_ht_1_level, If the cache had been set with one of the other routines, gx_render_ht_default or gx_dc_ht_binary_load_cache, then gx_render_ht_1_level would be inconsistent. EXPECTED DIFFERNCES: This is expected to resolve the regressions from rev 8527 with pkmraw on: 035-01.ps 119-28.ps 1_2001.pdf Altona-Testsuite_p2_S_x3.pdf Altona_Measure_1v1.pdf Altona_Visual_bb_1v1_x3.pdf Altona_Visual_sb_1v1_x3.pdf BEST8-99-Path.fh7.pdf BW0696FOLD1FRONT.pdf Bug687489.ps Bug687724.pdf Bug687832.pdf Bug687840.pdf Bug688308.ps Bug688822.eps Bug689269.ps Clarke-Tate-Manns-Chinese.ai H00216q.pdf Original.pdf S2_Digitalproof-Forum_x3k.pdf a.pdf besttest.pdf cmyk.pdf foo.pdf knight.pdf test.pdf time1.pdf[src/gxht.c]
2008-02-14T08:34:56.225081Z Ray Johnston
Improve Halftone tile cache efficiency. Make default cache large enough on default 32-bit (LARGE) configuration to allow for > 256 cache tiles when using the 'ht_ccsto.ps' 167x167 Threshold array. Change cache lookup logic to eliminate collisions when the number of cache slots exceeds the number of levels (the normal case). Remove duplicated ht cache default size #defines and normalize the names to end in _size (to imply size in bytes) and be consistent with other similar function/macro names. DETAILS: When we have more cache slots than the number of levels, we can use the 'b_level' directly and don't lookup based on the 'number of bits' (level). This ELIMINATES collisions and on customer 661's benchmarks resulted in up to 40% performance improvement for some files with no performance degradation on any when running a large threshold array based halftone (as the customer does). The previous -Z. behavior is retained, although small cache sizes are of questionable value, and this is sort of confusing since a small memory build will use the same cache size with and without -Z.[src/gshtscr.c src/gzht.h src/gsht.c src/gdevprna.c src/gxht.c]
2008-02-12T20:30:17.540929Z Igor Melichev
Fix (images) : Improve coordinate precision when scaling an image (continued). DETAILS : Ghostscript Bug 687345 "Image interpolation problem at a band boundary" This is another partial fix for the bug 687345 for portrait images with Interpolate=true. Debugged with CET 148-13. 1. The old code inprecisely computes the scaling factor when interpolating images with Mitchel filter. The computation was done with the subimage rectangle, which is different for different bands. The new code always computes the scale from the entire image rectangle, which's size is same for all bands. 2. New fields are inserted into gx_image_enum_s and stream_image_scale_params_s to provide data delivery for (1). 3. In calculate_contrib in siscale.c the variable input_index is renamed into starting_output_index for a better reflection of its semantics. 4. In calculate_contrib in siscale.c the new variable dst_offset_fraction is added for a preciser positioning of the filter center, when it fails between device pixel rows. The old code missed fractional pixels when stepping to a next band. The expression for its value was created empirically, so it may need further improvements. 5. Inserted visual trace instructions for easier debugging. 6. Improved the debug trace printing.[src/gxdda.h src/lib.mak src/gxiscale.c src/siscale.c src/sisparam.h src/gximage.h src/gxipixel.c]
2008-02-12T19:03:19.125442Z Ralph Giles
Document the need to update the current documentation snapshot.[doc/Release.htm]
2008-02-09T02:30:31.322331Z Ralph Giles
Clamp the number components read from the ICC DataSource array to the number actually allocated to avoid buffer overflow. CESA-2008-001.[src/zicc.c]
2008-02-09T00:55:38.575949Z Ralph Giles
Include 12 and 16 bit image support as part of the core graphics library. Bug 689688. Details: Previously, the core graphics library defaulted to including the 'no12bit' and 'no16bit' modules, which contained stubs. These modules were replaced by full implementations when the psl2lib (12 bit) and pdfread (16 bit) modules were included. We now consider this build-time flexibility redundant. The extra code is not large and the default build generally includes it as these images are part of all the newer page description languages. We therefore include the unpack routines directly in libcore and remove the noi1xbit modules entirely.[src/lib.mak src/int.mak]
2008-02-07T09:33:22.506379Z Ken Sharp
Fix (pdfwrite): problems with unusual PDF text rendering modes. Details: Bug #689596 "Generated PDF loses an image from original". Although the PDF interpreter stores both stroke and fill colours, there is no way to pass both these colours to the graphics library. The PostScript graphics state may only contain a single colour, and the device interface only allows for a single colour to be passed. The old code set the text rendering mode, and assumed that if the current device was pdfwrite this would be sufficient. However the need to set both colours causes this to fail. Modified the pdf_ops to set a show/colour/charpath/stroke combination instead. The existing code will spot text followed by a charpath of the same text and collapse it back. A number of other problems with text rendering modes were also addressed at the same time, but in a less than optimal fashion. This patch is a temporary fix while an enhancement is coded to better address the problem. (gdevpdts.c) pdf_render_mode_uses_stroke, was checking for render mode not 0 (fill). Altered to check against the actual stroking modes. (gdevpdtt.c) pdf_update_text_state was setting the text rendering mode to 0 (fill) under most conditions. Altered this to set the mode from the graphics state, unless the current font PaintType is 2 (stroke), and the render mode is 0, in which case set render mode to 1 (stroke). (pdf_ops.ps) Modify setshowstate to provide better methods of implementing various text rendering modes to pdfwrite. Rendering is unaffected by this change.[src/gdevpdts.c src/gdevpdtt.c lib/pdf_ops.ps]
2008-02-04T22:18:08.283584Z Igor Melichev
Fix (images) : Improve coordinate precision when scaling an image. DETAILS : Ghostscript Bug 687345 "Image interpolation problem at a band boundary" This is a partial fix for the bug 687345 for images with Interpolate=false. Actually it is related to scaling raher than interpolation. 1. gx_image_enum_begin performed inaccurate coordinate computations, which caused a different image bias for different bands due to a wrong coordinate rounding. The patch replaces it with a better code, which provides same bias for all bands and for unbanded rendering. But we're not sure that image placement is now perfect, because the initial rounding looks strange. We keep the initial rounding to be compatible with the old code to minimize raster differences and easier visual analyzis. For a while we keep the old code in #if 0 because it may be useful for next patch. 2. image_render_frac contains optimized branches for the case when image's axes are parallel to page's axes. Those optimized branches convert parallelograms into rectangles, except for the last parallelogramm in the chunk. It caused the last parallelogram to shift in 1 pixel relatively to the rectangles. This patch adds the optimized branch for the last parallelogram, so that all image parts are now placed with same rounding. It avoids rendering artifacts with 148-05.ps and many other tests. Note that the patch does not fix the rectangle shift from parallelograms, so probably it still contain another bug, which may need a separate fix. 3. While working on this patch we noted that update_strip doesn't correctly preserve the fractional part for dda.strip and dda.pixel . We include a track of that experiment in the new code in #if 0 section for further development. See comment in code. 4. Inserted visual trace commands for easier debugging.[src/lib.mak src/gxidata.c src/gdevddrw.c src/gdevm24.c src/gxclread.c src/gxi12bit.c src/gxipixel.c]
2008-02-03T17:54:23.256452Z Alex Cherepanov
Modify pdf_info utility to match the changes in PDF interpreter interface. Bug 689680.[toolbin/pdf_info.ps]
2008-02-01T22:05:51.322620Z Igor Melichev
Fix (graphics) : Interpolated images were shifed in a half of source pixel. DETAILS : Bug 687039 "Interpolated images looks strange on Win32 display device". 1. The old code maps the center of the [0,0]th source pixel to the output image origin. However Adobe maps the source pixel's corner to the output origin. This patch compensates the shift when computing the filter kernel position - see '0.5' when computing 'center'. 2. When the filter kernel scans partially outside the source image, the math requires to extrapolate source data somenow to fill the kernel. However the old code performs some strange computation, which we're not sure what for. It looks as a rudiment of wrapping the source image like a thorus. Well, it's an useful math for periodic patterns, but not for single images. Since we never apply siscale.c to patterns, we replace this code portion with a simpler one, which duplicates pixels at image boundaries. See attachment to the bug to prove that Adobe does so.[src/siscale.c]
2008-01-31T22:20:32.934182Z Ray Johnston
Fix ColorValues parameter problem when device has total number of bits (depth) of more than 31 bits, resulting in a "rangecheck" (-15) error. DETAILS: The default get_params would not return -1 for values too large for 32 bits, but the default put_params tested for this. The rangecheck would show up on 32-bit devices, such as tiff32nc when running: "currentpagedevice setpagedevice" Note that the value returned for ColorValues was platform dependent since it previously set ColorValues to 1<[src/gsdparam.c]
2008-01-29T17:02:50.720617Z Igor Melichev
Fix (graphics) : Optimize filling a path with a shading color (continued 2). DETAILS : Bug 688970 "(shadings) Optimize filling a path with a shading color". A minor code cleanup : Removing code portions that became unused.[src/gsptype2.c src/gsptype2.h src/gximask.c src/gxfill.c]
2008-01-29T12:41:42.337727Z mpsuzuki
Fix (TT): Ignore broken post 2.0 table generated by "Windows Type 1 Installer". DETAILS: This is the second fix for bug 689495, that is quite specific to a TrueType font generated by "Windows Type 1 Installer". "Windows Type 1 Installer" makes a TrueType font including broken post table in format 2.0. Previous fix (SVN revision 8351) just ignores such broken post table, and ISOLatin1Encoding is used for fallback. When such TrueType font is combined with WinAnsiEncoding, some glyph names (exists only in WinAnsiEncoding) cannot be resolved. The post table format 2.0 uses 2 maps to assign a glyph name to TrueType glyph index: the first map is from TrueType glyph index to glyph name index (glyphNameIndex[] array), the second map is from glyph name index to glyph name string (names[] Pascal string array). The broken post table generated by "Windows Type 1 Installer" seems to use name[] array by TrueType glyph index directly, and the glyphNameIndex[] array has unreliable values. This patch sets /.broken_post when the post table is broken (the detection of broken post table is same with SVN revision 8351), then use names[] array by TrueType glyph index when /.broken_post is set.[lib/gs_ttf.ps]
2008-01-29T11:54:50.007576Z Igor Melichev
Fix (graphics) : Optimize filling a path with a shading color (continued). DETAILS : Bug 688970 "(shadings) Optimize filling a path with a shading color". A minor code cleanup : prepare to eliminate gx_dc_pattern2_clip_with_bbox.[src/gximask.c]
2008-01-28T23:02:59.180158Z Igor Melichev
Fix (graphics) : Optimize filling a path with a shading color. DETAILS : Bug 688970 "(shadings) Optimize filling a path with a shading color". When filling a path with a shading color, the old code first intersects the the clipping path with the path, then intersects the result with the shading BBox. However the intermediate result frequently appears to be a big list of rectangles, so the second intersection is slow. This patch accounts that the clipping path and shading BBox frequently are rectangles, which are easier to intersect with no converting to paths. Also the shading box is always a quadrangle, so intersecting it early gives a smaller intermediate result. Therefore we first intersect the clipping path with the shading BBox, then with the path. This patch keeps the old code within #if #endif until the full regression testing is passed on the server. Also would like to eliminate the old complicated function gx_dc_pattern2_clip_with_bbox, which is still called from elswhere.[src/gsptype2.c src/gsptype2.h src/gxfill.c]
2008-01-28T10:31:45.187261Z mpsuzuki
Fix: ignore the embedded font resource when PDF interpreter resolves the unembedded font resource. DETAILS: Some PDF generators (e.g. Microsoft Office 2007 add-on to export the documents to PDF format) emits incompatible font objects with same resource name. The sample PDF in bug 689637 includes 2 "Times New Roman" font objects: one is embedded CID-keyed TrueType for Cyrillic glyphs, another is unembedded WinAnsiEncoding TrueType (possibly for empty page header or footer). When PDF interpreter resolves latter unembedded "Times New Roman", external font resource should be used (Adobe Reader does so). But current Ghostscript uses former embedded "Times New Roman", because the sample PDF includes "Times New Roman" without randomization prefix. To avoid the confusion between embedded and unembedded fonts with same name, pfont->is_resource flag (=0 embedded, =1 unembedded) is checked during font object resolution. Even if a cached font object with same name is found, it is ignored if it is embedded font. To execute this check in PostScript space (pdf_font.ps), new operator ".isregisteredfont" is introduced. This patch assumes that embedded font object in PDF is resolvable by tracking the indirect object references. If a PDF assumes name-based resolution of embedded font object (without indirect object), it may be rendered by external font resource. At present, we don't have such sample. By this patch, bug 689637 is fixed.[lib/pdf_font.ps src/zfont.c]
2008-01-28T09:58:54.861949Z mpsuzuki
Fix (TT): Fix a bug in /getinterval_from_stringarray DETAILS: getinterval_from_stringarray is a procedure defined to extract a substring from long table of TrueType font. When a table is too long to fit into 16bit-length string object in PostScript, gs_ttf.ps split the table into the array of strings. When getinterval_from_stringarray is requested to extract a string which starts in one member and ends in following member, it returns a string that only the content of the first member is copied. There was a wrong conditional that made the substring extraction aborted. It was fixed to return the correct substring. By this fix, bug 689593 (IPA font 2007 edition cannot be parsed correctly) is closed.[lib/gs_ttf.ps]
2008-01-28T08:50:10.139318Z Igor Melichev
Fix (clist & transparency) : Improve the compositor queue logic (continued). DETAILS : The last commit is incomplete due to human error. Please don't use the last revision. Bug 689492 "Ghostscript uses a large amount of memory", part 2. This patch fixes the missed shadow of a text, which is mentioned in the Comment #8 of the bug report. 1. Added macros for configuring visual trace for easier debugging. 2. The idle transparency bufer allocation condition was wrong. The patched code allocated ;esser buffers. 3. Found more cases when a mask needs to be released. 4. The old code immediately executes idle masks. It caused a wrong order for compositor execution with images that have a soft mask. With the test case the image's mask was executed before the group that containing the image. It caused a premature releasing of a mask, which preceeeds the group and must noy be released. The new code delays the execution of idle masks after all containing groups are executed, so that the queue is now longer and stores all masks. We beleive that's not harmful, because transparency queue elements are pretty small and work for hos based applications only. The new function mark_as_idle works for the new logic. Few aother functions are enhanced with a smarter processing of the idle flag. 5. Improved comments for the compositor queue logic.[src/gdevp14.c]
2008-01-28T08:45:21.850870Z Igor Melichev
Fix (clist & transparency) : Improve the compositor queue logic. DETAILS : Bug 689492 "Ghostscript uses a large amount of memory", part 2. This patch fixes the missed shadow of a text, which is mentioned in the Comment #8 of the bug report. 1. Added macros for configuring visual trace for easier debugging. 2. The idle transparency bufer allocation condition was wrong. The patched code allocated ;esser buffers. 3. Found more cases when a mask needs to be released. 4. The old code immediately executes idle masks. It caused a wrong order for compositor execution with images that have a soft mask. With the test case the image's mask was executed before the group that containing the image. It caused a premature releasing of a mask, which preceeeds the group and must noy be released. The new code delays the execution of idle masks after all containing groups are executed, so that the queue is now longer and stores all masks. We beleive that's not harmful, because transparency queue elements are pretty small and work for hos based applications only. The new function mark_as_idle works for the new logic. Few aother functions are enhanced with a smarter processing of the idle flag. 5. Improved comments for the compositor queue logic.[src/gxclrast.c]
2008-01-26T13:21:27.618379Z Igor Melichev
Fix (transparency) : Memory leak after an image with soft mask. DETAILS : Bug 689492 "Ghostscript uses a large amount of memory". When a PDF command stream executes "/d1 gs /d2 gs" where d1 and d2 both define an untrivial SMask (not important whether they are same mask or different masks), the second mask replaces the first one, and the first one to be released. When a transparent group includes an image with a soft mask (this case happens in the test document for the bug), the image's soft mask must *temporary* replace the groups soft mask, and the first mask must not be released. The old code does not distinguish these cases, assuming that a mask buffer is being released after rendering a group with it. Due to that some mask buffers were never released, causing a memory leak with banded rendering, because the clist interpreter doesn't run the garbager. A simpler case for demonstrating the leak could be created with "/d1 gs /d2 gs" as explained above. The patch defines a new bool gs_transparency_mask_params_s::replacing, gx_transparency_mask_params_s::replacing and gs_pdf14trans_params_s::replacing for passing the necessary information through old interfaces. Note that as usual we cannot change the device interface for an easier passing of this info, because we need to maintain the compatibility with 3d party devices. Using the 'replacing' flag, pdf14_push_transparency_mask either replaces the old mask buffer, or creates a new one as a temporary substitution for an image with a soft mask. In the second case the group mask is saved in the last transparency stack element in the field buf->maskbuf. After rendering the image's group the function pdf14_pop_transparency_group restores the saved mask buffer, as it was set in the transparency context before starting the image's mask. For more details see comments added into gdevp14.c .[src/gstrans.c src/ztrans.c src/gstparam.h src/gstrans.h src/gdevp14.c]
2008-01-25T08:17:16.431601Z Igor Melichev
Fix (Font renderer) : Horizontal metrics sometimes applied with WMode 1 fonts. DETAILS : Bug 689464 "Japanese font writing direction (vertical ?)". Bug 689646 "vertical text rendered by external CIDFontType0 flows horizontal". 1. When a descendent font of a type 0 CID font has zero FontBBox, use the FontBBox of the CID font. This is another case when a 3d party software generates a font with zero FontBBox. We believe that such font data is incorrect, but this patch provides a simple workaround. 2. When FontBBox to be used to compute Metrics2, don't obtain sbw from type 1 glyph descriptions. The old code does so causing the horizontal metrics to be used when rendering a WMode 1 font. 3. The case (2) appears to have an exception, when the font has CDevProc. In this case we do need sbw from the glyph description to provide arguments for CDevProc. See alse the comment added to code. Note that Type 1 font renderer now depends on some knowledge about type 0 CID font. But this dependence does not break the configurability because only an .h file is included into the Type 1 font renderer.[src/int.mak src/zchar1.c]
2008-01-23T21:13:16.354024Z Igor Melichev
Fix (clist & transparency) : Inconsisting compressed color index info. DETAILS : Bug 689626 "Segmentation Fault using 'bit' device to clist.". The bug was put while the custom color callback merge in revision 7795. The color index information to be passed to the clist writer after restoring the color information to the clist writer. Before restoring it is set to a blending space, which may be incompatible with the target device's color index type. I'm unable to test this patch fully due to no test cases for antrivial spot colors with transparency.[src/gdevp14.c]
2008-01-23T18:33:35.648405Z Igor Melichev
Fix (DSC parser) : Avoid a structure type name duplicate. DETAILS : The old name cmd_list_s is also defined in gxclist.h . It confused MSVC debugger while tracing gxclutil.c for bug 689626.[src/zdscpars.c]
2008-01-23T18:12:27.956590Z Igor Melichev
Fix (patterns) : The clipping was wrong with antrivial pattern matrix (continued). DETAILS : Bug 687196 "Incorrect pattern processing from Adobe test file pattyp1.ps". This is a partial fix for the bug, which fixes vector devices only. It closes the bug with the last patch applied. The old code set identity matrix for a pattern dstream accummulation. It appears incompatible with Type 2 pattern handler, which assumes the default page matrix. This patch changes the matrix and improves the pattern stream accumulator with accounting the default page scale.[src/gdevpdfi.c src/zpcolor.c]
2008-01-23T18:09:49.970130Z Igor Melichev
Fix (patterns) : The clipping was wrong with antrivial pattern matrix. DETAILS : Bug 687196 "Incorrect pattern processing from Adobe test file pattyp1.ps". This is a partial fix for the bug, which fixes raster devices only. 1. The old code always sets a canonic rectangular clipping, which is wrong with rotated or skewed matrices. Note the patch resets path in the pattern's graphic state. It is not done in the old code, so it may cause raster diferences. But it is required in PLRM chapter 8 by the definition of 'makepattern'. 2. Adjust the pattern matrix to pixel grid. After doing the change (1) the clipping area appears too small for some cases. It happens because the tile origin falls at fractional pixels, The new code causes a massive raster difference, which actually is minor (a shift of some pattern instances in 1 pixel). Note that PLRM requires to adjust pattern matrix in the definition of 'makepattern', but doesn't explain how to. 3. In compute_inst_matrix perform computations in 'float' because the matrix is represented with 'float'. 4. (miror change) Expanded the 'mat' macro for easier debugging with MSVC.[src/gsptype1.c]
2008-01-23T16:49:51.344351Z Ken Sharp
Fix (pdfwrite): Wrong format string for pprintg. Details: Bug #689661 "pdfwrite : Incorrect sprintf format". (gdevpdfu.c) The new function, 'pdf_write_font_bbox_float, added in revision 8360, used the wrong format string (%f instead of %g) to write the font BBox.[src/gdevpdfu.c]
2008-01-23T13:30:39.283039Z Igor Melichev
Fix (shadings) : A memory deallocation problem. DETAILS : Bug 689660 "memory deallication problems with shadings". The old code used pdev->memory for temporary storing an intersection of clipping path with shading bbox. This is the global memory space. However if the intersection is trivial, the path of the clipping path is copied from the original clipping path, which is allocated in the local memory space. Later it causes a freeing of path segments to a wrong memory space. This patch chooses the original clipping path's memory space when the clipping path is available, and the global space otherwise.[src/lib.mak src/gsptype2.c]
2008-01-23T13:23:09.676697Z Till Kamppeter
Added HP's KRGB patch for improved control of true black text printing on color printers with HPIJS. Bug #689065 (Ubuntu LP: #69905) is fixed in this updated version of the patch.[src/gdevijs.c]
2008-01-21T20:59:55.657274Z Igor Melichev
Fix (save/restore) : Remove gs_ref_memory_s::inherited. DETAILS : It is not used since revision 5250.[src/gxalloc.h src/igc.c src/gsalloc.c src/isave.c]
2008-01-20T22:23:07.686290Z Igor Melichev
Fix (save/restore) : Do not create invisible save levels. DETAILS : Invisible save levels is a rudiment of old code. gs_ref_memory_s::scan_limit effectively work instead them since revision 6706 committed on April 14 2006. We're not sure what gs_ref_memory_s::inherited works for. Keeping it updated for a while, and don't remove the old code for reference. Note the maintanence of gs_ref_memory_s::inherited in the new code is not fully equivalent to old code.[src/isave.c]
2008-01-20T09:56:15.017727Z Ralph Giles
Only report the ICC Profile colorspace when the jasper library's debug level is above zero. Bug 689662.[jasper/src/libjasper/jp2/jp2_dec.c]
2008-01-20T09:21:15.660626Z Igor Melichev
Fix (save/restore) : Compact the changes list against big memory leak. DETAILS : Bug 689536 "Memory leak reading PostScript file (PMR 53877).". The old implementation includes an optimization agains a big CPU time expense in 'save' and 'restore' for sedtting and resetting l_mark flags. Normally, when executing 'save', the memory manager needs to reset l_new marks for objects modified or allocated at the last save level, so that their further modification on the next save level to be saved in the changes list. When executing 'restore' these flags to be set to prevent redundant save. When the last save level includes many allocations, the number of scanned objects is big and it causes a significant time expense. A long ago Ghostscript implements an optimization, which shorten the scanned list against the big time expense. However the shortening causes redundant saving. The redundant saving itself isn't harmful because it happens seldon and spends a small memory. However if a redundant save element points to a reference to a newly allocated array or dictionary, the array or dictionary can't be garbage collected. When a client executes such allocation and same reference modification multiple times, all allocated arrays and dictionaries persist in memory, causing a significant memory leak. This patch compacts the saved change list whem a significant memory allocation is accummulated since last save or since last compacting. The new field gs_ref_memory_s::total_scanned_after_compacting works for counting allocated elements. The new function drop_redundant_changes performs the compacting. See comments in its code. The threshold for starting drop_redundant_changes is choosen arbitrary. It must not be too small, because the CPU time expense optimization wouldn't be effective. Also it can't be too big, because the memory leak recovery would not be effective. This patch sets it to about 1600000 objects, which is an experimental trade-of. Note that this patch reduces the memory leak but doesn't eliminate it to zero, because more data may be allocated after the last filtering. We could implement a filtering within the garbager rather than withis save/restore. Actually it wouldn't change the behavior to much, because the threshold would be still needed against the CPU time expense, It happens because the scanning deals with array or dictioanr elements rather than with whole aggregates. Also we don't want to complicate the garbager. Note that the arbitrary threshold is bigger than neccessary for the simplified test case included into the bug report. Due ti that the leak elimination does not happen with this test. For the compacting to take place the sequence "NEWJOB Z" to be repeated 90 times rather than 40 in the supplied test. The customer's test does demonstrate the leak reducing.[src/gxalloc.h src/gsalloc.c src/isave.c]
2008-01-18T21:50:38.830947Z Alex Cherepanov
Explicitly close CMap files opened during CMap-CIDFont font enumeration. On certain systems file handles were used up before GC freed inaccessible handles causing PostScript errors. Bug 689594.[lib/gs_cidcm.ps]
2008-01-18T06:17:02.734368Z Alex Cherepanov
Add redefinition of setpagedevice to ps2epsi utility to support PS files that call setpagedevice. Bug 689650.[lib/ps2epsi lib/ps2epsi.ps lib/ps2epsi.cmd lib/ps2epsi.bat]
2008-01-17T13:50:43.754302Z Igor Melichev
Fix (clist interpreter) : Skip idle compositors, step 6. DETAILS : Enabling visual trace for buffer backdropping.[src/gdevp14.c]
2008-01-17T13:47:11.707889Z Igor Melichev
Fix (visual trace) : Add a single pixels painting operation. DETAILS : This patch doesn't change the algorithm. It only enhances debuging instrument. The new instrument will be used for debugging the clist logics about transparency masks.[src/vdtrace.h src/vdtrace.c src/dwtrace.c]
2008-01-17T13:37:19.476394Z Igor Melichev
Fix : Cygwin/gcc warnings.[src/gdevcgm.c src/int.mak src/gstrans.c src/gdevpdfe.c src/gdevbit.c src/devs.mak src/gxclread.c src/gscdevn.c src/gscie.c src/gxclutil.c src/lib.mak src/gdevp2up.c src/gxclmem.c src/gdevdflt.c src/gdevpdtd.c src/gxcomp.h src/gsovrc.c src/gdevprn.c src/gscsepr.c src/genarch.c src/ztoken.c src/gdevp14.c]
2008-01-17T03:16:02.921192Z Alex Cherepanov
Comment-only change: remove obsolete reference to MS-DOS limitations and mention that PDF interpreter passes un-escaped font names to PS level. Bug 689651.[lib/Fontmap.GS]
2008-01-17T03:12:45.266699Z Alex Cherepanov
Remove the warning about non-embedded TrueType fonts in PDF files because it confuses users but seems to have little effect on the main producer of non-conforming files.[lib/pdf_main.ps lib/pdf_font.ps]
2008-01-16T23:35:48.055065Z Ralph Giles
Unbreak the build.[src/gdevp14.c]
2008-01-16T22:55:42.290132Z Igor Melichev
Fix (clist interpreter) : Skip idle compositors, step 5. DETAILS : This really skips compositors which don't paint anything. Compositor parameter list structures are extended with a new boolean field 'idle'. These fields pass information whether something was painted to a compositor. We choosen this way for passing this info because (1) we can't change the device inteface with new function arguments, and (2) we need to pass it through the device chain (for example, when a clipper is installed onth the overprint device). This patch only affects the transparency and the overprint. Other compositors (gsalphac.c, gxropc.c) behave as before. They may need further improvements. This patch does not fix the bug 689492. That fix may be done either before or after this one, but in any case the patches need to adopt each to another. The new compositor virtual method is_closing checks whether a current compositor command closes an older command, and finds the opening command. Now we provide untrivial implementations for transparency and overprint compositors. Would like to define an enum for return values of is_closing. The old device method create_compositor now passes the 'idle' parameter via gs_composite_s structure. By default it is false and the behaviour is same as before. But the clist interpreter is modified to provide true value when a compositor doesn't paint anything. To compute this flag the compositor queue now works with its full power. Note we changed the queue representation with a bilikned list. This patch entroduces the concept of 'friendly operations' for compositor operations. These are those operations, which may interchange with compositor installation/deinstallation. One example is halftone operations, which always affect the device below the compositor device, i.e. the target device of the compositor device. The new compositor virtual method is_friendly is implemented in an intrivial way for the transparency compositor especially to exchange with halftone operations while queueing clist operations. This especially helps to delay the pdf14 device installation so that it may completely annihilate with its deinstallation if nothing is painted through the compositor in a band. Overprint and transparency compositor implementations are changed with checking the idle flag. If it is set, they don't perform neither color blending, nor raster buffer allocation. Note the pdf14 device maintains the buffer stack as before, but the allocation of buffers may be skipped. It saves significant time from cleaning up raster buffers when they are idle. This patch may need further improvements for the case when different compositor types are mixed in one queue. We could not fully test it due to absence of practical tests. Another useful improvement would be to convert "0 .inittransparencymask 1 .inittransparencymask dict .setblendparams" into a single command. It would simplify the compositor queue logic. Also we think that the name .inittransparencymask doesn't reflect the function purpose. Will improve someday. We're not sure whether this patch correctly works with idle masks. We could not debug it due to no practical cases. Possibly idle mask will need an additional effort to skip the group painting to the band. Also disabled cmd_put_halftone in c_pdf14trans_clist_write_update - see comment in code. Monor change : Inserted a visual trace support for transparency buffers.[src/lib.mak src/zdict.c src/gdevdflt.c src/gdevp14.h src/gstrans.c src/gsalphac.c src/gxcomp.h src/gsovrc.c src/gstparam.h src/gstrans.h src/gxclrast.c src/gsovrc.h src/gdevp14.c]
2008-01-09T00:36:30.938192Z Marcos Woehrmann
Fixed umlauts (maybe, am having trouble testing the results).[man/de/pdf2dsc.1]
2008-01-09T00:24:50.313955Z Marcos Woehrmann
Corrected man page (thanks to Peter Dyballa).[man/de/pdf2dsc.1]
2008-01-09T00:00:59.719986Z Alex Cherepanov
Add unmodified byte-oriented AES encryption code by Brian Gladman. These files serve as a reference point. They are not yet included into any project nor can be compiled by some of the compilers we support.[src/aes.h src/aes.c]
2008-01-07T20:58:40.018332Z Ralph Giles
Remove the obsolete gconfigv.h.[src/lib.mak toolbin/msvcxml.bat src/openvms.mak src/unix-end.mak src/gs.mak src/std.h src/gscdefs.h src/macos-mcp.mak src/openvms.mmk src/os2.mak src/wctail.mak src/winlib.mak]
2008-01-07T20:58:36.882379Z Ralph Giles
Remove EXTEND_NAMES from the top level makefiles. There is a fallback to the default value of 0 in inameidx.h so there is no change in the default behaviour. The extended name table can still be activated by defining EXTEND_NAMES on the compiler command line or changing the source directly.[toolbin/msvcxml.bat src/openvms.mak src/unix-end.mak src/gs.mak doc/Use.htm src/int.mak src/macosx.mak src/Makefile.in src/inameidx.h src/unix-gcc.mak src/macos-mcp.mak src/openvms.mmk src/os2.mak src/wctail.mak src/winlib.mak]
2008-01-07T18:43:02.811990Z Henry Stiles
Deprecate USE_FPU, no changes expected.[src/gxchar.c src/openvms.mak src/unix-end.mak src/gsjmorec.h src/macosx.mak src/dvx-gcc.mak src/gxfarith.h src/msvccmd.mak src/siscale.c src/unixansi.mak src/gsmisc.c src/msvclib.mak src/gsfemu.c src/os2.mak src/openvms.mmk src/lib.mak src/bcwin32.mak src/ugcclib.mak src/gscie.h src/Makefile.in src/unix-gcc.mak src/gxfixed.h src/msvc32.mak src/macos-mcp.mak src/wccommon.mak src/wctail.mak src/winlib.mak src/watclib.mak]
2008-01-02T23:58:44.056429Z Alex Cherepanov
Re-export runpdfbegin, dopdfpages, and runpdfend procedures, which turned out to be used by 3rd party programs. Partly revert the rev. 8325.[lib/pdf_main.ps]
2008-01-02T13:10:59.547816Z Ken Sharp
Fix (pdfwrite): Tidy up after the prior patch, algorithmically this is the same as before. Details: Bug #689597 "PDF created with NoEmbed has wrong BaseFont name". gdevpdtb.c, gdevpdtf.c, gdevpdtf.h, remove the redundant routine pdf_choose_font_name. gdevpdtb.c, gdevpdtd.c, gdevpdtf.c, gdevpdtb.h, modify the function pdf_base_font_alloc to remove the redundant argument 'orig_name', we always use the original font name now.[src/gdevpdtb.c src/gdevpdtd.c src/gdevpdtf.c src/gdevpdtb.h src/gdevpdtf.h]
2008-01-01T20:44:52.186969Z Alex Cherepanov
Don't ignore xref stream in a hybrid "classic xref" + "stream xref" file as PDF 1.5-compatible should do. Thanks to SaGS for the patch. Bug 688282.[lib/pdf_main.ps]
2008-01-01T14:28:30.927323Z Alex Cherepanov
Replace clearly invalid generation numbers out of 0..65535 range with 0 during rebuilding of xref table. Bug 689634.[lib/pdf_rbld.ps]
2008-01-01T01:30:52.687921Z Ralph Giles
Remove the SYSTEM_CONSTANTS_ARE_WRITABLE compile-time define. Details: This was added so a particular application could rewrite the product name, version, etc. after loading the library. We're not aware of anyone still using the feature, and if so they can just change the source, which is more appropriate in any case. Also, remove USE_ASM from the msvc project file.[toolbin/msvcxml.bat src/openvms.mak src/unix-end.mak src/gs.mak src/gscdefs.h src/openvms.mmk src/os2.mak src/wctail.mak src/winlib.mak src/gscdef.c]
2007-12-31T22:46:50.849681Z Alex Cherepanov
Add a flag that marks PDF text rendering mode 3 to avoid confusion with other non-rendering text operations such as stringwidth. This avoids unnecessary calculation of the current point, which fails when the CTM is singular. This patch continues conservative approach to the text rendering modes started in rev. 4006. Bug 689614, customer 384.[src/gxchar.c src/gstext.c src/gstext.h]
2007-12-31T19:06:52.216061Z Ray Johnston
Correct polarity of the stochastic threshold array so that the images are not too dark. DETAILS: The original conversion from the threshold array provided by CalComp had the threshold values inverted so that the implicit linearization was inverted, making images much too dark. This correction provides reasonable results on printers. Fine tuning of transfer functions can be used for specific printers.[lib/ht_ccsto.ps]
2007-12-31T18:07:59.109475Z Ralph Giles
Remove the USE_ASM build flag. Details: It was originally added to support vga mode setting, and has been used for a few minor optimizations since. We don't believe these are worth the trouble with modern compilers, so it is removed to simplify configuration management.[src/unix-end.mak src/openvms.mak src/watcw32.mak src/gdevpcfb.c doc/Develop.htm src/msvccmd.mak src/iutilasm.asm src/gsmisc.c src/msvclib.mak src/dvx-head.mak src/devs.mak src/os2.mak src/openvms.mmk src/unixhead.mak src/lib.mak src/bcwin32.mak src/winint.mak src/gdevegaa.asm src/msvc32.mak src/gdevsvga.c src/gsutil.c src/wccommon.mak src/wctail.mak src/winlib.mak]
2007-12-31T06:10:33.027699Z Alex Cherepanov
Don't try to obtain the bounding box of a glyph when FontBBox is invalid and CTM is singular. Set an empty box and consider it valid. The bounding box is not used when the CTM is singular. Bug 689614, customer 384.[src/zchar1.c]
2007-12-29T02:53:21.940078Z Ralph Giles
Remove the ARCH_CAN_SHIFT_FULL_LONG define and its derivatives. Bug 689611. Details: This was only used in one place, in an attempt to support non-portable code. However this caused problems with recent gcc's which optimized the test one way and the code in gxshade.c another. We're therefore removing it entirely and just using portable code.[src/std.h src/gxshade.c src/gxbitops.h src/genarch.c]
2007-12-27T22:28:36.610626Z Ralph Giles
Add -Wundef to the autoconf build. There have been a number of problems related to missing defines lately.[src/configure.ac]
2007-12-22T19:13:20.335131Z Ralph Giles
Correction to the refcount documentation. Our allocator can't double free, but attempting to trace a freed pointer can confuse things, possibly resulting in a segfault or other misbehaviour.[src/gsrefct.h]
2007-12-22T02:05:40.922995Z Ralph Giles
Also remove gdevcmap from the documentation.[doc/Develop.htm]
2007-12-22T02:05:36.008019Z Ralph Giles
Include gconfigv.h in std.h so defines like USE_FPU are more consistently defined.[src/lib.mak src/gscie.h src/std.h src/gdevpcfb.c src/gxfarith.h src/siscale.c src/gsmisc.c src/gdevsvga.c src/devs.mak src/sidscale.c src/gxpcopy.c]
2007-12-22T00:19:36.075695Z Ralph Giles
Document the behaviour of the reference count macros.[src/gsrefct.h]
2007-12-22T00:10:05.865239Z Ralph Giles
Remove the unused cmap device.[src/lib.mak src/ugcclib.mak src/gslib.c src/gdevcmap.c src/gdevcmap.h]
2007-12-21T19:58:19.459173Z Ralph Giles
Further update the graphics library unit test and build. The gslib test executable builds and works now.[src/ugcclib.mak src/gslib.c]
2007-12-21T19:56:07.995361Z Ralph Giles
Construct romfs.dev in the graphics library's gen directory instead of the ps interpreter's so building just the library is possible.[src/gs.mak]
2007-12-21T10:31:00.226023Z Ken Sharp
Fix (jbig2dec): The global data stream for a JBIG2 image in a PDF file was being released, and the data freed by the garbage collector, before the data was used. Details: Bug #689568 and #689569. Uses the patch supplied by Alex in thread for #689569, implements Ralph's comments about the structure naming. Does not attempt to change the memory allocator. This slightly modified patch also works with the Luratech decoder. sjbig2.h, sjbig2_luratech.h; make the global data structure s_jbig2_global_data_t public. Store the structure in the stream decoder state. sjbig2.c, sjbig2_luratech.c; store a pointer to the global data structure. sjbig2_luratech.c; don't reset the pointer during initialisation! zfjbig2.c; Pass the global pointer to the stream decoder for release in the finalize routine.[src/sjbig2_luratech.h src/zfjbig2.c src/sjbig2.c src/sjbig2.h src/sjbig2_luratech.c]
2007-12-21T00:15:53.911110Z Ralph Giles
Remove some old helper scripts. They aren't used much and we no longer wish to maintain them.[toolbin/many2pdf.tcl toolbin/pre toolbin/gssubst toolbin/gsindent]
2007-12-21T00:11:54.376327Z Ralph Giles
Make pre.tcl more robust in creating temporary files. Also update the copyright header and fix a bug in an error handler.[toolbin/pre.tcl]
2007-12-19T06:25:41.308572Z Alex Cherepanov
Ignore operator readonly when it is applied to a wrong type inside an embedded Type 1 font. Bug 689617, customer 580.[lib/pdf_font.ps]
2007-12-19T06:22:22.816836Z Alex Cherepanov
Treat the text after empty ASCII block in PFB stream as ASCII sub-stream terminated by 0x80 character, a presumed header of the next block. Bug 689617, customer 580.[src/sfilter1.c]
2007-12-19T00:25:08.107768Z Ralph Giles
Update the graphics library unit tests for recent code changes.[src/gslib.c]
2007-12-18T10:03:07.564012Z Ken Sharp
Fix (pdfwrite): Font Descriptors for fonts not embedded, due to EmbedAllFonts=false, did not preserve the original font name. Details: Bug #689597 "PDF created with NoEmbed has wrong BaseFont name". (gdevpdtd.c) pdf_font_descriptor_alloc, do not use the 'embed' status to determine whether to use the font or key name. Always use the font name. pdf_compute_font_descriptor. Remove the simplistic test for symbolic. In the loop retrieving glyph information, check to see if the glyph name is present in ISO Latin 1. If not, the font is symbolic.[src/gdevpdtd.c]
2007-12-18T10:02:09.815887Z Ken Sharp
Fix (pdfwrite): PDFXTrimBoxToMediaBoxOffset used the supplied data incorrectly. Details: Bug #689578 "PDFXTrimBoxToMediaBoxOffset". Patch supplied by Adam Augusta. (gdevpdf.c) pdf_write_page. When using the PDFXTrimBoxToMediaBoxOffset data, we need to subtract the bottom right offset from the MediaBox not add it, the trim box must lie inside the media (see Acrobat 7.0 distiller parameters manual, pp. 102-103).[src/gdevpdf.c]
2007-12-18T03:40:36.305448Z Ralph Giles
Remove the unused composite_rop device. DETAILS: This was an attempt to implement PCL raster operations as an interposed device which first rendered to an intermediate buffer and them composited with the underlying device buffer, similar to how the "PDF 1.4 Transparency" device works. While this would be a nice approach, allowing raster operations to function in more color spaces, it was never completed, and presents a maintenance burden for ongoing clist improvements. We are therefore removing it. It can be reinstated later as a starting point for further development if needed.[src/lib.mak src/gsropc.c src/gsropc.h doc/Develop.htm src/gxropc.h]
2007-12-17T21:33:35.320044Z Igor Melichev
Fix (transparency) : Providing a right nested masks logic (continued). DETAILS : The revision 8439 missed an initializer.[src/gdevp14.c]
2007-12-17T07:28:22.397599Z Alex Cherepanov
Improve outline pdfmarks produced by the pdf interpreter. Add page number and view values. Thanks to Leon Bottou for the patch. Bug 689599.[lib/pdf_main.ps]
2007-12-16T15:38:09.417159Z Igor Melichev
Fix (clist interpreter) : Improving debug trace about compositors. DETAILS : This only improves a debug printing. The algorithm isn't changed. This change simplifies the debug trace analysis with using C function names as event marks in the trace. Also return_error is now not used when c_pdf14trans_write is called for estimating the buffer size.[src/gdevp14.c]
2007-12-16T01:37:56.744199Z Alex Cherepanov
Don't skip space characters after eexec in embedded PDF fonts but continue to do so in other cases. Bug 689615.[src/seexec.c src/sfilter.h lib/pdf_font.ps src/zmisc1.c doc/Language.htm]
2007-12-14T19:51:01.706015Z Alex Cherepanov
Work around a GCC 4.2.1 bug on PowerPC that generates incorrect code in the release build affecting scanning of binary tokens containing floating point numbers. Bug 689586.[src/ibnum.c]
2007-12-14T18:40:31.738291Z Marcos Woehrmann
Added casts to sprintf debugging statements (thanks for Michael Rutter for finding these).[contrib/eplaser/gdevescv.c]
2007-12-14T18:31:39.938693Z Alex Cherepanov
Align the pointer to gx_clist_state array in gx_device_clist_writer device to the natural boundary to avoid misaligned memory access and bus errors on ARM processors. Bug 689600.[src/gxclist.c]
2007-12-12T20:29:44.002303Z Igor Melichev
Fix (transparency) : Providing a right nested masks logic. DETAILS : This redoes the change 8340 without extra assumptions. See comments in code.[src/gdevp14.h src/gdevp14.c]
2007-12-12T19:58:31.269810Z Igor Melichev
Fix (transparency) : Unwinding the nested masks logic. DETAILS : The patch 8340 appears to be optimized for a particular case, in which a call to pdf14_push_transparency_group "will have been preceded by pdf14_push_transparency_mask ... pdf14_pop_transparency_mask". This assumption is not true in general, when the clist interpreter skips idle groups (either with incoming improvement or with using the band complexity array). This patch unwinds the change 8340 and the dependent change 8342. It also simplifies the garbager descriptor for pdf14_buf_s. The nested mask problem is now reopen, but we intend to close it shortly with a different patch.[src/gdevp14.h src/gdevp14.c]
2007-12-12T19:00:44.753250Z Igor Melichev
Fix (clist interpreter) : Skip idle compositors, step 4. DETAILS : gs_pdf14trans_s doesn't need a reference counting. Actually it was never used, so removing it should be algorithmically equivalent.[src/gsropc.c src/gsalphac.c src/gxcomp.h src/gsovrc.c src/gdevp14.c]
2007-12-11T23:47:18.340705Z Ray Johnston
Fix for SEGV when more than 4 colorants used with psdcmyk device. Bug 689457 for customer #460. DETAILS: Apparently the psdcmyk device never got updated with the ret_devn_params proc as did the tiffsep device.[src/gdevpsd.c]
2007-12-11T21:27:02.763129Z Ralph Giles
Store the posix persistent cache's last modified line as an unsigned long to avoid portability problems when reading and writing. Bug 689604. DETAILS: Previously we used time_t directly, but read and wrote it to the filesystem using the %ld printf format specifier, which is wrong on systems where long int and time_t are different widths. Instead we stort it as an unsigned long int, coercing the return value of time(). This will be a year 2038 problem on systems with 32 bit longs, but seems the better option for portability now. There is no cast, so the compiler should warn if this loses precision.[src/gp_unix_cache.c]
2007-12-11T16:54:05.187153Z Marcos Woehrmann
Replaced C++ comments with C comments (// -> /* */).[imdi/imdi.c imdi/imdi_tab.c imdi/imdi_gen.c imdi/cctiff.c]
2007-12-11T08:29:58.454613Z Ken Sharp
Fix (jbig2dec): Missing support for decoding multiple symbols from a symbol dictionary, when using refinement/aggregation. Details: Bug #688945 "jbig2dec FATAL ERROR decoding image: aggregate coding with REFAGGNINST=2 (segment 0x03)". Improved the previous patch. We need to have a symbol dictionary which contains all the original symbols, plus all the symbols decoded so far, for the refinement/aggregation. Previously we created this anew for each symbol, this patch creates the dictionary once at the start of the dictionary decoding, and releases it when decoding is complete. Also releases the Huffman tables (if used), which was missed in the previous patch.[jbig2dec/jbig2_symbol_dict.c]
2007-12-10T22:11:05.461373Z Tor Andersson
Update to previous commit. Add pdf14_buffer maskbuf pointer to GC structures.[src/gdevp14.c]
2007-12-10T20:27:11.787298Z Alex Cherepanov
Fix a compilation error on Tru64's native cc, which doesn't tolerate spaces between -I and the directory. Thanks to M. Rutter for the patch. Bug 689602[contrib/contrib.mak]
2007-12-10T16:13:26.551663Z Tor Andersson
Pick up the transparency mask buffer when a new transparency group is pushed rather than when it is popped. Solves memory leaks and incorrect rendering when transparency groups are nested.[src/gdevp14.h src/gdevp14.c]
2007-12-10T09:45:03.624134Z Ken Sharp
Fix (jbig2dec): Missing support for decoding multiple symbols from a symbol dictionary, when using refinement/aggregation. Details: Bug #688945 "jbig2dec FATAL ERROR decoding image: aggregate coding with REFAGGNINST=2 (segment 0x03)". Added missing support. When decoding a symbol dictionary, using refinement/aggregation, and decoding multiple symbols, we need to use text region decoding (single symbols use refinement region decoding, already implemented). This required making the text region decoding procedure available to the symbol dictionary decoding routine, and correctly initialising the parameters. (jbig2_text.h) New include file. The 'Jbig2TextRegionParams' structure and Jbig2RefCorner enum have been moved here from jbig2_text.c, and a prototype for 'jbig2_decode_text_region' created. Added pointers for the adaptive arithmetic decoder tables to the Jbig2TextRegionParams structure, as these tables must now be passed to the decoder routine (see below) rather than initialised in it. (jbig2_text.c) Modified the 'jbig2_decode_text_region' routine to take the arithmetic decoder state or data stream (for Huffman decoding) as a parameter. When being called from the symbol dictionary decoder we must use the current decoder state; removed the initialisation of the decoder state, this is passed as a parameter Removed the initialisation of the adaptive arithmetic decoder tables, these are now passed as part of the Jbig2TextRegionParams structure. Modified 'jbig2_parse_text_region' to create and initialise the arithmetic decoder state (or data stream for Huffman). If using adaptive arithmetic encoding, create and initialise the tables.Required now that these are parameters to the text region decoder. (jbig2_symbol_dict.c) 'jbig2_decode_symbol_dict', when we encounter refinement/aggregation with REFAGGNINST > 1, instead of flagging an error create a Jbig2TextRegionParams structure (if not already present), initialise the arithmetic decoder tables, and call the text region decoder to create the bitmap. If we already have a Jbig2TextRegionParams structure (because we have already decoded a symbol this way) just use it as the argument to the text region decoder.[jbig2dec/jbig2_text.c src/jbig2.mak jbig2dec/jbig2_symbol_dict.c jbig2dec/jbig2_text.h]
2007-12-09T06:33:00.168945Z Alex Cherepanov
Use a smaller buffer for eexecDecode filter to avoid consumption of the data that follow a short (and incorrect) run of 0's in PS files generated by Adobe Acrobat from PDF files with usage restrictions. Bug 689577 DETAILS: The buffer size of 132 has been selected from a middle of small window that fixes the bug but doesn't cause regession in comparefiles/fonttest.pdf. Detection of EOF after seing a run of 0's is worth to note as an alternative.[src/seexec.c]
2007-12-08T13:57:53.015953Z Ken Sharp
Update the MSVC makefile to work with Visual Studio 2005 (nmake version 8). Should still be OK with MSVC 6.[jbig2dec/msvc.mak]
2007-12-07T23:39:06.271814Z Igor Melichev
Fix (clist interpreter) : Skip idle compositors, step 3. DETAILS : The clist writer writes the 'create compositor' operation to all bands, including ones that are not covered by a transparency. It does so because this operation changes the number of color components. When rendering a specific band, it frequently happens that a compositor is created and then immediately destroyed. Such thing happens outside the transparency bbox, and within the transparency bbox if the band has no transparent objects. When compositor is created, it allocates a big raster buffer and cleans it. Due to that we observe a significant CPU time expence when running the test case of the bug 689155. This patch is a preparation for further improvements. This patch includes CTM into pdf14 compositor params (see changes to c_pdf14trans_read, c_pdf14trans_write, clist_create_compositor). The result should be same as the old code, but the algorithm is different. The old code wrote CTM as a separate command before cmd_opv_ext_create_compositor. The new code does not, and in many cases compositor commads immediately follow each another. The last fact changes the behavior of the compositor queue : before this patch it consisted of 1 element maximum, but after it the queue becomes longer (up to 10 elements with SoftMaskGroup.pdf). A bug is fixed in the queue logic in gxclrast.c ln 1355. The queue is still immediately executed when a non-compositor command appears in the input stream. An annihilation of neighbour idle compositors will be a next step. Minor changes: - added a new method adjust_ctm to gs_composite_type_procs_t. - added type checks with composite_*_proc macros to all compositor types. - dependencies were broken for gdevp14.c in lib.mak .[src/lib.mak src/gsropc.c src/gdevdflt.c src/gxclpath.h src/gxcldev.h src/gsalphac.c src/gxcomp.h src/gsovrc.c src/gstrans.h src/gxclrast.c src/gdevp14.c src/gxclpath.c src/gxclimag.c src/gxclutil.c]
2007-12-05T23:39:42.529355Z Igor Melichev
Fix (clist interpreter) : Skip idle compositors, step 2. DETAILS : The clist writer writes the 'create compositor' operation to all bands, including ones that are not covered by a transparency. It does so because this operation changes the number of color components. When rendering a specific band, it frequently happens that a compositor is created and then immediately destroyed. Such thing happens outside the transparency bbox, and within the transparency bbox if the band has no transparent objects. When compositor is created, it allocates a big raster buffer and cleans it. Due to that we observe a significant CPU time expence when running the test case of the bug 689155. This patch is a preparation for further improvements. The change is algorithmically equivalent. It implements a compositor queue for a delayed applying of compositors. Nevertheless currently the compositors are still applied immediately due to stubs in is_null_compositor_op, is_closing_compositor.[src/gxcomp.h src/gxclrast.c]
2007-12-05T16:40:41.424504Z Igor Melichev
Fix (clist interpreter) : Skip idle compositors, step 1. DETAILS : The clist writer writes the 'create compositor' operation to all bands, including ones that are not covered by a transparency. It does so because this operation changes the number of color components. When rendering a specific band, it frequently happens that a compositor is created and then immediately destroyed. Such thing happens outside the transparency bbox, and within the transparency bbox if the band has no transparent objects. When compositor is created, it allocates a big raster buffer and cleans it. Due to that we observe a significant CPU time expence when running the test case of the bug 689155. This patch is a preparation for further improvements. The change is algorithmically equivalent. I simply divides read_create_compositor into 2 ones : the first one just reads the instruction, and the second one applies it. Also did a mionor code cleanup.[src/gxclrast.c]
2007-12-05T00:08:50.583846Z Till Kamppeter
Let CUPS filters use buffered input to Ghostscript via '-_', to work around bug #689577.[cups/pstoraster.in cups/pstopxl.in]
2007-12-03T21:31:16.528843Z Henry Stiles
Replace the "tricky" unit_frac macro with a normal function call. The macro produced a false positive in valgrind and seems to cause incorrect code generation on gcc 4.1.2 with optimization but we did not study it in detail. The change should be equivalent to the previous code, reviewed by Ralph Giles.[src/gxcmap.c src/gxcmap.h src/gscsepr.c src/gscdevn.c]
2007-12-03T20:07:05.165284Z Igor Melichev
Fix (shadings) : Optimize fill_linear_color_scanline with analitic computation of the color change position. DETAILS : Debugged with the test case of the bug 689155. This optimizes slightly changing gradients. It speeds up the test case from 6 hours to 5 hours. The old code in gx_default_fill_linear_color_scanline recomputes color for each pixel. The new code checks whether neighbour pixels have same color, and if so it finds the color change position with solving a linear equation, and fills entire constant color interval without computing color for each pixel. The linear equation is solved with 64 bits arithmetics. We would like to create a 32bits algorithm someday. We think it is possible with rounding colors to 16 bits and restricting a run length with 15 bits. Note it must not accummulate rounding errors, so it needs to compute from the run start at each iteration. So if the scanline is wide, first split it into smaller ones by coordinates, then break each subscanline into runs by color changes.[src/gdevdsha.c]
2007-11-30T22:13:49.581001Z L. Peter Deutsch
Add a tool that analyzes logs produced by gs -Z67, producing a report of memory leaks.[toolbin/memory.py]
2007-11-30T06:43:47.688763Z L. Peter Deutsch
Adds the base font address to the -Zm tracing output.[src/gsfont.c]
2007-11-30T06:43:12.449891Z L. Peter Deutsch
Fixes bug: -Z89 produced slightly mangled output (-Z9 output inserted in the middle of a line of -Z8 output).[src/igcref.c]
2007-11-30T00:45:53.632689Z Ray Johnston
Add URW fonts to the Resource/Font directory. These will be included when COMPILE_INITS=1. Fontmap.GS still references the disk file name so that the disk file based fonts can still be used if they are available.[Resource/Font/URWPalladioL-BoldItal Resource/Font/NimbusRomNo9L-Medi Resource/Font/NimbusSanL-Bold Resource/Font/Dingbats Resource/Font/URWChanceryL-MediItal Resource/Font/CenturySchL-Roma Resource/Font Resource/Font/NimbusMonL-Bold Resource/Font/URWGothicL-Demi Resource/Font/NimbusSanL-BoldItal Resource/Font/NimbusRomNo9L-MediItal Resource/Font/StandardSymL Resource/Font/URWBookmanL-DemiBold Resource/Font/NimbusRomNo9L-Regu Resource/Font/URWGothicL-Book Resource/Font/NimbusSanL-ReguCond Resource/Font/CenturySchL-Bold Resource/Font/URWBookmanL-Ligh Resource/Font/NimbusRomNo9L-ReguItal Resource/Font/URWBookmanL-DemiBoldItal Resource/Font/NimbusMonL-ReguObli Resource/Font/NimbusSanL-ReguCondItal Resource/Font/CenturySchL-Ital Resource/Font/URWPalladioL-Roma Resource/Font/CenturySchL-BoldItal Resource/Font/URWBookmanL-LighItal Resource/Font/NimbusSanL-BoldCond Resource/Font/NimbusMonL-BoldObli Resource/Font/NimbusSanL-BoldCondItal Resource/Font/URWGothicL-DemiObli Resource/Font/NimbusSanL-Regu Resource/Font/URWPalladioL-Bold Resource/Font/NimbusMonL-Regu Resource/Font/URWGothicL-BookObli Resource/Font/NimbusSanL-ReguItal Resource/Font/URWPalladioL-Ital]
2007-11-29T21:39:53.584646Z Igor Melichev
Fix (shadings) : Optimize path manipulations for shading fill (continued). DETAILS : Debugged with the test case of the bug 689155. A long ago the graphics library converted the sfill clipping into a path. It was improved with revision 8017 with introducing a device response for pattern_manage__shfill_doesnt_need_path. However the revision 8017 appears incomplete : it missed the related change to the clist writer device and to pdf14 device. This patch fixes it. This patch causes a progression for the problem known as bug 689338 "Raster depends on bands". With banded rendering some shadings are now painted some wider, and the raster appears equal to one from unbanded rendering. It happens because the old code doesn't convert shfill clipping into a path when no banding, and does convert when banding. The new code does not convert in both cases.[src/gdevp14.c src/gxclpath.c src/gxclrect.c]
2007-11-29T01:42:16.432740Z L. Peter Deutsch
Remove obsolete variables dstderr and estderr; repair tracing code in igcstr.c that would cause a crash if -Z5 was used.[src/interp.c src/gdebug.h src/igcstr.c]
2007-11-28T20:04:34.791598Z Ray Johnston
Add the 'pamcmyk32' (previously the 'pam' device) to all default builds. This will be used for regression testing of 32-bit CMYK. DETAILS: The 'pam' device is retained, but not included in the default builds, in case anyone was using this. The 'pamcmyk32' name was created as more descriptive.[src/bcwin32.mak src/openvms.mak src/ugcclib.mak src/macosx.mak src/watcw32.mak src/dvx-gcc.mak src/msvc32.mak src/unix-gcc.mak src/gdevpbm.c src/unixansi.mak src/macos-mcp.mak src/devs.mak src/os2.mak]
2007-11-28T19:47:48.435055Z Ralph Giles
Document the jasper build file version skew menioned in Bug 689570.[doc/Release.htm]
2007-11-28T18:46:55.924792Z Ray Johnston
Fix #defines when USE_COMPRESSED_ENCODING == 0 so that the number of components, separable/linear and encode/decode values are correct. Also add checking for TIFF file larger than max_long.[src/gdevtsep.c]
2007-11-28T18:39:59.435918Z Ray Johnston
Fix CIEBasedA problem, add DeviceGray and DeviceRGB support to this utility. DETAILS: This isn't used by Ghostscript, but is a useful utility for 'running' a CIE colorspace conversion to see the intermediate and final results.[lib/docie.ps]
2007-11-27T22:58:40.032075Z Ralph Giles
Also install gdevdsp.h in the unix so build. This header contains the callback definitions for the "display" device. Bug 689576.[src/unix-dll.mak]
2007-11-27T20:43:09.836338Z Ralph Giles
Update the regression code license headers with the current contact address.[toolbin/tests/dump_checksum.py toolbin/tests/cmpi.py toolbin/tests/gscheck_testfiles.py toolbin/tests/dump_checksum_plus.py toolbin/tests/check_source.py toolbin/tests/gssum.py toolbin/tests/gscheck_all.py toolbin/tests/dump_checksum_raw.py toolbin/tests/make_two_pdfversions toolbin/tests/check_all.py toolbin/tests/rasterdb.py toolbin/tests/gsutil.py toolbin/tests/gscheck_fuzzypdf.py toolbin/tests/revert_pdfbaseline toolbin/tests/build_revision.py toolbin/tests/compare_checksumdb.py toolbin/tests/gsconf.py toolbin/tests/revert_baseline toolbin/tests/update_baseline.py toolbin/tests/make_baselinedb.py toolbin/tests/gscheck_raster.py toolbin/tests/gsparamsets.py toolbin/tests/gstestutils.py toolbin/tests/compare_checksums.py toolbin/tests/check_dirs.py toolbin/tests/update_specific toolbin/tests/run_nightly.py toolbin/tests/gstestgs.py toolbin/tests/myoptparse.py toolbin/tests/run_regression.py toolbin/tests/get_baselines.py toolbin/tests/make_two_versions toolbin/tests/testdiff.py toolbin/tests/gscheck_pdfwrite.py toolbin/tests/make_testdb.py toolbin/tests/check_comments.py toolbin/tests/check_docrefs.py toolbin/tests/get_baseline_log.py]
2007-11-27T20:43:07.921159Z Ralph Giles
Change the regression scripts to rewrite the product as "GPL Ghostscript".[toolbin/tests/build_revision.py toolbin/tests/update_specific]
2007-11-27T18:11:10.542532Z Igor Melichev
Fix (graphics) : Improving the setoverprint logic. DETAILS : Debugged with the test case of the bug 689155. This eliminates unnecessary calls of dx_device::procs.create_compositor. In the test case the oprator 'show' calls gs_save and gs_restore and the latter performs unnecessary call to gs_do_set_overprint due to overprint is set at page start. It causes a significant CPU time expense while clist interpretation. We're not sure why the old code is such, we change it as we think correct. Will see the regression test results. A local test gave no differences.[src/gsstate.c]
2007-11-23T09:23:06.243419Z Ken Sharp
Fix (pdfwrite): Fonts containing glyphs with no sbw or hsbw instruction caused pdfwrite to crash. Details: Bug #689544 "Segmentation fault writing PDF file". The job contains a number of fonts apparently converted from TrueType to type 1. The /.notdef glyph in every case consists only of an endchar instruction. Techincally invalid since the specification says the first instruction must be either an sbw or hsbw instruction. This causes a crash because gs_type1_glyph_info didn't create a path before interpreting the glyph. If we encountered a path operation before a sbw instruction we attempted to write to the non-existent path. (gxtype1.c), gs_type1_glyph_info, create a path for the type 1 interpreter to work with. Make it a bbox_accumulator so we don't allocate memory for path segments. (gdevpsfu.c), psf_check_outline_glyphs, if we get an invalidfont error return from the font's 'glyph_info' procedure, don't exit immediately. Check each glyph, and only return an error if there are no good glyphs.[src/gxtype1.c src/gdevpsfu.c]
2007-11-22T02:46:59.719550Z Ralph Giles
Correct Id line and double-include protection warnings.[src/ConvertUTF.h toolbin/tests/check_source.py src/expat.mak]
2007-11-22T01:03:46.485805Z Ralph Giles
Update the run_nightly regression script to rewrite the product name to GPL Ghostscript instead of AFPL Ghostscript. Also, include quotation marks in the optional part of the regex so we work when GS_PRODUCT is set to another macro and does not include a literal string, as it does at release time.[toolbin/tests/run_nightly.py]
2007-11-22T00:54:03.544607Z Ralph Giles
Correct a format string error in the PDF 1.4 spot color name generation.[src/gdevp14.c]
2007-11-22T00:54:01.468513Z Ralph Giles
Update release procedure documentation.[doc/Release.htm]
2007-11-21T22:42:03.178745Z Ralph Giles
Bump the version number and date after the 8.61 release.[doc/News.htm lib/gs_init.ps src/gscdef.c src/version.mak]
2007-11-21T20:07:08.596302Z Ralph Giles
Update changelogs and release date for the second 8.61 candidate.[doc/History7.htm doc/Projects.htm doc/History8.htm man/dvipdf.1 man/ps2ascii.1 doc/Use.htm doc/Readme.htm doc/Source.htm doc/Deprecated.htm man/ps2epsi.1 doc/Install.htm doc/Changes.htm doc/API.htm doc/Issues.htm doc/DLL.htm doc/Drivers.htm man/pfbtopfa.1 doc/Release.htm doc/Commprod.htm doc/Xfonts.htm doc/Devices.htm doc/Language.htm man/gs.1 src/version.mak man/pf2afm.1 doc/Ps2ps2.htm doc/Fonts.htm man/printafm.1 doc/Ps2pdf.htm doc/Develop.htm doc/Helpers.htm man/pdf2dsc.1 doc/Psfiles.htm doc/Lib.htm doc/gs-vms.hlp doc/Htmstyle.htm man/font2c.1 man/gsnd.1 man/pdfopt.1 doc/News.htm man/pdf2ps.1 man/ps2pdf.1 doc/Testing.htm doc/Make.htm doc/Details8.htm doc/Unix-lpr.htm doc/C-style.htm doc/Ps-style.htm doc/History1.htm doc/History2.htm man/gslp.1 man/wftopfa.1 doc/History3.htm doc/Details.htm doc/Ps2epsi.htm doc/History4.htm man/ps2pdfwr.1 man/ps2ps.1 doc/History5.htm doc/History6.htm]