| Detailed History of Ghostscript versions 8.xx |
|---|
- Version 8.71 (2009-02-10)
- Version 8.70 (2009-07-31)
- Version 8.64 (2009-02-03)
- Version 8.63 (2008-08-01)
- Version 8.62 (2008-02-29)
- Version 8.61 (2007-11-21)
- Version 8.60 (2007-08-01)
- Version 8.57 (2007-05-11)
- Version 8.56 (2007-03-14)
- Version 8.54 (2006-05-17)
- Version 8.53 (2005-10-20)
- Version 8.52 (2005-10-07)
- Version 8.51 (2005-04-18)
- Version 8.50 (2004-12-10)
- Version 8.33 (2004-11-20)
- Version 8.32 (2004-10-26)
- Version 8.31 (2004-08-28)
- Version 8.30 (2004-05-29)
- Version 8.12 (2003-12-08)
- Version 8.11 (2003-08-16)
- Version 8.10 (2003-05-21)
- Version 8.00 (2002-11-21)
This document is a record of changes in Ghostscript releases numbered 8.xx. For earlier versions, see the the history documents:
History of Ghostscript versions 7.n
History of Ghostscript versions 6.n
History of Ghostscript versions 5.n
History of Ghostscript versions 4.n
History of Ghostscript versions 3.n
History of Ghostscript versions 2.n
History of Ghostscript versions 1.n
For other information, see the Ghostscript overview.
This is the second release in the stable 8.7x series. It features improved handling of fonts, nesting and color fixes with transparency objects, reduced memory footprint for the halftone cache, as well as improvements to the pxl output devices, and the usual number of bug and robustness fixes.
New in this release is an experimental project file for Microsoft Visual Studio. This wraps the normal nmake build, and makes it easier for developers to get started building Ghostscript with that compiler.
Support for tiff file output is now provided using the libtiff implementation rather than our more limited native code as in previous releases. There is also a new 'tiffsep1' output device which produces halftoned separations at 1 bit-per-pixel, in contrast to the 'tiffsep' device which produces 8 bit-per-pixel plates.
Support for using FreeType as a type rasterizer has been greatly improved. We do not recommend its use as of this release, but it is much more functional than previously and our intent is that it will become the default in a future release.
The graphics library has been updated to provide more accurate scan conversion of vector art including fixes to dash behavior, transparent stroked paths, thick stroked paths, radial shadings, xps cap handling, "pie" joins, degenerate beziers, improved handling of dropouts in thin strokes and better thin axis-aligned strokes.
For a list of open issues, or to report problems with this release, please visit bugs.ghostscript.com.
No recorded incompatible changes.
2010-02-09T16:13:39.643382Z Ralph Giles
Clean up some typos in the release notes, and mention the reduced memory footprint of the halftone cache from r10006.[doc/News.htm]
2010-02-08T22:10:30.586772Z Ralph Giles
Update the change logs for the second 8.71 release candidate.[doc/Changes.htm doc/History8.htm doc/News.htm doc/Details8.htm doc/Details.htm]
2010-02-08T22:03:22.755385Z Ralph Giles
Add some notes on what's new in the 8.71 release.[doc/News.htm]
2010-02-08T20:06:58.778484Z Ralph Giles
Update the the release dates for the second 8.71 release candidate.[doc/History7.htm doc/Projects.htm doc/History8.htm man/dvipdf.1 base/gscdef.c man/ps2ascii.1 doc/Use.htm doc/Readme.htm doc/Source.htm doc/Deprecated.htm man/ps2epsi.1 doc/Install.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 man/pf2afm.1 doc/Fonts.htm doc/Ps2ps2.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 man/font2c.1 man/gsnd.1 base/version.mak man/pdfopt.1 doc/News.htm man/pdf2ps.1 man/ps2pdf.1 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 man/ps2ps.1 doc/Ps2epsi.htm doc/History4.htm man/ps2pdfwr.1 doc/History5.htm doc/History6.htm]
2010-02-08T17:35:32.033134Z Robin Watts
Update Visual Studio solutions to use the DEVSTUDIO= form of makefile invocation, rather than MSVC_STUDIO=8 version. This should isolate the solution/projects entirely from the version of visual studio in use. Simplify the ReadMe.txt file accordingly. Take the opportunity to add the resource files to the list in the ghostscript.vcproj file. This makes no difference to the project in terms of building, but enables easy navigation/editing of files within VS.[/trunk/ghostpdl/win32/ReadMe.txt /trunk/ghostpdl/win32/xps.vcproj ghostscript.vcproj /trunk/ghostpdl/win32/pcl.vcproj /trunk/ghostpdl/win32/svg.vcproj /trunk/ghostpdl/win32/language_switch.vcproj]
2010-02-08T16:45:47.345828Z Ken Sharp
Fix (pdfwrite) bug #691101 (part 2 of 2) The revisions 10474 and 10476 were intended to address an indeterminism but actually introduced a fairly serious regression. The code was changed to return any error value from the glyph_info method before testing the members of the 'info' structure passed to the method. Previously one of the member could be examined when an error had meant that the member was still uniinitialised. However, these revision missed the fact that the glyph_info method can return a 'rangecheck' error when they require a CDevProc to be executed. Because the error code was tested before checking for a CDevProc, the pdfwrite code never executed the CDevproc. This resulted in a (very) few regressions, this is because the PDF interpreter uses a CDevProc to alter the widths of glyphs if a /W array is present in a PDF file. The code now initialises the member of the structure to 0, which we then test before checking the return code. If we need to run a CDevProc we now do so. Part 2 of this commit explains some further issues with CDevProcs.[base/gdevpdtt.c]
2010-02-08T16:45:18.598274Z Ken Sharp
Fix (pdfwrite) bug #691101 (part 1 of 2) The revision 10603 fixed a number of issues relating to FontMatrix and descendant fonts of CIDFonts. However part of the fix, in CIDWProc, used 'currentfont' to address the font dictionary instead of 'currentdict', as is done in the rest of the routine. For rendering devices this works well, but for pdfwrite the two dictionaries are not the same, and this causes PostScript errors. This error was initially hidden by the revisions 10474 and 10476 which inadvertently caused all CDevProc routines not to execute when using pdfwrite. This patch alters the CIDWProc to use currentdict instead of currentfont, there are no differences with rendering devices but with pdfwrite this causes the CDevProc to execute properly, eliminating a number of errors (when the faulty revisiions 10474 and 10476 are rolled back)[Resource/Init/pdf_font.ps]
2010-02-04T17:47:57.663462Z Lars Uebernickel
Changed MaxStripSize for TIFF devices to default to 8 KB. This is necessary, because libtiff keeps a whole strip in memory at a time, which resulted in very large buffers for big files. Support of MaxStripSize for all TIFF devices which didn't have it before was also added.[base/gdevtifs.c base/gdevtifs.h tiff/libtiff/tif_config.vc.h base/gdevtsep.c doc/Devices.htm base/gdevtfnx.c base/gdevtfax.c]
2010-02-04T03:38:54.455593Z Ralph Giles
Update change logs for the 8.71 release candidate.[doc/Changes.htm doc/History8.htm doc/Details8.htm doc/Details.htm]
2010-02-03T22:46:15.528358Z Ralph Giles
Remove the list of open bugs. It's grown long enough to be unhelpful to track explicitly in each release.[doc/News.htm]
2010-02-03T22:42:50.644387Z Ralph Giles
Update release date for the 8.71 release candidate.[doc/History7.htm doc/Projects.htm doc/History8.htm man/dvipdf.1 base/gscdef.c man/ps2ascii.1 doc/Use.htm doc/Readme.htm doc/Source.htm doc/Deprecated.htm man/ps2epsi.1 doc/Install.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 man/pf2afm.1 doc/Fonts.htm doc/Ps2ps2.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 man/font2c.1 man/gsnd.1 base/version.mak man/pdfopt.1 doc/News.htm man/pdf2ps.1 man/ps2pdf.1 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 man/ps2ps.1 doc/Ps2epsi.htm doc/History4.htm man/ps2pdfwr.1 doc/History5.htm doc/History6.htm]
2010-02-03T22:39:42.033100Z Ralph Giles
Document the location of the new vcproj file, and exclude it from the extraneous files test.[doc/Develop.htm toolbin/tests/check_dirs.py]
2010-02-03T22:29:34.129817Z Ralph Giles
Bump the copyright date for the windows metadata.[psi/dwsetup.rc psi/winint.mak]
2010-02-02T22:48:55.363996Z Ralph Giles
Update our included copy of the libpng source to 1.2.42.[libpng]
2010-02-02T22:45:55.167908Z Ralph Giles
Remove the in-tree copy of the libpng source to make way for a newer release.[libpng]
2010-02-02T19:30:15.986507Z Ralph Giles
Update jbig2dec with the 0.11 release source.[jbig2dec/aclocal.m4 jbig2dec/jbig2_metadata.c jbig2dec/install-sh jbig2dec/jbig2.c jbig2dec/mkinstalldirs jbig2dec/jbig2_image.c jbig2dec/configure jbig2dec/Makefile.in jbig2dec/jbig2_text.c jbig2dec/jbig2_metadata.h jbig2dec/jbig2_priv.h jbig2dec/depcomp jbig2dec/compile jbig2dec/jbig2dec.c jbig2dec/config.guess jbig2dec/jbig2_refinement.c jbig2dec/ltmain.sh jbig2dec/config.sub jbig2dec/README jbig2dec/jbig2_halftone.c jbig2dec/config.h.in jbig2dec/jbig2_segment.c jbig2dec/configure.ac jbig2dec/jbig2dec.1 jbig2dec/CHANGES jbig2dec/COPYING jbig2dec/Makefile.am jbig2dec/missing jbig2dec/jbig2_page.c]
2010-02-02T18:14:37.922390Z Hin-Tak Leung
Set rc.exe location according to MSSDK variable - fix build problem with windows 7 SDK - bug 691062.[psi/msvc32.mak]
2010-02-02T07:23:57.821537Z Alex Cherepanov
Re-implement optional content support to avoid dependence on proper nesting of optional content and q..Q blocks. Check for the visibility flag and skip most graphic operations when needed. Skip test rendering operations by installing nullpage device to minimize changes in a rather complicated code. Bug 691076, customers 531, 850.[Resource/Init/pdf_ops.ps Resource/Init/pdf_main.ps Resource/Init/pdf_draw.ps]
2010-02-01T19:41:49.001947Z Ray Johnston
Fix Windows UninstallString registry entry to use " " around the path and uninistgs.exe so that (the usual) spaces in the path don't cause problems. Thanks to Stefan Kanthak for pointing this out.[psi/dwinst.cpp]
2010-02-01T00:02:04.763835Z Alex Cherepanov
Patch font resource category for CET testing to always return the font memory usage as unknown (-1) to avoid differences between hosts. Bug 691057.[Resource/Init/gs_cet.ps]
2010-01-31T20:30:13.616671Z Alex Cherepanov
Use the sum of local and global VM usage for the value reported by "/Font resourcestatus". This gives better estimation of memory consumption and makes the result independent of the global state when the font was loaded. With this patch CET case 23-33.PS shows different values for "/Font resourcestatus".[Resource/Init/gs_res.ps]
2010-01-31T00:46:38.360004Z Alex Cherepanov
Add a check whether the current layer is visible to Do operator. This is a first step to replace implementation that relies on installation of an non-rendering output device (nullpage) with an implementation that uses direct checks. Bug 691059.[Resource/Init/pdf_draw.ps]
2010-01-30T20:25:19.240406Z Alex Cherepanov
Fix 'undefined' error in 29-07C.PS CET test file that was happening because .selectmedia procedure in gs_setpd.ps was building an error information dictionary ('<failed>' in its comment) with many keys those doesn't exist in <request> dictionary, such as /LeadinEdge or /InsertSheet. This draws the policy 0 procedure (line 544) to 'get' non-existant keys from <merged> dictionary. Thanks to Masaki Ushizaka for the patch. Bug 691065.[Resource/Init/gs_setpd.ps]
2010-01-30T06:50:14.586165Z Alex Cherepanov
Preserve /F and /BS attributes of /Link annotation during PDF to PDF conversion. Thanks to Ken for the patch. Bug 691092, customer 1.[Resource/Init/pdf_main.ps]
2010-01-29T21:40:45.586239Z regression
Added highres option to clusterpush.pl (opposite of lowres).[toolbin/localcluster/build.pl toolbin/localcluster/clusterpush.pl toolbin/localcluster/run.pl]
2010-01-28T21:43:37.243405Z Marcos H. Woehrmann
Fixed typo in clusterpush.pl.[toolbin/localcluster/clusterpush.pl]
2010-01-28T19:34:19.913293Z regression
Added a new option to clusterpush.pl: lowres. This option can appear anywhere on the comand line and signals the local cluster regression to only run lowres (72 and 75 dpi) output, for example: clusterpush.pl pcl lowres or clusterpush.pl lowres "gs pcl" henrys Note that this will fail if we ever hire an engineer with the name lowres or use that as an internal product name. Also, there currently aren't any 75 dpi baseline md5sums for the pcl product, so until the next pcl svn commit it doens't make sense to run with this option. Also added partial support for generating bitmaps with changes and running them through bmpcmp.[toolbin/localcluster/clustermaster.pl toolbin/localcluster/build.pl toolbin/localcluster/clusterpush.pl toolbin/localcluster/run.pl]
2010-01-28T15:18:36.842224Z Robin Watts
Squash a warning about %d and size_t spotted by Marcos. Thanks.[toolbin/bmpcmp.c]
2010-01-28T15:13:05.688649Z Robin Watts
Fix free of incorrect pointer in bmpcmp. Also tweak pnm reading so that no seeks are used, so we can use the bmpcmp < (zcat foo.pnm.gz) < (zcat bar.pnm.gz) ... trick if required (bmps still seek!).[toolbin/bmpcmp.c]
2010-01-28T14:44:22.110825Z Ken Sharp
Remove accidental stupid inclusion of a C++ style comment ....[psi/zfapi.c]
2010-01-28T14:32:52.354649Z Ken Sharp
Fix (FAPI) Bit complex here. The FAPI code needs to tell the font rendering engine how much to scale the font in order to get properly sized bitmaps. It does this by looking at the FontMatrix, comparing it with the 'original' FontMatrix and determining the scale from there. The problem is that the 'original' FontMatrix was being retrieved from a copy of the font stored when it is defined, intended for use by pdfwrite. When we define a font we check to see if it has an /OrigFont entry, and simply use the one which is present if we do. This causes us problems if we make a new scaled font by taking an existing font and changing its FontMatrix. We don't write the new FontMatrix into the OrigFont dict, and so when we come to determine the font scale we divide the FontMatrix by the 'original' stored matrix. This effectively results in any scale factor built into the FotnMatrix being applied twice, once by FreeType because the FontMatrix isn't the default, and once by the FAPI when it divides the FotnMatrix by the original. I didn't want to modify the OrigFont entry, as that would probably break pdfwrite, so I've modified the FAPI code to take a copy of the FontMatrix at the time the font is defined and store it in its own structure. We then use this to determine how much to scale the font by dividing the current FontMatrix by the matrix at the time the font was defined. This fixes my hand-crafter test file and improves the output of Bug687615.ps and two_encodings.ps. The output is now the correct size, but the spacing is wrong in bug687615.ps and many glyphs are missing from two_encodings.ps.[psi/fapi_ft.c psi/zfapi.c psi/ifapi.h psi/fapiufst.c]
2010-01-27T19:08:07.958712Z Robin Watts
Updated version of bmpcmp.c to support maxdiffs parameter. Also, bitmaps are output numbered 00000, 00001, etc rather than 0, 1, etc to tidy directory listings. Updated htmldiff.pl file to cope with the rejigged number formats.[toolbin/bmpcmp.c toolbin/htmldiff.pl]
2010-01-27T14:55:55.064385Z Robin Watts
Introduce new gs_currentdevicecolor function (and inline macro version) to retrieve the current device color from the graphics state. Use this in the 2 places in pl that require it. This restricts all the knowledge of the way colors are stored in the graphics state to being within the gs code. This is done as a precursor to the work to support 2 color's in the graphics state to enable a branch to be taken on gs only. Regression tests predict 128 changes, but local testing with htmldiff.pl shows none.[base/gscolor2.c base/gscolor2.h /trunk/ghostpdl/pl/plchar.c /trunk/ghostpdl/pl/pldraw.c base/gzstate.h]
2010-01-26T01:15:46.612807Z Michael Vrhel
Fix for memory leak reported in bug 690754. The memory leak occurred when processing xps transparency files. The softmask group buffer was not being deallocated properly. We now properly deallocate an old soft mask buffer that will no longer be used when new one is coming in to replace it. There should not be any rendering differences with this commit.[base/gdevp14.c]
2010-01-24T17:27:38.965229Z Robin Watts
Fix problems with htmldiff.pl introduced when introducing iframes mode. (Javascript wasn't working, image source was incorrect).[toolbin/htmldiff.pl]
2010-01-24T16:20:43.098277Z Robin Watts
Correct some errors in htmldiff.pl. Firstly, perl doesn't have true/false, so use 0/1. Secondly, move framenum increment out of if where I'd incorrectly put it before, resulting in everything going into the same dir unless iframes were used.[toolbin/htmldiff.pl]
2010-01-23T17:42:47.176361Z Robin Watts
Updated htmldiff; neater output structure - each files diffs go into their own subdirectory. Option to use iframes to avoid regenerating the html twice. Config file include now uses ENV{"HOME"} rather than ~ to work on Mac OS.[toolbin/htmldiff.pl]
2010-01-22T17:46:02.036283Z Till Kamppeter
"cups" output device: Reallocate memory for raster data only if the size of the bitmap has changed, to avoid data getting messed up by unneeded reallocation. This should finally fix bug #691029.[cups/gdevcups.c]
2010-01-22T09:01:28.663933Z Ken Sharp
Fix (pswrite) The pswrite device only partially implemented the 'file per page' output model. It closed the output file and the bbox device, but did not open a new output file or reopen the bbox device, leading to potential crashes later when the pswrite device tried to access the bbox device. This patch reopens the bbox device, and opens a new output file, at the end of every page when we are outputting one file per page. The problem is that this will emit an empty EPS after the last page is completed. Fixing this would mean delaying opening the output file until we had received a marking operation. That's more work than we want to do on this device, so this is being left as an issue.[base/gdevps.c]
2010-01-21T03:04:21.383005Z Hin-Tak Leung
adding the tiff directory to the list of files to zip up during a windows build. Thanks Gennadiy Tsarenkov or the report and patch. Fixes bug 691069[psi/winint.mak]
2010-01-20T19:07:01.585691Z Till Kamppeter
Fixed handling of back sides when duplex printing via the CUPS Raster output device. With PostScript as input format the y-axis of the back sides was often flipped (bug #691029).[cups/gdevcups.c]
2010-01-20T18:11:39.888031Z Michael Vrhel
This commit is a fix for bug 691021 which had quantized (unsmooth) shading artifacts when transparency was present. The primary changes to the code are: The adaptive (non-fixed) smoothness method is now used in the shading code when transparency is present. Previously there was a check put in place and if there was transparency a fixed amount of smoothing was enforced. The color cache used in the shading code was updated to use the color information in the transparency device that is contained in the imager state. This object is initialized with either the target device when there is no transparency or with the PDF14 device when there is transparency. In this way, the proper color information is used by the cache. The shading code makes use of the member variables comp_shift and comp_bits in the color_info member variable of the target device. This information is now properly updated in the PDF14 device as the transparency group color space changes. A clist change was also required for proper XPS rendering of gradients. When it has a gradient with a transparency component, the XPS code first creates a soft mask group and draws the alpha shading. It then creates a transparency group to draw the color components portion of the shading. When the transparency group is popped, is is composed using the soft mask buffer which is the XPS opacity shading. When we are going through the clist writer, the writer will end up drawing the shadings for both the opacity component and the color component with trapezoid fills. Later, during the clist reading and execution of the trapezoid filling, a clipping device is created. This device is created with the color info properties of the target device, which in our case is a PDF14 device. The clipping device is first created during the soft mask group. This group has color information associated with a grey device since it is just a single channel (the XPS alpha channel). Later, the same clipping device is used when we are doing the trapezoid filling during the transparency group fills. The problem is that the color information of the target device may have changed, for example if the transparency color group is RGB or CMYK. We need to test for that and update the color info for the clipping device. There are several regression test files that are affected by this commit. I looked at all of them. Changes appear to be progressions or visually unnoticeable. Files are Bug688807.pdf Bug689918.pdf Bug690115.pdf Bug690206.pdf Bug690535.pdf Bug690709.pdf CATX1101.pdf CATX4135.pdf CATX5233.pdf CATX6508.pdf CATX9004.pdf IA3Z0302.pdf IA3Z0303.pdf as well as most of the fts_##xx.xps tests.[base/gscicach.h base/gxshade6.c base/gdevp14.c base/gdevp14.h base/gxshade.c base/gscicach.c base/gxclrast.c base/gxshade.h]
2010-01-19T21:38:16.998845Z Hin-Tak Leung
adding comment about possible future rewrite with XGetPixel() ; no code change[base/gdevx.c]
2010-01-19T15:48:57.559895Z Robin Watts
Attempt to fix bug 691030, regression with thin lines. This regression was caused by revision 10391, where I pulled the rectangle special cases into line with the more general case. Sadly, the more general case appears to be wrong in the way it rounds lines lying on integer values. The fix is to correct the rounding in the general case, and to keep the rectangle special cases in line with this. Unfortunately this produces unacceptable results with the PCL interpreter. We therefore commit a compromise solution, whereby we make the code do the 'correct' thing (or what we believe the correct thing is) for postscript, and leave operation alone for the other languages. We spot this by examining the fill_adjust values. This seems to works, with the minor problem that we still see some changes in PCL due to it sometimes using non-zero fill_adjust to thicken lines. A visual check shows the diffs to be reasonable. Expected Differences: MANY. But extensively checked with htmldiff and they seem OK.[base/gxdevcli.h base/gdevtxtw.c base/gdevtrac.c base/gdevbbox.c base/gdevmem.c base/gdevnfwd.c base/gdevddrw.c base/gxstroke.c]
2010-01-19T11:18:24.072283Z Robin Watts
Move ghostscript.vcproj from win32 to gs directory, and adjust solution file accordingly. This serves 2 purposes; firstly, the solution now correctly supports tag jumping (that is, the ability to click on a warning or error and jump to that line in the file). The second is that the ghostscript project now lives in the ghostscript directory, and hence may be usable by people wanting to build *just* ghostscript, rather than ghostscript as a component of GhostPDL. Update ReadMe.txt to reflect this change, and document a known problem. No expected differences.[/trunk/ghostpdl/win32/ghostscript.vcproj /trunk/ghostpdl/win32/ReadMe.txt ghostscript.vcproj /trunk/ghostpdl/win32/GhostPDL.sln]
2010-01-18T11:28:29.454584Z Ken Sharp
Addendum to revision 10615. Use the *y* scale factor for computing the vertical character advance, not the x scale which the previous commit used. Also note that the text of the previous log said: "as a parameter to zchar_set_cache to set the horizontal advance" That should, of course, read vertical advance.[psi/zfapi.c]
2010-01-18T11:16:55.954810Z Ken Sharp
Fix (FAPI - FreeType). The current FAPI implementation for FreeType ignores any vertical advance defined in a glyph. This causes type 1 glyphs defined with an sbw (not hsbw) which have a vertical advance as well as, or instead of, a horizontal advance to not advance the current point correctly. There is a separate issue with FreeType which does not return the correct vertical advance which will be addressed in a separate patch. This patch adds the vertical advance to the metrics structure and uses it as a parameter to zchar_set_cache to set the horizontal advance in GS for the glyph.[psi/fapi_ft.c psi/zfapi.c psi/ifapi.h]
2010-01-18T08:41:20.191771Z Ken Sharp
Fix (FAPI). The code to 'serialise' a CFF font (that is to convert the internal GS representation back to a stream resembling a disk font) was seriously broken when writing a local Subrs DICT. The offset to the Subrs DICT is stored in the Private DICT as an offset from the start of the Private DICT. This means it depends on the length of the Private DICT, but the Private DICT includes that offset, so the length of the Private DICT is dependent on the size of the offset (CFF integers use between 1 & 5 bytes depending on their value). The normal method for dealing with this is a process of refinement; assume that a 1 byte representation will suffice, calculate the size of the DICT, see if that size can be represented in 1 byte. If not assume a 2 byte representation, recalculate the size of the DICT, see if it can be represented in 2 bytes and so on. It looks like the code was intended to do this, but it was in fact seriously broken and ended up incrementing an integer for size of DICT until it became negative, and then stored a negative (and incorrect) offset to the Subrs. Replaced the code with a simple for loop surrounding a switch.[psi/write_t2.c]
2010-01-14T16:38:45.881264Z Ken Sharp
Fix the syntax error accidentally committed in revision 10608 which prevented Ghostscript from building.[base/gdevpdtw.c]
2010-01-14T16:25:03.707208Z Ken Sharp
Fix (pdfwrite) Bug #691058 "Incorrect embedding of CIDToGIDMap for CIDFontType 2". Previously we would embed a CIDToGIDMap for a CIDFontType 2 font (TrueType outlines) if the font had a non-identity CIDToGIDMap, or if we were producing PDF/A output. However the spec (PDF 1.7, Section 5.6, "Glyph Selection in CIDFonts') says that we should *always* embed a CIDToGIDMap if the font is embedded, and never if the font is not. This patch modified the CIDToGIDMap production so that we ignore the production of PDF/A files, and instead check whether the font is being embedded. If it is being embedded then we create a CIDToGIDMap, if it is not, then we don't.[base/gdevpdtw.c]
2010-01-14T02:24:19.739891Z Masaki Ushizaka
Fix two warnings introduced in rev. 10603. Signed/unsigned incompatibility.[base/gschar0.c]
2010-01-13T21:04:09.482842Z regression
General cleanup and minor improvements of the local cluster code: changed timeout values keep logs of machine status messages change previous md5sum cache size better differentiate pdfwrite vs bitmap output errors[toolbin/localcluster/clustermaster.pl toolbin/localcluster/readlog.pl toolbin/localcluster/build.pl toolbin/localcluster/run.pl toolbin/localcluster/compare.pl]
2010-01-12T21:42:28.034208Z Robin Watts
Fix overallocation in bmpcmp.c that was causing out of memory errors.[toolbin/bmpcmp.c]
2010-01-12T20:22:32.464302Z Robin Watts
Updated bmpcmp.c and htmldiff.pl. bmpcmp.c now outputs metadata about each set of difference bitmaps (which page, bbox etc). htmldiff.pl now reads that metadata and outputs that into the file. Some javascript hackery is used to display the device coords of the point under the mouse pointer. Finally, if the $parallel option is set, htmldiff will fork jobs in parallel to try to make better use of multicore machines.[toolbin/bmpcmp.c toolbin/htmldiff.pl]
2010-01-12T09:49:58.118243Z Masaki Ushizaka
Fix for bug #690834 & #687832 Bug #690834: text garbled in PS viewer; PDF works - Fixed to concatenate CIDFont FDArray font's FontMatrix when running under 'cshow' or 'glyphshow'. - Fixed to use correct FDArray font when concatenate its FontMatrix. - Changed the meaning of 'fstack.items[n].index' to keep track of FDArray font and FontMatrix. - Reverted the rev. 5613 which was a fix for bug #687832. Bug #687832: (PDF interpreter) : CID Font in PDF - Fixed the interpretaion of W/W2/DW/DW2 value from glyph space (wrong) to 1000th of text space (correct). Applying this patch makes some one dot differences on text in 19 files of LocalCluster test. (List is in Bugzilla #687832 comment #9).[base/gxchar.c Resource/Init/pdf_font.ps base/gdevpdtc.c base/gschar0.c base/gxtext.h]
2010-01-11T12:08:26.301794Z Ken Sharp
Bug #691044 "" Another problem caused by a corrupt compressed data stream, resulting in garbage data being sent to the TrueType interpreter. Caused when the TT interpreter is given an argument of 0 to the MINDEX operator. Rather than flag this as an error I've chosen to simply return. This is because it seems that a value of 0 is actually legal (stupid, but legal), and simply leaves the stack unchanged.[base/ttinterp.c]
2010-01-10T15:51:48.168326Z Alex Cherepanov
Don't use operator 'execute' because it resets the /command attribute in $error dictionary. Use '.execute pop' instead. Keep 'execute' as an operator for backward compatibility. Thanks to dakka.akka@gmail.com for analysis of the bug. Bug 691050.[toolbin/smoke.ps Resource/Init/gs_init.ps]
2010-01-09T23:59:33.690907Z Robin Watts
Updated version of bmpcmp. Now loads bmp, pgm, pbm, ppm files. Diffs are always written as bmps though. No expected differences.[toolbin/bmpcmp.c]
2010-01-09T16:01:24.458674Z Ken Sharp
Fix a Coverity warning. We were potentially passing a NULL pointer to a routine which would unconditionally dereference it. Fixed by taking no action if the pointer is NULL.[base/gsgdata.c]
2010-01-08T01:17:24.694675Z Ray Johnston
Add documentation on the limitations of -sstdout=_____ where users expected _all_ stdout I/O to be redirected, not just PS writing to stdout. Bug 691037.[doc/Use.htm]
2010-01-07T10:53:36.539549Z Robin Watts
Changes to the MSVC makefiles to prepare for the prototype vs2005 solution file. Firstly, we introduce an SBR symbol; if this is set when invoking the makefile, we add a new flag to the C compiler (held in SBRFLAGS) to cause the generation of the browse data for each source file. Next, we introduce a new bsc build target to combine those .sbr files into appropriate .bsc ones. The final change is enable debug builds to put their builds into debugobj rather than obj directories. With luck, this should cause no differences for anyone other than me.[/trunk/ghostpdl/common/msvc_top.mak /trunk/ghostpdl/language_switch/pspcl6_msvc.mak /trunk/ghostpdl/svg/svg_msvc.mak base/msvccmd.mak /trunk/ghostpdl/xps/xps_msvc.mak psi/msvc32.mak base/msvclib.mak /trunk/ghostpdl/main/pcl6_msvc.mak]
2010-01-07T10:31:53.862753Z Ken Sharp
Update the example file. The old file used a single 'charpath pathbbox' to determine the height of the text. It then used the 'scale' operator to draw larger text. If the path was fixed to pixel boundaries, and the point size was low (default 15 points) this could lead to a small error which was magnified by the cumulative scale operations. This led to significant differences when using the FreeType font code, as it seems to return a hinted path which is bounded by pixel co-ordinates, unlike the regular GS code. The altered code scales the font and recalculates the height of the text each time giving more accurate results. In addition a minimum size has been introduced (50 points) for the calculation of the text height. Together these result in much closer output.[examples/alphabet.ps]
2010-01-06T11:19:01.103028Z Ken Sharp
Fix bug #691043 "Vulnerability report : Ghostscript gs_type2_interpret null ptr dereference (Segmentation Fault)". The problem appears to be caused by a corrupt compressed data stream which results in garbage font data being sent to the type 2 and under some conditions the type 1, font interpreters. As noted these font interpreters are normally coded to be intolerant of faults, and do not normally perform much error checking. As a result badly formed (or as in this case, garbage) fonts can cause serious problems. Although the null dereference is the cause of the error, this is actually caused by interpreting the data as a font, and decrementing the font instruction pointer below the bottom of the instruction stack. The patch here adopts the suggestion from the original bug reporter of checking the pointer before the dereference, but in addition adds some checking when the instruction pointer is decremented to see that it does not descend past the bottom of the stack. This is because tests showed that it was possible to reach this point with a non-NULL pointer, which was still invalid and caused a segmentation violation. In addition the free_glyph routine has been modified to check the pgd (pointer to glyph data) parameter is non-NULL, and that its 'procs' member is non-NULL, before attempting to call the free procedure. This fault was exposed by selecting the pdfwrite device. Although improved this is not a comprehensive fix, there are other locations where the font instruction pointer may be incremented past the top, or decremented past the bottom, of the instruction stack. However the FreeType font interpreter correctly detects the problems without causing a crash, so I don't think we should expend too much effort on rewriting our current font code to cope.[base/gsgdata.c base/gstype1.c base/gstype2.c base/gxtype1.c]
2010-01-05T15:57:58.786575Z Ken Sharp
Revert code introduced in revision 10578. This code is no longer required since the test in the FreeType code, which this code evaded, is no longer present when built using the incremental interface.[psi/fapi_ft.c]
2010-01-05T00:52:07.186738Z Alex Cherepanov
Remove duplicate call to errwrite() introduced by the rev. 10568. Thanks to Henry for spotting this.[base/gsmisc.c]
2010-01-04T15:09:22.066340Z Ken Sharp
Add a comment to explain the arbitrary choice of value for num_glyphs in revision 10578.[psi/fapi_ft.c]
2010-01-04T09:27:21.029560Z Ken Sharp
FreeType interface fix. When using the incremental interface to FreeType (which in fact we always use), Ghostscript is responsible for locating and passing the glyph description data to FreeType, and so we don't bother to track certain kinds of data in the FreeType structure. However, even when using the incremental interface, FT still tests some of this data, in particular it tests the requested glyph index against the reported number of glyphs in the font, and aborts if the index is too large. This patch simply sets the num_glyphs member of the FT_face structure to a large number (65534) so that the internal FreeType test is successful, and we don't have to bother with the record-keeping that would be required to keep this member updated when fonts change.[psi/fapi_ft.c]
2010-01-03T01:07:12.832443Z Alex Cherepanov
Fix error recovery code that messed up operand stack trying to break out of post table processing when the offset to the glyph name is beyond the table length. Bug 690837.[Resource/Init/gs_ttf.ps]
2010-01-02T18:48:40.508429Z Alex Cherepanov
Remove description of -dIgnoreTTEncoding flag from the documentation.[doc/Use.htm]
2010-01-02T18:45:15.635704Z Alex Cherepanov
Implement symbolic glyph mapping as described in PDF 1.7. Use it for TrueType fonts with symbolic flag set or having no encoding entry. The flag -dIgnoreTTEncoding is removed because symbolic fonts always do this now and non-symbolic fonts should never ignore encoding. Bug 691035, customer 220. The new spec includes cmap 3,0 in the supported list. We discovered this before but didn't use cmap 3,0 as a first choice. PDF 1.7 is not clear about the choice between symbolic and non-symbolic branches. Current algorithm is based on a few experiments with AR 8. The patch causes rendering differences in comparefiles/keyboard.pdf A few undefined characters change from boxes to empty space. Current rendering of undefined characters in Ghostscript doesn't match Adobe Acrobat and should be revised.[Resource/Init/pdf_font.ps Resource/Init/gs_ttf.ps]
2009-12-30T17:30:30.315764Z Alex Cherepanov
Remove C++ comments (//) and commented out code because this is not compatible with old compilers and breaks our coding standard. Comments were introduced by rev. 9664 and 9778. Bug 691032.[contrib/gdevcd8.c psi/iscannum.c]
2009-12-30T15:06:40.609490Z Alex Cherepanov
Add a check whether the entry in post table of TrueType font crosses the end of the table. Fill the rest of the table with /.notdef and continue. Bug 691031.[Resource/Init/gs_ttf.ps]
2009-12-29T22:18:01.420560Z Alex Cherepanov
Use safer function vsnprintf() instead of vsprintf() for error reporting. Truncate long messages, issue a warning, and continue. Bug 690829.[base/lib.mak base/gsmisc.c base/stdio_.h]
2009-12-29T01:17:48.171480Z Alex Cherepanov
Remove stage 2 from seticcspace() and a corresponding PS procedure because it's no longer needed. Since rev. 10563 the string data source is converted to reusable stream without a call-out. Bug 690828.[psi/zcolor.c Resource/Init/gs_cspace.ps]
2009-12-28T07:03:59.416178Z Alex Cherepanov
Don't use long and buggy call-out process to convert a string to a reusable stream. Do it in 3 lines of C code. Bug 690828. DETAILS: The patch fixes string data source handling but leaves most of call-out machinery in place. Clean-up will be done as anoter commit to separate material and cosmetic changes.[psi/zcolor.c psi/zfrsd.c psi/zfrsd.h psi/int.mak]
2009-12-27T15:58:42.012990Z Alex Cherepanov
Assume /FirstChar is 0 and /LastChar is 255 when they are not defined, and issue a warning. Bug 691022.[Resource/Init/pdf_font.ps]
2009-12-27T15:35:32.126971Z Alex Cherepanov
Consider fonts without font stream and with wrong or missing /Subtype attribute as Type 1 fonts. Bug 691023.[Resource/Init/pdf_font.ps]
2009-12-26T22:21:45.513158Z Alex Cherepanov
Fix a compile error on UN*X platforms introduced by the previous commit (rev. 10558).[base/gp_psync.c]
2009-12-26T20:05:44.539107Z Alex Cherepanov
Fix a Coverity warning about checking after dereferencing. In this case dereferencing means &((foo *)0)->bar, which is harmless.[base/gp_psync.c]
2009-12-26T18:32:35.542626Z Alex Cherepanov
Move checking gstate for 0 immediately after allocation. Fix a Coverity warning about checking after dereferencing.[base/gsstate.c]
2009-12-26T18:22:04.265168Z Alex Cherepanov
Don't dereference a pointer before checking it for NULL. Fix a Coverity warning about checking after dereferencing.[base/gxdhtserial.c]
2009-12-26T01:35:11.234623Z Alex Cherepanov
Include stdlib.h for a prototype for abs().[base/gdevpdtt.c]
2009-12-26T01:13:12.801372Z Alex Cherepanov
Fix a case where a pointer is first dereferenced and then checked for 0.[base/ttobjs.c]
2009-12-26T00:48:30.642019Z Alex Cherepanov
Clear Coverity warnings about unreachable code. Fix incorrect error processing in some contributed drivers. Also remove a spurious *.orig file.[contrib/lips4/gdevl4v.c.orig contrib/lips4/gdevl4v.c contrib/eplaser/gdevescv.c contrib/lips4/gdevl4r.c]
2009-12-24T00:33:05.486056Z Ray Johnston
Fix detection for nearing/passing command list buffer limit to allow for the condition when the pointer is past the limit (which is NOT the end of the buffer, but is only a warning). Change this variable name to 'warn_limit' to avoid confusion with the 'limit' used in most other buffer management areas, such as streams. Bug 691016.[base/gxclrast.c]
2009-12-23T21:12:34.206998Z Robin Watts
Add new assert_.h header file. Convert existing code to use it.[contrib/gdevcd8.c /trunk/ghostpdl/pl/pldebug.h base/assert_.h contrib/pcl3/eprn/mediasize.c contrib/lips4/gdevlprn.h contrib/pcl3/eprn/eprnrend.c]
2009-12-22T23:32:30.888745Z regression
Remove -dNOOUTERSAVE and related commands from command line and optionally read in list of fast to process files (so that long commands can be processed first).[toolbin/localcluster/build.pl]
2009-12-21T16:03:38.968428Z Ken Sharp
Fix (pdfwrite) Bug #691009 "Regression: 14-01.PS fails with pdfwrite". revision 10297, a fix for pdfwrite involving composite fonts with type 3 descendants, did not check a return value. This could cause a segment fault later, if a type 0 font was invalid. The Genoa file 14-01.ps specifically runs tests with invalid type 0 fonts to check the behaviour under error conditions and appears to be the only test file we have which does this.[base/gdevpdtt.c]
2009-12-21T07:20:23.809940Z Ralph Giles
Revert c10520 which causes problems with the MSVC build. $(CC_) enforces 'ansi' C under msvc32.mak, disabling any Microsoft extensions. This often causes problems with 3rd party libraries which try to take advantage of those extensions. This means that the -fPIC flag is again not propagated in the GCC build; this is just to unbreak the build until I can test a different solution which works on both platforms.[base/libtiff.mak]
2009-12-20T19:54:00.274659Z Alex Cherepanov
Fix a Coverity warning: comparing array against NULL is not useful.[base/gxclthrd.c]
2009-12-20T19:43:10.432199Z Alex Cherepanov
Fix a Coverity warning about an expression with undefined order of evaluation.[contrib/gdevbjca.c]
2009-12-20T18:54:08.195262Z Alex Cherepanov
Fix a Coverity warning about an expression with undefined order of evaluation.[contrib/pcl3/eprn/eprnrend.c]
2009-12-20T14:24:39.934442Z Alex Cherepanov
Fix Coverity warnings about unchecked return code.[base/gxchar.c]
2009-12-20T06:52:50.539169Z Alex Cherepanov
Fix Coverity warnings about unchecked return code.[base/gsptype1.c]
2009-12-19T17:14:09.025653Z regression
Minor improvements: skip.lst is now processed by compare.pl instead of build.pl, so tests to be skipped will be run, just not reported. Store the archive count in the md5sum.archive so the report email will be accurate. Treat indeterminate errors (mostly timeouts) the same as indeterminate md5sums (i.e. report them below the fold).[toolbin/localcluster/clustermaster.pl toolbin/localcluster/build.pl toolbin/localcluster/cachearchive.pl toolbin/localcluster/compare.pl]
2009-12-19T01:16:49.970378Z Alex Cherepanov
Fix an array overrun in zsethalftone5() caused by an unchecked error code when the number of colorants exceeds the current implementation limit; throw a /limitcheck error instead. Also fix an unrelated Coverity warning about unchecked return value from dict_int_param(). Bug 691001.[psi/zht2.c]
2009-12-18T22:24:19.154314Z Ralph Giles
Update some obsolete gs_throw() calls. Bug 691010. This code seemed to be using an early version of the gs_throw() error reporting macros, passing an undefined -997 error code, a redundant __func__ error message, and expecting the macro to break flow control. This commit updates it to the modern version's behaviour.[base/gdevdbit.c]
2009-12-18T21:14:17.100541Z Ralph Giles
Add a missing header to ensure delaration and definition match for mem_mono_strip_copy_rop(). Fixes a warning in the gcc build.[base/lib.mak base/gdevmr1.c]
2009-12-18T18:32:46.014514Z Ralph Giles
Add .libs and autom4te.cache to the exclude list for clusterpush. Builds which generate .deps directories also generally create the other two. The autom4te.cache files aren't necessarily large but aren't appropriate to copy to another system since they represent details of the local build environment.[toolbin/localcluster/clusterpush.pl]
2009-12-18T16:24:12.002354Z Marcos H. Woehrmann
Added .deps to the exclude list for clusterpush.pl.[toolbin/localcluster/clusterpush.pl]
2009-12-18T07:04:10.684226Z Ralph Giles
Add graphics library support for raster operations and extended halftone methods to the default gcc build. This allows ghostpcl to build linked against the default 'so' build of the gs library. On my Linux x86_64 this increases the size of the library by 29K. While significant, I prefer this to the maintenance burden of the two different configurations.[base/Makefile.in]
2009-12-18T06:37:02.606724Z Ralph Giles
Derive the libtiff compiler line from $(CC_) instead of $(CC) so the common flag set is propagated. Without this, additional options, like XCFLAGS=-fPIC aren't used when compiling the libtiff source files.[base/libtiff.mak]
2009-12-18T05:23:14.353404Z Henry Stiles
Export the the type 42 component parser procedure for pcl, no expected differences.[base/gxfont42.h base/gstype42.c]
2009-12-18T01:38:29.130442Z Ralph Giles
And the 'nogc' allocator to the default gcc build. This allows ghostxps to build linked against the default 'so' build of the gs library, simplifying some build options. The code size increase is negligible.[base/Makefile.in]
2009-12-17T20:14:08.344945Z Robin Watts
Fix for bug 690620. Original patch from HenryS. This adjusts rectangular fills to more closely match that used by Acrobat v8. DETAILS: This patch updates the rectangle rendering to follow the mathematical description of scan conversion more closely. It also includes special case code to emulate the peculiarities of Adobe Acrobat 8. A specific test is used to ensure that zero width/height clips are handled correctly. I am not entirely convinced that relying on the inner bbox is mathematically correct, but in the tests I've done (see clipbug.ps on the bug, it seems to be enough to match Acrobat).[base/gsdps1.c]
2009-12-17T18:13:48.602966Z regression
Cache the previous revisions crc values to improve compare.pl performance. Also remove the no longer needed splitjobs.pl from the repository.[toolbin/localcluster/splitjobs.pl toolbin/localcluster/clustermaster.pl toolbin/localcluster/cachearchive.pl toolbin/localcluster/compare.pl]
2009-12-17T17:57:14.753910Z Robin Watts
Update the arguments passed to ghostscript by htmldiff.pl so that they more closely match those used by the localcluster. DETAILS localcluster uses "-dNOOUTERSAVE -dJOBSERVER -c false 0 startjob pop -f" The use of -dJOBSERVER changes the output given for some of the ps3cet files due to having different stack contents at the outer level. This seems to eliminate most of the differences between htmldiff results and local cluster results. Those that remain seem to be caused by differences in the output of devices (htmldiff uses bmp, wheras the localcluster uses pgm/pbm/etc). One minor point; the use of -dJOBSERVER is defined in doc/Use.htm to require input to be supplied via stdin. I originally wrote the code to do this, but it seems this gives problems on Windows for some files (for reasons that are beyond my comprehension at this time). Accordingly, I've swapped back to supplying the filenames on the command line and everything seems to be fine. If this presents a problem on platforms other than windows, simply edit the value of $redir as shown at the top of the file and redirection will be used. If this turns out to be necessary, it may be possible to automate this.[toolbin/htmldiff.pl]
2009-12-17T15:24:07.353413Z regression
Minor cleanup/improvement of local cluster code. DETAILS: compare.pl: ignore missing archive directory clustermaster.pl: rather than pausing 60 seconds after the first compile error is detected wait until all nodes report compile fail or 60 seconds has elapsed. in the former case don't bother to send abort to nodes. build.pl: add support for skip.lst (lists specific tests to skip) add tests_private/customer_tests to test lists force tests_private/customer_tests to be dispatached earlier in the run (some of these tests take a long time and often the regression run is waiting for one or more to be completed). clusterpush.pl: remove cluster_command.run before syncing run.pl: more intelligently report compile fails. save the previous non-user build of gs to be used for the following user builds that don't build gs (previously whatever gs build as last build was used).[toolbin/localcluster/clustermaster.pl toolbin/localcluster/build.pl toolbin/localcluster/clusterpush.pl toolbin/localcluster/run.pl toolbin/localcluster/compare.pl]
2009-12-16T18:46:20.783419Z Robin Watts
Fix for incorrect bbox test in bmpcmp. bmpcmp would correctly assess the changed region, but then incorrectly accept changes restricted to a single row or column as not being changes at all. DETAILS: This resolves most of the differences between the results given by htmldiff.pl and those given by the regression cluster. Some remain, but they are due (I think) to a) different invocations of ghostscript, or b) differences in device output (pgmraw vs bmp16m).[toolbin/bmpcmp.c]
2009-12-16T18:33:40.102435Z Robin Watts
Broken fix for incorrect bbox test in bmpcmp; please ignore this revision and use 10507 instead. bmpcmp would correctly assess the changed region, but then incorrectly accept changes restricted to a single row or column as not being changes at all.[toolbin/bmpcmp.c]
2009-12-16T17:40:49.399642Z Robin Watts
Improved version of htmldiff.pl: New HTML file started every 100 or so sets of image differences (configurable). This should stop browsers grinding to a halt. Improved reporting of conversion errors.[toolbin/htmldiff.pl]
2009-12-15T22:14:58.866880Z Alex Cherepanov
Increase the limit on the number of color components to 12. A file with 9 components has been found in the wild, add 3 more for a small reserve. Bug 691002.[base/gsccolor.h]
2009-12-15T14:34:56.554574Z Alex Cherepanov
Fix a botched use of references where a pointer to a reference in a PostScript VM was used as a temporary variable. Bug 690828.[psi/zcolor.c]
2009-12-15T09:55:23.729025Z Ken Sharp
Fix (FAPI) : Silence a compiler warning Details Flagged by Marcos, the variable 'ep' was unused and raised a gcc warning.[psi/zfapi.c]
2009-12-13T01:31:59.081596Z Alex Cherepanov
Accept ASCII85 stream that ends with bare '~' in PDF files for compatibility with Acrobat Reader. Add /PDFRules ASCII85Decode filter parameter to select between PS and PDF logic. Bug 690976, customer 870.[base/sa85d.h Resource/Init/pdf_base.ps base/sa85d.c psi/zfdecode.c]
2009-12-12T23:05:18.157328Z Ray Johnston
Fix RasterOp texture rendering from uninitialized memory (past end of buffer) when the texture was 'expanded' and the unexpanded texture had repitions in y. Bug 690299. DETAILS: The expansion was only needed if the device color space was RGB, but not 8 bit. This doesn't really give valid output anyway for RasterOps, but at least we no longer reference past buffer bounds (see the 'trow' calculation in gdevmr8n.c).[base/gdevdrop.c]
2009-12-12T22:39:17.759602Z regression
Added abort option to clusterpush.pl (i.e. 'clusterpush.pl abort') to abort current job and remove any jobs queued for a user (it is possible to abort/remove jobs for other users, but I'll leave that undocumented). Also partially added support for mupdf regression testing.[toolbin/localcluster/clustermaster.pl toolbin/localcluster/build.pl toolbin/localcluster/clusterpush.pl toolbin/localcluster/run.pl]
2009-12-12T18:25:25.212987Z regression
Added --max-size=2500000 to avoid sending very large files. Divide queueing and syncing into two steps, so that it's possible to ^C if you decide the files being transmistted are incorrect.[toolbin/localcluster/clusterpush.pl]
2009-12-12T03:46:55.487466Z Hin-Tak Leung
Coverity warning #4475, uninitialized value[base/gdevpxut.c]
2009-12-12T03:45:55.759446Z Hin-Tak Leung
Coverty warning #1158, unchecked return values[base/gdevpx.c]
2009-12-12T03:45:13.363455Z Hin-Tak Leung
Coverity warning #2555, removing unused header[base/gdevpx.c]
2009-12-12T03:43:49.383201Z Hin-Tak Leung
treat depth 15 the same as depth 16 in get_bits_rectangle() It looks to be 'just work' (or no worse than depth 16) by treating depth 15 the same as depth 16 in get_bits_rectangle. The pcl files in the original report works now; but a pxl file shows some visual artifects (and different one) at depth 15, 16 and will be filed separately. This fix fix bug 690328 (make X11 device continue for those pcl files; caveate visual artefacts for at least one pxl file)[base/gdevx.c doc/Devices.htm]
2009-12-12T00:28:26.868635Z Ray Johnston
Fix hang condition due to pointer comparison, bug 690638. DETAILS: The clist buffer management mostly checked the amount of data in the buffer by computing the difference between the limit and the current pointer. This patch fixes the places that computed a new pointer of the desired amount plus the current pointer and compared to the limit. If this overflowed the register, then the sum was less than the (unsigned) limit pointer.[base/gxclrast.c]
2009-12-11T19:18:57.300388Z Alex Cherepanov
Fix incorrect calculation of the operand stack base (pdfemptycount) in PDF interpreter, which caused incorrect processing of scn operator. Bug 690977.[Resource/Init/pdf_draw.ps]
2009-12-10T03:29:32.317033Z regression
Removed bitrgb and pgmraw from pcl regression tests. Fixed a bug where failed compiles would cause a job restart loop.[toolbin/localcluster/clustermaster.pl toolbin/localcluster/build.pl toolbin/localcluster/run.pl]
2009-12-09T17:24:34.115310Z Ken Sharp
Fix (pdfwrite) : regressions with revision 10474 Details Revision 10474 unexpectedly caused a number of regressions resulting in unreadable PDF files. This revision changes the way we deal with the indeterminacy caused by not checking the return value. In this case if the return value is an error we *set* the members field of the gs_glyoh_info struct to 0 and allow the code to test the value[base/gdevpdtt.c]
2009-12-09T15:32:27.320916Z Ken Sharp
Fix (pdfwrite) : Unchecked return value causing indeterminisms Details Bug #690762 "" Reported and investigated by Marcos using Valgrind. The return value from a glyph_info method was not checked before accessing the members of the 'gs_glyph_info' structure. If an error occurred the fields of the structure were potentially not initialised, leading to indeterminate results. Modified to check the return value properly.[base/gdevpdtt.c]
2009-12-08T16:09:01.319365Z Ken Sharp
Fix (FAPI) : Handle Type 42 fonts with CharStrings dictionaries with real PS glyphs Details The FAPI code regarded a Type42 font which contained a CharStrigns dictionary where the contents of the dictionary were not simply integers but actual glyph descriptions to be an invalid font. Regular Ghostscript, Jaws and Acrobat Distiller happily accept such bizarre fonts and correctly render the glyphs in them, even the PostScript ones. Modified FAPI to execute the glyph descriptions in this case rather than raising an error.[psi/zfapi.c]
2009-12-08T07:52:26.208006Z Ralph Giles
Revert remaining changes to the clusterpush script inadvertently included in r10461. This version is now identical with the version in r10435. In particular, the more sophisticated gs/ghostpdl detection which works for branches and custom-named directories is restored.[toolbin/localcluster/clusterpush.pl]
2009-12-08T07:41:12.811962Z Ralph Giles
Update local cluster documentation to reference the 'regression' account instead of 'marcos' and other minor cleanup.[toolbin/localcluster/setupcluster toolbin/localcluster/clusterpush.pl toolbin/localcluster/readme toolbin/localcluster/clusterpush.txt]
2009-12-08T07:25:03.670058Z Ralph Giles
Use the new 'regression' username in the clusterpush script. This corrects what looks like an inadvertent commit of an older version in r10461.[toolbin/localcluster/clusterpush.pl]
2009-12-08T06:31:51.930815Z Alex Cherepanov
Fix a Coverity warning. Don't assign a value to a variable if it isn't used.[psi/imainarg.c]
2009-12-08T03:33:05.781180Z Alex Cherepanov
Fix Coverity warnings caused by a recurring error in opvp driver where 'if (i > sizeof(foo)/sizeof(*foo)) ...' was used to prevent out-of-bounds access to foo[i] .[contrib/opvp/gdevopvp.c]
2009-12-08T03:32:18.888688Z regression
Improve the node failure job reallocation logic. Details Since the cluster jobs are now distributed to the cluster nodes in batches a node failure no longer requires a job restart. Instead the jobs that had been sent to the failed node are put back into the pending queue and sent to the remaining node(s).[toolbin/localcluster/clustermaster.pl toolbin/localcluster/clusterpush.pl toolbin/localcluster/run.pl toolbin/localcluster/compare.pl]
2009-12-08T00:42:59.473070Z Alex Cherepanov
Fix a Coverity warning. Avoid a FILE pointer leak in an unlikely case when gs_main_init2() fails.[psi/imainarg.c]
2009-12-07T15:49:53.218004Z Ken Sharp
Fix (FAPI) : Ignore some TrueType faults Details The file Bug689516.pdf contains TrueType fonts with problems, one of the fonts has multiple fatal errors: 1) GLYF and LOCA tables contain more than NumGlyphs glyphs, and some of these glyphs are used. 2) At least one glyph uses more points than the declared maxPoints value. 3) The FPGM is invalid. Acrobat ignores these but elides the glyphs with problems, GS's internal TT rendering engine issues a warning and also elides these glyphs. Modified the FreeType FAPI code to catch certain classes of error and emit slightly different, possibly slightly more informative, warnings, and continue, ignoring the faulty glyph(s).[psi/fapi_ft.c]
2009-12-07T05:46:36.982240Z Alex Cherepanov
Fix a Coverity warning. Add missing assignment to 'code' variable. The later use of 'code' in the conditional expression indicates that this was the author's intention.[base/gsfont.c]
2009-12-06T19:12:08.897785Z Alex Cherepanov
Fix a Coverity warning. Add missing assignment to 'code' variable. The later use of 'code' in the conditional expression indicates that this was the author's intention.[base/gxttfb.c]
2009-12-06T14:55:58.088044Z Alex Cherepanov
Fix a Coverity warning. Check the return code from sget_variable_uint() in image4 serialization.[base/gximage4.c]
2009-12-06T02:21:36.356914Z Alex Cherepanov
Fix a Coverity warning and improve readability. Don't define a local variable with the same name as a function argument.[psi/ziodevsc.c]
2009-12-06T00:56:38.018707Z Alex Cherepanov
Fix a Coverity warning and improve portability. Don't access sequential members of a structure as an array.[psi/zht1.c]
2009-12-05T23:10:32.160743Z Alex Cherepanov
Fix a Coverity warning. Change the logic in obj_cvs() to handle all possible combinations and avoid a potential SEGV.[psi/iutil.c]
2009-12-05T19:21:42.203093Z Alex Cherepanov
Fix a Coverity warning and a potential SEGV caused by a wrong pointer checked for NULL after memory allocation.[psi/zfcid1.c]
2009-12-05T17:27:01.175245Z Alex Cherepanov
Fix a Coverity warning. Remove dead and commented out code that didn't change since April 2000, rev 324.[psi/zfcmap.c]
2009-12-04T15:52:08.152428Z Ken Sharp
Fix (FAPI) : empty glyphs causing problems after revision 10434 Details As noted by SaGS in the thread for bug 690448, the revision for 10434 does not properly cater for 0 length glyphs, and instead makes such glyphs the same as the next (in GLYF table) non-empty glyph. Also as pointed out by SaGS, the glyph length is already calculated so we don't need to repeat the performance with the LOCA table anyway. Modified the code to use the pre-calculated glyph lengths instead of recalculating them incorrectly.[psi/zfapi.c]
2009-12-04T15:38:03.727531Z Ken Sharp
Fix (FAPI) : TT tables > 64Kb not read properly. Details If, while reading a TrueType table for serialisation, we ran off the end of an sfnts string, we switch to the next string, and carry on reading the data. However, we did not update the destination pointer leading to corruption of the already processed data and general corruption of the table. We now update the destination pointer before continuing to write data to it.[psi/zfapi.c]
2009-12-04T03:51:10.377640Z Alex Cherepanov
Rearrange JP2 color space processing code to facilitate experiments with enumerated color spaces.[Resource/Init/pdf_draw.ps]
2009-12-04T00:33:04.330450Z Robin Watts
Extend ghostscript graphics library with the capability to handle different start, end and dash caps. The existing gs_setlinecap function sets all 3 caps in lockstep, so no change with current code. New functions gs_setlinestartcap, gs_setlineendcap, gs_setlinedashcap set the different cap styles. The dashing code now leaves segment notes in the output path to inform the choice of which caps to use. The stroking code is updated to honours these notes. gxclpath.c and gdevvec.c assume that all caps are the same as start_cap. Check that this is valid.[base/gsstate.c base/gxclpath.c base/gxline.h base/gxpdash.c base/gxpath.h base/gdevpdtt.c base/gsline.c base/gdevvec.c base/gdevpdfg.c base/gsline.h base/gxstroke.c base/gxclrast.c]
2009-12-03T19:21:12.315688Z Marcos H. Woehrmann
I missed a file that should have been part of the r10440 commit.[toolbin/localcluster/clusterpull.sh]
2009-12-03T19:14:12.694527Z Alex Cherepanov
Fix a Coverity warning by removing redindant checks. The 'pie' pointer cannot be null here because it is dereferenced earlier.[psi/zimage.c]
2009-12-03T17:30:38.929684Z Robin Watts
Remove stray (incorrect) initialisation. This removes a "removing const" warning.[base/gdevpdfe.c]
2009-12-03T16:18:00.535689Z Marcos H. Woehrmann
Improved cluster reliability (automatically reset stale nodes, move watchdog from cron to run.pl, check for periodic transfer, etc.).[toolbin/localcluster/clustermonitor.pl toolbin/localcluster/clustermaster.pl toolbin/localcluster/run.pl]
2009-12-03T06:08:39.915454Z Ray Johnston
Add argument list and 'minst' address to -Z: debugging report to assist in tracking cluster test logs (to see which, if any, jobs start but don't finish).[psi/imain.c psi/imainarg.c]
2009-12-03T00:02:30.276576Z Hin-Tak Leung
send images with Interpolate=true back to gx_default. comparefiles/148-01.ps have a few Type 1 images with <<Interpolate true>> are not rendered with Interpolate. Since pxlcolor/pxlmono cannot do Interpolate within, and has no code to do such thing, the correct solution is simply detect such images and use gx_default_*. Fixes bug 690970.[base/gdevpx.c]
2009-12-02T19:57:05.281734Z Marcos H. Woehrmann
Improved logic in clusterpush.pl to detect if running from a gs or ghostpdl director.[toolbin/localcluster/clusterpush.pl]
2009-12-02T14:20:41.078998Z Ken Sharp
Fix (FAPI): error in revision 10433 Details Accidentally committed a version where the calculation of the initial offset to test against was the end of the LOCA table, instead of the theoretical maximum size of the GLYF table.[psi/zfapi.c]
2009-12-02T14:13:44.401916Z Ken Sharp
Fix (FAPI) : FAPI code not expecting unsorted LOCA/GLYF tables Details The FAPI code needs to copy the GLYF data, to do this it needs to know how long the data is. The only way to do this is to consult the LOCA table which gives the offset to each glyph in the GLYF table. Subtracting the start of the glyph from the start of the next glyph in the GLYF table gives the length. The existing code assumed that the GLYF (and therefore LOCA) tables was ordered, that is that glyph 1 followed glyph 0 and so on. There is no such restriction, glyphs can appear in any order, so the simple subtraction caused incorrect glyph lengths, which could lead to truncation of the data and caused errors. We now pick up the offset of the glyph we want from the LOCA table, and then search the entire table to find the glyph whose offset is nearest (but after) the offset of the glyph we want.[psi/zfapi.c]
2009-12-02T07:00:16.393155Z Ray Johnston
Fix vertical positioning of interpolated images that caused images to be moved down, possibly past the end of the band. An extra multiplication by -1 was the culprit. Bug 690885, customers 531 and 850.[base/gxiscale.c]
2009-12-01T19:39:06.587717Z Robin Watts
Fix dropouts seen with thin lines by using the method described in bug 687721, namely, that of extending the trapezoids filled by a small triangular region at each end. Local cluster testing shows 66 changes, of which only 20 or so are real. Of these, most are clearly improvements, and the rest are neutral.[base/gdevddrw.c]
2009-12-01T19:10:35.168567Z Ralph Giles
Update the clustermonitor cgi script to read the new combined queue file for pending jobs.[toolbin/localcluster/clustermonitor.cgi]
2009-12-01T19:08:27.833775Z Ralph Giles
Update the clustermonitor cgi script to return regression results. This makes use of the CGI module to parse an optional 'report' query parameter, which if present, returns a specific regression result instead of the default json dashboard status. Current it only supports svn jobs, not custom runs submitted through the clusterpush script. Also cleans up the the paths to use a $clusteroot variable for the prefix.[toolbin/localcluster/clustermonitor.cgi]
2009-12-01T18:36:08.279176Z Robin Watts
Factor out the miter checking code into a single function rather than having it repeated 3 times. Add a test to the extracted code to spot the case where the cdelta's are too small to be reliably used to calculate the correct miter point. In such cases revert to using the raw vectors suitably scaled. Testing reports 69 changes in the regression files, none of which can be reproduced locally. This fixes bug 690098.[base/gxstroke.c]
2009-12-01T18:08:58.973794Z Alex Cherepanov
Fix a Coverity warning and a potential array overrun in obj_cvp().[psi/iutil.c]
2009-12-01T16:04:36.569081Z Marcos H. Woehrmann
Another clusterpush.pl change that was lost, should have been part of r10421.[toolbin/localcluster/clusterpush.pl]
2009-12-01T15:37:15.738865Z Marcos H. Woehrmann
Fixed localcluster/clusterpush.pl to work with casper3.[toolbin/localcluster/clusterpush.pl]
2009-12-01T09:02:10.394257Z Marcos H. Woehrmann
All local cluster jobs are now queued (instead of just user jobs). This eliminates a race condition that could have occured if the ghostpdl/ghostscript repository is updated after the cluster master initiates a cluster run but before the nodes perform the svn update. As a side-effect of this change svn commit jobs are not longer given priority over user jobs.[toolbin/localcluster/clustermaster.pl toolbin/localcluster/build.pl toolbin/localcluster/clusterpush.pl toolbin/localcluster/run.pl]
2009-12-01T03:40:54.743929Z Alex Cherepanov
Fix a Coverity warning about unchecked negative return and a possible access to an array at a negative position.[psi/zupath.c]
2009-11-30T23:37:23.019948Z Michael Vrhel
Fix for bug 690218. If the SeparationOrder was specified, then we should only allocate buffer space for those colorants. See devn_put_params for details on this. Right now, the PDF14 device will always include CMYK. A future optimization is to be able to NOT have those included in the bufferallocations if we don't specify them. In that case it would then be possible to output 8 separations at a time without using compressed color. Note that if SeparationOrder is not specified, the number of colorants used in the pdf14 device buffer allocations is equal to the number of colorants in the document up to a maximum of 64.[base/gstrans.c]
2009-11-30T23:12:19.025235Z Marcos H. Woehrmann
Change from batch job distribution system to polled system.[toolbin/localcluster/splitjobs.pl toolbin/localcluster/clustermaster.pl toolbin/localcluster/build.pl toolbin/localcluster/clusterpush.pl toolbin/localcluster/run.pl]
2009-11-30T22:57:24.661785Z Ray Johnston
Fix for segfault when image 'clues' are accessed during a GC after a restore has erased (set to zero) the contents. Bug 690915. DETAILS: As described in gx_image_free_enum comment, the penum may not be freed if it is at a higher (outer) save level, so the contents (including the "clues" are zeroed, but the ENUM in image_enum_enum_ptrs (gxipixel.c) did not check for this. This was indeterministic since it depended on when the GC scan ran.[base/gxipixel.c]
2009-11-30T20:34:48.913220Z Henry Stiles
Remove an unnecessary diagnostic debug printf which should not have been checked in. No expected differences.[base/gsalloc.c]
2009-11-30T16:40:08.309112Z Henry Stiles
New procedure to dump memory chunks with less detail. This will be used by the non garbage collecting client languages to print memory leak information at the end of jobs. No expected differences.[base/gsalloc.c]
2009-11-30T09:05:26.245478Z Ken Sharp
Fix (FAPI): Can't handle FontBBox as 't_mixedarray' Details The FAPI code extracts the entries in the FontBBox, but only catered for the internal GS 't_array' or 't_shortarray' types, we can also get the 't_mixedarray' type.[psi/zfapi.c]
2009-11-30T02:47:11.189285Z Hin-Tak Leung
updating begin_image and fill_mask to cope with white/black+transparent Apparently not all black/white+transparent uses the copy_mono code path, which has been recently updated to do white-on-mask. There are two other ways black/white+transparent can pass through pxl - in begin_image() (as part of an RGB/Gray image with an alpha channel) which is most of the files in bug 690947, and fill_mask() which has no known cases yet. Note the new addition to fill_mask() and begin_image() is not identical to that in copy_mono() in the case of the drawing color being white - fill_mask() and begin_image() both try to draw white on the blacks of a black/white mask and transparent on the white, whereas copy_mono() draws white on the white and draw transparent on the opposite (set to black but really transparent), so the source is inverted in fill_mask() and begin_image() compared to copy_mono().[base/gdevpx.c]
2009-11-30T02:41:19.062276Z Hin-Tak Leung
set ROP to paint through character glyphs (pattern tiles). Apparently complete pattern tiles are sent as a character in a custom symbol font (rather than small rectangles for incomplete tiles), thus allowing re-use. The code set the fill color but never set ROP to "paint with brush color" thus glyphs appears as black. This patch set the ROP3 operation to paint through complete pattern tiles. Fixes bug 690949, also some of the problems in bug 690585 (for ghostpdl).[base/gdevpx.c]
2009-11-30T02:36:44.876347Z Hin-Tak Leung
fix typo introduced in r5556 It appears that 'r5556: Added macros for assertions' introduced a typo. There is no known effect from this typo, except possibly stroke color not being set where it should.[base/gdevpx.c]
2009-11-30T02:30:52.552359Z Hin-Tak Leung
another ID to name update[doc/AUTHORS]
2009-11-30T02:29:45.556262Z Hin-Tak Leung
avoid setting join to invalid value; issue found in bug 690585[base/gdevpx.c]
2009-11-29T02:43:31.722821Z Ray Johnston
Fix to correct mask offsets (bit order) for big_endian as well as sharing this array for the various devices. Bug 690954.[base/gdevtsep.c]
2009-11-28T10:59:10.646748Z Ken Sharp
Fix (FAPI) : segmentation violation with Multiple Master fonts Details When extracting the $Blend procedure from a Multiple Master font, if the procedure contained a name object, there was a typo which used an uninitialised variable instead of the extracted name element to convert the name to a string. Fixed by using the correct name object instead[psi/zfapi.c]
2009-11-28T04:39:43.983110Z Marcos H. Woehrmann
Changes to accomodate the transition from casper2 to casper3.[toolbin/localcluster/clustermonitor.pl toolbin/localcluster/clustermaster.pl toolbin/localcluster/clusterpull.sh toolbin/localcluster/build.pl toolbin/localcluster/clusterpush.pl toolbin/localcluster/run.pl]
2009-11-27T19:15:08.980517Z Ray Johnston
Fix dereference of NULL when target device passed to gx_forward_put_params was NULL. This occurred with the standalone 'bbox' device.[base/gdevnfwd.c]
2009-11-27T19:07:02.726122Z Ray Johnston
Fix for Device N capable device segfaults (psdcmyk, tiffsep, tiffsep1, ...) that use the gdevdevn.c parameter handling. A 'restore' could free up separation names but the pointers in the device were unchanged. Bug 690956.[base/gdevdevn.c]
2009-11-27T14:19:19.911778Z Ken Sharp
Fix (FAPI) : invalid fonts resulting in errors Details The files Adobe Garamond CE.pdf, Bauhaus CE.pdf and Futura CE.pdf alll contain subset CFF fonts, and use the same (ecaron) glyph. In all three cases the font uses the deprecated 'SEAC' endchar construction and in all three cases at least one component glyph is not present in the font. Probably the producer didn't realise the component glyphs were required amd did not include them in the subset. As a result the FAPI code properly rasied an error, sicne the required glyph is not presemt. Adobe Acrobat (of course) ignores the error and simply elides the missing glyph. Regular Ghostscript has at some time been coded to do the same and emit a warning. For compatibility this 'feature' has been implemented in the FAPI interface.[psi/fapi_ft.c]
2009-11-27T00:55:09.262519Z Robin Watts
Part 2 of commit 10391. Reinitroduce special cases in a way that doesn't change the output. A clustertest shows 33 differences overall, but testing of those files on my local machine shows them all to be identical. This fixes bug 687666.[base/gdevddrw.c]
2009-11-26T20:48:31.400887Z Robin Watts
First of a 2 part commit, fixing the special case horizontal/vertical rectangle code in the thin line code in gdevddrw.c, as it doesn't match the general case. This will cause many differences in the regression tests. Part 2 will commit a fixed version that will hopefully show none.[base/gdevddrw.c]
2009-11-26T16:53:25.042900Z Ken Sharp
Removed commented out code that should not have been left behind in revision 10389[psi/zfapi.c]
2009-11-26T16:44:03.688193Z Ken Sharp
Fix (FAPI) : intermittent crashes with TrueType fonts Details The sfnts reader code in the FAPI module maintains a pointer to a string from an array of strings (the /sfnts array). It then used the offset member to point along the string to the current byte within it. When reading multiple bytes, it checks there is sufficient data by checking ptr+offset against the size of the string. However the code did not increment the offset member after reading multiple bytes, instead it incremented the actual pointer. This completely bypassed the size checking, which could cause a crash depending on the memory layout. This was only likely to happen with fonts with very large TrueType tables (ie those not conforming to Type 42 recommendations regarding string sizes, see tech note 5012) Altered the code to always increment the offset rather than the pointer so that size checking works properly.[psi/zfapi.c]
2009-11-26T10:18:15.394246Z Ken Sharp
Fix (FAPI) : Incorrect GID supplied to font interpreter for CIDFonts with TT outlines Details CIDFonts use a CID, for CIDFonts with TrueType outlines the font contains a CIDToGIDMap entry which is used to convert the CID into a TrueType Glyph ID (GID). We were not using the data, which resulted in us passing the CID directly to the font interpreter, which caused the wrong glyph to be extracted, or failures to occur because the GID was larger than the number of glyphs in the font. The type 42 font code in GS converts the CIDToGIDMap into a CIDMap entry, we now use this to convert the CID into a correct GID for the font interpreter to use.[psi/zfapi.c]
2009-11-26T10:13:00.448002Z Ken Sharp
Fix (FAPI) : CIDFonts not working with fonts containing a CDevProc Details When calling zchar_set_cache we always used the glyph name as one of the arguments, this argument was later pushed onto the stack for use by a CDevProc if required. The problem is that with CIDFonts the name is always a null object and we should actually be supplying the CID to the procedure. Modified the call to zchar_set_cache when we have a CIDFont to supply the CID instead of the name[psi/zfapi.c]
2009-11-26T07:13:02.012525Z Marcos H. Woehrmann
Report enhancments as a separate category in the the weekly bug aging report. Closes bug 690524.[toolbin/bugsByEngineer.pl]
2009-11-26T00:47:35.579155Z Robin Watts
Fix for bug 688655: stroking of wide curves with high curvature would previously have left strange effects under the curve, and had nasty flattening artifacts on the outside of joins. Here we alter the stroking logic to spot that line segments come from curves and we render using round joins both above and below the curve. This gives us correct rendering of tests/ps/jointest.ps for the first time. This causes about 4000 diffs. I've generated a huge number of them locally and they all seem to be the odd pixel changed do to rounding. Where differences are larger I've convinced myself that the difference is correct.[base/gxstroke.c]
2009-11-25T19:59:11.063393Z Henry Stiles
Remove the string list implementation from the "nogc" allocator. This makes the implementation much simpler and there was little or no performance improvement with the string lists. Also this file has been cleaned up of archaic comments about VMS, compiler support comments, pragmas, etc. No expected differences.[base/gsnogc.c]
2009-11-24T16:51:12.328850Z Robin Watts
Fix for bug 690938. Revert revision 10294, an attempt to fix a valgrind bug, and instead initialise the bbox of paths to the maximally invalid bbox. As soon as any point is added to the bbox, we'll get a valid bbox. Note that the "bbox_set" flag does NOT mean "the bbox is valid", it instead means "the bbox has been set, as per the setbbox postscript operator".[base/gxpath.c base/gxpath2.c base/gxpath.h]
2009-11-24T12:31:17.678731Z Robin Watts
In revision 10351 I commited a partial fix for Bug 690531 that added a new method for stroking a path. Due to a silly mistake on my part when stroking paths with round caps, we could occasionally fail due to a confusion over which caps to use. Ralph reported this issue as bug 690639. The error is fixed here, but this doesn't solve all the rendering problems. Investigations continuing.[base/gxstroke.c]
2009-11-24T08:36:27.174072Z Lars Uebernickel
Don't use sed's extended regular expression syntax in configure.ac. GNU and Mac OS X have different command line options to enable them and since it was only used once, it's easier to simply use the standard regexp format.[base/configure.ac]
2009-11-24T01:31:19.408746Z Ralph Giles
Implement JBIG2Decode generic regions using TPGDON. Closes bug 690791.[jbig2dec/jbig2_generic.c]
2009-11-23T17:35:16.098214Z Ray Johnston
Fix for segfault reported in 690880 with separation devices. The is_open flag was not being properly maintained when put_params resulted in a target device closing due to DeviceN color state changing. DETAILS: The check in zputdeviceparams relied on code > 0 or the width or height change in order to determine that the device needed to be reinitialized. The put_params forwarding needed to check if the target device closed (such as when DeviceN parameters changed) and return code=1 to trigger the device reinitialization. Also the forwarding of close_device needed to make sure and set is_open=false if it called the target device procedure directly instead of using gs_closedevice (which takes care of this detail).[base/gdevp14.c base/gdevnfwd.c]
2009-11-23T02:44:56.504420Z Marcos H. Woehrmann
Report pdfwrite differences separately from other differences.[toolbin/localcluster/clustermaster.pl toolbin/localcluster/build.pl toolbin/localcluster/compare.pl]
2009-11-22T23:46:21.529560Z Ray Johnston
Add description of the tiffsep1 device. It was mentioned in the previous update, but the basic device characteristics were missing.[doc/Devices.htm]
2009-11-22T20:09:44.171077Z Lars Uebernickel
Added a -sCompression parameter to all TIFF devices. This parameter sets the compression scheme of the resulting file and can take the values 'none', 'crle', 'g3', 'g4', 'lzw', and 'pack'. crle, g3, and g4 only work for 1-bit devices. For tiffsep, it sets the compression scheme of the separation files, the composite cmyk file is always saved uncompressed. Libtiff supports many more compression formats (e.g. jpeg, deflate). Adding them to this implementation is trivial. doc/Devices.htm documents the parameter further.[base/gdevtifs.c base/gdevtifs.h base/gdevtsep.c doc/Devices.htm base/gdevtfnx.c base/gdevtfax.c]
2009-11-21T09:44:54.242928Z Ken Sharp
Fix (pdfwrite) : problems with type 3 fonts and glyphshow Details Bug #690738 "pdfwriter garbles/omits glyphs" Bug #690836 "Bug during eps to pdf conversion" Bug #690882 "ps2pdf mangles type 3 fonts" Revision 9804 modified pdfwrite to try and make text in type 3 bitmap fonts, derived from PCL input, more likely to produce a PDF file with searchable text. Part of the change was to try and group multiple glyphs together into a single string instead of emitting them as single glyphs. Unfortunately that was an optimisation too far. There is no way currently to tell the difference between a type 3 font which has been converted into a bitmap, one which started as a bitmap, and one where the CharProc has been captured (PostScript). We do however store bitmap and outline glyphs in different fonts, the problem arose if we converted a CharProc to a bitmap, and then stored a CharProc, the code did not realise that we had switched fonts and tried to use the bitmap font for both. This occurs because matplotlib defines all its fonts as type 3, applies an Encoding to them, but never uses it, instead showing all glyphs with a glyphshow operation. This makes it difficult for pdfwrite to assemble an output type 3 font with a valid Encoding, and PDF doesn't support glyphshow. In this case if we find that the glyphshow uses a glyph which is not in the font's Encoding (eg /multiply) we end up producing a bitmapped glyph instead. Ideally we would capture the CharProc, but doing so would be very difficult in this case for a very minor benefit. Instead I've chosen to remove this optimisation. Previously we would emit text something like: x y moveto (ABC) show Now we do: x y moveto (A) show x1 y1 moveto (B) show x2 y2 moveto (C) show There seem to be no differences in the test suite with PostScript and PDF files, probably because no files apart from matplotlib use glyphshow in this demented fashion. However, this does result in a large number of PCL test files exhibiting very small differences with text, especially at low resolution, due to tiny shifts in position.[base/gdevpdts.c]
2009-11-20T20:09:26.637666Z Ray Johnston
Fix segfaults in tiffsep and tiffsep1 -- After TIFFCleanup, need to set the tiff structure pointer to NULL to prevent later use. Fix separation file name logic to substitute a harmless '_' character for characters that cause file system action ('/'. '\' and ':'). Set default compression for tiffsep output 'gray' pages to LZW and default for tiffsep1 to G4. While not strictly backwards compatible, any competent tiff reader will be able to handle this.[base/gdevtsep.c]
2009-11-20T18:10:12.230365Z Ralph Giles
Skip JBIG2Decode generic regions using TPGDON. We don't yet implement this, and discarding the data is better than proceeding with the incorrect decoding proceedures, which generally just produce noise. Work-around for bug 690791.[jbig2dec/jbig2_generic.c]
2009-11-19T20:17:02.559183Z Ray Johnston
Fix for segfault reported in bug 690927 and two of the segfaults of bug 690880. DETAILS: The pdf14_compressed_encode_color (and _decode_) assumed that the device was a pdf14_device and directly accessed the devn_params using that structure offset, but when filling gradients the device was the target device (a gx_device_printer subclass) so the pointer was wrong. The primary change is in base/gxblend1.c and uses the device's ret_devn_params procedure (if possible). If the proc is NULL, or if it returns NULL, then and only then use the devn_params structure assuming that the device is a pdf14 variant (usually pdf14cmykspot or pdf14clistcmykspot). A check for this is performed in DEBUG builds in case this expected invariant is ever violated. In order for the check to be made simpler, the names of all of the devices were changed to all start with "pdf14" (some were PDF14).[base/gdevp14.c base/gxblend1.c]
2009-11-19T16:48:11.876622Z Robin Watts
Fix stupid typo: ; for , - pointed out by tor. Sorry everyone.[base/gspath.h]
2009-11-19T13:56:18.594001Z Robin Watts
Fix for Bug 690531, excessive slowdown while rendering a complex stroked path with anti-aliasing. The problem is caused by the gs filling code grinding to a halt under the weight of an extremely complex path produced by stroking an already complex path and then filling it all at once. This change can be seen as a workaround in that it does not change the filling code at all (this may be considered in future after the freetype changes have gone in), but instead adds a new mechanism for stroking that produces (broadly) equivalent strokes which happen to fill more easily.[base/gxpath2.c base/gxpath.h base/gxstroke.c]
2009-11-19T00:09:15.456317Z Ralph Giles
Replace only the initial definition of the gs executable in the script wrappers. It is possible to change the name of the compiled gs executable; this is generally used to distinguish multiple installed versions. In r5212 a sed command was added to the unix build scripts to rewrite the name of the gs executable embedded in the various wrapper scripts so that they would call the corresponding version. This was broken in r8107 where an extra clause was added to have the wrapper scripts prefer the gs executable in their local directory over any in the path. Unfortunately the sed command rewrites both attempts to set GS_EXECUTABLE. This commit only rewrites the specific assignment of the default name. Thanks to Vince Dean for suggesting the fix. Bug 686863.[base/unixinst.mak]
2009-11-18T04:46:21.000840Z Alex Cherepanov
Handle optional content following the default viewing optional content configuration dictionary. Skip invisible XObjects and render invisible parts of content streams to nulldevice. Bug 690633, customer 1110.[Resource/Init/pdf_ops.ps Resource/Init/pdf_main.ps Resource/Init/pdf_draw.ps]
2009-11-17T22:26:38.187446Z Lars Uebernickel
Call libtiff's configure script when configuring ghostscript. This also removes the (now) unnecessary tiff config files from the repository, which fixes build problems on compilers where headers are always first searched in the current directory.[tiff/libtiff/tif_config.h tiff/libtiff/tiffconf.h base/configure.ac]
2009-11-17T20:10:20.126305Z Lars Uebernickel
Use TIFFCleanup instead of TIFFClose in all tiff devices, as the fd is already closed in gp_prn_close.[base/gdevtifs.c base/gdevtsep.c base/gdevtfax.c]
2009-11-17T18:01:22.576735Z Marcos H. Woehrmann
Several small changes to the local cluster code: clusterpush.pl - you can now specify what products to test via the command line. e.g. clusterpush.pl gs clusterpush.pl 'svg pcl' By default all products ('gs','pcl','xps','svg') are tested. compare.pl - no longer report not changed non-value return codes. build.pl - remove all pcl tests except for 600 dpi/banded and most svg tests. no longer randomize jobs (helps with the indeterminisms and improves load balancing). clustermaster.pl - changes to support new clusterpush.pl options and improvement in the load balancing algorithm. run.pl - add support for semaphore to insure only on copy is run at a time (currently disabled pending additional testing).[toolbin/localcluster/clustermaster.pl toolbin/localcluster/build.pl toolbin/localcluster/clusterpush.pl toolbin/localcluster/run.pl toolbin/localcluster/compare.pl]
2009-11-17T15:45:42.467605Z Ken Sharp
Fix (TT font substitution) : Incorrect Widths applied to CIDFont glyphs from PDF file Details Bug #690876 "Spacing issues with mixed asian/roman characters" The PDF interpreter applies the /Widths array from a PDF CIDFont by applying a custom CDevProc to alter the width of the glyph before it is cached. This procedure relies on the CID of the glyph being correct, as this is the index into the Widths array. This works correctly for genuine (embedded or from disk) CIDFonts. However, if we use a disk-based TrueType font as a substitute for a missing CIDFont, the integer which gets passed into the CDevProc routine is the TrueType glyph ID (GID). This is because the CID from the CIDKeyed instance must be converted into a GID for us to consult the font. Using the GID instead of the CID results in incorrect widths being applied. This conversion happens in PostScript and the original CID is not available at the time CDevProc is executed. Since this only affects substitution of fonts its arguable that the CDevProc is useless in its original intent anyway. This patch detects a CIDFont being replaced by a TrueType font by checking the font type is type 11 (CIDFont with TT outlines), that the font dictionary contains a key called /File (has been read from disk) and that the font_name and key_name strings are different (substituted font). In this case we ignore the CDevProc routine, and simply use the original widths from the TrueType font. The widths won't be the same as requested by the job, but then neither are the glyphs. For this job, because the widths of the TrueType glyphs are sensible, the result is an improvement in the output.[psi/zcharout.c]
2009-11-16T17:01:59.813716Z Ken Sharp
Details After revision 8465 it is no longer possible for show_state_setup in gxchar.c to alter the value of 'can_cache' but a comment in gx_default_text_begin still said that it may do so. Removed the misleading comment.[base/gxchar.c]
2009-11-16T16:48:21.437679Z Ken Sharp
Fix (TT fonts) : regression with TrueType fonts Details: Bug #690642 "conversion to PDF aborts after 800 pages" Bug #690921 "Regression: /invalidaccess in --run-- starting with r9897" The patch for #690642 was an interim fix which was known to have flaws and was supposed to be revisited to fix them. Unfortunately a file appeared which exhibited an attempt to put a key in a read-only dictionary before this was done. This patch resolves both issues by removing the need for a temporary key (hence we no longer write into a read-only dictionary) and also removes some ugliness (and slight performance penalty) by not creating a dict from the stack, patching the dict, and loading its contents back to the stack.[Resource/Init/pdf_font.ps Resource/Init/gs_ttf.ps]
2009-11-14T18:20:52.369823Z Robin Watts
Bug fix for Bug 688604, "incorrect rendering of a returning curve". The code currently in ghostscript checks for the bbox of a beziers control points being of zero width/height and to avoid a division by zero just chooses not to subdivide this curve. This is wrong in some cases. The fix here is a cheap and cheerful one; in the case where one dimension is zero and the other isn't, we basically do the same calculation as would be done in the two dimensional case, but just with a one dimensional distance as input. This causes various diff; all look good in my tests.[base/gxpcopy.c]
2009-11-13T00:16:47.523271Z Robin Watts
This patch fixes Bug 688269, by making ghostscript use pie joins rather than round ones when stroking in non CPSI_mode. This produces 3000 or so bitmap diffs, but after leaving my machine running all night generating lots of diffs for me to examine this morning, they all look like stray pixel changes (i.e. differences caused by rounding).[base/gxstroke.c]
2009-11-11T17:42:22.705154Z Robin Watts
Final msvc makefile changes to make ghostPDL targets build with the new libtiff stuff.[/trunk/ghostpdl/svg/svg_msvc.mak base/gs.mak]
2009-11-11T15:50:28.792827Z Lars Uebernickel
Changed all tiff devices to use libtiff. Affected Devices are tiffgray, tiff12nc, tiff24nc, tiff32nc, tiffsep, tiffsep1, tiffcrle, tiffg3, tiffg32d, tiffg4, tifflzw, and tiffpack. Also, two new devices: tiff48nc and tiff64nc (16 bits per component rgb and cmyk respectively) have been added. Libtiff 3.9.2 is included in the source tree as tiff/. It is possible to link to the system's libtiff by passing --with-system-libtiff to configure. Passing --without-system-libtiff will force the build to use the in-source version. By default, the newer library (based on TIFFLIB_VERSION in tiffvers.h) is used.[tiff/libtiff/tif_predict.c tiff/contrib/addtiffo/tif_ovrcache.c tiff/html/images/bali.jpg tiff/libtiff/tif_predict.h tiff/man/tiffdither.1 tiff/contrib/addtiffo/tif_ovrcache.h tiff/libtiff/tiffconf.h tiff/libtiff/tif_apple.c tiff/html/v3.7.1.html tiff/html/v3.5.7.html tiff/test/check_tag.c tiff/man tiff/contrib/iptcutil/iptcutil.c tiff/html/addingtags.html tiff/contrib/dbs/tiff-palette.c tiff/html/man/TIFFbuffer.3tiff.html tiff/html/index.html tiff/contrib/win_dib/Tiffile.cpp base/gdevtifs.c base/gxcmap.c tiff/config/install-sh tiff/man/TIFFReadRGBATile.3tiff base/gdevtifs.h tiff/html/man/tiffsplit.1.html tiff/html/man/TIFFPrintDirectory.3tiff.html tiff/contrib/tags/xtif_dir.c tiff/contrib/stream/README tiff/contrib/acorn/SetVars tiff/contrib/mac-mpw/mactrans.c tiff/contrib/mfs/mfs_file.c tiff/test/short_tag.c tiff/tools/fax2tiff.c tiff/config/depcomp tiff/html/man/TIFFReadScanline.3tiff.html tiff/contrib/tags tiff/contrib/ras/Makefile.am tiff/libtiff/tif_aux.c tiff/libtiff/tif_packbits.c tiff/libtiff/tif_zip.c tiff/html/v3.5.4.html tiff/man/TIFFbuffer.3tiff tiff/contrib/mac-cw tiff/contrib/acorn/Makefile.am tiff/html/man/TIFFmemory.3tiff.html tiff/html/v3.5.6-beta.html tiff/m4/ltsugar.m4 tiff/tools/ycbcr.c tiff/html/man/TIFFRGBAImage.3tiff.html tiff/man/TIFFWriteRawStrip.3tiff tiff/html/v3.4beta007.html tiff/libtiff/tif_unix.c tiff/html/man/tiffinfo.1.html tiff/html/man/tiffset.1.html tiff/tools/rasterfile.h tiff/html/man/TIFFFlush.3tiff.html tiff/man/tiffdump.1 tiff/contrib/dbs/tiff-rgb.c tiff/contrib/dbs/Makefile.in tiff/html/man/fax2tiff.1.html tiff/contrib/mac-cw/mkg3_main.c tiff/contrib/win_dib/Makefile.in tiff/configure.com tiff/html/man/TIFFReadRGBAStrip.3tiff.html tiff/html/man/sgi2tiff.1.html tiff/tools/tiff2ps.c tiff/html/v3.5.1.html tiff/html/intro.html tiff/libtiff/tif_atari.c tiff/html/v3.8.0.html tiff/contrib/dbs/README tiff/config tiff/libtiff/tiffiop.h tiff/html/internals.html tiff/html/images/cover.jpg tiff/html/build.html tiff/libtiff/tiffconf.h.in tiff/html/man/TIFFWarning.3tiff.html tiff/contrib/mac-cw/metrowerks.note tiff/man/TIFFReadEncodedStrip.3tiff tiff/man/tiff2bw.1 tiff/HOWTO-RELEASE tiff/man/tiff2pdf.1 tiff/man/tiffsplit.1 tiff/html/man/TIFFcodec.3tiff.html tiff/man/bmp2tiff.1 tiff/html/v3.4beta016.html tiff/tools/fax2ps.c tiff/html/libtiff.html tiff/html/v3.4beta028.html tiff/html/man/tiffmedian.1.html tiff/html/man/TIFFWriteRawTile.3tiff.html tiff/man/TIFFError.3tiff tiff/tools/tiffmedian.c tiff/man/rgb2ycbcr.1 tiff/libtiff/uvcode.h tiff/html/images/dave.gif tiff/man/TIFFWriteEncodedStrip.3tiff tiff/html/man/Makefile.in tiff/contrib/dbs/xtiff/Makefile.am tiff/config/config.sub tiff/libtiff/Makefile.vc tiff/libtiff/tif_fax3.c tiff/man/TIFFWarning.3tiff tiff/tools/tiffgt.c tiff/man/TIFFWriteScanline.3tiff tiff/html/v3.9.2.html tiff/SConstruct tiff/contrib/tags/Makefile.am tiff/contrib/acorn/install tiff/libtiff/tif_fax3.h tiff/contrib/pds/tif_pdsdirwrite.c tiff/contrib/mac-mpw/Makefile.am tiff/man/TIFFcodec.3tiff tiff/man/tiffsv.1 tiff/html/Makefile.am tiff/contrib/mac-mpw/tools.make tiff/html/images/oxford.gif tiff/html/man/TIFFsize.3tiff.html tiff/contrib/iptcutil/Makefile.in tiff/html/man/TIFFReadEncodedTile.3tiff.html tiff/contrib/ras/tif2ras.c tiff/configure tiff/html/images/note.gif tiff/contrib/mfs/README tiff/html/man/tiff2bw.1.html tiff/config/mkinstalldirs tiff/libtiff/tif_jpeg.c psi/msvc32.mak tiff/test/Makefile.am tiff/html/man/TIFFGetField.3tiff.html tiff/m4/ltoptions.m4 tiff/html/man/TIFFReadRGBATile.3tiff.html tiff/libtiff/libtiff.def tiff/contrib/tags/listtif.c tiff/man/raw2tiff.1 tiff/html/v3.7.0beta.html tiff/tools/tiffdump.c tiff/html/man/TIFFWriteEncodedTile.3tiff.html tiff/man/ppm2tiff.1 tiff/html/v3.6.0.html tiff/contrib/addtiffo/Makefile.vc base/unix-gcc.mak tiff/man/TIFFDataWidth.3tiff tiff/contrib/mfs/Makefile.in tiff/contrib/pds/Makefile.in tiff/tools/Makefile.am tiff/contrib/dbs/tiff-bi.c tiff/contrib/iptcutil/test.iptc tiff/man/TIFFcolor.3tiff tiff/html/man/TIFFWriteScanline.3tiff.html tiff/man/tiff2rgba.1 tiff/contrib/addtiffo tiff/contrib/acorn/convert tiff/html/v3.4beta034.html tiff/tools/tiff2pdf.c tiff/port/libport.h tiff/html/man/TIFFSetDirectory.3tiff.html tiff/man/tiff2ps.1 base/devs.mak tiff/tools/bmp2tiff.c tiff/contrib/iptcutil/test.txt tiff/RELEASE-DATE tiff/contrib/iptcutil tiff/html/man/TIFFReadTile.3tiff.html tiff/test/strip.c tiff/man/libtiff.3tiff tiff/libtiff/tif_win32.c tiff/html/v3.7.2.html tiff/libtiff/tif_ojpeg.c tiff/html/contrib.html tiff/build/Makefile.am tiff/html/man/tiffcmp.1.html tiff/html/man/TIFFClose.3tiff.html tiff/html/man/TIFFquery.3tiff.html tiff/html/TIFFTechNote2.html tiff/html/images/ring.gif tiff/test tiff/libtiff/tif_config.h-vms tiff/html/v3.4beta031.html tiff/contrib/mfs tiff/contrib/win_dib/tiff2dib.c tiff/man/TIFFswab.3tiff tiff/html/images/Makefile.in tiff/contrib/mac-mpw/libtiff.make tiff/contrib/mac-cw/mac_main.c tiff/man/thumbnail.1 tiff/libtiff/tiff.h tiff/port/lfind.c tiff/libtiff/Makefile.in tiff/contrib/mac-cw/mac_main.h tiff/libtiff/tif_strip.c tiff/tools/raw2tiff.c tiff/html/v3.5.5.html tiff/TODO tiff/man/TIFFWriteTile.3tiff tiff/tools/ppm2tiff.c tiff/port/strcasecmp.c tiff/man/TIFFReadEncodedTile.3tiff tiff/html/man/tiffdither.1.html tiff/tools/sgisv.c tiff/contrib/tags/xtiffiop.h tiff/man/tiffmedian.1 tiff/libtiff/tif_config.h.in tiff/contrib/addtiffo/addtiffo.c tiff/html/images/quad.jpg tiff/html/images/warning.gif tiff/html/man/tiffsv.1.html tiff/html/images/cat.gif tiff/man/tiffcp.1 tiff/man/tiffcrop.1 tiff/man/TIFFReadRGBAStrip.3tiff tiff/libtiff/tif_version.c tiff/ChangeLog base/gdevtfnx.c tiff/test/long_tag.c tiff/port/Makefile.am tiff/man/TIFFSetField.3tiff tiff/man/Makefile.in tiff/libtiff/tif_swab.c tiff/build tiff/contrib/addtiffo/Makefile.in tiff/html/v3.5.2.html tiff/configure.ac tiff/html/man/TIFFWriteEncodedStrip.3tiff.html tiff/html/v3.8.1.html tiff/contrib/stream/Makefile.am tiff/man/TIFFmemory.3tiff tiff/man/TIFFsize.3tiff tiff/Makefile.am tiff/contrib/Makefile.am tiff/html/images tiff/autogen.sh base/winlib.mak tiff/libtiff/tif_jbig.c tiff/man/tiffinfo.1 tiff/libtiff/tif_extension.c tiff/html/images/smallliz.jpg tiff/port/strtoul.c tiff/html/man/TIFFReadEncodedStrip.3tiff.html tiff/html/man/fax2ps.1.html base/configure.ac tiff/VERSION tiff/contrib/mac-cw/Makefile.script tiff/man/TIFFWriteEncodedTile.3tiff tiff/html/v3.4beta029.html tiff/contrib/mac-cw/Makefile.in tiff/man/ras2tiff.1 tiff/libtiff/t4.h tiff/README tiff/contrib/README tiff/html/man/tiff2ps.1.html tiff/contrib/tags/maketif.c tiff/contrib/win_dib/README.tiff2dib tiff/html/man/rgb2ycbcr.1.html tiff/contrib/mac-mpw/BUILD.mpw tiff/html/man/tiffgt.1.html tiff/html/man/TIFFReadDirectory.3tiff.html base/gxdevice.h tiff/libtiff/tif_warning.c tiff/html/v3.7.0alpha.html tiff/tools/tiffcmp.c tiff/html/images/strike.gif tiff/contrib/stream/tiffstream.cpp tiff/contrib/ras/README tiff/html/man/TIFFcolor.3tiff.html tiff/tools/tiffset.c tiff/contrib/dbs/xtiff tiff/contrib/pds/tif_pdsdirread.c tiff/contrib/stream tiff/contrib/tags/xtiffio.h tiff/html/man/tiffcrop.1.html tiff/tools/tiffcrop.c tiff/port/dummy.c tiff/contrib/mac-mpw/port.make tiff/man/TIFFReadRawTile.3tiff tiff/html/man/TIFFtile.3tiff.html tiff/html/v3.6.1.html tiff/libtiff/tif_fax3sm.c tiff/html tiff/contrib/ras/Makefile.in tiff/libtiff/tif_close.c tiff/libtiff/tif_luv.c tiff/man/gif2tiff.1 tiff/html/man/libtiff.3tiff.html tiff/libtiff/tif_config.h tiff/contrib/pds/tif_imageiter.c tiff/man/TIFFPrintDirectory.3tiff tiff/contrib/dbs/Makefile.am tiff/libtiff/tif_flush.c tiff/contrib/win_dib/Makefile.am tiff/contrib/acorn/Makefile.in tiff/contrib/pds/tif_imageiter.h tiff/tools/Makefile.vc tiff/html/v3.4beta035.html tiff/contrib/stream/tiffstream.h tiff/libtiff/mkg3states.c tiff/tools/tiffinfo.c tiff/tools/tiffsplit.c tiff/contrib/pds tiff/contrib/win_dib/README.Tiffile tiff/man/TIFFReadDirectory.3tiff tiff/html/v3.9.0beta.html tiff/tools tiff/tools/rgb2ycbcr.c tiff/tools/ras2tiff.c tiff/html/images/cramps.gif tiff/m4/libtool.m4 tiff/html/v3.7.3.html tiff/html/tools.html tiff/COPYRIGHT base/libtiff.mak tiff/man/TIFFReadRGBAImage.3tiff tiff/contrib/win_dib/Makefile.w95 tiff/libtiff/tif_thunder.c tiff/html/man/TIFFReadRawStrip.3tiff.html tiff/man/fax2ps.1 tiff/libtiff/tif_lzw.c tiff/man/TIFFSetDirectory.3tiff tiff/html/man/TIFFReadRGBAImage.3tiff.html tiff/contrib/acorn/Makefile.acorn tiff/libtiff/tif_color.c tiff/m4 tiff/man/TIFFGetField.3tiff tiff/html/v3.4beta032.html tiff/libtiff/tif_win3.c tiff/html/man/TIFFWriteDirectory.3tiff.html tiff/contrib/ras tiff/libtiff/SConstruct tiff/man/sgi2tiff.1 tiff/html/man/Makefile.am tiff/contrib/iptcutil/README tiff/libtiff/tif_dirwrite.c tiff/build/README tiff/libtiff/tif_dirinfo.c tiff/libtiff/tif_write.c tiff/config/compile tiff/man/tiffgt.1 tiff/libtiff/tif_tile.c tiff/README.vms tiff/html/misc.html tiff/html/v3.7.0.html tiff/man/tiffcmp.1 tiff/libtiff/tif_open.c tiff/contrib/iptcutil/Makefile.am tiff/test/strip_rw.c tiff/contrib/dbs/xtiff/Makefile.in tiff/libtiff/tiffconf.vc.h tiff/contrib/win_dib tiff/man/tiffset.1 tiff/contrib/tags/Makefile.in tiff/libtiff/tif_config.wince.h tiff/tools/gif2tiff.c tiff/contrib/mac-mpw/Makefile.in tiff/contrib/dbs/xtiff/README tiff/libtiff/tiffio.h tiff/html/Makefile.in tiff/tools/tiff2rgba.c tiff/html/man/tiffcp.1.html tiff/contrib/mfs/Makefile.am tiff/contrib/acorn/ReadMe tiff/contrib/pds/Makefile.am tiff/man/TIFFstrip.3tiff tiff/html/man/TIFFswab.3tiff.html tiff/test/Makefile.in tiff/html/v3.5.3.html tiff/html/man/TIFFSetField.3tiff.html tiff/contrib/dbs/xtiff/patchlevel.h tiff/html/v3.8.2.html tiff/html/man/TIFFOpen.3tiff.html tiff/contrib/dbs/xtiff/xtifficon.h tiff/libtiff/tiffconf.wince.h tiff/port/getopt.c tiff/html/images/info.gif tiff/port/Makefile.vc tiff/contrib/addtiffo/tif_overview.c tiff/tools/tiffdither.c tiff/tools/pal2rgb.c tiff/html/images.html tiff/libtiff/tif_dumpmode.c tiff/html/man/TIFFWriteTile.3tiff.html tiff/aclocal.m4 tiff/config/missing tiff/html/man tiff/libtiff/tif_dir.c tiff/tools/Makefile.in tiff/Makefile.vc tiff/port tiff/html/man/tiff2pdf.1.html tiff/libtiff/tif_dir.h tiff/html/v3.4beta018.html tiff/html/man/tiff2rgba.1.html tiff/libtiff/tif_msdos.c base/gdevfax.c tiff/html/man/index.html tiff/contrib/dbs/tiff-grayscale.c tiff/contrib/dbs/xtiff/xtiff.c tiff/html/images/jim.gif base/gdevfax.h tiff/libtiff/tif_print.c tiff/tools/sgi2tiff.c tiff/man/TIFFOpen.3tiff tiff/contrib tiff tiff/contrib/mac-mpw tiff/config/ltmain.sh tiff/contrib/mac-cw/README tiff/tools/thumbnail.c tiff/libtiff/tiffio.hxx tiff/man/TIFFReadRawStrip.3tiff tiff/html/man/ppm2tiff.1.html tiff/contrib/acorn/cleanlib tiff/man/TIFFRGBAImage.3tiff tiff/html/images/back.gif tiff/libtiff/tif_read.c tiff/libtiff/tif_stream.cxx tiff/man/TIFFWriteDirectory.3tiff tiff/libtiff/tif_codec.c tiff/build/Makefile.in tiff/html/images/Makefile.am tiff/contrib/mac-cw/version.h tiff/test/ascii_tag.c tiff/libtiff/tif_pixarlog.c tiff/man/TIFFReadTile.3tiff tiff/libtiff/Makefile.am tiff/html/man/TIFFWriteRawStrip.3tiff.html tiff/contrib/tags/README tiff/libtiff/tif_error.c tiff/man/TIFFtile.3tiff tiff/nmake.opt tiff/libtiff/tif_compress.c tiff/libtiff/tiffvers.h tiff/html/man/TIFFError.3tiff.html tiff/html/man/tiffdump.1.html tiff/html/man/ras2tiff.1.html tiff/man/TIFFClose.3tiff tiff/man/TIFFquery.3tiff base/Makefile.in tiff/html/man/raw2tiff.1.html tiff/html/v3.9.1.html tiff/html/man/TIFFReadRawTile.3tiff.html tiff/m4/lt~obsolete.m4 tiff/html/man/pal2rgb.1.html tiff/libtiff/tif_dirread.c tiff/contrib/mac-mpw/top.make tiff/man/TIFFFlush.3tiff tiff/html/v3.7.0beta2.html tiff/man/TIFFWriteRawTile.3tiff tiff/html/v3.4beta024.html tiff/contrib/pds/README tiff/man/fax2tiff.1 tiff/libtiff/tif_getimage.c tiff/man/Makefile.am tiff/html/v3.4beta036.html tiff/man/TIFFReadScanline.3tiff doc/Devices.htm tiff/contrib/addtiffo/Makefile.am tiff/tools/tiffcp.c tiff/html/images/jello.jpg tiff/contrib/mac-mpw/README tiff/config/config.guess tiff/test/test_arrays.c tiff/contrib/acorn base/gs.mak tiff/man/pal2rgb.1 tiff/html/man/thumbnail.1.html tiff/libtiff/tif_acorn.c tiff/test/test_arrays.h tiff/html/man/TIFFstrip.3tiff.html tiff/html/v3.7.4.html tiff/port/Makefile.in tiff/html/bugs.html tiff/contrib/dbs base/gdevtfax.c tiff/contrib/addtiffo/README tiff/contrib/stream/Makefile.in tiff/html/man/TIFFDataWidth.3tiff.html tiff/libtiff tiff/contrib/mac-cw/Makefile.am tiff/contrib/ras/ras2tif.c tiff/libtiff/tif_next.c tiff/html/man/gif2tiff.1.html tiff/contrib/Makefile.in tiff/Makefile.in tiff/html/v3.4beta033.html tiff/html/support.html tiff/libtiff/tif_config.vc.h tiff/m4/ltversion.m4 tiff/tools/tiff2bw.c base/gdevtsep.c tiff/html/document.html tiff/m4/acinclude.m4]
2009-11-11T15:01:20.119636Z Hin-Tak Leung
silent two compiler warnings for casting from const to non-const introduced by r10313[base/gdevpx.c]
2009-11-11T14:53:05.840060Z Hin-Tak Leung
partly reverting r8576, and other file-size improvements. After r10313, it becomes possible to revert r8576 (which was a work-around to bug 688992, but increases file-sizes in some cases). It is also found that r8576 is in fact more efficient for small rasters; so it is only partly reverted. In two other places where write_image_data() is called, switching to gx_default_copy_* for single-line images/masks is likely to work well also. This fixes bug 690857, where 12-07C.PS uses a lot of 1-bit images, and shrinks the file size by a factor of 4. There are a total of 4 places where write_image_data() is called (copy_mono/copy_color/fill_masks/image_write_rows) - the 4th does not use the data_bit field, nor is it likely to be called with small rasters; so it is left unmodified.[base/gdevpx.c]
2009-11-11T14:26:17.282201Z Till Kamppeter
The cups_map_cmyk() function applied density corrections to RGB values. They can only get applied to CMYK values. Fixed by applying the cupsDensity correction before converting CMYK to RGB.[cups/gdevcups.c]
2009-11-11T13:53:23.399755Z Hin-Tak Leung
handles the case of data_bit being multiple of 8. Try to handle the case of data_bit being multiple of 8 This fixes 690862, and also make it possible to revert r8576 (which was a work-around to bug 688992, but increases file-size) to fix bug 690857 (file-size issue). Non-multiple of 8 are not handled, but by-passed at the callers'.[base/gdevpx.c]
2009-11-11T13:52:23.912583Z Alex Cherepanov
Increase the size of the initial buffer in the scanner dynamic area to accept the string of maximum valid size. Protect the buffer from overflow when the scanner state is saved during reading of a name that exceed max name length. Bug 690902.[psi/iscan.c psi/int.mak psi/iscan.h]
2009-11-11T13:37:03.631859Z Hin-Tak Leung
caching SetPen/SetBrush Null calls For some test files (the PS3 CET set), the pxlcolor/pxlmono code emits a lot of setpen/setbrush nulls. There is no need to set it again if the printer already got a previous setpen/brush null. So this patch caches the null/non-null state of both pen and brush in the driver and not re-issue set nulls if the last set was a null. This only gives about 5% file size saving for the test file I wrote it for. Part of the fix to bug 690857.[base/gdevpx.c]
2009-11-11T09:51:26.353930Z Ken Sharp
Fix (pdfwrite) : correct introduced regression Details Bug #690906 "Regression: Several PostScript CET files hang pdfwrite" Revision 10297 failed to check the return value from next_char_glyph for composite fonts because the fact that an error return was possible was hidden inside a macro. Adding error return checking resolves the problem[base/gdevpdtt.c]
2009-11-10T20:44:18.431838Z Hin-Tak Leung
fix (signed 16-bit)0 problem with r10267, and separate signed/unsigned numbers. r10267 'write signed 16-bit integers properly' contains a mistake with ">" (should be ">=") - it puts (signed 16-bit)0 as 32768. Historically, the old code does 16-bit integers unsigned eventually. This current change also separate signed and unsigned numbers. Apologies.[base/gdevpxut.h]
2009-11-09T23:41:11.015200Z Hin-Tak Leung
implements white on mask (and added black on mask) in copy_mono. This adds white on mask as mask=black and (D & ~S) | S . Black on mask is treated specially as (S & D). Fixes bug 688372 (which uses white on mask) and 690830 (which uses black on mask) and 690025 (which uses both white on mask and black on mask).[base/gdevpx.c]
2009-11-09T20:55:30.861525Z Hin-Tak Leung
reverting r8733, which was a faulty fix to bug 688372. reverting most of r8733 (except the two debug statements), which was a faulty fix to bug 688372. The faulty fix seems to be the source of bug 690861 and 690868. The correct fix to 688372 to follow.[base/gdevpx.c]
2009-11-09T20:20:51.490553Z Hin-Tak Leung
purge cached palette whenever color space changes. The current pxlmono/pxlcolor code caches colorspace and palette calls and not re-transmitting them if it hasn't changed since the last time they were set. Whenever the color space changes, the current palette should be purged, and a new palette should be (re-)transmitted to the printer the next time an indexed colored image is sent. This fixes bug 690859.[base/gdevpx.c]
2009-11-09T18:42:04.818284Z Alex Cherepanov
Buffer mask data source in a reusable stream when needed for type 3 image with separate data sources. Check all possible combinations of data source types and fix a bunch of bugs in the code that handles cases untested before. Bug 688389.[Resource/Init/gs_ll3.ps]
2009-11-09T16:04:58.791370Z Ken Sharp
Fix (pdfwrite) : type 0 fonts with type 3 descendants could confuse pdfwrite by using stringwidth Details Bug #690875 "Ghostscript locks up writing PDF file" There is code in gdev_pdf_text_begin which skips caching of type 3 glyphs when using stringwidth. This prevents glyphs becoming bitmapped and ensures that pdfwrite and the glyph cache are coherent. The code did not check for composite fonts using type 3 descendants. In this case if a job used some glyphs for stringwidth, then later used at least one of those glyphs and one glyph not previously encountered in a single string pdfwrite would enter an endless loop. pdfwrite would notice that a glyph was not marked as 'used' in its internal cache, and exit pdf_text_process to run the outline for the first glyph. GS would note that the first glyph was already cached (from the stringwidth) and move on to the next glyph. GS would render that glyph, pdfwrite would capture it and mark that character code as used. On returning to pdf_text_process the first glyph should be marked as used now, but it was not, so pdfwrite would once again exit and the loop would repeat. Fixed by checking string using composite fonts to see if any glyph used a type 3 descendant, and disabling caching if it does.[base/gdevpdtt.c]
2009-11-09T14:19:54.384020Z Robin Watts
Adding comment as suggested by Hin-Tak to document why we need a particular header file.[base/gdevpx.c]
2009-11-09T14:15:32.309537Z Robin Watts
Fix to devs.mak: PXL requires a runlength compression function from PCL, so correctly add the dependency to the makefile. This issue was seen when building using macosx.mak on a Snow Leopard Macbook. Maybe in future if codesize is an issue we should pull this function out to a separate file.[base/devs.mak]
2009-11-08T00:40:19.198456Z Robin Watts
Fix for valgrind problem in bug 690864. We were scaling the bbox of a path even when the bbox had never been set. The fix is to respect the bbox_set flag.[base/gxpath2.c]
2009-11-07T17:31:12.980350Z Alex Cherepanov
Adobe Acrobat considers the use of clip operation on new path a no-op. Check this and don't clip when there's no path. Bug 690891. DETAILS: Besides the change in clipping, this patch reverts the code that preserves current point position after fill operations and interferes with new path detection. Reverted code predates source control and its purpose is not clear. Perhaps, it was an attempt to avoid nocurrentpoint errors, which are now trapped and handled.[Resource/Init/pdf_ops.ps]
2009-11-07T02:31:37.642669Z Ray Johnston
Save and restore the graphics state around the dummy fill that was added in rev 10284 in order to make sure that pages have at least one fill_path call. The 'copypage' operator does not perform initgraphics so the FTS test that expected the graphics state to be unperturbed by copypage would fail. Bug 690894. Thanks to Alex for spotting the cause of the regression.[base/gsdevice.c]
2009-11-06T20:40:48.453064Z Robin Watts
Fix for bug 690890. We always use the CPSI_mode version of the gs_strokepath code (when executing strokepath or ustrokepath postscript operators). This means we better match acrobat. This frees us to optimise the non CPSI_mode version so as to produce simpler stroked paths with the same outlines. This should allow us to be faster in the non strokepath cases.[base/gxpaint.c base/gspath.h base/gxpaint.h /trunk/ghostpdl/xps/xpspath.c base/gspaint.c base/gxstroke.c base/gxclrast.c]
2009-11-06T14:23:40.138345Z Alex Cherepanov
Clamp coordinates when the path is scaled up for anti-alias rendering. Leave 1000pt slack at the edge because the path drawing routines can't handle values close to the edge of the representable space. Bug 690864.[base/gxpath2.c]
2009-11-05T23:35:59.860092Z Robin Watts
Update htmldiff.pl to cope with svg files (and pdfwrite svg files). Also update the invocation of .PS files to use gs_cet.ps[toolbin/htmldiff.pl]
2009-11-05T22:24:30.858232Z Ray Johnston
This is the initial commit of the 'tiffsep1' device code that emits separation files as 1-bit per pixel TIFF files, a separate file for each separation. This is a CMYK plus Spot color device, and the number of separations (spot colors) supported depends on the gdevdevn.h setting of USE_COMPRESSED_ENCODING. By default this is true as long as the sizeof(gx_color_index) is >= 8, so up to GX_DEVICE_COLOR_MAX_COMPONENTS layers can be generated (current default 64). Without compressed color encoding, then only 8 total (C, M, Y, K and 4 spot colors) can be supported. Files are named with the separation layer in ( ), e.g. x(Black).tif if the OutputFile is 'x.tif'. Since no composite CMYK is generated, the base file is deleted ('x.tif' in the example). DETAILS: This device uses a hook of the 'fill_path' device call to collect the threshold arrays from the imager state. In case a file does not perform a 'fill' operations, the gsdevice.c code does a dummy fill of an empty path to allow the 'sep1_fill_path' code to convert the 'order' into threshold arrays.s The 'open' and 'put_params' device functions are modified to make sure that if the clist device is being used, the 'sep1_fill_path' proc will be re-hooked (the clist initialization overwrites some procs including the 'fill_path' proc). The sep1_fill_path then forwards to whatever fill_path proc was set by the gdev_prn_open or put_params. A later commit will move the 'thresholds_from_order' function to another common file (probably gsht1.c) and change it to generate a threshold array of type 'gs_threshold_halftone' with NULL transfer and closure functions. This function is in gdevtsep.c now since it is the only device that needs it (for now) and development was easier with all changes more or less localized (at least non-trivial ones). The make files are modified so that the 'tiffsep1' device is included by default (where the tiffsep device is included). The actual halftoning is done using 32-bit writes of the dithered line since testing showed this to be 27% faster (although more complex). Note that the compressed color encoding (the current default) is about half the throughput compared to direct encoding. Users that are sensitive to performance (who isn't) and that only need 8 or less total colors (CMYK plus 4 spot colors) will want to turn compressed color encoding off.[base/gsdevice.c psi/os2.mak base/bcwin32.mak base/openvms.mak base/watcw32.mak base/Makefile.in base/gdevtsep.c base/configure.ac base/unix-gcc.mak base/unixansi.mak psi/msvc32.mak base/macos-mcp.mak base/devs.mak]
2009-11-05T17:01:01.144368Z Marcos H. Woehrmann
Add support for only testing only langauges which were affected by a commit.[toolbin/localcluster/splitjobs.pl toolbin/localcluster/clustermaster.pl toolbin/localcluster/readlog.pl toolbin/localcluster/build.pl toolbin/localcluster/clusterpush.pl toolbin/localcluster/run.pl toolbin/localcluster/compare.pl]
2009-11-05T08:14:47.560103Z Hin-Tak Leung
updating the internal graphic state as in the else part; 2nd half of fix to bug 690853[base/gdevpx.c]
2009-11-03T23:43:48.930105Z Ralph Giles
Fix a const propagation warning. Also remove some trailing whitespace.[base/gdevp14.c]
2009-11-03T23:43:47.356550Z Ralph Giles
Remove some unused variables from the PDF 1.4 compositor device, fixing several warnings. Also cleans up some formatting.[base/gdevp14.c]
2009-11-03T23:43:45.299604Z Ralph Giles
Move some static prototypes from gdevp14.h to gdevp14.c. These two functions, internal to gdevp14.c, need forward prototypes but where declared in the public header, causing gcc warnings when the declarations where included in other source files.[base/gdevp14.c base/gdevp14.h]
2009-11-03T17:54:36.738828Z Hin-Tak Leung
revert to PXL 1.1 - it is possible some old printers dislike PXL 2.1 header[base/gdevpxut.c]
2009-11-03T16:59:25.556772Z Alex Cherepanov
Fix a line split without the '\' at the end of the line. By some reason gmake tolerates this but MSVC nmake doesn't. Bug 690886, customer 661.[base/lib.mak]
2009-11-03T14:39:04.429643Z Hin-Tak Leung
Use SetPageScale and SetPageOrigin to work around 16-bit limit in paths. This is a similar but more extensive change to the last (16-bit limit in SetCursor), which use SetpageScale to make path co-ordinates fit within 16-bit. In so doing some paths can become inaccurate if one of the points are not large; so SetPageOrigin is used to shift to one such point before the scaling. This is the last part to fix bug 690858 and bug 690860 .[base/gdevpx.c]
2009-11-03T14:06:53.986640Z Hin-Tak Leung
Use SetPageScale to work around 16-bit limit in SetCursor. Here SetPageScale is used so that large cursor co-ordinates can fit within 16-bit signed integer limit. This fixes bigpath.ps in bug 690855, and also fixes some of the problems seen in bug 690858 and bug 690860.[base/gdevpx.c]
2009-11-03T13:54:22.932026Z Hin-Tak Leung
new SetPageScale/Unset utility routine before the fix to bug 690858[base/gdevpx.c]
2009-11-03T13:50:17.551314Z Hin-Tak Leung
new SetPageOrigin utility routine before the fix to bug 690858[base/gdevpx.c]
2009-11-03T13:41:54.478161Z Hin-Tak Leung
fixes age-old typo. This appears to be a typo - the gray conversion code is doing out = (red + green + next_red) instead of (red + green + blue).[base/gdevpx.c]
2009-11-03T13:36:48.031673Z Hin-Tak Leung
write signed 16-bit integers properly. The pxl utlity code has never been able to write negative numbers as signed 16-bit integers properly. This fixes bug 690863 primarily, and also some of the problems seen in bug 690858, file CATX8874.pdf mentioned in bug 690859, and part of the problems in bug 690860.[base/gdevpxut.h base/gdevpxut.c]
2009-11-03T13:20:30.378093Z Hin-Tak Leung
Do rounding of co-ordinates rather than clipping. This set of change tries to calculating the co-ordinates more accurately by doing rounding of fractional parts instead of clipping off the fractional parts. This is part of the fix to bug 690869. Also needs -r1200 to work for the intended purpose of matching with ppmraw output.[base/gdevpx.c]
2009-11-03T13:14:51.306299Z Hin-Tak Leung
Tightening the standard media size matching. Drop the tolerance to 0.05 from 5/72 of an inch. One of the test files is 36-pixels @r600 within a standard size. Fixes bug 690866.[base/gdevpxut.c]
2009-11-03T12:59:24.143346Z Hin-Tak Leung
flush stream data in close_device(). For a whole set of postscript files (the ps3cet set), the close_device() finalizer code is called before the PXL output is flushed. This causes the PJL job footer to be outputted in the middle of the last portion of PXL output, thus corrupting the PXL data. Adding a flush fixes this problem. Fixes one of the many problems in bug 690858.[base/gdevpx.c]
2009-11-03T12:50:17.079568Z Hin-Tak Leung
Removes two redundant SetBrushSource black The two SetBrushSourcewas introduced by: r8732: marcos - Add support to pxlcolor and pxlmono for 24 bpp images. After r8732, whenever one tries to output an image, the brush color is reset to black. This affects later drawings that relies on a non-black brush color being set previously and still considered being active. Fixes bug 690853.[base/gdevpx.c]
2009-11-03T06:21:49.323464Z Ralph Giles
Add missing return type and static scope to the definitions of pdf14_push/pop_transparency_state. Fixes a gcc warning.[base/gdevp14.c]
2009-11-03T05:27:32.955847Z Ralph Giles
Include the implicitly required headers for gxpcolor.h in gdevp14.h. This declares dev_color_proc_save_dc and related function pointers before use, correcting a serious gcc warning and fixing compilation on AIX 5.3 TL 8 SP2. Bug 690883.[base/lib.mak base/gdevp14.h]
2009-11-02T17:36:56.958032Z Alex Cherepanov
When a stream error occurs, Ghostscript sometimes print a spurious "Additional information" line containing uninitialized data as part of the error message. Initialize error_string in s_init_state to fix this. Thanks to Michael Constant for the patch. Bug 690874.[base/stream.c]
2009-11-02T16:24:35.721695Z Marcos H. Woehrmann
Add psdcmyk to regression testing (currently only at 72/75 dpi).[toolbin/localcluster/build.pl]
2009-11-02T05:21:28.471147Z Marcos H. Woehrmann
Quiet Ubuntu 9.10 gcc/ld warning: ./obj/gdevpsft.o: In function `T.107': gdevpsft.c:(.text+0x992): warning: memset used with constant zero length parameter; this could be due to transposed parameters[base/gdevpsft.c]
2009-11-01T23:36:17.798485Z Ray Johnston
Fix for indeterminism from psdcmyk and any other devices that use rgb_cs_to_spotn_cm or other gx_cm_color_map_procs that don't set all color_info->num_components elements of the "frac out[]" array. Fix for Bug 690713. DETAILS: All of the cmap_***_direct and cmap_***_halftoned functions in gxcmap.c called into the corresponding device's color mapping proc (supplied by the dev_proc get_color_mapping_proc) for that color space, but it is not a requirement (invariant) that those functions set all 'num_components' elements of the array, and some did not (such as the rgb_cs_to_spotn_cm function mentioned above.[base/gxcmap.c]
2009-11-01T22:47:33.338243Z Alex Cherepanov
Fix a typo in a recently committed patch (rev. 10246) that broke a branch that handles Type 3 images with string data source in the image and file data source in the mask. Bug 690451, customer 200.[Resource/Init/gs_ll3.ps]
2009-11-01T19:50:29.144138Z Alex Cherepanov
Consider '0000000000 00000 n' as a free entry, issue a warning, and continue processing xref table. Files with this error, generated by Quartz PDFContext are getting increasingly common. Bug 690873.[Resource/Init/pdf_main.ps]
2009-11-01T18:32:50.921078Z Alex Cherepanov
Implement support of large resource dictionaries. Store XObject dictionaries that exceed 65534 elements as arrays of dictionaries. Increase default operand stack limit to 300000 elements. Bug 690778, customers 850, 531.[Resource/Init/gs_init.ps Resource/Init/pdf_main.ps Resource/Init/pdf_base.ps]
2009-11-01T15:40:28.684192Z Marcos H. Woehrmann
Always allocate pcl and xps jobs to i7 and i7a along with xps jobs (splitjobs.pl). Fix race condition when machine goes down during regression (clustermaster.pl). Repeated timeouts on a machine now cause it to abort the run and report this (run.pl and readlog.pl).[toolbin/localcluster/splitjobs.pl toolbin/localcluster/clustermaster.pl toolbin/localcluster/readlog.pl toolbin/localcluster/run.pl]
2009-10-30T01:25:56.717628Z Alex Cherepanov
Work around a requirement of .image3 operator to have image and mask data sources to be of the same type. Convert the data sources to the same type on PostScript level. Bug 690850, customer 870.[Resource/Init/gs_ll3.ps]
2009-10-29T02:07:58.374375Z Ray Johnston
Fix for clist setcolor when compressed color encoding is used which is the default build case for the tiffsep and psdcmyk and others . Bug 690851. DETAILS: The compressed color encoding always uses 64 bit (sizeof(gx_color_index)). The (num_components * 8) is not the correct depth (number of bits) for color encoding in the clist. This patch detects (at run time) that compressed color encoding is using by examining the 'my_encode_color' procedure since there is no direct way to determine if compressed color encoding is being used.[base/gdevp14.c]
2009-10-27T18:13:49.866447Z Hin-Tak Leung
Adding all the commit ids ever found in svn log to the AUTHORS file. For those I don't know the real name of, the id was duplicated as the name. This should make it easier for somebody who wants to fill in the info.[doc/AUTHORS]
2009-10-27T17:44:51.858107Z Hin-Tak Leung
Adding my commit id<->name mapping to the AUTHORS file Apparently this file is used by split_changelog.py for building the History files.[doc/AUTHORS]
2009-10-27T17:28:17.755993Z Hin-Tak Leung
Declare binary communications explicitly for IJS, where the default behavior isn't clear for non-MS-VC compilers. This makes the IJS code works correctly when compiled by mingw or borland. It also fixes some issue for Watcom. Watcom-compiled client still seems to be buggy (as in not inter-operating with the others). Closes bug 688714.[ijs/ijs_client_example.c ijs/ijs_exec_win.c ijs/unistd_.h ijs/ijs_server.c]
2009-10-27T17:21:38.456605Z Hin-Tak Leung
Reset color space to eRGB just in case a previous fill/stroke had set it to eGray. Fixes 688320.[base/gdevpx.c]
2009-10-27T17:02:59.376757Z Hin-Tak Leung
Implements DeltaRow compression as an option, plus updated user documentation. The new compression scheme is activated by -dCompressMode=3. 1=RLE is still the default, and under some conditions: 1-pixel-high image (which does not compress well with DeltaRow) and out of memory conditions (noCompression can run without allocating memory), specifying -dCompressionMode=3 will still use the current RLE code. These are documented in comments.[base/gdevpx.c doc/Devices.htm base/gdevpxut.c]
2009-10-27T16:53:05.423045Z Hin-Tak Leung
custom media size patch + bug fix. This implements the CustomMediaSize as discussed; on the way I also found an old bug with the pxl utility code which was just written but not used (until now). See comments within. Fixes bug 690827.[base/gdevpxut.h base/gdevpxut.c]
2009-10-27T16:13:23.571814Z Robin Watts
Fix for bug 690831. The test file uses a radial shading, where the final circle almost contains the initial one, with 'extension' at the end selected. Our code incorrectly fills the final extended circle, causing us to wipe out all the correct fading we've done to that point. The fix is to recognise whether we are moving 'inwards' or 'outwards', and only to fill in the 'inwards' case. This fixes the original issue, and causes no visible regressions.[base/gxshade1.c]
2009-10-27T15:54:05.886068Z Robin Watts
Make htmldiff.pl output resolution information in html file.[toolbin/htmldiff.pl]
2009-10-27T04:31:04.180870Z Michael Vrhel
Fix so that the monochrome devices do not use the non-separable blending operations that are used for RGB devices. This was the source of an indeterminism in Bug 690477. Thanks to Marcos for the detailed bug information. DIFFERENCES EXPECTED: None. Apparently no other files use the non-separable luminosity blending.[base/gdevp14.c]
2009-10-26T00:20:11.207073Z Robin Watts
bmpcmp.c: Fix bounding box calculation that could cause SEGV.[toolbin/bmpcmp.c]
2009-10-26T00:19:31.018870Z Robin Watts
Make htmldiff.pl output TITLEs for each IMG saying the source file, page, resolution, and whether it's the candidate or reference image.[toolbin/htmldiff.pl]
2009-10-25T12:39:53.222871Z Robin Watts
Fix for bug 687295; force transparent stroking to construct the entire path before stroking it, thus eliminating nasty effects where edges overlap.[base/gxstroke.c]
2009-10-23T20:17:15.860218Z Robin Watts
Another couple of tweaks to bmpcmp.c: Avoid producing bitmaps that have no changes in (from pages with well separated changes). Shrink bbox of bitmaps where possible.[toolbin/bmpcmp.c]
2009-10-23T19:22:10.011416Z Robin Watts
Tweaks to bmpcmp.c. * 'Small' differences are shown in green, large differences in red. * Don't print an error message when no differences found, as the script does this better (and we are only looking at a page at a time).[toolbin/bmpcmp.c]
2009-10-23T19:20:18.949144Z Robin Watts
Tiny tweak to htmldiff.pl script; now lists files which it failed to find changes in at the end.[toolbin/htmldiff.pl]
2009-10-23T19:13:36.932446Z Robin Watts
Fix bounding box adjustments that were causing rendering glitch in bug 687295.[base/gdevp14.c]
2009-10-23T07:17:56.276513Z Ralph Giles
Use document.domain instead of a hardwired value for the AJAX cgi request. This allows the dashboard page to function on both the ghostscript.com and the www.ghostscript.com server aliases.[toolbin/localcluster/dashboard.html]
2009-10-22T18:28:22.955248Z Ralph Giles
Revert the changes from r10210. This was experimental code accidentally committed with an unrelated log message.[base/gxfcache.h base/gxistate.h base/gsfont.c base/gsistate.c]
2009-10-22T18:24:04.424606Z Ralph Giles
Correct a tranposed digit in the A4Small imageable area in the ghostpdf ppd. Bug 690814.[lib/ghostpdf.ppd]
2009-10-22T18:23:57.528033Z Ralph Giles
Add display of the pending 'clusterpush' job queue to the dashboard. Runs to check commits to the central repository preempt clusterpush jobs, but it is still useful to see the queue when several jobs are waiting. Because we now have more than two elements, we replace the entire 'status' div element, rather than trying to find and replace each sub-element within the div.[base/gxfcache.h base/gxistate.h base/gsfont.c base/gsistate.c]
2009-10-22T09:44:43.697488Z Ken Sharp
Fix (pdfwrite) : Unchecked return value from pdf_write_spot_function Details Bug # 690796 "Invalid Halftone objects in PDF (negative object references)" Two fixes, firstly the return value from pdf_write_spot_function() was not being checked in pdf_write_spot_halftone. We now check the value and return an error if required. Secondly when unable to write a spot function because of the num_bits required we were returning a rangecheck error. This was hidden by the failure to check the return value noted above. The problem is that rangecheck is a special case return when called via gdev_pdf_fill_path() and causes it to assume transparency is involved and use a different fill method. We actually want an error so instead of returning rangecheck we no return limitcheck instead.[base/gdevpdfg.c]
2009-10-22T07:01:27.775454Z Michael Vrhel
Fix mistype of which procs to set to when we change the color space for a transparency group. If we are running with a separation device with spot colors then we need to use the compressed encoding and decoding. This fixes bug 690816. DIFFERENCES EXPECTED: None since it will only show up for separation devices.[base/gdevp14.c]
2009-10-21T18:09:25.061089Z Ralph Giles
Add display of the pending 'clusterpush' job queue to the dashboard. Runs to check commits to the central repository preempt clusterpush jobs, but it is still useful to see the queue when several jobs are waiting. Because we now have more than two elements, we replace the entire 'status' div element, rather than trying to find and replace each sub-element within the div.[toolbin/localcluster/clustermonitor.cgi toolbin/localcluster/dashboard.html]
2009-10-21T18:09:23.409841Z Ralph Giles
Add a dashboard html page displaying the status of the local cluster. This page retrieves the status information from the clustermonitor.cgi script and parses it in javascript, constructing an html display. It updates every five seconds. This dashboard is currently installed as http://ghostscript.com/regression/[toolbin/localcluster/dashboard.html]
2009-10-21T18:09:20.856618Z Ralph Giles
Add a cgi version of the clustermonitor script. This is a perl cgi script which returns similar information to the clustermonitor.pl terminal-based dashboard in a json structure for easy parsing from javascript or other remote applications.[toolbin/localcluster/clustermonitor.cgi]
2009-10-21T03:50:46.157782Z Michael Vrhel
Reintegration of gs_extendgraphic branch into trunk. This fixes bug690777.pdf. The main purpose of this commit is to relay information about q and Q operations (extended graphic state push and pops) to the pdf14 compositor. The reason this is needed is that the softmask is part of the extended graphic state. DIFFERENCES EXPECTED: Bug688807.pdf has a minor progression. Bug688159.pdf and Bug689509.pdf also reported differences but I could not see any using cmpi. Also, we may need to take a look at the XPS output. It was unclear to me which were regressions and which were indeterministic. DETAILS: The following example (as well as bug690777) drove the need for this commit. Consider a transparency group that covers an entire page and let there be a soft mask that is set as part of a graphic state. Let there be 2 bands in this clist and let the soft mask bounding box be such that it intersects band 1 and band 2. Currently, there will be a Push Transparency Soft Mask and an End Transparency Soft Mask compositor action added into the clist for BOTH bands. Now, let there be a transparency group that is drawn only into band one. There will be a Push Transparency group and End Transparency group into band 1. Now let there be a Q followed by a transparency group that is drawn only in band 2. What should happen, is that the soft mask should no longer be present due to the Q operation. Unfortunately, in the current architecture, there is no compositor action to let band 2 know that the soft mask is not valid to use. Another example is a case were we set a graphic state with a softmask, which will introduce the Push Transparency Soft Mask and an End Transparency Soft Mask compositor actions. Follow this by a q operation. Set another graphic state, with another softmask. This introduces another Push Transparency Soft Mask and an End Transparency Soft Mask compositor action. During the clist reader stage the maskbuffer for our pdf14 context will be the last soft mask that was specified. Now on the writer side do a Q and draw. What should occur is that the first transparency softmask should be active. Unfortunately, this information is not communicated through the clist AND the old soft mask buffer has been lost. The primary issue in these examples, is that we need to detect and store in the clist graphic state changes that occur and have an impact on our transparency state. To solve this problem, the following is proposed: 1) At the PDF interpreter level for the /q and /Q operators, check if the page uses transparency. If it does, then execute a .pushextendedgstate for /q and a .popextendedgstate for /Q. 2) Add zpushextendedgstate and zpopextendedgstate commands in the c code. These operations will respectively execute a gs_push_transparency_state and a gs_pop_transparency_state during the clist writer process. Deep in the graphics library there will also be gx_push_transparency_state and gx_pop_transparency_state. These are executed during the clist reader side. 4) Two new device procedures were added related to the transparency state. (push_transparency_state and pop_transparency_state). These were added at the end of the device procs for backward compatibility with older devices. 4) A change to the pdf14 ctx stack such that the maskbuffers are a stack. In fact, they are now reference counted since they can be multiple copies (actually pointers to the same data buffer) in the mask buffer stack. 5) A flag xstatepending was added to the graphic state to communicate when a softmask transparency group pop had occurred. In that case, we need to keep track of the q and Q operations. Otherwise, they are ignored early in the process to reduce the number of compositor actions. In addition fixes were made to the background content handling (BC) of the soft mask. Now the softmask bounding box is the same as the parent group unless the BC value is white which would indicate that the BC will not have any effect on areas drawn outside the softmask group bounding box. Changes were made in the code that computes the band range for the softmask group.[base/gdevrops.c base/gxclimag.c base/gxistate.h base/gdevdflt.c base/gdevbbox.c base/gxcomp.h psi/ztrans.c base/gxclipm.c base/gsovrc.c base/gdevpdft.c /trunk/gs base/gxclip2.c base/gxdevcli.h base/gdevp14.c Resource/Init/pdf_ops.ps base/gxclist.c base/gdevp14.h base/gstrans.c base/gstrans.h base/gxclip.c]
2009-10-21T01:18:51.593536Z Marcos H. Woehrmann
Allow for newly added regression files to produce errors (compare.pl). Fixed missing nice on some commands (build.pl). Fixed spurious error message when running svn commit regression (run.pl). Reordered code so that the user regression queue is updated even while a regression run is in progress (clustermaster.pl). Initial check-in (clustermonitor.pl).[toolbin/localcluster/clustermonitor.pl toolbin/localcluster/clustermaster.pl toolbin/localcluster/build.pl toolbin/localcluster/run.pl toolbin/localcluster/compare.pl]
2009-10-21T01:11:47.945166Z Marcos H. Woehrmann
Perform rsync based on checksum, not mod-time & size.[toolbin/localcluster/clusterpush.pl]
2009-10-20T23:10:13.904636Z Marcos H. Woehrmann
Modififed clusterpush.pl to print out the rsync status messages (there should probably be a command line option to disable this).[toolbin/localcluster/clusterpush.pl]
2009-10-20T21:28:46.305832Z Marcos H. Woehrmann
Report build failures with more detail.[toolbin/localcluster/clustermaster.pl toolbin/localcluster/readlog.pl toolbin/localcluster/build.pl toolbin/localcluster/run.pl]
2009-10-20T19:17:09.055802Z Hin-Tak Leung
Handles images rotated by 90/-90/180 degree as high level object. This change implement rotated image as a high-level object by emitting a PXL rotation intruction, draw the image with rotated user co-ordinate, then the reverse PXL rotation. Fixes bug 690733.[base/gdevpx.c]
2009-10-20T16:53:11.304991Z Robin Watts
Fix for bug 690805. If a dash pattern exactly fits into the path to be stroked, a 0 length dash note is emitted, with (0,0) tangents. This causes an extra cap to be put on the path when rendering, causing stray marks. The fix is to recognise the case when we are about to emit a dash note with no useful information in the note (i.e. if udx and udy are 0, then don't emit the dash note). This leaves the renderer free to make it's own decision. Examination of the bitmaps shows that all the differences are in fact improvements. The following files are identified by the localcluster as being differences, but no differences are found in local testing: tests_private/pcl/pcl5efts/fts.1140.pdf.pkmraw.600.0 pcl i7 i7 tests_private/pcl/pcl5efts/fts.1140.pdf.ppmraw.600.0 pcl i7 imac tests_private/pcl/pcl5efts/fts.1140.pdf.ppmraw.75.0 pcl macpro macpro tests_private/pcl/pcl5efts/fts.2380.pdf.ppmraw.600.0 pcl macpro i7 tests_private/ps/ps3cet/09-36.PS.pbmraw.300.0 gs i7 snow tests_private/ps/ps3cet/09-36.PS.pbmraw.300.1 gs snow i7 tests_private/ps/ps3cet/09-36.PS.pdf.pkmraw.300.0 gs i7a i7 tests_private/ps/ps3cet/09-36.PS.pdf.ppmraw.300.0 gs snow i7a tests_private/ps/ps3cet/09-36.PS.pgmraw.300.0 gs macpro i7a tests_private/ps/ps3cet/09-36.PS.pgmraw.300.1 gs macpro snow tests_private/ps/ps3cet/09-36.PS.pkmraw.300.0 gs i7a i7 tests_private/ps/ps3cet/09-36.PS.pkmraw.300.1 gs i7 WZIM tests_private/ps/ps3cet/09-36.PS.ppmraw.300.0 gs macpro i7 tests_private/ps/ps3cet/09-36.PS.ppmraw.300.1 gs i7 i7a tests_private/ps/ps3cet/11-21.PS.pbmraw.300.0 gs i7a i7 tests_private/ps/ps3cet/11-21.PS.pbmraw.300.1 gs i7 i7a tests_private/ps/ps3cet/11-21.PS.pdf.pkmraw.300.0 gs snow snow tests_private/ps/ps3cet/11-21.PS.pdf.ppmraw.300.0 gs i7 i7 tests_private/ps/ps3cet/11-21.PS.pgmraw.300.0 gs macpro i7a tests_private/ps/ps3cet/11-21.PS.pgmraw.300.1 gs i7 snow tests_private/ps/ps3cet/11-21.PS.pkmraw.300.0 gs i7 i7a tests_private/ps/ps3cet/11-21.PS.pkmraw.300.1 gs macpro WZIM tests_private/ps/ps3cet/11-21.PS.ppmraw.300.0 gs macpro i7a tests_private/ps/ps3cet/11-21.PS.ppmraw.300.1 gs macpro macpro tests_private/ps/ps3cet/11-28.PS.pbmraw.300.0 gs i7 i7a tests_private/ps/ps3cet/11-28.PS.pbmraw.300.1 gs snow snow tests_private/ps/ps3cet/11-28.PS.pdf.pkmraw.300.0 gs i7 macpro tests_private/ps/ps3cet/11-28.PS.pdf.ppmraw.300.0 gs i7a snow tests_private/ps/ps3cet/11-28.PS.pgmraw.300.0 gs i7a i7 tests_private/ps/ps3cet/11-28.PS.pgmraw.300.1 gs i7a macpro tests_private/ps/ps3cet/11-28.PS.pkmraw.300.0 gs snow macpro tests_private/ps/ps3cet/11-28.PS.pkmraw.300.1 gs i7 snow tests_private/ps/ps3cet/11-28.PS.ppmraw.300.0 gs macpro i7 tests_private/ps/ps3cet/11-28.PS.ppmraw.300.1 gs macpro i7 tests_private/xps/xpsfts-a4/fts_43xx.xps.bitrgb.72.0 xps macpro imac[base/gxpdash.c]
2009-10-20T16:18:29.688093Z Robin Watts
Simple .bmp image differ/slicer, for use with htmldiff.pl.[toolbin/bmpcmp.c]
2009-10-20T16:13:56.684584Z Robin Watts
Simple perl script to produce html+images from regression lists as produced by localcluster regression tests.[toolbin/htmldiff.pl]
2009-10-20T07:59:42.576899Z Ken Sharp
Fix (ps2write) : Allow use of /Indexed colour spaces in PostScript output. Details Although opdfread.ps has always contained code to handle /Indexed colour spaces, ps2write has never emitted any. This is because it is always executed with a PDF CompatabilityLevel of 1.2, and PDF 1.2 doesn't support Indexed colour spaces. PostScript, however, does and it seems unreasonable to deny the use of these spaces when we are emitting PostScript. This code checks to see if we are emitting PostScript when comparing the compatibility level to see if Indexed spaces are allowed, and permits /Indexed for PostScript. This change did, however, expose a number of flaws in the opdfread code when handling Indexed spaces. These are all due to the fact that an Indexed space can use an existing space as its base, and this can lead to multiple attempts to resolve or flatten the underlying space. FunctionToProc is altered to check it has been passed a function dictionary to convert and to ignore the operation if not. SubstitutePDFColorSpace allows for CIEBasedA and CIEBasedABC spaces, which may be the result of a prior substitution. ResolveArrayElement checks the element to see if it is passed a procedure containing an integer followed by a procedure, before executing the procedure. This is because a colour space which has already been resolved may have a procedural look up and executing that disturbs the stack. DecodeArrays generated an incorrect Decode array for Indexed colour spaces.[base/gdevpdfc.c Resource/Init/opdfread.ps]
2009-10-19T20:24:53.770533Z Ralph Giles
Print a warning when invoking the 'so' unix makefile targets from pmake. Details: The make included in freebsd 7.0 appears to have trouble matching or collapsing target paths of the form ./bin/../sobin/gsc as GSSOC_XENAME expands to in the recursive shared build make invocation. GNU make works fine on the same platform. Note that we use the @ prefix to hide the command output, which may also be a gmake-ism, but it works on freebsd 7.0.[base/unix-dll.mak]
2009-10-17T18:59:06.072895Z Alex Cherepanov
Finish implementation of ColorSpace extraction from JPX streams. RGB, Gray, and ICC-based color spaces are extracted and passed to PDF interpreter. Palette colors need no further processing in PDF interpreter because they are expanded on C level. Bug 690207.[Resource/ColorSpace/sGray Resource/ColorSpace/sRGB Resource/Init/pdf_draw.ps]
2009-10-16T14:02:04.066085Z Ken Sharp
Fix (ps2write) : Problems with type 3 fonts causing errors Details Typo in the /NotDef function, used as a /.notdef glyph i type 3 fonts emitted by ps2write. There was a 'o setlinewidth' which should be a '0 setlinewidth'.[Resource/Init/opdfread.ps]
2009-10-16T07:22:24.989326Z Ken Sharp
Fix (ps2write) : Pattern colour spaces broken Details The CheckPattern routine in opdfread.ps insisted that a Pattern should contain a /Type key in the pattern dicitonary and a value of /Pattern. The spec says this key is optional and GS does not write it. This meant that all Pattern colour spaces failed when checked by opdfread, and therefore the output of ps2write did not work. The code now checks if a Type key is present before checking its value, and does not fail if it is not present.[Resource/Init/opdfread.ps]
2009-10-14T09:15:43.246903Z Marcos H. Woehrmann
Initial checkin of script to gather performance data based on revision.[toolbin/performance.pl]
2009-10-13T07:16:32.913558Z Ken Sharp
Fix (ps2write) : Problem with TrueType /.notdef encoding Details Bug #690809 "ps2write problem with some TrueType fonts" When building a CharStrings dictionary, to map from glyph names to GIDs, the code would start by correctly encoding /.notdef at GID 0. However the InverseEncoding path through the code could then re-encode /.notdef at a different GID. This could lead to the file failing to work. Now check the glyph name and, if it is /.notdef, do not re-encode it.[Resource/Init/opdfread.ps]
2009-10-12T02:27:21.732148Z Alex Cherepanov
Add sRGB and a similar one-component color space for the upcoming patch that will extract color space information from JP2 stream. Bug 690207.[Resource/ColorSpace/sGray Resource/ColorSpace/sRGB]
2009-10-08T01:53:10.398646Z Alex Cherepanov
Fix a long-standing bug in ps2ascii conversion that caused concatenation of the lines within a paragraph. Bug 690806.[lib/ps2ascii.ps]
2009-10-06T11:44:51.043694Z Alex Cherepanov
Skip non-PDF files during enumeration of embedded file streams in PDF portfolio. Bug 690422, customer 531.[Resource/Init/pdf_main.ps]
2009-10-06T08:22:42.843465Z Ken Sharp
Fix (pdfwrite) : Undo escapement of PostScript strings when writing XMP metadata for PDF/A Details Bug #690471 "Parantheses escaped in xmp metadata" Technically this is covered in gs/doc/ps2pdf.htm under -sDSCEncoding which states that the default behaviour is simply to copy the data directly to the file with no translation. However it seems unreasonable not to at least undo the PostScript escapement which we must have in order to set the PostScript string and which will cause PDF/A verification failures if we don't. Modified the default case (which does not convert to Unicode) to undo the escapement only.[base/gdevpdfe.c]
2009-10-06T07:33:33.759516Z Ken Sharp
Fix (pdfwrite) : The PDFACompatibilityPolicy switch was being overwritten by PDFA on setpagedevice Details Bug #690803 The PDFA switch is stored in the page device dictionary, and the device member is reset from the stored setting on each setpagedevice. This was defeating the PDFACompatibilityPolicy setting which tried to disable PDF/A production when the input could not be converted to a compliant PDF/A file. Because the PostScript value is subject to save and restore, its all but impossible to alter the PostScript saved value. So added a new device member 'AbortPDFAX' which can only be set from C. This is set when non-compliant input is detected and prevents the emission of (currently) PDF/A file (may add PDF/X in future). It does this by resetting the device PDFA member every time the device parameters are set.[base/gdevpdfm.c base/gdevpdfx.h base/gdevpdfp.c base/gdevpdfb.h]
2009-10-05T16:07:19.389735Z Ralph Giles
Correct typos in the MacOS X linker options. Bug 690783.[base/unix-dll.mak]
2009-10-05T09:27:44.398728Z Ken Sharp
Fix (pdfwrite) : incomplete submission #10124 Details Somehow in the confusion of IP address changes and local cluster regression tests I managed to only commit a partial fix for issue #690767. The missing line of code is in this patch.[base/gdevpdtd.c]
2009-10-05T07:10:40.648039Z Ken Sharp
Fix (pdfwrite) : Improve symbolic font detection Details Bug #690767 "Problems with PDFA" Revision 9944 altered the way that we detect whether a font is symbolic or not. This involved several changes; fixing existing broken code, adding /.notdef detection and attempting to check encoded positions of glyphs before deciding a font was non-symbolic. The encoding position test was incorrect for TrueType fonts, however, leading to some fonts being needlessly declared as symbolic. This patch moves the encoding test to the font descriptor assembly, which is the correct place to test it. While this resolves the customer issue, it is not a complete solution. A truly symbolic TrueType font would still be written as a symbolic font and when creating PDF/A files there are strict limitations on the form of TrueType fonts. In particular they must only contain a single CMAP table. Because we do not completely generate TrueType fonts for embedding, but copy some tables, we cannot meet this restriction. This will continue to be a potential problem until the TrueType font embedding code is rewritten properly.[base/gdevpdtd.c base/gdevpdtw.c base/gdevpdtd.h]
2009-10-05T01:37:52.593906Z Alex Cherepanov
Fix incorrect calculation of the page size in cljet5 driver that returned the size in inches instead of points causing /rangecheck in .installpagedevice . Bug 690799, customer 870.[base/gdevclj.c]
2009-10-04T12:42:07.575694Z Alex Cherepanov
Fix SEGV caused by unknown %device% prefix. Add missing check for return code during lib path parsing. Thanks to Piotr Strzelczyk for the patch. Bug 690800.[psi/zfile.c]
2009-10-03T16:41:07.412223Z Alex Cherepanov
Silently ignore point displacement request when the point number is out of valid range. This patch has been backported from FreeType2. Bug 690795.[base/ttinterp.c]
2009-10-02T23:59:45.611838Z Marcos H. Woehrmann
Lots of general code cleanup. Fixed termination of long jobs on some systems. Added explicit detection of seg faults with pdfwrite.[toolbin/localcluster/clustermaster.pl toolbin/localcluster/readlog.pl toolbin/localcluster/build.pl toolbin/localcluster/run.pl toolbin/localcluster/compare.pl]
2009-10-02T22:34:36.678844Z Ralph Giles
Update the Adobe-CNS1 CMap resource to supplement 6.[Resource/CMap/Adobe-CNS1-6 Resource/CMap/ETHK-B5-V Resource/CMap/HKscs-B5-V Resource/CMap/UniCNS-UTF32-V Resource/CMap/ETHK-B5-H Resource/CMap/HKscs-B5-H Resource/CMap/UniCNS-UTF16-V Resource/CMap/UniCNS-UTF32-H Resource/CMap/UniCNS-UTF8-V Resource/CMap/UniCNS-UTF16-H Resource/CMap/UniCNS-UTF8-H]
2009-10-01T14:27:36.870724Z Ray Johnston
Fix for segfault when peekstring requests more data than remains in a %rom% file. Bug 690697. DETAILS: The EOFC was not being set correctly, so a subsequent operation would have cursor.r values that were invalid. Refer to the invariant in the documentation in stream.h for the stream_s structure: s->position represents the stream position as of the beginning of the buffer, so the current position is s->position + (s->srptr + 1 - s->cbuf). Note that we must not return EOFC when reading exactly the remaining number of bytes in a file since this will result in the stream being closed. PCL relies on the stream remaining open after reading the number of bytes in the file.[base/gsiorom.c]
2009-10-01T03:28:46.061833Z Marcos H. Woehrmann
Clusterpush.pl now tests all languages. Added error checking to builds. Disabled pgmraw testing for xps.[toolbin/localcluster/splitjobs.pl toolbin/localcluster/clustermaster.pl toolbin/localcluster/readlog.pl toolbin/localcluster/build.pl toolbin/localcluster/run.pl]
2009-10-01T01:22:52.434995Z Masaki Ushizaka
A quick dirty hack to enable reading of wts plane files (wts_plane_x) on 64 bit machines. Wts plane files contain a image of little endian 32 bit specific structure with a pointer, and was preventing wtsimdi device to run on 64 bit machines. Tested on little endian 32 and 64 bit machines. Should not change anything on 32 bit machines with current wts plane files. Hope to work on big endian machines but not tested. Bug #690710.[base/gswts.c]
2009-09-30T00:56:07.061280Z Marcos H. Woehrmann
First cut at a working clusterpush.pl (complete with documentation!).[toolbin/localcluster/clustermaster.pl toolbin/localcluster/clusterpush.pl toolbin/localcluster/clusterpush.txt]
2009-09-29T00:18:30.610000Z Alex Cherepanov
Force out-of-range values of color mask to the valid range by calculating bitwise 'and' with the maximum color value. Experiments show that this is what AR does. Earlier code mapped out-of-range values to the nearest valid value. Bug 690786, customer 531.[Resource/Init/pdf_draw.ps]
2009-09-28T22:07:08.267973Z Alex Cherepanov
Draw a smooth curve through the points of Ink annotation. The algorithm Adobe uses is unpublished but our curve is close enough to Adobe when the points follow a smooth path. For random points the curve is different but looks more logical than Adobe's. Bug 690758, customer 580.[psi/int.mak Resource/Init/pdf_draw.ps psi/zpdfops.c]
2009-09-28T18:40:49.994854Z Ralph Giles
Fix some broken documentation links. Bug 690787.[doc/Develop.htm doc/Commprod.htm]
2009-09-28T17:16:24.723655Z Ralph Giles
Also set the correct media type on the documenation style sheet.[doc/gs.css]
2009-09-28T17:14:43.100223Z Ralph Giles
Set a text/html media type on the html documentation so it can be served directly out of svn.[doc/History7.htm doc/Projects.htm doc/History8.htm doc/Use.htm doc/Readme.htm doc/Deprecated.htm doc/Source.htm doc/Install.htm doc/Changes.htm doc/API.htm doc/Issues.htm doc/DLL.htm doc/Drivers.htm doc/Commprod.htm doc/Release.htm doc/Xfonts.htm doc/Devices.htm doc/Language.htm doc/Ps2ps2.htm doc/Fonts.htm doc/Develop.htm doc/Ps2pdf.htm doc/Helpers.htm doc/Psfiles.htm doc/Lib.htm doc/Hershey.htm doc/News.htm doc/Details8.htm doc/Make.htm doc/Unix-lpr.htm doc/C-style.htm doc/Ps-style.htm doc/History1.htm doc/History2.htm doc/index.html doc/History3.htm doc/Ps2epsi.htm doc/History4.htm doc/Details.htm doc/History5.htm doc/History6.htm]
2009-09-28T12:28:27.246472Z Alex Cherepanov
Fix line endings and a corresponding file attribute in a recently added file.[psi/zpdfops.c]
2009-09-28T05:30:56.923097Z Marcos H. Woehrmann
Added clusterpush.pl.[toolbin/localcluster/clustermaster.pl toolbin/localcluster/clusterpull.sh toolbin/localcluster/build.pl toolbin/localcluster/clusterpush.pl toolbin/localcluster/run.pl toolbin/localcluster/compare.pl]
2009-09-26T05:34:48.796753Z Ralph Giles
Revert the change to EOF handling in the romfs iodevice. It fixed the segfault, but broken compiled-in font access on PCL. Bug 690697.[base/gsiorom.c]
2009-09-25T23:16:42.622069Z Ralph Giles
Improve EOF detection with the romfs iodevice. Fixes a segfault loading shorter resources. Patch from Alex Cherepanov, bug 690697. Details: Resources are loaded using the --run-- operator, which looks into the first 1023 bytes of the file to check for PDF, etc. It calls .peekstring which uses s->end_status to detect the end of the file, but s_block_read_process() didn't set it, allowing repeated reading of the same block and the file position to run off the end of the buffer. This was the cause of the segfault. We now use '>=' instead of '==' when checking the file position to avoid the overrun, and raise the EOF flag when the last block of the file is read. This can be done because the whole block is always decompressed and copied to the stream buffer.[base/gsiorom.c]
2009-09-25T14:55:13.694603Z Ken Sharp
Fix (pdfwrite) : Remove limit on images in patterns when creating later versions of PDF Details There was a fixed limit of 64Kb on images used by Pattern colour spaces in early versions of Acrobat (presumably using a string for storage). This limit does not apply from Acrobat 5 onwards so the size test has been amended to also consider the version of PDF being produced before raising an error.[base/gdevpdfv.c]
2009-09-25T14:19:13.610976Z Ray Johnston
Fix for transparency problem, caused by the alpha parameters in the ExtGState in the PDF interpreter (dictstack) not being maintained properly. Bug 690770 for customer #1110. Thanks to Michael Vrhel for analyzing the PDF to find the area that the PDF interpreter was mishandling. DETAILS: The ExtGState is kept as values in the dictionaries on the dictstack and are sent to the graphics library as needed using '.set***alpha' operators. The CA and ca values were properly set to 1 in the graphics library when the Do operator was used to execute Form or Image objects, but the corresponding FillConstantAlpha and StrokeConstantAlpha values were not being set in the ExtGState so any operations in a Form that set the values in the graphics library from the ***ConstantAlpha values in the ExtGState could set them to incorrect values.[Resource/Init/pdf_draw.ps]
2009-09-25T09:12:10.671327Z Ken Sharp
Fix (pdfwrite) : Stricter checking when converting type 4 to type 1 masked image Details Bug #690704 "Regression: seg fault with pdfwrite" pdfwrite was performing an optimisation to convert type 4 masked images, which are only supported in PDF 1.3 and above, into type 1 masked images which are supported in all versions. However the test was faulty, assuming that a one bit per component image was always suitable. If the image had multiple components the result was incorrect and when the input was from PCL could lead to errors.[base/gdevpdfi.c]
2009-09-25T01:29:07.733105Z Ralph Giles
Update the CMap resources with the new, open source versions of the files for the Identity, Adobe-CNS1, Adobe-GB1, Adobe-Japan1, Adobe-Japan2 and Adobe-Korea1 CMap resources. Aside from the copyright and license header change and a bump to the minor CMapVersion field, these versions incorporate the following changes over our previous set of CMap resources: Identity-H has many new ranges, UniGB-UTF8-H bumped to supplement 5, UniGB-UTF16-H bumped to supplement 5, UniGB-UTF32-H has some character updates. These are still copyright Adobe, but now allow modification and require attribution on binaries. Previously they were licensed only for verbatim redistribution.[Resource/CMap/78-H Resource/CMap/Hojo-H Resource/CMap/UniHojo-UCS2-V Resource/CMap/90pv-RKSJ-H Resource/CMap/CNS2-H Resource/CMap/RKSJ-H Resource/CMap/78-V Resource/CMap/KSCpc-EUC-H Resource/CMap/Hojo-V Resource/CMap/90pv-RKSJ-V Resource/CMap/CNS2-V Resource/CMap/Hiragana Resource/CMap/GBT-EUC-H Resource/CMap/Roman Resource/CMap/RKSJ-V Resource/CMap/HKdlb-B5-H Resource/CMap/UniKS-UTF32-H Resource/CMap/KSCpc-EUC-V Resource/CMap/UniHojo-UTF8-H Resource/CMap/Adobe-Korea1-0 Resource/CMap/UniKS-UCS2-H Resource/CMap/Adobe-Korea1-1 Resource/CMap/Adobe-Korea1-2 Resource/CMap/GBT-EUC-V Resource/CMap/78-RKSJ-H Resource/CMap/UniJISX02132004-UTF32-H Resource/CMap/HKdlb-B5-V Resource/CMap/HKgccs-B5-H Resource/CMap/83pv-RKSJ-H Resource/CMap/UniKS-UTF32-V Resource/CMap/UniJIS2004-UTF16-H Resource/CMap/EUC-H Resource/CMap/UniHojo-UTF32-H Resource/CMap/UniHojo-UTF8-V Resource/CMap/UniGB-UCS2-H Resource/CMap/HKscs-B5-H Resource/CMap/HKm471-B5-H Resource/CMap/90msp-RKSJ-H Resource/CMap/UniKS-UCS2-V Resource/CMap/78-RKSJ-V Resource/CMap/HKgccs-B5-V Resource/CMap/UniJISX02132004-UTF32-V Resource/CMap/GBpc-EUC-H Resource/CMap/Add-H Resource/CMap/UniJIS2004-UTF16-V Resource/CMap/Adobe-GB1-0 Resource/CMap/B5pc-H Resource/CMap/KSC-EUC-H Resource/CMap/Adobe-GB1-1 Resource/CMap/EUC-V Resource/CMap/UniHojo-UTF32-V Resource/CMap/Adobe-GB1-2 Resource/CMap/Adobe-GB1-3 Resource/CMap/UniGB-UCS2-V Resource/CMap/HKscs-B5-V Resource/CMap/HKm471-B5-V Resource/CMap/Adobe-GB1-4 Resource/CMap/90msp-RKSJ-V Resource/CMap/Adobe-GB1-5 Resource/CMap/UniCNS-UTF32-H Resource/CMap/GBpc-EUC-V Resource/CMap/Add-V Resource/CMap/B5pc-V Resource/CMap/Ext-RKSJ-H Resource/CMap/KSC-EUC-V Resource/CMap/Hojo-EUC-H Resource/CMap/UniJISPro-UCS2-V Resource/CMap/GBT-H Resource/CMap/UniKS-UTF8-H Resource/CMap/GBK-EUC-H Resource/CMap/UniCNS-UTF32-V Resource/CMap/Ext-RKSJ-V Resource/CMap/Hojo-EUC-V Resource/CMap/UniGB-UTF8-H Resource/CMap/Adobe-Japan1-0 Resource/CMap/GBT-V Resource/CMap/UniKS-UTF8-V Resource/CMap/UniJIS2004-UTF8-H Resource/CMap/Adobe-Japan1-1 Resource/CMap/GBK-EUC-V Resource/CMap/UniKS-UTF16-H Resource/CMap/Adobe-Japan1-2 Resource/CMap/Adobe-Japan1-3 Resource/CMap/Adobe-Japan1-4 Resource/CMap/Adobe-Japan1-5 Resource/CMap/90ms-RKSJ-H Resource/CMap/Adobe-Japan1-6 Resource/CMap/UniJIS-UTF32-H Resource/CMap/GB-EUC-H Resource/CMap/H Resource/CMap/UniGB-UTF8-V Resource/CMap/B5-H Resource/CMap/UniJIS2004-UTF8-V Resource/CMap/UniKS-UTF16-V Resource/CMap/UniJIS-UCS2-H Resource/CMap/90ms-RKSJ-V Resource/CMap/UniHojo-UTF16-H Resource/CMap/V Resource/CMap/UniJIS-UTF32-V Resource/CMap/GB-EUC-V Resource/CMap/KSC-H Resource/CMap/UniJISPro-UTF8-V Resource/CMap/B5-V Resource/CMap/Katakana Resource/CMap/HKdla-B5-H Resource/CMap/UniJIS-UCS2-V Resource/CMap/Identity-H Resource/CMap/UniHojo-UTF16-V Resource/CMap/GBKp-EUC-H Resource/CMap/KSC-V Resource/CMap/GBK2K-H Resource/CMap/UniCNS-UTF16-H Resource/CMap/UniGB-UTF32-H Resource/CMap/HKdla-B5-V Resource/CMap/Identity-V Resource/CMap/UniCNS-UCS2-H Resource/CMap/GBKp-EUC-V Resource/CMap/GBK2K-V Resource/CMap/UniCNS-UTF16-V Resource/CMap/UniGB-UTF32-V Resource/CMap/Adobe-CNS1-0 Resource/CMap/UniJIS-UTF8-H Resource/CMap/Adobe-CNS1-1 Resource/CMap/Adobe-CNS1-2 Resource/CMap/Adobe-CNS1-3 Resource/CMap/UniCNS-UCS2-V Resource/CMap/Adobe-CNS1-4 Resource/CMap/GB-H Resource/CMap/Adobe-CNS1-5 Resource/CMap/Adobe-Japan2-0 Resource/CMap/KSCms-UHC-H Resource/CMap/Add-RKSJ-H Resource/CMap/UniJISX0213-UTF32-H Resource/CMap/UniJIS-UTF8-V Resource/CMap/UniJIS-UTF16-H Resource/CMap/GB-V Resource/CMap/KSCms-UHC-HW-H Resource/CMap/KSCms-UHC-V Resource/CMap/HKm314-B5-H Resource/CMap/Add-RKSJ-V Resource/CMap/UniJISX0213-UTF32-V Resource/CMap/UniJIS-UTF16-V Resource/CMap/UniCNS-UTF8-H Resource/CMap/KSCms-UHC-HW-V Resource/CMap/UniJIS-UCS2-HW-H Resource/CMap/HKm314-B5-V Resource/CMap/Hankaku Resource/CMap/ETen-B5-H Resource/CMap/ETenms-B5-H Resource/CMap/UniCNS-UTF8-V Resource/CMap/NWP-H Resource/CMap/CNS1-H Resource/CMap/WP-Symbol Resource/CMap/UniJIS-UCS2-HW-V Resource/CMap/UniGB-UTF16-H Resource/CMap/78-EUC-H Resource/CMap/ETen-B5-V Resource/CMap/ETenms-B5-V Resource/CMap/NWP-V Resource/CMap/CNS1-V Resource/CMap/UniGB-UTF16-V Resource/CMap/78-EUC-V Resource/CMap/CNS-EUC-H Resource/CMap/ETHK-B5-H Resource/CMap/Ext-H Resource/CMap/KSC-Johab-H Resource/CMap/78ms-RKSJ-H Resource/CMap/UniJIS2004-UTF32-H Resource/CMap/GBTpc-EUC-H Resource/CMap/CNS-EUC-V Resource/CMap/ETHK-B5-V Resource/CMap/Ext-V Resource/CMap/KSC-Johab-V Resource/CMap/78ms-RKSJ-V Resource/CMap/UniHojo-UCS2-H Resource/CMap/UniJIS2004-UTF32-V Resource/CMap/UniJISPro-UCS2-HW-V Resource/CMap/GBTpc-EUC-V]
2009-09-23T01:42:55.789973Z Alex Cherepanov
Implement rendering of PDF Ink annotation without appearance stream. PDF Spec doesn't say how to connect points in the annotation. This version uses simple lineto operation but Acrobat uses curves for smoother look. Bug 690758, customer 580. DETAILS: The drawing of the line through the given points is implemented in C as a custom operator to facilitate further improvements.[psi/int.mak psi/zpdfops.c Resource/Init/pdf_draw.ps]
2009-09-22T19:19:22.702941Z Marcos H. Woehrmann
Fixed bug in automatic speed tuning of local cluster nodes and modified build process to make use of fixed parallel makefiles.[toolbin/localcluster/clustermaster.pl toolbin/localcluster/run.pl toolbin/localcluster/compare.pl]
2009-09-22T16:53:51.759845Z Marcos H. Woehrmann
Local cluser regression changes: Enabled minimal XPS and SVG testing. Improved error reporting (errors and timeouts are now differentiated as are input errors vs. pdfwrite produced pdf file reading errors.[toolbin/localcluster/clustermaster.pl toolbin/localcluster/readlog.pl toolbin/localcluster/build.pl toolbin/localcluster/compare.pl]
2009-09-21T19:38:30.162606Z Ray Johnston
Correct placement of declaration to allow wts devices to compile on MSVC.[base/gdevwts.c]
2009-09-21T15:10:25.830219Z Ken Sharp
Fix (type 1 parser) : Correct logical flaw in SEAC parsing Details Bug #690720 "Regression: pdfwrite generates bad pdf files from PostScript files" The Type 1 font routine to detect SEAC (Single Encoding Accented Character) glyphs and return the component glyphs, 'gs_type1_piece_codes' made a faulty assumption that a SEAC glyph was purely composed of two components and that any glyph with a path construction operation could not be a SEAC. This restriction is, unfortunately, not documented in the spec. The Genoa test file 16-10.ps includes a font with SEAC glyphs which also contain path construction operations. The failure to properly detect the SEAC was causing pdfwrite not to emit the component glyphs when subsetting fonts, resulting in PDF files containing invalid fonts. Fixing this then revealed that the reduced type 1/type 2 font interpreter used for detecting SEAC glyphs did not properly handle a number of type 2 instructions. This patch also adds support for hstemhm, vstemhm, hintmask and cntrmask. Because we do not have a full featured CFF parser in C yet, it was not possible to add full support for the callgsubr operator (global subroutines are apparently not available to the reduced interpreter). If the relevant gsubr contained the endchar for the glyph, then this causes the interpreter to fail as we cannot process the subr. Since SEAC operations are deprecated in type 2 fonts, and a gsubr completion of a SEAC is extremely unlikely, I've chosen to return when a callgsubr is encountered and treat the glyph as not being a SEAC. This may need to be revised in future.[base/gxtype1.c]
2009-09-19T17:17:32.098742Z Marcos H. Woehrmann
Normalize machine times so the fastest machine is 1 rather than the average machine.[toolbin/localcluster/clustermaster.pl]
2009-09-19T02:22:31.474412Z Marcos H. Woehrmann
Added the machine name to log output and check for matching md5sum in last N regression runs (to try to deal with indeterminisms).[toolbin/localcluster/clustermaster.pl toolbin/localcluster/readlog.pl toolbin/localcluster/build.pl toolbin/localcluster/compare.pl]
2009-09-18T23:07:41.949391Z Ralph Giles
Remove an unncessary keyword substitution flags from the Adobe CMaps. These files don't have an RCS/SVN version header, so the substitution could only cause problems. In the case of the two Identity-UTF16 CMap files which are owned by Artifex and do have version headers, I've reduced the substitutions to just the 'Id' keyword to match the rest of the source.[Resource/CMap/78-H Resource/CMap/GB-RKSJ-H Resource/CMap/Hojo-H Resource/CMap/CNS06-RKSJ-H Resource/CMap/Adobe-Japan1-90pv-RKSJ Resource/CMap/Adobe-CNS1-UCS2 Resource/CMap/GBK-EUC-UCS2 Resource/CMap/UniHojo-UCS2-V Resource/CMap/CNS2-H Resource/CMap/90pv-RKSJ-H Resource/CMap/Adobe-Japan1-UCS2 Resource/CMap/RKSJ-H Resource/CMap/78-V Resource/CMap/Hojo-V Resource/CMap/KSCpc-EUC-H Resource/CMap/TCVN-RKSJ-H Resource/CMap/90pv-RKSJ-V Resource/CMap/CNS2-V Resource/CMap/UCS2-ETen-B5 Resource/CMap/Hiragana Resource/CMap/GBT-EUC-H Resource/CMap/Roman Resource/CMap/RKSJ-V Resource/CMap/HKdlb-B5-H Resource/CMap/KSCpc-EUC-V Resource/CMap/Adobe-Japan1-H-Host Resource/CMap/UniHojo-UTF8-H Resource/CMap/CNS05-RKSJ-H Resource/CMap/CNS15-RKSJ-H Resource/CMap/UCS2-GBK-EUC Resource/CMap/Adobe-Korea1-0 Resource/CMap/Adobe-Korea1-1 Resource/CMap/GBT-EUC-V Resource/CMap/Adobe-Korea1-2 Resource/CMap/78-RKSJ-H Resource/CMap/HKdlb-B5-V Resource/CMap/HKgccs-B5-H Resource/CMap/83pv-RKSJ-H Resource/CMap/KSC2-RKSJ-H Resource/CMap/Adobe-CNS1-H-Mac Resource/CMap/EUC-H Resource/CMap/UniHojo-UTF32-H Resource/CMap/UniHojo-UTF8-V Resource/CMap/Adobe-CNS1-B5pc Resource/CMap/UniGB-UCS2-H Resource/CMap/90msp-RKSJ-H Resource/CMap/Adobe-GB1-GBpc-EUC Resource/CMap/Adobe-Japan1-H-CID Resource/CMap/HKm471-B5-H Resource/CMap/HKscs-B5-H Resource/CMap/GBT-RKSJ-H Resource/CMap/78-RKSJ-V Resource/CMap/ETen-B5-UCS2 Resource/CMap/HKgccs-B5-V Resource/CMap/UCS2-90ms-RKSJ Resource/CMap/GBpc-EUC-H Resource/CMap/Add-H Resource/CMap/B5pc-H Resource/CMap/Adobe-GB1-0 Resource/CMap/EUC-V Resource/CMap/Adobe-GB1-1 Resource/CMap/KSC-EUC-H Resource/CMap/UniHojo-UTF32-V Resource/CMap/Adobe-GB1-2 Resource/CMap/UniGB-UCS2-V Resource/CMap/Adobe-GB1-3 Resource/CMap/HKscs-B5-V Resource/CMap/HKm471-B5-V Resource/CMap/Adobe-GB1-4 Resource/CMap/90msp-RKSJ-V Resource/CMap/90pv-RKSJ-UCS2C Resource/CMap/Adobe-GB1-5 Resource/CMap/CNS04-RKSJ-H Resource/CMap/UniCNS-UTF32-H Resource/CMap/GBpc-EUC-V Resource/CMap/KSCpc-EUC-UCS2C Resource/CMap/Add-V Resource/CMap/B5pc-V Resource/CMap/Ext-RKSJ-H Resource/CMap/KSC-EUC-V Resource/CMap/Hojo-EUC-H Resource/CMap/UCS2-GBpc-EUC Resource/CMap/GBT-H Resource/CMap/GBK-EUC-H Resource/CMap/UniCNS-UTF32-V Resource/CMap/UCS2-B5pc Resource/CMap/Adobe-GB1-H-Mac Resource/CMap/KSCms-UHC-UCS2 Resource/CMap/Ext-RKSJ-V Resource/CMap/Hojo-EUC-V Resource/CMap/UniGB-UTF8-H Resource/CMap/UCS2-90pv-RKSJ Resource/CMap/Adobe-Japan1-0 Resource/CMap/GBT-V Resource/CMap/Adobe-Japan1-1 Resource/CMap/GBK-EUC-V Resource/CMap/Adobe-Japan1-2 Resource/CMap/Adobe-GB1-H-Host Resource/CMap/Adobe-Japan1-3 Resource/CMap/CNS03-RKSJ-H Resource/CMap/Adobe-Japan1-4 Resource/CMap/Adobe-Japan1-5 Resource/CMap/90ms-RKSJ-H Resource/CMap/Adobe-Japan1-6 Resource/CMap/Adobe-Korea1-KSCms-UHC Resource/CMap/UCS2-KSCpc-EUC Resource/CMap/Adobe-Japan1-PS-H Resource/CMap/GB-EUC-H Resource/CMap/H Resource/CMap/UniGB-UTF8-V Resource/CMap/B5-H Resource/CMap/Adobe-GB1-GBK-EUC Resource/CMap/Adobe-CNS1-H-CID Resource/CMap/90ms-RKSJ-V Resource/CMap/GBpc-EUC-UCS2C Resource/CMap/UniHojo-UTF16-H Resource/CMap/B5pc-UCS2 Resource/CMap/KSC-H Resource/CMap/Adobe-Japan1-PS-V Resource/CMap/GB-EUC-V Resource/CMap/B5pc-UCS2C Resource/CMap/Adobe-CNS1-ETenms-B5 Resource/CMap/B5-V Resource/CMap/Katakana Resource/CMap/HKdla-B5-H Resource/CMap/Identity-H Resource/CMap/UniHojo-UTF16-V Resource/CMap/CNS02-RKSJ-H Resource/CMap/GBKp-EUC-H Resource/CMap/KSC-V Resource/CMap/GBK2K-H Resource/CMap/UniCNS-UTF16-H Resource/CMap/HKdla-B5-V Resource/CMap/UniGB-UTF32-H Resource/CMap/Adobe-GB1-UCS2 Resource/CMap/Identity-V Resource/CMap/UniCNS-UCS2-H Resource/CMap/GBKp-EUC-V Resource/CMap/GBK2K-V Resource/CMap/Adobe-GB1-H-CID Resource/CMap/UniCNS-UTF16-V Resource/CMap/UniGB-UTF32-V Resource/CMap/Adobe-CNS1-0 Resource/CMap/Adobe-CNS1-1 Resource/CMap/Adobe-CNS1-2 Resource/CMap/Adobe-CNS1-H-Host Resource/CMap/Adobe-CNS1-3 Resource/CMap/UniCNS-UCS2-V Resource/CMap/GB-H Resource/CMap/Adobe-CNS1-4 Resource/CMap/Adobe-CNS1-5 Resource/CMap/CNS01-RKSJ-H Resource/CMap/Adobe-Japan2-0 Resource/CMap/KSCms-UHC-H Resource/CMap/Add-RKSJ-H Resource/CMap/GB-V Resource/CMap/KSCms-UHC-HW-H Resource/CMap/HKm314-B5-H Resource/CMap/KSCms-UHC-V Resource/CMap/Add-RKSJ-V Resource/CMap/UniCNS-UTF8-H Resource/CMap/KSCms-UHC-HW-V Resource/CMap/Adobe-Korea1-H-Mac Resource/CMap/HKm314-B5-V Resource/CMap/90pv-RKSJ-UCS2 Resource/CMap/Hankaku Resource/CMap/ETenms-B5-H Resource/CMap/ETen-B5-H Resource/CMap/UniCNS-UTF8-V Resource/CMap/KSCpc-EUC-UCS2 Resource/CMap/CNS1-H Resource/CMap/NWP-H Resource/CMap/Hojo-RKSJ-H Resource/CMap/UniGB-UTF16-H Resource/CMap/78-EUC-H Resource/CMap/ETenms-B5-V Resource/CMap/ETen-B5-V Resource/CMap/Adobe-Korea1-UCS2 Resource/CMap/Adobe-Korea1-KSCpc-EUC Resource/CMap/CNS1-V Resource/CMap/NWP-V Resource/CMap/90ms-RKSJ-UCS2 Resource/CMap/UniGB-UTF16-V Resource/CMap/78-EUC-V Resource/CMap/KSC-RKSJ-H Resource/CMap/Adobe-Japan1-90ms-RKSJ Resource/CMap/CNS-EUC-H Resource/CMap/ETHK-B5-H Resource/CMap/Ext-H Resource/CMap/CNS07-RKSJ-H Resource/CMap/KSC-Johab-H Resource/CMap/Adobe-Korea1-H-Host Resource/CMap/78ms-RKSJ-H Resource/CMap/GBTpc-EUC-H Resource/CMap/HK-RKSJ-H Resource/CMap/GBpc-EUC-UCS2 Resource/CMap/CNS-EUC-V Resource/CMap/ETHK-B5-V Resource/CMap/Ext-V Resource/CMap/KSC-Johab-V Resource/CMap/Adobe-Japan1-H-Mac Resource/CMap/UCS2-KSCms-UHC Resource/CMap/78ms-RKSJ-V Resource/CMap/UniHojo-UCS2-H Resource/CMap/GBTpc-EUC-V Resource/CMap/Adobe-Korea1-H-CID]
2009-09-18T23:01:07.032292Z Ralph Giles
Remove spurious executable bits on Adobe CMap files.[Resource/CMap/Adobe-GB1-4 Resource/CMap/Adobe-Japan1-4 Resource/CMap/Adobe-Korea1-2 Resource/CMap/Adobe-CNS1-3]
2009-09-17T16:25:00.274251Z Henry Stiles
Fixes 690719 and many other unreported issues associated with the wtsimdi device. The default strip_copy_rop musn't be used, the clist code will constant fold raster operations before determining if a contone buffer is needed to render the band, the same optimizations must be used when the clist is being played back and rendered, the default strip_copy_rop does not (by design) have these optimizations. I don't know the intent of the cryptic comment above the section where the procedure override occurred. There are too many problems with the wtsimdi device to enumerate code test file differences of the change, preliminary visual testing of the wtsimdi device output is needed first.[base/gdevwts.c]
2009-09-17T02:36:44.475667Z Marcos H. Woehrmann
Added a very quick and dirty hack to look for the link.icc and wts_plane_[0..3] files in /usr/local/lib/ghostscript if they cannot be found in the current directory.[base/gdevwts.c]
2009-09-14T20:07:32.166692Z Alex Cherepanov
Fix a botched pointer comparison which fails if the pointer difference overflows the signed integer range. Patch from Mark Davies with changes. Bug 689711.[base/gscencs.c]
2009-09-12T17:00:10.219852Z Marcos H. Woehrmann
Fixed typo in comment that was generating groff warning.[psi/zfunc.c]
2009-09-10T17:41:10.637172Z Ralph Giles
Add gc enumeration to the two string members of the svgwrite device structure. Fixes a segfault with large input sets. Bug 690757. Note that this requires a new suffix enumerator macro, since the two strings case wasn't previously covered.[base/gsstruct.h base/gdevsvg.c]
2009-09-10T01:13:48.915848Z Ralph Giles
Call paperinit() and paperdone() when using the libpaper api calls as apparently required by the API. However, these calls do nothing in the current libpaper implementation (version 1.1.23). Also, return the name given by defaultpapername() if systempapername() does not return a result. This is an indicated path in the libpaper documentation and example code, although again, the the 1.1.23 implementation calls defaultpapername() from systempapername() as the fallback.[base/gp_upapr.c]
2009-09-09T22:17:51.567693Z Michael Vrhel
Fix for bug 690534. DETAILS: We now handle the softmask BC entry properly. This background color is to be composited with the drawings into the softmask. We now properly initialize the softmask buffer to have this compositing occur. If we are outside the softmask bounding box then the luminance of the background color is used as the softmask value. This fixes several rendering issues. DIFFERENCES EXPECTED: Bug690027.pdf PROGRESSION Bug688807.pdf PROGRESSION Bug690170a.pdf PROGRESSION Bug690170.pdf PROGRESSION Bug690022.pdf I would like a second opion on this one. It looks like there may be a minor regression. I am doing the commit anyway due to the large number of progressions with this fix.[base/gdevp14.c base/gxblend1.c]
2009-09-09T06:21:02.373936Z Michael Vrhel
A fix for the rendering issue that occurred with bug 689581 after fixing the rangecheck error. This should fix 689581. DETAILS: The rendering problem is evident when rendering the simplified file in 689581. When going to a sep device, the softmask gray scale image is encoded using the compressed encoding function defined for the pdf14_CMYKspot_procs pdf14 device. The decoder for the CMYKspot device is set to cmykspot_pdf14_procs. Unfortunately, when the color procs are set for the softmask decode (based upon the softmask CMYK color space) the decoder was set to cmyk_pdf14_procs which resulted in an improper decode of the color values for the softmask. The fix is to detect the presence of the separation case and make sure that the decoding procs are assigned appropriately. DIFFERENCES EXPECTED: None in the normal regression tests. There could be some differences with sep devices when processing softmasks.[base/gdevp14.c]
2009-09-09T01:25:59.649343Z Alex Cherepanov
Skip everything before 'begincodespacerange' in regulat CMap stream to avoid PostScript errors in CMap headers. PDF interpreter doesn't need any data from the header. See rev. 9240 for the bug 689842 that did the same for ToUnicode CMap files. Bug 690737, customer 580.[Resource/Init/pdf_font.ps]
2009-09-08T22:54:10.281044Z Michael Vrhel
Change to avoid having a rangecheck error occur when the softmask group colorspace is a pattern. This keeps us from having the error occur with bug 689581 however there is still a rendering issue when we go to a sep device. I have that narrowed down and hopefully will have fixed soon. DIFFERENCES EXPECTED None on the regression files.[base/gstrans.c]
2009-09-08T17:58:20.444720Z Michael Vrhel
Removal of line that had the custom pdf14 prototype device used as the initial device for the CMYKSpot pdf14 device. DIFERENCES EXPECTED: None.[base/gdevp14.c]
2009-09-07T20:25:11.850252Z Ralph Giles
Restore -dynamiclib to the MacOS framework build line. I though the LDFLAGS_SO in unix-dll.mak would provide this in the previous commit, but they do not. Also rationalize the use use of SOPREF in macos-fw.mak.[base/macos-fw.mak]
2009-09-07T20:10:46.938357Z Ralph Giles
Move the value passed to -install_name for the framework build into unix-dll.mak to avoid also passing it when trying to link the client where it conflicts.[base/macos-fw.mak base/unix-dll.mak]
2009-09-07T19:51:20.071990Z Ralph Giles
Also update header source directories in the framework build.[base/macos-fw.mak]
2009-09-07T19:13:21.625118Z Ralph Giles
Update the path to dxmain.c in the MacOS framework build. This was omitted during the source tree split, when dxmain.c moved into psi/. Bug 690394.[base/macos-fw.mak]
2009-09-03T18:00:06.616356Z Marcos H. Woehrmann
Initial checkin of the local cluster scripts.[toolbin/localcluster/setupcluster toolbin/localcluster/splitjobs.pl toolbin/localcluster/clustermaster.pl toolbin/localcluster/clusterpull.sh toolbin/localcluster/readlog.pl toolbin/localcluster/build.pl toolbin/localcluster/readme toolbin/localcluster/run.pl toolbin/localcluster toolbin/localcluster/compare.pl]
2009-09-02T16:18:07.841097Z Henry Stiles
The static initialization for memory structure types was not complete, in some cases, failing to initialize the procedure data. I suspect this is harmless but didn't take the time to track down each use of the faulty macros.[base/gsstruct.h]
2009-09-01T18:55:55.532790Z Ralph Giles
Set a mime-type property on the new pdf documentation file so svn doesn't attempt to generate textual diffs for it.[doc/Color_Architecture.pdf]
2009-09-01T18:10:02.037482Z Michael Vrhel
Changes to color architecture document based upon comments from Miles.[doc/Color_Architecture.tex doc/figures/Overview.eps doc/Color_Architecture.pdf]
2009-09-01T16:59:40.570903Z Michael Vrhel
Addition of color architecture document (PDF) and its latex source and eps figures to document folder.[doc/Color_Architecture.tex doc/figures/XPS_Integer_Gray_RGB_Image.eps doc/figures/Overview.eps doc/figures/XPS_DeviceN.eps doc/figures/PDF_Render.eps doc/figures/XPS_Render.eps doc/figures doc/figures/XPS_Vector_Color.eps doc/figures/XPS_RGB_Image_Float.eps doc/figures/PS_Spec.eps doc/Color_Architecture.pdf doc/figures/PS_Render.eps doc/figures/PDF_Spec.eps doc/figures/Ghost.eps]
2009-09-01T14:09:38.072790Z Ken Sharp
Fix (pdfwrite) : quiet a compiler warning Details Cast a long int to an unsigned int to prevent a compiler warning on a debug print operation.[base/gdevpdtc.c]
2009-09-01T14:02:26.307800Z Ken Sharp
Fix (pdfwrite) : Remove some unused variables Details Flagged by the gcc compiler as unused, removed two variables.[base/gdevpdfd.c]
2009-09-01T13:31:15.405830Z Ken Sharp
Fix (pdfwrite) : Minor compiler warning Details remove_table was not declared static, leading to a 'missing prototype' warning from the compiler.[base/gdevpsft.c]
2009-09-01T13:29:34.736595Z Ken Sharp
Fix : Minor compiler warnings Details subst_CID_on_WMode_enum_ptrs was not declared static leading to (benign) prototype warnings. Also subst_CID_on_WMode_finalize was declared as returning an int, but finalize procedures must be void.[base/gsfcid.c]
2009-09-01T07:42:38.080497Z Ken Sharp
Fix (pdfwrite) : Silence Coverity warning Details The result of sscanf was not checked to see if at least one match was found. This is benign because the data was initialised to 0 anyway. However it allows us an opportunity to note the invalid annotation, which we now do.[base/gdevpdfm.c]
2009-08-31T17:00:13.229845Z Ralph Giles
Pass the full CFLAGS to CCAUX in the autoconf build, instead of just GCFLAGS. This propagates target-defining options which are typically set in XCFLAGS to build utilities so that, for example, -m32 results in the correct sizes in arch.h. Note that this may complicate cross-compiles. In theory CCAUX has separate, simpler flags because of this, but there are also several examples in the documentation of using XCFLAGS this way, so this seems to the the safer approach at this time. The dynamic flags for the separate x11 devices module are also passed through XCFLAGS but they do not harm other than cluttering the command line.[base/Makefile.in]
2009-08-28T17:22:50.739244Z Henry Stiles
New attributes required to fix 690736, the actual fix will be in the next commit to PCL XL. We can't update the trees simultaneously.[base/gdevpxat.h]
2009-08-26T20:03:31.773651Z Alex Cherepanov
Work around a bug in PDF generated by "PdfWrapper v1.00" that sometimes writes "." instead of "0." in content stream. Bug 690730.[Resource/Init/pdf_draw.ps]
2009-08-25T08:18:02.437396Z Ken Sharp
Fix (pdfwrite) : Write ToUnicode CMaps with 2-byte code space ranges and keys Details Bug #690722 "Problem with the font embedding logic" The existing ToUnicode CMap code wrote a ToUnicode CMap the same as a regular CMap, so the code space ranges and keys could be arbitrary lengths depending on the number of codes and their values. This appeared to be correct per the PDF Reference and the CMap specification. However, buried in technical note 5411, the 'ToUnicode Mapping File Tutorial' is a single reference: "the following “codespacerange” definition, without exception, shall always be used: 1 begincodespacerange <0000> <FFFF>endcodespacerange" This means that ToUnicode CMaps must be treated specially to ensure that they always have 2 byte code space ranges and keys. Modified the single allocation of ToUnicode CMaps so that it always specifies a 2 byte range.[base/gdevpdte.c]
2009-08-21T19:40:48.371802Z Ray Johnston
Add check for NOTRANSPARENCY in patternusestransparency since this is also used by resolvepattern in pdf_draw.ps. If this flag is set, but the pdf14 device is not active, "unregistered" error occurs. Bug 690727 for customer 531.[Resource/Init/pdf_main.ps]
2009-08-21T05:19:49.329915Z Alex Cherepanov
Ghostscript caches pattern instances in the pattern dictionary. This patch doesn't cache anything in the null pattern dictionary because it's read-only. Bug 690725.[Resource/Init/pdf_ops.ps]
2009-08-19T16:22:08.241617Z Alex Cherepanov
Process embedded files as a portable collection only when /Collection attribute is defined in the document root. Bug 690709. DETAILS: Collection atribute is marked in the spec as optional because a PDF file need not to be a portable collection but every collection has /Collection attribute.[Resource/Init/pdf_main.ps]
2009-08-19T06:04:51.856837Z Ray Johnston
Simplify / reduce the ht rendering logic to remove the special cases where the cache had 1 level per tile (which should now be the usual case) and the case where there is only one tile (which means that the tile is 1Mb). The special case handling of these cases does not result in any performance improvement with the modern (1Mb) cache size and thus this is a code simplification.[base/gxht.c]
2009-08-19T06:00:39.095541Z Ray Johnston
Adjust ht cache allocation to a size that will actually be used by the cache logic. The changes allow for replicating tiles along the width axis up to a ulong multiple that optimizes tile blitting in the mem device logic. Addresses bug 690693 by reducing the memory used from > 1Gb to < 200 Mb. As noted in the comments to that bug, there still may be some optimizations remaining. DETAILS: Reduces the allocation from over 1Gb for Special Test C1 of 09-40.PS to less than 200Mb by reducing the ht cache size to what will actually be used. The code in gxht.c initializes the cache limits the 'rep_count' to 8*sizeof(ulong) so any more than that per tile (1+width*height) will not be used. Debug code in gxht.c (gx_ht_init_cache) to check: if ( rep_count != (8 * sizeof(ulong)) ) dprintf("non_optimal ht cache size\n"); never detected a different value, so the ht cache size should be optimal with this patch -- neither too much nor too little allowed for the most efficient width repetition. This was tested at a variety of resolutions from 72 to 1600 with several files that defined screens and also checked with 'stocht.ps' that the maximum ht cache size was chosen to fit. Also the cluster regression shows no differences (I'd have been surprised if it did). Note that the above test is _not_ part of the patch since it was only used for evaluation. Also see rev 8526.[base/gsht.c]
2009-08-18T20:41:17.764580Z Ray Johnston
Add 'used' and 'max_used' information to the -Za output. This is handy for investigating memory usage and only affects a debug build when -Za (or -ZA) is used.[base/gsmalloc.c]
2009-08-17T22:13:01.172961Z Henry Stiles
Improve diagnostics for detecting problems with virtual memory spaces (see bug #688333). The vm space id was not initilialized for all allocations. This change reduce the list from hundreds down to tens of entries for a very simple postscript job.[base/gsalloc.c]
2009-08-15T03:02:03.213076Z Alex Cherepanov
Fix rendering artifacts in interpolated images caused by intermediate bit buffer not reset when data get flushed to output buffer. Bug 689566.[base/gsbitops.h]
2009-08-14T04:12:58.692182Z Alex Cherepanov
Remove code that tries to pause at the end of the .PFB binary data in an attempt to keep from reading beyond the end of the encrypted data, sometimes misidentifying the end of the actual data, and stopping early. Bug 465936. DETAILS: Since the eexec operator specifies that one never reads more than 256 bytes ahead, and since the pad bytes are given in the text portion of a .PFB file, in hexadecimal, there is no need to go to extra lengths to avoid reading (too far) past the end of the eexec data. Thanks to Paul Vojta and Ray Johnston for the path.[base/seexec.c base/sfilter.h psi/zmisc1.c]
2009-08-14T00:33:11.113850Z Alex Cherepanov
Change literal /FontBBox array into executable one for better compatibility with legacy software. QuarkXPress 3.31, idraw, and some versions of dvips assume that /FontBBox is executable. Bugs 690683, 687120, customer 460.[Resource/Font/URWPalladioL-BoldItal Resource/Font/NimbusSanL-Bold Resource/Font/NimbusRomNo9L-Medi Resource/Font/URWChanceryL-MediItal Resource/Font/CenturySchL-Roma Resource/Font/NimbusMonL-Bold Resource/Font/NimbusSanL-BoldItal Resource/Font/NimbusRomNo9L-MediItal Resource/Font/URWGothicL-Demi Resource/Font/URWBookmanL-DemiBold Resource/Font/NimbusRomNo9L-Regu Resource/Font/URWGothicL-Book Resource/Font/NimbusSanL-ReguCond Resource/Font/URWBookmanL-Ligh Resource/Font/CenturySchL-Bold 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/NimbusSanL-BoldCondItal Resource/Font/NimbusMonL-BoldObli 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]
2009-08-13T19:04:34.663531Z Alex Cherepanov
In hex form of eexec stream, break out of reading loop and try to interpret the accumulated data when a whitespace character is encountered. Skip whitespace characters when the control returns to /eexecDecode filter. Bug 689577. DETAILS: Normally, eexec stream is followed by a large number of 0's to compensate for read-ahead effects. The code fragment that Adobe Acrobat uses to prevent re-distilling of the file has no trailing 0's at all. This patch tries to guess the end of eexec stream after every whitespace character.[base/sstring.c base/seexec.c base/sfilter.h base/strimpl.h]
2009-08-13T14:58:04.684321Z Ken Sharp
(empty)[base/gdevpdfm.c base/gdevpdfc.c base/gdevpdft.c base/gdevpdfu.c base/gdevpdfv.c base/gdevpdfg.c base/gdevpdfi.c]
2009-08-13T07:57:02.889637Z Ken Sharp
Fix (pdfwrite) : Check pointer before dereferencing Details Bug #690704 "Regression: seg fault with pdfwrite" The pdfwrite mask image handling assumed that if certain conditions were met then an image related to text, and attempted to use a stored text enumerator. It did not, however, check the stored pointer before dereferencing it. Added a check to see the pointer is non-NULL before deciding that the image refers to text.[base/gdevpdfb.c]
2009-08-12T07:09:40.485630Z Ken Sharp
Fix (pdfwrite): Writing invalid numbers for linecap and linejoin parameters Details: bug #690691: "setlinecap" pdfwrite was emitting the linecap and linejoin values directly from the graphics state to the output PDF file. However the GS graphics state also supports the additional PCL linecap and linejoin values, which are not supported in PDF. This resulted in PDF files with illegal values. Modified the code to replace tringle linecaps with round linecaps, triangle line joins with miter joins and none joins with bevel joins. These are not correct but are reasonable solutions for now. We should degenerate 'none' joins into a sequence of discrete paths. Also added future protection by converting unknown values of linecap into butt line caps and unknown values of linejoin into miter line joins. In both cases a debug warning is emitted.[base/gdevpsdu.c]
2009-08-11T15:47:12.926634Z Alex Cherepanov
Stop processing of embedded Type 1 font as soon as operator eexec returns. Skip the trailer that may be truncated or corrupted. Bug 690701, customer 780.[Resource/Init/pdf_font.ps]
2009-08-11T15:10:57.046923Z Henry Stiles
The debugging code to dump an allocator crashed when printing references, also add a convenience function so it can be easily called from the debugger and a reminder in ilocate. All debugging changes, no expected differences.[base/gxalloc.h psi/ilocate.c base/gsalloc.c]
2009-08-11T04:11:32.968611Z Alex Cherepanov
Reorder a logical expression in bbox device to avoid evaluation of uninitialized part. Fix a Purify warning.[base/gdevbbox.c]
2009-08-10T23:29:24.006231Z Henry Stiles
Adds a new memory device constructor (gs_make_mem_device_with_copydevice) to replace gs_make_mem_device and fixes several device reference counting problems (leaks) which affected all the the client languages. No expected visual differences.[base/gdevdrop.c base/gxpcmap.c base/gxdevmem.h base/gdevmem.c]
2009-08-10T18:52:21.508883Z Henry Stiles
Add a new memory device constructor which uses copydevice.[base/lib.mak base/gxdevmem.h base/gdevmem.c]
2009-08-07T18:29:05.729614Z Ralph Giles
Propagate LDFLAGS to the shared library gs client link command lines in the the autoconf build. Bug 690695.[base/unix-dll.mak]
2009-08-07T14:08:57.827147Z Ken Sharp
Fix a benign type cast warning from MSVC 2008 by explicitly casting the glyph name.[base/gdevpdtd.c]
2009-08-07T13:54:04.799461Z Ken Sharp
Inadvertently left a line commented out (with a C++ style comment!) which should have been removed. Apologies all round.[base/gdevpdtd.c]
2009-08-07T13:46:58.208375Z Ken Sharp
Fix (pdfwrite) : Embedded TrueType fonts not correctly flagged as Symbolic Details Bug #690688 "-dSubsetFonts=false produces incorrect PDF file" The method Acrobat uses to select glyphs from TrueType fonts is arcane and dependent on the setting of the Symbolic/non-symbolic flags. When we subset a font the encoding is always created incompatible with StandardEncoding, and so we mark the font as Symbolic. However, if we embed the entire font, we try to decide if its symbolic or not. To do this we check the names of all the used glyphs to see if they are in StandardEncoding and if they all are we start by assuming the font is *not* symbolic (there are other checks). However, there were a number of problems with this check. Firstly the reverse encoding which is used to do the work does not contain the .notdef glyph, which *should* have meant that all fonts were incorrectly marked as symbolic. The only reason it didn't is because the return value from the routine gs_c_decode was checked against gs_no_glyph to see if it failed to match. But gs_c_decode actually returns GS_NO_CHAR in this case. So the test was incorrect, and never correctly detected that a glyph was not in StandardEncoding. The test is also insufficient, in addition to being present in the font, the glyph must also be encoded at the correct position in StandardEncoding, the font in this job contains glyphs whose names are all in StandardEncoding, but they are not encoded at the normal positions, so the font *should* be marked symbolic. This patch skips the test for the .notdef glyph, correctly checks the return value from gs_c_decode, and adds the test against the encoding position.[base/gdevpdtd.c]
2009-08-06T17:14:10.510938Z Michael Vrhel
Fix for bug 690670. Softmask color space was incorrectly getting set to DeviceN when the color space was undefined for the group and the output device was a separation device. DETAILS: For a transparency group, this method is OK as we blend the individual channels as defined in the PDF spec. For a mask, this is not OK, since we have to map to luminosity and the mapping from the process + spot colors to luminosity is not defined. Solution is to use the concrete space of the current space of the imager state for the softmask for this situation. DIFFERENCES EXPECTED: None[base/gstrans.c]
2009-08-05T22:12:58.428110Z Marcos H. Woehrmann
Reverts r8510, r8511, r8513, r8597. Details This is a fix for bug 690396; a customer bug involving a clipping path combined with a shading fill. The original changes were a minor (20%) optimization that was a non customer performance enhancement.[base/gsptype2.c base/gsptype2.h base/gximask.c base/gxfill.c]
2009-08-04T01:32:50.525295Z Henry Stiles
Fixes a regression with revision 5219, the log for this revision says: "Valid memory pointer used create a tile_clip device instead of NULL" Unfortunately the tile clip device is created on the c stack and should not get a non null memory pointer. Later in gxcht.c this same device memory pointer is used to get a gs id, maybe this was the real motivation for the change. We now use the device halftone memory pointer and the device is initialized with a NULL memory pointer as expected.[base/gxcht.c base/gxp1fill.c]
2009-08-03T03:09:50.293548Z Alex Cherepanov
Add missing initialization of the path rule member during setting up the stack-allocated clipping path structure. Fix a Purify warning.[base/gxcpath.c]
2009-08-02T23:55:26.536287Z Alex Cherepanov
Remove a line that has no effect other than causing frequent Purify warning and puzzling the reader.[base/ttfmain.c]
2009-08-02T23:50:02.458497Z Alex Cherepanov
Fully initialize CFD stream state. Fix a Purify warning in 23-12B.PS and stop printing wild core instead of error messages.[base/scfx.h]
2009-08-02T23:16:26.642637Z Alex Cherepanov
Fix all remaining MSVC warning other than C4018 or C4244 that have little value and should be suppressed. Bug 690660.[base/gdevp14.c psi/zcid.c base/gdevpdti.h base/gxacpath.c base/gxpcolor.h libpng/pngwio.c]
2009-08-01T03:14:53.314562Z Alex Cherepanov
Fix a common Purify warning; skip calculations with uninitialized values during processing an empty glyph, such as /space .[base/gxhintn.c]
2009-08-01T03:02:47.627968Z Alex Cherepanov
Swap transposed code fragments in image interpolation logic. Old code missed some optimizations and could cause wrong rendering. Clear a Purify warning about uninitialized memory access running 148-11.ps.[base/gxiscale.c]
2009-08-01T02:46:33.092104Z Alex Cherepanov
Fix yet another case of missing dereference of indirect objects. Bug 690675.[Resource/Init/pdf_draw.ps]
2009-08-01T02:41:03.067359Z Alex Cherepanov
Fix processing of -dUseCropBox that was broken by the rev. 9805. Old code messed up the operand stack when -dUseCropBox was requested but no /CropBox attribute was in the PDF file. Bug 690676, customer 330.[Resource/Init/pdf_main.ps]
2009-08-01T00:31:06.505318Z Ralph Giles
Remove a reference to the obsolete AFPL license text.[doc/Release.htm]
2009-08-01T00:31:04.401366Z Ralph Giles
Remove an unnecessary header file.[psi/int.mak psi/igc.c]
2009-08-01T00:27:25.216685Z Ralph Giles
Bump version after the 8.70 release.[base/gscdef.c base/version.mak Resource/Init/gs_init.ps doc/News.htm]
2009-07-31T18:06:12.135189Z Ralph Giles
Update changelogs and open bug numbers for 8.70 final.[doc/History8.htm doc/News.htm doc/Details8.htm]
This is the first release in a new stable series of Ghostscript releases. The GhostPDL release number has been set to 8.70 as well, to make it easier to identify corresponding releases.
This release fixes a large number of issues with transparency, especially as it interacts with color space conversion, mask contexts and patterns. There have also been a number of significant fixes to font handling, especially when generating PDF. And there are numerous robustness, correctness and performance improvements.
New generic Esc/Page devices, eplmono and eplcolor were added to the contrib directory. A new cdnj500 device was added to support the HP DesignJet 500.
The licensing of the Free version of the core Ghostscript code has been changed to GPLv3 or later. Previously, the core code was GPLv2 only. Ghostscript can now be used with GPLv3 applications, and can no longer be used with applications that are GPLv2-only.
This release also includes security fixes addressing CVE-2009-0583 and CVE-2009-0792.
The following bugs were open at the time of release:
226943, 430175, 465936, 493348, 535932, 567421, 578865, 614298, 626295, 686853, 686865, 687084, 687095, 687146, 687193, 687257, 687271, 687280, 687295, 687297, 687327, 687375, 687414, 687475, 687492, 687514, 687520, 687536, 687561, 687593, 687608, 687630, 687650, 687666, 687674, 687677, 687695, 687697, 687702, 687715, 687721, 687728, 687731, 687775, 687780, 687782, 687793, 687796, 687805, 687887, 687903, 687904, 687915, 687931, 687950, 687981, 687983, 688007, 688022, 688024, 688026, 688036, 688042, 688064, 688081, 688130, 688166, 688184, 688187, 688204, 688210, 688215, 688227, 688267, 688269, 688280, 688288, 688312, 688318, 688320, 688333, 688361, 688363, 688372, 688386, 688387, 688389, 688395, 688413, 688436, 688437, 688440, 688448, 688475, 688483, 688495, 688528, 688533, 688539, 688540, 688542, 688557, 688565, 688580, 688581, 688604, 688605, 688616, 688617, 688627, 688636, 688638, 688647, 688651, 688655, 688673, 688699, 688709, 688710, 688714, 688731, 688757, 688777, 688797, 688818, 688829, 688843, 688845, 688846, 688871, 688872, 688926, 688933, 688942, 688949, 688969, 688978, 688990, 688994, 688999, 689003, 689011, 689013, 689025, 689031, 689032, 689040, 689044, 689046, 689048, 689057, 689076, 689077, 689078, 689093, 689094, 689098, 689133, 689137, 689145, 689150, 689153, 689161, 689167, 689184, 689188, 689195, 689199, 689222, 689224, 689236, 689247, 689248, 689252, 689253, 689278, 689279, 689283, 689289, 689290, 689308, 689331, 689335, 689340, 689341, 689376, 689378, 689392, 689396, 689418, 689419, 689421, 689423, 689439, 689450, 689451, 689456, 689460, 689484, 689487, 689489, 689490, 689498, 689500, 689502, 689506, 689507, 689512, 689518, 689522, 689546, 689549, 689554, 689557, 689560, 689566, 689577, 689581, 689584, 689585, 689591, 689592, 689595, 689598, 689601, 689606, 689616, 689625, 689627, 689636, 689641, 689653, 689658, 689663, 689670, 689674, 689681, 689682, 689684, 689689, 689690, 689691, 689697, 689698, 689704, 689705, 689709, 689710, 689711, 689715, 689721, 689725, 689726, 689734, 689737, 689741, 689756, 689759, 689761, 689767, 689772, 689775, 689778, 689781, 689786, 689792, 689793, 689794, 689799, 689801, 689805, 689808, 689823, 689836, 689840, 689853, 689856, 689858, 689859, 689860, 689861, 689862, 689868, 689869, 689870, 689871, 689878, 689883, 689885, 689910, 689915, 689916, 689917, 689928, 689930, 689933, 689937, 689938, 689939, 689940, 689941, 689942, 689943, 689947, 689950, 689951, 689957, 689969, 689972, 689974, 689980, 689986, 689991, 689996, 689997, 690003, 690005, 690007, 690009, 690020, 690024, 690025, 690026, 690029, 690033, 690036, 690043, 690053, 690054, 690061, 690066, 690068, 690069, 690073, 690083, 690084, 690085, 690093, 690094, 690098, 690110, 690119, 690125, 690126, 690131, 690132, 690137, 690143, 690146, 690160, 690162, 690171, 690176, 690180, 690182, 690191, 690192, 690199, 690200, 690207, 690208, 690212, 690214, 690216, 690224, 690226, 690229, 690235, 690241, 690246, 690249, 690250, 690251, 690253, 690261, 690262, 690265, 690268, 690275, 690278, 690281, 690282, 690285, 690290, 690293, 690294, 690296, 690297, 690299, 690320, 690322, 690324, 690325, 690328, 690329, 690333, 690339, 690340, 690345, 690346, 690351, 690356, 690360, 690366, 690369, 690375, 690384, 690392, 690393, 690394, 690396, 690398, 690406, 690409, 690412, 690413, 690415, 690417, 690419, 690428, 690429, 690435, 690436, 690441, 690442, 690444, 690445, 690446, 690448, 690451, 690453, 690455, 690462, 690466, 690468, 690469, 690470, 690471, 690473, 690476, 690477, 690479, 690482, 690485, 690486, 690487, 690490, 690496, 690497, 690499, 690504, 690506, 690508, 690519, 690524, 690526, 690530, 690531, 690534, 690535, 690536, 690537, 690538, 690541, 690543, 690544, 690545, 690549, 690551, 690552, 690553, 690554, 690556, 690557, 690559, 690560, 690561, 690562, 690563, 690564, 690565, 690566, 690567, 690568, 690569, 690570, 690571, 690572, 690573, 690575, 690578, 690580, 690581, 690585, 690594, 690595, 690596, 690598, 690600, 690601, 690602, 690603, 690604, 690605, 690606, 690607, 690610, 690612, 690615, 690617, 690620, 690621, 690622, 690626, 690627, 690630, 690631, 690633, 690636, 690638, 690639, 690641, 690642, 690643, 690646, 690649, 690650, 690651, 690652, 690653, 690658, 690661, 690664, 690665, 690667, 690668, 690669, 690670, 690671, 690673, 690674, 690675, 690676.
The size of PostScript integers has been limited to 32 bits. Previously they used the C long type resulting in 64 bits of precision on LP64 systems (like Linux on x86_64). As of this release all platforms match the recommended implementation limits in the specification.
2009-07-31T17:56:00.606748Z Ralph Giles
Bump release date for the final 8.70.[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/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 man/pf2afm.1 doc/Fonts.htm doc/Ps2ps2.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 man/font2c.1 man/gsnd.1 base/version.mak man/pdfopt.1 doc/News.htm man/pdf2ps.1 man/ps2pdf.1 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 man/ps2ps.1 doc/Ps2epsi.htm doc/History4.htm man/ps2pdfwr.1 doc/History5.htm doc/History6.htm]
2009-07-30T22:33:02.933395Z Ralph Giles
Update the release notes for the licensing change.[doc/History8.htm doc/News.htm doc/Details8.htm]
2009-07-30T22:31:07.319480Z Ralph Giles
Relicense GPL Ghostscript under the GPLv3 or later.[doc/COPYING LICENSE]
2009-07-28T19:46:52.330831Z Ralph Giles
Update change logs for 8.70rc1.[doc/Changes.htm doc/History8.htm doc/News.htm doc/Details8.htm doc/Details.htm]
2009-07-28T19:35:06.647161Z Ralph Giles
Update release version and date for 8.70rc1.[doc/History7.htm doc/Projects.htm doc/History8.htm man/dvipdf.1 base/gscdef.c man/ps2ascii.1 doc/Use.htm doc/Readme.htm doc/Source.htm doc/Deprecated.htm man/ps2epsi.1 doc/Install.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 man/pf2afm.1 doc/Fonts.htm doc/Ps2ps2.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 man/font2c.1 man/gsnd.1 man/pdfopt.1 doc/News.htm man/pdf2ps.1 man/ps2pdf.1 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 man/ps2ps.1 doc/Ps2epsi.htm doc/History4.htm man/ps2pdfwr.1 doc/History5.htm doc/History6.htm]
2009-07-28T19:30:52.619540Z Ralph Giles
Document the cat.ps utility.[doc/Psfiles.htm]
2009-07-28T19:11:13.726309Z Ralph Giles
Add release notes for 8.70rc1.[doc/News.htm]
2009-07-28T18:20:58.792176Z Alex Cherepanov
Change the operand types of encode_binary_token() to match the the type of PostScript integers in the ref structure. Bug 690660.[psi/iscanbin.c psi/btoken.h]
2009-07-28T17:16:43.839663Z Ralph Giles
Bump the release number to 8.70. The numerous transparency and smask fixes justify a new minor number.[base/version.mak Resource/Init/gs_init.ps doc/News.htm]
2009-07-28T16:55:34.923668Z Alex Cherepanov
Fix incorrect right shift on 64-bit platforms. PLRM defines bitshift operator as a logical shift. On 64-bit platform, the integer operand was promoted to 64-bit long value, shifted, and assigned back to 32-bit int, effectively emulating the sign extension.[psi/zrelbit.c]
2009-07-28T16:49:26.940894Z Ralph Giles
Work around problems with XInitImage and large rasters. Patch from Russ Cox, fixes Bugs 689547 and 689561. Details: The patch sets bitmap_pad, and passes 0 for bytes_per_line in cases were current xorg can correctly generate a value. Russ writes: I have tracked down the problem, and it appears to be a bad interaction between gs and recent sanity checking in the X library. In particular, sometimes x_copy_image in gdevx.c gets called with wide widths but narrow raster values. Even though the raster is apparently wrong, the X graphics operations would work okay with that value. But new versions of X11 have various checks in XInitImage, one of which is that the raster is greater than or equal to the width of the image times the depth. To see that this diagnosis is correct, replacing the call to XInitImage with a call to _XInitImageFuncPtrs (which is just XInitImage without the sanity checking) makes gs start working. But of course _XInitImageFuncPtrs is not a public interface function and thus probably not the best fix. Replacing the "bytes_per_line = raster" with "bytes_per_line = 0" (which makes X compute the value from width and depth) works fine in the zoom levels that would otherwise crash but causes the previously-working zoom levels to shear the image (or worse), presumably because the "obvious" raster is not the right one at those levels. Also, the new XInitImage also requires bitmap_pad be set always. The patch below also fixes the problem -- I can run "gv pprof.ps" at all zoom levels, and I can also zoom into regular documents. Perhaps it is not the right fix -- perhaps the actual bug is that x_copy_image is being called with a bad raster value in the first place. But it does work.[base/gdevx.c]
2009-07-28T16:20:51.749226Z Ken Sharp
Fix (pdfwrite): Excessive redefinitions of CIDFonts causing memory exhaustion Details: bug #690642: "conversion to PDF aborts after 800 pages" When instantiating a CIDFont with TrueType outlines, the TrueType interpretation code tries to name the font using the name table from the TrueType font. If there is no name table (as is the case for CIDFonts with TT outlines) it instead uses the XUID as the name. The XUID is incremented on every use, this means that each time the font is instantiated (up to once per page when the job is PDF) we create a new CIDFont with a new name. pdfwrite is unable to determine that these are all in fact the same original font, and creates many fonts in the output file, eventually leading to memory exhaustion. This change creates a new key in the current dictionary '/PDFCIDFontName', while processing a CIDFont with TrueType outlines for a PDF file, which is the same as the CIDFont BaseFont name. Since PDF can only have one descendant font per CIDFont this should not cause name collisions. To avoid interference with PostScript the key is removed from the current dictionary after use. In the TrueType interpreter, if we are handling a CIDRFont then after loading the TT tables we check to see if /PDFCIDFontName is defined. If it is we use it to replace the /FontName and /CIFontName values. This means we only ever create the font with a single name, which avoids the confusion with pdfwrite. With this change pdfwrite only emits a single font and, usefully, it has the same name as the font in the original PDF file.[Resource/Init/pdf_font.ps Resource/Init/gs_ttf.ps]
2009-07-28T07:48:19.388013Z Ralph Giles
Add bounds checking to various icclib functions. Based on a set of patches by Jan Lieskovsky at Red Hat, addressing CVE-2009-0583 and CVE-2009-0792. Details: Various _get_size and _write methods in icclib 2.01 were vulnerable to integer overflow from corrupt or malicious profile data. This commit makes a number of changes to address this. First, it enforces bounds checking on array indicies generated through tag data lookup or floating point calculations, either throwing an error or clamping, depending on the context. Second, it converts a number of malloc(nelement*size) calls into calloc(nelements, size), passing responsibility for overflow control to the standard library. This works on recent glibc, MacOS 10.4 (at least) and MSVC 2005 (at least; I believe MSVC 6 doesn't check for overflow). Systems which overcommit memory allocations generally also lazily zero pages, so the performance implications of an overflow in calloc() resulting in a huge allocation (or the same happening at the request of corrupt or malicious ICC profile data) are not as bad as might appear relative to the original malloc(). From the other side, multi-processing systems must often zero pages delivered to malloc anyway to prevent information leakage. On top of Jan's patches, this commit uses a fallback for SIZE_MAX, a stdint.h define which isn't available on all platforms (notably MSVC), and changes a number error message to match the malloc->calloc changes. It fixes a serious bug where the new error checking code incorrectly rejected valid profiles with an MLUT but no black point tag. icc_get_luobj() always tried to load the black point tag, and if it wasn't found, icc_read_tag() would set an error flag, which was later picked up in icmLut_read() by the check added for the results of icmLut_get_size(). Since the black point tag is optional, and icclib already substitutes a default (0,0,0) black point if none is contained in the profile, we just reset the error condition within icc_get_luobj(). vtm2k.pdf is a good testfile for this issue. Likewise, the length of lookup tables was limited to 100 points, as a resource consumption constraint, but the spec allows LUTs with up to 255 points. Bug690495.pdf from the regression suite triggered this problem. Thanks to Michael Vrhel for these last two fixes.[icclib/icc.c]
2009-07-27T16:59:50.188520Z Till Kamppeter
Update of the Esc/Page laser printer drivers from Epson and Avasys, new output devices "eplmono" and "eplcolor", and new media types.[contrib/contrib.mak contrib/eplaser/gdevescv.h base/configure.ac contrib/eplaser/gdevescv.c]
2009-07-27T00:30:35.025070Z Marcos H. Woehrmann
The fill adjustment change in r9882 was too great; this rev changes it to 0.3 (from the original 0.25).[base/gsstate.c]
2009-07-24T19:03:05.883160Z Ray Johnston
Add some debug that can be handy in tracing memory usage with the chunk manager. This code has not effect on non-debug builds.[base/gsmchunk.c]
2009-07-24T14:21:19.243209Z Ken Sharp
Fix (pdfwrite) : Incorrect table in /Unicode /Decoding Resource Details Bug #690648 "many incorrectly encoded Latin Extended-A characters" The job in this issue contains a subset incrementally downloaded TrueType font where the Encoding is such that the first glyph encountered is encoded at character position 1, the second at position two and so on. In addition there is no GlyphNames2Unicode dictionary. pdfwrite tries, whenever possible, to write a ToUnicode CMap into the output PDF file which allows Acrobat and other consumers to copy and paste text using Unicode values. Since there is no Unicode information in the file, and the Encoding is distinctly non-standard, we fall all the way back to using the glyph names as a last ditch attempt to generate the Unicode information. This relies on the /Unicode /decoding resource, it seems that many glyphs in this resource were (and possibly still may be) encoded at the wrong Unicode code points. This patch fixes the glyphs raised in the bug report, there may be others.[Resource/Decoding/Unicode]
2009-07-23T17:34:17.505092Z Henry Stiles
Temporarily address bug #690646 with a fatter fill adjustment default. This will only affect tests with resolutions less than 150 dpi. The change makes superfluous code in gs_init.ps which initializes the default fill adjust to .5 iff the resolution is greater than or equal to 150 dpi.[base/gsstate.c]
2009-07-22T21:09:42.692668Z Michael Vrhel
The commits provides proper transparency support for fills with patterns that contain transparency. This is a merge of the pattern_trans branch into the trunk. DETAILS: When a pattern contains a transparency, it should be blended with the underlying objects according to the current extended graphic state settings (e.g. knockout, blend mode etc). Prior to this commit, patterns with transparency behaved always as knockout fills. This fixes Bug 690467 and fixes issues for files that contain transparency patterns in the regression suite when using the pbm output device. When a transparency is present in a pattern, a pdf14 device is pushed. Pattern accumulation will then occur in the transparency buffer. When the accumulation completes, the buffer that is created is no longer passed to the pattern tile object gx_pattern_trans_t through pdf14_put_image, but instead the buffer and various details about the buffer are placed in the existing planar form into a new member of gx_pattern_trans_t called ttrans. When a path is to be filled with the pattern, we will be in pdf14_fill_path. If the color to fill with is of type pattern1_color, then we will do a call to pdf14_tile_pattern_fill which pushes a transparency group the size of the path that we are filling, in the base color space of the tile. We decompose the path to a rectangle list which is then filled using gx_trans_pattern_fill_rect. If the fill is simple, i.e. if the tile step size and tile size are the same, then a straight forward non-overlapping fill of the rectangle occurs. Otherwise a more complex filling occurs where the tiles may overlap. If the tiles overlap, then blending will need to occur. Optimizations were implemented to avoid blending if it is not required. In addition, memcpy was used for the inner loop filling (rows) when dealing with the non overlapped case. Going from planar data in the tile buffer to planar data in the transparency group that we are filling is much more efficient then switching between planar to chunky and back to planar like we would have had to do if we had used pdf14_put_image and stored the tile data in the buffer that is used for the nontransparency case. Once the fill completes, the transparency group is popped, which will perform the appropriate blending with the parent group in the proper color space. Currently it is not allowed to have the transparency tile stored as a clist. Instead the tile is always stored in the ttrans object. It would probably be worthwhile to fix this at some point. When we are doing clist processing, code was added to write (gx_dc_pattern_trans_write_raster) and read (gx_dc_pattern_read_trans_buff) the ttrans object to and from the clist. DIFFERENCES EXPECTED: tests_private/comparefiles/Bug688631.pdf (pbmraw 600dpi) tests_private/comparefiles/Bug688728a.pdf (pbmraw 600dpi) tests_private/comparefiles/Bug688728b.pdf (pbmraw 600dpi) tests_private/comparefiles/Bug689422.pdf (ppmraw 600dpi) tests_private/comparefiles/Bug689422.pdf (pkmraw 600dpi) tests_private/comparefiles/Bug688728.pdf (pbmraw 600dpi)[psi/zpcolor.c base/gdevp14.c base/gsptype1.c base/lib.mak base/gdevp14.h base/gxpcmap.c base/gsptype1.h psi/int.mak base/gxpcolor.h base/gxcolor2.h /trunk/gs base/gxp1fill.c]
2009-07-21T13:43:27.037336Z Ken Sharp
Enhancement (pdfwrite) : Add a new switch 'PDFACompatibilityPolicy to control PDF/A creation when encountering invalid content. Details Bug #690500 "gs 8.63. Option dPDFA generating no pdf/a compliant files because of F key." In the reported issue the input PDF file contains a Link annotation with no /F (Flags) key defined. PDF/A states that only annotations with the 'Print' bit of the Flags field are permitted. pdfwrite was emitting the annotation, thus creating an invalid PDF/A file. The new switch PDFCompatibilityPolicy allows the user to select the behaviour for these kinds of events. The value defaults to 0, where the behaviour matches Acrobat, the file is created, but is not PDF/A compliant, a warning to this effect is given. When set to 1, the content will be omitted, resulting in a compliant PDF/A file, a warning is given for each piece of omitted content. Values other than 0 or 1 are treated as 0 and a warning is given that the value is not understood. Currently only implemented for annotations, it is expected this will be extended over time.[base/gdevpdfm.c base/gdevpdfx.h base/gdevpdfp.c doc/Ps2pdf.htm base/gdevpdfb.h]
2009-07-21T04:50:01.508924Z Alex Cherepanov
Add output buffer alignment code to one of the image handling branches where it was omitted. Fix a SEGV on Sparc platform that cannot access misaligned data. Bug 690613.[base/gxiscale.c]
2009-07-20T05:10:46.340795Z Alex Cherepanov
Unobfuscate image scaling code: remove dead code, expand macros and typedefs. All changes are algorithmically equivalent.[base/siscale.c]
2009-07-19T03:58:54.979499Z Alex Cherepanov
Fix a typo in compile time flag that prevented GNU libiconv to emulate system libiconv and caused link errors on the systems that use GNU headers but system libraries. Bug 690123.[contrib/opvp/gdevopvp.c]
2009-07-17T15:19:24.111289Z Alex Cherepanov
Initialize bit accumulator in LZW encoder to clear a Purify warning about using an uninitialised value in an expression. The value itself is unimportant because all bits that may affect the result are shifted out.[base/slzwe.c]
2009-07-17T14:00:35.203729Z Alex Cherepanov
Fix processiong of numeric entry in /W2 array. Bug 690635.[Resource/Init/pdf_font.ps]
2009-07-15T13:07:48.754703Z Ken Sharp
Fix (pdfwrite): Crash with font errors. Details: bug #690505: "Regression: More issues with pdfwrite and various nightly regression files" The font 'encode_char' method can return a 0 error code, but set the returned glyph name to 'gs_no_glyph' to indicate that a glyph could nto be found in a valid font. pdfwrite was then trying to get the glyph information for the 'gs_no_glyph' glyph, which caused a crash in dict_index. Fixed by detecting the gs_no_glyph and returning an error.[base/gdevpdte.c]
2009-07-14T03:35:22.419126Z Alex Cherepanov
Switch the order of an assignment and condition to fix (harmless) reading of uninitialized memory. Clear a Purify warning.[base/gxhintn.c]
2009-07-13T01:50:06.521945Z Ray Johnston
Add a couple of utilities for extracting Fonts and ICC Profiles from a PDF. I had these laying around and the need for these comes up from time to time. See the top of each PostScript file for usage. DETAILS: It is the responsibility of creators of PDF's to not embed fonts that are identified as not to be embedded. Ghostscript (as of rev 8603) respects the TrueType FSType FontInfo. The copyright and license of fonts and ICC profiles in a PDF will still be in force. Any knowledgeable user can use Ghostscript (or many other tools) to extract this information. We provide this utility mostly to provide the 'source' for GPL'ed fonts as required by fonts. Fonts are programs and distribution requires distribution of 'source', so this lets users get the source and (using a font editor) modify the font. See bug 690533 (if you must).[toolbin/extractICCprofiles.ps toolbin/extractFonts.ps]
2009-07-11T17:49:45.436921Z Ralph Giles
Change the GPL Ghostscript license to GPLv2 or later, instead of GPLv2-only.[LICENSE]
2009-07-09T13:09:11.914398Z Alex Cherepanov
Don't take empty string for an answer when searching 'name' table in TrueType font because some MS fonts have empty strings for platform IDs MS doesn't use. Bug 690611, customer 0.[Resource/Init/gs_ttf.ps]
2009-07-09T05:59:44.622957Z Henry Stiles
Remove ad hoc code to draw thin rectangles. It appears this code is obsolete with respect to the current fill code. Many fills adjusted with this code will actually render without enlargement. Differences noted in the following files were insignificant or improvements. comparefiles/012-05.ps comparefiles/013-05.ps comparefiles/067a_unc-stroke.pdf comparefiles/298-09.ps comparefiles/321-09.ps comparefiles/86554321.pdf comparefiles/Bug687603.ps comparefiles/Bug687724.pdf comparefiles/Bug687840.pdf comparefiles/Bug687901.ps comparefiles/Bug688485.pdf comparefiles/Bug688631.pdf comparefiles/Bug688807.pdf comparefiles/Bug689083.pdf comparefiles/Bug689516.pdf comparefiles/Bug689842.pdf comparefiles/Bug689918.pdf comparefiles/Bug689978.pdf comparefiles/Bug690115.pdf comparefiles/Bug690206.pdf comparefiles/Bug690395.pdf comparefiles/Clarke-Tate-Manns-Chinese.ai comparefiles/H00216q.pdf comparefiles/LMG-40-7161-RU-DUC-01.pdf comparefiles/Testform.v1.0.2.pdf comparefiles/WD0010L0.pdf comparefiles/annots.pdf comparefiles/bug_687457.pdf comparefiles/bulletin.pdf comparefiles/knight.pdf comparefiles/messenger.pdf comparefiles/messenger16.pdf comparefiles/p2b-100.pdf comparefiles/z400454b01d4-1.pdf pdf/PDFIA1.7_SUBSET/CATX2140.pdf pdf/PDFIA1.7_SUBSET/CATX5233.pdf pdf/PDFIA1.7_SUBSET/CATX9004.pdf pdf/PDFIA1.7_SUBSET/CATX9214.pdf pdf/PDFIA1.7_SUBSET/CATX9558.pdf pdf/PDFIA1.7_SUBSET/IA3Z0005.pdf pdf/PDFIA1.7_SUBSET/IA3Z0302.pdf pdf/PDFIA1.7_SUBSET/IA3Z1351.pdf pdf/PDFIA1.7_SUBSET/IA3Z3225.pdf pdf/PDFIA1.7_SUBSET/IA3Z3356.pdf pdf/PDFIA1.7_SUBSET/IA3Z3359.pdf pdf/PDFIA1.7_SUBSET/IA3Z3519.pdf pdf/PDFIA1.7_SUBSET/IA3Z3778.pdf pdf/PDFIA1.7_SUBSET/IA3Z4373.pdf pdf/PDFIA1.7_SUBSET/IA3Z4663.pdf ps/ps3cet/11-01.PS ps/ps3cet/11-26C.PS ps/ps3cet/12-05.PS ps/ps3cet/13-01.PS ps/ps3cet/13-02.PS ps/ps3cet/13-03.PS ps/ps3cet/13-10.PS ps/ps3cet/13-12.PS ps/ps3cet/13-13.PS ps/ps3cet/13-15.PS ps/ps3cet/13-16.PS ps/ps3cet/13-17.PS ps/ps3cet/13-18.PS ps/ps3cet/13-19.PS ps/ps3cet/13-20.PS ps/ps3cet/13-22.PS ps/ps3cet/13-26.PS ps/ps3cet/13-27.PS ps/ps3cet/13-28.PS ps/ps3cet/13-29.PS ps/ps3cet/14-08.PS ps/ps3cet/23-25.PS ps/ps3cet/29-03.PS[base/gxpaint.c base/gxcpath.c base/gxttfb.c base/gdevtrac.c base/gxacpath.c base/gxpaint.h base/gdevbbox.c base/gdevpdfd.c base/gxshade.c base/gxfill.c base/gxstroke.c base/gxclrast.c]
2009-07-09T00:28:02.323867Z Alex Cherepanov
Set default color and colorspace for colored pattern stream that relies on default values; keep the color unset as required for uncolored pattern. Bug 690609, customer 531.[Resource/Init/pdf_draw.ps]
2009-07-08T14:18:43.038306Z Henry Stiles
This patch is a continuation of revision 9842, to derive the fill adjustment parameter from the graphics state and not assume the value is 1/2. Interestingly, the patch seems to result in improvements for postscript in several regression test files. For example cet file 13-13.ps page 3 appears to improve the clipping of the large (W) character. Previously the (W) character obscured the line on the top border of the page, now the line is visible. Unfortunately the non banded result is still wrong and with the fix does not match the banded output. Analysis of this issue is incomplete and ongoing.[base/gxclrast.c]
2009-07-08T13:56:15.311074Z Ken Sharp
Fix (CID fonts): The fallback when totally failing to find a character code in a CMap sets the CID to 0 (/.notdef) but failed to select a descendant font. Details: bug #690372 "Error: /undefined in %Type0BuildGlyph" The PDF file is fundamentally flawed, the font uses the /Identity-H CMap for a font, but the font uses single bytes for each character code, where the CMap expects 2 bytes for every character code. The font code falls back to using CID 0 (the /.notdef equivalent), but failed to select a descendant font before returning. Because no descendant was selected GS was attempting to extract the glyph from the type 0 font, which has no glyphs, and therefore failed with an undefined error. The code has been modified to select a descendant font before continuing under these conditions.[base/gschar0.c]
2009-07-08T06:02:40.134274Z Ray Johnston
Fix for segfault caused by dereference of a stale pointer (pgs->dev_color). Bug 690519 detected with pkmraw during regression testing. DETAILS: If a GC was run during a pattern accum in the PS interpreter, the pgs->dev_color structure could be moved. This was not tracked, probably because the dev_color was assumed to be "dynamic". The fix performs gx_unset_dev_color during the pattern_paint_cleanup (in zpcolor.c). This minimal change is all that is needed since only the PS interpreter runs a "real" GC that moves structures.[psi/zpcolor.c]
2009-07-06T17:20:39.998539Z Henry Stiles
The fill adjustment associated with the clipping path should be derived from the graphics state, not set to the constant 1/2. This change results in many improvement for pcl which uses center of pixel (fill adjust == 0) rendering. It should result in no change for postscript or pdf at high resolution, but we do expect many difference at lower resolutions, where fill adjust is set to 1/4. In the latter case postscript and pdf paint with fill adjust set to 1/4 while clipping paths are created with a fill adjustment of 1/2 which is incorrect.[base/lib.mak base/gxacpath.c]
2009-07-06T08:51:30.498667Z Ken Sharp
Fix (graphics library) : Conversion to base colour space of an /Indexed colour space was not catering for spaces with a string lookup instead of a procedural lookup. Details Bug #690587 "setcolorspace + currentgray crashes GS 8.64" The conversion from a colour in an indexed space to its alternate assumed a procedural lookup and failed badly if the space had a string lookup.[psi/zcolor.c]
2009-07-04T22:45:06.512463Z Alex Cherepanov
Add a check for a null value of SMask attribute in ExtGState. This also works for invalid SMask reference, which is already converted to null. Bug 690597, customer 870.[Resource/Init/pdf_draw.ps]
2009-07-03T21:59:49.616755Z Ray Johnston
Fix for crash when tiles are outside printable areas seen with bug 690558. DETAILS: The 'fit_copy' macro adjusts the x, y, w, and h values, but since this is a procedural macro and the 'FOR_RUNS' macro (also procedural) declares local variables, for 'C' the 'FOR_RUNS ... END_RUNS' needs to be in a block. The only real changes are the additions of 'fit_copy()'.[base/gxclip2.c]
2009-07-03T09:27:02.706358Z Ken Sharp
Enhancement (TrueType fonts): Add support for Adobe's use of Identity CMap in PDF files, when substituting a TrueType font, mapped as a CIDFont from disk, for a missing CIDFont. Details: bug #688515 "Need method to map CIDFonts to TrueType fonts when Ordering is Identity" This issue also covers issues #689499, #688813, #689623 and #690483. When using a native TrueType font from disk as a replacement for a CIDFont, GS needs a way to convert the character code used in the input file (either PostScript or PDF) into a TrueType glyph ID (GID). When the TrueType font is declared (in cidfmap), the CSI entry contains an Ordering, this is concatenated with the CMAP declared in the actual TrueType font. This information is used to create a CIDDecoding resource, certain combinations (defined in .CMapChooser) create CIDDecoding resources 'on the fly'. A CIDDecoding resource simply maps a character code directly to a GID. Normally this resource, when automatically created, is manufactured by converting the character code to an internal code (using the declared CMap from cidfmap) and then converting the internal code to a GID using the TrueType CMAP table. Most often the internal code is a Unicode code point. The investigation in 688515 makes it clear that when we have an Identity CMap in a PDF file the character code should be treated as the GID. This makes it very easy for us to construct a CIDDecoding resource, its a simple one-to-one. Unfortunately the existing machinery relies upon a CMap, and there is already a mapping for Identity.Symbol (An Identity CMap with a font whose CMAP table is a Symbol table). We don't want to break this existing functionality, so the new code adds an entry in .CMapChooser for Identity.Unicode (only to avoid errors) and then in the function which actually loads the TT font (load_sfnts in gs_cidtt.ps) we check specifically for an Identity.Unicode Decoding. If we find one then we call a new routine to create an Identity mapping (CIDMap) from character code to GID.[psi/zcid.c psi/icid.h Resource/Init/gs_ciddc.ps Resource/Init/gs_cidtt.ps psi/zfcid1.c]
2009-07-02T00:38:01.021625Z Till Kamppeter
Use "Perceptual" as render intent for the presentation quality setting in the "cdnj500" (HP DesignJet) driver.[contrib/gdevcd8.c]
2009-06-30T00:06:33.029648Z Alex Cherepanov
Extract all documents from PDF collection to temporary files and process them in the order they are listed in the /Names array. Bug 690422, customer 531.[Resource/Init/pdf_main.ps]
2009-06-29T12:33:28.939766Z Ken Sharp
gs_ciddc.ps is now in Resource/Init, not in lib as was stated in the documentation.[doc/Language.htm]
2009-06-29T09:33:50.558685Z Ken Sharp
Enhancement (pdfwrite & ps2write) : Optionally convert Separation and DeviceN spaces to their alternate space. Detalis: bug #690582 "Disabel /Separation and /DeviceN colour space preservation" When creating a colour space for output, allow the user to insist that Separation and DeviceN spaces be converted to their alternate space.[base/gdevpdfx.h base/gdevpdfp.c doc/Ps2pdf.htm base/gdevpdfc.c base/gdevpdfb.h]
2009-06-26T12:42:29.607606Z Alex Cherepanov
Look into JPX stream to get color space and color depth when it is omitted from the image dictionary. Bug 690518, customer 850. DETAILS: This is a minimal implementation that intentionally uses device dependent color spaces instead of device-independent ones for full backward compatibility.[Resource/Init/pdf_base.ps Resource/Init/pdf_draw.ps]
2009-06-23T22:24:57.094170Z Michael Vrhel
Fix for bug690546. Problem was caused by double application of opacity for knockout fills. The opacity was being applied in the alpha value and in the opacity value. The alpha value is the product of the shape and opacity and can be used directly.[base/gdevp14.c]
2009-06-23T07:24:50.757746Z Ken Sharp
Fix (pdfwrite) : Update 'where_used' in case object is used across pages Details Bug #690056 "Error with embedded image in generated PDF: XObject not found" Pdfwrite tries to detect reuse of objects, and only emit a single copy when this occurs. However on return from pdf_substitute_resource several places do not set the 'where_used' field. If the object is used on a different page to the one where it is defined, this causes it not to be listed in the page Resources. Update two of the places where this occurs to resolve the problem.[base/gdevpdft.c]
2009-06-22T11:22:48.383638Z Russell Lang
Add the Windows installer manifest when building with Visual Studio 2008.[psi/msvc32.mak]
2009-06-22T07:41:34.716284Z Ken Sharp
Fix a technically uninitialised variable (Coverity warning).[base/gdevpdti.c]
2009-06-22T07:41:01.524464Z Ken Sharp
Fix a minor Coverity warning about implicit function declarations.[base/gdevpdfb.c]
2009-06-21T21:22:33.385661Z Russell Lang
Add manifest files to the Windows setup and uninstall programs, to force Windows Vista to run them as Administrator. Bug 690510.[psi/dwsetup_x64.manifest psi/dwuninst_x64.manifest psi/dwsetup_x86.manifest psi/dwuninst_x86.manifest]
2009-06-21T04:38:47.415879Z Russell Lang
Remove support for cross compiling of Win64 ghostscript on Windows 32-bit using Visual Studio .NET 2003 with a Win64 compatible DDK. Ghostscript for Win64 must now be built on 64-bit Windows, to assist with compiled resources. Visual Studio 2005 and 2008 are currently supported for 64-bit.[doc/Make.htm base/msvccmd.mak psi/msvc32.mak]
2009-06-21T04:23:05.005351Z Russell Lang
Add manifest files to the Windows setup and uninstall programs, to force Windows Vista to run them as Administrator.[doc/Develop.htm psi/msvc32.mak]
2009-06-20T17:29:39.375319Z Alex Cherepanov
Add TrimBox support and a corresponding -dUseTrimBox option. Bug 690547.[Resource/Init/pdf_main.ps doc/Use.htm]
2009-06-19T12:14:20.778442Z Ken Sharp
Fix (pdfwrite) : Make type 3 bitmap font text-searchable if possible Details Bug #690430 "PCL to PDF creates non-searchable text with incorrect font bbox" There were several changes which needed to be made here, in particular 1) Prevent the PDF text routines updating the text state when using type 3 bitmap fonts, as this caused each glyph to be emitted individually. 2) Change the way bitmap glyphs are recorded and drawn, previously each glyph origin was the top of the glyph, which meant that different height glyphs had effectively differing baselines. The need to shift y position caused glyphs to appear on different PDF 'lines', which prevented searching 3) Hone some internal heuristics which prevented large kerning values and caused glyphs to be placed individually.[base/gdevpdti.h base/gdevpdfx.h base/gdevpdts.c base/gdevpdfb.c base/gdevpdt.h base/gdevpdti.c]
2009-06-19T10:53:11.324517Z Ken Sharp
Add a couple of missing initialisers to the PDF device structure. Spotted this problem while working on another issue.[base/gdevpdfb.h]
2009-06-18T22:06:41.250732Z Marcos H. Woehrmann
Add A5 to the list of PCL output paper sizes. Thanks to peter.berndts@oce.com for the patch. Fixes bug 690532.[base/gdevpcl.h base/gdevpcl.c]
2009-06-18T05:16:48.708579Z Ralph Giles
Handle 4-bit grayscale JPXDecode images. This is a minimal patch to fix bug 690174. The file has a JPXDecode stream with 4 bits per component. The image dictionary has the correct matching /BitsPerComponent and /ColorSpace keys, but the stream filter was returning the pixel data as the low nibble in 8 bit pixels. This is a minimal fix: if the first component of the data is 4 bpc, divide the stride in half, then in copy_row_gray, pack two pixels per byte when returning the data.[base/sjpx.c]
2009-06-17T03:25:25.702690Z Alex Cherepanov
Fix memory corruption caused by long names. The length of name in the scanner buffer may exceed the maximum name size and should be checked. Bug 690523.[psi/iscan.c]
2009-06-17T02:17:49.344749Z Alex Cherepanov
Fix detection of extra Q operators in the page contents stream, which never worked before. Remove some level 1 rudiments and comment the code. Bug 690540, customer 750.[Resource/Init/pdf_ops.ps]
2009-06-16T22:05:41.362092Z Henry Stiles
Add a graphics library rom file system variable. For now this will be used to hold the icc and wts files associated with the wtsimdi device. No expected differences.[base/lib.mak]
2009-06-14T22:57:22.467309Z Michael Vrhel
Fix for access violation that can occur when processing PS files with spot colors into a sep device. DIFFERENCES EXPECTED: None DETAILS: Number of separations was being obtained from page_spot_colors but should be obtained from separations.num_separations. This was causing the elements of map_comp_to_sep[comp_num] to not be properly initialized for later use in tiffsep_print_page.[base/gdevtsep.c]
2009-06-13T14:33:18.520606Z Alex Cherepanov
Export t1_glyph_equivalence table, which provides alternative glyph names. Modify pf2afm.ps to disable glyph aliasing and generate AFM files that match the font. Bug 689014.[Resource/Init/gs_type1.ps lib/pf2afm.ps]
2009-06-13T01:20:00.314754Z Marcos H. Woehrmann
Add yet another _NMAKE_VER check (9.00.30729.01) to msvc32.mak to detect MSVC_VERSION 9 (there has be a better way of doing this). This surpresses a couple of warnings for each cl invocation but shouldn't effect the build.[psi/msvc32.mak]
2009-06-10T13:10:31.212563Z Ken Sharp
Fix (pdfwrite): Bug in pdfmark processing Details Bug #690525 "hyperlinks in pdf off by one page since revision 9779" Revision 9779 fixed a problem when a DOCVIEW pdfmark did not specify a /Page or View to open the file on. This caused an extra page reference to be created, which caused an invalid xref to be created. This was fixed by altering the page count, but this caused real DEST pdfmarks not to work properly under some conditions. Restored the page count, and used the presence of either a /Page or /View pdfmark to generate a page number, if neither is present no page number is created. This fixes both issues.[base/gdevpdfm.c]
2009-06-09T03:32:01.703357Z Henry Stiles
Changed to use memset when filling white and black lines of a rectangle. This provides about a 10% speedup over copying a byte at a time when printing long jobs where a significant amount of time is spent whitening the page, this improvement was observed on a 2.53 GHz Intel Core 2 Duo (Mac OS X) and we expect similar results on other platforms. No expected changes, the code is functionally equivalent.[base/gdevwts.c]
2009-06-08T18:16:29.884697Z Ray Johnston
Provide for filling zero width areas to prevent dropout in some strange stroked characters. This seems to be the intent of the code, and definitely conforms to the PS PLRM, but the PDF Reference Manual says zero width fills may or may not be filled (although Adobe Acrobat does). This is not (yet) enabled by default, but is provided to simplify regression analysis and for customer 531, bug 690466. DETAILS: The original code in gxfill.c seems quite strange in that usually it will fill horizontal areas sue to the 'adjust_above' and 'adjust_below', but depending on the coordinate, this would sometimes NOT include the horizontal segment. The change to gxfilltr.h adds vertical segments when PSEUDO_RASTERIZATION is in the 'template' (as before) as well as when FILL_ADJUST is in the 'template' and the 'adjust' left and right values are > 0.[base/gxfilltr.h base/gxfill.c]
2009-06-08T03:10:40.894198Z Henry Stiles
Previously we identified a banding device by checking if its get_bits_rectangle procedure was the same as the procedure used in the constant procedure declarations gs_clist_device_procs. This conditional has not been correct since the multi-threaded code, the get_bits_rectangle() procedure is overridden with a new procedure get_bits_rectangle_mt() and all devices were detected as non-banding. We change the procedure checked to be open_device and don't expect this to be overridden, but the code is still somewhat awkward. The broken conditional resulted in non deterministic behavior in the wtsimdi device, indirectly causing the complexity array to be uninitialized.[base/gdevprn.c]
2009-06-05T12:52:53.651342Z Ken Sharp
Fix (pdfwrite) : Bug with DOCVIEW pdfmark handling Details bug #690514 "PageMode DOCVIEW pdfmarks result in broken PDF file" Using the the /PageMode DOCVIEW pdfmark without using another DOCVIEW pdfmark which directly references a page (eg specifying the page to open on via /Page) results in a spurious extra entry in the xref table, referencing the first page object. This is caused by the pdfwrite routine 'pdfmark_make_dest' which calls 'pdfmark_page_number'. If there is no specified /Page in the pdfmark, then a new page reference for the 'next' page is allocated in the xref table, using the location of the current page. This is the source of the spurious entry. Note that the DOCVIEW code seems to assume that there be at most one /Page or /View pdfmark in the array. Fixed by decrementing the page count in pdfmark_page_number if the string being parsed for a page number is empty.[base/gdevpdfm.c]
2009-06-05T05:55:54.211001Z Alex Cherepanov
Switch to 32-bit PostScript integers on 64 bit platform. Bug 690474.[psi/iparam.c psi/zfile.c psi/zfunc4.c psi/zcontrol.c psi/ibnum.c psi/ztype.c psi/zdict.c psi/iscannum.c psi/idparam.c psi/zfcid0.c psi/ibnum.h psi/zdps.c psi/zmath.c psi/iscanbin.c psi/iutil.c psi/iref.h psi/iscan.c psi/idebug.c psi/zstack.c psi/ziodev.c psi/zarith.c base/gsalloc.c psi/zgeneric.c]
2009-06-05T04:25:51.460104Z Alex Cherepanov
Validate /Border attribute of annotations. Following AR, use invisible border when /Border value is incorrect. Bug 690509.[Resource/Init/pdf_main.ps Resource/Init/pdf_draw.ps]
2009-05-31T02:50:09.248528Z Alex Cherepanov
Current PDF font loader fails when Type 1 font executes 'restore' at the end of the file and discards all the collected data. The patch breaks the check for /UniqueID in the font to force a branch without 'restore'. Bug 690502.[Resource/Init/pdf_font.ps]
2009-05-30T00:22:20.429756Z Ray Johnston
Fix the file stream opening logic so that when the open failed, it did not leave buffers and other structures up to the GC for collection. This only affected PS and PDF, but happened on files that needed fonts that were not immediately in the Fontmap. This resulted in up to on the files from bug 690422. DETAILS: Since the file streams were allocated in 'system' VM, and the 'limit' was not set when the vmthreshold was set, this "leak" could result in excessive GC colletion operations.[base/sfxcommon.c base/stream.c]
2009-05-29T14:02:04.750188Z Ken Sharp
Fix (Graphics library) : Inappropriate testing of shading co-ordinates Details The Gouraud free-form mesh shading code was testing to see if the Xmin and Xmax co-ordinates of the Decode array were the same, and flagging an error if so. The spec does not say this is an error and Acrobat happily displays the PDF. In addition there was no test against Ymin and Ymax, so the test has been removed[base/gsshade.c]
2009-05-29T06:48:44.622628Z Ralph Giles
Update the included copy of jbig2dec with the 0.10 release. This merges changed made to the version of the gs tree with upstream fixes, including the buffer overrun fix for CVE-2009-0196. See CHANGES for a more complete summary.[jbig2dec/aclocal.m4 jbig2dec/config_win32.h jbig2dec/sha1.c jbig2dec/jbig2_metadata.c jbig2dec/jbig2_image_pbm.c jbig2dec/install-sh jbig2dec/jbig2.c jbig2dec/jbig2_generic.h jbig2dec/jbig2_image.c jbig2dec/configure jbig2dec/Makefile.in jbig2dec/jbig2_metadata.h jbig2dec/jbig2.h jbig2dec/jbig2_priv.h jbig2dec/jbig2_image_png.c jbig2dec/jbig2_image.h jbig2dec/depcomp jbig2dec/compile jbig2dec/jbig2dec.c jbig2dec/os_types.h jbig2dec/config.h jbig2dec/configure.ac jbig2dec/jbig2_arith.c jbig2dec/jbig2_symbol_dict.c jbig2dec/jbig2_arith.h jbig2dec/jbig2_page.c jbig2dec/jbig2_symbol_dict.h jbig2dec/jbig2_arith_int.c jbig2dec/jbig2_hufftab.h jbig2dec/jbig2_huffman.c jbig2dec/jbig2_text.c jbig2dec/jbig2_arith_int.h jbig2dec/jbig2_text.h jbig2dec/jbig2_huffman.h jbig2dec/jbig2_mmr.c jbig2dec/jbig2_refinement.c jbig2dec/jbig2_arith_iaid.c jbig2dec/jbig2_mmr.h jbig2dec/memcmp.c jbig2dec/test_jbig2dec.py jbig2dec/jbig2_arith_iaid.h jbig2dec/config.h.in jbig2dec/jbig2_segment.c jbig2dec/Makefile.am jbig2dec/missing jbig2dec/jbig2_generic.c]
2009-05-25T13:38:00.787533Z Ken Sharp
Fix (colour handling): improper handling of ICCBased space with a /Alternate ICCBased space Details: bug #690495 "Error: /typecheck in --@0x1007f6f0--" It is technically possible (apparently) for a PDF file to contain an ICCBased space which has an /Alternate space which is also an ICCBased space. The existing validation code assumed this would not be the case and reused a reference if the latter space had no /Alternate in order to select an appropriate final Alternate. This led to the latter ICCBased space being replaced by the selected default space, which meant we had fewer spaces than expected when actually setting the space. Fixed by inserting the selected appropriate default space into the ICC dictionary as an /Alternate and revalidating the modified space.[psi/zcolor.c]
2009-05-24T10:16:57.483100Z Ralph Giles
Fix an uninitialized variable warning in FAPI_do_char. Details: Previously the local variable 'code' was used for incidental return value checks, but *also* to set cr.is_glyph_index in in the CID font case. This is because cid_to_TT_charcode() returns 1 on success, but if it can't find a character code for the given cid, it sets the character code to zero and returns zero itself to indicate failure. Zero makes more sense as a glyph id (.notdef) than as a character code, so in this case it's appropriate to set is_glyph_index based on this. The other paths which set 'code' all deal with truetype fonts, so the default success value of zero is also correct. However, there were in theory code paths where code was never set, and so is_glyph_index was being set from an unitialized value; thus the gcc warning. And the double-use of the variable 'code' was hard to read. This commit adds a separate boolean to track whether we've found a character code or not and sets cr.is_glyph_index based on that.[psi/zfapi.c]
2009-05-23T19:11:37.254849Z Ralph Giles
Remove an unnecessary duplicate typedef. Coverity issue 4183.[base/gdevp14.h]
2009-05-23T19:02:08.125913Z Ralph Giles
Remove an unnecessary header include. Coverity issue 2497.[base/lib.mak base/sjpx.c]
2009-05-23T18:37:21.743759Z Ralph Giles
Remove some unused variables. I've left one, the subarray_index, since it may be intended for future development. The others were all trivial.[psi/zfapi.c]
2009-05-23T16:59:58.327296Z Ralph Giles
Correct a cut-and-paste error in r9742. The blend values array logic for multiple master fonts was writing integer element values with a floating point specifier. These are normally floats, which is probably why the error wasn't noticed in testing. Flagged by Coverity as issue 4326.[psi/zfapi.c]
2009-05-23T15:36:33.756259Z Alex Cherepanov
Trap /ioerror and load the font by name when embedded font stream is unreadable. Bug 690492.[Resource/Init/pdf_font.ps]
2009-05-22T09:11:26.614602Z Ralph Giles
Remove a duplicate gs_memory_t structure member from the trace device. In r8803 the image_enum memory pointer was moved from the various subclasses into the common portion of the structure (the superclass). In oversight, that change was not make to gdevtrac.c, breaking compilation because of the now-duplicate member name. This went unnoticed until now because the trace device isn't part of any standard build. Note that I've only fixed the compile error. I have not verified that the trace device still functions properly.[base/gdevtrac.c]
2009-05-22T09:03:35.793845Z Ralph Giles
Correct a typo in the unused gsparam2.c. This was broken in r2849, but went unnoticed because the parameter api rewrite was never developed further. This file isn't part of any standard build.[base/gsparam2.c]
2009-05-21T23:46:45.296083Z Marcos H. Woehrmann
Minor changes for Luratech decoders command line options.[base/Makefile.in]
2009-05-21T19:16:25.645959Z Ralph Giles
Update documentation with the new location for dmmain.[doc/Develop.htm]
2009-05-21T19:13:36.537944Z Ralph Giles
Move the Classic MacOS gsapi client example code to psi, where it more properly belongs.[base/dmmain.r base/dmmain.c psi/dmmain.r psi/dmmain.c]
2009-05-21T19:11:13.444391Z Ralph Giles
Comment improvement in the font api implementation.[psi/zfapi.c base/gxfapiu.c base/gxfapiu.h]
2009-05-21T12:40:07.902153Z Till Kamppeter
The "ps2write" output device produces PostScript which is not DSC-conforming, so do not advertize it as DSC-conforming with a "%!PS-Adobe-..." magic string. Use "%!" instead. Otherwise the "pstops" CUPS filter cannot handle this output (Ubuntu bug #377011).[base/gdevpdfu.c]
2009-05-20T22:33:12.105223Z Till Kamppeter
pstoraster did not work when called with an input file name as the 6th command line argument.[cups/pstoraster.in]
2009-05-20T22:30:48.432212Z Till Kamppeter
Fixed recognition of page size via /cupsPageSizeName. All page sizes were considered custom sizes if /cupsPageSizeName was not set.[cups/gdevcups.c]
2009-05-20T12:17:22.906937Z Tor Andersson
Reformat code to improve readability and fix messed up tab/space indentation. Also removed the m_ prefix on struct fields.[psi/fapi_ft.c]
2009-05-19T22:57:04.259848Z Alex Cherepanov
When /Length attribute is incorrect, PDF interpreter removes it from the stream dictionary. Add support of missing /Length attribute to the pattern handling code. Bug 690488.[Resource/Init/pdf_draw.ps]
2009-05-16T15:29:35.814286Z Alex Cherepanov
Bind all procedures in ps2ai.ps to prevent errors caused by redefined operators, such as redefinition of 'length' as a number in examples/colorcir.ps. Bug 690484.[lib/ps2ai.ps]
2009-05-15T12:13:25.677962Z Ken Sharp
Fix (FAPI) : FAPI doesn't support Multiple Master fonts Details The FAPI code manufactures a stream containing font data for the benefit of FreeType. However, when manufacturing a type 1 font stream it did not account for the possibility of a Multiple Master font (or instance of a MM font). This caused FreeType to generate an error when trying to process glyphs using MM operations. Extended the existing code to manufacture the WeightVector array, $Blend procedure, BlendDesignMap array, BlendDesignPositions array and BlendAxisTypes array if present in the original font.[psi/zfapi.c psi/ifapi.h psi/write_t1.c]
2009-05-13T23:37:28.142726Z Alex Cherepanov
Consider PDF files that has /StmF attribute but no /CF attribute as having ARC4 encryption. Bug 690478.[Resource/Init/pdf_sec.ps]
2009-05-12T20:22:11.794604Z Marcos H. Woehrmann
Removed reference to obsolete file (lwf_jp2_geo.h) that has been merged into lwf_jp2.h.[base/lwf_jp2.mak]
2009-05-12T10:10:53.385307Z Ken Sharp
Fix (ps2write) : Crash caused when converting large shading to image. DETAILS : Bug 690475 "ps2write" segfaults on PDF file of CUPS test suite". When converting a shading to an image for PostScript output, and the resulting image is large (> 512Kb), the code attempts to select an appropriate compression filter. As part of doign this it probes the colour space in an attempt to determine what kind of space it is. However this doesn't work when we have created the image ourselves, as tehre is no associated imager state to probe the colour space resulting in a crash. Modified the compression selection code to not probe the space if there is no imager state.[base/gdevpsdi.c]
2009-05-11T15:19:46.521973Z Ken Sharp
Fix (FAPI) : Type 2 fonts with local Subrs fail Details Type 2 (CFF) fonts may have both local and global subroutines. Normally fonts will only contain a global set, while FontSet fonts may contain both a global set, and a local set per font. The FAPI code, when converting an internal GS representation back into a CFF stream, incorrectly conflated the local and global Subrs into a single GSubrs (global subrs) dict. Additionally it pushed the local subrs first. The result of this is that glyphs using a callgsubr operator retrieved the subroutine, and glyphs using a callsubr would fail because no local Subrs were defined. Extended the FAPI code to retrieve the local and global subrs separately, to write a local /Subrs dict if required, and to correctly calculate the /Subrs offset and store it in the font Private dict when a /Subrs dict is present.[psi/zfapi.c psi/ifapi.h psi/write_t2.c]
2009-05-10T20:56:12.436440Z Henry Stiles
Fill in omitted paper sizes as part of fixing bug #689677. Thanks to Jeffrey Vance for providing several of these paper dimensions. No regression differences are expected.[base/gdevpxen.h]
2009-05-10T16:44:00.640518Z Marcos H. Woehrmann
Use 32 bits for fixed coordinates even on 64 bit cpus. Details: The fixed coordinate system used to be dependent on the size of a long. On x86_64 and other 64 bit systems this was 8 bytes but 4 bytes on other systems. Fixes Bug 690434.[base/gxfixed.h]
2009-05-10T02:59:01.912309Z Ray Johnston
Fix regression caused by the changes to make PCL work. Bug 690463. DETAILS: The primary culprit was that the 'iblock' calculation didn't work if the entire 'cbuf' wasn't empty. The token scanner sometimes refilled when there was still data in the buffer. The 's_block_read_seek' also needed to make sure that the cursor.r ptr and limit (srptr and srlimit) is set correctly before loading the block at the new position. Tested with PCL and PS on the cluster (and of coures on my Windows machine).[base/gsiorom.c]
2009-05-08T13:13:26.891026Z Ken Sharp
Fix : Windows drag&drop has a fixed path limit of 80 characters. Details Bug #690461 "ghostscript can't handle files with long name-paths" The real issue is that the drag-and-drop interface had a fixed buffer of 80 characters, and was unable to process files beyond that limit. It looks like the original code was from some boiler plate sample. Updated the code to use the DragQeryFiles API call to find the length of the full path specification and then malloc a buffer to hold it. Although we would never normally use the system malloc call, this should not be a problem in the Windows-specific code.[psi/dwtext.c psi/dwimg.c]
2009-05-07T15:45:58.755801Z Ken Sharp
Fix PostScript interpreter : ICC colour space could cause crash Details Bug 690472 "ghostscript crashes on pdf file" The code to parse the /Range from an ICC profile stores the data in an array of floats. However, when the Range data was present, the values were incorrectly stored at array locations twice the proper index. This could lead to buffer overflow which in this case corrupted the ICC dictionary being used, causing a crash. Surprisingly this did not come up in testing.[psi/zcolor.c]
2009-05-07T13:06:10.554451Z Ken Sharp
Fix (FAPI) : FAPI doesn't handle Encoding arrays of type mixed_array Details It seems that fonts can sometimes have a 't_mixedarray' Encoding array, odd but true. The FAPI code assumed that Encodings would either be t_array or t_shortarray. Altered the code to allow for t_mixedarray as well.[psi/zfapi.c]
2009-05-07T12:46:25.039496Z Ken Sharp
Fix (FAPI) : FAPI fails when FontBBox is missing Details (see also rev 9692) The FAPI code attempts to modify the FontBBox in the font dictionary after rebuilding a font with a non-GS font renderer. If the FontBBox is missing this creates an error condition. This is generally correct, FontBBox is a mandatory entry in a font dictionary. However, the code can be called to define a (PDF) type1C font, a CFF font, and it is possible (Bug689740.pdf) that the top DICT does not contain a FontBBox. In this case we should inherit the FontBBox from the FontDescriptor in the PDF file, but we don't have a mechanism to do that. Since PDF isn't a programming language the scope for using the FontBBox is pretty limited, so for now I've chosen to ignore the error.[psi/zfapi.c]
2009-05-05T10:40:10.582721Z Ken Sharp
The revision 9699 to quiet a Coverity warning incorrectly tested a char * instead of a char ** for NULL.[base/gdevpdtc.c]
2009-05-05T10:28:48.253152Z Ken Sharp
revision 9714 reformatted a test in a way which left dead code behind. Put the test back as it was, there was no functional difference anyway, this was just done for investigative purposes.[psi/zfapi.c]
2009-05-04T10:59:18.106139Z Till Kamppeter
Removed "cupsEvenDuplex" PPD keyword handling from the "cups" output device again. This keyword is already handled by the pstops and pdftopdf CUPS filters.[cups/gdevcups.c]
2009-05-02T03:12:55.350064Z Alex Cherepanov
Commit .h file missed by the previous revision. Bug 690318, customer 631.[base/gdevtifs.h]
2009-05-02T00:38:13.087492Z Ray Johnston
Supprt -dBigEndian=[true | false] so that the TIFF can be optimized for a target host on a machine of another 'endian' byte orientation. This is a mostly worthless change since the raster data doesn't change (only 16 or 32-bit values have endian issues). Thanks to wendyst2 at gmail.com for this fix. Bug #690318.[base/gdevtifs.c base/gdevtsep.c base/gdevtfnx.c base/gdevtfax.c]
2009-05-02T00:03:15.297730Z Ray Johnston
Add an 'IODevice' aware layer for filesystem enumeration 'gs_enumerate_*' which needs to be used whenever the file is not known to be on the default iodev (%os% by default). Use this in the PDL parser to open fonts so that COMPILE_INITS=1 does not need the fonts on the disk. The default PXL/PCL builds now use COMPILE_INITS=1. Fixes bug #690367. DETAILS: The %rom%ttfonts/ path is placed BEFORE the built-in paths in pjparse.c, but NOTE: the PCLFONTSOURCE environment variable will still supersede the internal paths including %rom%ttfonts.[base/gxiodev.h base/gsiorom.c base/gsiodev.c]
2009-05-01T03:39:24.695161Z Alex Cherepanov
Check for unbalanced q/Q operators in content streams of PDF forms. Add missing Q when needed and issue a warning. Bug 690449, customer 870.[Resource/Init/pdf_draw.ps]
2009-04-30T18:34:49.698412Z Michael Vrhel
Fix for case when blending color space of soft mask is not specified. DETAILS: When the blending color space for the soft mask is not specified, the blending color space is set to UNKNOWN. This is later resolved when the compositor action is handled. In this case, the parents color space or the device color space is used for blending. The code was in place to do this for a transparency group that did not have a defined color space but not for a soft mask. This caused bug 690457 with gxps which should now be resolved.[base/gdevp14.c base/gstrans.c]
2009-04-30T13:14:10.674985Z Ken Sharp
Fix (FAPI): Incremental Type 42 font with GlyphDirectory & missing glyphs fails Details The FAPI code assumed that the routine to extract glyph data from sfnts would always work when a GlyphDirectory is present, and used glyf + loca if this routine failed, assuming that this meant there was no GlyphDirectory. However, the test file Bug687845.ps contains a type 42 incrementally downloaded font which uses a GlyphDirectory and also attempts to access glyphs which aren't defined in the GlyphDirectory. This caused the code to try and use the loca and glyf tables, which aren't present, which caused an error. Modified the FAPI code to return a glyph length of 0 when we have a GlyphDirectory but no defined glyph. This causes GS to render nothing, which matches the regular result as well as the action of Acrobat.[psi/zfapi.c]
2009-04-30T11:15:04.348733Z Till Kamppeter
Adde support for the "*APDuplexRequiresFlippedMargin:" PPD keyword to the "cups" output device, fixed also the margin handling for custom paper sizes.[cups/gdevcups.c]
2009-04-30T10:41:48.084860Z Till Kamppeter
Fixed unprintable margin handling of the "cups" output device.[cups/gdevcups.c]
2009-04-29T18:02:50.832175Z Ralph Giles
Whitespace, line length and C-style improvements to gscolorbuffer.[ch]. These files tend to use 8 spaces instead of tabs; I haven't corrected many of these.[base/gscolorbuffer.c base/gscolorbuffer.h]
2009-04-29T17:02:43.113835Z Ralph Giles
Remove a documentation reference to the gsindent script, which was removed in r8455.[doc/C-style.htm]
2009-04-29T16:56:02.841961Z Ralph Giles
Always initialize the color_remap function pointer. Details: NULL here means a straight memcpy, and the first case statement set that explicitly as a fallback. However, the second did not, so it was possible to reach the check on line 204 without initializing color_remap.[base/gscolorbuffer.c]
2009-04-29T16:39:58.702496Z Ralph Giles
Set native line endings and keyword substitution on gscolorbuffer.[ch].[base/gscolorbuffer.c base/gscolorbuffer.h]
2009-04-29T11:27:38.521368Z Marcos H. Woehrmann
Fixed compiler warning about /* within comment.[base/gdevp14.c]
2009-04-28T22:11:03.867873Z Ralph Giles
Remove the unused including of gxlum.h in the inferno device. The luminance weighting contants aren't used in the inferno driver.[base/gdevifno.c base/contrib.mak]
2009-04-28T22:06:04.042908Z Ralph Giles
Remove the stdlib.h include from the inferno device. This is no longer needed since the malloc/free calls were replaced with gs allocator calls in r9687.[base/gdevifno.c]
2009-04-28T18:41:43.426030Z Till Kamppeter
"cups" output device: Added support for "cupsEvenDuplex" PPD keyword.[cups/gdevcups.c]
2009-04-28T16:44:09.981559Z Till Kamppeter
"cups" output device: Added support for the new "*cupsBackSide:" PPD keyword, fixed "*cupsFlipDuplex:" for landscape documents.[cups/gdevcups.c]
2009-04-28T15:10:49.837556Z Alex Cherepanov
Take measures against Type 1 fonts that do 'systemdict begin' and bypass all our font loading tricks. Bug 690450, customer 870.[Resource/Init/pdf_font.ps]
2009-04-28T13:31:02.272975Z Ken Sharp
Ensure the pointer to standard cmap names is properly initialised before dereferencing it. This is only to silence Coverity, the pointer is initialised to a static array and so should never be invalid.[base/gdevpdtc.c]
2009-04-28T13:23:46.582627Z Ken Sharp
Correct a potential buffer overrun. This looks like an oversight, the maximum size is properly calculated taking the buffer length and data size into account, and used to copy the data, but the trailing 0x00 (C string terminator) was written using the data size without checking for a buffer overrun. Warning from Coverity.[base/gstype42.c]
2009-04-28T13:16:17.700417Z Ken Sharp
Check return value from cos_dict_put_key when writing document metadata. Warning from Coverity.[base/gdevpdfe.c]
2009-04-28T09:04:10.426584Z Ken Sharp
Fix (pdfwrite) : Enlarge the hardcoded threshold for subsetting True Type fonts. DETAILS : Patch and log supplied by Leonardo. Bug 689236 "pdfwrite disregards -dSubsetFont= with TrueType". This fixes the valid part of the bug, which is related to not-subsetting True Type fonts. The supplied example exceeds the hardcoded constant of 500 glyphs, so the font was always subset. Here we enlarge the threshold to a more reasonable value. Note it doesn't affect regular runs with "standard" distiller parameters. ref# leo2079.[base/gdevpdtb.c]
2009-04-27T16:24:33.581172Z Ken Sharp
Fix (FAPI) : FAPI fails when FontBBox is a packed array Details The FPAI code attempts to modify the FontBBox in the font dictionary after rebuilding a font with a non-GS font renderer. However it assumed that the FontBBox would always be a regular array, capable of handling real numbers. Some fonts have FontBBox arrays which only contain small integers, and which are therefore stored as packed arrays (t_shortarray in GS). This was cuasing the FAPI code to throw an error. Modified the code to replace the packed array with a full array before filling in the new values, if the original array was packed.[psi/zfapi.c]
2009-04-27T16:02:10.792862Z Till Kamppeter
Let "cups" output device take into account page size names. The "cups" output device has selected the page size for determining the margins only by the size and not by the name. So it was not possible to have different page size entries with the same size and different margins in the PPD, for example for fullbleed. This is fixed now. Fix done after a report from the HPLIP team on the OpenPrinting Summit 2009.[cups/gdevcups.c]
2009-04-27T06:25:19.306977Z Alex Cherepanov
Fix 2 oversights in AES decryption code: (1) add enumeration of ctx member in AES state. Unmovable blocks are still garbage collected and need enumeration; (2) use correct names to access /CFM attribute in PDF file. Bug 688958, customers 870, 850, 531.[base/saes.h Resource/Init/pdf_sec.ps]
2009-04-24T17:39:56.201358Z Ralph Giles
Replace malloc with gs_alloc_bytes in the inferno device. Details: The inferno device allocates an image writer struct in initwriteimage, and later frees it when a null buffer is passed to writeimageblock. We prefer to use gs_alloc_bytes instead of calling system malloc because it respects memory contraints requested by the client. Note however that the w pointer is local to inferno_print_page and not traceable. This is fine and the structure doesn't have a lifetime outside that function. If it did, it would need to be stored and enumerated in inferno_device. Note that this requires modifying the two utility functions to take a memory pool pointer.[base/gdevifno.c]
2009-04-24T17:39:54.075505Z Ralph Giles
Dynamically allocate the inferno line buffer. Previously, the scanline buffer was a 16k stack allocation. We still reject bitmaps larger than that because of format limitations (so large jobs above 300 dpi often fail with the inferno device) but now we only allocate as much storage as needed, and on the heap instead of the stack.[base/gdevifno.c]
2009-04-24T14:10:48.907852Z Ken Sharp
Enahncement (FAPI) : Allow FAPI to work with pdfwrite. DETAILS : FreeType could not be used with pdfwrite for any purpose, even to render fonts for bitmap fallback. This seems overly pessimistic. This patch allows FAPI font rendering engines to work with pdfwrite, this will mean the FAPI interface is used for the selected types of font (see FAPI for documentation) including CharString decoding and especially rendering to bitmaps for type 3 font fallback. In general pdfwrite uses its own routines to write and convert font types as required, but it does not render any kind of font data, so if it is unable to handle a font type it relies on the graphics library to render the glyph to a bitmap, which is then stored in a type 3 font. The FAPI code checks the device parameters to see if 'EmbedFontObjects' is true, and does not attempt to use the FAPI for fonts if it is. So firstly we alter the device parameters in pdfwrite to set this to false. The FAPI code was assuming that the text enumerator it received would always be a 'show' enumerator, and extracted a pointer to the graphics state from it. Of course if the device is pdfwrite then the text enumerator will instead be a pdf_text_enum. Modified the code to check the object type of the enumerator and use the pointer to the imager state (checking it is a st_gs_state type) if this is not a show enumerator. Also only update the 'cc' fields in the enumerator if this is a show enumerator. Note that because the CharString and font validation is handled by the font rendering engine, it may differ from the GS engine regarding the validity of fonts.[psi/zfapi.c base/gdevpdfp.c]
2009-04-24T01:06:32.141706Z Ralph Giles
Allocate the inferno device's color cube dynamically. DETAILS: The inferno device generates a color cube on device open, ostensibly to speed up the palette mapping. Previously this was stored in a global array, adding 16 or 32 KB to the constant memory footprint of ghostscript. Instead, this commit allocates the color cube dynamically, storing a pointer to it in the inferno_device structure. A custom structure descriptor is added, and propagated through the new prn_device construction macros, so it can be traced by the garbage collector. In this way, the memory is only used when the inferno device is active.[base/gdevifno.c]
2009-04-24T01:06:30.215529Z Ralph Giles
Add a new prn_device_stype_body() construction macro. Previously, all the printer device structures assumed there were no additional pointer members in any subclass, and always installed the st_device_printer structure descriptor. This may account for why so few devices bother with point enumeration. Or perhaps it's the other way around. In any case, this commit adds two new construction macros for filling in device structure templates: prn_device_stype_body and prn_device_margins_stype_body. These take an additional argument, the address of the subclass structure descriptor, after the device name, and propagate it to the std_device_full_body_type macros.[base/gdevprn.h]
2009-04-24T01:06:28.058835Z Ralph Giles
Comment out the prototype for a commented out function in the inferno driver. Fixes a gcc warning.[base/gdevifno.c]
2009-04-24T01:06:25.015250Z Ralph Giles
Add a prototype for init_p9color() in the inferno driver. Fixes a warning on gcc.[base/gdevifno.c]
2009-04-24T01:06:22.357332Z Ralph Giles
Remove trailing whitespace in the inferno driver.[base/gdevifno.c]
2009-04-22T19:51:30.624349Z Michael Vrhel
Allow inline images in pdfwrite. DETAILS: This had been disabled during the softmask branch work. With the fix that Ray did to avoid having softmask images to be processed outside the 3X code with an extra softmask group, we can re-enable this. From a test that Ken did we need the ability to do in-line to avoid creating large files in certain cases with pdfwrite.[base/gdevpdfi.c]
2009-04-21T15:01:01.102780Z Ken Sharp
Initialise a couple of structure members to avoid a Coverity warning.[base/gdevpdfg.c]
2009-04-21T07:55:30.518210Z Ken Sharp
Add a check for a NULL pointer before using it. In fact this should not be possible but it silences another Coverity warning.[base/gdevpdtc.c]
2009-04-20T19:35:15.102625Z Michael Vrhel
Add missing gscolorbuffer.c and gscolorbuffer.h that should have been in soft mask branch merge. See previous commit message for differences and details.[base/gscolorbuffer.c base/gscolorbuffer.h]
2009-04-20T19:16:24.907829Z Michael Vrhel
This is a merge of the smask_work branch into the trunk. The merge fixes issues related to missing soft masks, improperly rendered soft masks and transparency group color spaces. It addresses a number of bugs including 688728 689422 689512 689931 688601 689968 690958 690115 690157 and 690170. DETAILS: This commit is a compilation of changes that occurred in the smask_work SVN branch. That branch was created with rev 9134 on Oct 8 2008. The final commit to that branch was with rev. 9665. For extreme details on the changes in this commit, you can review the commit messages within that branch. Soft masks: The basic architecture for the soft mask remains in place; where by the soft mask is composed with the popping of the transparency group. In performing soft mask operations, the current code pushes a soft mask, which creates a new buffer. This buffer is then rendered into. Once the soft mask drawing is completed, the soft mask is popped. This operation moves the soft mask buffer into the mask buffer of the parent transparency group. When that transparency group is popped, it should be composed with its parent layer, while being adjusted with the soft mask buffer values. If there was never a transparency group that was popped following the soft mask, then the soft mask would not be applied. The solution to this issue involved changes in pdfdraw.ps that forced the creation of a transparency group when one had not yet been created if a soft mask push was to occur. When this extra group is popped, the soft mask will then be applied. The PDF interpreter knows that a SMask exists in the ExtGstate when 'SoftMask' is not null. Since the ExtGState elements are part of the top dict, the 'begin' .. 'end' part of the 'q' and 'Q' operators, respectively, take care of keeping the SoftMask current. When a transparency group is executed, the SoftMask is set to null since the SMask saved in the pdf14 'maskbuf' element will be applied during the blending when the transparency group is popped. Soft masks are now drawn in the specified group color space. Previously, the soft mask was drawn in the target device color space and then the K channel for the CMYK case or the R channel for the RGB case were used as the soft mask luminance channel. Now the mapping from the DeviceRGB or DeviceCMYK to a luminance component is performed as specified by the PDF specification. If the color space is CIE based, the base device space is used. This CIE case does not follow the PDF specification but does follow what occurs with Acrobat Reader. Previously the code carried around the soft mask buffer as an RGB or CMYK buffer. It is now represented by a gray buffer. Transparency groups: Color space changes for transparency groups are now followed. Previously, the target device color space was always used for blending. Now the proper color space is used, with the exception of ICC and other CIE based spaces. For those spaces the base device color space is used. The ICC and CIE based spaces will be addressed when the ICC branch is merged. Changing the current code to do forward and backward mappings with the ICC color spaces is beyond the work scope of the smask_work branch. In the presence of nested transparency groups, the parent color space can be different than the child color space. When the child is popped, its contents are now converted from the child’s color space to the parent’s color space. Note that if the output device is a separation device, the transparency group color space is ignored and the blending is performed amongst the channels, which can be numerous if there are many spot colors. Also note that for soft mask groups, the alternate tint transform is always used for spot colors. To achieve these fixes, a number of changes besides those already mentioned above were required. These include: A dynamic update of the pdf14 device colorinfo value based upon the color space of the current transparency group. This information is used often in deciding how to encode and decode the color data. In the case of the clist writer and reader, the code often ends up forwarding certain operations to the target device in which case we no longer would have the colorinfo of the pdf14 device. The solutions to this problem required the addition of a clist_color_info member value to the clist writer device. This value is updated in the same manner that the pdf14 device will be updated during the clist reader phase thereby ensuring the proper color information is written and read. Also required was the addition of a trans_device item to the imager state. This was needed due to the fact that the clist writer forwards its fill path command to the target device. In the shading code, if we have a DeviceN color space we eventually get back to pdf14_cmap functions, assuming we have a RGB or CMYK target device. These cmap functions should make use of the clist device to map to the proper blending color space NOT the target device color space. In the current code, the cmap functions can only see the target device and the imager state hence the solution to add trans_device to the imager state. This is only used during clist writing and assigned during the clist writers PDF14 fill path at which point it is assigned the address of the clist writer device. During the PDF14 cmap functions, if the trans_device is not NULL in the imager state we use that device's color mapping procs instead of the target device color mapping procs. In this approach, we maintain access to the transparency group color space and its procedures through the imager state. Finally, shading fills should NOT occur in the device color space when we are within a transparency group with a different color space. To avoid this issue a boolean named has_transparency was added to the imager state. Now if we find that we are in a transparency group during the shading fills, then the is_linear_color_applicable operation will return a false and the target color space is not used for blending. To maintain the changing pdf14 color space information in the presence of nested groups, parent_color_info_procs was added to the already nested pdf14_buf_s where the new pdf14_parent_color_t contains the information related to the parent’s color space. This handles the nesting of color information for the clist reader. For the clist writer, pdf14buf is always NULL. For this case, a pointer to a pdf14_parent_t was added to pdf14_device_s. A stack was created and the color information is pushed on and popped off the stack as the transparency groups are pushed and popped during the clist writer phase. Changes were also required in pdfdraw.ps to handle the case when a transparency group does NOT define a color space. In this case, the parent’s group color space (or the target device color space if we are at the first level) should be used. In the presence of a monochrome target device, the previous code PDF14 device was still pushing an RGB buffer initially. This is now changed and a monochrome buffer is created. There was much confusion in the code relating to the number of colors, separations, spot colors, and process colors. This became clear when looking at a file that had over 100 colorants. GX_DEVICE_COLOR_MAX_COMPONENTS defines the max number of different colors that we currently encode. This should include both the process colors and the spot colors. Many parts of the code looked at these colors differently. Some portions of the code treated the number of spot colors and/or separations as having a range to GX_DEVICE_COLOR_MAX_COMPONENTS, while other parts include the process color AND the spot colors in that range. The changes here ensure that GX_DEVICE_COLOR_MAX_COMPONENTS defines the max number for all process and spot colors. The current code did not recognize patterns with transparency in PDF. Now, the presence of transparency in a pattern is detected. If a transparency component is found, the pdf14 compositor is installed. Finally, pdf_draw.ps was modified so that when an image is encountered with a softmask (/doimagesmask) AND the output device is pdfwrite then we do avoid the DoImage that is used to fill the softmask buffer for the pdf14 device. The pdfwrite device will obtain the maskdata as part of image3x. Previously, the mask image was at times being placed in-line for the pdfwrite device during the DoImage that is associated with storing the softmask buffer in the pdf14device. In the old flow, the SMask image was effectively being processed twice.[psi/zcolor.c base/gxclimag.c base/gxpcmap.c base/gdevdevn.c psi/ztrans.c base/gsovrc.c base/gdevpdft.c base/gxblend1.c base/gxcie.h /trunk/gs base/gxshade6.c base/gxclpath.c base/gsptype1.c base/gsccolor.h base/gsptype1.h base/gsistate.c base/gximag3x.c base/gscspace.c base/gxclutil.c base/lib.mak base/gxistate.h base/gscspace.h Resource/Init/pdf_main.ps psi/int.mak Resource/Init/pdf_draw.ps psi/zpcolor.c base/gxdevcli.h Resource/Init/pdf_ops.ps base/gdevp14.c base/gxclrect.c base/gxclist.c base/gdevp14.h base/gdevtsep.c base/gxdcolor.c base/gstrans.c base/gxclist.h base/gstparam.h base/gxblend.c base/gstrans.h base/gdevpdfi.c base/gxblend.h]
2009-04-20T17:44:20.115590Z Till Kamppeter
Added "cdnj500" device to support HP DesignJet 500 (patch from Timur Maximov).[contrib/gdevcd8.c contrib/contrib.mak base/configure.ac]
2009-04-20T15:59:07.741446Z Ken Sharp
Update revision 9658 to silence a second Coverity warning and potential dereference of a NULL pointer. Should still be impossible and is definitely an error condition.[base/gdevpdtc.c]
2009-04-20T15:54:38.325839Z Ken Sharp
Add a check to ensure a font pointer is valid before dereferencing it. This should always be the case, but its worth checking to avoid a crash and should silence a Coverity warning.[base/gdevpdtc.c]
2009-04-20T15:43:56.142408Z Ken Sharp
initialise first_visit in the gs_cpath_enum structure with a dummy value. This will be overwritten when the enumerator actually starts, this is only to silence a warning from Coverity.[base/gxcpath.c]
2009-04-20T14:59:33.677002Z Ken Sharp
Initialise a member of a struct to silence a Coverity warning. The warning about use of an uninitialised variable is actually bogus, the value is copied, but not otherwise used.[base/gdevpdfg.c]
2009-04-20T14:31:15.938087Z Ken Sharp
Check the length of the 'binary mode' file access string before strcat'ing it, to prevent a potential (but not actual) buffer overflow. Silences a Coverity warning.[base/gdevpdf.c]
2009-04-20T14:27:28.365570Z Ken Sharp
Reformat a conditional sprintf to silence a Coverity warning.[base/gdevpdfu.c]
2009-04-20T12:38:51.604664Z Ken Sharp
Fix (colour) : Ensure /UseCIEColor sets for initial space correctly. Details bug #690432 "/UseCIEColor not working with default colour space" The change to process colour and colour space in C instead of in PostScript overlooked code in gs_setpd.ps which interacts badly with an optimisation. The optimisation skips changing colour space if its the same as the current space. But if /UseCIEColor has changed value we must not skip the change. This was achieved previously by only skipping the change if UseCIEColor was false, and setting the space to something other than DeviceGray in gs_setpd.ps. We take advantage of the same trickery by always setting the space to something other than DeviceGray in gs_setpd.ps, in the knowledge that initgraphics will switch the current space back to DeviceGray. Because the spaces don't match we will process the change, getting the correct result for UseCIEColor.[Resource/Init/gs_setpd.ps]
2009-04-20T12:07:28.372687Z Alex Cherepanov
Some broken TrueType 1 fonts may declare more tables than they actualy have. Use .peekstring instead of for readstring for resding the font directory to avoid positioning non-seekable input stream past the 1st table data. Bug 690423, customer 580.[Resource/Init/gs_ttf.ps]
2009-04-20T06:56:10.039816Z Ken Sharp
Fix (pdfwrite) : Work aroung wrong numGlyphs. DETAILS : Patch and log supplied by Leonardo. Bug 690047 "Incorrect cmap generated by pdfwrite". If a source True Type font defines numGlyphs lesser then the actually defined number of glyphs, the old code writes an incorrect True Type header with wrong offsets to subtables. Since in nowadays the number of glyphs may be increased due to font merging, we decided to write the extended subtables with a bigger number of glyphs. See comments in code. See enlarged_numGlyphs and related code portions. The original numGlyphs is kept unchanged for easier debugging. For an easier debugging added checks into psf_write_truetype_data for comparing actual subtable offsets with ones written into the True Type header. The new structure subtable_positions works for that. Also improved a printing in gs_type42_font_init. The old code can print occasional garbage beyond the font name end. ref# leo2077.[base/gstype42.c base/gdevpsft.c]
2009-04-18T22:07:42.659183Z Ray Johnston
Improve the documentation related to the %rom% file system, searching when the executable is built with COMPILE_INITS=1 (the current default on most platforms) and the (mostly deprecated) older methods for compiling Type 1 fonts and Halftone into threshold arrays.[doc/Use.htm doc/Make.htm]
2009-04-17T08:16:45.715059Z Ken Sharp
Change #include of stdlib.h to use angle bracket form to avoid local path searches.[base/gdevpdfj.c]
2009-04-17T00:32:26.343700Z Ralph Giles
Remove unnecessary includes of gserrors.h in the jpeg stream module. Fixes two coverity warnings.[base/lib.mak base/sjpegd.c base/sjpege.c]
2009-04-16T16:00:34.882286Z Ken Sharp
Fix (pdfwrite): Ignore missing side bearing/width in type 1 fonts. Details: Bug #689573: "glyphs with no (h)sbw cause error with pdfwrite". Fonts which contain glyphs that do not begin with a sbw or hsbw operator are technically invalid, but Acrobat Distiller, and other PostScript rips, ignore the error and render the glyph with a side bearing and width of 0. Modified the type 1 font code and the type 1 to type 2 (CFF) conversion code to assume that such glyphs have a width and side bearing of 0 and are not a cause for error.[base/gstype1.c base/gxtype1.c base/gdevpsfx.c]
2009-04-15T20:08:27.661663Z Alex Cherepanov
Some broken Type 1 fonts define some of the attributes in the external scope instead of defining them in the font dictionary. The patch tries to pick the keys from the external scope and put them back to the font dictionary. Bug 690418, customer 1110.[Resource/Init/pdf_font.ps]
2009-04-15T19:18:47.976886Z Henry Stiles
On modern processors the c library's memset is usually faster than our custom inline coding. At least, using memset on recent windows, mac, and linux platforms is appreciably faster for very long simple jobs where erasing the page is significant relative to total job time. Using the library's memcpy needs more investigation, it does not seem to have significant impact on performance and also results in many regressions which we haven't checked.[base/gdevm24.c]
2009-04-15T06:50:51.933830Z Alex Cherepanov
Detect /Pages node without /Kids and bail out early. The code that tries to determine the number of pages in the document takes such node as a /Page node, which causes very long search for the last page. Bug 690389.[Resource/Init/pdf_main.ps]
2009-04-14T04:56:06.103942Z Alex Cherepanov
Write color to the clip list even when it has no variable data, as in [/Separation/None ...]. Fix a bug introduced by r. 8770 that causes rendering of invisible objects with the last visible color. Bug 690395, customer 330.[base/gxclpath.c]
2009-04-13T07:39:20.206752Z Ken Sharp
Silence some Coverity warnings (reasonable warnings, but not actually problems).[base/gdevpdfj.c base/gdevpdtb.c base/gdevpdfe.c]
2009-04-13T07:31:25.084782Z Ken Sharp
Fix a typo in a comment.[base/gdevpdtt.c]
2009-04-11T12:20:22.013355Z Alex Cherepanov
Repair broken PDF files created by "OKI HotKey" that misspell "endobj" as "enbobj". Bug 690397.[Resource/Init/pdf_base.ps]
2009-04-11T04:59:50.073474Z Ray Johnston
Fix for crash on 18-02B in clist code. The clist cbuf (on the stack) would write past the end of the buffer are polluting the next varaible on the stack (data_bits). Fixes 690399. DETAILS: This problem was introduced with r8712 (leonardo). The return value for gx_dc_pattern_read_raster should be the number of bytes consumed, but in some (rare) cases it would return 0, causing a later contamination of a byte past the end of a buffer on the stack, polluting another value. The effect would be dependent on the 'endian-ness' since only one byte was overwritten. Also 'protection' for this condition was added in top_up_cbuf to prevent future problems.[base/gsptype1.c base/gxclrast.c]
2009-04-10T17:36:04.582061Z Ralph Giles
Remove the reference to needing to compile in pdfwrite, which is confusing to casual users. The pdfwrite device is part of all the default builds.[doc/Ps2pdf.htm]
2009-04-09T13:57:24.013138Z Ken Sharp
Fix (pdfwrite) : Omitted to write CIDToGIDMap when it was Identity, even if writing PDFA Details When writing CIDFontType2 fonts we should emit a CIDToGIDMap entry, which we do. However if the map is the identity then we are permitted to omit it. Unless, of course, we are writing a PDF/A compliant file, in which case we must write /Identity.[base/gdevpdtw.c]
2009-04-09T08:44:23.319707Z Ken Sharp
Accidentally removed the prototype for pdf_document_metadata. Restored.[base/gdevpdfg.h]
2009-04-09T08:37:55.568580Z Ken Sharp
Fix (pdfwrite): remove unused code for Font metadata. Details: Bug #690391: "PDF/A support generates invalid object references to font metadata". The code for writing font metadata in PDF/A output was temporarily disabled to fix problems with PDF/A output. It seems Acrobat cannot be persuaded to validate any file containing font Metadata as PDF/A compliant, and Distiller cannot be persuaded to create a PDF file containing font metadata. The code has now been permanently removed.[base/gdevpdfg.h base/gdevpdtb.c base/gdevpdfe.c]
2009-04-08T21:11:18.174166Z Ray Johnston
The massive 'DeviceN' commit (r2925) broke this. The correct b_w w_b palette should not rely on color_info.polarity, but instead needs to be determined from the value of color black. Inverted if black is not 0. Bug 690314 for customer #661. DETAILS: In page buffer mode, the 'palette' was set up during the first ht painting operation from gdevmr1.c. This code was only used in clist mode when making the 'buffer device' for the band.[base/gdevmem.c]
2009-04-07T16:07:22.605043Z Ken Sharp
Removed the function pdf_color_space, which simply called pdf_color_space_named, with two additional fixed parameters, NULL and 0. Because these two function called each other Coverity seemed unable to deal with the recursion and logged numerous STACK_USE errors. Also, its much easier to follow a single function when debugging.[base/gdevpdfk.c base/gdevpdfg.h base/gdevpdfb.c base/gdevpdfc.c base/gdevpdft.c base/gdevpdfv.c base/gdevpdfg.c base/gdevpdfi.c]
2009-04-07T10:20:02.752832Z Ken Sharp
Fix (ps2epsi): rounding problems calculating bbox. Details: Bug #688500 "ps2epsi produces too-narrow bounding box (2)". Text and linework rendered at low resolution can differ by a few pixels from that rendered at higher resolution because of serifs, miters etc. The ps2epsi script rendered the job at low resolution and used that both to calculate the bounding box, as well as for the epsi preview. This could lead to small errors if the job was re-rendered at a higher resolution The new approach is to use the bbox device in Ghostscript to calculate a more accurate bounding box. This has meant altering the scripts for all the operating systems. Also, the ps2epsi.bat file did not work correctly under Windows Vista. A new 'cat.ps' file has been added to gs/lib. This uses the %infile% and %outfile% environment variables and concatenates the two files together. This only affects the Windows batch file.[lib/ps2epsi lib/ps2epsi.ps lib/ps2epsi.cmd lib/cat.ps lib/ps2epsi.bat]
2009-04-06T15:30:47.928660Z Ken Sharp
Fix (pdfwrite): Incorrect handling of short images with subsampling. Details: bug #690350 "Conversion to pdf of a color pcl file generated by pjxl300 gsview 4.9 driver" The PCL file consists of a single large image covering the page. However, the PCL interpreter calls 'process_zero_rows' (rtraster.c) which has the side effect (sometimes at least) of closing the image and restarting it. Pdfwrite already has code to handle a short image like this, it replaces the image dictionary /Height value with the number of rows of data actually received. However, if subsampling is enabled, this can be incorrect, some of the rows of received data may have been discarded. Altered pdf_end_image_binary to check if subsampling is taking place and if it is to calculate the subsample factor and divide the number of rows of data received by the subsample factor before storing as the new /Height.[base/gdevpdfj.c]
2009-04-06T13:48:44.630941Z Alex Cherepanov
Skip Identity /TR function in soft mask dictionary on PostScript level instead of passing {} to .begintransparencymaskgroup because ref_function() only accepts function made of data and operator %execfunction. Bug 690379.[Resource/Init/pdf_draw.ps]
2009-04-04T16:36:15.613476Z Alex Cherepanov
Revert initial /PolicyNotFount to 1. The previous value, 7, introduced by ESP Ghostscript merger (rev. 8026) was non-standard and handled by Ghostscript like 0. Fix '/undefined in --setpagedevice--' error in CUPS mode (-dNOMEDIAATTRS) when setpagedevice request has unsupported keys. Bug 690376.[Resource/Init/gs_setpd.ps]
2009-04-04T10:10:56.584771Z Ken Sharp
Enhancement (pdfwrite) : Allow pdfwrite to produce multiple copies of pages. New flag 'DoNumCopies' added. Details Bug #690355 : "pdfwrite ignores the "#copies" setting in PostScript input" The pdfwrite device follows the behaviour of Acrobat Distiller and ignores the /#copies and /NumCopies settings in PostScript. This is at least partly because these can't be expected to work properly with Destination annotations specifying a page as the destination (eg Link or Outline annotations). However CUPS (and potentially other PDF workflow applications) may have no way of determining that application-produced PostScript requires multiple copies to be printed, after the file has been converted to PDF. For the benefit of such applications a new flag 'DoNumCopies' has been added, if present then pdfwrite will duplicate each page in the output as many times as the /#copies or /NumCopies current setting. There is currently no provision for reordering the pages, the duplicates follow the original immediately in page order.[base/gdevpdfx.h base/gdevpdf.c base/gdevpdfp.c doc/Ps2pdf.htm base/gdevpdfu.c]
2009-03-31T15:21:50.984238Z Ken Sharp
Another case of the return value from pdf_attached_font_resource not being checked.[base/gdevpdtt.c]
2009-03-31T15:17:52.100598Z Ken Sharp
Revision 9604 left an uninitialised variable being used. Moved usage beyond initialisation.[psi/zfapi.c]
2009-03-31T14:59:18.448263Z Ken Sharp
Check the return value from pdf_attached_font_resource to silence a Coverity warning.[base/gdevpdtt.c]
2009-03-31T14:52:09.178132Z Ken Sharp
Check the return value from pdf_open_docuemnt to fix a Coverity warning.[base/gdevpdfu.c]
2009-03-31T14:41:29.436551Z Ken Sharp
Remove some unused code relating to embedding font metadata in PDF files.[base/gdevpdfe.c]
2009-03-31T14:33:47.297209Z Ken Sharp
Remove unused variable 'glyph_index' from FAPI_do_char (gcc warning)[psi/zfapi.c]
2009-03-31T14:30:14.712906Z Ken Sharp
Remove a bunch of unused headers to silence Coverity warnings.[base/gdevpdfj.c psi/zfapi.c base/gdevpdfm.c base/gdevpdfo.c base/gdevpdtb.c base/gdevpdfp.c base/gdevpdtc.c base/gdevpdfr.c base/gdevpdte.c base/gdevpdtf.c base/gdevpdfu.c base/gdevpdti.c base/gdevpsfm.c base/gdevpdf.c base/gdevpsf2.c base/gdevps.c]
2009-03-31T14:01:20.321673Z Ken Sharp
Fix (pdfwrite): Incorrect handling of type 1 counter control hints. Details: bug #690349 "corrupt PDF is generated out of PostScript-file with asian fonts" When converting type 1 outlines to type 2 outlines, we were not catering for OtherSubrs 12 or 13 (counter control hints) in the first pass over the font. These operators take a large number of arguments, and these were being left on the font operand stack. This quickly resulted in a stack overflow and an invalidfont error. We now remove the operands from the stack when we encounter them. In addition, the code for writing CIDFontType0 fonts which called the conversion routine was not checking the return value, and carried on trying to embed the font anyway.[base/gdevpsf2.c base/gdevpsfx.c]
2009-03-30T16:26:53.447317Z Ken Sharp
Fix (fonts): Potential dereference of NULL pointer. Details Flagged by Coverity, the FAPI code used op_show_find to get the text enumerator, but did not check the return value, which can be NULL for a failure. Later the enumerator is dereferenced, potentially causing a crash. This is actually almost certainly impossible since this is a finish routine and the enumerator is known to have existed previously, but its good to be safe.[psi/zfapi.c]
2009-03-28T23:47:38.237280Z Alex Cherepanov
Recognize composite fonts and process descendant fonts according to -dShowEmbeddedFonts flag. Bug 690363.[toolbin/pdf_info.ps]
2009-03-28T21:03:25.515606Z Alex Cherepanov
Accept a string (instead of a name) as a possible /FontName value in FontDescriptor. Recover broken PDF file generated by "MapForm". Bug 690365.[Resource/Init/pdf_font.ps]
2009-03-28T19:32:04.398772Z Alex Cherepanov
Ignore /XObject attribute if it's not a dictionary. Recover broken PDF file generated by "Allegro Design Publisher". Bug 690364, customer 870.[Resource/Init/pdf_main.ps]
2009-03-26T13:46:29.711009Z Ken Sharp
Fix (pdfwrite) : NeverEmbed/AlwaysEmbed not working properly. DETAILS : Patch and Log supplied by Leonardo. Bug 689610 "Possible /NeverEmbed vs /AlwaysEmbed problem" The root of the problem is that (1) empty arrays did not work, and (2) existing values of the parameters (before setdistillerparams) were not properly accounted for in setdistillerparams. In the old code, PS and C parts of "embed" parameters implementation are inconsistent each to another and to the documentation. Replacing both with the right logic defined in the Adobe Distiller Parameters specification. The comment in gdevpsdp.c line 81 is kept as the basic interface definition. Note: in the old code param_read_embed_array could not distinguish empty array from no array, but it is important for the Adobe logic. Also psdf_put_embed_param parameters did not correspond to the documentation in gdevpsdp.c ln 81. ref# leo2073.[Resource/Init/gs_pdfwr.ps base/gdevpsdp.c]
2009-03-25T13:00:06.154261Z Till Kamppeter
Fixes in the "cups" (CUPS Raster) output device driver: Fixed segmentation fault due to missing definition of get_color_comp_index() function. Used dummy function gx_error_get_color_comp_index() now (bug 690338). Updated some (currently not used) functions to the current internal API of Ghostscript. Made pre-initialization of device data structure complete.[cups/gdevcups.c]
2009-03-25T05:14:39.001280Z Alex Cherepanov
Don't apply mapped transfer function to the uninitialised buffer. Old code had no effect other than causing Valgrind warnings. Bug 688908.[base/gsht1.c]
2009-03-25T05:01:11.445938Z Alex Cherepanov
When CCITTEncode'd stream is not properly terminated and used as an embedded image, the filter may consume 'E' from 'EI'. Change PDF interpreter to accept 'I' as a synonym to 'EI'. Bug 690300, customer 353.[Resource/Init/pdf_draw.ps]
2009-03-24T17:07:50.052635Z Ken Sharp
Remove some #ifdef code and some C++ style comments from the FreeType bridge code.[psi/fapi_ft.c]
2009-03-24T15:55:25.161400Z Ken Sharp
Fix (fonts) : Sheared/rotated text incorrect with FreeType bridge Details The FreeType code uses a different order for the transformation matrix elements, we were sending the matrix in PostScript order, resulting in incorrect transformations.[psi/fapi_ft.c]
2009-03-23T15:19:13.060013Z Ken Sharp
Fix (pdfwrite) : Wrong page orientation with italic font. DETAILS : Patch and log message submitted by Leonardo. Bug 689574 "italic/oblique fonts produce incorrect page orientation". Replacing text orientation recognition trick with a right math. ref# leo2072.[base/gdevpdtt.c]
2009-03-23T14:14:38.656422Z Ken Sharp
Fix (fonts) : Coverity warning Details: Move a NULL pointer check so that it is performed before dereferencing the pointer. Warning flagged by Coverity.[psi/zfapi.c]
2009-03-23T13:48:49.969966Z Ken Sharp
Fix (pdfwrite) : Skip OpenType tables EBDT, EBLC, EBSC. DETAILS : Patch and log message submitted by Leonardo. This fixes the large size of the PDF output reported in Bug 689209 "ps2pdf doesn't subset embedded bitmaps". The patch skips Open Type tables that are not required by the PDF specification. A better fix would be subsetting EBDT, EBLC, EBSC (probably what the user wants), but we have not enough examples for testing all possible formats of those tables. Also it will be necessary to compact the glyph index space and re-index subglyphs, otherwise the subclassed EBLC is still too big. In general subsetting TrueType fonts is still a future goal.[base/gdevpsft.c]
2009-03-23T09:40:03.808902Z Ken Sharp
Fix (fonts): Allow copying TT descandants of CIDFonts with no name table. Details: bug #690348 "Error "/invalidfont" when generating PDF" The PDF file for this contains an embedded TrueType font, configured as a CIDFont, and the TT name table is empty (not missing, but empty). This is probably technically illegal. However, we don't actually require the name table, or other font information, when copying these fonts for pdfwrite, so we simply ignore this error in this case.[base/gxfcopy.c]
2009-03-22T04:43:07.001485Z Alex Cherepanov
Initialize Jbig2TextRegionParams.sbrat even when it is not used in calculations because it's included in error messages causing Valgrind warnings.[jbig2dec/jbig2_text.c]
2009-03-20T08:26:50.704630Z Ken Sharp
Fix (pswrite) : extra '%' output in DSC comment Details: bug #690347 "pswrite device generates %%%%BeginPageSetup" Revision 9396 moved the emission of the %%PageBoundingBox comment, but due to an oversight caused the %%BeginPageSetup comment to be emitted with too may '%' characters.[base/gdevpsu.c]
2009-03-19T21:19:31.945883Z Alex Cherepanov
Allocate a file name string returned by .tempfile independently of the file object. Don't free the file name string when the file is closed. Fix a Valgrind warning and potential SEGV.[psi/zfile.c]
2009-03-19T17:01:34.362845Z Ken Sharp
Fix (fonts): Uninitialised variables in FreeType bridge. Details: bug #690344 "FreeType bridge produces lots of 'clipping glyph' warnings" The FreeType bridge code failed to initialise some member variables of a structure when retrieving glyph metrics, leading to spurious warnings.[psi/fapi_ft.c]
2009-03-19T16:40:12.949694Z Ken Sharp
Fix (fonts): PaintType 2 fonts not working. Details: bug #689826 "FT_BRIDGE crashes with CID fonts" The initial problem is that a required table, TT_cmap, was NULL, and was not tested by the CID decoding module before attempting to use it. Further investigation revealed a fair number of problems surrounding this are. The problems stem from the use of a native TrueType font on disk to replace a CIDFont (not from an actual CIDFont as the summary suggests). When using a CIDFont the character code is mapped to a CID using the CMap and the CID is directly used to extract the glyph program from the font's CharStrings dictionary. With a TrueType font that is not sufficient, TrueType fonts use Glyph IDs (GID) and have a completely different method of mapping the encodings. We attempt to handle this by converting the CID to a Unicode value, and then use the TT Unicode CMAP subtable to convert the Unicode value to a GID. With GS' own font handling this works, because we extract the CMAP subtable and carry it around in the font. WHen using FreeType this is not done, and so the conversion fails. Modified the FAPI interface to create a new method 'check_cmap_for_glyph' which will allow us to interrogate the TT CMAP subtable from the FAPI server. Copied sections of CID decoding from zcid.c to zfapi.c in order to perform the same checks as our own code and use the correct Unicode value.[psi/fapi_ft.c psi/zfapi.c psi/ifapi.h psi/fapiufst.c]
2009-03-19T16:10:19.044766Z Ken Sharp
Fix (fonts): PaintType 2 fonts not working. Details: bug #690343 "Fonts with PaintType 2 (outline) not working with FreeType bridge" The FAPI code seems to assume that it will always get an 'e_limitcheck' error when no raster is available. This seems to be true for glyphs too large to cache, but is not the case when the font is intended to be an outline. In this case there is no raster, but the error return is not e_limitcheck. Rather than rely on an error value, modified the code so that if the font has a non-zero PainType, we assume that we only have an outline.[psi/zfapi.c]
2009-03-19T15:59:50.732428Z Ken Sharp
Fix (fonts): Crash caused by missing tests. Details: bug #690342 "GPF/segment violation using FreeType bridge" When using a TrueType font to substitute for a CIDFont, there is no BuildCHar, and so trying to resolve the name will fail, resulting in a GPF. Fixed by testing the name objects before attempting to resolve them.[psi/zfapi.c]
2009-03-19T01:48:02.632278Z Henry Stiles
Fix 689822, the previous code did not free the palette associated with an indexed color space to remain backward compatible wih pcl and pclxl. The previous setup, before 8928, allowed the clients to manage the table for memory. The commented out code in this module was a workaround until we fixed the pcl clients.[base/gscolor2.c]
2009-03-18T22:58:18.105967Z Ralph Giles
Backslash-escape nested parentheses in ps strings. This isn't necessary with the gs scanner, but is considered good practice. Thanks to Ray Johnston for raising the issue.[Resource/Init/pdf_draw.ps]
2009-03-18T21:58:18.821466Z Ralph Giles
Correct diction in unbalanced q/Q warnings.[Resource/Init/pdf_ops.ps Resource/Init/pdf_main.ps Resource/Init/pdf_draw.ps]
2009-03-15T22:42:53.413236Z Alex Cherepanov
Add hagaki (Japanese postcard) paper size to the list of known paper sizes because this format is widely used in Japan and popular PAPERSIZE option takes a paper name. Bug 690213.[doc/Use.htm Resource/Init/gs_statd.ps]
2009-03-14T05:44:00.168304Z Ray Johnston
Fix chunk_resize_object to retain the old data and add gs_debug['A'] debug printing.[base/gsmchunk.c]
2009-03-13T00:19:17.919125Z Ralph Giles
Correct some comment typos in the icclib wrapper. Also removes trailing whitespace.[base/gsicc.c]
2009-03-12T19:43:29.615649Z Ray Johnston
Fix Segfault in the 'resize_object' of the chunk memory wrapper. DETAILS: A typical (unfortunately) instance of using (part of) an object after it has been freed.[base/gsmchunk.c]
2009-03-12T13:32:23.551227Z Alex Cherepanov
Remove code that has no effect other than moving uninitialized data around and causing Coverity warning.[psi/iutil2.c]
2009-03-12T00:18:03.727459Z Marcos H. Woehrmann
Fixed typo introduced in r9545.[base/gdevp14.c]
2009-03-11T22:00:55.007444Z Ray Johnston
Set the log_op (ROP) to a straightforward value when doing the pdf14 put_image ignoring the input imager state log_op. Bug 690321. DETAILS: The rev 8170 alludes to doing something to prevent a similar problem (bug 689186: see DETAILS comment #2 in the log message), but this was NOT the correct solution. When writing the transparency buffer to the target device in the pdf14 POP_DEVICE using the "put_image" proc, we really need to use a ROP that simply allows us to copy the image in 'normal' mode i.e. use rop3_default. The state of the low bits of the clist_playback_band imager_state.log_op is rather arbitrary at the end of the band and not relevant to the put_image operation.[base/gdevp14.c]
2009-03-11T13:46:33.591266Z Alex Cherepanov
Move a variable declaration to the outer block to prevent out-of-scope access and a corresponding Coverity warning.[psi/idict.c]
2009-03-11T12:51:21.059563Z Alex Cherepanov
Propagate error code from gs_path_enum_next() upstream in operator .getpath . Fix a Coverity warning.[psi/zupath.c]
2009-03-10T00:07:03.756709Z Ralph Giles
Add the soclean and debugclean targets to distclean. Bug 690263.[base/Makefile.in]
2009-03-07T22:59:15.942227Z Alex Cherepanov
Increase operand stack to 100000 elements and change stack overflow handling. DETAILS: Following Adobe implementation, copy only a few top elements of the stack to the corresponding element of the $error dictionary when the stack overflows. Adobe copies up to 500 top elements, we copy up to 65535. This feature enables Ghostscript to have maximum stack sizes larger than 65535. The maximum operand stack size is set to 100000 to match Adobe interpreters. The large stack size is needed for some PDF files that construct large dictionaries using << ... >> operators. Bug 690307, customer 850.[Resource/Init/gs_init.ps psi/interp.c]
2009-03-07T21:46:16.367445Z Till Kamppeter
Let pdftoraster CUPS filter not be build with CUPS < 1.2 and allow suppressing build of pdftoraster via command line option (needed for Mac OS X).[cups/cups.mak base/Makefile.in base/configure.ac]
2009-03-05T09:56:07.987614Z Ralph Giles
Look for the 'cmap' table in the font dictionary and use it when mapping a cid to a character code when using the FAPI bridge. This replaces a segfault with an invalid font error. Bug 689826. Details: This clause in FAPI_do_char() was explicitly calling cid_to_TT_charcode() with a NULL TT_cmap argument, which that function dereferenced, causing a segfault. As far as Ken and I can tell, that function can't do anything useful without the cmap table from the underlying font, so it makes the most sense the resolve the segfault this way. However, the ps library code doesn't set this key in the font dictionary, so for now this just replaces the segfault with an /invalidfont in --.FAPIBuildGlyph-- error. We could continue silently by ignoring the mapping if the cmap isn't available down in TT_char_code_from_CID_no_subst() in which case that font just would not render as part of the document. We expect to fix this on the postscript side, so I felt this was a better course for now.[psi/zfapi.c]
2009-03-04T13:27:07.376818Z Ken Sharp
Fix the FreeType bridge code for outlines (result of charpath). The previous code assumed that co-ordinates returned by FT were in a 16.16 fixed precision format, whereas they are actually in a 26.6 form. Rescale the 26.6 to 16.16 before returning to FAPI so that the conversion into GS co-ordinates works correctly.[psi/fapi_ft.c]
2009-03-03T16:23:24.892806Z Ken Sharp
Fix (colour): Faulty error handling Details: bug #690312 "gs stalls, never returns on attached figure" The job causes the 'base' (Gray, RGB, CMYK) colour code to be executed with a completely full stack, which causes a stackoverflow because this routine needs to push the colour space name onto the operand stack. However, the operand stack wasn't being checked until after the continuation procedure had been pushed onto the execution stack, so after the error handling, we returned to the continuation procedure, but without an appropriate operand stack. This caused a loop to run without bounds. Fixed by checking the operand stack beforesetting up the execution stack for the continuation and aborting if it is full. Desk checking revealed another potential case of the same problem, fixed in the same patch.[psi/zcolor.c]
2009-03-02T19:54:01.945423Z Ray Johnston
Add mention of 'vewrgb.ps'. See the source for usage.[doc/Psfiles.htm]
2009-03-02T19:47:28.992085Z Ralph Giles
Update copyright header and file metadata for viewrgb.ps.[lib/viewrgb.ps]
2009-03-02T18:45:32.781041Z Ray Johnston
Add support for BITS=2, remove left over debugging messages. Note that this has only been tested for BITS=1, BITS=2, BITS=8. BITS=4 is not supported (Indexed color space is limited to palette of 4096 colors).[lib/viewrgb.ps]
2009-03-02T17:44:22.371407Z Ray Johnston
Add a utility to view bitrgb files (derived from viewcmyk.ps)[lib/viewrgb.ps]
2009-03-02T06:13:02.641888Z Alex Cherepanov
When /JBIG2Decode filter takes /.jbig2globalctx parameter and retains a pointer to it, the filter must not be allocated in global memory if the parameter is local. Bug 690308.[psi/zfjbig2.c]
2009-02-28T00:03:41.220730Z Ralph Giles
Remove a continued line in a makefile variable. Solaris 'make' doesn't like this. Bug 690311.[psi/psromfs.mak]
2009-02-26T04:07:56.132242Z Ray Johnston
Fix for access to potentially uninitialized memory in gx_hld_get_gstate_ptr when called with an imager_state that is on the stack (as it is when this is called from the clist). Valgrind spotted this. See coment #5 in Bug 690299. DETAILS: The previous method of checking the object type depended on access BEFORE the pointer. This was (margnially) OK for allocated objects, but NOT OK when the structure is stack based.[base/gsstate.c base/gxclist.c base/gxistate.h base/gdevvec.c base/gxhldevc.c]
2009-02-26T03:51:58.114906Z Ray Johnston
Add some documentation on a useful debugging PS operator and it's C code hook.[doc/Language.htm]
2009-02-23T19:17:44.665816Z Marcos H. Woehrmann
Change the maxval value for pkm and pkmraw files from 1 to 255. Details: Some programs (notably Adobe Photoshop through at least CS4) do not correctly read PPM files that have a maxval!=255, displaying them as all black (technically not entirely black, but with pixels set to 0 or 1). This change causes Ghostscript to set maxval to 255 and scale the output bitmap to 0..255. Because PBM doesn't pack pixels in the PPM raw format the output file size will not change; PPM files will up to double in size (previously each pixel used 6 bytes, "1 1 1 ", now each pixel uses up to 12 bytes, "255 255 255 ").[base/gdevpbm.c]
2009-02-23T11:35:26.753646Z Ken Sharp
Fix (ps2write) Details The Debug flag for the new 'center pages' switch was incorrectly spelled as PDFR_DEBUG1 instead of PDFR_DEBUG.[Resource/Init/opdfread.ps]
2009-02-21T20:59:34.903436Z Ralph Giles
Update the msvc build of the freetype bridge for the new link scheme. This commmit fixes some errors in the earlier untested update. In addition, the earlier FT_LIB (singular) makefile variable is resurrected for the msvc build only. It is necessary because the freetype project file embeds the release number of build variant in the library filename. If FT_LIB is not set it defaults to the multi-threaded debug build of the 2.3.8 release. Obviously this should be changed when building a binary for release, or against a different version of the freetype library.[base/winlib.mak doc/Make.htm]
2009-02-20T23:17:14.675067Z Ralph Giles
Replace the hardcoded reference to the FreeType library subpaths with a more direct specification of compile and link flags. The msvc build is untested. Details: Previously, the top level makefile was supposed to define a path to the freetype source directory, along with the platform-specific library filename extension. From this the ft bridge makefile section generated specific references for include paths and the library. This only worked with a specific version of the library. This commit removes the variable for passing the library extension, and relies on the top-level makefile to provide the link commands, passed in the FT_LIBS variable. Such link commands are generally platform-specific anyway, so FT_LIB_EXT was redundant. Likewise, the include path specifiers must be part of the FT_CFLAGS variable. Previously, FT_LIBS was called FT_LIB. We generally use _LIB for a single library name. Having the plural LIBS is more common for an actual link command, which may include flags and other libraries which are dependencies. This variable is used in the second way. The build documentation is also updated to reflect the new scheme, and mention the incremental font support, which seems to be disabled in most builds.[base/winlib.mak doc/Make.htm psi/int.mak]
2009-02-20T23:17:10.859552Z Ralph Giles
Add some missing dependencies to the interpreter makefile. Strangely, these don't help ensure arch.h is built before write_t2.c.[psi/int.mak]
2009-02-20T23:17:08.595733Z Ralph Giles
Replace 'Free Type' with 'FreeType' in the build documentation.[doc/Make.htm]
2009-02-20T23:17:05.547619Z Ralph Giles
Update freetype includes to the currently recommended scheme. Details: In freetype2, the recommended method of including the headers is to include <ft2build.h>, depending on a -I line on the compiler's command line to select the particular location for this, usually something like $(INCLUDE_DIR)/freetype/ This header defines macros which expand to includes for particular features, depending on how the particular freetype instance being built is configured. This means that we can't have explicit dependencies on the headers we use, so those references are also removed. This has a side effect of making it much easier to link with a system version of freetype. However, the fapi_ft bridge requires freetype's incremental fonts feature, which seems not to be enabled by default.[psi/fapi_ft.c psi/int.mak]
2009-02-20T19:10:04.104225Z Alex Cherepanov
Check that gs_init.ps can be found at $(GenericResourceDir)Init/gs_init.ps Issue a warning if this file cannot be found. Bug 690289.[Resource/Init/gs_res.ps]
2009-02-19T18:53:21.845051Z Ralph Giles
Update our internal copy of the libpng source to the 1.2.35 release.[libpng]
2009-02-19T18:52:24.164375Z Ralph Giles
Move the libpng source out of the way for an upgrade.[libpng]
2009-02-19T17:13:36.155519Z Ray Johnston
Fix for segfault reported as bug 690051 caused by the assumption that the architecture had 32-bit integers. Thanks to Wendy for the patch.[base/gdevsgi.h base/gdevsgi.c]
2009-02-17T20:40:38.935981Z Alex Cherepanov
Remove obsolete information from Use.htm. Ghostscript now accepts PDF from standard input and, since rev. 610 flushpage occurs even with -dNOPROMPT .[doc/Use.htm]
2009-02-16T20:00:17.223054Z Ralph Giles
Set native eol-style on the jasper library source. Bug 690292.[jasper/src/libjasper/include/jasper/jas_types.h jasper/src/libjasper/jpc/jpc_cs.c jasper/src/libjasper/mif/mif_cod.h jasper/src/libjasper/pgx/pgx_enc.c jasper/src/libjasper/bmp/bmp_cod.c jasper/src/libjasper/jpc/jpc_cs.h jasper/src/libjasper/ras/ras_dec.c jasper/src/libjasper/pgx/pgx_enc.h jasper/src/libjasper/bmp/bmp_cod.h jasper/src/libjasper/base/jas_version.c jasper/src/libjasper/jpc/jpc_qmfb.c jasper/src/libjasper/ras/ras_cod.c jasper/src/libjasper/base/jas_iccdata.c jasper/src/libjasper/base/jas_seq.c jasper/src/libjasper/jpg/jpg_val.c jasper/src/libjasper/jpc/jpc_qmfb.h jasper/src/libjasper/jpc/jpc_fix.h jasper/src/libjasper/jpc/jpc_tagtree.c jasper/src/libjasper/ras/ras_cod.h jasper/src/libjasper/pgx/pgx_dec.c jasper/src/libjasper/jpc/jpc_tagtree.h jasper/src/libjasper/base/jas_getopt.c jasper/src/libjasper/jpc/jpc_mqenc.c jasper/src/libjasper/include/jasper/jas_getopt.h jasper/src/libjasper/jpg/jpg_dummy.c jasper/src/libjasper/jpc/jpc_bs.c jasper/src/libjasper/include/jasper/jas_init.h jasper/src/libjasper/jpc/jpc_enc.c jasper/src/libjasper/base/jas_string.c jasper/src/libjasper/base/jas_malloc.c jasper/src/libjasper/include/jasper/jas_string.h jasper/src/libjasper/include/jasper/jas_malloc.h jasper/src/libjasper/jpc/jpc_mqenc.h jasper/src/libjasper/pgx/pgx_cod.c jasper/src/libjasper/jpc/jpc_bs.h jasper/src/libjasper/jpc/jpc_t1enc.c jasper/src/libjasper/jpc/jpc_enc.h jasper/src/libjasper/jpg/jpg_enc.c jasper/src/libjasper/pgx/pgx_cod.h jasper/src/libjasper/jpc/jpc_t1enc.h jasper/src/libjasper/jpg/jpg_enc.h jasper/src/libjasper/include/jasper/jas_version.h jasper/src/libjasper/include/jasper/jas_seq.h jasper/src/libjasper/jpc/jpc_mqdec.c jasper/src/libjasper/include/jasper/jas_math.h jasper/src/libjasper/base/jas_stream.c jasper/src/libjasper/jpc/jpc_flt.h jasper/src/libjasper/jpc/jpc_dec.c jasper/src/libjasper/include/jasper/jas_stream.h jasper/src/libjasper/base/jas_icc.c jasper/src/libjasper/jpc/jpc_mqdec.h jasper/src/libjasper/jpc/jpc_t1dec.c jasper/src/libjasper/jpc/jpc_dec.h jasper/src/libjasper/pnm/pnm_enc.c jasper/src/libjasper/jpg/jpg_dec.c jasper/src/libjasper/jp2/jp2_enc.c jasper/src/libjasper/jpc/jpc_mqcod.c jasper/src/libjasper/jpc/jpc_t1dec.h jasper/src/libjasper/pnm/pnm_enc.h jasper/src/libjasper/base/jas_tvp.c jasper/src/libjasper/jpc/jpc_mqcod.h jasper/src/libjasper/jpc/jpc_t1cod.c jasper/src/libjasper/jpc/jpc_cod.h jasper/src/libjasper/jpc/jpc_t2enc.c jasper/src/libjasper/jpc/jpc_util.c jasper/src/libjasper/jpc/jpc_t1cod.h jasper/src/libjasper/jpc/jpc_t2enc.h jasper/src/libjasper/jpc/jpc_util.h jasper/src/libjasper/jpg/jpg_cod.h jasper/src/libjasper/jpc/jpc_mct.c jasper/src/libjasper/include/jasper/jas_image.h jasper/src/libjasper/include/jasper/jas_debug.h jasper/src/libjasper/pnm/pnm_dec.c jasper/src/libjasper/jpc/jpc_mct.h jasper/src/libjasper/include/jasper/jas_config_win32.h jasper/src/libjasper/jpc/jpc_math.c jasper/src/libjasper/jp2/jp2_dec.c jasper/src/libjasper/jpg/jpg_jpeglib.h jasper/src/libjasper/jpc/jpc_math.h jasper/src/libjasper/jp2/jp2_dec.h jasper/src/libjasper/base/jas_cm.c jasper/src/libjasper/include/jasper/jas_icc.h jasper/src/libjasper/include/jasper/jas_cm.h jasper/src/libjasper/jpc/jpc_t2dec.c jasper/src/libjasper/pnm/pnm_cod.c jasper/src/libjasper/base/jas_init.c jasper/src/libjasper/jp2/jp2_cod.c jasper/src/libjasper/include/jasper/jas_config.h jasper/src/libjasper/jpc/jpc_t2dec.h jasper/src/libjasper/pnm/pnm_cod.h jasper/src/libjasper/jp2/jp2_cod.h jasper/src/libjasper/bmp/bmp_enc.c jasper/src/libjasper/include/jasper/jas_tvp.h jasper/src/libjasper/jpc/jpc_t2cod.c jasper/src/libjasper/bmp/bmp_enc.h jasper/src/libjasper/jpc/jpc_t2cod.h jasper/src/libjasper/base/jas_image.c jasper/src/libjasper/base/jas_debug.c jasper/src/libjasper/include/jasper/jas_fix.h jasper/src/libjasper/ras/ras_enc.c jasper/src/libjasper/include/jasper/jasper.h jasper/src/libjasper/ras/ras_enc.h jasper/src/libjasper/jpc/jpc_tsfb.c jasper/src/libjasper/bmp/bmp_dec.c jasper/src/libjasper/jpc/jpc_tsfb.h jasper/src/libjasper/mif/mif_cod.c]
2009-02-16T19:58:09.175955Z Ralph Giles
Convert a jasper source file to unix line endings. Bug 690292.[jasper/src/libjasper/jpc/jpc_qmfb.c]
2009-02-14T00:46:58.521562Z Ralph Giles
Don't strip dynamic driver modules when linking them. This is better done at the install or packaging stages if space is a concern. Also, propagate LDFLAGS to the link command line. This may or may not be what you want, but is more likely to help helpful than not. After a patch by Kevin Pyle. Bug 690288. Originally Gentoo bug 215913.[base/devs.mak]
2009-02-13T09:22:34.492616Z Ken Sharp
Fix (TrueType interpreter): Ignore a 'faulty font' condition Details: bug #689760 "Missing characters: Failed to interpret TT instructions" The font in question is technically invalid. The problem occurs in function 1 of the FPGM table: 00069: PUSHB[2] 0 21 00072: JMPR 00073: ABS 00074: DUP 00075: ROLL 00076: RCVT 00077: DUP 00078: ROLL 00079: SUB 00080: ABS 00081: PUSHB[1] 50 00083: LT 00084: IF 00085: SWAP 00086: EIF 00087: POP 00088: ROUND[Black] 00089: PUSHB[1] 64 00091: MAX 00092: ENDF The JMPR (jump relative) instruction is intended to resume execution at the ENDF instruction, but the number of bytes is miscounted, falling of the end of the function. I suspect some TT interpreters catch this by spotting the fact that the IP is past the end of the function. We don't seem to be able to check if we've fallen off a function, because we don't store function lengths, so this code works around the problem by checking the opcode after we apply the JMPR but befopre resuming execution. If the opcode is *not* ENDF, but the preceding opcode was, assume that we have a counting problem, and move the IP back one instruction. Also applied the same work around to JROT and JROF instructions.[base/ttinterp.c]
2009-02-12T21:07:53.759360Z Alex Cherepanov
Limit the length of a buffer string for CCITTFaxEncode compression in Type 32 font to 65535. Old code used worst case estimation (5x expansion) that exceeded maximum string size for large glyphs. Bug 690286.[Resource/Init/gs_typ32.ps]
2009-02-11T20:35:13.542448Z Henry Stiles
Revert the last change which was completely wrong. The system does not support depth 3 as Ray pointed out. As it turns out the depth is corrected so there is no difference in output between the two configurations.[base/gdevbit.c]
2009-02-11T19:37:42.026795Z Henry Stiles
The default bitrgb device prototype specified a depth of 4 instead of 3. This change will break all regression tests that use bitrgb (hopefully).[base/gdevbit.c]
2009-02-11T15:41:25.950909Z Ken Sharp
Fix (TrueType interpreter): Ignore a 'faulty font' error Details: bug #689471 "Error in Processing Type42 Charstrings" The font in question is missing a glyph in the GLYF table, which is used as a component by a composite glyph. A later instruction then tries to access a non-existent point (probably defined in the missing component), which causes an error. FreeType 1 and 2 both ignore this error unless pedantic_hinting is set, other TrueType interpreters behave similarly. Modified the code in Ins_MIAP to ignore errors of this type, and continue.[base/ttinterp.c]
2009-02-10T19:55:40.527955Z Ralph Giles
Move some components of the freetype bridge to the interpreter source directory. These should have been put there in the source tree reorganization.[base/write_t1.c base/wrfont.c base/write_t2.c psi/write_t1.c psi/wrfont.c psi/write_t2.c base/write_t1.h base/wrfont.h base/write_t2.h psi/write_t1.h psi/wrfont.h psi/write_t2.h]
2009-02-10T17:38:02.642910Z Marcos H. Woehrmann
Make the font cache determinstic. Details: Previously the font cache order was based on the value of the pair pointer. On some (most?) computers this resulted in the cache being filled in a deterministic way but not on the the cluster used for regression testing. The cache fill order is important because it affects which entries are removed when the cache is full which matters because re-rendered glyphs can differ from the cached rendering (a separate bug, 690281, has been opened for this issue). Fixes bugs 690232 and 690233.[base/gxfcache.h base/gsfont.c base/gxccman.c]
2009-02-10T11:56:30.899368Z Ken Sharp
Fix (graphics library): Rotated/skewed text not anti-aliased Details: bug #688032 "Rotated text is not antialiased." A specific test in 'show_set_scale' disabled oversampling of text if it was rotated or skewed. Testing indicates that anti-aliasing does provide some improvement in text, even when it is rotated or skewed, so this test has been removed. Also removed the compile-time option to not cache rotated glyphs by removing the #define CACHE_ROTATED_CHARS and the test against it in show_state_setup. This allowed the removal of the routine 'is_matrix_good_for_caching'.[base/gxchar.c]
2009-02-10T02:17:30.702347Z Ralph Giles
Propagate LDFLAGS when linking the pdftoraster utility. Bug 690279. Also, move the cups link libraries to the end of the command line for tools that require dependency order.[cups/cups.mak]
2009-02-09T22:18:20.864249Z Ralph Giles
Protect some printf-like calls in the pcl3 output device from spurious format specifiers. This eliminates a security-related gcc warning. Details: I believe the previous code was actually safe. However, this approach is more robust. If any of the string buffers passed to errprintf() happened to contain a format specifier (like %d) an out of bounds stack reference could result. This allows the default build to complete with -Werror=format-security, which the Mandriva linux distribution is reported to be using.[contrib/pcl3/eprn/gdeveprn.c contrib/pcl3/src/gdevpcl3.c]
2009-02-09T22:18:18.594295Z Ralph Giles
Have gs_throw_code() print the corresponding error string literally to avoid interpretation of spurious format specifiers. This removes a security-related gcc warning. Details: The previous code was safe. gs_(re)throw_code() called gs_errstr() to convert the code to a printable string, and these contain no format specifiers. However, the new method is more robust, and allows compilation with -Werror=format-security which Madriva is reportedly using by default.[base/gserror.h]
2009-02-09T00:32:35.099915Z Alex Cherepanov
Add a reference to doc/Use.htm#CIDFontSubstitution to the message about CIDFont substitution based on registery and ordering data. Bug 690102.[Resource/Init/pdf_font.ps]
2009-02-08T06:05:54.380114Z Alex Cherepanov
Correct handling of the operand stack overflow requires one more element than the normal case. The maximum operand stack size has been reduced by 1 element relatively to the size set by rev. 6889 for the bug 688764. Bug 690209.[Resource/Init/gs_init.ps]
2009-02-06T19:17:54.834304Z Ray Johnston
Fix for 0 length files from the bit*** devices when -dLastLine was not set. The LastLine now defaults to the last line of the page (height-1). Bug 690217. Thanks to Piotr Strzelczyk for spotting this. DETAILS: Note that this prevents output of a single line at the top (line 0), but this was mostly just for testing to emulate custom devices that only call 'get_bits' on less than all of the lines which had the potential to confuse the thread lookahead prediction logic in the multi-threaded rendering case.[base/gdevbit.c]
2009-02-05T13:29:10.275517Z Ken Sharp
New feature (pswrite): Center pages on output, new switch -dCenterPages Details: bug #690100 "Enhancement request: create centered output when reading PDF" Added a new switch to the collection of media handling controls supported by ps2write. The new CenterPages switch will center the output image on the media, regardless of the size of the media (if the output is larger than the media it will be truncated, but the image will still be centered on the media). This switch is compatible with the RotatePages control, but not with SetPageSize or FitPages. Like the other switches it can be set as an argument to ps2write when creating a PostScript file (which fixes the result) or it can be supplied to the consuming interpreter in some fashion. Updated ps2ps2.htm with the new details.[doc/Ps2ps2.htm base/gdevpdfx.h base/gdevpdfp.c Resource/Init/opdfread.ps base/gdevpdfu.c]
2009-02-04T08:45:21.899308Z Ken Sharp
Fix (pdfwrite): Limit on CIDFont size too low Details: bug #688736 "ps2pdf does not work on these files" The 'remaining' issue in these files is the 'error -15' problem. This is caused when writing out a subset CIDFont, and the subset grows to be a large font in its own right. The way that CFF fonts are written, there is interaction between certain parts. The offset of various tables depends on the size of the Top Dict, but the Top Dict contains the offsets of the CharStrings and the CharSet, so its size is partially dependent on those offsets.... The code in psf_write_cid0_font() initially assigns large values (0x7fffff) to the offsets, then iterates over the data quickly converging on a suitable size of offset, which allows calculation of the Top Dict. The problem was that 0x7fffff was too small for the offset of the Font Dict, (which comes after the CharStrings) if the CharStrings table was very large (~8MB). While this is probably adequate in 'real life', because its unlikely a real job would contain so many different glyphs, it is simple to solve by increasing the original 'guess' from 0x7fffff to 0x1ffffff (~32MB), which should be enough for any font.[base/gdevpsf2.c]
2009-02-04T08:44:40.067265Z Ken Sharp
Fix (pswrite): Incorrect A3 page size Details: bug #690259 "A3 pagesize pointsize definition wrong in gdevpsu.c" The definition of the A3 paper size was 842 by 1190 in psw_write_page_header(). The definitions elsewhere in GS have a height of 1191 (which is closer to the ISO metric paper size). Modified the page height to be 1191, also modified the media matching code so that it allows +/- 5 points when matching media. Thanks to Roland Friedwagner for debugging the problem and supplying a patch, and to Alex Cherepanov for suggesting the media matching.[base/gdevpsu.c]
2009-02-04T03:39:35.058845Z Alex Cherepanov
Keep reading the data sources until all of them reach EOF instead of bailing out when the first one reaches EOF. Different data sources can use different compression techniques and buffer sizes. The mask in masked images also has different length than other streams. Bug 690237, customer 850.[psi/zimage.c]
2009-02-03T23:56:30.290105Z Alex Cherepanov
Add one more header type to the list of possible CFF headers. Bug 690256, customer 210.[Resource/Init/pdf_font.ps]
2009-02-03T19:23:42.937693Z Ralph Giles
Bump version number and product name after the 8.64 release.[base/gscdef.c base/version.mak Resource/Init/gs_init.ps doc/News.htm]
2009-02-03T17:03:41.696119Z Ralph Giles
Update release date and change logs for the 8.64 release.[doc/History7.htm doc/Projects.htm doc/History8.htm man/dvipdf.1 base/gscdef.c man/ps2ascii.1 doc/Use.htm doc/Readme.htm doc/Source.htm doc/Deprecated.htm man/ps2epsi.1 doc/Install.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 man/pf2afm.1 doc/Fonts.htm doc/Ps2ps2.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 man/font2c.1 man/gsnd.1 base/version.mak man/pdfopt.1 doc/News.htm man/pdf2ps.1 man/ps2pdf.1 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 man/ps2ps.1 doc/Ps2epsi.htm doc/History4.htm man/ps2pdfwr.1 doc/History5.htm doc/History6.htm]
2009-02-02T19:13:01.319812Z Ralph Giles
Update change logs and release date for 8.64rc3.[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 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 man/font2c.1 man/gsnd.1 base/version.mak man/pdfopt.1 doc/News.htm man/pdf2ps.1 man/ps2pdf.1 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 man/ps2ps.1 doc/Details.htm doc/Ps2epsi.htm doc/History4.htm man/ps2pdfwr.1 doc/History5.htm doc/History6.htm]
2009-02-02T08:58:11.805173Z Ray Johnston
Fix broken bbox device caused by the 'fillpage' commit of rev 9288. This resolves bug 690260 and other cases where the bbox was all 0's. DETAILS: When the 'RECT_IS_PAGE' check was removed, the BBOX_INIT_BOX function was invoked unconditionally MUCH too often, leading to an empty bbox (0's) which also caused the x11 device to not update many areas from the under- lying image24 buffer to the screen. The 'BBOX_INIT_BOX' should only be needed when the params change the geometry or when 'fillpage' is done.[base/gdevbbox.c]
This is the fifth scheduled release in the stable Ghostscript 8.6x series.
Approximately 100 bugs have been fixed since the 8.63 release.
Of particular note in this release are improvements to overprint and spot color support in documents with transparency, improvements to PDF and PS output, proper handling of PDF-specific text rendering modes and support for reading AES-encrypted PDF documents.
Also improved is handling of CJK text, especially in vertical writing modes, memory footprint processing some files at high resolution and support for using the system's default paper size on unix.
The interpreter's handling of color spaces has been moved from PostScript code to C.
A number of the included printer drivers and cups wrappers have been updated to support a PDF-based workflow. Also fixed are several long-standing bugs in the pcl drivers with respect to duplex, resolution and paper tray selection.
The following bugs were open at the time of the last release:
226943, 430175, 465936, 493348, 535932, 578865, 614298, 626295, 686853, 686865, 687011, 687084, 687095, 687146, 687193, 687257, 687271, 687280, 687295, 687297, 687303, 687327, 687375, 687414, 687475, 687492, 687514, 687520, 687536, 687561, 687593, 687608, 687630, 687650, 687666, 687674, 687677, 687695, 687697, 687702, 687715, 687721, 687728, 687731, 687775, 687780, 687782, 687793, 687796, 687805, 687850, 687887, 687903, 687904, 687915, 687931, 687950, 687981, 687983, 688007, 688022, 688024, 688026, 688032, 688036, 688042, 688061, 688064, 688081, 688130, 688166, 688184, 688187, 688204, 688210, 688215, 688227, 688267, 688269, 688280, 688288, 688312, 688318, 688320, 688333, 688342, 688361, 688363, 688372, 688386, 688387, 688389, 688395, 688413, 688436, 688437, 688440, 688448, 688473, 688475, 688483, 688495, 688500, 688515, 688528, 688533, 688539, 688540, 688542, 688557, 688565, 688580, 688581, 688601, 688604, 688605, 688607, 688616, 688617, 688627, 688636, 688638, 688647, 688651, 688655, 688673, 688699, 688708, 688709, 688710, 688714, 688728, 688731, 688736, 688757, 688777, 688797, 688818, 688829, 688843, 688846, 688871, 688872, 688908, 688918, 688919, 688926, 688933, 688942, 688949, 688958, 688969, 688978, 688990, 688994, 688999, 689003, 689011, 689013, 689025, 689028, 689031, 689032, 689040, 689044, 689046, 689048, 689057, 689060, 689070, 689076, 689077, 689078, 689081, 689093, 689094, 689098, 689133, 689137, 689145, 689150, 689153, 689161, 689167, 689174, 689184, 689188, 689195, 689198, 689199, 689209, 689222, 689224, 689236, 689247, 689248, 689252, 689253, 689278, 689279, 689280, 689283, 689289, 689290, 689295, 689308, 689331, 689335, 689340, 689341, 689361, 689370, 689376, 689378, 689392, 689396, 689418, 689419, 689421, 689422, 689423, 689438, 689439, 689450, 689451, 689456, 689460, 689471, 689484, 689487, 689489, 689490, 689498, 689500, 689502, 689506, 689507, 689512, 689518, 689522, 689546, 689547, 689549, 689554, 689557, 689560, 689561, 689563, 689566, 689571, 689573, 689574, 689581, 689584, 689585, 689591, 689592, 689595, 689598, 689601, 689606, 689610, 689616, 689623, 689625, 689627, 689632, 689636, 689641, 689653, 689657, 689658, 689663, 689670, 689674, 689681, 689682, 689684, 689689, 689690, 689691, 689697, 689698, 689704, 689705, 689709, 689710, 689711, 689715, 689721, 689725, 689726, 689727, 689734, 689737, 689741, 689747, 689752, 689756, 689759, 689760, 689761, 689767, 689769, 689772, 689775, 689778, 689781, 689786, 689792, 689793, 689794, 689799, 689801, 689805, 689808, 689817, 689822, 689823, 689826, 689835, 689836, 689840, 689853, 689856, 689858, 689859, 689860, 689861, 689862, 689868, 689869, 689870, 689871, 689878, 689883, 689885, 689910, 689915, 689916, 689917, 689928, 689929, 689930, 689931, 689933, 689937, 689938, 689939, 689940, 689941, 689942, 689943, 689947, 689950, 689951, 689952, 689957, 689968, 689969, 689972, 689974, 689980, 689986, 689991, 689996, 689997, 690003, 690005, 690006, 690007, 690009, 690020, 690022, 690024, 690025, 690026, 690029, 690033, 690036, 690043, 690047, 690051, 690053, 690054, 690056, 690057, 690058, 690061, 690066, 690068, 690069, 690073, 690083, 690084, 690085, 690093, 690094, 690098, 690100, 690102, 690110, 690115, 690119, 690123, 690125, 690126, 690131, 690132, 690137, 690143, 690146, 690157, 690160, 690162, 690170, 690171, 690174, 690176, 690180, 690182, 690183, 690184, 690185, 690189, 690191, 690192, 690199, 690200, 690203, 690207, 690208, 690209, 690212, 690213, 690214, 690216, 690218, 690224, 690225, 690226, 690229, 690230, 690232, 690233, 690234, 690235, 690237, 690238, 690239, 690241, 690246, 690247, 690248, 690249, 690250, 690251, 690253, 690256, 690259, 690261, 690262, 690263, 690264.
In this release the C source files have been split into two new directories. Interpreter source files are now in psi and the graphics library and output devices are now in base. Previously everything was in src. This may cause problems with existing references in external build files or when applying patches generated against an older version.
The compiled in font set in Resource/Fonts has been updated to the version from the 8.11 release. This is the same set which was recommended prior to the 8.63.
2009-02-02T08:58:11.805173Z Ray Johnston
Fix broken bbox device caused by the 'fillpage' commit of rev 9288. This resolves bug 690260 and other cases where the bbox was all 0's. DETAILS: When the 'RECT_IS_PAGE' check was removed, the BBOX_INIT_BOX function was invoked unconditionally MUCH too often, leading to an empty bbox (0's) which also caused the x11 device to not update many areas from the under- lying image24 buffer to the screen. The 'BBOX_INIT_BOX' should only be needed when the params change the geometry or when 'fillpage' is done.[base/gdevbbox.c]
2009-02-02T08:52:01.582216Z Ray Johnston
Revert the patch of 9314 that caused a problem with the Ubuntu bug 160203 (https://bugs.launchpad.net/ubuntu/+source/ghostscript/+bug/160203). This patch appears to be a fix for a much older (~2004) version of gs and should not be needed as of rev 8161 that resolved segfaults when there is a NULL get_color_mapping_procs pointer. The mapping of 'black' and 'white' is needed to properly allow for non-white painting in the bbox device to avoid 0 0 0 0 BoundingBox.[base/gdevbbox.c]
2009-01-30T21:10:55.690493Z Russell Lang
Add the default papersize module to the OS/2 build.[psi/os2.mak]
2009-01-27T23:04:37.869301Z Ralph Giles
Update the directory listing the license for the source code reorganization.[LICENSE]
2009-01-27T22:40:23.384111Z Ralph Giles
Update internal copyright string.[base/gscdef.c]
2009-01-27T21:00:23.120021Z Ralph Giles
Update changelogs and release dates for 8.64rc2.[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 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 man/font2c.1 man/gsnd.1 base/version.mak man/pdfopt.1 doc/News.htm man/pdf2ps.1 man/ps2pdf.1 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 man/ps2ps.1 doc/Details.htm doc/Ps2epsi.htm doc/History4.htm man/ps2pdfwr.1 doc/History5.htm doc/History6.htm]
2009-01-27T20:50:54.789641Z Ralph Giles
Update the release notes for 8.64rc2. The x11alpha issue has been worked around. Add some comments from Till Kamppeter.[doc/News.htm]
2009-01-27T20:43:39.460217Z Ralph Giles
Fix fillpage in the x11alpha device. This reverts an incorrect code change which prevented the fillpage method of the x11alpha device from clearing the buffer. Bug 690255. Details: In r9288, a new fillpage method was added. This is a stub in printer devices, but is overridden to detect page flushes in some high level devices. That commit included incomplete changes to gdevxini.c which didn't compile. Alex suggested a fix in 690202, which was committed as r9294 after approval from the author of 9288. This was what broke page clearing in the x11alpha device. This commit removes the changes both commits made to the x11 devices and restores gdevxini.c to its state prior as of r9287.[base/gdevxini.c]
2009-01-27T20:43:37.567128Z Ralph Giles
Update documentation on the COMPILE_INITS makefile variable. In particular, it's normally no longer 0. Thanks to Ken Sharp for pointing this out.[base/gs.mak]
2009-01-27T20:43:33.967975Z Ralph Giles
Escape significant characters when generating html changelog entries.[toolbin/split_changelog.py]
2009-01-27T00:18:29.136711Z Ralph Giles
Remove $(GS_LIB)\Resource directory from the search path in the msvc build to shadowing the compiled in version. GS_LIB is set in the Windows registery by the installer, but it does not currently install a duplicate copy of the Resource tree in the filesystem. Having this directory in the search path caused Ghostscript to use it for Resource lookup to the exclusion of the %rom% version, and since the files weren't installed there, Ghostscript would error out in the initialization phase. Files like cidfmap and available fonts can still be overridden by putting them in $(GS_LIB)\lib and $(GS_LIB)\fonts. Patch from Russell Lang.[psi/dwsetup.cpp]
2009-01-26T19:25:28.295228Z Ralph Giles
Update changelogs for 8.64rc1.[doc/Changes.htm doc/History8.htm doc/News.htm doc/Details8.htm doc/Details.htm]
2009-01-26T18:59:39.072673Z Ralph Giles
Release notes for 8.64rc1.[doc/News.htm]
2009-01-26T18:05:53.102397Z Ralph Giles
Propagate release number and date to the documentation.[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/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 man/pf2afm.1 doc/Fonts.htm doc/Ps2ps2.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 man/font2c.1 man/gsnd.1 man/pdfopt.1 doc/News.htm man/pdf2ps.1 man/ps2pdf.1 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 man/ps2ps.1 doc/Ps2epsi.htm doc/History4.htm man/ps2pdfwr.1 doc/History5.htm doc/History6.htm]
2009-01-26T18:04:16.208144Z Ralph Giles
Bump release numbers and copyright dates for 8.64rc1.[base/gscdef.c base/version.mak doc/News.htm psi/dwsetup.rc psi/winint.mak doc/Release.htm]
2009-01-26T18:02:43.525231Z Ralph Giles
Work around an issue with comment parsing in the pre.tcl release script. My tclsh seems to be broken.[toolbin/pre.tcl]
2009-01-26T18:02:41.107170Z Ralph Giles
Update the pre.tcl release script for the new source locations.[toolbin/pre.tcl]
2009-01-26T18:02:37.633990Z Ralph Giles
Update the pre.tcl release script for the new gs_init.ps location. The essential ps library files were moved from lib to Resource/Init for clarity and simpler behavior with compile-inits.[toolbin/pre.tcl]
2009-01-26T17:33:36.155851Z Ken Sharp
Fix (pswrite): Incorrect PageBoundingBox comment location Details: The new %%PageBoundingBox comment was being emitted between a %%BeginPageSetup and %%EndPageSetup comment pair, which was causing it to be ignored by CUPS. Moved the bounding box in front of the page setup comment[base/gdevpsu.c]
2009-01-26T17:16:47.546837Z Ken Sharp
Yet more tidying up in the batch file. Adds release builds to the solution, better directory handling, a usage comment in the batch file and, if invoked without parameters, a usage printout for the user.[toolbin/msvcxml.bat]
2009-01-25T06:59:45.428302Z Ralph Giles
Make the GS_SPLIT_LIBS configure function only recognize -l at the start of an argument, to avoid false positives from hyphens inside linker arguments. Bug 690254.[base/configure.ac]
2009-01-24T09:31:46.808669Z Ken Sharp
This batch file, to generate a MSVC solution for building GS, was invalidated by the source re-organisation, and the inclusion of the resources in a ROM file system. Fixed various aspects so that it now works again, basically.[toolbin/msvcxml.bat]
2009-01-24T09:05:50.373013Z Ken Sharp
Add a check when comparing clip paths to see if both are NULL. Silences a Coverity warning and one day might conceivably prevent a crash.[base/gdevpdfd.c]
2009-01-23T22:53:02.093705Z Ralph Giles
Convert 24 bit RGB data to grayscale when printing in monochrome with eplaser device. Previously the RGB data was sent as is, resulting in a stretched and truncated page image. Patch from Olaf Meeuwissen. Bug 690252.[contrib/eplaser/gdevescv.c]
2009-01-23T19:04:40.484432Z Alex Cherepanov
Continue the the fix from rev. 9384, plug 2 more ways that caused multiple inclusion of page objects into the linearized file. Bug 690140, customer 932.[lib/pdfopt.ps]
2009-01-23T03:10:05.467096Z Ralph Giles
Use the page parameters set on the X11 device when called by Ghostview. This patch allows gv to control the output page parameters, overriding document and gs default settings. Since it has been tested in the Debian distribution and is contingent on being wrapped by the viewer, I consider it low risk. Original patch by William Bader. Bug 688943.[base/gdevxini.c]
2009-01-22T13:53:18.843673Z Ken Sharp
Initialise two uninitialised variables. Not thought to be a real problem, but worth making certain. Flagged by Coverity.[base/gdevpsf1.c base/gdevpsfx.c]
2009-01-22T13:15:07.920292Z Ken Sharp
Check the return value of gdev_prepare_stroke. Another warning from Coverity.[base/gdevps.c]
2009-01-22T02:53:01.653019Z Alex Cherepanov
Fix multiple inclusion of page objects referenced from beads array. Bug 690140, customer 932.[lib/pdfopt.ps]
2009-01-22T01:48:31.483983Z Ray Johnston
Fix for Segfault with tiffsep devics when a file has more than 64 spot colors and uses transparency. Clean up indentations to C-style. Problem seen with Bug 690157. DETAILS: The number of channels needed in the pdf14 device is one greater than the number of separations, to allow for the alpha channel (gxblend.h) and the 'comps' variable needs to be at a gx_color_index size to avoid truncation. Note that the output from tiffsep and psdcmyk is still incorrect -- there is a gray background in the black channel that is not expected. Also, the color swatches defined as Alternate colors do not appear in the output, only the Separations and the device (process) colors. Also note that this does not address comment #5 from bug 690157 since the default behavior when the maximum number of separations is reached is to silently use the Alternate color. This patch is primarily designed to cure the segfault (buffer OOB) issue.[base/gdevp14.c base/gxblend.h]
2009-01-22T01:17:35.554315Z Alex Cherepanov
Check for and skip null objects (and other junk) in the /Anots array. Bug 690244.[Resource/Init/pdf_main.ps]
2009-01-21T15:34:55.892148Z Ken Sharp
Add a couple of error return checks which were missing. Picked up by Coverity.[psi/zcolor.c psi/zicc.c]
2009-01-19T11:13:05.930829Z Ken Sharp
Revision 8951 missed an important part of the fix for pswrite, emitting a %%PageBoundingBox for each page of the output.[base/gdevpsu.c]
2009-01-19T09:47:56.340575Z Ken Sharp
Fix (pswrite): %%BoundingBox comment geenration (ps2write): media selection and %%BoundingBox generation Details: bug #690236 "Ghostscript is not able to convert PDF to PostScript maintaining the input document's page sizes" The pswrite bug is actually in the consuming applications, which are unable to process the media selection requests in the pswrite output and instead use DSC comments to select the media. pswrite attempts to use the bbox deice to generate a %%BoundingBox comment, but because this is a high-level device, no marks are made, so the BoundingBox is 0 0 0 0. Fixed by using the media size instead if this case is detected. ps2write did not generate a %%BoundingBox, or any other DSC comment at all, because it does not produce DSC PostScript (there is a request to address this already #690064). Also the media selection in the ps2write output is disabled by default, forcing users to find some means to set particular keys in userdict on the target device. Fixed by emitting a %%BoundingBox equal to the media size of the first page (NB as this is not DSC, other pages will be selected incorrectly if this is all the application uses). Also allow the use of the /SetPageSize, /RotatePages and /FitPages keys during ps2write processing to emit a PostScript file with these keys already set, thus allowing media selection to take place without further user intervention.[doc/Ps2ps2.htm base/gdevpdfx.h base/gdevpsu.c base/gdevpdfp.c base/gdevpdfu.c base/gdevpdfb.h]
2009-01-18T19:57:58.223740Z Alex Cherepanov
Fix SEGV in 'inferno' device caused by insufficient memory allocation. Pass correct device type to prn_device_body() macro. thanks to Wendy for the patch.[base/gdevifno.c]
2009-01-16T18:38:48.474888Z Ken Sharp
Fix (pdfwrite): Invalid metadata for PDF/A output Details: bug #690046 "Ghostscript doesn't produce valid PDF/A-1B files" Now that we have an example file, the remaining issues are resolved: 1) The recommended tags for font metadata in the ISO spec are not present in the XMP schema, resulting in Acrobat preflight complaining. Distiller does not (and never has, apparently) write font metadata for PDF/A files, and the spec says only that files 'should' contain metadata. For now we disable writing font metadata to match Distiller. 2) When converting TrueType fonts into CIDFonts, for PDF/A compatability, we must also write a CIDSet resource. The code was creating and initialising a table containing an explicit 256 entries, but the CIDSet resource was writing as many entries as there are glyphs in the base font. If this was larger we wrote uninitialised data to the CIDSet. Altererd to create and initialise a table the size of the number of glyphs in the base font.[base/gdevpdtd.c base/gdevpdfe.c]
2009-01-16T05:03:44.102465Z Ralph Giles
Move the font api bridge implementations to the psi directory. Bug 690231, fixes the language switch build with ufst. These are referenced from int.mak and depend on interpreter-level headers. So while the font api should be part of the graphics library, these files actually belong in the interpreter.[psi/fapi_ft.c base/fapiufst.c psi/fapiufst.c base/fapi_ft.c]
2009-01-15T15:22:39.193218Z Ken Sharp
Update a comment to say why the minimum file size is 4KB[lib/pdfopt.ps]
2009-01-15T15:20:15.993430Z Ken Sharp
Fix (pdfopt): Minimum optimised file size changed in Acrobat 9 Details: bug #690210 "Inconsistent "fast web view' results" It seems Acrobat 9 will decide that any file less than 4Kb in size is not optimised for fast web view, regardless of content. Previous versions of Acrobat insisted on a minimum of 1Kb.[lib/pdfopt.ps]
2009-01-15T09:16:00.166572Z Ken Sharp
Fix (pdfwrite) Details: revision 9346 sets the about member of the XMP metadata to empty ("") unconditionally, this should only be done when writing PDF/A files.[base/gdevpdfe.c]
2009-01-15T07:52:13.786371Z Alex Cherepanov
Fix compilation on Windows NT, which doesn't define LOCALE_IPAPERSIZE.[base/gp_wpapr.c]
2009-01-14T22:58:56.327548Z Ralph Giles
Check for a null target_info in bbox_image_end_image before trying to free it. Fixes bug 680019.[base/gdevbbox.c]
2009-01-14T11:15:24.692365Z Igor Melichev
Fix (graphics) : Redundant patterns in clist (continued 7). DETAILS : Bug 690228 "pcl6 regression". Don't write a pattern in the short form (just tile id) to the "all bands" list if some bands don't store same tile id. Otherwise those bands would be confused and try to call pattern_load, which is not supported while a clist playback.[base/gxclpath.c]
2009-01-13T22:17:21.104569Z Alex Cherepanov
Return 0 when accessing Type1C font table out of range or the table is too short and display a warning if possible. Bug 690050, customer 353. DETAILS: Old code smashed the stack when operator read was unsuccessful and failed shortly afterwards. New code tolerates PDF files produced by 'Exstream Dialogue', which have Type1C fonts with overlapping tables, which Ghostscript shortens to non-overlapping length. Thanks to Ray for the origimal patch.[Resource/Init/gs_cff.ps]
2009-01-13T18:38:37.869412Z Ray Johnston
Revert .outputattrkeys to the list prior to rev 8026 to fix problems with Duplex introduced with that change. Bug 690041.[Resource/Init/gs_setpd.ps]
2009-01-12T19:33:58.722824Z Ralph Giles
Fix a gcc warning in gxshade6.c. When VD_TRACE is not defined, vdtrace.h defines most of its operations as DO_NOTHING, but with was not done for vd_restore and vd_disable, causing compiler warnings in gxshade6.c, where vd_disable is called as the sole body of an if() statement. Bug 690204.[base/vdtrace.h]
2009-01-12T16:51:59.689070Z Ken Sharp
Fix (pdfwrite): Invalid metadata for PDF/A output Details: bug #690046 "Ghostscript doesn't produce valid PDF/A-1B files" This does not, unfortunately, address some of the issues raised in the bug report, without a sample PostScript file to work from these cannot currently be addressed. However, there were significant problems with the XMP metadata being written: 1) The rdf attribute 'about' has changed, it is no longer recommended to use a UUID, it should be left empty or formatted as a URI. Altered to empty. 2) The Adobe parser does not like mix and match of attributes and properties, if we are setting properties, we can't use (at least some) attributes. 3) The preferred schema namespace prefix for the XMP basic schema is now 'xmp' not 'xap'. 4) Date syntax was incorrect for GMT. XMP specifies *either* 'Z' *or* +/-hh:mm. We were writing 'Z00:00' (that is, both alternatives). Also added support for the /Subject and /Keywords elements of the Document Info dictionary, if these are present, as per the patch from Florian Haenel.[base/gdevpdfe.c]
2009-01-10T22:11:18.954264Z Till Kamppeter
Add "-sstdout=%stderr" to scripts that call gs so that they don't corrupt their own output when outputing to stdout (Thanks to Dan Sheridan (djs at adelard dot com), Ubuntu bug #314439).[lib/eps2eps lib/ps2pdfwr lib/ps2ps lib/ps2ps2 lib/dvipdf]
2009-01-09T08:53:40.554994Z Till Kamppeter
Added support for GNU Hurd (patch from Debian package).[base/configure.ac]
2009-01-09T00:28:18.396434Z Ray Johnston
Correct very minor typo.[Resource/Init/pdf_base.ps]
2009-01-08T21:28:55.852108Z Till Kamppeter
Small correction on ./configure magic for libpaper.[base/configure.ac]
2009-01-08T12:51:35.348058Z Till Kamppeter
Added auto-detection for libpaper to the configure script[base/configure.ac]
2009-01-08T12:43:28.851914Z Igor Melichev
Fix (TT font handler) : Wrong glyph posiitions with vertical writing mode (continued). DETAILS : Bug 689304 "improper handling of vertical japanese text". This is fourth partial patch for the bug 689304. It adds a code for processing CoverageFormat2, which is used by IPAfont00203. Besides that, in the old CoverageFormat1 code subst.GlyphCount was used instead cov.GlyphCount . It didn't cause a problem because (we guess) normally they are equal. The field CoverageFormat2::RangeRecord is renamed into RangeArray to avoid possible conflict with same name for a structure type. Rather it is a correct C, we're not sure that all compilers accept it with no warning.[base/gstype42.c]
2009-01-08T09:17:18.162362Z Russell Lang
Automatically select the default paper size from the locale on the Windows platform, and make provision for doing this on Linux. DETAILS: This adds a new platform function gp_defaultpapersize and a new operator .defaultpapersize. In order of priority, the paper size is set from PAPERSIZE, DEFAULTPAPERSIZE, .defaultpapersize, or the compiled in device paper size. It has been tested on Windows 98, XP and Vista.[base/openvms.mmk base/lib.mak base/gp_paper.c doc/Use.htm doc/Develop.htm base/unix-aux.mak base/macos-mcp.mak psi/zmisc.c psi/os2.mak base/winlib.mak base/watclib.mak base/gp.h Resource/Init/gs_init.ps base/openvms.mak base/gp_upapr.c base/gp_wpapr.c doc/Language.htm]
2009-01-08T08:04:41.159684Z Russell Lang
Fix stackunderflow when specified PAPERSIZE is unknown. Ghostscript will now use the device default page size when PAPERSIZE is unknown.[Resource/Init/gs_init.ps]
2009-01-07T17:36:55.528046Z Michael Vrhel
Fix for overprinting with transparency. This fixes bugs related to the lack of overprint support when there is transparency present in the file. DETAILS: Previously if a sep device is used when processing a file that contains both transparency and overprinting, the overprinted colors would blow away the other sep colors. In this commit, there was one fix to improper geometry in pfd14_cmykspot_put_image. The remaining changes involved 1) passing overprint compositor actions to the pdf14 device, which occurs during the clist reading phase (in pdf14_create_compositor) 2) adding over_print and overprint mode to the pdf14 clist parameters (this follows the same process that is currently done for text knockout, blend mode etc) and 3) adding the actual fill support in pdf14_mark_fill_rectangle. EXPECTED DIFFERENCES: In the regression tests Bug688631.pdf and Bug690206.pdf will have slight differences due to the blending of spot colors when the color space is subtractive. This matches what is seen in AR.[base/gdevp14.c base/gdevp14.h base/gstrans.h]
2009-01-07T08:33:14.825057Z Ken Sharp
Fix (PDF Interpreter): Default Unicode decoding clashing with ToUnicode CMap Details: bug #690190 "Problem with -dProvideUnicode" The ProvideUnicode switch creates a (read only) default Unicode decoding resource, presumably to use as a default ToUnicode Cmap when creating PDF files. This interferes with PDF files which contain a real ToUnicode CMap, as the resource is read only and so cannot be updated with the content of the ToUnicode CMap. Fixed by checking to see if the GlyphNamesToUnicode dictionary is writeable, and if it is not, creating a new one, when processing a ToUnicode CMap.[Resource/Init/pdf_font.ps]
2009-01-06T14:38:01.194845Z Ken Sharp
Fix (pdfwrite): Missing glyphs in CIDFont causing errors. Details: Bug #690139: "Regression: Error writing PDF file: Missing glyph CID=0 in Bug689614.pdf". When we find that a string in a PDF file uses a glyph which is not present in the current CIDFont we substitute the .notdef glyph (CID=0). However, if we do not have a width for the .notdef (this is the first missing glyph) we proceed to get one, and then attempt to run the CDevProc for the font. This, unfortunately, attempts to use the original (missing) glyph, and so fails with a rangecheck error. Added a check to catch this condition and skip the CDevProc and caching. Also improved the error message slightly.[base/gdevpdtc.c]
2009-01-06T14:11:30.802229Z Igor Melichev
Fix (PDF interpreter) : A more explanatory message when a CID font is missing. DETAILS : Bug 688770 "/undefinedresource in --findresource--". The patch prints which CID font is missing, and a better explanation about CID font substitution and about the related exit with error.[Resource/Init/pdf_font.ps]
2009-01-05T17:17:01.015629Z Marcos H. Woehrmann
Removed old code that failed in 2009.[toolbin/bugsByEngineer.pl]
2009-01-05T14:02:04.227069Z Till Kamppeter
Added examples of PostScript files with CJK text[examples/cjk examples/cjk/all_ag1.ps examples/cjk/iso2022.ps examples/cjk/all_aj1.ps examples/cjk/all_aj2.ps examples/cjk/all_ak1.ps examples/cjk/gscjk_ac.ps examples/cjk/iso2022v.ps examples/cjk/gscjk_ag.ps examples/cjk/gscjk_aj.ps examples/cjk/all_ac1.ps examples/cjk/article9.ps examples/cjk/gscjk_ak.ps]
2009-01-05T10:34:13.766328Z Till Kamppeter
Accidentally committed an obsolete patch. Reverted.[base/gdevxini.c]
2009-01-04T20:20:47.824575Z Till Kamppeter
Fix sigbus/segfaults on sparc, hppa, etc. Debian bug 453903. See http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=453903 for details.[psi/store.h]
2009-01-04T20:15:19.267170Z Till Kamppeter
Improved man pages of ps2pdf.[man/ps2pdf.1 man/de/ps2pdf.1]
2009-01-04T20:13:28.072664Z Till Kamppeter
Fixed syntax error in gs.css.[doc/gs.css]
2009-01-04T20:11:57.725211Z Till Kamppeter
Assorted script fixes.[lib/ps2epsi lib/dumphint lib/dvipdf]
2009-01-04T20:07:04.350954Z Till Kamppeter
Fix insecure script in toolbin.[toolbin/pre.tcl]
2009-01-04T20:05:41.434499Z Till Kamppeter
Typo fixes in "gs" man page.[man/gs.1]
2009-01-04T20:03:38.607601Z Till Kamppeter
Fix segfault in X device when page size changes.[base/gdevxini.c]
2009-01-04T20:01:10.696570Z Till Kamppeter
Adjust the margins for Epson dot matrix printer drivers[base/gdevepsn.c]
2009-01-04T19:58:54.777417Z Till Kamppeter
Fix a problem with Brother 7x0 GDI, contributed to Debian by B. Janssen.[base/gdevhl7x.c]
2009-01-04T19:57:07.064594Z Till Kamppeter
Fix segmentation fault on -sDEVICE=bbox, contributed to Debian by Yaroslav Halchenko. Original issue reported in http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=250290 and http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=254877[base/gdevbbox.c]
2009-01-03T22:45:50.335886Z Michael Vrhel
Debug raw dumping code that I have found useful in my debug of transparency and overprint issues. DETAILS : Open images with Photoshop in the raw format with the dimensions given in the file name. EXPECTED DIFFERENCES : None[base/gxblend.c base/gxblend.h]
2009-01-03T19:51:08.451624Z Igor Melichev
Fix (graphics) : Incorrect bounds for clipping list. DETAILS : Bug 690060 "Regression: ball not round in Altona_Visual_1v2a_x3.pdf" The bug persists since the repository was created. The revision 8020 brought an attempt to fix it, but really it just replaced one wrong code with another wrong one. Coding the right formula now.[base/gxcpath.c]
2009-01-01T05:34:09.090806Z Alex Cherepanov
Continue to access the stream while reading a string (sgets()) until the string is filled, EOF is reached, or an error occurs. Don't return after first partial read. Bug 690152. DETAILS: Old code did this only for 1-byte reads, which commonly occur during reading stdin one byte at a time. Repeated reading is now extended to reads of any size.[base/stream.c]
2008-12-30T18:58:17.371540Z Igor Melichev
Fix (garbager) : Wrong object marks when the object is freed by a garbager callback. DETAILS : Debugged on Vista x64 with running a 32 bits debug build of revision 9299 with this command line : ..\..\gs-hd\bin\gswin32c.exe -IF:\AFPL\gs-hd\Resource\Init;f:\afpl\fonts -Z$?@ -r300 -dMaxBitmap=1000000 -dNOOUTERSAVE -sDEVICE=ppmraw -sOutputFile=out.ppm -dBATCH -dNOPAUSE "H:\AuxFiles\CompareFiles\084-01.ps" 1. The main change (gsalloc.c) : The bug persists since the repository was created. When an object is freed after the garbager marking phase and before the relocation phase, the heap consistency check misrecognizes it as a free object pointed from an useful object. It happens because the smark field was left unchanged ("marked") but the object status changed to 'freed', which must be unmarked. In the test case such thing happens when a names subtable is freed with this stack : i_free_object() Line 721 name_free_sub() Line 541 name_scan_sub() Line 582 names_trace_finish() Line 416 gs_gc_reclaim() Line 371 The patch resets the mark whenever i_free_object is called, so that any freed object automatically becomes unmarked. We could do it more delicate with checking whether a garbager is on stack with a new special flag in gs_ref_memory_t, but we don't see enough reasons for such complex check. 2. Minor change (igc.c) : Provide a right operand when gs_abort is called from gc_objects_set_reloc. The old code crashed due to dereferencing NULL.[psi/igc.c base/gsalloc.c]
2008-12-29T18:25:08.338456Z Marcos H. Woehrmann
Script to print out open customer/P1/regression bugs by engineer. Usage: bugsByEngineer.pl >report.txt[toolbin/bugsByEngineer.pl]
2008-12-29T06:43:42.727931Z Michael Vrhel
Fix for Bug 689895. gx_put_blended_image_cmykspot was improperly inverting the alpha channel.[base/gxblend1.c]
2008-12-28T16:03:29.366807Z Alex Cherepanov
Use a proper destructor to free a file stream when access to the file is not permitted in the safe mode, not just close the file and drop the rest of the file structure. Bug 689975.[psi/zfile.c]
2008-12-26T07:25:31.122671Z Alex Cherepanov
Fix 3 last cases of missing prototypes in MS Windows build.[base/lib.mak psi/int.mak psi/zfcid1.c base/gxblend1.c base/gdevddrw.c]
2008-12-26T04:48:20.570500Z Alex Cherepanov
Remove the last 2 unused variables from Ghostscript code base.[psi/dwtrace.c base/gdevdjet.c]
2008-12-24T20:33:22.470682Z Alex Cherepanov
Fix a buffer overflow in base font writer module of pdfwrite defice. Allocate sufficient buffer for the worst case. Bug 690211.[base/gdevpdtb.c]
2008-12-24T15:36:40.083208Z Ken Sharp
Fix (pdfwrite): Image with SMask fails when inside transparency group. Details: Bug #690139: "Regression: pdfwrite creates empty file". The PDF Interpreter internally surrounds SMask images with an extra transparency group definition. If emitted to PDF this is invalid and causes Acrobat to complain. This was fixed in revision 6878 (bug 688767) by adding an extra parameter 'Image_with_SMask' to the dictionary. The pdfwrite code checks for the existence of this in the group, and if present (and true) skips the transparency group begin. It also sets a flag in the device, to skip the end of the group as well. However, the flag is only reset when a new transparency group is begun. If the SMask was nested inside a group then the flag remained set, causing the 'end' for all enclosing groups to be skipped as well. This caused empty output or, in extreme cases, a 'rangecheck' error in discardtransparencygroup, because we overflowed an internal stack. We now set the device flag to false after we have skipped an end group.[base/gdevpdft.c]
2008-12-23T09:05:30.676239Z Ken Sharp
Fix (pdfwrite): DSC comments interfering with Page Tree Orientation. Details: Bug #689922 "Rotation issues with pdfwrite and multiple operations". When writing out a PDF file, pdfwrite adds /Rotate keys to individual pages, and if the document is gnerally rotated (eg landscape) will set a /Rotate key in the pages treee. This causes all pages which do not have their own value to inherit this as a default. Unfortunately, the page tree code uses the same logic as the individual page, whch honours DSC '%%Orientation' and '%%ViewingOrientation' comments. If the last file processed contained one of these, this would become the default for all pages, regardless of their actual orientation. This would cause pages to be inappropriately rotated. Fixed by clearing the DSC information before writing the orientation for the page tree, by this time all the pages that require it have already been written with their own value.[base/gdevpdf.c]
2008-12-21T14:34:29.309508Z Igor Melichev
Fix (PS interpreter) : The operator 'gstate' leaked memory. DETAILS : Bug 689849 "gstate leaks memory" The old code of gsave executes 'ref_save' without a clear reason. The patch disables it with #if 0. For a while we keep the old code for an easier understanding of an unexpected behavior difference, if any.[psi/zdps1.c]
2008-12-21T07:46:52.896538Z Alex Cherepanov
Implement Algorithm 8.1 from PDF 1.6 Reference. Map /BBox of the appearance stream transformed by /Matrix onto the annotation rectangle. Bug 690195, customer 770.[psi/zmatrix.c psi/int.mak Resource/Init/pdf_draw.ps]
2008-12-19T16:50:41.185072Z Ken Sharp
Fix: Problem with /DeviceN [/All]. Details: Bug #690177 "Separation names become operator names.". /DeviceN [/All] is technically illegal, but is allowed by Acrobat. We convert this to a /Separation /All colour space for compatibility. An error in the processing of this kind of space led to a string object being used in place of a name object to create the named space. This led to 'peculiar' plate names instead of 'All', which caused no problems when rendering to CMYK (the alternate is used and sets all inks). However if rendering to a device with additional spot plates not alll plates would be marked as they should be for a /All space. Also pdfwrite produced incorrectly named plates in the output PDF file.[psi/zcolor.c]
2008-12-19T01:53:18.887063Z Ralph Giles
Warn when the JPX ColorSpace key workaround is activated. Details: We don't use pdfformaterror because this is our failing, not the files. But we call stderrprint to generate the output so it doesn't mangle device output on stdout. Suggested by Ray Johnston.[Resource/Init/pdf_draw.ps]
2008-12-19T01:53:17.038875Z Ralph Giles
Assume unlabled JPXDecode streams are 8 bit DeviceRGB. This is a work-around for bugs 688159, 689058 and 689509. Details: The PDF spec allows the ColorSpace and BitsPerComponent keys of a JPXDecode filtered image dictionary to be left out, in which case the interpreter is expected to obtain this information by examining the stream. This change does not implement that, but in most cases the image is RGB, and 8 bits per component; assuming this format allows correct rendering of all wild files we've seen of this type.[Resource/Init/pdf_draw.ps]
2008-12-18T23:37:32.655756Z Alex Cherepanov
Change accessors to cmap data to support cmap subtables exceeding 64K-1 bytes. Bug 690206, customer 870.[Resource/Init/gs_ttf.ps]
2008-12-16T18:35:55.343539Z Ralph Giles
Fix a typo in commit r9288 which broke the X11 device build. Bug 690202. Patch by Alex Cherepanov.[base/gdevxini.c]
2008-12-16T17:52:13.417519Z Ralph Giles
Add the CVS directory to the romfs exclusion list. Bug 690205. Details: Currently the mkromfs script just includes the entire file tree under Resource/ but the presence of any extraneous directories there confuses the enumeration machinery. We have a exclusion for the .svn directory so builds out of svn work, but apparently some people have a CVS mirror? Anyway, it isn't difficult to add an additional exclusion for CVS metadata. This isn't an issue for git, darcs or mercurial because they keep all their repository data in the top-level directory.[base/lib.mak]
2008-12-15T17:15:06.646171Z Ken Sharp
Enhancement (pdfwrite): Add support for the fillpage method. Details: The new fillpage device method can be used to detect occurences of erasepage more reliably (and probably more cheaply in performance terms) than the previous checks in the fill_rectangle methods. Removed the old code which checked the rectangle size against the page size, the colour against white, and the transparency stack depth, from the fill_rectangle methods. Added a new routine gdev_pdf_fillpage to implement the new fillpage device method.[base/gdevpdfx.h base/gdevpdfd.c base/gdevpdfb.h]
2008-12-13T20:05:37.951803Z Igor Melichev
Enhancement (graphics) : Implement new device virtual method 'fillpage'. DETAILS : The new method improves the handling of 'erasepage' and 'fillpage' for high level devices, bbox device. Also it is a preparation for optimizing 'erasepage' for printer devices as for bug 690131. When erasing a page, the old code passes fill_rectangle through the device interface. However some devises need to recognize it as a special high level operation and distinguish from an usual rectangle filling. The old code implemented some trics for that. This patch replaces the tricks with a strong logic for bbox device. The pdfwrite device to be improved separately. The old function gx_fillpage is now splitted into two parts, one of which works before the device interface, and another one after it. The second one looks as a default implementation for the 'fillpage' device virtual method. Forwarding devices implement new function gx_forward_fillpage.[base/gdevrops.c base/gdevdflt.c base/gdevbbox.c base/gxcldev.h base/gxclipm.c base/gsovrc.c base/gxdevice.h base/gdevnfwd.c base/gspaint.c base/gdevddrw.c base/gxclip2.c base/gdevprn.h base/gdevp14.c base/gxdevcli.h base/gxclrect.c base/gdevxini.c base/gxclist.c base/gxclist.h base/gxclip.c base/gxclrast.c]
2008-12-13T16:54:17.751950Z Igor Melichev
Fix (graphics) : Redundant patterns in clist (continued 6). DETAILS : This is a further improvement for the bug 690133 "Regression: Ghostscript takes up all disk space when rendering eog or GIMP PDF output in 1200 dpi". Also it is a preparation for a partial fix for the bug 690131 "Optimize consecutive setpagedevice". The last partch appears syntactically incorrect, now fixing.[base/gxclpath.c]
2008-12-13T12:55:14.082194Z Igor Melichev
Fix (graphics) : Redundant patterns in clist (continued 5). DETAILS : This is a further improvement for the bug 690133 "Regression: Ghostscript takes up all disk space when rendering eog or GIMP PDF output in 1200 dpi". Also it is a preparation for a partial fix for the bug 690131 "Optimize consecutive setpagedevice". The last partch wrongly distributed the saved pattern id for all bands when writing a non-pattern color to all bands. We believe it never happens the current revision with reasonable banding settings, but fix fix it for code consistency and for avoiding problems with further revisions.[base/gxclpath.c]
2008-12-13T11:14:54.029422Z Igor Melichev
Fix (graphics) : Redundant patterns in clist (continued 4). DETAILS : This is a further improvement for the bug 690133 "Regression: Ghostscript takes up all disk space when rendering eog or GIMP PDF output in 1200 dpi". Also it is a preparation for a partial fix for the bug 690131 "Optimize consecutive setpagedevice". This patch passes the coverage rectangle of a graphic element for a better computation in cmd_put_drawing_color of the size would be consumed while serializing a color to clist with copying to all covered bands. When we need to force writing to all bands, we pass a NULL instead the coverage rectangle.[base/gxclpath.c base/gxclimag.c base/gxclrect.c base/gxclpath.h base/gxcldev.h]
2008-12-13T10:18:02.260144Z Ken Sharp
Fix (pdfwrite): Fonts with unusual FontMatrix generating incorrect FontBBox. Details: bug #689879 "wrong FontBBox in PDF file" Fonts other than type 3 may not have a FontMatrix in PDF, these fonts are assumed to be on a 1000x1000 design grid. Most fonts already are, and embedded TrueType fonts are already catered for, but some unusual fonts have a non-standard (not [0.001 0 0 0.001 0 0]) FontMatrix. The matrix is accounted for when scaling the font, so the Tf operator is correct in the page content stream, but the FontBBox was calculated using the unscaled glyph outline. We now scale the font outline into a 1000x1000 design grid before calculating the bounding box, so that the FontBBox entry will be correct.[base/gdevpdtd.c]
2008-12-13T10:13:47.692668Z Ken Sharp
Fix (pdfwrite): Tidy up code. Details: Tidy up some code for bug #690118; When writing TrueType hmtx/vmtx, define a new function put_short which is functionally identical to put_ushort but doesn't truncate the sign bit. Use this instead of put_ushort when the value to be written may be negative. Add 0.5 to the floating point calculations and floor() the result so that we get the nearest approximation to the float when writing out the short. A small number of files exhibit a number of single pixel differences in position or rendering of glyphs with this change. In all cases comparing the rendered result of the new PDF file with the rendered result of the original file shows no differences, so I consider these to be progressions.[base/gdevpsft.c]
2008-12-10T19:10:43.669416Z Ralph Giles
Set standard properties on pdf_main.ps. Bug 690198.[Resource/Init/pdf_main.ps]
2008-12-10T07:29:39.713832Z Igor Melichev
Fix (PDF interpreter) : Avoid extra erasepage, part 1. DETAILS : This is the first partial fix for the bug 690131 "Optimize consecutive setpagedevice". The PDF interpreter calls extra setpagedevice for initializing the number of spot colors. First it happens in pdfshowpage_setpage, and we merge that call with another one that sets other multiple page parameters. Second in pdfshowpage_finish we replace it with .setpagedevice, which doesn't call .postinstall that calls erasepage.[Resource/Init/pdf_main.ps]
2008-12-09T17:30:40.898715Z Marcos H. Woehrmann
Fix for weird math issue under AIX that cause problems in glpyh spacing when writing type42 fonts for ps2write and pdfwrite. This fixes bug 690118. Details: For reasons that I don't undertand under AIX (ushort) (double * double) produces a 0 if the first double is > -1 and < 0 (and the sum is < -1). Presumably the cast happens before the multiplication, but this isn't reasonable and doesn't occur on other operating systems, even running the same version of gcc. Temporarily assigning the sum to a float and then casting to a ushort resolves the problem. The temporary assignment should be removed by the optimizer, so there shouldn't be a performance hit (I did check, the optimized code is still correct under AIX).[base/gdevpsft.c]
2008-12-09T08:45:20.654566Z Ken Sharp
Fix (pdfwrite): regression with type 3 fonts using show charpath stroke combinations. Details: bug #690196 "regression: file for bug 689687" The recent changes for text rendering modes caused a regression with Quark's type 3 font for special text effects, when optimising a show followed by charpath stroke into a single 'Tj' with a text rendering mode of 2 in the resulting PDF file. Fixed by ceasing to treat type 3 fonts specially and applying the same optimisation as for other font types. A couple of other Quark files exhibit very small differences, comparing these to the rendered output of the original files the new result seems closer to the original. (ie a progression) Also resolved a compiler warning.[base/gdevpdtc.c base/gdevpdfd.c]
2008-12-09T08:01:43.121661Z Igor Melichev
Fix (graphics) : Redundant patterns in clist (continued 3). DETAILS : Bug 690133 "Regression: Ghostscript takes up all disk space when rendering eog or GIMP PDF output in 1200 dpi". When filling a path with a pattern, the old code stores the pattern to all bands that are covered with the path. If the pattern is represented with a long clist, it consumes too big memory for the page clist. If the pattern is big, the new code writes it to the "all bands" list instead replicating it to bands. Therefore the overall memory is smaller. The decision about storing a pattern to "all bands" should also depend on the number of bands. This patch doesn't account that because current data flows don't pass the number of bands to the point where the decision must be taken. It may need a further improvement. The threshold for "big" pattern is arbitrary set to 1Mb. It may need an improvement also. It's another threshold than one for representing a pattern as a raster or a clist.[base/gxclpath.c base/gxclutil.c base/gxcldev.h]
2008-12-09T07:58:55.697280Z Igor Melichev
Fix (graphics) : Redundant patterns in clist (continued 2). DETAILS : This patch is important for the bug Bug 690133 "Regression: Ghostscript takes up all disk space when rendering eog or GIMP PDF output in 1200 dpi", but it is not restricted with its case. When writing a pattern color to a band, the old code uses the "saved color" structure for remembering which color has been stored for the band. In the case of pattern it stores the client's pattern id. However it doesn't provide enough resolution because a client's pattern may be instantiated with various CTMs. The new code uses the pattern tile id to distinguish the pattern instances. We're not sure why saved color structure stores the client's pattern id only. It should be so for pdfwrite, but need to check whether other cases are possible. Therefore the current change is kind of hackish. See comment in code.[base/gxclpath.c]
2008-12-08T08:17:55.714566Z Ken Sharp
Fix (pdfwrite): Large type 1 or 2 fonts caused errors with text. Details: bug #690144 "Files render properly with gs, but are misformatted in ps2pdf" Revision 8235 added support to pdfwrite for type 0 fonts with type 1 or type 2 (CFF) descendant fonts, emitting these as subsets of the original instead of rendering the glyphs and embedding type 3 fonts with bitmap images. This results in better quality and smaller files. However type 1 or 2 fonts which are too large for an arbitrary Ghostscript limit (> 65537 glyphs) can not be copied. This 'should' have fallen back to the old mechanism, but some data had been altered which led to this failing. The fix for this comprises 3 parts: 1) Mmodified scan_cmap_text to save the data we modify for subsetting, and restore it if pdf_obtain_font_resource_unencoded fails, which then falls back to the 'default' type 3 mechanism (in case of future problems in this area). 2) Increased the limit of glyphs (for type 1 or 2 fonts) in gs_copy_font. Added a new parameter 'max_reserved_glyphs'. If this is -1 then we reserve enough space for the number of glyphs in the original font. Otherwise we reserve space for the specified maximum. This limit only applies to font type 1 or 2, and is used by pdfwrite to avoid making excessively large font copies. 3) Modified pdf_base_alloc so that if the font is large (and is not one of the standard 13 fonts), we don't allocate a complete copy for our 'subset', we only allocate as many glyphs as will fit in a standard Encoding, 256, plus one for the required .notdef making 257 in total. We also avoid making a second 'complete' copy of the font, because we will never write the complete font.[base/gdevpdtb.c base/gxfcopy.c base/gdevpdtc.c base/gxfcopy.h]
2008-12-05T07:39:06.671710Z Alex Cherepanov
Check the whole Decode array to detect special cases of identity and inverse decoding. Previous test analyzed every channel separately and misidentified decoding arrays like [0 1 1 0 0 1]. Bug 690178.[base/gxipixel.c]
2008-12-05T04:44:51.989860Z Alex Cherepanov
Adds special, tolerant to singular matrix processing, to the case when ImageMatrix is differs from the CTM by the translation vector only, which happens in cached character rendering. The patch clears PostScript errors during text rendering with singular CTM. Bug 690179, customer 870.[base/gxipixel.c base/gsimage.c base/gxccache.c]
2008-11-29T14:33:26.712726Z Alex Cherepanov
Ignore /ToUnicode attribute when it points to an object other then a stream. Bug 680138.[Resource/Init/pdf_font.ps]
2008-11-29T12:27:04.428583Z Till Kamppeter
The pstopxl CUPS filter did not remove its temporary file.[cups/pstopxl.in]
2008-11-27T15:05:37.010932Z Ken Sharp
Fix (pdfwrite): more issues with PDF Text rendering modes. Details: Bug #689692 Colour and linewidth is not set correct for text with rendermode STROKE and FILLSTROKE Bug #Bug690025 pxlmono driver prints some glyphs as squares when the input is PostScript generated by Ghostscript This follows on from revision 9196 and further addresses problems with PDF text rendering modes. Fundamentally the problem is that the PDF text matrix (Tm) should not affect the stroke width. However PostScript only has one transformation matrix, so when we get a Tm, the PDF interpreter modifies the CTM accordingly. This alters the (effective) stroke width, resulting in incorrect output. This patch modifies the CTM before executing a stroke in modes 2 & 6, and for mode 1 modifies the stroke width by calculating what it would have been if the CTM were the identity at the time the text block began. Since pdfwrite emits text in an identity CTM, this corrects the problem. The pdfwrite code for combining show/charpath/stroke operations into a single text rendering mode has been modified to expect the CTM to be correct, and to utilise it, when emitting the combined operation.[Resource/Init/pdf_ops.ps base/gdevpdts.c base/gdevpdfd.c base/gdevpdts.h base/gdevpdfg.c]
2008-11-27T05:20:05.725774Z Alex Cherepanov
Use the same name (/PDFType3Untitled) for all Type 3 fonts without /FontName attribute. PDF interpreter doesn't need unique names and the previous attempt to generate unique names didn't work. Bug 689358.[Resource/Init/pdf_font.ps]
2008-11-27T01:58:54.354925Z Alex Cherepanov
Restore language level after loading pdfwrite.ps for consistency and compatibility with PS utilities. Also pick a few nits that may cause errors if some of start-up files ever loaded in level 1 mode. Thanks to SaGS for the patch. Bug 688151.[lib/pdfwrite.ps Resource/Init/gs_dpnxt.ps Resource/Init/gs_cff.ps]
2008-11-25T17:19:23.759068Z Till Kamppeter
Fixed paper tray selection for the PCL 4/5/5e drivers (bug 690182). Works fine now with "-dMediaPosition=..." and for all possible trays. Needs review to see whether it does not break anything else.[base/gdevdjet.c]
2008-11-24T23:04:21.969628Z Alex Cherepanov
Skip everything before 'begincodespacerange' in ToUnicode CMap stream to avoid PostScript errors in CMap headers. PDF interpreter doesn't need any data from the header. Bug 689842, customer 870.[Resource/Init/pdf_font.ps]
2008-11-24T19:15:04.507271Z Till Kamppeter
Fixed input tray selection support in the PCL-XL drivers ("pxlmono"/"pxlcolor"), fixes on CUPS filter and PPDs to make input tray selection actually work.[base/gdevpx.c cups/pstopxl.in cups/pxlmono.ppd cups/pxlcolor.ppd]
2008-11-24T11:01:42.358113Z Till Kamppeter
Made the CUPS filters and PPDs for PCL-XL also work with PDF as input data format[cups/pstopxl.in cups/pxlmono.ppd cups/pxlcolor.ppd]
2008-11-23T20:36:12.040586Z Igor Melichev
Fix (CID font emulation) : CID from another writing mode rendered a wrong glyph (continued) DETAILS : This improve3s the second partial fix for Bug 689304 "improper handling of vertical japanese text", related to Comment #30, #31. The revision 9213 appears buggy. When a SubstCID resource is not available, the stack balance is broken.[Resource/Init/gs_cidtt.ps]
2008-11-21T14:24:21.693040Z Till Kamppeter
The "cups" output device was logging way to much in CUPS' debug logging mode. Moved some logging to debug2.[cups/gdevcups.c]
2008-11-21T05:31:10.447898Z Alex Cherepanov
Add a check for bogus '>>' after 'endstream' to recover files generated by 'Kroll Background Screening'. Bug 690161.[Resource/Init/pdf_base.ps]
2008-11-20T21:11:09.954526Z Alex Cherepanov
Move validation of the page tree after installation of the decryption handler because access to encrypted xref streams needs decryption. Fix regression introduced by the rev. 8933. Bug 690175.[Resource/Init/pdf_main.ps]
2008-11-20T19:31:36.700423Z Ralph Giles
Add AES support to the pdf interpreter. This commit adds convenience wrappers around the aes stream implementation to pdf_sec.ps, and calls them when appropriate, based on the crypt filter methods defined in the file Trailer's Encrypt dictionary. Bug 688958. It also includes comment and whitespace cleanup.[Resource/Init/pdf_sec.ps]
2008-11-17T19:43:47.727833Z Alex Cherepanov
Add missing initialization of read_id field in reusable streams. DETAILS: This error was detected by Valgrind. I don't have any samples where this fix affects the output.[psi/zfrsd.c]
2008-11-17T10:41:13.803460Z Ken Sharp
Fix (pdfwrite): Not considering all glyphs in a string when noting first/last character Details: Bug 690166: extra space after apostrophe when distilled Revision 8235 added support for type 0 fotns with type 1 or 2 descendants, this required using pdf_adjust_first_last_char so that we correctly noted the used glyphs, and stored their widths. An oversight in calling the function resulted in only the first glyph in the string being considered.[base/gdevpdtc.c]
2008-11-16T14:47:49.851717Z Igor Melichev
Fix (PS interpreter) : Eliminate unuseful transfer of left side bearing to type42_finish. DETAILS : This change is algorithmically equivalent. type42_finish never uses lsb data that could be passed to it via operand stack from some clients. This patch removes those data and related arguments of some C functions.[psi/zchar42.c psi/zchar42.h psi/zchar.c]
2008-11-16T12:15:46.619814Z Igor Melichev
Fix (TT font handler) : Wrong glyph posiitions with vertical vcriting mode. DETAILS : Bug 689304 "improper handling of vertical japanese text". This is third partial patch for the bug 689304. The old formulas were obtained impirically and don't give the right result. The new ones are coded with a better understanding of the problem. See comments in code for more details. Rather the patch closes the bug, we want to do some additional equivalent changes for cleaning the code. Another patch coming soon.[psi/zchar42.c]
2008-11-15T14:07:27.807825Z Ken Sharp
Fix PS interpreter: issues with ICCBased spaces Details: Bug #690169 Regression: seg fault reading Bug689830.pdf, Bug689831.pdf, and annots.pdf The 9218 revision to restore the 'optional' nature of the Alternate in ICCBased colour spaces was unfortunately incomplete. This led to us trying to set a 'null' colour space when a PDF file had a damaged and unusable ICC specification. We now use the technique specified in the PDF Reference, take the value of 'N' from the space and use that to select an appropriate alternate, when one is not specified.[psi/zcolor.c]
2008-11-13T14:23:05.749468Z Alex Cherepanov
Skip null entries in /Annots array. Bug 690161.[Resource/Init/pdf_main.ps]
2008-11-13T02:02:49.620374Z Ray Johnston
Revert 8.63 behavior where the /Alternate key/value pair in ICCBased param dictionaries is optional. Bug 690165 for customer 850. DETAILS: This allows: [ /ICCBased << /N 3 /DataSource (srgb.icc) (r) file >> ] setcolorspace to work, where srgb.icc is the path to an 'input' ICC color profile. Until Ghostscript has support for ICC profiles throughout, this is useful to allow for setting the Resource/ColorSpace/Default*** colorspaces (or defining the ColorSpace resources) using ICC profiles.[psi/zcolor.c]
2008-11-10T19:01:57.531817Z Igor Melichev
Fix (clist writer) : A crash when transparent object appears over the page top. DETAILS : Bug 690149 "PDF-file can not be converted". The transparency compositor cropping caused an attempt to Write to a non-existing band over the page top. This patch skips writing such compositor commands.[base/gxclimag.c]
2008-11-09T20:38:08.817663Z Igor Melichev
Fix (CID font emulation) : CID from another writing mode rendered a wrong glyph (part 2). DETAILS : This change fixes the previous change's commitment error. This log message describes the union of the 2 changes. This is a second partial fix for Bug 689304 "improper handling of vertical japanese text", related to Comment #30, #31. When emulating a CID font with an Open Type font, a CID is first mapped to an OpenType encoding and then to a glyph index. However OpenType provides same character codes for glyph variants, which render differently depending on writing mode. The glyph '(' is an example. This patch works for OpenType fonts only, which provide a GSUB for vertical writing mode. It is not working for True Type collections with no GSUB. They need a further improvement. The patch assumes that all interpreters initialize a Type 42 font with zeroing all its fields. Postscript interpreter does so since a long ago, but we're not sure about others. They may need an improvement. 1. Define a new resource category SubstCID (Resource/Init/gs_ciddc.ps). 2. Provide a tool for generating resources for that category (toolbin/GenSubstCID). 3. Provide resources for various orderings (Resource/SubstCID/CNS1-WMode, Resource/SubstCID/GB1-WMode, Resource/SubstCID/Japan1-WMode, Resource/SubstCID/Korea1-WMode). 4. When loading a TrueType or OpenType font for a CID font emulation, associate an appropriate SubstCID resource to it (Resource/Init\gs_cidtt.ps). (We do associate the resource with TrueType hoping that some True Type fonts may provide GSUB). 5. Define a new structure gs_subst_CID_on_WMode_s for storing that information for the graphics library (base\gxfcid.h), and its garbager descriptor (base/gsfcid.c). Since it may duplicate for several fonts, it is shared and reference-counted. 6. The new function get_subst_CID_on_WMode loads the resource data for the graphics library in psi\zfcid1.c . Note it is implemented for PS interpreter only. 7. Generalized gs_type42_substitute_glyph_index_vertical with providing a CID in base/gstype42.c and made it be a virtual function of gs_font_type42 (base/gxfont42.c). We're not sure how other interpreters initialize the font, so we're checking it for NULL for safety and use gs_type42_substitute_glyph_index_vertical as a default implementation. 8. font11_substitute_glyph_index_vertical is another implementation of that function, which accounts gs_subst_CID_on_WMode_s data for providing a right glyph depending on WMode. Rather a SubstCID resource provides a substitution, currently we only use the fact that a CID is substituted, and never use the substituting CID. Nevertheless we prefer to define and store the resource in the complete form for possible improvements in future (zfcid1.c). 9. release_subst_CID_on_WMode automatically releases the resource data when all fonts (that use it) are released. 10. Added SubstCID to the ROM file system in psi/psromfs.mak . 11. Minor unrelated fix : propagate errors from gs_font_notify_register for (7) in base/gstype42.c .[psi/zchar42.c Resource/Init/gs_ciddc.ps Resource/Init/gs_cidtt.ps psi/int.mak psi/zfcid1.c psi/zfont42.c]
2008-11-09T19:09:30.285684Z Igor Melichev
Fix (CID font emulation) : CID from another writing mode rendered a wrong glyph (part 1). This revision is incomplete due to a commitment error. Please use next revision. DETAILS : This is a second partial fix for Bug 689304 "improper handling of vertical japanese text", related to Comment #30, #31. When emulating a CID font with an Open Type font, a CID is first mapped to an OpenType encoding and then to a glyph index. However OpenType provides same character codes for glyph variants, which render differently depending on writing mode. The glyph '(' is an example. This patch works for OpenType fonts only, which provide a GSUB for vertical writing mode. It is not working for True Type collections with no GSUB. They need a further improvement. The patch assumes that all interpreters initialize a Type 42 font with zeroing all its fields. Postscript interpreter does so since a long ago, but we're not sure about others. They may need an improvement. 1. Define a new resource category SubstCID (Resource/Init/gs_ciddc.ps). 2. Provide a tool for generating resources for that category (toolbin/GenSubstCID). 3. Provide resources for various orderings (Resource/SubstCID/CNS1-WMode, Resource/SubstCID/GB1-WMode, Resource/SubstCID/Japan1-WMode, Resource/SubstCID/Korea1-WMode). 4. When loading a TrueType or OpenType font for a CID font emulation, associate an appropriate SubstCID resource to it (Resource/Init\gs_cidtt.ps). (We do associate the resource with TrueType hoping that some True Type fonts may provide GSUB). 5. Define a new structure gs_subst_CID_on_WMode_s for storing that information for the graphics library (base\gxfcid.h), and its garbager descriptor (base/gsfcid.c). Since it may duplicate for several fonts, it is shared and reference-counted. 6. The new function get_subst_CID_on_WMode loads the resource data for the graphics library in psi\zfcid1.c . Note it is implemented for PS interpreter only. 7. Generalized gs_type42_substitute_glyph_index_vertical with providing a CID in base/gstype42.c and made it be a virtual function of gs_font_type42 (base/gxfont42.c). We're not sure how other interpreters initialize the font, so we're checking it for NULL for safety and use gs_type42_substitute_glyph_index_vertical as a default implementation. 8. font11_substitute_glyph_index_vertical is another implementation of that function, which accounts gs_subst_CID_on_WMode_s data for providing a right glyph depending on WMode. Rather a SubstCID resource provides a substitution, currently we only use the fact that a CID is substituted, and never use the substituting CID. Nevertheless we prefer to define and store the resource in the complete form for possible improvements in future (zfcid1.c). 9. release_subst_CID_on_WMode automatically releases the resource data when all fonts (that use it) are released. 10. Added SubstCID to the ROM file system in psi/psromfs.mak . 11. Minor unrelated fix : propagate errors from gs_font_notify_register for (7) in base/gstype42.c .[Resource/SubstCID/CNS1-WMode base/gxfcid.h Resource/SubstCID base/lib.mak Resource/SubstCID/GB1-WMode Resource/SubstCID/Japan1-WMode base/gsfcid.c base/gxfont42.h psi/psromfs.mak base/gstype42.c toolbin/GenSubstCID.ps Resource/SubstCID/Korea1-WMode]
2008-11-07T18:49:34.403723Z Ralph Giles
Remove a duplicate typedef for stream_arcfour_state. Details: The duplicate (opaque pointer) typedef in gdevpdfx.h was redundant and any users that dereferenced members or allocated the struct on the stack already included sarc4.h. I believe the idea here was just to hide the structure details from some hypothetical user of the pdf_crypt api. However, the stream state structure should either be opaque, with only the typedef in sarc4.h or it should be public and using it requires sarc4.h. The duplication isn't justified in either case. Since stream state structures generally are public so they can be stack-allocated, we decided to remove the duplicate typedef. Also adds a missing dependency to the makefile. Issue originally reported by the coverity hfa checker.[base/gdevpdfx.h base/devs.mak]
2008-11-06T23:51:27.600449Z Marcos H. Woehrmann
Updates to nightly regressions to allow them to run under Mac OS X. Details: Change uname parameters from '-m -o' to '-m -s' Don't appened ".db" to filename when opening database. Replace sendmail python function with call to /usr/bin/sendmail. Archive daily rasters. Change location of gscdef.c from src to base. Call time from /usr/local/bin (/usr/bin/time doesn't take -f option). Note that some of these changes are not compatible with peeves.[toolbin/tests/make_baselinedb.py toolbin/tests/gscheck_raster.py toolbin/tests/testdiff.py toolbin/tests/compare_checksums.py toolbin/tests/gscheck_pdfwrite.py toolbin/tests/build_revision.py toolbin/tests/check_dirs.py toolbin/tests/compare_checksumdb.py toolbin/tests/gsconf.py toolbin/tests/get_baseline_log.py toolbin/tests/run_nightly.py toolbin/tests/gstestgs.py toolbin/tests/run_regression.py toolbin/tests/update_baseline.py]
2008-11-06T23:30:55.150402Z Marcos H. Woehrmann
Stopped generating 600 dpi raster files when running make_missing since they were never being tested.[toolbin/tests/gsparamsets.py]
2008-11-06T23:27:54.191464Z Marcos H. Woehrmann
Made some messages prettier.[toolbin/tests/testdiff.py]
2008-11-06T23:25:02.686517Z Marcos H. Woehrmann
Fixed typo.[toolbin/tests/update_baseline.py]
2008-11-06T20:13:19.335714Z Igor Melichev
Fix (graphics) : A missed dependency in makefile.[base/lib.mak]
2008-11-06T20:04:26.632073Z Igor Melichev
Fix (clist interpreter) : A faster procesing without a preliminary clearing of the band buffer. DETAILS : The preliminary cleaning of the buffer appears unuseful because erasepage in the clist code performs same function.[base/gxclread.c]
2008-11-06T19:09:39.284217Z Ralph Giles
Remove an unused variable.[base/gdevpdtt.c]
2008-11-06T19:09:37.330669Z Ralph Giles
Add a missing include for pdf_prepare_stroke().[base/gdevpdts.c base/devs.mak]
2008-11-05T20:41:22.951927Z Ralph Giles
Remove psromfs.mak from ugcclib.mak. This makefile is ostensibly for the graphics library only.[base/ugcclib.mak]
2008-11-05T20:41:06.620266Z Ralph Giles
Add -lpthread to ugcclib.mak. It is now required by sync=posync.[base/ugcclib.mak]
2008-11-05T08:26:19.980667Z Ken Sharp
Fix (pdfwrite): several issues with PaintType 2 (stroked fonts) and PDF Text rendering modes. Details: Bug #690136 Differences in character stroke width Bug #689970 major artefacts in pdfwriter output Bug #688267 Ghostscript need native PDF graphic state Bug #689654 pdfwrite ignores font /PaintType 1 Bug #689692 Colour and linewidth is not set correct for text with rendermode STROKE and FILLSTROKE The current implementation of text rendering modes has some problems. I've been able to address most of these in this patch by: 1) Making the charpath detection slightly less picky. This picks up more instances of filled text followed by 'charpath stroke', combining correctly into a PDF text rendering mode. 2) Relaxing the criteria for detecting a Tr mode involving stroking. 3) Removing some spurious scaling, and applying a better scale factor when using stroked fonts (Paint Type 2). There are still problems with this code, and they are insuperable in the current architecture of pdfwrite/PDF interpreter. Specifically; Text render mode 6 (fill, stroke and clip) doe snot work properly, text which is stroked using a linewidth set outside the text block, and with a non-identity CTM and non-identity text matrix results in incorrect stroke widths. This will need to be addressed further under bug #688267, which is an enhancement. In the meantime this patch significantly improves the current implementation. Note; bug #689692 is still slightly incorrect with this patch, though improved. Bug #690025 is unchanged (still incorrect).[base/gdevpdts.c base/gdevpdtt.c]
2008-11-04T05:07:32.360011Z Alex Cherepanov
Add support for indirect objects in /W and /W2 entries in the CIDFont dictionary. Bug 690151.[Resource/Init/pdf_font.ps]
2008-11-04T03:33:52.379523Z Alex Cherepanov
Export (i.e. don't undefine) runpdfpagerange procedure for the benefit of PDF manipulation utilities. Bug 690153.[Resource/Init/pdf_main.ps]
2008-11-03T06:26:32.640021Z Alex Cherepanov
Fix a bug in object stream handling that sometimes dropped incremental updates. Bug 690141. DETAILS: An incremental update can replace only some of the objects in the object stream. Old code didn't check xref tables and resolfed all unresolved objects from the stream. Once resolved, an object is no longer accessed through xref.[Resource/Init/pdf_base.ps]
2008-11-03T04:28:51.792909Z Ray Johnston
Fix Floating Point excpetion caused by improper initializer of a private device structure subclassed (in the klunky C ghostscript fashion) from the gx_device_printers_s structure. Restructure a macro in base/gdevprn.h to help prevent similar bit rot in the future. Bug 690122. DETAILS: The problem was with devices that use the contrib/lips4/gdevlprn.h header files. The lp_duplex_device_body_rest_ and lp_device_body_rest_ macros that initialized the prn_device structure 'common' elements were out of date with respect to the revision in the gx_device_printer_s structure made for the multi-threaded rendering. The num_render_threads_requested integer was added. I restructured the prn_device_body_rest2_ in base/gdevprn.h so that the contrib/lips4/gdevlprn.h initialization macro could use this to minimize the likelihood of bit rot in the future. I did a search for other devices that might have the same problem and did not find them (although I may have missed them).[base/gdevprn.h contrib/lips4/gdevlprn.h]
2008-10-28T03:15:52.084170Z Alex Cherepanov
Don't assume that the top of the dictionary stack is writable or can be made writable by allocating a new PDF graphic state. The latter cannot be done in pdfinflt.ps and similar clients. This patch replaces my previous fix (r. 9124) for the bug 690088. Bug 690134.[Resource/Init/pdf_base.ps]
2008-10-28T00:43:49.468966Z Alex Cherepanov
Ignore named encodings for known symbolic fonts. Bug 690135, customer 580. DETAILS: Acrobat reader appears to know that /WinAnsiEncoding is not compatible with Wingdings2. The patch looks up the font name in a table to determine whether the font is symbolic because corresponding /Flags attribute is unreliable.[Resource/Init/pdf_font.ps]
2008-10-27T21:53:17.877952Z Ralph Giles
Update the documentation reference to psromfs.mak. This file moved from base to psi in r9126.[doc/Develop.htm]
2008-10-25T04:34:30.742669Z Michael Vrhel
Fix for bug 690103. This issue was introduced with r8868 where spatial interpolation in the source color space was introduced. The part that was missing in that commit was to handle the case where we had 8 bit image data that was non CIE based and NOT encoded with [0 1] . DETAILS: This patch was tested with forced interpolation on a set of files that are known to have issues with interpolation. It performed properly on those and on the customer's bug file. The part that was missing in the old code was the case where we have encoded (not [0 1]) nonindexed 8 bit image data that is not CIE based. For this case, it was not getting properly decoded prior to interpolation.[base/lib.mak base/gscspace.h base/gxiscale.c base/gscspace.c]
2008-10-24T14:51:44.819826Z Igor Melichev
Fix (TT font handler) : Properly process a broken TTC header. DETAILS : Bug 690105 "seg fault reading pcl file" 1. Check for TTC version header and print error if it is unknown. 2. Fixing the formatting according to C-style.htm .[base/gstype42.c]
2008-10-23T04:33:29.326096Z Marcos H. Woehrmann
Make gx_sort_ht_order() deterministic. DETAILS: The gx_sort_ht_order() routine sorts the halftone mask values. These values are often the same and qsort() does not guarantee the order of equal elements. However, the order appears to be significant for the output (differences in the nightly regression are seen on different computers). And it's also possible that this indeterminism is part of the cluster regression problem. This revision sorts equal masks by index value. DIFFERENCES EXPECTED: Some of the pbmraw or pkmraw nightly regressions may have minor differences in the dithering pattern.[base/gsht.c]
2008-10-23T04:28:42.566180Z Marcos H. Woehrmann
Changed decleration of det from float to double in gs_matrix_invert(). DETAILS: On peeves the results of gs_matrix_invert() change depending on whether or not compiler optimization is enabled if det is declared as a float. I believe this is due to the optimized code never storing the det value so it never get shortened to a float; by declaring it as a double the unoptimized code should act the same.[base/gsmatrix.c]
2008-10-21T18:09:59.854984Z Ralph Giles
Fix a makefile dependency which should have been added in r8872.[base/lib.mak]
2008-10-21T16:26:09.248809Z Igor Melichev
Fix (PS intetreter) : Crash in garbager when resetting marks in names table. DETAILS : Bug 690129 "MSVC8 x64 debug build crashes in names_trace_finish" 1. The real bug : the old code sometimes removes an element from nt->sub table with name_scan_sub, and then resets marks in the element that has same table index. If the removed element is the last one, it tryes to process an uninitialised element and crashes indeterministically. The new variable save_count works for that. The bug persisted since the repository was created. 2. Minor change : an optimization : The old code checked twice for the loop exit condition. To fix it we changed the type of the variable 'i' and changed the loop condition.[psi/iname.c]
2008-10-21T10:35:52.809111Z Ken Sharp
Fix (pdfwrite): Conversion of PaintType 0 fonts to text rendering mode 1 sometimes produced incorrect stroke width. Details: Bug #690116 "StrokeWidth of outline font too small" pdfwrite converts fonts with a PaintType of 0 (outline fonts) to a normal font, but sets the text rendering mode to 1. The calculation of the required stroke width was insufficient in some cases.[base/gdevpdts.c base/gdevpdtt.c base/gdevpdts.h]
2008-10-19T20:32:03.940940Z Alex Cherepanov
Search for 'startxref' instead of '%%EOF' in PDF recovery code because '%%EOF' is mangled more ofthen than 'startxref'. Bug 690071, customer 384.[Resource/Init/pdf_rbld.ps]
2008-10-19T01:23:28.662366Z Alex Cherepanov
Extend the size of the array for procedures scheduled for binding in DELAYBIND mode to 2000. Prevent an overflow when 3rd party code (such as Ubuntu CJKV patch) binds many new procedures. Bug 690124.[Resource/Init/gs_init.ps]
2008-10-18T10:52:42.057112Z Till Kamppeter
Fixed bug #690032: bjc600/bjc800 drivers do not work with PDF input[base/gdevcdj.c]
2008-10-18T03:11:41.445457Z Alex Cherepanov
Fix a bug in a new reusable stream implementation introduced in rev. 8810. Take into account unread data left in the stream buffer before refilling the buffer. Bug 690090, customers 384, 581, 661.[psi/zfrsd.c]
2008-10-17T22:58:21.764880Z Ralph Giles
Update properties for cups driver files.[cups/pstoraster.in cups/pdftoraster.c cups/pstopxl.in cups/pxlmono.ppd cups/cups.mak cups/gdevcups.c cups/pxlcolor.ppd]
2008-10-17T22:57:38.635737Z Till Kamppeter
Use $(PDFTORASTER_XE) for path to compiled pdftoraster binary[cups/cups.mak]
2008-10-17T21:46:27.567328Z Till Kamppeter
Put new files under MIT license,[cups/pdftoraster.c cups/pdftoraster.convs]
2008-10-17T20:50:06.903656Z Igor Melichev
Fix (clist writer) : Wrong compositor cropping when a shading is entirely clipped out (continued). DETAILS : Bug 690106 "Regression: /unregistered in --run--" The recent patch for the subject is not sufficient because an empty clipping condition cannot be anticipated in the clist writer. To fix it we introduce a new flag gx_device_clist_writer_s::cropping_saved especially for clist_fill_path to know whether it was called recursively for passing an untrivial clipping path for a shading. The cropping must be restored in the outer call iff it is set.[base/gxclpath.c base/gxclist.c base/gxclist.h]
2008-10-17T20:27:04.052662Z Till Kamppeter
Added Ghostscript-based pdftoraster filter[cups/pdftoraster.c cups/cups.mak cups/pdftoraster.convs]
2008-10-17T16:49:58.474885Z Till Kamppeter
Fixed several bugs, like crash if input is PDF (bug #690101), duplex not working, ...[cups/gdevcups.c]
2008-10-17T13:44:34.259593Z Alex Cherepanov
Consider /Identity CMap compatible with any CIDFont /Ordering. Bug 690120.[Resource/Init/gs_cidcm.ps]
2008-10-17T09:31:35.914027Z Ken Sharp
Fix (pdfwrite): ICCBased color spaces in input PDF files, /Alternate space converted to ICCBased in output PDF file. Details: Bug #690038 "Regression: ghostscript cannot read ghostscript produced PDF file." The PDF interpreter always runs with (in effect) /UseCIEColor set to true. This converts process spaces to CIE color spaces, which are emitted in the PDF as ICCBased color spaces when using pdfwrite/ps2write. However, for ICCBased color spaces this caused the /Alternate space of the ICCBased space to become another ICCBased space, which is legal but silly, and caused the GS PDF interpreter problems. Modified the alternate space extraction routines so that they can use the UseCIE flag in the color handling code to prevent the base space being substituted with a CIE space, when the parent space is an ICCBased space. Also discovered in passing that zfsample.c and zfunc4.c use zcolor.h but the makefile did not have dependencies for them. Fixed.[psi/zcolor.c psi/zfunc4.c psi/zcolor.h psi/int.mak psi/zfsample.c]
2008-10-15T17:47:00.008618Z Ray Johnston
Switch file I/O of 'opdfread.ps' to 'strmio' that supports the %rom% file system as well as the default (%os%) file system. Bug 690074.[base/gdevpdfu.c base/devs.mak]
2008-10-15T07:06:40.437422Z Ken Sharp
Revision 9154 accidentally left a temporary C++ style comment in place.[psi/zicc.c]
2008-10-15T04:51:30.597312Z Michael Vrhel
Fix for bug 689961. There was a problem with the testing to determine if a color space mapping was linear within a triangle and along a line. The old code assumed the number of components was the same in the client and device color space. In general this is not true, especially if we have a DeviceN color space with one color and a CMYK output device, which was the test case given.[base/gscspace.c]
2008-10-15T01:32:43.847670Z Ralph Giles
Exclude local repository files from other version control systems from clusterpush.[toolbin/clusterpush.sh]
2008-10-15T01:32:39.731625Z Ralph Giles
Read git commit names if an svn revision number isn't available.[toolbin/clusterpush.sh]
2008-10-15T01:32:33.815878Z Ralph Giles
Update the clusterpush script for the new source locations. Previously we copied the baseline from the last ghostpcl run on the cluster, but since the ghostpdl tree moved to the public repository it runs in an updating directory like gs. Also, compare return codes numerically instead of as a string.[toolbin/clusterpush.sh]
2008-10-14T18:27:24.066580Z Ken Sharp
Fix (PS interpreter): .seticcspace leaving operand on stack. Details: Bug #690039 "failure to read ICC profiles generated by Adobe Photoshop Version 7 and 9". ICC profiles in PostScript comments are handled by the comment parsing code in gs_icc.ps, using the .seticcspace operator. After the recent change to handle colour in 'C' rather than PostScript, the .seticcspace operator was not removing its argument from the operand stack. This led to the comment processing for other purposes (specifically pdfwrite in this case) generating errors, as the stack had been disturbed. Altered the 'seticc' routine (called by .seticcspace) to remove the operand from the stack. Also required altering the C colour processing to increment the operand stack and pass the operand that way, when calling seticc for PDF interpretation.[psi/zcolor.c psi/zicc.c]
2008-10-13T21:03:48.526048Z Till Kamppeter
Make Duplex with the "pxlcolor" and "pxlmono" drivers work (standard command line options "-dDuplex" and "-dTumble").[base/gdevpx.c]
2008-10-12T06:38:18.212672Z Alex Cherepanov
Remove spurious un-definition of GlobalSubrs attribute during loading of OpenType CFF fonts as CIDFont resources. Bug 690113, customer 1110.[Resource/Init/gs_cff.ps]
2008-10-10T08:51:42.858031Z Ken Sharp
The update for opdfread.ps in revision 8706 missed a required routine 'putu32'. Details: putu32, used to update the offsets of TrueType tables in the TrueType header, uses putu16, which was accidentally omitted. This (oddly) didn't seem to cause a problem with testing but did for the customer. Added the missing routine.[Resource/Init/opdfread.ps]
2008-10-09T19:48:14.487705Z Alex Cherepanov
Scale widget annotations in x and y directions to fit the BBox of the appearance stream into the annotation rectangle. Old code considered y direction only. Bug 690109. DETAILS: This implementation is mainly based on the experiments with AR5.[Resource/Init/pdf_draw.ps]
2008-10-09T17:53:10.358436Z Ray Johnston
Increase stack size to allow GS to run on older NT versions. Thanks to Alex for pointing this out.[psi/dw32c.def]
2008-10-08T15:03:58.878575Z Ray Johnston
Increase stack size to allow GS to run on older NT versions. Thanks to Alex for pointing this out.[psi/dwmain32.def]
2008-10-08T13:40:55.237034Z Ken Sharp
Log: Fix: ps2write. Very large TrueType fonts (>64Kb), when converted to Type 42 fonts for use in PostScript, must contain an /sfnts entry, which is an array of strings comprising the TT font. There are restrictions on where the original data is split to form the strings, which ps2write was not honouring. DETAILS: Bug #690044 "Printer error (49,4C02) with ps2write output" Bug #690012 "Error with ps2write output ps file when Unicode font is used" Bug #690030 "Issue with NeverEmbed flag with ps2write device for some of the fonts" There are five changes made to opdfread.ps in order to fix these problems: 1) The VM allocation mode used by opdfread is now local throughout, where previously it was global. Judging by the number of local hacks, this has frequently caused problems in the past. 2) There was a problem if a Font Descriptor contained neither a FontFile nor a FontFile2 entry. This was due to not embedding fonts, but caused the code to enter an infinte loop looking for one or the other. 3) After encountering the 'xref' in the PDF file, the code simply flushed the input file. This could potentially cause a problem if the EOF was not signalled back to the interpreter. This was theorised to be one of the issues, and fixed in passing, even though it was not in fact causing a problem. 4) The sfnts array is now built up from strings which follow the rules laid out in the Type 42 Font Format specification (tech note 5012) In particular the glyf table is now split on glyph boundaries. This only seems to cause problems for Adobe interpreters. 5) The 'post' table processing was modified to use an array of strings instead of a single string, if the table was >64Kb.[Resource/Init/opdfread.ps]
2008-10-08T07:43:52.342922Z Igor Melichev
TT fonts : An initial implementation of GSUB. DETAILS : This is a partial fix for bug 689304 "improper handling of vertical japanese text". It works for brackets and punctuation signs orientation when a vertical CJK text is painted with an Open Type font that defines a GSUB table. The curent implementation always chooses a Format 1 substitution table that substitutes single glyphs to single glyphs. It doesn't account LangSys and feature tables. Such logic is owned from the CJK patch attached to the bug 689304. It may need further improvements. Opposite to CJK group we implement it in C to allow to it to work for other interpreters besides Postscript. Interpreters may need to add an explicit call to the new function gs_type42_substitute_glyph_index_vertical to involve the new functionality. This happens due to a compatibility to PS interpreter that needs to call the new function from the interpreter code rather than from the graphics library. See comments in code for more details.[psi/zchar42.c base/gxfont42.h base/gstype42.c Resource/Init/gs_ttf.ps]
2008-10-08T05:56:27.963219Z Ray Johnston
Fix Windows stack overflow when NumRenderingThreads > 0. This was identified during testing for bug 690108 (see comments, #1 and #2). This is a work around as it does not address the excessive stack usage, but does work around the problem by throwing memory at it. Bug 690198.[base/gp_wsync.c]
2008-10-07T20:05:58.844384Z Ray Johnston
Restore function of NumRenderingThreads > 0 that was inadvertently disabled by previous commit to this module. DETAILS: The segfault was fixed by making sure that the clist structure was initialized as a 'reader', but this included setting ymin=0, which meant that the following test for crdev->render_threads == NULL always reverted to single threaded rendering. Note that this also will return the error if "clist_close_writer_and_init_reader" returns an error value (<0), which is consistent with the behavior of the clist_get_bite_rectangle function (NumRenderingThreads==0).[base/gxclthrd.c]
2008-10-05T17:51:25.414873Z Ray Johnston
Fix SEGV when NumRenderingThreads > 0 caused by improper clist reader phase initialization. Bug #690108. DETAILS: Make sure that the clsit device is initialized to 'reader' mode before checking the 'render_threads' element of the reader device. Prevents a SEGV when the corresponding element of the 'writer' device structure was non-zero at the end of the page since the render_threads table will not have been allocated and some other (invalid) pointer would be used instead.[base/gxclread.c base/gxclthrd.c]
2008-10-02T19:33:22.695690Z Ralph Giles
Move psromfs.mak to the interpreter source tree. This file defines variables used by lib.mak, but the resources are all related to the ps interpreter, so it makes more sense to keep it there. It is only included by top-level makefiles, so this doesn't violate the dependency boundary.[psi/os2.mak base/bcwin32.mak base/ugcclib.mak base/psromfs.mak psi/psromfs.mak base/macosx.mak base/watcw32.mak base/Makefile.in base/unix-gcc.mak base/unixansi.mak ijs/unix.mak psi/msvc32.mak base/macos-mcp.mak]
2008-09-30T19:01:35.905183Z Ray Johnston
Clean up a few coverity gripes (nothing important)[base/gxclthrd.c]
2008-09-27T01:39:36.090759Z Alex Cherepanov
Set the temporary value of PDFDEBUG flag using 'gput' procedure instead of 'def' because initial PDF graphic state is represented by a read-only dictionary. Bug 690088.[Resource/Init/pdf_base.ps]
2008-09-25T23:48:03.662203Z Alex Cherepanov
Process invalid PDF operator QBT as Q BT . Bug 690089, customer 384.[Resource/Init/pdf_draw.ps]
2008-09-25T13:36:55.133901Z Igor Melichev
Fix (printer devices) : Allow retries for raster buffer allocation when BufferSpace is default. DETAILS : Bug 690055 "seg fault at higher resolutions". 1. The old code implements a branch with increasing the buffer space when a clist writer initialization fails with limitcheck and the buffer size is default. However the clist writer initialization never returns limitcheck, it does return rangecheck instead. I guess the bug is in the retry condition so I change it to rangecheck. 2. When the buffer space size is not default, the old code crashes while setpagedevice, if the device was opened. The clist initialization returns with an inconsistent clist writer state and the device still has is_open flag set. The new code resets is_open if the clist writer initialization fails while setpagedevice. Thanks to Ray for participation.[base/gxclist.c base/gdevprn.c]
2008-09-25T10:10:03.369546Z Igor Melichev
Fix (clist writer) : Wrong compositor cropping when a shading is entirely clipped out. DETAILS : Bug 690078 "clist error in fts_41xx.xps and fts_39xx.xps". clist_fill_path implements a special processing of a clipping path for shadings. It falls back to gx_default_fill_path, which accounts both filling path and clipping patch. Doing so, gx_default_fill_path passes the clipping path to the clist writer as a high level object with calling clist_fill_path with a NULL color. However the 2 calls to clist_fill_path differently processed the case of the empty clipping : the first call did not return immediately and restored the compositor cropping interval after returning from gx_default_fill_path, but the second call does return immediately and did not save the interval before the clipping path is written. Thus the interval was restored to a wrong state that occasionally left from a preceeding filling operation. This patch moves the check for empty clipping ahead the main processing in clist_fill_path, so that the 2 calls do same thing about the skipping of an empty clipping.[base/gxclpath.c]
2008-09-24T11:07:46.268855Z Ralph Giles
Initial support for aes decryption streams. Details: This adds an AESDecode filter to the interpreter which wraps the new aes stream implementation.[psi/zfaes.c psi/int.mak]
2008-09-24T11:07:43.989804Z Ralph Giles
Initial support for aes decryption streams. Details: This adds support for compiling the xyssl aes implementation added in r8870, and a stream library wrapper which calls it. Note that while an s_aes_set_key() procedure is provided to set a key in an allocated stream state, it merely stores the key, and the actual allocation of the aes_context structure and initialization with the key happen the first time the stream's process() method is called. This is because a typical call to filter_read() in the interpreter binding will end up memcpy()ing this to its own separately allocated stream state. This preserves any static initialization performed by the caller, such as passing in the key, but the xyssl aes_context structure includes an internal pointer, and this is not updated when the state is copied. The internal pointer provides an indirect reference to support optional storage of the sbox in secure memory. We're not using this feature, so we could remove it, or update the pointer ourselves when our process() method is first called. However, working around the issue by delaying all opaque initialization until the stream is working is more robust.[base/saes.c base/lib.mak base/saes.h]
2008-09-23T18:57:30.153977Z Igor Melichev
Fix (PS interpreter) : Incorrect data in garbager descriptor for reusable stream state. DETAILS : The bug was introduced in rev 8810. It defines a wrong offset for a relocating pointer. The reason is an inaccurate copy-and-replace coding. Fortunately the offset pointed to a static data pointer, which the garbager filtered out with an error message.[psi/zfrsd.c]
2008-09-22T10:56:52.199700Z Ken Sharp
Remove a number of no longer required includes from the source, and update the makefile to remove the dependencies. Local regression testing shows no differences, local builds correctly generate executable.[base/gdevpdfm.c base/gdevpsdp.c base/gdevpdt.c base/gdevpdfo.c base/gdevpdf.c base/gdevpsdu.c base/gdevpdfd.c base/gdevpdfu.c base/gdevpdfv.c base/gdevpsdi.c base/gdevpdfg.c base/devs.mak]
2008-09-19T23:31:25.043936Z Ralph Giles
Fix a double fclose(). fuzzy_diff_images() doesn't open the files it reads from, so it should not close them when cleaning up. The caller takes care of this on line 764, right after calling fuzzy_diff_images().[toolbin/tests/fuzzy.c]
2008-09-19T21:45:10.190751Z Ralph Giles
Correct two typos in error message strings.[toolbin/tests/fuzzy.c]
2008-09-19T21:45:09.139047Z Ralph Giles
Move the freport initizialization out of fuzzy_diff_images() to silence a gcc uninitialized variable warning.[toolbin/tests/fuzzy.c]
2008-09-19T21:45:08.203062Z Ralph Giles
Remove trailing whitespace.[toolbin/tests/fuzzy.c]
2008-09-19T21:45:06.338528Z Ralph Giles
Fix a gcc warning. Bug 690054. Details: The gs_note_error() macro can't be called like a normal function. In non-debug builds it reduces to its argument, generating an empty statement. Placing it after a return or on the right hand side of an assignment prevents this warning.[base/gdev8510.c]
2008-09-19T16:22:32.262870Z Ralph Giles
Include our math_.h wrapper instead of math.h. Details: We have header_.h wrappers for most system headers which include various platform-specific #ifdef trees to ensure the symbols we use are defined. Except for some of the bootstrap code, these wrappers should always be used instead of the system headers.[psi/zcolor.c psi/int.mak]
2008-09-19T16:08:02.308202Z Ralph Giles
Also remove gscolor1.h from the zcolor.c dependency list.[psi/int.mak]
2008-09-19T13:44:55.520555Z Ken Sharp
Remove gscolor1.h. We no longer use gs_setcmykcolor here and so this header is not required.[psi/zcolor.c]
2008-09-19T00:01:51.675092Z Ralph Giles
Use a portable path separator in gs.mak.[base/gs.mak]
2008-09-18T23:55:26.486186Z Ralph Giles
Remove a spurious $(_I) and add use portable $(D_)...$(_D) for defines as needed by the openvms build. Bug 690084.[base/libpng.mak base/devs.mak]
2008-09-18T23:50:07.487730Z Ralph Giles
Fix typos in third-party library paths introduced in r6514. Bug 690084.[base/openvms.mmk]
2008-09-18T23:31:16.150062Z Ralph Giles
Additional leading space characters before colons in makefiles. Bug 690084.[base/lib.mak contrib/contrib.mak]
2008-09-18T20:32:08.326447Z Ralph Giles
Space makefile colons for the benefit of VMS. Bug 690084. OpenVMS supports a basic makefile syntax, but requires a space on both sides of the dependency colon. We try to maintain this in our cross-platform makefiles.[contrib/contrib.mak base/contrib.mak base/devs.mak]
2008-09-18T18:23:22.617130Z Ralph Giles
Move time_.h to the top of the include list.[base/mkromfs.c]
2008-09-18T00:37:45.093298Z Ralph Giles
The SunPro compiler doesn't handle variable length arrays in structs. Bug 689079. Patch from Jon Peatfield.[contrib/opvp/opvp.h]
2008-09-18T00:37:43.189925Z Ralph Giles
Clean up whitespace in the opvp device source.[contrib/opvp/opvp.h contrib/opvp/gdevopvp.c]
2008-09-18T00:37:41.259902Z Ralph Giles
Fix: default to MITER line joins in the opvp device. Bug 689079. The previous default was BUTT, which is a line cap, not a join. This looks like it was a cut-and-paste error. Patch from Jon Peatfield.[contrib/opvp/gdevopvp.c]
2008-09-18T00:37:38.655050Z Ralph Giles
Fix: don't treat char as unsigned in the opvp device. Bug 690079.[contrib/opvp/gdevopvp.c]
2008-09-18T00:12:11.086491Z Ralph Giles
Enable jasper assembly optimizations with _MSC_VER instead of _WIN32 so the MSVC-specific inline code won't be passed to gcc in mingw builds. Bug 690070.[jasper/src/libjasper/jpc/jpc_qmfb.c]
2008-09-16T00:29:06.813229Z Ralph Giles
Remove an inadvertent semicolon in gs_throw_code, added in r9037.[base/gserror.h]
2008-09-14T12:20:56.043501Z Alex Cherepanov
Allocate missing FontInfo dictionary in a matching global or local memory and use .forceput to override read-only status of the font directory. Bug 690063.[Resource/Init/pdf_font.ps]
2008-09-13T20:22:25.237944Z Ralph Giles
Move the dxmain.c and dxmainc.c front ends to the interpreter source directory.[base/dxmain.c psi/dxmain.c base/unix-dll.mak base/dxmainc.c psi/dxmainc.c]
2008-09-12T08:05:54.684727Z Ken Sharp
The CIEBasedDEF/DEFG colour space validation did not insist that the dictionary contain a /Table entry, which is a required entry. It also did not limit the numeric values in the /Table array to integers, reals are not allowed.[psi/zcolor.c]
2008-09-11T16:03:58.760444Z Ray Johnston
Add support for passing the requested number of copies through to the PXL output file. Tested on an actual HP printer.[base/gdevpx.c]
2008-09-10T21:35:24.802228Z Ralph Giles
Change two more printf(%x) uses with pointers to use %p. Update copyright.[base/gxclmem.c]
2008-09-10T21:33:26.724052Z Ray Johnston
Replace non-standard %P with %p for pointer printing.[base/gxclmem.c]
2008-09-09T21:00:54.348833Z Ralph Giles
Ask gcc to warn about declarations beyond the start of a block.[base/configure.ac]
2008-09-09T20:31:37.982033Z Ralph Giles
Move variable declarations to the top of blocks in the fontconfig support code. Also fixes a gcc warning about passing int 0 instead of NULL to terminate an argument list.[base/gp_unix.c]
2008-09-09T18:45:27.627887Z Ralph Giles
Add a space to the product name between the family and release names.[base/gscdef.c]
2008-09-09T17:48:26.542519Z Ralph Giles
Move some interpreter headers from base to psi. These were missed in the original merge of the reorganization patch. Also, add missing makefile dependencies for these new headers.[base/zcolor.h base/zicc.h psi/zcolor.h psi/zicc.h base/zcie.h psi/zcie.h psi/int.mak]
2008-09-09T14:33:31.847337Z Ken Sharp
Henry's coverage test revealed that a couple of 'belt and braces' checks in the RGB->HSB conversion were impossible to trigger. Removed those checks.[psi/zcolor.c]
2008-09-06T09:57:38.114441Z Ken Sharp
Address some more issues raised by Coverity. Check return values in some places which were not previously checked, initialise some variables, and remove some dead code. Local regression testing of pdfwrite shows no differences.[base/gdevpdtd.c base/gdevpdtt.c base/gdevpdte.c base/gdevpdtf.c base/gdevpdfe.c base/gdevpdtw.c base/gdevpdti.c]
2008-09-04T15:46:56.923276Z Igor Melichev
Fix : Divide gdevp14.c into 2 modules. DETAILS : This change is syntactically equivalent. The purpose is to minimize dependencies between projects. The new module gxblend1.c keeps color blending algorithms moved from gdevp14.[base/gdevp14.c base/lib.mak base/gdevp14.h base/gxblend.c base/gxblend1.c base/gdevdevn.h base/gxblend.h]
2008-09-04T14:06:17.707413Z Igor Melichev
Fix (graphics) : Preovide a right check for incorrect call to pdf14_pop_transparency_group. DETAILS : This patch doesn't change behavior with regular runs. In hypothetic cases, when .entransparencygroup is called with no L due to unreferencin null pointer.[base/gdevp14.c]
2008-09-04T10:05:54.831940Z Ken Sharp
More minor issues reported by Coverity. An unchecked return code from cos_dict_find_c_key, and some dead code.[base/gdevpdfm.c]
2008-09-04T10:04:10.193139Z Ken Sharp
A couple of issues detected by Coverity. Firstly an error condition could lead to a file being left open. Secondly a call to pdf_restore_viewer_state which didn't check the return value.[base/gdevpdfu.c]
2008-09-04T10:02:04.794387Z Ken Sharp
More very minor dead code removal, again as noted by Coverity.[base/gdevpdtb.c]
2008-09-04T10:01:12.562540Z Ken Sharp
Remove some dead code from cmap handling, as noted by Coverity.[base/gdevpdtc.c]
2008-09-04T09:59:11.733313Z Ken Sharp
Check the return code from pdf_write_resource_objects when closing a page. Fixes Coverity warning.[base/gdevpdf.c]
2008-09-03T20:49:13.486158Z Ray Johnston
Add protection for the "finish" exit point for potential (no longer exists since rev 9062) case when f==NULL when code >= 0. Belt and suspenders couldn't hurt to improve maintainability (prevent future problems). Original problem reported by Coverity analysis.[base/gxclmem.c]
2008-09-03T12:20:27.869178Z Igor Melichev
Fix : gcc compiler warnings (continued). DETAILS : Repair a file broken due to Far 1.70 editor glitch on Vista.[psi/zfunc4.c]
2008-09-03T11:42:35.783010Z Igor Melichev
Fix : gcc compiler warnings. DETAILS : This patch fixes only those ones which either were approved or belong to my ownership.[base/gxclread.c base/gxpcopy.c base/gxclpage.c psi/zfunc4.c base/gxclutil.c base/gxclmem.c base/lib.mak base/gxiscale.c base/gxclmem.h base/gdevpdtd.c psi/int.mak psi/zfsample.c base/gdevpdte.c base/gximage1.c base/gsovrc.c base/gdevprn.c base/gxstroke.c psi/zfunc.c base/gspath1.c base/gxshade6.c psi/zfrsd.c base/gxclpath.c psi/zfunc.h psi/igcstr.c base/mkromfs.c base/gstype42.c base/gdevdsha.c base/gxfill.c base/gxclrast.c]
2008-09-02T18:37:07.959806Z Till Kamppeter
Fixed small bug in the patch to add a PJL command for setting the resolution to the pxlmono/pxlcolor drivers (rev 9060).[base/gdevpxut.c]
2008-09-02T09:06:41.787945Z Till Kamppeter
Let pxlmono/pxlcolor drivers add resolution setting to the PJL header. Printers need the PJL command to set the resolution (see bug 689230). Now the printing resolution can be easily controlled with the "-r" command line option.[base/gdevpxut.c]
2008-09-01T17:03:20.988497Z Alex Cherepanov
Fix incorrect error code test in the calculator function validation procedure.[psi/zfunc4.c]
2008-09-01T16:53:43.689721Z Ken Sharp
Resolve another gcc compiler warning. The test was incorrect, now it is correctly taking the text render mode into account. Local regression testing shows no differences.[base/gdevpdts.c]
2008-09-01T08:49:44.722693Z Ken Sharp
Fix a warning from older versions of gcc. Spotted by Russell Lang when doing OS/2 build. Oddly, newer versions of gcc don't spot this, even though the code was technically redundant. Also remove some commented out code that should not have been present, and fix a couple of warnings produced by recent versions of gcc regarding unused local variables and code. Local regression testing exhibits no differences.[base/gdevpdtt.c]
2008-08-31T00:28:20.047781Z Russell Lang
Add a makefile target for a Windows source zip file, used in building a release.[psi/winint.mak]
2008-08-30T23:23:04.017387Z Alex Cherepanov
Make PDF interpreter run our /Install procedure after the user's procedure because: (1) PDF interpreter caches the CTM, (2) the user's procedure may replace CTM by calling setmatrix. Bug 689914, customer 770.[Resource/Init/pdf_main.ps]
2008-08-30T14:07:29.736170Z Igor Melichev
Fix (PS interpreter) : Wrong dependencies in makefile.[psi/int.mak]
2008-08-30T13:38:27.563236Z Russell Lang
Fix gcc warning on OS/2.[base/gdevdsp.c]
2008-08-30T13:31:29.235544Z Russell Lang
Fix the OS/2 build after the source reorganization. Remove the os2pm device and the old DLL interface for OS/2, to avoid direct links from the graphics library into the PS interpreter.[base/gp_os2.c base/os2.mak psi/dpmain.c psi/gsos2.def base/gsos2.icx doc/Develop.htm psi/gsos2.rc base/pcwin.mak base/dpmain.c base/gsos2.def psi/os2.mak base/mkromfs.c base/gsos2.rc psi/gsdllos2.h psi/gsos2.icx base/gp_os2fs.c base/gdevpm.c psi/gsdll2.def base/devs.mak]
2008-08-29T19:47:13.384972Z Ralph Giles
Update the Visual Studio project file generator for the new source locations. Untested.[toolbin/msvcxml.bat]
2008-08-29T18:46:21.860372Z Ralph Giles
Split the source tree into two new directories. PSSRC files are now in 'gs/psi'. GLSRC files are now in 'gs/base'. This is to facilitate build modularization and merging in the ghostpdl tree. NOTE: msvc32.mak is now in psi, not src.[/trunk/ghostpdl/language_switch/pspcl6_msvc.mak /trunk/ghostpdl/main/pcl6_gcc.mak src /trunk/ghostpdl/tools/check_deps.py doc/Develop.htm psi /trunk/ghostpdl/svg/svg_gcc.mak /trunk/ghostpdl/xps/xps_msvc.mak /trunk/ghostpdl/main/pcl6_msvc.mak /trunk/ghostpdl/doc/ghostpdl.tex /trunk/ghostpdl/psi/psitop.c doc/API.htm doc/Issues.htm /trunk/ghostpdl/svg/svg_msvc.mak /trunk/ghostpdl/language_switch/pspcl6_gcc.mak doc/Make.htm doc/Drivers.htm base autogen.sh doc/Release.htm doc/C-style.htm /trunk/ghostpdl/doc/ghostpdl.txt /trunk/ghostpdl/xps/xps_gcc.mak]
2008-08-28T19:47:00.816950Z Ralph Giles
Replace 3d with 3rd in the documentation and regularize '3(r)d party' as 'third-party'. Bug 690004.[doc/Use.htm doc/Lib.htm]
2008-08-28T02:40:07.463083Z Ralph Giles
Use the new gs_rethrow_code() macro in svgwrite.[src/gdevsvg.c]
2008-08-28T02:40:06.379728Z Ralph Giles
Add gs_throw_code() and gs_rethrow_code() macros for use in situations where the normal error string does not fit or is redundant.[src/gserror.h]
2008-08-28T02:40:04.423296Z Ralph Giles
Fix some code style issues in the svgwrite device. We can't use gs_note_error() as we were because it returns the error code which generates an empty statement warning with gcc. Use gs_throw() instead for now.[src/gdevsvg.c]
2008-08-28T00:36:33.257400Z Ralph Giles
Update warnings policy; we agreed to fix all warnings.[doc/C-style.htm]
2008-08-28T00:03:40.520992Z Ralph Giles
Document the motivation for a source style item. Details: There has been some controvesy over the rule that single-statement bodies of control structs must be on their own line. Specifically: if (code < 0) return code; instad of: if (code < 0) return code; despite the latter being less obtrusive for common error checks. Several developers have requested this because it allows setting a breakpoint directly on the return statement instead of a conditional return on the conditional line, or a breakpoint at the return inside the single source line. This is therefore a practical issue, not just one of readability and style.[doc/C-style.htm]
2008-08-27T17:27:24.986727Z Ralph Giles
Fix more html conformance problems with the documentation.[doc/Ps2ps2.htm doc/Fonts.htm doc/Use.htm doc/Ps2pdf.htm doc/Develop.htm doc/Deprecated.htm doc/Install.htm doc/API.htm doc/Issues.htm doc/Make.htm doc/Drivers.htm doc/Release.htm doc/C-style.htm doc/Xfonts.htm doc/Devices.htm doc/Language.htm]
2008-08-27T02:57:23.718740Z Ralph Giles
Remove Humor.htm. The joke has gotten old, and blogs are a better medium for this sort of thing.[doc/Humor.htm doc/Readme.htm]
2008-08-27T02:16:43.113337Z Ralph Giles
Remove the obsolete HTML style guidelines. We no longer expect readers to look at the raw html in a text editor. Documentation should declare its format specification and conform to it, attempting to match local style where appropriate.[doc/Htmstyle.htm doc/Readme.htm]
2008-08-27T02:14:10.447789Z Ralph Giles
Replace the awkward <b><tt> construction with css-styled <code> elements.[doc/History7.htm doc/Fonts.htm doc/Projects.htm doc/Ps2ps2.htm doc/Use.htm doc/Readme.htm doc/Develop.htm doc/Ps2pdf.htm doc/Deprecated.htm doc/Source.htm doc/Helpers.htm doc/Psfiles.htm doc/Lib.htm doc/Install.htm doc/Htmstyle.htm doc/API.htm doc/gs.css doc/DLL.htm doc/Make.htm doc/Drivers.htm doc/Unix-lpr.htm doc/Commprod.htm doc/C-style.htm doc/Ps-style.htm doc/Release.htm doc/Xfonts.htm doc/Devices.htm doc/Language.htm doc/Ps2epsi.htm]
2008-08-26T21:50:26.926408Z Ralph Giles
Cast away signed/unsigned char warnings in gdevsvg. Patch from Igor Melichev. Also cleaned up some trailing whitespace.[src/gdevsvg.c]
2008-08-26T21:40:55.546109Z Ralph Giles
Remove references to bits64 from the source style documentation. It is superceeded by the stdint types.[doc/C-style.htm]
2008-08-26T15:59:38.718117Z Igor Melichev
Fix (PDF interpreter) : Implementing a temporary option for development needs of images with soft mask. DETAILS : It doesn't chamge the behavior for regular runs. The new temporary option is for development purpose only. It will be removed after the complete implementation of images with soft mask is done.[Resource/Init/pdf_draw.ps]
2008-08-26T15:31:03.416051Z Igor Melichev
Fix (PDF interpreter) : A wrong comment about procedure operands for is_big_mask . DETAILS : It changes a comment only.[Resource/Init/pdf_draw.ps]
2008-08-26T07:02:55.610521Z Igor Melichev
Fix (graphics) : Scanline algorithm missed pixels at horizontal boundaries. DETAILS : Bug 689402 "Regression: differences in dina3_watermark.pdf". The defect looks as an unimplemented branch. which persists since Ghostscript 8.00 released on Decebmer 2002 or longer. We could get a similar problem when runnung Bug687832.pdf with Ghostscript 7.04 (it can't handle dina3_watermark.pdf), and our reading of its code shows that the problem presents in it. So the problem is really antique. The bottom of the problem is that fill adjustment was not applied to some horizontal segments. Due to that some pixel centers are not covered when they must be.[src/gxfillsl.h]
2008-08-23T16:39:21.950258Z Alex Cherepanov
Fix 6 Coverity warings about local variables hiding function arguments by renaming local variables.[src/gsbitops.c]
2008-08-23T01:05:47.610764Z Russell Lang
Remove reference from Windows image window code back to PostScript interpreter, to allow the image window code to be used with non-interpreter builds.[src/dwimg.h src/winint.mak src/dwmain.c src/dwmain.rc doc/Develop.htm src/dwmainc.c src/dwmain.h src/dwimg.c src/dwres.h]
2008-08-22T16:34:36.763761Z Ralph Giles
Move the dw source files from GLSRC to PSSRC. Items in GLSRC shouldn't depend on items in PSSRC. This is in preparation for the code reorganization. Details: A number of these files, dwtext, dwtrace, and with some modifications dwimg don't actually have PSSRC dependencies, but it's easier to keep all the files built by winint.mak there for now. They can be moved back into the base library later when they're useful for other builds.[src/winint.mak]
2008-08-22T01:13:28.560292Z Ralph Giles
Remove an unnecesary iapi.h include.[src/winint.mak src/dwimg.c]
2008-08-22T01:11:24.167807Z Ralph Giles
Remove trailing whitespace.[src/dwimg.h src/dwimg.c]
2008-08-21T23:26:24.907412Z Ralph Giles
Add a missing return value check. Coverity issue 1847.[src/zcolor.c]
2008-08-21T22:55:00.562927Z Ralph Giles
Correct a double free introduced in r9005.[src/gp_unix_cache.c]
2008-08-21T21:51:24.194924Z Ralph Giles
Remove trailing whitespace.[src/ztrans.c]
2008-08-21T08:35:09.363063Z Ken Sharp
Submission for revision 9008 initialised the wrong 'pfn' variable. Details: Accidentally changed the use in 'zbuildfunction' instead of 'buildfunction'. Correcting.[src/zfunc.c]
2008-08-21T08:33:31.319105Z Ken Sharp
Fix some more Coverity warnings Details: Two places where a return value (from names_ref) was not being checked, one inadvertent piece of dead code (duplicating a previous error check) and one genuine case of a variable which could potentially be used uninitialsed.[src/zcolor.c]
2008-08-21T08:28:49.451522Z Ken Sharp
Silence an 'uninitialised variable' warning from Coverity. Details: Function initialisation is a bit round about. We pass a function pointer to make_sampled_function, which assigns it to a local variable. That variable is passed to gs_function_Sd_init, which immediately zeros it.... Since the pointer is never actually used, setting it to NULL should silence the warning.[src/zfunc.c]
2008-08-20T23:58:43.536642Z Ralph Giles
Replace an abs() call with our any_abs() macro. Also remove an unnecessary math_.h include. Details: A call to abs() was added in r8942. Technically the prototype for this is in stdlib.h, but it's a built-in in most compilers so this didn't raise a warning. We do include stdlib.h elsewhere, usually for qsort() or malloc(), but abs() is only called from comment pseudo code; in practice the any_abs() macro or fabs() from math.h are used instead. Because this isn't in an inner loop, speed isn't important, so we prefer the macro to a system header include for consistency. Sine the beginning of repository history, gdevbit.c has included math.h, but I don't see any math library calls now, so it as been removed.[src/gdevbit.c src/devs.mak]
2008-08-20T23:22:49.144680Z Ralph Giles
Check for and propagate failures to find matching component indexes in jpx streams.[src/sjpx.c]
2008-08-20T22:09:49.649774Z Ralph Giles
Further cleanups to the unix persistent cache error handling.[src/gp_unix_cache.c]
2008-08-20T21:32:28.795836Z Ralph Giles
Fix memory and file handle leaks in the unix persistent cache error handling. Also document that it is not re-entrant.[src/gp_unix_cache.c]
2008-08-20T19:46:20.907096Z Ralph Giles
Remove trailing whitespace.[src/gp_unix_cache.c]
2008-08-20T19:09:44.615235Z Ralph Giles
Add a cast in svgwrite to be explicit that we're only using the lower 24 bits of the color index.[src/gdevsvg.c]
2008-08-20T18:26:10.369143Z Ralph Giles
Fix __func__ on the default (non-C99) gcc build. Details: __func__ is a variable in C99. The earlier __FUNCTION__ is a magic preproccessor define in MSVC 7 and later, so the #if defined() clause enabled it. However, in GCC it is a magic string literal instead and so this clause did not enable it. Therefore we add an explicit check for the appropriate GCC version and define the same substitution for that compiler.[src/gserror.h]
2008-08-20T01:54:36.820847Z Ralph Giles
Add the svgwrite device to the default windows build. Bug 690028.[src/msvc32.mak]
2008-08-19T04:07:40.862102Z Ralph Giles
Remove the jasper dependency from jpxtopdf. It's straightforward to parse the image header ourselves.[toolbin/jpxtopdf.c]
2008-08-17T12:31:25.491176Z Alex Cherepanov
Fix a bug in error checking code introduced in the rev. 8996 in pamcmyk32 device. Bug 689583.[src/gdevpbm.c]
2008-08-17T06:19:35.130662Z Alex Cherepanov
Check return values from all stdio functions in all pnm drivers and propagate error codes upwards. Bug 689583.[src/gdevpbm.c]
2008-08-17T01:19:23.099945Z Alex Cherepanov
Add one more NMAKE version recognized as MSVC 7. Bug 689816, customer 351.[src/msvc32.mak]
2008-08-16T04:18:20.474141Z Alex Cherepanov
Work around a bug in a PDF file produced by "Nitro PDF Driver". Assume invalid operator '-' to be a number 0. Bug 690012,[Resource/Init/pdf_main.ps]
2008-08-16T02:00:51.387588Z Alex Cherepanov
Fix parsing of large embedded TrueType fonts by ps2write header: (1) read the file into multiple strings for sfnts array. (2) use multiple reads to skip over large parts of the file. Also modify Type42 font reader to allow TrueType objects to span sfnts string boundaries. Bug 690012.[src/gxttfb.c Resource/Init/opdfread.ps]
2008-08-14T17:54:06.399403Z Alex Cherepanov
Use GNU iconv.h header in compatibility mode unless we link with GNU libiconv. This is needed for compiling gs with gcc under HP-UX 11.11. DETAILS: gdevopvp.c uses some basic functionality from iconv library but none of GNU extensions. So the native implementation is searched first. GNU header uses different names in the library and defines some macros to map iconv* names to GNU libiconv* names. gcc looks for GNU version of iconv.h first, which requires a compatibility flag to link with the native libraries. So the compatibility flag is set when iconv* functions are not found but libiconv* functions are found.[src/configure.ac contrib/opvp/gdevopvp.c]
2008-08-13T01:56:36.856132Z Ray Johnston
Update the fonts to those that the nightly and cluster regressions have been using all along. The -Ifonts in the regression script was causing the contents of Resource/Font to be ignored. These fonts are the std-8.11 version. Note we probably next need to move to the newer version of these fonts with the metrics fixed, but this is a first step. DETAILS: These are files that were part of the distribution 8.11 files that really can't live in the Resource/Font directory since some applications or test files will enumerate (with 'resourceforall') the directory and will get errors if files are there that are not fonts. ___________________________________________________________________________ README: This is release 1.0.7pre22 of Valek Filippov's improved versions of the URW type 1 font collection, repackaged for distribution with Ghostscript. Cyrillized free URW fonts. These fonts were made from the free URW fonts distributed with ghostcript. There are NO changes in the latin part of them (I hope). Cyrillic glyphs were added by copying suitable latin ones and painting oulines of unique cyrillic glyphs in same style as the others. For all modification pfaedit was used. The license for result is (of course) same as for original fonts, i.e. GPL with an exception that you can put these fonts in your own non-GPLed documents. (Looks like LGPL from my point of view =). The "sources" of these fonts in the native pfaedit format are available at ftp://ftp.gnome.ru/fonts/sources The great font editor pfaedit is available at http://pfaedit.sf.net. That page also includes some links to fonts created by George Williams -- the author of pfaedit. Acknowledgements: I would like to thank George Williams, the pfaedit's author and developer. He is the most bug-reporter/feature-requester friendly developer I ever saw in my not so short life. At some moment in the future I must write a book about him: "George Williams and my best experience in bug-reporting." George also greatly helped me bug-hunting these fonts, explained to me some very important things about fonts and font design, quickly adopted pfaedit to my needs (or pointed me to The Right Place in documentation where I found better way of doing things). I would like to thank Alexey Novodvorsky (aka AEN), who pointed me to pfaedit and George Williams' fonts, explained The Task to me. He is also one of the main participators in the development of Sysiphus -- free repository of free software. I didn't loose my time for compiling/installing and supporting my linux box coz I used the result of Sysiphus developers' works. I would like to thank Sergey Vlasov, who tested these fonts and reported about bugs. Also he help me to make some bug-reports to George about pfaedit bugs. I would like Dmitry 40in, who did big QA for some font outlines, drawn some glyphs, and explain some The Truths for me. I would like to thank Vlad Harchev (aka hvv), who proofread this text for me. Also I have to thank RMS for GPL and URW for releasing the fonts under it. Thank you very much! Valek Filippov frob@df.ru (C)opyLeft 2001 ______________________________________________________________________________________ TODO: - fix all missed glyphs. - change suitable glyphs with references. - improve bearings of glyphs (thanks Dmitry 40in who pointed me to this) - improve outlines of some cyrillic glyphs ______________________________________________________________________________________ Changelog: 2002-11-22 Valek Filippov <frob@df.ru> Fixed bug that broke printing from QT. 2002-11-16 Valek Filippov <frob@df.ru> Fixed some cyrillic (russian) glyphs in NimbusMono. NimbusMono Ascend/Descend were changed to match the visible size of the other font if same point-size is used. 2002-10-12 Valek Filippov <frob@df.ru> Regenerated coz I screwed up UIDs. Partly applied Owen Tailor tweaks. (Really GWW changed pfaedit autohinter after OT sugggestion, so other OT tweaks are aoutomade by pfaedit) 2002-08-17 Valek Filippov <frob@df.ru> Regenerated from 9-aug pfaedit version. Mostly for testing of new cubic->quad bezier conversion. 2002-07-22 Valek Filippov <frob@df.ru> Regenerated from 22-07 pfaedit version. I still haven't enough time for correct serbian glyphs from Danilo integration =( 2002-05-19 Valek Filippov <frob@df.ru> Regenerated from 18-05 pfaedit version. Restored original UIDs. Made otf versions again =) 2002-03-06 Valek Filippov <frob@df.ru> Added pfms. Forced using of original kerning. d* and s* files were missed (fixed now). 2002-03-04 Valek Filippov <frob@df.ru> Improved Bookman and Gothic. All fonts were regenerated (fix 'Delta', improved hinting). pfms are temporary excluded. 2002-02-03 Valek Filippov <frob@df.ru> Improved Bookman Light/DemiBold. At 2002-01-07 I put non latest version of Chancery -- fixed. 2002-01-18 Valek Filippov <frob@df.ru> All fonts regenerated again, coz AEN found bug in names translation. NimbusRomNo9-Regu greatly improved. NimbusRomNo9-Bold, NimbusSans{Cond}-{Regu,Bold} partially improved. 2002-01-07 Valek Filippov <frob@df.ru> Bookman improved. Chancery added. 2002-01-04 Valek Filippov <frob@df.ru> All fonts were regenerated. TTF-instructions were improved, some non-russian cyrillic fixed, "fi" and "fl" ligatures ligaturized where were not. Implemented some changes that Dmitry suggested, NimbusMono-Regular is partially made by him. Added COPYING. Generated pfm-files. Added fonts.dir and fonts.scale from gnu-gs-fonts. 2001-12-14 Valek Filippov <frob@df.ru> Full tarball was made. NimbusRomNo9 regenerated. Added 'numero sign', 'infinity' and 'Omega' (in Regu -- by Dmitry 40in). OTF versions removed until the best time. Dmitry supposed that URW'd presented 'beta'-version of fonts to community, coz bearings for original URW are not perfect. 1st attempt to fix it. 2001-12-12 Valek Filippov <frob@df.ru> Schoolbook extended to 'val3' and regenerated. Palladio extended to 'val3' and regenerated. Bookman extended to 'val3' and regenerated. Gothic extended to 'val3' and regenerated. Some glyphs still missed. NimbusMono regenerated with modern pfaedit (bug with xterm fixed). Some 0x4** glyphs fixed. Added "number sign" and "infinity". Thanks to Dmitry 40in and Anton Zinoviev who criticized me about it. 2001-12-08 Valek Filippov <frob@df.ru> Added updated version of NimbusSansCond. Changes same like for NimbusSans (except: otf version not added). 2001-12-07 Valek Filippov <frob@df.ru> Added updated version of NimbusMono. (Lat Ext-A, full 0x400 except 'glagolic', some chars are still missed; ttf hinting regenerated; otf version added; 'Cyr De, de, L, l, Ch, ch' fixed). 2001-12-06 Valek Filippov <frob@df.ru> Added updated version of NimbusSans. (Lat Ext-A, full 0x400 except 'glagolic', some chars are still missed; ttf hinting regenerated; otf version added; 'Cyr De, de, L, l, Ch, ch' fixed). 2001-12-05 Valek Filippov <frob@df.ru> Kern pairs from original URW had missed at the 11-nov version. Added OpenType version of fonts. 2001-11-11 Valek Filippov <frob@df.ru> NimbusRomanNo9 Regular: added all uni0400 (except ancient cyrillic /glagolic?/). 04bc-04bf, 04a8-9, 04d8, 04da still missed. added all glyphs from Lat Ext-A (uni0100-017F) that was missed in original URW (45 glyphs). Most of accented chars and part of cyrillics changed with references. TTF hinting regenerated with modern PfaEdit. Bold: same but also missed 0494, 04a6, 04c3 Italic, BoldItalic: same but missed many non-russian cyrillics. ______________________________________________________________________________________ README.tweaks Nimbus Sans L Regular, Nimbus Mono L Regular, Nimbus Mono L Oblique all come from a more recent version of the cyrillic URW fonts. The hints on Nimbus Sans Regular have been modified in the following ways: 25 June 2002 - Added ghost hint to the top of 4 to keep it from being taller than the other digits. - Reduced the width of the left stem hint for H to 83 (probably no real differences) - Changed the StemSnapV values from [78 85 94] to [78 83 92] (and fixed up StdVW accordingly) This corresponds to the values in the font (which are 83/93 for lower case and upper case stems) better and makes the width-88 stems on M and N snap to to upper case widths not lower-case widths. 29 June 2002 - Removed odd vertical stem hints (width of horizontal stems) from f, F, t, E, yen sign, fi ligature, fl ligature, AE ligature, R, Lstroke, OE ligature, lstroke, E" variants, t, variants, Eth, Dstoke, etc. - Fixed hints on 1 to be two ghost hints instead of one hint the height of the font - fix bottom stem of u to have integer coordinates - fixed hints on | - fixed hints on inverted exclamation mark The hints on Nimbus Mono L Oblique have been modified in the following ways: - Removed vertical stem hints from horizontal serifs on roman characters. Owen Taylor[Resource/Font/URWPalladioL-BoldItal Resource/Font/NimbusSanL-Bold Resource/Font/NimbusRomNo9L-Medi Resource/Font/Dingbats Resource/Font/URWChanceryL-MediItal Resource/Font/CenturySchL-Roma Resource/Font/NimbusMonL-Bold Resource/Font/NimbusRomNo9L-MediItal Resource/Font/NimbusSanL-BoldItal Resource/Font/URWGothicL-Demi 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/NimbusSanL-BoldCondItal Resource/Font/NimbusMonL-BoldObli Resource/Font/URWGothicL-DemiObli Resource/Font/NimbusSanL-Regu Resource/Font/URWPalladioL-Bold Resource/Font/NimbusMonL-Regu Resource/Font/NimbusSanL-ReguItal Resource/Font/URWGothicL-BookObli Resource/Font/URWPalladioL-Ital]
2008-08-12T23:44:53.919723Z Ray Johnston
Remove 'Actual Fonts' references in the Fontmap that connected the URW FontName to an 8.3 filename that we no longer use.[Resource/Init/Fontmap.GS]
2008-08-12T21:04:38.048281Z Ray Johnston
Move opdfread.ps to Resource/Init since this is needed by the 'ps2write' device.[lib/opdfread.ps Resource/Init/opdfread.ps]
2008-08-12T14:42:02.961911Z Ken Sharp
Fix: Genoa file renders incorrectly with current color code Details: A typo in the DeviceGray code used an array of doubles instead of floats, causing incorrect values to be returned by currenthsbcolor.[src/zcolor.c]
2008-08-12T13:41:08.386171Z Ken Sharp
Yet another minor change in the color work. The test file 'foo0-ge-64k.pdf' demonstrated an error with NChannel processing. The old PostScript based code simply ignored errors when setting the NChannel Colorant spaces, we now do the same.[src/zcolor.c]
2008-08-12T09:17:56.269901Z Ken Sharp
Another small change to the color code. The issue Michael has been looking at (#689950) uses a DeviceN space with an NChannel Colorants dictionary. A mistake in the NChannel parameter checking meant that the Colorants were never evaluated.[src/zcolor.c]
2008-08-12T07:37:45.162884Z Igor Melichev
Fix (PS interpreter) : Wrong glyph positions with CIDFontType 2 WMode 1. DETAILS : Bug 688058 "Vertical Japanese characters shift upper right direction". Bug 689559 "centerline of vertical CJK text is wrong when external TrueType CJK font is used.". The old code wrongly computes glyph positions when a CIDFontType 2 WMode 1 font has no metrics and includes vmtx. The patch properly computes the V vector using top side bearing and font bounding box. See comments in code. This patch fixes the glyph positions and closes the original bugs, but we still observe other 2 problems with the 688058 test case : 1. 2 characters are substitutes with hollow boxes. 2. pdfwrite generates a PDF with a wrong glyph positions. Opened bugs 690006, 690007 for them.[src/zchar42.c]
2008-08-12T07:35:33.506225Z Igor Melichev
Fix (TT interpreter) : AVector bug workaround was wrong. DETAILS : Bug 689820 "rendering of embbeded font with very low quality". The problem may happens only when a glyph is bigger than [-UnitsPerEm*2, UnitsPerEm*2]. The old code includes a workaround for an antique AVBector bug. However for detecting it the old code supplied a glyph bbox with a wrong coordinate representation (scale). The test case supplies a glyph, in which some points have x-coordinate greater than UnitsPerEm*2, so the workaround converted all curves into lines. The patch provides the right bbox data.[src/ttfmain.c]
2008-08-12T07:31:19.650883Z Igor Melichev
Fix (graphics) : A clist-based pattern supplied a wrong clipping box. DETAILS : Bug 689851 "Portions of output missing". The test document paints an imagemask with a pattern 1 color, which contains a Type 1 image, which represents the graphics that one can view there. The pattern appears so big as Ghostscript converts it into a clist. When rendering the inner image to the clist, It calls get_clipping_box to know whether the image portion falls inside the painting area. But the old code appears to use a wrong implementation of the get_clipping_box method, which was inherited from the page clist writer and retrieves the page size. Here we need the pattern cell size instead the page size. The patch sets up the right implementation for get_clipping_box.[src/gxpcmap.c src/gximask.c]
2008-08-12T01:49:02.711432Z Alex Cherepanov
Fix single '~' expansion in generic POSIX persistent-cache implementation.[src/gp_unix_cache.c]
2008-08-12T01:31:32.498041Z Alex Cherepanov
Fix a potential crash after failed memory allocation in RAM-based command list.[src/gxclmem.c]
2008-08-12T00:53:52.298682Z Alex Cherepanov
Fix a typo in get_data() macro used by PDF 1.4 composition devices because the typo caused dependency on the side effect order.[src/gdevp14.c]
2008-08-11T23:01:09.304118Z Alex Cherepanov
Add a missing break statement after 16-bit Burn blending mode case.[src/gxblend.c]
2008-08-11T19:11:45.049525Z Ralph Giles
Clean up the configure help entries for optional features.[src/configure.ac]
2008-08-11T18:58:27.188200Z Ralph Giles
Don't run configure if autoconf failed to regenerate it.[autogen.sh]
2008-08-11T18:31:30.295468Z Ralph Giles
Add a --disable-cairo option to block linking to libcairo for packagers. Bug 689999.[src/configure.ac]
2008-08-11T15:10:06.472831Z Ken Sharp
Further to the PostScript color work, clear up a couple of warnings which exhibit using gcc on Linux, but not MSVC.[src/zfunc.c src/zfunc4.c]
2008-08-11T14:16:18.397362Z Ken Sharp
Move the interpretation of PostScript (and PDF) color spaces from PostScript into C. DETAILS: This has required a large number of changes, there are a few new .c or .h files, a number of PostScript files have been removed, and a few others simplified. A few documentation '.htm' files have also been modified to reflect these changes.[src/int.mak src/zpcolor.c src/zicc.c Resource/Init/gs_devn.ps src/zcssepr.c Resource/Init/gs_cspace.ps src/zcie.c src/zicc.h src/zcie.h src/zcspixel.c Resource/Init/gs_lev2.ps Resource/Init/gs_ciecs3.ps Resource/Init/gs_sepr.ps src/zcolor.c src/ifunc.h src/zfunc4.c src/zcsdevn.c src/zcolor.h Resource/Init/gs_patrn.ps src/zfsample.c doc/Develop.htm src/zfunc.c Resource/Init/gs_ll3.ps src/zcsindex.c doc/Psfiles.htm Resource/Init/gs_icc.ps Resource/Init/gs_devpxl.ps src/gscolor2.h Resource/Init/gs_init.ps Resource/Init/gs_devcs.ps Resource/Init/gs_indxd.ps Resource/Init/gs_ciecs2.ps]
2008-08-11T12:19:24.825877Z Ken Sharp
Change the description for the -dNOCIE switch, since it wasn't apparently clear enough which device spaces were substituted for which CIEBased spaces.[doc/Use.htm]
2008-08-08T05:39:21.132225Z Ralph Giles
Re-add pdf_draw.ps which was dropped in r8954, since the CET regression requires it.[Resource/Init/pdf_draw.ps]
2008-08-08T04:22:38.494595Z Ray Johnston
Massive commit discussed before the freeze to move the PostScript initialization files to Resource/Init. This obviates the need for geninit when COMPILE_INITS=1. A followup change will enhance mkromfs to allow it to 'strip' comments and white space from PostScript input files somewhat reducing the compressed storage needed for the files in Resource/Init. All files mentioned in int.mak with 'ADDMOD ... -ps ...' are included as well as those that would have been included via gs_init.ps %% Replace lines. Builds tested on Windows and Cygwin for the various executables (gs, pcl6, pspcl6 and gxps). The default LIBPATH and GenericResourceDir are adjusted accordingly.[Resource/Init/gs_typ32.ps /trunk/ghostpdl/main/pcl6_gcc.mak Resource/Init src/cfonts.mak lib/gs_dbt_e.ps Resource/Init/gs_dscp.ps lib/gs_statd.ps lib/gs_fapi.ps Resource/Init/gs_devn.ps Resource/Init/gs_agl.ps lib/cidfmap src/iccinit0.c lib/gs_epsf.ps lib/gs_dpnxt.ps lib/pdf_draw.ps lib/gs_icc.ps lib/gs_diskf.ps src/all-arch.mak Resource/Init/gs_fapi.ps lib/gs_init.ps lib/pdf_font.ps lib/gs_ciddc.ps lib/gs_diskn.ps src/ccfont.h lib/pdf_base.ps Resource/Init/gs_dps.ps lib/gs_sym_e.ps lib/gs_btokn.ps Resource/Init/xlatmap Resource/Init/gs_epsf.ps lib/gs_resmp.ps Resource/Init/gs_init.ps src/gs.mak src/wmin.mak lib/gs_wan_e.ps src/Makefile.in Resource/Init/gs_indxd.ps Resource/Init/gs_cidtt.ps src/macos-mcp.mak Resource/Init/gs_img.ps lib/gs_type1.ps lib/pdf_cslayer.ps Resource/Init/gs_setpd.ps lib/gs_dps1.ps Resource/Init/gs_mgl_e.ps src/psromfs.mak lib/gs_lev2.ps lib/gs_pdf_e.ps Resource/Init/gs_fonts.ps src/icfontab.c Resource/Init/gs_mex_e.ps Resource/Init/gs_ttf.ps lib/gs_pdfwr.ps Resource/Init/gs_std_e.ps lib/gs_cidfn.ps /trunk/ghostpdl/common/msvc_top.mak src/geninit.c src/bcwin32.mak src/imain.c Resource/Init/pdf_cslayer.ps lib/gs_ll3.ps lib/Fontmap Resource/Init/gs_dps1.ps src/iccinit1.c Resource/Init/gs_lev2.ps lib/gs_css_e.ps lib/gs_ccfnt.ps Resource/Init/gs_l2img.ps lib/gs_frsd.ps Resource/Init/gs_cet.ps lib/gs_devpxl.ps lib/gs_trap.ps Resource/Init/FCOfontmap-PCLPS2 src/macosx.mak Resource/Init/gs_patrn.ps Resource/Init/pdf_main.ps lib/gs_ciecs2.ps Resource/Init/gs_res.ps Resource/Init/gs_il1_e.ps lib/gs_cidcm.ps lib/gs_cmap.ps src/openvms.mmk lib/gs_typ32.ps Resource/Init/gs_frsd.ps Resource/Init/gs_mro_e.ps Resource/Init/gs_devpxl.ps Resource/Init/gs_devcs.ps Resource/Init/gs_trap.ps Resource/Init/gs_ciecs2.ps Resource/Init/gs_fntem.ps lib/gs_cspace.ps lib/gs_agl.ps Resource/Init/gs_cmap.ps Resource/Init/gs_typ42.ps Resource/Init/gs_cidfm.ps Resource/Init/pdf_rbld.ps src/int.mak lib/pdf_sec.ps src/msvclib.mak src/imainarg.c /trunk/ghostpdl/main/pcl6_msvc.mak Resource/Init/gs_cff.ps Resource/Init/gs_cspace.ps lib/gs_dps.ps src/msvc32.mak src/unix-gcc.mak lib/xlatmap Resource/Init/pdf_sec.ps src/zfile.c lib/pdf_ops.ps Resource/Init/gs_dbt_e.ps Resource/Init/gs_statd.ps lib/gs_indxd.ps lib/gs_cidtt.ps lib/gs_dps2.ps src/unixansi.mak lib/gs_img.ps Resource/Init/cidfmap lib/gs_setpd.ps Resource/Init/gs_dpnxt.ps Resource/Init/gs_icc.ps lib/gs_mgl_e.ps Resource/Init/gs_diskf.ps Resource/Init/pdf_ops.ps src/winint.mak lib/gs_fonts.ps Resource/Init/gs_ciddc.ps Resource/Init/pdf_font.ps Resource/Init/gs_dps2.ps Resource/Init/gs_diskn.ps lib/gs_mex_e.ps lib/gs_ttf.ps lib/gs_std_e.ps Resource/Init/pdf_base.ps lib/gs_resst.ps Resource/Init/gs_sym_e.ps Resource/Init/gs_btokn.ps src/wctail.mak lib/Fontmap.GS src/watclib.mak /trunk/ghostpdl/language_switch/pspcl6_msvc.mak lib/gs_sepr.ps lib/gs_ciecs3.ps lib/gs_l2img.ps Resource/Init/gs_resmp.ps lib/gs_cet.ps Resource/Init/gs_wan_e.ps src/iccfont.c lib/FCOfontmap-PCLPS2 lib/gs_patrn.ps lib/pdf_main.ps Resource/Init/Fontmap.GS Resource/Init/gs_type1.ps lib/gs_res.ps lib/gs_il1_e.ps /trunk/ghostpdl/language_switch/pspcl6_gcc.mak Resource/Init/gs_ciecs3.ps Resource/Init/gs_sepr.ps lib/gs_mro_e.ps Resource/Init/gs_pdf_e.ps lib/gs_devcs.ps src/openvms.mak Resource/Init/gs_pdfwr.ps Resource/Init/gs_cidfn.ps src/watcw32.mak lib/gs_fntem.ps Resource/Init/Fontmap Resource/Init/gs_ll3.ps Resource/Init/gs_css_e.ps src/os2.mak lib/gs_cidfm.ps lib/gs_typ42.ps lib/pdf_rbld.ps src/ugcclib.mak lib/gs_dscp.ps lib/gs_devn.ps lib/gs_cff.ps Resource/Init/gs_cidcm.ps]
2008-08-08T04:03:54.625369Z Ray Johnston
Fix 'rangecheck in showpage' with NumRenderingThreads>0 if the lines requeested do not range from 0 forward or height-1 backwards. Bug from customer 531 and 850. Also fix problems with reversion to non-multithreaded rendering with file and memory based BAND_LIST_STORAGE. DETAILS: The 'clist_get_band_from_thread' logic had a known deficiency if the device did not request lines ranging from the top or bottom of the page. The fix assumes that the normal direction is from line 0 forward unless the first line requested is the last line of the page, setting the lookahead_direction. If a request is made for a band other than the next one in the expected direction, the lookahead_direction is reversed and threads are started for the requested band and the bands following in the new direction. This effectively recovers from an incorrect guess, but since there is no limit on the number of times that the recovery is performed, also allows for lines/bands to be requested in arbitrary order. The customer uses a custom device, but the 'bit' devices were recently enhanced with -dFirstLine= and -dLastLine= parameters to allow testing. The re-opening of the clist files was changed to use 'a+' to avoid erasing the file if multi-threaded rendering was shut down (clist_teardown_render_threads), and rendering was reverted to single threaded mode. The memory based clist (BAND_LIST_STORAGE=memory) was supplemented to better track re-opening and allow for 'a' mode and avoid memory leak of the original 'base' named memfile structure. The customers mentioned above also use the BAND_LIST_STORAGE=memory for performance reasons (realizing a 10% gain in throughput over file based clist).[src/gxclmem.c src/gxclthrd.c src/gxclmem.h]
2008-08-07T19:20:04.322235Z Igor Melichev
Fix (graphics) : Redundant patterns in clist (continued), DETAILS : Bug 689995 "segfault with 09-34.PS" 1. (the bug fix) A recent patch doesn't account patterns with no tile, which represent an empty pattern. This change inserts checks for empty tiles and process them with no optimization (redundantly), because they are small and are not cached. See comments in code. 2. pcls->band_complexity.uses_color accummulated a pattern address bits instead a real data. This bug was introduced when serializing colors to clist. nevertheless this bug has no visible effect because 'pure' is overlayed with a tile address, which can't be equal to 0 or 0xffffff. So formally this part of the change is algorithmically equivalent, but it is important for redability. Note that when serializing a pattern to clist, 'uses_color' is not properly computed and needs further development. see new bug 689997. Minor change : removed the second call to gs_dc_get_pattern_id for a faster code.[src/gsptype1.c src/gxclpath.c]
2008-08-07T05:20:08.759100Z Alex Cherepanov
A pointer to allocated memory was used before checking it for 0. This bug was discovered by Klocwork static code analyzer.[src/scfd.c]
2008-08-07T00:02:14.784953Z Ralph Giles
Add the PSSRC dir to the includes of contrib devices that depend on the ps interpreter so they can be build when that directory is different from src.[contrib/contrib.mak]
2008-08-07T00:02:13.283150Z Ralph Giles
Use graphics library instead of interpreter error codes in the gomni device.[contrib/gomni.c]
2008-08-06T19:57:07.199634Z Ralph Giles
Remove references to malloc/free memory management not used since r8192.[src/lib.mak src/gsncdummy.c]
2008-08-06T19:51:21.189161Z Ralph Giles
Remove trailing whitespace.[src/gsncdummy.c]
2008-08-06T19:49:05.961384Z Ralph Giles
Use graphics library instead of interpreter-level rangecheck errors.[src/gsncdummy.c]
2008-08-06T18:28:20.524086Z Ray Johnston
Add a capability to select the first and last line to be emitted to the output file. This was needed to support some customers (531 and 850) that do something similar in their devices. Adds -dFirstLine=# and -dLastLine=# to this device. Line numbers are from 0 to height-1, and may be in reverse order. Probably not much use other than testing, but it doesn't hurt if it is there.[src/gdevbit.c]
2008-08-06T07:22:26.679682Z Igor Melichev
Fix (graphics) : Redundant patterns in clist. DETAILS : Bug 689865 "clist stores redundant patterns". The change is pretty simple because the clist reader already implememnts a pattern cache. We just add pattern id to gx_clist_state and provide a short format (just the id) when writing and reading a pattern color to/from clist at second time. A new function gs_dc_get_pattern_id allows to access the pattern id through closures of color elements. Note it remembers up to 2 pattern ids for a band (one for the specific band, and another for "all bands"). A better way would be to remember all patterns cached for a band, but it would need to save all cached ids individually for each band while clist writing. We don't want to enlarge the clist writer storage now. Minor change : Some dependencies of gxclpath.c were missed in makefile.[src/gsptype1.c src/lib.mak src/gsptype1.h src/gxcldev.h src/gxclpath.c]
2008-08-06T06:24:44.864622Z Igor Melichev
Fix (graphics) : Memory leak from Indexed color space. DETAILS : Bug 689990 "pcl6.exe crash with gs revision 8928". This change partially unwinds the revision 8928 change and reopens the bug 89822 "Memory leaks during rendering clist." See comment in code.[src/gscolor2.c]
2008-08-05T20:44:34.621109Z Ralph Giles
Move pointer dereferences to after the NULL check.[src/ttobjs.c]
2008-08-03T17:54:46.281366Z Alex Cherepanov
Detect and reject PDF files with circular references in the page tree. Avoid an infinite loop. Bug 689954.[lib/pdf_main.ps]
2008-08-03T17:23:40.990280Z Ralph Giles
Update ignore list for the ijs directory.[ijs]
2008-08-03T17:17:10.771824Z Ralph Giles
Clean up the cairo minimum version check introduced in r8929.[src/configure.ac]
2008-08-03T16:30:42.166329Z Igor Melichev
Fix (graphics) : A slow stroking with big patterns. DETAILS : Bug 689966 "c329.bin hang with bitcmyk in clist code". 1. The stroking algorithm includes a branch for a 'faster' rasterizing with an idempotential color. That branch paints each stroke independently of others. However that branch doesn't apply an optimization for big patterns, which the general filling algorithm implements. It caused the too slow rendering, because a clist-based pattern is played back for each parallelogram. This change disables the 'faster' srtoking with big patterns, so that the faster filling algorithm works fine for stroking. 2. Revert the revision 8851 change, which was a temporary workaround for the problem, The default value for MAX_PATTERN_BITMAP_SIZE is now restored back to 1Mb.[src/lib.mak src/gxpcmap.c src/gxstroke.c]
2008-08-03T15:47:58.770546Z Alex Cherepanov
Cairo device requires at least v. 1.2.0 of the Cairo library to build.[src/configure.ac]
2008-08-03T12:26:41.949878Z Igor Melichev
Fix (graphics) : Memory leak from Indexed color space. DETAILS : Bug 689822 "Memory leaks during rendering clist." The finalize function doesn't release 'table, which is allocated when use_proc == 1. Minor change : improved a debug printing in gsmchunk.c : A meanful name is better than an unknown address.[src/gsmchunk.c src/gscolor2.c]
2008-08-03T12:25:39.705021Z Alex Cherepanov
Give a name to a continuation operator %ztoken_continue to avoid printing its address, which varies between builds and causes spurious regression reports.[src/ztoken.c]
2008-08-03T07:49:59.678670Z Russell Lang
Fix the OS/2 build, which was broken because it was trying to use the Windows synchronisation code. While OS/2 does support thread synchronsation, there is no ghostscript implementation for the OS/2 platform, and no interest in writing one.[src/os2.mak]
2008-08-02T15:10:41.076927Z Alex Cherepanov
Replace a conditional expression with an 'if' statement. The former requires a prototype for mkstemp64() that is not available on AIX.[src/gp_unifs.c]
2008-08-01T21:43:44.587346Z Ralph Giles
Document needing to remove autom4te.cache from the jasper directory.[doc/Release.htm]
2008-08-01T21:43:42.361706Z Ralph Giles
We can no longer run the full build with -dBufferSpace=100000. The minimum to complete the smoke test seems to be around 120000, but use 200000 as future insurance.[doc/Release.htm]
2008-08-01T20:57:40.076512Z Alex Cherepanov
Reduce heap size limit (/Zm) on MSVC6 to fix internal compiler error when COMPILE_INITS=1.[src/msvccmd.mak]
2008-08-01T20:55:00.712414Z Ralph Giles
Add a mapping of commit ids to author names. This is used by split_changelog.py to do the replacement when building the History files. The changes to that script to make use of this file were inadvertently included in r8917.[doc/AUTHORS]
2008-08-01T20:22:16.068978Z Ralph Giles
Bump the version and product name post-release.[doc/News.htm toolbin/split_changelog.py lib/gs_init.ps src/gscdef.c src/version.mak]
2008-08-01T18:08:18.641815Z Ralph Giles
Update change logs for the 8.53 release.[doc/Changes.htm doc/History8.htm doc/Details8.htm doc/Details.htm]
This is the fourth scheduled release in the stable Ghostscipt 8.6x series. It corresponds to the 1.53 release of GhostPDL.
Approximately 238 bugs have been fixed since version 8.62. Of particular note are robustness and performance improvements with large files, invalid PDF, and font handling.
The major new feature of this release is multithreaded rendering. This can be requested by passing -dNumRenderingThreads=n on the command line. The input document is first parsed, and then each page is split into n bands which are rendered concurrently. This can provide a significant reduction in processing time on multi-core systems.
Images are now always interpolated in their source colorspace. This improves correctness for XPS documents and avoids bypassing the custom color management callbacks for interpolated images. Interpolation and color management are both expensive operations, so this affects performance with large images. The effect can be positive or negative depending on the file and the target resolution. If performance is a problem, we suggest running with -dNOINTERPOLATION.
Support for OpenPrinting Vector devices has been upgraded to version 1.0.
There are two new devices in this release, both experimental. Behdad Esfahbod has contributed a cairo output device which uses the cairo graphics library to generate PDF, SVG, EPS, or PNG files, based on the requested filename extension. The svgwrite device directly outputs Scalable Vector Graphics, the W3C XML vector graphics format. Both support only vector art at this point; text and images will not be represented efficiently.
The following bugs were open at the time of release:
226943, 430175, 465936, 493348, 535932, 578865, 614298, 626295, 686747, 686853, 686865, 687000, 687011, 687084, 687095, 687146, 687193, 687257, 687271, 687280, 687295, 687297, 687303, 687327, 687375, 687414, 687475, 687492, 687514, 687520, 687536, 687561, 687593, 687608, 687630, 687650, 687666, 687674, 687677, 687695, 687697, 687702, 687715, 687721, 687728, 687729, 687731, 687775, 687780, 687782, 687793, 687796, 687805, 687850, 687887, 687903, 687904, 687915, 687931, 687950, 687957, 687981, 687983, 688007, 688022, 688024, 688026, 688032, 688036, 688042, 688058, 688061, 688064, 688066, 688081, 688095, 688129, 688130, 688151, 688159, 688166, 688184, 688187, 688204, 688207, 688210, 688215, 688227, 688267, 688269, 688280, 688288, 688312, 688318, 688320, 688333, 688342, 688359, 688361, 688363, 688372, 688378, 688386, 688387, 688389, 688395, 688413, 688436, 688437, 688440, 688448, 688473, 688475, 688483, 688495, 688500, 688515, 688528, 688533, 688539, 688540, 688542, 688557, 688565, 688573, 688580, 688581, 688588, 688601, 688604, 688605, 688616, 688617, 688619, 688627, 688636, 688638, 688647, 688651, 688653, 688655, 688673, 688696, 688697, 688699, 688708, 688709, 688710, 688714, 688717, 688728, 688731, 688736, 688739, 688757, 688770, 688774, 688777, 688778, 688797, 688818, 688829, 688843, 688846, 688871, 688872, 688876, 688908, 688918, 688919, 688923, 688926, 688933, 688942, 688943, 688949, 688952, 688958, 688969, 688976, 688978, 688986, 688990, 688994, 688999, 689003, 689011, 689013, 689022, 689025, 689028, 689031, 689032, 689040, 689044, 689046, 689048, 689057, 689058, 689060, 689070, 689076, 689077, 689078, 689080, 689081, 689093, 689094, 689098, 689116, 689128, 689129, 689130, 689133, 689137, 689145, 689146, 689148, 689150, 689153, 689154, 689161, 689167, 689174, 689184, 689188, 689195, 689198, 689199, 689209, 689222, 689224, 689230, 689236, 689247, 689248, 689252, 689253, 689264, 689278, 689279, 689280, 689283, 689289, 689290, 689295, 689304, 689305, 689308, 689313, 689331, 689335, 689340, 689341, 689358, 689361, 689363, 689370, 689376, 689378, 689392, 689396, 689402, 689418, 689419, 689421, 689422, 689423, 689431, 689438, 689439, 689444, 689450, 689451, 689456, 689460, 689462, 689463, 689471, 689484, 689487, 689489, 689490, 689498, 689500, 689502, 689506, 689507, 689509, 689512, 689518, 689521, 689522, 689546, 689547, 689549, 689554, 689557, 689559, 689560, 689561, 689563, 689566, 689567, 689571, 689573, 689574, 689581, 689583, 689584, 689585, 689591, 689592, 689595, 689598, 689601, 689606, 689610, 689616, 689618, 689623, 689625, 689627, 689628, 689632, 689636, 689641, 689652, 689653, 689654, 689657, 689658, 689663, 689666, 689669, 689670, 689674, 689681, 689682, 689684, 689689, 689690, 689691, 689692, 689697, 689698, 689702, 689704, 689705, 689709, 689710, 689711, 689715, 689716, 689721, 689722, 689725, 689726, 689727, 689729, 689734, 689737, 689741, 689747, 689752, 689756, 689758, 689759, 689760, 689761, 689767, 689769, 689772, 689773, 689775, 689778, 689781, 689786, 689789, 689790, 689792, 689793, 689794, 689799, 689801, 689805, 689808, 689816, 689817, 689820, 689822, 689823, 689826, 689834, 689835, 689836, 689840, 689842, 689849, 689850, 689851, 689853, 689856, 689858, 689859, 689860, 689861, 689862, 689865, 689868, 689869, 689870, 689871, 689872, 689877, 689878, 689879, 689880, 689881, 689883, 689885, 689890, 689891, 689895, 689901, 689902, 689903, 689904, 689905, 689909, 689910, 689914, 689915, 689916, 689917, 689922, 689923, 689928, 689929, 689930, 689931, 689933, 689935, 689937, 689938, 689939, 689940, 689941, 689942, 689943, 689947, 689950, 689951, 689952, 689954, 689955, 689957, 689961, 689966, 689968, 689969, 689970, 689972, 689974, 689975, 689980.
The maximum number of color components has been reduced to 8 (from 252) as a performance improvement. Eight is the largest number commonly used and the largest number for which we support continuous tone images. Users with special needs can restore the previous behavior by setting the GS_CLIENT_COLOR_MAX_COMPONENTS preprocessor symbol to the required number of components at compile time.
The -Z: debugging option now uses 'realtime' instead of 'usertime' when reporting timing information on unix-like systems. This has always been the case on windows-like systems.
Obsolete makefiles for the DesqView environment have been removed.
2008-08-01T17:53:17.331788Z Ralph Giles
Bump the product name an date for the 8.63 release.[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 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 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/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 man/ps2ps.1 doc/Ps2epsi.htm doc/History4.htm man/ps2pdfwr.1 doc/History5.htm doc/History6.htm]
2008-07-31T21:06:50.284451Z Ralph Giles
Update change logs for 8.63rc3.[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/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 man/ps2ps.1 doc/Details.htm doc/Ps2epsi.htm doc/History4.htm man/ps2pdfwr.1 doc/History5.htm doc/History6.htm]
2008-07-29T20:35:41.916113Z Ray Johnston
Fix problem with NumRenderingThreads>0 with devices that request data from the bottom up such as the 'bmp*' devices. Bug 689985.[src/gxclthrd.c]
2008-07-29T19:11:31.677116Z Alex Cherepanov
Add support to NULL pointers in t_structs or t_astructs objects to execstack operator. Thanks to Ken for the analysis. Bug 689535. DETAILS: The issue is to do with devices handling patterns as high-level objects, which is why it affects pdfwrite (which can handle patterns itself) but not regular rendering. In zpcolor.c, pattern_paint_prepare(), there are two control paths, one for devices which handle patterns as high-level objects, and one for devices which don't. If the device can't handle high level objects, we install a pattern accumulation device. In this case, the flag internal_accum is set, we create the pattern accumulator device and open it: if (internal_accum) { gs_memory_t *storage_memory = gstate_pattern_cache(pgs)->memory; pdev = gx_pattern_accum_alloc(imemory, storage_memory, pinst, "pattern_paint_prepare"); if (pdev == 0) return_error(e_VMerror); code = (*dev_proc(pdev, open_device)) ((gx_device *) pdev); ... ... } Later the two control paths rejoin and we put some objects on the execution stack: push_mark_estack(es_other, pattern_paint_cleanup); ++esp; make_istruct(esp, 0, pdev); Now notice that we construct the structure on esp using pdev, but we *don't* create pdev if we can handle patterns, so its left as NULL and we end up pushing an empty t_struct. Leo's question in comment 10 is whether this is legal, the answer appears to be yes, but its debatable. In pattern_paint_finish we do this: gx_device_forward *pdev = r_ptr(esp - 1, gx_device_forward); if (pdev != NULL) { gx_color_tile *ctile; int code = gx_pattern_cache_add_entry((gs_imager_state *)igs, pdev, &ctile); That is, if the structure *isn't* NULL we do something with it, we ignore it if it is NULL. Either way we then do this: esp -= 3; Removing all the objects from the execution stack that we added. Notice that the structure we pushed onto the execution stack isn't actually 'executed', its just data used by the pattern handler. Now, all this works just fine in normal practice, however the job here uses a CIEBased colour space, and being from an Adobe application it tries to set the ColorRendering. Since we don't implement a ColorRendering resource category, this causes an error (handled in a stopped context). The default error handler uses execstack, and this is where the actual error finally occurs, because execstack can't handle the empty structure.[src/zcontrol.c]
2008-07-29T18:06:37.196198Z Ralph Giles
Update change logs for 8.63rc2.[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/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 man/ps2ps.1 doc/Details.htm doc/Ps2epsi.htm doc/History4.htm man/ps2pdfwr.1 doc/History5.htm doc/History6.htm]
2008-07-29T11:01:11.006826Z Russell Lang
Allow compilation with Microsoft Visual Studio 2008 (VC 9.0). Include lib files in the Windows installer when using COMPILE_INITS=1.[src/winint.mak src/msvc32.mak]
2008-07-28T22:23:04.128314Z Michael Vrhel
Fix for Bug 689983. This was introduced with the source space interpolation code. Fixes indexing direction in source data when we have indexed data, interpolation and a negative xx value in the geometric transformation.[src/gxiscale.c]
2008-07-28T20:44:43.542926Z Ralph Giles
Update change logs for 8.63rc1.[doc/Changes.htm doc/History8.htm doc/News.htm doc/Details8.htm doc/Details.htm]
2008-07-28T19:41:25.163173Z Ralph Giles
Fix a syntax error from r8548. This wasn't noticed because double.dev isn't part of the default build.[src/zdouble.c]
2008-07-28T18:58:41.634974Z Ralph Giles
Update release date and product name for 8.63rc1.[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 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 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 man/pdf2ps.1 man/ps2pdf.1 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 man/ps2ps.1 doc/Ps2epsi.htm doc/History4.htm man/ps2pdfwr.1 doc/History5.htm doc/History6.htm]
2008-07-28T18:55:01.811159Z Ralph Giles
Update news for 8.63rc1.[doc/News.htm]
2008-07-28T12:01:51.595271Z Alex Cherepanov
Fix extraction of the default subfile from PDF file collection on save level 0. Export the file name as a PS name from PDF interpreter instance to protect the name from restore. Bug 689981. DETAILS: Exporting this value as a global composite object doesn't work when PDF interpreter runs on the save level 0. If we ever implement processing of multiple files from PDF collection the interface will need some changes.[lib/pdf_main.ps]
2008-07-28T10:10:53.373341Z Igor Melichev
Fix (clist writer) : Improve the logic about zero tile id. DETAILS : Thanks to Peter for participation. See comment in code.[src/gxclrect.c]
2008-07-28T07:52:42.264750Z Igor Melichev
Fix (printer) : A check for buffer space overflow was dramatically overestimated. DETAILS : In the old code : new_height < max_ulong/(mem_space + (new_height * pdf14_trans_buffer_size)) Where pdf14_trans_buffer_size is (raster * NUM_PDF14_BUFFERS). equivalent to : new_height * (mem_space + (new_height * (raster * NUM_PDF14_BUFFERS))) < max_ulong equivalent to : new_height * mem_space + new_height * new_height * raster * NUM_PDF14_BUFFERS < max_ulong So it counts new_height quadratically, but it must be the linear multiple by the raster. Debugged with the test case of the bug 689982. It creates a 15Mb raster, but could not switch off the banding even with -dMaxBitmap=1000000000 .[src/gdevprn.c]
2008-07-27T21:06:38.633515Z Igor Melichev
Fix (shading) : Empty clipping was entirely lost. DETAILS : Bug 689982 "A wrong shading raster". The old code doesn't account that gx_cpath_from_rectangle may normalize the given rectangle.[src/gxfill.c]
2008-07-27T19:10:02.737363Z Ralph Giles
Metadata updates for the new zfile header.[src/zfile.h doc/Develop.htm]
2008-07-27T16:07:30.174721Z Ray Johnston
Remove (complete) duplication of the contents. Cosmetic change only.[src/zfile.h]
2008-07-27T16:01:28.177923Z Igor Melichev
Fix (clist) : Skip writing unuseful data with linear color triangle. DETAILS : This fixes a minor problem what was discovered while working on bug 689918 "Ghostscript 8.62 and 8.63 segmentation fault". cmd_write_trapezoid_cmd wrote an unused data to clist when processing a linear color triangle. The variables ybot, ytop are never used while a clist interpretation. In same time the data are not initialized in that case, so they imply an indeterministic content and length of the clist.[src/gxclrast.c src/gxclrect.c]
2008-07-27T09:38:42.451745Z Igor Melichev
Fix (True Type font loader) : Can't work around unsorted 'loca' when 'loca' is not loaded. DETAILS : Bug 689893 "Regression: CID font emulation is broken." A work around against unsorted 'loca' and its recent improvements assume that 'loca' presents in sfnts. It is not true when a CID font is emulated with a True Type disk font, because in that case the font machinery delay loading 'loca' and 'glyp' elements until a real request from a document. For more details see comments added in code.[src/bfont.h src/zfcid1.c src/gstype42.c src/zfont42.c]
2008-07-27T09:29:37.311275Z Igor Melichev
Fix (PDF interpreter) : A temporary work around huge images with a soft mask. DETAILS : Bug 689080 "PDF Crash with Transparency at 2880 dpi". This is a temporary workaraound for the problem, see comment in code. With this patch the test case doesn't crash, but it needs -dBufferSpace=500000000 to complete in 15 minutes on Core 2 Duo 2.4 MHz with debug build. The test case is pretty big anyway - it generates a 4.2 gigapixel raster. Thankls to Ray for obtaining the buffer space from a device. I think the old code is incorrect because it looks applying the mask two times : first when installing a mask buffer with .begintransparencymaskimage in doimagesmask, and second time when processing a Type 103 image in C code. The raster difference is likely caused by that. I don't perform a deeper analyzis, because it's a temporary fix which needs to be replaced soon. All that is written in this paragraph are not sure, because there is no time for a deeper analyzis before 8.63 release. When we'll complete Type 103 images (with rasterizing after clist and with a proper handling in pdfwrite), .begintransparencymaskimage will likely go away.[lib/pdf_draw.ps]
2008-07-27T07:03:42.852634Z Russell Lang
When building the Windows installer with COMPILE_INITS=1, do not include the Resource and lib initialization files as separate files in the installer zip archive.[src/winint.mak]
2008-07-27T02:52:11.521293Z Alex Cherepanov
Fix direct access to a subfile in the %rom% file system by reusable stream. Bug 689976, customers 661, 580. DETAILS: 1. Open the source file of the reusable stream as a general stream, rather than an os-based file stream. 2. Take into account file_offset member when accessing the stream.[src/zfile.h src/gsiorom.c src/int.mak src/zfrsd.c src/zfile.c]
2008-07-25T22:51:14.900519Z Russell Lang
Change Windows installer to remove "GPL Ghostscript Fonts" target. Ghostscript now includes fonts in the Resource directory, and no longer needs the fonts previously installed in "C:\Program Files\gs\fonts".[src/dwsetup.rc src/winint.mak src/dwsetup.h src/dwsetup.cpp]
2008-07-25T01:10:39.451286Z Alex Cherepanov
Use reusable stream when the data stream of type 0 function doesn't fit into a string. Bug 689978, customer 770.[lib/pdf_draw.ps]
2008-07-24T17:28:51.809318Z Ralph Giles
Fix source style warnings from the nightly regression.[src/aes.h doc/Develop.htm toolbin/clusterpush.sh]
2008-07-24T02:06:07.385871Z Michael Vrhel
Clean up of // comment in code and debug ifdef that should have been removed for r8868[src/gxiscale.c]
2008-07-24T00:42:06.095459Z Ralph Giles
Change the XYSSL AES implementation to better match our conventions.[src/aes.h src/aes.c]
2008-07-24T00:42:04.729720Z Ralph Giles
Change the XYSSL AES implementation to build in isolation.[src/aes.c]
2008-07-24T00:42:02.863201Z Ralph Giles
Replace Brian Gladman's AES implementation with a no-advertising BSD version from XYSSL 0.9. Used with permission of Christophe Devine.[src/aes.h src/aes.c]
2008-07-24T00:42:01.337493Z Ralph Giles
Fix some compile problems in Brian Gladman's AES implementation and disable 'on the fly keying' routines we don't need.[src/aes.h src/aes.c]
2008-07-23T23:29:39.935990Z Michael Vrhel
Fix for Bug 689246. When performing interpolation, the interpolation is now performed in the source colorspace as opposed to the device space. Custom color callback is no longer bypassed by direct concretization as it was previously. DETAILS: Previous code would take device color 8 bit values and do the interpolation. That portion of the code is the same. For cases where we have nondevice color the handling is now different. Indexed colors are mapped to their base space and interpolated. This is followed by a remap operation. Device independent colors are interpolated followed by a remap operation. Note that for cases where there is a significant enlargement occurring and we are not in a device color space, there can be a performance cost due to current inefficiencies in our color remapping operations. This can be costly if you have a CMYK CRD MLUT for example. There is currently a project underway to improve the efficiency of the color flow. For the current time, if this is an issue, improved speed can be achieved by invoking -dNOINTERPOLATION[src/lib.mak src/gxiscale.c src/gxcolor2.h src/gximage.h src/gscindex.h src/gscolor2.c]
2008-07-23T22:52:50.086155Z Ray Johnston
Fix possible use of uninitialized variable 'mem_space'. Compute the value when no-transparency is in effect prior to adding in the space needed for transparency. Thanks to Michael Vrhel for spotting this.[src/gdevprn.c]
2008-07-23T21:55:21.014656Z Igor Melichev
Fix (graphics) : Write tile id into a pattern clist (continued). DETAILS : Bug 689818 "Regression: Test file imagemask-with-pattern.ps fails with banding and pbmraw ". The last patch appears incomplete, now fifing it.[src/gxclrast.c]
2008-07-22T21:03:07.709088Z Ray Johnston
Turn off the NOISY 'VERBOSE' setting by default.[src/rinkj/rinkj-epson870.c]
2008-07-22T18:32:34.998275Z Ray Johnston
Change the default GS_CLIENT_COLOR_MAX_COMPONENTS to 8 (down from 252). This improves the performance for files with many images. This limits the number of DeviceN components and the number of separations that can be generated in the default build and causes 'limitcheck' errors on CET tests that attempt to set a 250 component DeviceN space. THIS IS NOT BACKWARDS COMPATIBLE, but the change in ths single file so this can readily be rebuilt by customers that need more components or anyone that demands conformance to this implementation dependent result on the CET. Note that not all Adobe implementations support 250 components as CPSI does. Currently only the tiffsep and psdcmyk devices can generate more than 8 separations, and then only when USE_COMPRESSED_ENCODING is used to fit more than 8 components in a 64-bit color value. This partly reverts rev 7159.[src/gsccolor.h]
2008-07-22T14:23:25.922113Z Ken Sharp
Fix (pdfwrite): limit checking of CIDfonts for 'fixed width' property. Details: Bug 689963 "Infinite loop converting PostScript to PDF" In fact the loop is not infinite, but it does take a long time. When checking to see if a font is non-proportional, ie all glyphs have the same width, and the font is a CIDFont, we did not stop testing when the CID exceeded the maximum CID in the font instance. Instead we continued to the full CID range (0xffffffff). Because the TrueType code returns a default for missing glyphs if the font was truly non-proportional then it would take a long time to search the entire range. (zfcid1.c): In z11_enumerate_glyph, check the requested CID against the CIDCount for the font. Return a rangecheck if we exceed it. I believe only pdfwrite uses this code currently.[src/zfcid1.c]
2008-07-22T06:24:14.072316Z Igor Melichev
Fix (graphics) : Write tile id into a pattern clist. DETAILS : Bug 689818 "Regression: Test file imagemask-with-pattern.ps fails with banding and pbmraw ". The old code doesn't write a tile id when writing the tile to clist, because the clist interpreter doesn't use tile id. This causes a failure after we implemented clist-based patterns. While playing back a pattrn clist to a page clist writer device, the clist writer does need a tile id for choosing an entry of an internal hash table. Actually the failure happens due to a strange check "tile->id != gx_no_bitmap_id" in clist_strip_tile_rectangle in gxclrect.c ln 479. It is not clear what it was intended for. When a tile id is zerfo, the check skips writing tile size to clist, so that a zerodevide happens during the clist playback. We decided to provide meanful ids because the clist writer needs them anyway. Fixing the check to be a subject of a separate patch (if a fix is really necessary). This patch simply writes tile id when the clist is for a pattern. A new nacro IS_CLIST_FOR_PATTERN(cdev) Defines the condition for that. Some internal functions change prototypes with adding a new boolean argument for_pattern to know whether a clist is for a pattern.[src/gxclbits.c src/gxclist.h src/gdevprn.c src/gxclrast.c]
2008-07-21T23:23:13.534369Z Ralph Giles
Update the license statement for Kevin Hartig's hana fonts. They are now under the SIL Open Font License 1.1 with reserved font names Calligraphic-Hiragana and Calligraphic-Katakana. See Bug 688674 for the relicensing declaration.[lib/Fontmap.GS]
2008-07-21T20:22:21.005889Z Ray Johnston
Remove obsolete and probably non-working support for ancient DesqView (DOS multi-taksing). This probably should have been dropped when we dropped 16-bit support.[src/dvx-tail.mak src/dvx-gcc.mak src/dvx-head.mak]
2008-07-21T18:55:31.311238Z Alex Cherepanov
Wrap string data source into a procedure when /ImscaleDecode filter is installed, to ensure repeated reading of the string when the imagemask needs more data than has the string. Allocate new composite objects with the same global status as old ones. Bug 689889, customer 330.[lib/gs_img.ps]
2008-07-18T20:53:54.538069Z Ray Johnston
Fix for Seg fault caused by wrap around of an unsigned long. Seen at 600 dpi to pkmraw with Bug689369.pdf and -dBufferSpace=32000000. DETAILS: While the pdf14_trans_buffer_size was small enough, the mem_space calculation would wrap around.[src/gdevprn.c]
2008-07-17T20:11:52.225244Z Ray Johnston
Increase the default threshold for using the (much slower) pattern clist accumulator. The 32Mb threshold is tolerable for most host systems and this can be modified during the build with -DMAX_PATTERN_BITMAP_SIZE=___ (possibly using the makefile XCFLAGS). Only embedded systems may want to set this to a smaller value. This is a temnporary workaround for bug 689966. Improving the performance of the pattern clist accumulator will be considered a future enhancement.[src/gxpcmap.c]
2008-07-17T05:51:19.136291Z Ray Johnston
Update documentation to describe multi-threaded rendering (NumRenderingThreads) and improve the documentation about the clist/banding parameters and the effect on performance. Addresses issues raised in bug 689668.[doc/Use.htm doc/Language.htm]
2008-07-17T02:34:01.869133Z Ralph Giles
Write pure white as a background in the pngalpha device. Bug 689934. Details: Russell Lang reports this caused problems originally, but it seems to work now, so reverting the behaviour per his request.[src/gdevpng.c]
2008-07-16T17:19:29.238633Z Igor Melichev
Fix (transparency) : A mask buffer could left unreleased due to banding. DETAILS : Bug 689944 "Reference to free object". See comment in code.[src/gdevp14.c]
2008-07-16T15:00:17.682927Z Alex Cherepanov
Ignore out-of-range UniqueID in embedded Type 1 PDF fonts. Bug 689973.[lib/pdf_font.ps]
2008-07-15T20:29:13.383262Z Ralph Giles
Remove the obsolete pnga device. Bug 689971. This was a test framework used in the development of the PDF 1.4 compositor. It's no longer used.[src/devs.mak src/gdevpnga.c]
2008-07-15T13:27:29.996709Z Alex Cherepanov
Cache the pattern instance in the PDF pattern object to prevent reprated pattern instantiation and improve performance. Bug 689896, customer 531.[lib/pdf_ops.ps]
2008-07-14T18:53:40.636598Z Marcos H. Woehrmann
Allows the Epson AcuLaser device output to be sent to a pipe (closes bug 689953). Thanks to j@uriah.heep.sax.de (Joerg Wunsch) for the patch.[contrib/eplaser/gdevescv.c]
2008-07-13T22:06:19.770532Z Henry Stiles
Rop devices now require access to an allocator instance. Fixes crash in running pxl fts file T326.BIN with a halftoning device. The bug was reported by a potential customer and a bugzilla report was never filed.[src/gdevrops.c]
2008-07-12T01:43:13.151852Z Alex Cherepanov
Use /.notdef instead of null in the array of PostScript names of TTF glyphs. This saves the trouble of checking for null values and fixes a case where a null entry slipped through. Bug 689962, customer 384.[lib/gs_ttf.ps]
2008-07-11T23:10:56.624279Z Ralph Giles
Restore the 2_fracs image class to the psl2lib device. It was inadvertently removed in r8828.[src/lib.mak]
2008-07-11T23:10:55.549110Z Ralph Giles
Make the search for the most recent ghostpcl revision more robust. Thanks to Henry Stiles for the extra quoting idea.[toolbin/clusterpush.sh]
2008-07-11T21:10:49.148153Z Ralph Giles
Merge clusterpush changes from the ghostpcl tree.[toolbin/clusterpush.sh]
2008-07-11T18:00:13.808434Z Ralph Giles
Check return codes of remote commands and abort if there's a problem. Previously we continued which could confusingly return the wrong regression report at the end if the connection drops while waiting for the run to complete.[toolbin/clusterpush.sh]
2008-07-11T05:06:07.316809Z Alex Cherepanov
TrueType instruction definitions (IDEF) are addressed by a single byte index. So there cannot be mode than 256 different instructions. Nevertheless, a request a for larger array for instruction definitions should not be a fatal error. Bug 689960, customer 330.[src/ttobjs.c]
2008-07-10T23:36:00.202299Z Ralph Giles
Add the so build directories to the clusterpush exclude list.[toolbin/clusterpush.sh]
2008-07-10T23:35:56.971501Z Ralph Giles
Move the interpolation image class from the ps2 dev to the core graphics library so it is available to all languages.[src/lib.mak]
2008-07-10T17:00:39.840394Z Ralph Giles
Documentation update: we support Separation, DeviceN and a number of PDF 1.7 features.[doc/Language.htm]
2008-07-09T22:59:00.503580Z Alex Cherepanov
Use '%PDF-' instead of '%PDF-1.' to recognize PDF files because PDFsharp 0.8.2 generates '%PDF-0.0' and Acrobat accepts this. Bug 689949, customer 384.[lib/pdf_main.ps]
2008-07-07T14:17:54.881290Z Ken Sharp
Update the documentation for the NOCIE switch, noting that this also affects the CIEBasedDEF and CIEBasedDEFG spaces, substituting DeviceRGB and DeviceCMYK for the CIE spaces.[doc/Use.htm]
2008-07-07T13:43:38.233194Z Ken Sharp
Fix warnings from the JPX decoder when using Visual Studio 9. Details: A compiler warning was disabled if the MSVC_VERSION variable was exactly 8, changed to >7 so that it is also disabled for later versions of the compiler[src/msvccmd.mak]
2008-07-07T08:56:59.749169Z Ken Sharp
Fix (pdfwrite): Images ina DeviceN space with more than 60 inks caused a crash. Details: Bug #689864 "Regression: 09-34.PS core dumps with pdfwrite" When emitting an image, using the Flate encoder, the number of colorants in the DeviceN space was not checked against the maximum permitted. Since the encoder uses a fixed buffer whose size depends on the maximum number of inks, this could cause a write beyond the end of the buffer. (spngpx.h) Increase the maximum number of colorants to 256 (spngp.c) Return error if the number of colorants in the space exceeds the maximum permitted. I can't check the generated PDF file, as no PDF reader seems able to open a PDF file with more than 32 inks, the architectural limit in the current version of Acrobat.[src/spngpx.h src/spngp.c]
2008-07-06T00:45:19.690811Z Ray Johnston
Fix address/value problem. How this ever seemed to work, who knows. Thanks to Matthias Kilian for this patch.[src/gdevwts.c]
2008-07-04T20:35:41.686667Z Alex Cherepanov
Fix a bug in the error recovery code that handles invalid font streams. Bug 689936, customer 661.[lib/pdf_font.ps]
2008-07-04T18:20:44.681886Z Ralph Giles
Parse common color space keys in JPXDecode filtered images and pass them to the filter, allowing JPX-encoded CMYK images to display properly. Fixes bug 688807. DETAILS: The fundamental issue is that the jasper library does not support the ISO 15444-2 (JPX) extensions to the JP2 format for handling full ICC and CMYK color spaces. So while the the PDF image dictionary and the JPX streams both specify a CMYK ICC profile describing the image, jasper ignores the extended colr boxes and marks the image as sRGB + an unknown component, just based on it having three or more components. Our stream implementation used this information and tried to return RGB pixels when the graphics library expected CMYK, causing errors or hangs. Jasper should be amended to handle these extensions. However, since in PDF a color space in the image's stream dictionary overrides what is in the stream, I felt implementing the override was the more useful resolution. This patch doesn't handle all color spaces, just Device* and ICCBased, which are the most common. In the case of ICCBased spaces, we try to look up the alternate, and use that if it is a Device* space; otherwise we guess based on the number of components.[src/zfjpx.c src/sjpx.c]
2008-07-03T18:25:55.494578Z Ralph Giles
Clean up the state machine in s_jpxd_process. DETAILS: The state machine didn't always respect the calling conventions for filter process routines, and could return '0' (more input needed) when 'last' was true (no more input exists). Also, the jas_stream member of the filter state isn't currently necessary and has been moved to s_jpxd_decode_image(). Originally it was envisioned that the jas_stream could seek on the filter's source ghostscript stream and so would need a longer lifetime than we're currently using. This has now been simplified to a local variable.[src/sjpx.c src/sjpx.h]
2008-07-03T18:25:54.527696Z Ralph Giles
Fix a hang in s_jpxd_process. Bug 688807. DETAILS: The problem file contains a CMYK JPX stream, which jasper does not recognize, treating it as sRGB with an extra component. This causes us to try an return 3-component data, and end up looping forever if only a fraction of the expected pixel is available at the end of a line. Check for this event and return an error instead.[src/sjpx.c]
2008-07-03T18:25:52.592596Z Ralph Giles
Remove trailing whitespace from the jpx stream implementation.[src/sjpx_luratech.h src/sjpx.c src/sjpx.h src/sjpx_luratech.c]
2008-07-03T13:03:11.896225Z Igor Melichev
Fix (clist writer) : Indeterminizm writing a degenerate curve. DETAILS : Bug 689911 Shifting raster data, Windows MSVC 8 non-debug build. In function cmd_put_path the variable 'prev' was wrongly localized in the loop body when need to save/pass data from the previous cycle. It worked fine with debug build, because the compiler always commits variables to RAM for debug purpose. With release build the variable 'prev' never changes because formally speaking the program never uses its value after it is initialized. The bug persists since the repository was created on March 9 2000. The old behavior may be indeterministic. With MSVC8 the effect is occasionaly visible when a degenerate curve {x y x y x y x y} is written into clist. See the simplified test case attached to the bug report.[src/gxclpath.c]
2008-07-01T10:22:25.835951Z Igor Melichev
Fix (clist writer) : The maximal compositor command size was wrong. DETAILS : Bug 689927 "rangecheck in c_pdf14trans_write() causing 'unregistered' error". The bug was introduced in revision 8587. See comments in code. Thanks to Ray and Marcos for participation.[src/gstparam.h src/gdevp14.c]
2008-06-30T23:56:04.281753Z Ralph Giles
Document the output filename behavior of ps2pdf in the manpage. Bug 689920.[man/ps2pdf.1]
2008-06-30T18:15:51.663545Z Ralph Giles
Add a missing header dependency.[src/lib.mak]
2008-06-30T00:05:40.080596Z Alex Cherepanov
Add one more way to store data of the reusable stream: an array of strings. Read the input stream into an array of strings during reusable stream construction and use the array directly as a data storage. Bug 689476, customer 190.[src/int.mak src/gxshade.c lib/gs_frsd.ps src/zfrsd.c]
2008-06-28T14:53:32.570212Z Alex Cherepanov
Make /?dblacute and /?hungarumlaut glyph names equivalent in Type 1 fonts. Add a missing glyph when the font is loaded if another glyph is defined. Bug 689014, customer 580.[lib/gs_type1.ps]
2008-06-26T19:17:37.366443Z Alex Cherepanov
Use extended name table by default and adjust the settings to have up to 1M names of up to 1K characters long. Bug 689913.[src/inamedef.h src/inameidx.h src/inamestr.h]
2008-06-25T16:18:57.687888Z Marcos H. Woehrmann
Fixed compile for Linux.[contrib/opvp/gdevopvp.c]
2008-06-24T14:16:29.258940Z Igor Melichev
Fix (graphics) : Clean image enumerator before releasing it. DETAILS : Bug 688845 "Segmentation Fault on EPS 2 PDF conversion", comment #38. Adobe Illustrator creates a Postscript document, in which an image data procedure executes 'save', and the corresponding 'restore' appears after the image end. DCue to that the image enumerator is freed at a higher save level than it was allocated, so that gs_free_object works idle. Nevertheless pointers must not in the structure, because they may point to blocks already released by the client's subclass method for end_image. Leaving them uncleaned caused a real crash in the garbager - see bug 688845. The patch defines the new function gs_image_free_enum, which is intendend for a safe releasing of an image enumerator from Postscript interpreter. It cleans the entire subclassed enumerator, including all possible pointers created by subclasses. All end_image implementations, which may be called from Postscript interpreter, must call this function for releasing image enumerators. The 'memory' pointer moved from subclasses to gx_image_enum_common. We believe that in the old code all subclasses define and initialize it. Working on this patch we suspected memory leaks from image enumerators with some devices. Particularly we suspect that subclasses if gx_device_vector (pdfwrite, ps2write, etc.) never release image enumerators (not sure). This patch does not do any attempt to re[pair such leaks, because we want the new code doesn't change the behavour too much in order to simplify the testing. A work on leaks to be done separately.[src/gxiparam.h src/gxidata.c src/gsimage.h src/gdevvec.c src/gximage.h src/gximag3x.c src/gdevplnx.c src/devs.mak src/gdevvec.h src/gdevpdfi.c src/gxclimag.c src/lib.mak src/gdevpx.c src/gdevtrac.c src/gdevbbox.c src/gximage1.c src/gximage3.c]
2008-06-22T06:43:28.997699Z Ralph Giles
Rename the svg device to svgwrite to avoid conflict with the SVG interpreter. The device is still selected as -sDEVICE=svg, just the name used internally has been changed.[src/Makefile.in src/gdevsvg.c src/devs.mak]
2008-06-21T14:06:00.424638Z Igor Melichev
Fix (TT interpreter) : A work around a wrong maxPoints. DETAILS : Bug 689907 "problem reading PDF: Failed to interpret TT instructions in font 80000001". The test csae embeds a TT font subset with an incorrect maxPoints. This is a simple work around that.[src/ttobjs.c]
2008-06-16T16:12:37.522247Z Marcos H. Woehrmann
Updated to latest versions of files from ftp://ftp.oreilly.com/pub/examples/nutshell/cjkv/adobe/aj16.tar.Z Closes bug 689735.[Resource/CMap/UniJIS2004-UTF32-H Resource/CMap/UniJIS2004-UTF16-H Resource/CMap/UniJIS2004-UTF8-H Resource/CMap/UniJISX0213-UTF32-H Resource/CMap/UniJIS-UTF32-H Resource/CMap/UniJIS-UTF16-H Resource/CMap/UniJIS-UTF8-H Resource/CMap/UniJISX02132004-UTF32-H]
2008-06-11T16:24:24.671679Z Michael Vrhel
Undoing change introduced in rev 8794. This change will need to occur after Bug 689889 is handled. rev 8749 introduced 37 differences in the regression.[src/simscale.c]
2008-06-10T20:37:05.090668Z Michael Vrhel
For bug 689888. This fixes the hang in the while loop. If end of file occurs during the reading of the stream it is passed along by the filter. However, proper output does not occur due to a different issue. Another bug was opened related to this postscript noncompliance of string reading reuse in imaging operators. See 689889.[src/simscale.c]
2008-06-09T23:02:50.347013Z Ralph Giles
Add a modified version of the clusterpush script from the ghostpcl tree.[toolbin/clusterpush.sh]
2008-06-09T13:46:08.406410Z Alex Cherepanov
Use a dictionary (instead of an array) to represent cmap table in a TrueType font because the array cannot accept fonts that have both 0x0 and 0xFFFF codes. Bug 689136, customer 870.[src/icid.h src/zfcid1.c lib/gs_ttf.ps src/zcid.c]
2008-06-09T07:33:57.606022Z Igor Melichev
Fix (stroking) : Prevent unpainted gaps between neighbour strokes that could appear due to stroke adjustment. DETAILS : Bug 687974 "pdf file has banding with ghostscript but not with acrobat". The test case includes a gradient, which is represented as a set of paralel strokes. Due to stroke widths equals to fractional pixels, stroke adjustment shifts some of them so that an unpainted gap appears between strokes and the gradient looks striped. Note the test document is created with Quark Express 4.11 . This patch implements a hewristic recognizer for parallel contacting strokes and suppresses stroke adjustment for them. See comments in code for more details. Note that the recognizer data are associated with a device but they are not a device property. We store them in a device structure because we haven't got an associated structure in the graphic state, and we don't want to introduce one now against extra complexity with memory management. Also the recognizer code Appears to be distributed along multiple functions and we would like to apply a better incapsulation. Nevertheless the encapsulation would cause CPU time expense for multiple small function calls unless we create new macros. So commonly we're unhappy of this code but we don't see a better solution. Also note that the recognizer data is copied from/to clipper device when the stroking algorithm installs and deinstalls a clipper. So the data actually is not a property of a device. Also they're not a part of graphic state because they must live across gsave/grestore (the test case requires so).[src/gsimage.c src/gstext.c src/gxdevice.h src/gdevbit.c src/gspaint.c src/gxclip.c src/gxstroke.c src/gxdevcli.h]
2008-06-05T21:52:58.268146Z Ralph Giles
Remove the executable property from the included fonts.[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/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/NimbusSanL-BoldCondItal Resource/Font/NimbusMonL-BoldObli 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]
2008-06-05T00:26:20.566472Z Alex Cherepanov
Replace incorrect FontMatrix in CFF CIDFont with a most common value to recover a PDF file that Acrobat 8 manages to shows correctly. Bug 688517.[lib/gs_cidfn.ps]
2008-05-31T00:57:34.917939Z Alex Cherepanov
Add work-around for PDF files that misspell 'endobj' as 'endjobj'. Bug 689876.[lib/pdf_base.ps]
2008-05-30T20:25:17.430208Z Alex Cherepanov
Dom't interpret ^D (0x04) as a self-delimeted character in PDF mode because PDF doesn't need this hack. Bug 689875.[src/iscan.c]
2008-05-28T21:52:03.844656Z Igor Melichev
Fix (True Type font loader) : Work around incorrect numGlyphs (continued). DETAILS : Bug 689516 "problem reading PDF: Failed to interpret TT instructions (ref 7814)". Bug 689866 "Regression: with TrueType fonts (possibly related to loca); file Bug688467.ps" The last patch appears to cause a conflict with the revision 5707 change. which introduced a hewristic for reapring fonts with unsorted loca. When sortinmg the full loca (including glyphs behind numGlyps), the test cases of bugs 688467 and 688461 cause overlapping glyphs, so that the hewristic gives a wrong glyph length. This patch improves the hewristic with checking the glyph length obtained from the unsorted loca, and replaces it only if it looks incorrect. f which may need further adjustments.[src/gstype42.c]
2008-05-28T18:16:26.144495Z Ralph Giles
Correct properties.[src/sidscale.h src/sjbig2_luratech.h src/sjpx_luratech.h src/sidscale.c src/sjbig2_luratech.c src/sjpx_luratech.c]
2008-05-28T16:04:01.772433Z Marcos H. Woehrmann
Changed crlf to lf.[src/sidscale.h src/sidscale.c]
2008-05-28T02:38:35.559910Z Alex Cherepanov
Fix a typo introduced in the rev. 8146 that prevented running PDF files from stdin. Bug 689847.[lib/pdf_main.ps]
2008-05-28T00:27:23.734030Z Michael Vrhel
Fix to enable proper custom color callback when indexed images with ICC profiles are used. Bug 689863.[src/lib.mak src/gscolor2.h src/gxcie.h src/gsciemap.c src/gscolor2.c]
2008-05-27T20:12:08.164024Z Michael Vrhel
Addition of debug code to dump embedded ICC profiles for external analysis.[src/gsicc.c]
2008-05-27T17:07:40.221072Z Alex Cherepanov
Enable printafm to emit a comment with UniqueID, that may be of some use when investigating versions of fonts used. Thanks to Michail Vidiassov for the patch. Bug 688610.[lib/printafm.ps]
2008-05-26T19:04:05.563476Z Ralph Giles
Work around broken JBIG2Decode streams created by several versions of Xerox WorkCentre. Bugs 689841 and 689852. In these streams, a segment data length field is written as -1 expecting the decoder to infer it from the length of the remaining data.[jbig2dec/jbig2_page.c]
2008-05-25T07:28:53.119264Z Igor Melichev
Fix : MSVC warnings. DETAILS : Removed an extra debug printing that prints an unutialized variable.[src/gdevpx.c]
2008-05-25T07:23:38.027951Z Igor Melichev
Fix (True Type font loader) : Work around incorrect numGlyphs. DETAILS : Bug 689516 "problem reading PDF: Failed to interpret TT instructions (ref 7814)". The bug report supplies a PDF document, which embeds a TT font with a too small numGlyphs. The loca table contains more glyphs and they are referenced in a text. The font is incorrect, but Acrobat handles the document. This patch checks whether there are glyphs behind numGlyphs and extends numGlyphs to cover them. Also improved error handling in ttfmain.c . Besides that, now we print a warning about an incorrect numGlyphs in release build. The olkd code did with debug buil only. I believe that users need to know whether a font is broken, and that its rendering is hewristic.[src/gstype42.c src/ttfmain.c]
2008-05-25T05:45:15.665594Z Alex Cherepanov
Revert the rev. 8509 because it is not needed after rev. 8774 but interferes with FONTPATH search and memory font resources. Bug 689637. DETAILS: Since embedded PDF fints are now not registered as resources, there's no need to distinguish between disk and memory font resources. Embedded fonts bypass resource machinery; non-embedded fonts are loaded by name.[lib/pdf_font.ps src/zfont.c]
2008-05-25T04:28:23.450067Z Alex Cherepanov
Continue the changes started by the rev. 8772. Remove one more definefont from embedded TrueType font loader. Bug 689644, customer 243.[lib/gs_ttf.ps]
2008-05-25T02:17:14.504731Z Alex Cherepanov
Change all shell scripts to treat a single dash '-' as a positional parameter rather than an option. Bug 689846.[lib/eps2eps lib/ps2ps lib/dumphint lib/ps2ps2 lib/dvipdf lib/pdfopt]
2008-05-23T05:05:20.013100Z Alex Cherepanov
Use embedded PDF fonts directly. Don't define them as resources and look them up later by the name. Leave findfont operator for fetching non-embedded fonts only, which are now unaffected by embedded fonts. Bugs 689510, 689514 from customer 700. DETAILS: CIDFont resources should be handled in a similar way but this part is not yet implemented.[lib/pdf_font.ps lib/pdf_ops.ps]
2008-05-23T00:13:50.314402Z Ralph Giles
Implement sync_output as cairo_flush. Patch from Behdad Esfahbod.[src/gdevcairo.c]
2008-05-22T18:06:22.983939Z Igor Melichev
Enhancement (graphics) : Delay applying type 1 raster patterns until clist interpretation (continued 4). DETAILS : The old code assumes that a pattern always fits into the clist writer buffer. However ppmraw -r400 176-01.ps violates this assumption. This patch implements a subdivision of a pattern into slices, each of which is smaller than the buffer size. 1. The new function cmd_get_buffer_space retrives maximal available space in the clist writer buffer (gxclutil.c). 2. cmd_put_drawing_color now implements a cycle for slicing big patterns. Each slice writes to clist as a separate clist instruction (gxclpath.c). 3. gx_dc_pattern_write_raster drops the constraint that the pattern fits into a single buffer (gsptype1.c). 4. The clist interpreter is enhanced with composing a pattern from slices (gxclrast.c).[src/gsptype1.c src/gxcldev.h src/gxclrast.c src/gxclpath.c src/gxclutil.c]
2008-05-22T09:52:18.876353Z Igor Melichev
Enhancement (graphics) : Delay applying type 1 raster patterns until clist interpretation (continued 3). DETAILS : Bug 689856 "Regression: 09-34.PS core dumps when banding". Uninitialized fields in device color after restoring a pattern from clist. Debugged with ..\..\gs-hd\bin\gswin32c.exe -IF:/AFPL/gs-hd/lib;f:\afpl\fonts -r300 -K1000000 -dMaxBitmap=10000 -dNOPAUSE -dBATCH -sDEVICE=pbmraw -sOutputFile=cur.ppm H:\AuxFiles\CET\09-34.PS[src/gsptype1.c]
2008-05-21T19:46:53.581581Z Ray Johnston
Change parameters to gdev_prn_allocata_mesmory to explicit width and height to work around a (suspected) bug in gdev_prn_allocate when new_width and new_height are 0 and the page has transparency. That issue will be adddressed separately. Crash with multi-threaded rendering reported by customer #850.[src/gxclthrd.c]
2008-05-21T19:46:47.112573Z Ralph Giles
In r8765 we concluded GS_IMAGE_MAX_PLANES was the same as MAX_COMPONENTS. Make this change permanent by removing the MAX_PLANES define entirely.[src/gsimage.c src/zimage.c src/gxiparam.h src/gdevbbox.c src/gxidata.c src/gximage.c src/gsiparam.h src/gxclimag.c]
2008-05-21T19:46:43.711424Z Ralph Giles
Remove the lowercase "compatibility" versions of the GS_IMAGE_MAX_* macros.[src/zimage.c src/gdevtxtw.c src/gsimage.c src/gxiparam.h src/gxidata.c src/gximage.c src/dxmainc.c src/gdevpdtv.c src/gdevpdfb.h src/gdevpdtv.h src/macsystypes.h src/gdevmacttf.h src/gp_mac.h src/gxclimag.c src/iimage.h src/gxsamplp.h src/gdevmacxf.c src/gdevmac.c src/gsiparam.h src/gdevmac.h]
2008-05-21T19:05:31.529144Z Ray Johnston
Reduce the GS_IMAGE_MAX_PLANES to a sane number. The image cannot have more planes than the number of CLIENT_COLORS we support (plus 1 for alpha). This cures a stack overflow seen with the multi-threaded rendering on Windows.[src/gsiparam.h]
2008-05-21T18:27:42.905572Z Michael Vrhel
Fix for 689811. Enables custom color callback when banding of images is occurs. DETAILS: This was a simple fix which puts the callback structure address into gslib_ctx instead of in the graphic state. This fixes the customer's issue. The postscript interface for custom color remains as it was with this commit. Soon, in the future, we will be changing to a C API interface. There does remain an issue with respect to object type tagging. If high level images occur with banding, the object type is different than if there was no banding. Opening a new bug in regard to this.[src/gsnamecl.h src/gslibctx.c src/gxcmap.c src/iapi.c src/gslibctx.h src/gsncdummy.c src/gsciemap.c src/gscspace.c src/gsicc.c src/gscdevn.c src/gsnamecl.c src/gscie.c]
2008-05-21T18:13:13.037917Z Ralph Giles
Credit Behdad in the source.[src/gdevcairo.c]
2008-05-21T13:42:08.542151Z Igor Melichev
Fix (Type 1 hinter) : The missed flex hewristic malfunctioned. DETAILS : Bug 689821 "SegFault in gxhintn.c". The old code is buggy with a wrong index advance along a cyclic buffer range.[src/gxhintn.c]
2008-05-21T10:12:14.199391Z Igor Melichev
Enhancement (graphics) : Delay applying type 1 raster patterns until clist interpretation (continued 2). DETAILS : Bug 689848 "C stack overflow on Windows and hang on linux 176-01.ps". A patch from Ray, which eliminates an infinite recursion in the clist writer. A further improvement is coming soon about noodling the big data while copying a pattern into a page clist.[src/gxclutil.c]
2008-05-21T06:46:41.280250Z Ray Johnston
Ensure that the chunk wrapper is used on the non_gc allocator since doing GC on chunks will be disastrous. This is protection only and causes no difference since the only current client of the chunk wrapper is the multi-threaded clist rendering which wraps non_gc_memory.[src/gsmchunk.c]
2008-05-21T06:40:14.466289Z Ray Johnston
Upon one of our engineer's request, clean up the MSVC warning about use of an uninitialized variable.[src/gxclthrd.c src/gxclist.h src/gxclread.c]
2008-05-21T06:35:34.826889Z Ray Johnston
Add some missing information for the clist multi-threaded rendering files and the chunk memory wrapper. This cleans up (som of) the nightly regression nags.[doc/Develop.htm]
2008-05-21T01:37:08.729158Z Ralph Giles
Fix the autoconf build when libcairo isn't available. The device properly disabled in r8752.[src/configure.ac]
2008-05-21T01:26:49.215021Z Ralph Giles
Set properties on the new cairo device source file.[src/gdevcairo.c]
2008-05-21T01:24:45.439819Z Ralph Giles
Whitespace cleanup. Also comment out the warning about setlogop; this isn't important for most documents.[src/gdevcairo.c]
2008-05-21T01:24:44.147836Z Ralph Giles
Don't compare a NULL extension string.[src/gdevcairo.c]
2008-05-21T01:24:42.046903Z Ralph Giles
Rename the cairo device parameter CairoSurface to CairoOption. Better handling of libcairo errors. Add (untested) support for passing a libcairo context pointer through the CairoContext device parameter for rendering to a client drawable. Details: CairoSurface was renamed with the expectation that it will in the future take additional options that might not be surface specific. Also, the CairoSurface name was chosen with the idea that a client could pass a pointer to an already allocated cairo_surface_t, but it's just as easy to pass the result of calling cairo_create() on such a surface as a context pointer. Therefore we've added CairoContext and renamed the old CairoSurface parameter to CairoOptions. The new command line would be: gs -sDEVICE=cairo -sCairoOptions=ps -o - test.ps to set the output format to ps.[src/gdevcairo.c]
2008-05-21T01:24:40.923940Z Ralph Giles
Protect the use of pkg-config for libcairo.[src/configure.ac]
2008-05-21T01:24:38.762206Z Ralph Giles
New 'cairo' output device using the libcairo graphics library. Patch by Behdad Esfahbod. Details: This output device uses the LGPL cairo library to create file output in a variety of formats. Currently supported are png, svg, pdf, ps, eps. The output format can be specified with the CairoSurface device parameter. If this parameter isn't set, the device will guess based on the filename extension given in OutputFile. Thus, these two command lines are equivalent: gs -sDEVICE=cairo -sCairoSurface=svg -o tiger.svg examples/tiger.eps gs -sDEVICE=cairo -o tiger.svg examples/tiger.eps Other output formats are selected like so: gs -sDEVICE=cairo -o tiger.png examples/tiger.eps gs -sDEVICE=cairo -o tiger.pdf examples/tiger.eps gs -sDEVICE=cairo -o tiger.ps examples/tiger.eps Only vector drawing is implemented at this point; images and text are handled by fallback and will not give compact results. The resolution for rasterization is set by the -r parameter as usual.[src/Makefile.in src/configure.ac src/gdevcairo.c src/devs.mak]
2008-05-20T20:34:52.772461Z Ray Johnston
Add double inclusion protection to cure nag from nightly regression.[src/gsmchunk.h src/gxclthrd.h]
2008-05-20T16:18:40.306550Z Ray Johnston
Clean up properties to get rid of nightly regression warnings.[src/gsmchunk.c src/gxclthrd.c src/gsmchunk.h src/gxclthrd.h src/gdevsvg.c]
2008-05-20T00:52:25.121469Z Alex Cherepanov
Consider Index object in CFF font as empty if the offset element size is incorrect. Bug 689854, customer 580. DETAILS: The rationale behind this decision is that the index is, probably, not used when it is malformed but the file survives in the wild.[lib/gs_cff.ps]
2008-05-19T14:47:52.443966Z Igor Melichev
Enhancement (graphics) : Delay applying type 1 raster patterns until clist interpretation (continued). DETAILS : Bug 689807 "segfault with 09-34.PS". The last patch for the subject appears incomplete. This one allows to write and read null patterns. Debugged with 09-34.PS .[src/gsptype1.c]
2008-05-17T21:33:47.003946Z Alex Cherepanov
Permit opening of temporary files in the safe mode. Fix /invalidaccess error during interpretation of PDF 1.7 file collections in the safe mode. Bug 689847.[lib/pdf_main.ps src/zfile.c]
2008-05-17T12:58:01.814886Z Alex Cherepanov
Ignore annotation appearance stream when it has a wrong type i.e. not a dictionary. Bug 689839.[lib/pdf_main.ps lib/pdf_base.ps lib/pdf_draw.ps]
2008-05-17T01:02:02.764582Z Alex Cherepanov
Replace various access techniques to PDF annotations with 'knownoget' in preparation to fix the bug 689839.[lib/pdf_draw.ps]
2008-05-16T23:34:14.372367Z Ralph Giles
Add support for linecap/join and miterlimit.[src/gdevsvg.c]
2008-05-16T12:48:24.645580Z Alex Cherepanov
Use PDFScanRules to scan ToUnicode CMap. Fix a case where CMap stream has a name starting with 2 slashes that should not be parsed as an immediately evaluated name. Bug 689642, customer 870.[lib/pdf_font.ps lib/pdf_base.ps]
2008-05-16T00:05:42.149140Z Ralph Giles
Accumulate imaging state changes and write a new group only when drawing. Add support for the linewidth parameter. We're pretty close to properly handling tiger and other vector-only files.[src/gdevsvg.c]
2008-05-16T00:05:41.073469Z Ralph Giles
Correct stroke and fill attribute overrides based on the path type. Also includes some whitespace cleanup.[src/gdevsvg.c]
2008-05-16T00:05:40.066267Z Ralph Giles
Store clipping rectangles as a clip path and ignore other non-drawing paths.[src/gdevsvg.c]
2008-05-15T21:24:13.840635Z Ralph Giles
Set the document size and scale based on the page size and resolution from the device parameters.[src/gdevsvg.c]
2008-05-15T21:24:12.705572Z Ralph Giles
Return proper negative error codes on allocation failure. Also some minor formatting.[src/gdevsvg.c]
2008-05-15T21:24:11.342484Z Ralph Giles
Be explicit about clearing the current fill or stroke color when none is set.[src/gdevsvg.c]
2008-05-15T16:17:48.102316Z Michael Vrhel
Fix for previous commit. I had the wrong version number test in the define.[jbig2dec/config_win32.h]
2008-05-15T16:12:17.999197Z Michael Vrhel
Minor change in JBIG configuration file related to using Visual Studio Version 9 (2008). stdio.h has a definition for vsnprintf which conflicts with the define in config_win32.h[jbig2dec/config_win32.h]
2008-05-15T00:00:24.616940Z Marcos H. Woehrmann
Improve white-on-mask drawing mode. Details: This patch is provided by Hin-Tak (see bug 688372); his comments: This is a patch which I have created, to make the pxlmono/pxlcolor driver bebaves much better in the white-on-mask situation, without breaking normal drawing. I haven't quite work out all the details nor understand the reverse-mask-draw code properly yet, but this patch improves the situation a great deal, to the point all the icons are shown correctly except for having its background draw solid white rather than transparent[src/gdevpx.c]
2008-05-14T23:49:09.954483Z Marcos H. Woehrmann
Add support to pxlcolor and pxlmono for 24 bpp images. Details: Previous to this revision the pxlcolor and pxlmono devices would revert to using gx_default_begin_image() when bits_per_pixel==24, resulting in very large images. Now the image data is written directly into the pxl stream. In the case of pxlmono the image is converted to 8 bpp via the lum_*_weight values from gxlum.h.[src/gdevpx.c]
2008-05-13T19:52:08.912983Z Ralph Giles
Fix an incorrect curveto coordinate.[src/gdevsvg.c]
2008-05-13T18:47:23.939753Z Ralph Giles
Disable drawing in the SVG output device after the first output_page call. Even for single-page output we receive an erasepage fill after the showpage from gdevvec, which overwrites whatever we've drawn. This should be avoided in a more sophisticated way (ideally in the superclass) but this method is helpful for current development.[src/gdevsvg.c]
2008-05-13T18:47:23.279847Z Ralph Giles
Support setting stroke and fill colors.[src/gdevsvg.c]
2008-05-13T18:47:21.967012Z Ralph Giles
Import the current state of the svg driver. Doesn't work.[src/Makefile.in src/gdevsvg.c src/devs.mak]
2008-05-13T03:58:10.005759Z Alex Cherepanov
Reduce generation of garbage and the time spent on garbage collection by placing gstate into the 2nd element of the patterm implementation array in Adobe compatibility mode only. Ghostscript doesn't use this gstate at all. Bug 689488.[lib/gs_lev2.ps src/zmisc.c]
2008-05-11T17:00:17.181464Z Alex Cherepanov
Fix a bug that leaves a junk value on the stack for every empty row on the page during execution of a redefined showpage. Bug 689832. DETAILS: The bug was introduced in rev. 2602 and stayed undetected for a while because most files don't depend on the contents of the operand stack after executing showpage.[lib/ps2epsi.ps]
2008-05-10T22:02:03.546959Z Alex Cherepanov
Ignore OutputIntent attribute if it is not an array; recover a broken PDF file. Bug 689831.[lib/pdf_main.ps]
2008-05-09T16:44:54.615805Z Ray Johnston
Fix missing dependency that caused builds that included the 'bmpa' devices to fail because the locking memory code wasn't included. Currently PCL builds still had the bmpa devices included, so they failed.[src/lib.mak]
2008-05-09T14:00:44.027651Z Ralph Giles
uncodes 33 and 34 repeat a zero code length symbol id, not the previous symbol like runcode 32. Bug 689824. Thanks to Justin Greer for the fix.[jbig2dec/config.h jbig2dec/configure jbig2dec/jbig2_text.c]
2008-05-09T04:12:01.814716Z Alex Cherepanov
Reject incorrect ICC profile that has 0 offset in one of the tags and use alternate color space. Bug 689830.[icclib/icc.c]
2008-05-09T02:18:14.475665Z Ray Johnston
This is the "final" merge of the mtrender (multi-threaded clist rendering) branch into the trunk. The default behavior is still the same, i.e., the clist rendering is done in the same thread as the parsing (main thread). The 'gsmalloc' memory allocator now ALWAYS uses a mutex to lock accesses in case it is used by a multi-threaded client. This was determined to result is less than 1% performance hit on a single threaded client. Refer to the log messages on the mtrender branch for details on the design of the multi-threaded clist rendering, but the summary is that -dNumRenderingThreads=# (default 0) determines the number of background threads REQUESTED for rendering bands. If the platform doesn't support threads, or if there is an error starting the threads from the clist_ get_bits_rectangle_mt hook, single threaded rendering will be used. The number of threads may be less than the requested number if the number of bands is less than the request, or if there is an error setting up threads (as many as can be created, up to the request will be used). The -Z: debug switch emits status messages indicating how many threads are requested (-dNumRenderingThreads) and the number that is actually used. Many files show little if any improvement with multi-threaded clist rendering since they are dominated by the clist writing time, or by the time required to write the output. No files seen to date show a performance hit greater than aobut 3%. Setting NumRenderingThreads to a count higher than the number of CPU cores available does not seem to help or hurt much, but there is overhead (per page) with starting threads and allocating band buffers, so a very large count is not productive. The best performance seen on an Intel Core 2 Duo system, on a particular file is about a 75% performance improvement (completing the page in 57% of the single threaded time). This time did not include writing a file (output to /dev/null). In order to prevent memory mutex (locking) contention from slowing down multi-threaded clist rendering, each thread uses a 'chunk' wrapper on NON-GC the non-gc memory allocator. Each chunk allocator is thread-safe/instantiated, so the locking only occurs on chunk allocations to the wrapped (target) memory allocator. The 'BAND_LIST_STORAGE=mmeory' option has been supplemented to allow multiple concurrent threads to read the clist 'memfile'. The "autoconf" files (configure.ac and Makefile.in) have been improved to hook the 'posix' pthreads if available, so linux and Mac OS/X will be able to support the multi-threaded clist rendering.[src/gxclist.c src/gsmemlok.c src/gsmchunk.c src/gxclthrd.c src/gxclist.h src/configure.ac src/gsmchunk.h src/gxclthrd.h src/gxclread.c src/lib.mak src/gxclmem.c src/gxclmem.h src/gsmalloc.c src/Makefile.in src/gdevprn.c src/gsmalloc.h src/gdevprn.h]
2008-05-08T21:47:07.355557Z Ray Johnston
Use 'realtime' instead of 'usertime' for -Z: timing information. On some systems (Windows) these are equivalent, but on linux, 'usertime' is the time for the current thread which interferes with timing collection on different threads (multi-threaded rendering did not include any time for the threads). INCOMPATIBLE CHANGE, but this is only debug info.[src/imain.c]
2008-05-08T21:28:30.163536Z Ray Johnston
Allow some compile time constants that affect performance to be set as /D compiler flags (via XCFLAGS makefile macro). MAX_BITMAP_PATTERN_SIZE controls when the clist pattern accumulator is used, and on machines with a decent amount of RAM, the default of 1 Mb is too small and causes the slower clist method to be used too often. Setting this to 32 Mb is probably better on hosts. The GS_CLIENT_COLOR_MAX_COMPONENTS default of 252 is needed for Adobe CPSI compatibility and for RIPS that want to use a large number of DeviceN colorants, but this increases the size of some allocations and slows down performance and is much too large for printers. Setting this to 6 or 8 is probably plenty.[src/gxpcmap.c src/gsccolor.h]
2008-05-08T20:09:32.433652Z Ray Johnston
Fix MSVC warning -- mismatched type.[src/zchar42.c]
2008-05-08T19:56:33.932490Z Ray Johnston
Fix gcc warnings, unused variables and type mismatch, implicit declaration.[src/gximask.c src/gp_unix.c]
2008-05-08T19:35:26.683268Z Ray Johnston
Clean up gcc compiler warnings for unused 'st' and no prototype for gx_pattern_cache_free (from gxpcolor.h).[src/gxclrast.c]
2008-05-08T19:10:40.329127Z Ray Johnston
Add support for recursive mutex on posix. Multiple threads that perform 'locking' before calling an object's finalize need this to prevent deadlock if the finalize calls 'free'. This protection is standard on Windows, but PTHREAD_MUTEX_RECURSIVE attribute is not available on many systems. The method, using pthread_self and pthread_equal, was extracted from a web information page and tested on linux. NB: The multi-threaded clist rendering no longer needs this since the 'chunk' memory wrapper calls the 'finalize' function without locking, so the deadlock no longer occurs.[src/gp_psync.c]
2008-05-08T18:56:10.922303Z Ray Johnston
Fix memory leak observed with DEBUG=1 build on mtrender branch. The 'levels' and 'bit_data' of halftones were being leaked when halftones were set by the clist reader. DETAILS: Since the 'dht.rc' was filled with 0's, the rc.memory would cause the gx_imager_dev_ht_install to copy the order (mem_diff would be true). The gx_ht_copy_ht_order would make a copy, but the one passed in was never freed. Since the 'src' component information was cleared during the install, gx_ht_read_and_install needs to save a copy of the components so that the orders can be released.[src/gxdhtserial.c]
2008-05-08T18:40:31.637800Z Ray Johnston
Fix compiler warning due to missing prototype for strncmp.[src/zchar42.c src/int.mak]
2008-05-07T21:07:53.236295Z Igor Melichev
Enhancement (graphics) : Delay applying type 1 raster patterns until clist interpretation. DETAILS : Bug 689579 "Ghostscript generates a very, very large temporary file". The old code converts pattern fills into lots of constant color rectangles while writing to clist. The new code writes pattern data to clist and apply pattern during the clist playback. So here we complete the change started in revision 8655. New functions gx_dc_pattern_write_raster, gx_dc_pattern_read_raster implement color serialization for raster patterns. The old function gx_dc_pattern_write got minor changes about buffer localization. Minor chabge (gxclimag.c, gxclpath.c, gxclrect.c) : Propagated error codes. Also fixed a bug occasionally found in gxclrast.c . It caused a crash in some unusual conditions.[src/gsptype1.c src/gxclrast.c src/gxclpath.c src/gxclimag.c src/gxclrect.c]
2008-05-07T21:02:16.625138Z Igor Melichev
Fix (graphics) : Wrong pattern phase when pattern applies to a band with non-zero origin. DETAILS : The old code computes pattern phase modulo rep_width, rep_height. It appears wrong when pattern step is much bigger than the pattern bbox. Really the bbox determines the painting area as rep_width, rep_height, but the phase to be computed modulo pattern step. Besides that, the old code aplies a wrong sign, which is oposite to a band offset. This bug has no effect with Postscript interpreter, because currently patterns never apply after banding, but it will change with the next patch. With no banding the phase is always zero. Other interpreters may need additional improvements (we suspect they are bug-to-bug compatible).[src/gsptype1.c]
2008-05-07T09:15:27.593615Z Igor Melichev
Fix (graphics) : Imprecise pattern phase with negative cell origins (continued). DETAILS : The old code inaccurately converts floats to integers. The problem here is that (int)-0.13 == 0 but the math wants -1. It causes a 1 pixel bias with negative coordinates when argument is not integer. This isn't a first time when we fix a bug of this kind, and likely this one is not the last. This change is important for bug 689579. Debugged with the following commands : gswin32c.exe -dMaxBitmap=22000000 -r300 -dNOPAUSE -dBATCH-sDEVICE=ppmraw -sOutputFile=cur-b.ppm 245-07.ps gswin32c.exe -dMaxBitmap=100000000 -r300 -dNOPAUSE -dBATCH-sDEVICE=ppmraw -sOutputFile=cur-n.ppm 245-07.ps They must render same raster, but they didn't.[src/gxp1fill.c]
2008-05-07T06:25:34.508384Z Alex Cherepanov
Repait yet another broken PDF file that abbreviates /Indexed to /I in the color space array. Bug 689815.[lib/pdf_draw.ps]
2008-05-06T20:59:54.208603Z Alex Cherepanov
Fix and simplify implementation of operator Q. Collecting the path with the current ctm and re-playing it with the restored ctm transforms the path exactly as PDF needs. Bug 689812.[lib/pdf_ops.ps]
2008-05-05T19:51:17.293996Z Ray Johnston
Eliminate leaks caused by lost 'maskbuf' elements. Only the uppermost maskbuf is (currently) used by the pop_transparency_group that applies the mask, but the chain of maskbuf->maskbuf elements was never freed. This also improves performance (at least for the test case of bug 689534). Customer #870.[src/gdevp14.c]
2008-05-02T20:13:50.255816Z Igor Melichev
Fix (graphics) : Imprecise pattern phase with negative cell origins. DETAILS : The old code inaccurately converts floats to integers. The problem here is that (int)-0.13 == 0 but the math wants -1. It causes a 1 pixel bias with negative coordinates when argument is not integer. This isn't a first time when we fix a bug of this kind, and likely this one is not the last. This change is important for bug 689579. Here is a test for debugging it : << /PaintType 1 /PatternType 1 /TilingType 1 /BBox [0 0 60 60] /XStep 40 /YStep 60 /star { gsave 0 12 moveto 4 { 144 rotate 0 12 lineto } repeat closepath fill grestore } /PaintProc { begin 1 0 0 setrgbcolor 15 15 translate star 0 0 1 setrgbcolor 30 30 translate star 0 1 0 setrgbcolor -30 0 translate star 30 -30 translate star end %.break } >> [1 0 0 1 0 0] makepattern /Star4 exch def /Pattern setcolorspace Star4 setcolor clippath pathbbox exch pop 30 exch 4 copy = = = = rectfill showpage The old code gives different rasters for this test while banded and unbanded rendering.[src/gxp1fill.c]
2008-05-02T08:07:50.475340Z Ken Sharp
The revision 8621 which reinstated the comments, and updated encs2c.ps to generate them, placed the Id line in the wrong position relative to the licence and summary comments.[toolbin/encs2c.ps src/gscedata.h src/gdevpdtv.c src/gdevpdtv.h src/gscedata.c]
2008-05-02T02:19:57.012115Z Ralph Giles
Remove the testing instructions and file index. This was mostly obsolete, and the automated tests are fairly complete now.[doc/Testing.htm doc/Readme.htm toolbin/tests/check_docrefs.py]
2008-05-02T01:42:14.506521Z Ralph Giles
Fix various code policy warnings.[toolbin/msvcxml.bat src/gdevdjet.c src/aes.h toolbin/memory.py src/aes.c]
2008-04-30T19:06:59.803995Z Ralph Giles
Fix some warnings.[src/gsncdummy.c]
2008-04-30T04:51:02.115275Z Michael Vrhel
Fixed issue with NULL pointer in gsncdummy.c when ICC color space was used in custom color callback. Also, made the object based coloring an option define and fixed minor header issues.[src/lib.mak src/gxcmap.c src/gsncdummy.c src/gscspace.c src/gscdevn.c src/gsnamecl.c]
2008-04-30T01:35:18.247997Z Ralph Giles
Fix some warnings.[src/gdevp14.c]
2008-04-29T06:34:17.581619Z Michael Vrhel
Fix for bug 689806 which was introduced when fixing bug 689803. The current bug was related to a CIELAB image with a colorspace ICC profile (LAB to LAB). The image data was incorrectly being normalized between 0 and 1 (float). It is now properly normalized to the range of the CIELAB ICC space. There still exists an issue with this file as absolute colorimetry should be used. This is the source of the current difference between AR and GS. However, the image is no longer black now but should match the GS result prior to rev 8664.[src/lib.mak src/gxicolor.c]
2008-04-29T00:31:25.778368Z Alex Cherepanov
Make pf2afm utility friendlier to Windows users: check for .pfa or .pfb extensions case-insensitively and accept backslash as a path separator. Bug 689804.[lib/pf2afm.ps]
2008-04-28T17:48:26.844493Z Alex Cherepanov
Refine calculation of di member of a trap_line structure to avoid integer overflow when the source operands are big. Bug 689448.[src/gdevddrw.c]
2008-04-28T16:26:35.071571Z Ralph Giles
Fix a minor header dependency skew.[src/int.mak src/gsicc.c]
2008-04-28T06:47:28.650051Z Michael Vrhel
Undo accidental commitment of ENABLE_CUSTOM_COLOR_CALLBACK (has callback) code.[src/gsicc.c]
2008-04-28T05:20:54.026239Z Alex Cherepanov
Implement spacial handling of transfer functions during Gray to CMYK conversion: ignore transfer functions for non-black components. Bug 688360. DETAILS: On this topic, section 7.3 of PRLM-3rd (page 494) says: "Note: When the current color space is DeviceGray and the output device's native color space is DeviceCMYK, the interpreter uses only the gray transfer function. ... This special case exists for compatibility with existing applications." There is a similar comment in section 6.3 of the PDF 1.6 spec. (page 456).[src/lib.mak src/gxcmap.c src/gxcspace.h src/gscspace.c src/gxdevcli.h]
2008-04-27T15:21:10.051210Z Alex Cherepanov
Check the error code early. Fix a SEGV in PDF file with invalid ICC profile that was introduced by the rev. 8664.[src/zicc.c]
2008-04-26T04:35:56.962801Z Michael Vrhel
Fix for bug#689803. Set bounds correctly when input data is LAB and color also includes a colorspace source profile (e.g. LAB to LAB).[src/int.mak src/gsicc.c src/zicc.c]
2008-04-23T14:06:11.166309Z Igor Melichev
Fix (graphics) : Convert imagemask into a clipping path when painting a big pattern. DETAILS : Bug 689440 "PostScript file generates infinitely large temp file". In the past we implemented a conversion of imagemask intoi a clipping path for a faster painting a shading color. Now we do same for big type 1 patterns. 1. Enhanced the condition in gximask.c for passing big patterns. 2. In gximask.c filter out degenerate rectangles, which can't be painted with gx_device_color_fill_rectangle. 3. Set a pure black color in gsimage.c, because patterns can't convert with gx_device_black. 4. In gxacpath.c added the default copy_mono method to the clip list accumulator device in order to handle imagemask with the pure color set by (3). 5. In gximask.c added a proper setup of device width and height to clip list accummulator, because gx_default_copy_mono needs them. 6. In gximask.c gx_device_retain is now called on errors. The old code does not call it, and we think it caused memory leaks in some rare cases. This patch changes the behavior with shadings, because the old code paints imagemask with the shading color to clip list accummulator. The new code does with pure black, so that now the clipping is not restricted with the shading area or the shading BBox. But we believe that the final result should be same and the performance should be some faster. Note we keep the call to gx_dc_pattern2_clip_with_bbox_simple in gx_image_fill_masked_end rather now it is always idle. Doing so for the case if this change will need undoing for shadings. The new code doesn't use the writing of big patterns into clist, which was done with recent revision 8655. That change appears unneccessary for this particular bug. However we want to keep it in HEAD branch because it may be useful for further impeovements when imagemask produces a too big clipping list. This patch causes a minor raster difference with Bug688396.pdf . Delaying it for better times.[src/gsimage.c src/gxacpath.c src/gsptype1.h src/gximask.c]
2008-04-23T00:30:10.271302Z Alex Cherepanov
Since we always write a complete "classic" xref, the Trailer may need to be adjusted: (1) remove keys that pertain to xref-streams and hybrid-xref PDFs; (2) if it's a PDF stream, turn it into a PDF dict by removing keys used for PDF streams (both standard and GS-specific), and the executable attribute. Thanks to SaGS for the patch. Bug 688152.[lib/pdfwrite.ps lib/pdfopt.ps]
2008-04-22T17:18:03.467843Z Ralph Giles
Set native line endings on gsnamecl. This should remedy patch-portability problems.[src/gsnamecl.h src/gsnamecl.c]
2008-04-21T14:53:38.640663Z Igor Melichev
Enhancement (graphics) : Delay applying big patterns until page clist interpretation. DETAILS : This is a preparation for fixing the bug 689440 "PostScript file generates infinitely large temp file". The old code decomposes the imagemask into rectangles, each of which decomposed the pattern color into a huge list of rectangles. See more about the old code in Comment #11 of the bug 689440. Now we delay the decomposition until the page clist playback. This patch reduces the clist file size for the bug 689440 from 355GB to an acceptable size of 316Mb. A further shortening is possible as explained in (5) below. But the rasterization time is still unacceptably long - more than 48 hours. It will be improved in a next step with converting imagemask with pattern color into a painting of a pattern color with a mask clip device. 1. The old functions gx_dc_pattern_write, gx_dc_pattern_read actually are generic functions for multiple color types, which simply return an error. Renamed them into gx_dc_cannot_write, gx_dc_cannot_read. 2. Implemented new gx_dc_pattern_write, gx_dc_pattern_read for clist-based patterns. They copy pattern clist data to/from page clist. Currently this code doesn't try to compress the data, but probably we'll need to do that. 3. Changed a condition in gxclimag.c to pass imagemask with a clist-based pattern color to clist writer. Also moved some checks to provide image matrix to be computed when the new condition is true. 4. Added more functions into gxclist.c, gxclist.h for accessing data of a clist-based pattern. 5. gx_dc_pattern_read now constructs pattern cache and stores the clist-based pattern "tile" to it. The clist reader releases the cache before exiting a band. We will need an optimization agains redundant writing of patterns into page clist. This necessary optimization to be done in a next step. 6. Propagated error codes in gxclread.c, gdevfax.c for easier debugging. 7. Improved debug printing in gxp1fill.c to designate recursive calls to clist interpreter when a clist-based pattern in interpreted while a page clist playback. 8. Added new accessors into gxpcmap.c, which are needed to access pattern cache while a page clist interpretation. 9. Updated dependencies in makefiles. 10. Fixed the dependenco of gxdcolor.c on gxdevcli_h, which was missed before this change. 11. Added the pattern color type into the list in gxdcolor.c, because now we need to write it into clist. An old comment reads that it was not included against unuseful reference to pattern stuff in a Postscript Language Level 1 build. The reference now appears, and this is unfortunate. We think that level 1 builds are not important in nowadays. On necessity it may be improved in a separate change.[src/gsptype1.c src/lib.mak src/gsptype2.c src/gxclist.c src/gxpcmap.c src/gsptype1.h src/gxdcolor.c src/gxclist.h src/gxpcolor.h src/gdevfax.c src/gxdcolor.h src/gxp1fill.c src/gxclrast.c src/gxclread.c src/gxclimag.c]
2008-04-21T11:58:27.801424Z Russell Lang
Change the name of a utility used to build Windows distribution so it doesn't get treated as a setup program by Windows Vista. Change reference to obsolete doc/Public.htm to doc/COPYING. Allow makefile to recognise a later patch of the Microsoft Visual Studio 2005 make utility.[src/winint.mak src/msvc32.mak]
2008-04-20T23:40:49.333141Z Alex Cherepanov
Ignore DSC comments in nested EPS files and data blocks. Thanks to William Bader for the patch. Bug 689791. RIFFERENCES: None[src/zdscpars.c]
2008-04-20T04:51:21.386273Z Alex Cherepanov
Skip bogus endobj operators inside the object stream. Bug 689795, customer 870. RIFFERENCES: None[lib/pdf_base.ps]
2008-04-19T18:26:31.622080Z Ray Johnston
Fix a problem when the default transfer function of the target printer is not in global space. Seen with Konica Minolta (QMS PostScript). Fixes 'invalidaccess' error caused by attempting to store a 'local' currentcolortransfer into a 'global' array. NB: The 'cp2g' will then convert the array to global which is needed to store into InitialExtGState.[lib/opdfread.ps]
2008-04-19T18:18:34.484562Z Ray Johnston
Add diagnostic information for start of rendering (Outputpage start) so that parsing as well as rendering time can be observed with -Z: (gs_debug[':'])[src/zdevice.c]
2008-04-19T12:48:15.825215Z Alex Cherepanov
Fix PDF transmuting utilities. Remove '#' from the list of characters that may occur in PDF names unescaped. Bug 689770.[lib/pdfwrite.ps]
2008-04-19T04:49:20.031557Z Alex Cherepanov
Add recognition of abbreviated filter names to the PDF inflation utility.[toolbin/pdfinflt.ps]
2008-04-19T03:43:21.791168Z Alex Cherepanov
Implement loading of OpenType CFF font as a CIDFont resource in PDF reader. Bug 689763, customers 531, 850. DETAILS: PDF can use OpenType font with ordinary CFF data as a CIDFont. Such a font is referenced by /CIDFontType2 and may have /CIDToGIDMap table. The following changes have been done to support this usage. - A flag that forces CIDFont generation was added to CFF font loader. - When the flag is on, CFF font is converted to a Type 9 CIDFont. - The FontSet resource is returned by the value from the font loader because it can be of either Font or CIDFont type, - Since CIDMap has no effect on CIDFont Type 9, CIDToGIDMap is interpreted by PDF reader to modify GlyphDirectory to the same effect. - Unused CIDMap is no longer generated for CIDFontType2 objects that are not TrueType CIDFont resources.[lib/pdf_font.ps lib/gs_cff.ps lib/pdf_ops.ps]
2008-04-17T17:40:05.253185Z Ralph Giles
Use -O0 with the autoconf debug build instead of -O which seems to hide some symbols.[src/Makefile.in]
2008-04-17T17:31:57.458743Z Ralph Giles
Allow the ENABLE_CUSTOM_COLOR_CALLBACK preprocessor macro to be set from the compiler command line.[src/gsnamecl.h]
2008-04-15T04:47:24.255743Z Alex Cherepanov
Repair broken CFF CIDFont stream generated by "Exstream Dialogue Version 6.2.004m (DBCS)". Bug 689753, customer 353. DETAILS: 1. The CFF stream has a single Private DICT block but refers to it twice. New version caches the DICT block that correspond to the Private stream. 2. The operands of ROS operator are too small and correspond to some random values from the standard string table. The patch doesn't attempt to find the right values nut converts the fetched names to strings to avoid a typecheck error during resource handling.[lib/gs_cff.ps]
2008-04-14T22:57:22.422088Z Michael Vrhel
Fixed Colorspace enumeration order for debug printing.[src/gscspace.h]
2008-04-10T23:43:36.714953Z Ralph Giles
Increase the static command and path buffers in echogs to deal with longer build paths. Bug 689788.[src/echogs.c]
2008-04-10T22:08:20.215716Z Ralph Giles
Use the correct GEN directory references. Bug 689788.[src/jbig2.mak src/jasper.mak]
2008-04-10T07:38:46.911876Z Ken Sharp
Fix (PDF interpreter): Improve omission of .notdef glyphs. Details: Bug #689757 "Extra square characters rendering PDF file". Improvement to change 8217, makes the test for .notdef more specific at Igor's suggestion. Now matches exactly the string ".notdef" or strings beginning ".notdef~GS~" in order to include any .notdef modified by the PDF interpreter when it appears multiple times in an Encoding.[src/zchar42.c]
2008-04-10T05:43:43.466565Z Igor Melichev
Enhancement (graphics) : Generalize prototypes of color serialization methods for big color data. DETAILS : This is a preparation for fixing the bug 689440 "PostScript file generates infinitely large temp file". The old serialization methods assume that color data can fit into a small buffer. Now we want to drop this constraint to allow to write big patterns into clist. See comment in code for details. This change is algorithmically equivalent. This patch adds a new argument to color serialization methods. For a while the new actual parameter is always 0, and the (untrivial) methods check for it.[src/gsptype1.c src/gxwts.c src/gxcht.c src/gxdcolor.c src/gxdcolor.h src/gxclrast.c src/gxclpath.c src/gxht.c]
2008-04-09T15:28:45.087056Z Ken Sharp
Fix (PDF interpreter): Optionally omit rendering of /.notdef glyphs from TrueType fonts. Details: Bug #689757 "Extra square characters rendering PDF file". When rendering glyphs in a TrueType font, and the glyph is not present in the font, GS (correctly) draws the /.notdef glyph (or glyph ID 0) instead. Under some conditions, however, Acrobat does not do so, but does leave a 'gap' apparently corresponding to the width of the original glyph (if a /Widths array is present), or the width of the /.notdef glyph. Exactly what causes Acrobat to do this is unclear. In the thread for bug 687929 it was suggested that Acrobat was substituting a standard font with a /.notdef defined as an empty glyph. However changing the font name had no effect. Using a pdfwrite-produced PDF file, if I remove the symbolic flag from the font, and any direct reference to /.notdef in the Encoding /Differences array, then Acrobat does not display the /.notdef glyph. However, starting with a Distiller-produced PDF file, and either altering the font to symbolic, or adding a direct /.notdef to the Encoding, or both, makes no difference, Acrobat still does not render the /.notdef glyph. The behaviour of Acrobat is probably technically incorrect, but we need to attempt to render files similarly, if at all possible. However, since the appearance of a /.notdef is usually indicative of an error, this has been made optional. We can't substitute a space glyph for the /.notdef as has been suggested, because we can't guarantee the existence of a space glyph (eg Arabic, which has no space) and can't guarantee that the space makes no marks even if present. However, we still want to apply the Width of the glyph, so that spacing works out correctly, if we simply skip the /.notdef glyph then words may collide, as in the case of the file for this bug. This means we must run the glyph through the text routines, as the width is applied there. A new user parameter '/RenderTTNotdef' controls whether glyphs named /.notdef in a TrueType font should be rendered or not. This is also controlled by a systemdict parameter /RENDERTTNOTDEF. The PDF interpreter will set the user parameter to the same value as the systemdict parameter, allowing this to be controlled from the GS command line. The user parameter defaults to 'true' which renders TrueType /.notdef glyphs (so that these are properly rendered in PostScript), the RENDERTTNOTDEF systemdict parameter defaults to 'false', which is used by the PDF interpreter to set the user parameter, and therefore disables rendering of TT /.notdef glyphs in PDF files.[lib/pdf_main.ps src/icontext.c src/zchar42.c doc/Use.htm src/icstate.h src/zusparam.c lib/gs_init.ps]
2008-04-09T06:16:50.593621Z Alex Cherepanov
Avoid a spurious warning "CS/cs (setcolorspace) operand not a name". Acept array values for /CS attribute. Bug 689738.[lib/pdf_draw.ps]
2008-04-08T21:55:08.170308Z Ralph Giles
We no longer have any outstanding port requests. Bug 689745.[doc/Projects.htm]
2008-04-06T21:42:34.379385Z Alex Cherepanov
Use operator .execn to keep the operand stack size and .pdfcount value consistent during /BuildChar execution. Operator scn depends on the correct value of .pdfcount. Bug 688796.[lib/pdf_font.ps]
2008-04-06T07:53:33.800999Z Alex Cherepanov
Fix PDF empty stack count (pdfemptycount) in the tiling pattern. Operator scn depends on the correct value of pdfemptycount. This bug was introduced in the rev. 8308. Bug 689776.[lib/pdf_draw.ps]
2008-04-04T11:30:17.034942Z Till Kamppeter
Added the new files of OpenPrinting Vector 1.0.[contrib/opvp/opvp_0_2_0.h contrib/opvp/opvp.h]
2008-04-04T11:28:22.909246Z Till Kamppeter
Updated the OpenPrinting Vector driver interface ("opvp", "oprp") to version 1.0.[contrib/opvp/opvp_media.def contrib/opvp/opvp_common.h contrib/opvp/gdevopvp.c]
2008-04-04T08:53:57.893326Z Ken Sharp
Fix (pdfwrite): Incorrect cmap aubtables written for 'non-symbolic' TrueType fonts, when PDF/A output is enabled. Details: Bug #689754 "Substituting .notdef for "german umlauts" when generating PDFA". Normally when writing TrueType fonts GS emits 'symbolic' TrueType fonts, and correctly outputs both a 1,0 and 3,0 cmap subtable (with appropriate character offsets, see section 5.5.5 of recent PDF specs). However, when PDF/A output is enabled, and the TT font to be output only contains glyphs from the Adobe Latin set, and these are ordered in accordance with that set, then we emit a 'non-symbolic' TT font. (For PDF/A we do not emit 'symbolic' fonts, if the font is not 'non-symbolic' then we write a CIDFont instead.) However, when writing the non-symbolic font, we continued to write the same cmap subtables. Acrobat does not use the 3,0 subtable with non-symbolic fonts, and falls back to the Mac Roman (1,0) subtable instead. For many glyphs this works correctly, but if the font is WinAnsi compliant, and the glyph is one of those for which the character position differs between Mac and Windows, then the glyph cannot be found by Acrobat. By writing a 3,1 (Windows Unicode) cmap subtable we can ensure this does not happen, as Acrobat will use this in preference to the 1,0 subtable. (gdevpsf.h) Add a new TrueType writing control flag WRITE_TRUETYPE_UNICODE_CMAP This is used to control whether we write a 3,0 or 3,1 cmap subtable. (gdevpdtb.c) When setting options for TrueType font writing, if we are writing PDF/A, then set the new flag so we get a 3,1 Unicode subtable. (gdevpsft.c) Create new boilerplate for a type 6 Mac Roman subtable, followed by a type 4 Windows Unicode subtable. Create a new routine 'write_unicode_cmap_6' which uses the new boilerplate to write this kind of subtable. In write_cmap, check if we have been asked to write a Unicode cmap subtable, and use the new routine if so. Do not bias the character codes if writing a Unicode table.[src/gdevpdtb.c src/gdevpsft.c src/gdevpsf.h]
2008-04-04T08:39:33.625568Z Ken Sharp
Fix (pdfwrite): code tidy up. Details: Bug #689712 "macro expanded unnecessarily and undocumented .h file". No functional changes, merely code reordering and tidying up. (encs2c.ps) Modified to write the current license boilerplate and a small additional comment referring developers to this file should they wish to modify the generated files. Modify the output to gdevpdtv.c to #include gdevpdtv.h. (gscedata.h) (gscedata.c) (gdevpdtv.c) (gdevpdtv.h) Update with output from modified encs2c.ps (gdevpdtf.h) Remove the 'gs_private_st_basic..' macro, thus preventing its unnecessary expansion and inclusion in several .c files. (gdevpdtb.c) Move the macro 'gs_private_st_basic(st_pdf_base_font...' into this module, where it is actually used.[toolbin/encs2c.ps src/gdevpdtb.c src/gscedata.h src/gdevpdtv.c src/gdevpdtf.h src/gdevpdtv.h src/gscedata.c]
2008-04-04T01:02:17.399302Z Ralph Giles
Add the rinkj driver to the default autoconf build under "ETS" devices. It's not intended for production use, but this will help prevent bit rot. Related to bug 689780.[src/configure.ac]
2008-04-04T01:02:16.708266Z Ralph Giles
Minimal changes to gdevrinkj.c so that it compiles. As far as I can tell, the version in source control has never worked.[src/gdevrinkj.c]
2008-04-04T01:02:16.013247Z Ralph Giles
Include stdlib.h for malloc and free in the rinkj device. Bug 689780.[src/rinkj/rinkj-byte-stream.c]
2008-04-01T00:28:17.665464Z Alex Cherepanov
Fix incorrect scanline length calculation in 1 bit/component images on pswrite and epswrite devices. The bug was introduced in rev. 8233. Bug 689771, customer 73.[src/gdevps.c]
2008-03-31T23:53:28.505732Z Ralph Giles
Don't override the memory pointer set by the client when initializing the luratech jpx decoder.[src/sjpx_luratech.c]
2008-03-31T23:08:41.231868Z Ralph Giles
Do not invoke the s_jpxd_template set_defaults method if it is null. Fixes bug 689743, whose attachment segfaults with the luratech decoder for which this method is not implemented.[src/zfjpx.c]
2008-03-31T23:00:55.454967Z Igor Melichev
Fix (graphics) : Stroke width was wrong for short segments. DETAILS : Bug 689742 "Nearly missing dotted lines with anisotropic resolution". Rather the bug title mentions anisotropic rendering, the problem appears with isotropic one as well. The bottom of the problem is that the function width_is_thin used the dash longitude to know its direction, which gives an incorrect (zero) result for vertical segments of zero length. That method became obsolete since revision 7706, which intorduced the precise dash direction is a special data field. Using it now for the right computation of the width.[src/gxstroke.c]
2008-03-28T16:30:25.778081Z Igor Melichev
Fix (graphics) : rectfill applied a wrong path adjustment. DETAILS : Bug 689361 "Text has white stripes and missing parts at 100 dpi". Ghostsctript applies path adjustment as an implementation of "any part of pixel inside" filling rule. However it was wrong for rectfill : the lower adjustment was too wide, causing extra pixels to paint when the lower coordinate of the rectangle falls to pixel center. Besides that, the X adjustment was applied to Y axis.[src/gsdps1.c]
2008-03-28T06:36:49.751300Z Alex Cherepanov
Improve detection of transparency usage. Search for transparency featires in the resource chain of annotattion appearance streams. Bug 689764, customer 531.[lib/pdf_main.ps]
2008-03-27T08:37:58.577822Z Ken Sharp
Fix (pdfwrite): endstream/endobj not always emitted PDF/A compliant. Details: Bug #689755 "Keywords endstream and endobj not always preceded by EOL when generating". The PDF/A specification mandates that the endstream and endobj operators are always preceded by an EOL character (in the spec, EOL = carriage return, linefeed, or carriage return/linefeed pair). (gdevpdfb.c) (gdevpdfu.c) (gdevpdti.c) Ensure all endstream operators are preceded by a '\n' if we are producing PDF/A. (gdevpdfo.c) Add '\n' to the end of array and dictionary objects in cos_array_write and cos_dict_write, if we are producing PDF/A. This ensures that endobj is always preceded by a EOL as other object types already conform.[src/gdevpdfo.c src/gdevpdfb.c src/gdevpdfu.c src/gdevpdti.c]
2008-03-26T14:02:02.746186Z Ken Sharp
Fix (vector device): Operation order could result in failure to apply clipping. Details: Bug #689469 "Incorrect clipping operation in vector output". From the patch supplied by Osamu Mihara. In gdev_vector_stroke_path and gdev_vector_fill_path, clipping was performed after a number of other operations. If these failed, the clipping was not applied, apparently causing problems for some devices (eg OpenPrinting Vector Printer). (gdevvec.c) Execute the clip operation before other operations to ensure that the clip is applied, even if the later operations fail.[src/gdevvec.c]
2008-03-25T05:26:24.097873Z Alex Cherepanov
PDF font descriptor may be shared between CID and simple fonts. We cache the font object in the font descriptor dictionary. To prevent collision, use different keys to store font and CIDFont objects. Improve the fix for the bug 689301.[lib/pdf_font.ps]
2008-03-24T20:02:07.895385Z Igor Melichev
Fix (clist writer) : Smaller tiles for strip_copy_rop (continued). DETAILS : The old code sometimes tried to write a degenerate rectangles to clist. It happened since revision 8581 due to inaccurate coding. Should fix ghostpcl regression happened on March 23, 2008 .[src/gxclimag.c src/gxclrect.c]
2008-03-24T04:17:47.859439Z Alex Cherepanov
Equivalent transformation of the PDF font handler to improve readability in preparation for the PDF font overhaul.[lib/pdf_font.ps]
2008-03-23T07:50:43.652322Z Igor Melichev
Fix (vector device): %pipe% IO device being opened as seekable (continued). DETAILS : Revision 8602 caused an MSVC warning, which is now fixed.[src/gdevvec.c]
2008-03-22T21:55:00.988313Z Igor Melichev
Fix (clist writer) : Smaller tiles for strip_copy_rop. DETAILS : Bug 689588 "Unexpected InternalOverflow in ReadImage". When strip_copy_rop recieves a big tile, it is being subdivided into line tiles to fit into the clist buffer. However the line tile can be too big as well. The new code narrows the line tile with the size of the rectangle to be painted. For details see comments added into gxclrect.c . Minor change (gdevddrw.c, gdevmr8n.c) Added visual trace commands for easier debugging.[src/lib.mak src/gdevddrw.c src/gdevmr8n.c src/gxclrect.c]
2008-03-21T05:07:53.304009Z Igor Melichev
Fix (Windows application) : Provide a better visual trace support interface for use with other interpreters. DETAILS : This minor change doesn't change any behavior.[src/dwtrace.h src/dwtrace.c]
2008-03-20T10:20:17.499008Z Ken Sharp
Fix (pdfwrite): pdfwrite embedded TrueType/Type 42 fonts which specifically forbid embedding. Details: Bug #689693 "GS embeds licensed fonts when generating PDF". For Type 42 fonts, in order to prevent embedding fonts with license restrictions we need to retrieve and honour the /FSType key if present in the FontInfo dictionary of the font. We also need to check the embedding status of TrueType fonts read from disk in a similar fashion to Type 42 fonts downloaded in the course of the job. Finally, when writing a TrueType font to a PDF file, we need to preserve any existing embedding rights by setting fstype appropriately in the OS/2 table. It is possible to permit font embedding even when the embedding rights are non zero and we should preserve these. (gxfont.h) Add a new parameter, EmbeddingRights, and a new flag FONT_INFO_EMBEDDING_RIGHTS, to the gs_font_info structure. (zfont.c) In zfont_info, if we request the EmbeddingRights, and the font has a FontInfo dictionary, retrieve the FSType if present. (gdevdtf.c) When determining whether a font may be embedded, retrieve the font info, check the 'members' structure member after retrieving font info to see if the EmbeddingRights member has been updated. Assume embedding allowed if the member has not been updated. (gxfont42.h) Add a new member os2_offset to the gs_type42_data structure, to allow us to read from the OS/2 table later. (gstype42.c) In gs_type42_font_init, when reading the TrueType Table directory, store the offset to the OS/2 table. In gs_truetype_font_info, if the caller has requested the embedding rights and they haven't already been retrieved from an FSType entry in the FontInfo dictionary, get the OS/2 table and pull the fstype value from there. (gdevpsft.c) When writing a TrueType font, and we don't have an OS/2 table to copy (appears to always be the case), check to see if we have any embedding rights information in the original font, and preserve it if so by setting the fstype entry in the OS/2 table.[src/gxfont42.h src/zfont.c src/gdevpdtt.c src/gstype42.c src/gdevpsft.c src/gdevpdtf.c src/gxfont.h]
2008-03-19T10:09:21.671968Z Ken Sharp
Fix (vector device): %pipe% IO device being opened as seekable. Details: Bug #689428 "‘gs -sOutputFile=%pipe%cat’ doesn't work". Based on the patch supplied by Dan Villiom Podlaski Christiansen. (gsdevice.c) in gx_device_open_output_file, if the parsed out iodevice is '%pipe%', then open the output 'file' non-seekable. (gdevvec.c) Not strictly related, but gdev_vector_open_file_options could use 'fclose' on a stream opened with gx_device_open_output_file. Altered to use gx_device_close_output_file instead.[src/gdevvec.c src/gsdevice.c]
2008-03-16T22:25:13.694561Z Alex Cherepanov
Handle TT fonts that have short post table with less than 256 glyphs. Pad the generated Encoding vector with /.notdef glyphs. Bug 689515, customer 700.[lib/gs_ttf.ps]
2008-03-15T23:59:48.788786Z Alex Cherepanov
Work around a bug in the PS interpeter by not using nulldevice in the PDF interpreter where it isn't really needed. Bug 689751. DETAILS: PS interpreter seems to fall into an infinite loop running charpath when the font is composite and the curent device is nulldevice.[lib/pdf_ops.ps]
2008-03-14T05:40:11.023910Z Marcos H. Woehrmann
Fixed duplexing for ljet3d and ljet4d devices; thanks to karsten@sengebusch.de for the changes. Fixes bug 687531. No regressions expected, since neither device is tested by the regression suite.[src/gdevdjet.c src/gdevdljm.c]
2008-03-13T07:18:46.618081Z Igor Melichev
Fix (graphics) : A bug in the pattern color serialization. DETAILS : Patch from Alex mentioned in the bug 689731 and unrelated to that bug.[src/gsptype1.c]
2008-03-12T22:32:03.336468Z Igor Melichev
Fix (graphics) : Optimize filling a path with a shading color (continuewd 3). DETAILS : Bug 689748 "gs segfaults". An unitialized variable since rev 8510. We had no test files for that branch, now got one.[src/gxfill.c]
2008-03-11T18:32:33.104151Z Ray Johnston
Fix MSVC makefile for the 'Big console mode EXE' case when COMPILE_INITS=1. Also minor cleanup to gs.mak 'clean' target and redundant dependency in ugcclib.mak. MSVC build problem noted by customer #531.[src/ugcclib.mak src/gs.mak src/msvc32.mak]
2008-03-10T02:18:38.654568Z Alex Cherepanov
When the font has no /FontBBox but provides character width through /Metrics dictionary, use them instead of the calculated width. The old code did so only when both the width and side bearings were defined. Bug 689740, customer 353.[src/zchar1.c]
2008-03-09T13:34:51.534239Z Igor Melichev
Fix (transparency) : Transparency compositor device recreation was incorrect. DETAILS : This problem was apparently detected when working on another problem. The pdf14_recreate_clist_device code was wrong. Regularly we never call that function, because PDF interpreter creates the transparency compositor device once per page. Nevertheless we store the right code since it is debugged.[src/gdevp14.c]
2008-03-07T13:39:35.783627Z Igor Melichev
Fix (bbox device) : box_fill_path needs as path for shfill. DETAILS : Since revision 8017 the function gs_shfill includes a branch for a faster handling of the Postscript operator shfill, which does not provide a path to fill. It uses the clipping path instead. The bbox device appears to be incompatible with that optimization. This patch adds a special branch to bbox device to handle a shading fill with no path. Please note that since revision 8017 the call dev_proc(dev, pattern_manage)(dev, gs_no_id, NULL, pattern_manage__shfill_doesnt_need_path) must return a proper information about the device's fill_path method. In most case it is doe with the default implementation gx_default_pattern_manage, but the bbox device ises gx_forward_pattern_manage instead, which appears wrong for bbox_fill_path. We decided to add an optomized branch rather than apply the slow general method.[src/gdevbbox.c]
2008-03-07T09:42:38.021120Z Ralph Giles
Correct a default return value. Follow on to Bug 689569. Also rename a variable to match the jbig2dec version of the same call.[src/sjbig2_luratech.c]
2008-03-05T23:35:50.165171Z Igor Melichev
Fix (clist) : Some transparency compositor commands don't need CTM. DETAILS : The old code writes CTM with each transparency compositor command. Actually it is only needed with begin_transparency_grup and begin_transparency_mask. So we can skip CTM with when writing other commands to shorten the clist file. Note clist reader now sets zero CTM when reading transparency compositor command with no CTM. We believe it is useful because subsequent graphics objects need to restore CTM of a containing group. See also comments added in code.[src/gdevdbit.c src/gdevp14.c]
2008-03-04T20:56:48.308882Z Igor Melichev
Fix (clist) : Crop transparency commands while clist writing, step 4. DETAILS : This provides a right group bounding box for transparency masks. Instead that the old code used the container's group bbox, which may be much bigger causing a performance leak.[src/gdevp14.c]
2008-03-03T20:16:06.744980Z Igor Melichev
Fix (images) : Revert an unintentional change to siscale.c . DETAILS : When doing the revisoon 8530, a macro was expanded in siscale.c for a debug purpose. This change was committed by error, reverting it now.[src/siscale.c]
2008-03-03T16:01:12.306842Z Igor Melichev
Fix (clist) : Crop transparencsy commands while clist writing, step 3. DETAILS : This really crops transparency compositor commands with bands that are covered by the transparency bbox. Actually the statement above has one exception. When a transparency bbox covers more that 2/3 of all bands, we still write the commands to the "all bands" list for a shorter clist file. We noticed that the clist playback time strongly depends on the file size. 1. The new method gs_composite_type_procs_t::get_cropping replies what bands are covered by the compositor. When it gives a non-trivial result, clist_create_compositor writes the compositor command to those bands, which are covered with the cropping (Exception : if too many bands are covered, it writes the command to the "for all bands" list). 2. Since some bands skip some compositor commands, while clist reading the association of masks to groups becomes more complex. Before this patch each group was associates with the mask, which was created immediately before it at same transparency stack level. After this patch some groups may be skipped, so that clist reader may recieve extra masks, because masks are still use the container's group bbox. For skipping such extra masks we provide a numeric identifier of a mask, which is named mask_id. Here is how it works : 2.1. All masks recieve serial numbers (mask_id) while clist writing. 2.2. Each mask command is written with its mask_id. 2.3. Each group command is writen with mask_id, which belongs to the mask that is assocuated with the group. 2.4. While clist playback pdf14_pop_transparency_group checks whether the mask amd the group have same mask_id. If not, the mask is extra and it must be droped. 2.5. Note the old assiciation logic is still working, and it may skip some masks as well. 2.6. If the rasterization happens with no clist, mask_id is always zero. In this case the old logics is only working. Maybe we'll provide non-zero values someday. 2.7. See comments in code for more details. 3. The method gs_composite_type_procs_t::clist_compositor_write_update is now some generalized. Before this patch it only updates the clist writer state with the compositor features. With this patch it also adds some information from the clist writer state to the compositor parameters. Particularly it provides mask_id to the compositor command. Thus now it updates *both* clist writer and the compositor parameters to comply each another. For a while, in order to simplify the patch, the compositor argument is still 'const'. Will need to fix someday. 4. Now we need to save mask_id in a stack that reflects the transparency nesting. The cropping stack, which was introduced in the last patch, now works for that. To provide that we add mask_id to clist_writer_cropping_buffer_s, and use clist_writer_push_no_cropping to save amsk_id over inner groups. 5. state_update(ctm) in c_pdf14trans_clist_write_update is replaced with code, which updates CTM from the transparency compositor command. The old code is not fully correct, because it takes CTM from the imager state, rather we havn't got prcatical cases when it gives a wrong result. 6. drop_compositor_queue now calls adjust_ctm for compositors being dropped. The old code is incorrect because it can miss a CTM update when a compositor sets some CTM and later a non-compositor object sets same CTM. In this case the clist writer skips the second CTM on writing, and skipping the first in the clist reader will miss the CTM completely. We haven't got practical cases for that. 7. Improved some debug printing.[src/gxclist.c src/gdevdflt.c src/gdevp14.h src/gstrans.c src/gsalphac.c src/gxclist.h src/gxcomp.h src/gsovrc.c src/gstparam.h src/gstrans.h src/gxclrast.c src/gdevp14.c src/gxclpath.c src/gxclimag.c]
2008-03-03T11:57:42.307384Z Igor Melichev
Fix (clist) : Crop transparencsy commands while clist writing, step 2. DETAILS : This is a preparation to the next step. The patch introduces a transparency stack for clist writer, which saves cropping when entering a transparency group, and restores when exiting it. The cropping is being narrowed with transparency group's bounding box.[src/gxclist.c src/gxcldev.h src/gxclist.h src/gdevp14.c src/gxclpath.c]
2008-03-03T11:42:33.253339Z Igor Melichev
Fix (clist) : Crop transparencsy commands while clist writing, step 1b. DETAILS : Removing non-ascii chars that was not detected by MSVC.[src/gdevp14.c]
2008-03-03T10:13:01.196997Z Igor Melichev
Fix (clist) : Crop transparencsy commands while clist writing, step 1a. DETAILS : The last commitment is incomplete, now fixing.[src/gxclist.h]
2008-03-03T10:11:27.428498Z Igor Melichev
Fix (clist) : Crop transparencsy commands while clist writing, step 1. DETAILS : This is a preparation to the next step. In general, the behavior doesn't change, but implementation details differ. The old code maitains a flag cropping_by_y in the clist writer, which triggers a cropping of objects by the Y axis. The old code isn't perfect, because it first crops by [cdev->cropping_min, cdev->cropping_max], and then by [0, cdev->height]. In the new code we unite both croppings into a single one. For doing that we remove the flag, and provide the right interval [cdev->cropping_min, cdev->cropping_max] in any case. Initially it is [0, cdev->height}, and it is narrowed when a shading bbox is set. To restore the initial cropping after the shading is complete, we maintain 2 new fields save_croping_min and save_cropping_max. So now the cropping mechanizm does not depend on shading, and clients may set a croping when they need. We'll use this feature in the next patch.[src/gxclist.c src/gdevp14.c src/gxclpath.c src/gxclimag.c src/gxclrect.c]
2008-03-03T04:03:51.374416Z Marcos H. Woehrmann
Fix for compression always falling back to no compression in pclxl_write_image_data(), bug 689732. Details: After much tracing of srle.c and gdevpx.c I believe this bug is in the portion of s_RLE_process() that looks ahead in order to be able to optimally compress the data. Rather than attempting to modify the function and probably breaking something else I'm taking the 99% solution and just calling s_RLE_process with last set to true instead of false. This disables the look ahead feature, presumably making the compression very slightly suboptimal but at least now it works. This change results in pxl files that are significantly smaller than before (i.e. the test file associated with bug 689595 is reduced in size from 1.1 megs to 387k).[src/gdevpx.c]
2008-03-03T02:57:05.472235Z Ray Johnston
Fix properties[src/psromfs.mak src/gsromfs0.c]
2008-03-03T01:17:09.063617Z Marcos H. Woehrmann
Fall back to using gx_default_copy_mono() in pclxl_copy_mono() if data_x!=0. Details: Fixes bug 688992. Will increase the size of the generated PXL file in some cases; a better solution would be to modify the pclxl_write_image_data()function to handle data_x!=0. Expected regressions: None, pxlmono isn't covered in the regression suite.[src/gdevpx.c]
2008-03-01T10:18:20.389016Z Ken Sharp
Fix (pdfwrite): problems with type 3 fonts executing 'show'. Details: Bug #689685 "OpenType font incorrectly converted to PDF". The File is from Quark XPress and contains a type 3 font which executes a 'show' and a 'charpath stroke' with a glyph from a type 1 font. Further, it executes a 'charpath' on this type 3 glyph. Pdfwrite was unaware, when processing the 'show' that this was inside a charpath operation, and emitted the shown glyph. Modified pdfwrtite to be aware that a charpath is in operation, and to have the graphics library handle any show operations. (gdevpdfx.h) Add a new flag 'type3charpath' to the gx_device_pdf structure. (gdevpdfb.h) Add an initialiser for the type3charpath flag (also for the last_charpath_op which was missed in that change) (gdevpdtt.c) In gdev_pdf_text_begin, if type3charpath is true, go straight to the default text processing. Otherwise, check to see if this is a type 3 font, and the operation is 'charpath'. If so then create a pdfwrite text enumerator to process the text. In pdf_text_process, if we have a type 3 font, the operation is charpath and type3charpath is false, set it to true and go straight to the default text handler. When the enumerator is completed, if type3charpath is true, set it to false. In pdf_text_process, while handling text, do not start accumulating a charparoc if type3charpath is set. Finally, in pdf_text_set_cache, if type3charpath is set, simply execute the standard cache routine.[src/gdevpdfx.h src/gdevpdtt.c src/gdevpdfb.h src/gdevpdti.c]
2008-03-01T10:15:02.847745Z Ken Sharp
Fix (pdfwrite): problems with type 3 fonts executing 'show'. Details: Bug #689687 "Regression: pdfwrite DEVICE produces bad text". The File is from Quark XPress and contains a type 3 font which executes a 'show' and a 'charpath stroke' with a glyph from a type 1 font. The code for revision 8265 converts these into a '2 Tr' in the PDF file. However, I missed the case of this occuring inside a font, resulting in much too large a strokewidth being set. This code takes account of the font matrix. NB there is still a potential problem. There is no way currently to tell the difference between a charproc which explicitly sets a stroke width and one which inherits it from the prevailing graphics state. Currently we will write a font which always emits the stroke width at the time the font was first used. There is no simple way to address this, we could set the stroke width to an invalid value during the course of a type 3 glyph, and check it before emitting the stroke, but this is dangerous. However, this seems unlikely to be a real problem in practice, since altering the stroke width outside the font might result in unpredictable widths dependent on the point size. I have chosen not to open a bug for the possible condition at this time. (gdevpdfd.c) gdev_pdf_stroke_path, if we are converting to a PDF text rendering mode, and are inside a type 3 font glyph description, take the font matrix into account when calculating the strokewidth.[src/gdevpdfd.c]
2008-03-01T01:42:04.749356Z Ralph Giles
Bump the revision after the 8.62 release.[doc/News.htm lib/gs_init.ps src/gscdef.c src/version.mak]
This version is the next in our line of scheduled semi-annual releases.
There were approximately 55 bugs fixed since version 8.61. Some fixes and improvements of note were:
COMPILE_INITS=1 was broken in 8.61 and now works as expected.
Fonts are now distributed in the Resource/Font directory and will be included in the executable if COMPILE_INITS=1
The tiffsep device was fixed for using more than 8 colorants.
Shadings, overprinting and transparency were optimized and are substantially faster than in 8.61, particularly for large format or high resolution rendering when using the 'clist' banding mode.
Changes were made to prevent near unbounded growth in memory usage and corresponding performance problems on a few test cases.
The 'pdfwrite' device was improved to fix some compatibility issues with PDF/A and to improve some font embedding and other issues.
The 'ht_ccsto.ps' Stochastic Threshold array was completely changed to be more useful. The values in the threshold array were inverted, so the number of 'light' colors was limited and using it generally caused prints that were too dark.
The 'runpdfbegin', 'dopdfpages' and 'runpdfend' PostScript pseudo-operators that were inadvertently removed in 8.61 were restored. This also restored the functionality of toolbin/pdf_info.ps to display PDF creator stats, fonts used and page sizes.
The halftone tile cache sizes and cache effectiveness were improved to help the performance when tiling with large cells or threshold arrays.
The following bugs were open at the time of release:
465936, 578865, 626295, 686747, 686853, 687011, 687146, 687257, 687271, 687280, 687295, 687327, 687514, 687520, 687531, 687608, 687650, 687674, 687677, 687695, 687697, 687702, 687721, 687728, 687729, 687796, 687805, 687814, 687850, 687903, 687904, 687957, 687974, 688007, 688022, 688026, 688032, 688036, 688042, 688058, 688061, 688064, 688066, 688075, 688081, 688095, 688129, 688130, 688151, 688152, 688159, 688166, 688184, 688187, 688207, 688215, 688227, 688239, 688269, 688280, 688288, 688317, 688318, 688320, 688333, 688342, 688358, 688359, 688360, 688361, 688363, 688372, 688378, 688386, 688387, 688389, 688395, 688413, 688427, 688428, 688436, 688437, 688440, 688446, 688475, 688483, 688500, 688515, 688517, 688528, 688533, 688539, 688540, 688542, 688543, 688557, 688580, 688581, 688588, 688601, 688604, 688605, 688610, 688615, 688616, 688619, 688627, 688636, 688638, 688646, 688651, 688653, 688655, 688673, 688674, 688696, 688699, 688709, 688710, 688714, 688717, 688728, 688736, 688739, 688757, 688770, 688774, 688778, 688796, 688797, 688807, 688811, 688813, 688815, 688829, 688843, 688846, 688876, 688908, 688918, 688919, 688926, 688928, 688933, 688942, 688943, 688952, 688958, 688969, 688976, 688986, 688990, 688992, 688999, 689003, 689011, 689013, 689014, 689022, 689025, 689028, 689031, 689040, 689044, 689046, 689048, 689057, 689058, 689080, 689081, 689090, 689093, 689094, 689098, 689111, 689116, 689128, 689129, 689130, 689133, 689136, 689137, 689138, 689145, 689146, 689148, 689150, 689153, 689154, 689159, 689161, 689164, 689172, 689174, 689181, 689184, 689195, 689198, 689206, 689209, 689210, 689222, 689224, 689230, 689236, 689246, 689247, 689248, 689252, 689253, 689264, 689279, 689280, 689281, 689283, 689289, 689290, 689291, 689304, 689305, 689308, 689313, 689331, 689335, 689340, 689341, 689343, 689358, 689361, 689363, 689364, 689367, 689370, 689373, 689376, 689378, 689396, 689402, 689412, 689418, 689419, 689422, 689428, 689431, 689438, 689439, 689440, 689444, 689445, 689448, 689450, 689451, 689456, 689460, 689462, 689463, 689469, 689471, 689476, 689484, 689487, 689488, 689489, 689490, 689498, 689499, 689500, 689502, 689507, 689509, 689510, 689512, 689514, 689515, 689516, 689518, 689521, 689522, 689532, 689534, 689535, 689538, 689542, 689543, 689546, 689547, 689549, 689552, 689554, 689557, 689559, 689560, 689561, 689563, 689566, 689567, 689573, 689574, 689579, 689581, 689583, 689585, 689588, 689591, 689592, 689595, 689598, 689601, 689606, 689607, 689609, 689610, 689618, 689621, 689623, 689627, 689628, 689632, 689636, 689637, 689641, 689649, 689652, 689653, 689654, 689657, 689658, 689659, 689663, 689666, 689668, 689669, 689673, 689674, 689675, 689676, 689677, 689681, 689682, 689684, 689685, 689687, 689689, 689690, 689691, 689692, 689693, 689697, 689698, 689699, 689702, 689704, 689705, 689709, 689710, 689711, 689712, 689713, 689715, 689716, 689721, 689722, 689723, 689725, 689727.
Not strictly a compatibility issue, but the default URW (GPL) fonts are now distributed in the Resource/Font/ path which can increase the number of file handles open for PostScript that opens all of the resources. Also the size of the %rom% rom file system within the executable when using COMPILE_INITS=1 is larger by the amount needed for the fonts.
Also not strictly incompatible, but some alternate fixed-point code was stripped out, so FPU_TYPE and other FPU related makefile macros are gone or don't cause any difference in the code generated. Also the 'USE_ASM' macro was removed, since we expect modern compilers to do sufficient optimization.
Some old (deprecated) "helper" scripts were removed: gsindent, gssubst, many2pdf.tcl, and pre.
The unused 'cmap' (special color mapping) and 'ropc' devices were removed from the distribution.
The 'ht_ccsto.ps' Stochastic Threshold array was completely changed to be more useful. The values in the threshold array were inverted, so the number of 'light' colors was limited and using it generally caused prints that were too dark. This is an improvement, but incompatible in that anyone using it previously would see much different grays/ colors.
The SYSTEM_CONSTANTS_ARE_WRITABLE compile time define was removed as was the "EXTEND_NAMES" makefile macro (still accessible using a compiler flag define).
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 H. 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<<depth, but 1<<32 is not -1 on any platform (that I know of).[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 H. Woehrmann
Fixed umlauts (maybe, am having trouble testing the results).[man/de/pdf2dsc.1]
2008-01-09T00:24:50.313955Z Marcos H. 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 H. 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 H. 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]
This is the second release in the Ghostscript 8.6x stable series. It contains a number of bug fixes and improvements.
The following bugs were open at the time of the last release:
226943, 430175, 465936, 493348, 535932, 578865, 614298, 626295, 686747, 686853, 686865, 687011, 687039, 687084, 687095, 687146, 687193, 687196, 687257, 687271, 687280, 687295, 687297, 687303, 687327, 687342, 687345, 687375, 687414, 687475, 687492, 687514, 687520, 687531, 687536, 687561, 687593, 687608, 687630, 687650, 687666, 687674, 687677, 687695, 687697, 687702, 687715, 687721, 687728, 687729, 687731, 687775, 687780, 687782, 687793, 687796, 687805, 687814, 687850, 687887, 687903, 687904, 687907, 687915, 687931, 687950, 687957, 687974, 687981, 687983, 688007, 688022, 688024, 688026, 688032, 688036, 688042, 688058, 688061, 688064, 688066, 688075, 688081, 688095, 688129, 688130, 688151, 688152, 688159, 688166, 688184, 688187, 688204, 688207, 688210, 688215, 688227, 688239, 688267, 688269, 688280, 688282, 688288, 688312, 688317, 688318, 688320, 688333, 688342, 688358, 688359, 688360, 688361, 688363, 688372, 688378, 688386, 688387, 688389, 688395, 688413, 688427, 688428, 688436, 688437, 688440, 688446, 688448, 688468, 688473, 688475, 688483, 688490, 688495, 688500, 688515, 688517, 688528, 688533, 688539, 688540, 688542, 688543, 688557, 688565, 688573, 688580, 688581, 688588, 688601, 688604, 688605, 688610, 688615, 688616, 688617, 688619, 688627, 688636, 688638, 688643, 688646, 688647, 688651, 688653, 688655, 688673, 688674, 688696, 688697, 688699, 688708, 688709, 688710, 688711, 688714, 688717, 688728, 688731, 688736, 688739, 688757, 688770, 688774, 688777, 688778, 688796, 688797, 688806, 688807, 688811, 688813, 688815, 688818, 688829, 688843, 688845, 688846, 688871, 688872, 688876, 688908, 688918, 688919, 688923, 688926, 688928, 688933, 688942, 688943, 688945, 688949, 688952, 688958, 688969, 688970, 688976, 688978, 688986, 688990, 688992, 688994, 688999, 689003, 689011, 689013, 689014, 689022, 689025, 689028, 689031, 689032, 689040, 689044, 689046, 689048, 689057, 689058, 689060, 689065, 689070, 689076, 689077, 689078, 689080, 689081, 689090, 689093, 689094, 689098, 689103, 689107, 689111, 689116, 689128, 689129, 689130, 689133, 689136, 689137, 689138, 689145, 689146, 689148, 689150, 689153, 689154, 689155, 689159, 689161, 689164, 689167, 689172, 689174, 689181, 689184, 689188, 689195, 689198, 689199, 689206, 689209, 689210, 689222, 689224, 689230, 689236, 689241, 689246, 689247, 689248, 689252, 689253, 689264, 689266, 689278, 689279, 689280, 689281, 689283, 689289, 689290, 689291, 689295, 689304, 689305, 689306, 689308, 689313, 689331, 689335, 689338, 689340, 689341, 689343, 689356, 689358, 689361, 689363, 689364, 689367, 689369, 689370, 689373, 689376, 689378, 689389, 689392, 689396, 689402, 689412, 689418, 689419, 689421, 689422, 689423, 689428, 689431, 689438, 689439, 689440, 689444, 689445, 689448, 689450, 689451, 689456, 689457, 689460, 689461, 689462, 689463, 689464, 689469, 689471, 689472, 689473, 689476, 689482, 689484, 689487, 689488, 689489, 689490, 689492, 689498, 689499, 689500, 689502, 689506, 689507, 689509, 689510, 689512, 689514, 689515, 689516, 689518, 689521, 689522, 689525, 689528, 689532, 689533, 689534, 689535, 689536, 689538, 689542, 689543, 689544, 689546, 689547, 689549, 689550, 689552, 689554, 689557, 689558, 689559, 689560, 689561, 689563, 689566, 689567, 689568, 689569.
The default device on unix-oriented builds was temporarily switched to the bbox device in the 8.60 release. In the 8.61 release, the default was changed again to the x11alpha device, if X11 support is available, and otherwise falls back to the bbox device.
2007-11-21T19:44:40.574652Z Ralph Giles
Revert the change to using an environment variable for the MSVC LIBPATH. Details: This wasn't effective in addressing the problem and could cause additional trouble if the environment isn't configured. The changes in r8394 should properly address the issue of quote interpretation with MSVC6.[src/msvc32.mak]
2007-11-21T06:10:53.144641Z Henry Stiles
Check that a device halftone exists before writing it. Fixes segmentation fault in xps. No differences expected.[src/gdevp14.c]
2007-11-21T05:57:23.672501Z Ray Johnston
Fix compiler flag conflict for non-debug build (seen when switching PCL6 build to default to non-debug default). Changes /ZI to /Zi.[src/msvccmd.mak]
2007-11-20T18:36:58.009554Z Ray Johnston
Fix broken MSVC 6 build issue caused by change in src/msvccmd.mak that puts a LIBPATH into the link command line. MSVC linker can't handle spaces in the LIBPATH even if within " ". We use an environment variable set by Microsoft MSVC 6 'vcvars32.bat' instead. This can be manually set if needed.[src/msvc32.mak]
2007-11-20T11:42:22.623309Z Ken Sharp
Batch file to create MSVC solution and projects. Usage: msvcxml gs obj\ld.tr > ghostscript.sln This is the first attempt, and very poor.[toolbin/msvcxml.bat]
2007-11-19T23:57:46.396323Z Ralph Giles
Change the product name for the release.[src/gscdef.c]
2007-11-19T23:56:28.975783Z Ralph Giles
Update changelogs for release.[doc/Changes.htm doc/History8.htm doc/News.htm doc/Details8.htm doc/Details.htm]
2007-11-19T20:36:07.538187Z Igor Melichev
Fix (transparency) : Wrong background color of a soft mask group. DETAILS : Bug 689531 "Regression: PDF file has undesired extra gray object.". The old code used the 0th component of the background color instead its gray equivalent. The bug was introduced when working on bug 687176.[src/gdevp14.c]
2007-11-19T20:24:07.302766Z Ralph Giles
Update documentation timestamps for 8.61.[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/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 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 man/ps2ps.1 doc/Ps2epsi.htm doc/History4.htm man/ps2pdfwr.1 doc/History5.htm doc/History6.htm]
2007-11-19T20:23:39.904096Z Ralph Giles
Remove the verification checks for PVERSION and JVERSION, which we no longer use.[toolbin/pre.tcl]
2007-11-19T20:15:45.795513Z Ralph Giles
Add new files to the documentation.[doc/Develop.htm doc/Psfiles.htm]
2007-11-19T20:15:43.672566Z Ralph Giles
Update release notes and date for 8.61.[doc/News.htm src/version.mak]
2007-11-18T22:50:36.855233Z Alex Cherepanov
Normalize weigts in the Mitchell filter and use proper rounding to ensure that the constant value is not changed by the filter. Bug 689556, customer 581.[src/siscale.c]
2007-11-18T16:48:41.008511Z Igor Melichev
Fix (clist interpreter) : Transparency caused a wrong color depth. DETAILS : Bug 689520 Regression: 1bpp and grayscale output broken. The clist interpreter clist_playback_band maintains 2 devices : the clist reader and target. The clist reader device stores private interpreter's data. However using a device structure for this purpose is pretty confusing, because the target device may have same device fields with different values. Particularly while processing a transparency, the target device chage to a transparency buffer device, which may have a different number of color components. The problem happens due to the clist interpreter used a wrong device to obtain the number of color components. This patch changes the code with taking color components from the target device. Now we don't try to analyze all other access to the clist device - it should be a subject of a separate job. Therefore the code may need further improvements. The right way would be to define a special structure for the clist interpreter, and to drop the clist reader device at all.[src/gxclrast.c]
2007-11-18T09:30:55.737640Z Russell Lang
Remove incorrect and unnecessary gtk+ separation code. Fixes bug 689541.[src/dxmain.c]
2007-11-18T06:07:20.783700Z Igor Melichev
Fix (clist) : Improving the debug printing. DETAILS : This patch only inserts some debug trace printing about the pdf14 compositor. The old code is confusing due to mapping an obsolete instruction to "set_color[*]".[src/gxclpath.h]
2007-11-18T05:30:55.503323Z Igor Melichev
Fix (clist) : Improving the debug printing. DETAILS : This patch only inserts some debug trace printing about the pdf14 compositor. The old code generates a confusing trace due to missing an important information.[src/gstrans.c src/gdevp14.c]
2007-11-16T21:39:22.306411Z Ray Johnston
Fix dependency problems that caused obj/gs_init.ps to be missed. Also fix a typo that caused CMap files to be missing. DETAILS: This method of putting the gs_init.ps dependency down in lib.mak require us to get gs_init.ps. This hack was discussed with Ralph and is an alternative to adding a dependency to all of the top level makefiles. The dummy gs_init.ps is only made when we are NOT including the PS interpreter (PSI_INCLUDED) since we need the real one for the language switch build. Note that the dummy file doesn't get added to the %rom% file system since PS_ROMFS_ARGS is empty if int.mak is not included.[src/lib.mak src/int.mak]
2007-11-16T21:14:31.380613Z Ralph Giles
Correct typos and spelling errors in the change log. Bug 688940.[doc/History8.htm]
2007-11-16T08:11:05.046465Z Igor Melichev
Fix (clist) : Providing clist instruction ids and offsets to debug trace (continued 2). DETAILS : The last patch (rev 8365) appears incorrect and causes crashes with halftoning devices. The problem happens due to gx_device_clist_reader::offset_map has been initialized too early in clist_reader_init. At that moment the device is still a clist writer, but the field offset_map belongs to clist reader. Due to gx_device_clist_s is a union, the field overlaps band_range_list.head, and the letter was prematurely reset. It caused some commands were not written to clist file while the page closes. With the test case (pbmraw -r300 012-01.ps) it missed cmd_opv_ext_put_halftone and did not miss cmd_opv_ext_put_drawing_color with color index type == ht_binary. It caused the crash in gx_dc_ht_binary_readdue to pis->dev_ht was not set. (cmd_opv_ext_put_halftone does set, but it was missed). The log message of the revision 8365 reads : "This change is algorithmically equivalent for release build." This statement is false due to the premature initialization of gx_device_clist_reader::offset_map. This patch fixes that with removing its initialization from clist_reader_init. A subsequent call to clist_render_init initializes it. The last patch was made buggy due to the function name clist_reader_init does not properly reflects its finction. This patch fixes the naming. Also provided more stability in gxht.c with a check for NULL pointer.[src/gxclread.c src/gxht.c]
2007-11-16T02:10:56.107493Z Ralph Giles
Update the makefile for current pkgconfig macros.[ijs/Makefile.am]
2007-11-16T01:52:09.559298Z Ralph Giles
Don't generate build files for the ijs package when building. Since this is distinct from 'make dist' the results are not optimal Bug 689425.[doc/Release.htm]
2007-11-15T07:22:43.143761Z Igor Melichev
Fix (clist) : Providing clist instruction ids and offsets to debug trace (continued). DETAILS : The last patch appears incorrect for the debug build and causes crashes sometimes. Not sure why local testing didn't detect that. This change is algorithmically equivalent for release build. In the debug build it fixes problems of the last patch. 1. Offset map could be prematurely released by the garbager (It could cause a crash. Not sure why the local test didn't detect it). A new pointer gx_device_clist_reader::offset_map prevents that. Added it to the garbager descriptor and provided its initialization. 2. buffer_segment_index can fail with returning a negative index. Checked that and propagated error codes. 4. Besides top_up_cbuf, the buffer topping up also happens with calling memmove when reading bitmap data. Added calls to top_up_offset_map for accounting that. 5. See comment in top_up_offset_map about the improved invariant. 6. The prototupe of top_up_cbuf is changed with passing the error code. Due to that the variable 'cbp' is droped the 'register' modifier. We believe it won't cause a visible slowdown because modern compilers are smart enough. 7. Do not maintain offset_map when -ZL is not specified. It saves some CPU time with debug build.[src/gxclist.c src/gxcldev.h src/gxclist.h src/gxp1fill.c src/gxclrast.c src/gxclread.c src/gxclpage.c src/gxclutil.c]
2007-11-14T23:03:22.440437Z Ralph Giles
Remove an obsolete include.[src/gendev.c]
2007-11-14T22:06:13.972530Z Ray Johnston
Refactor the gs int.mak and lib,mak to simplify building COMPILE_INITS=1 without PS (PCL only build). Make sure gs/src/ugcclib.mak does conditional assignment of COMPILE_INITS[src/lib.mak src/ugcclib.mak src/int.mak]
2007-11-14T22:04:53.375824Z Ray Johnston
Fix number of macro arguments that showed an error when FPU_TYPE=-1 (no FPU)[src/gsciemap.c]
2007-11-14T18:37:45.596510Z Igor Melichev
Fix (clist) : Providing clist instruction ids and offsets to debug trace. DETAILS : This change is algorithmically equivalent for release build. In the debug build it only adds a new debug printing. Let clist segment is consecutive instuctions buffered for same band. 1. gx_device_clist_writer::ins_count counts clist segments. 2. cmd_prefix_s::id is the number of clist segment that it belongs to. 3. stream_band_read_state_s::offset_map stores a table for mapping clist segments' buffer offsets to clist file offsets. 4. s_band_read_init_offset_map, s_band_read_dnit_offset_map, clist_file_offset, top_up_offset_map maintain the table. 5. Inserted a debug printing into gxclutil.c, gxclrast.c .[src/gxclist.c src/gxcldev.h src/gxclist.h src/gxclrast.c src/gxclread.c src/gxclutil.c]
2007-11-14T18:09:02.242685Z Igor Melichev
Fix (clist) : A preparation for providing clist instruction ids and offsets to debug trace. DETAILS : We would like this change to be algorithmically equivalent, but the proof is too complex. Therefore we commit it separately in order to check for raster differences. 1. Inserted a new field into cmd_prefix_s. For now this field is never used, but it changes memory allocation. Due to that the bufferring in the clist writer goes slightly different. Particularly it may cause new effects while restarting failed instructions. 2. Early return from top_up_cbuf when the stream is over. The new code does not top up the last portion of the data stream. It shouldn't be important for the reader, but we can't proove for sure. This change is necessary because we want to add more fields to gx_clist_state_s, and the new fields would be invalid after s_close resets stream::state. See the next patch for details.[src/gxclist.h src/gxclrast.c]
2007-11-14T02:22:53.263144Z Ralph Giles
Add support for passing EXPAT_CFLAGS from the top-level makefile. Passing -DHAVE_MEMMOVE is required in the unix build.[src/expat.mak]
2007-11-14T02:06:05.012311Z Ralph Giles
Remove spurious executable bits.[expat/MANIFEST expat/conftools/expat.m4 expat/tests/benchmark/benchmark.c expat/lib/internal.h expat/COPYING expat/Changes expat/lib/utf8tab.h expat/tests/runtestspp.cpp expat/tests/runtests.c expat/lib/expatw_static.dsp expat/lib/libexpat.def expat/amiga/include/proto/expat.h expat/tests/README.txt expat/xmlwf/xmlfile.c expat/xmlwf/xmlfile.h expat/xmlwf/ct.c expat/lib/Makefile.MPW expat/xmlwf/codepage.c expat/vms/descrip.mms expat/xmlwf/codepage.h expat/bcb5/elements.bpf expat/lib/amigaconfig.h expat/amiga/expat_lib.c expat/bcb5/elements.bpr expat/lib/expat.h expat/win32/README.txt expat/conftools/get-version.sh expat/doc/valid-xhtml10.png expat/examples/outline.dsp expat/xmlwf/readfilemap.c expat/bcb5/outline.mak expat/lib/xmlrole.c expat/amiga/launch.c expat/bcb5/expat_static.mak expat/lib/xmlrole.h expat/lib/winconfig.h expat/examples/elements.dsp expat/win32/expat.iss expat/win32/MANIFEST.txt expat/amiga/expat.xml expat/bcb5/outline.bpf expat/expat_config.h.in expat/lib/libexpatw.def expat/lib/expatw.dsp expat/bcb5/expat.mak expat/lib/xmltok.c expat/vms/README.vms expat/tests/benchmark/README.txt expat/bcb5/expat_static.bpf expat/lib/xmltok.h expat/tests/xmltest.sh expat/lib/latin1tab.h expat/bcb5/outline.bpr expat/tests/minicheck.c expat/xmlwf/xmlwf.dsp expat/conftools/PrintPath expat/tests/minicheck.h expat/Makefile.in expat/lib/expat_static.dsp expat/bcb5/libexpat_mtd.def expat/bcb5/expat_static.bpr expat/lib/xmltok_impl.c expat/bcb5/expatw.mak expat/amiga/include/interfaces/expat.h expat/lib/xmltok_impl.h expat/xmlwf/filemap.h expat/bcb5/expatw_static.mak expat/vms/expat_config.h expat/bcb5/expat.bpf expat/xmlwf/xmlwin32url.cxx expat/lib/xmltok_ns.c expat/xmlwf/xmltchar.h expat/doc/reference.html expat/tests/benchmark/benchmark.dsp expat/bcb5/expat.bpr expat/bcb5/xmlwf.mak expat/bcb5/setup.bat expat/lib/xmlparse.c expat/tests/benchmark/benchmark.dsw expat/conftools/install-sh expat/configure.in expat/conftools/libtool.m4 expat/bcb5/expatw.bpf expat/amiga/Makefile expat/bcb5/expatw_static.bpf expat/bcb5/expatw.bpr expat/bcb5/expatw_static.bpr expat/bcb5/xmlwf.bpf expat/lib/expat_external.h expat/configure expat/lib/macconfig.h expat/conftools/ac_c_bigendian_cross.m4 expat/lib/ascii.h expat/amiga/expat_vectors.c expat/conftools/mkinstalldirs expat/bcb5/README.txt expat/amiga/README.txt expat/bcb5/xmlwf.bpr expat/xmlwf/unixfilemap.c expat/doc/xmlwf.sgml expat/bcb5/all_projects.bpg expat/xmlwf/xmlurl.h expat/doc/expat.png expat/amiga/include/inline4/expat.h expat/examples/elements.c expat/expat.dsw expat/amiga/stdlib.c expat/amiga/include/libraries/expat.h expat/lib/iasciitab.h expat/xmlwf/xmlmime.c expat/tests/chardata.c expat/xmlwf/xmlmime.h expat/doc/style.css expat/README expat/tests/chardata.h expat/conftools/config.guess expat/doc/xmlwf.1 expat/conftools/ltmain.sh expat/conftools/config.sub expat/lib/nametab.h expat/bcb5/libexpatw_mtd.def expat/lib/asciitab.h expat/xmlwf/xmlwf.c expat/lib/expat.dsp expat/examples/outline.c expat/xmlwf/win32filemap.c expat/bcb5/elements.mak expat/bcb5/makefile.mak]
2007-11-13T18:57:18.728921Z Igor Melichev
Fix (make) : Could not build for x64 platform with Developer Studio 2005. DETAILS : 1. The old code uses the 32 bits compiler for compiling build utilities (genarchg, echogs), and then tries to link them with x64 libraries. 2. Developer Studio 2005 doesn't support -ZI (debug database for edit end continue) for the x64 platform.[src/msvccmd.mak]
2007-11-13T10:01:55.069333Z Ken Sharp
Fix (pdfwrite): type 3 fonts with exceedingly small BoundingBox entries were clamped to 0 or 1. Details: Bug #689537 "FontBBox wrong in pdf generated by ps2pdf (breaks acrobat 8)". The type 3 font has a FontBBox of [0 0 0.3 0.3]. Because pdfwrite uses integers to record the font bounding box, this was being clampled to [0 0 1 1]. This should not cause a prolem, but for unknown reasons causes Acrobat 8 to render *very* slowly. (gdevpdtf.h), 'struct /*type 3*/', alter the FontBBox member from a gs_int_rect to a gs_rect to preserve floating point box values. (gdevpdtt.c), pdf_make_font3_resource, copy the font bbox values instead of floor'ing the lower and ceil'ing the upper values. (gdevpdfu.c), create a new function 'pdf_write_font_bbox_float' to write the bbox as floats instead of ints. (gdevpdfx.h) prototype 'pdf_write_font_bbox_float' (gdevpdtw.c), pdf_finish_write_contents_type3, use the new routine to write out a floating point bounding box.[src/gdevpdfx.h src/gdevpdtt.c src/gdevpdfu.c src/gdevpdtw.c src/gdevpdtf.h]
2007-11-12T08:59:35.891834Z Ken Sharp
Fix (pdfwrite): named objects, created via a pdfmark such as /BP, could not have their content modified after the object was completed. DETAILS: Bug #689104 "Overwriting transformation /Matrix in XObject previously created with /BP & /EP pdfmarks". Some pdfmarks, such as /BP create named objects. These can accumulate information until a matching pdfmark (/EP in this case) completes the object. When complete, objects were written to the final destination PDF file. This made it impossible to later modify the object. (gdevpfm.c) pdfmark_bind_named_object, change the call to pdf_substitute_resource to defer writing the object to the destination file, if the object is named. This means the object is still available for modification until the end of the job. NB if the object is not named, we still write it immediately, as there is no mechanism for modifying an unnamed object, nor do we currently have a mechanism for maintaining a record of unnamed objects.[src/gdevpdfm.c]
2007-11-10T17:20:49.620638Z Alex Cherepanov
Pre-scan the stream for '{' during the stream length check to avoid reading to the end of the stream and closing it. Bug 689551, customer 661.[lib/pdf_base.ps]
2007-11-09T21:18:04.579128Z Ralph Giles
Remove the JVERSION makefile variable. We only support the current version 6 library, and it seems unlikely to revise in the the near future. We also include our own copy of the source now, so it is less important to support a variety of third party library versions.[src/openvms.mak src/macosx.mak src/watcw32.mak src/dvx-gcc.mak src/unixansi.mak src/msvclib.mak src/os2.mak src/openvms.mmk src/bcwin32.mak src/ugcclib.mak src/gs.mak src/Makefile.in doc/Make.htm src/msvc32.mak src/unix-gcc.mak src/macos-mcp.mak src/watclib.mak src/jpeg.mak]
2007-11-09T21:15:56.512922Z Ralph Giles
Remove the PNGVERSION makefile variable. We no longer support building older versions of the libpng source, and now include our own version, so there is no reason to maintain this.[src/openvms.mak src/macosx.mak src/watcw32.mak src/dvx-gcc.mak src/unixansi.mak src/msvclib.mak src/os2.mak src/openvms.mmk src/bcwin32.mak src/ugcclib.mak src/gs.mak src/libpng.mak doc/Make.htm src/msvc32.mak src/unix-gcc.mak src/macos-mcp.mak src/all-arch.mak src/watclib.mak]
2007-11-09T21:00:48.139238Z Ralph Giles
Update the top level makefiles with the current libpng version number.[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/unixansi.mak src/macos-mcp.mak src/msvclib.mak src/all-arch.mak src/openvms.mmk src/os2.mak src/watclib.mak]
2007-11-09T20:58:19.833269Z Ralph Giles
Use PNGSRCDIR and PNGVERSION instead of PSRCDIR and PVERSION in the top level makefiles.[src/openvms.mak src/macosx.mak src/watcw32.mak src/dvx-gcc.mak src/unixansi.mak src/msvclib.mak src/os2.mak src/openvms.mmk src/bcwin32.mak src/ugcclib.mak src/gs.mak src/libpng.mak src/Makefile.in doc/Make.htm src/msvc32.mak src/unix-gcc.mak src/macos-mcp.mak src/all-arch.mak src/watclib.mak]
2007-11-09T19:54:57.891517Z Ralph Giles
Minor cleanup of the expat makefile.[src/expat.mak]
2007-11-09T01:14:15.828665Z Ralph Giles
Change the jbig2dec license from GPLv2 to GPLv2 or later.[jbig2dec/LICENSE]
2007-11-08T07:57:21.838362Z Suzuki Toshiya
Fix: Ignore problematic post table in format 2.0 with ISOLatin1Encoding glyph names. DETAILS: Some TrueType fonts converted by "Windows Type 1 Installer" have problematic post table format 2.0 including MacGlyphEncoding entries which should be omitted. Such extra entries in the beginning of glyphName array make /Encoding broken. By checking if glyph name in post table is predefined one in MacGlyphEncoding, such problematic post table can be detected. By ignoring such problematic post table, bug 689495 is fixed. However, some TrueType fonts designed for Microsoft redefines MacGlyphEncoding glyph name out of predefined range. To permit such font, the post table in format 2.0 is checked by ISOLatin1Encoding which is the cross section of MacGlyphEncoding and WinAnsiEncoding. ISOLatin1Encoding is enought to fix the bug 689495.[lib/gs_ttf.ps]
2007-11-07T07:13:45.310142Z Ralph Giles
Preliminary makefile for the expat third party library. Can be used to link to the system expat with SHARE_EXPAT=1, but compiling the source doesn't work on linux in this revision because of missing configuration defines.[src/gs.mak src/expat.mak]
2007-11-07T05:04:06.063702Z Ralph Giles
Copy the expat-2.0.1 tag source into the gs tree. This 3rd party library is needed for XPS and eventually SVG support.[expat]
2007-11-07T04:19:13.410191Z Alex Cherepanov
Add a skeleton implementation of the text extraction device. It doesn't do anything useful yet, only prints "Hello world" once per page.[src/gdevtxtw.c src/bcwin32.mak src/openvms.mak src/macosx.mak src/watcw32.mak src/Makefile.in src/msvc32.mak src/unix-gcc.mak src/unixansi.mak src/macos-mcp.mak src/devs.mak src/os2.mak]
2007-11-02T19:09:03.093400Z Marcos H. Woehrmann
Fix for Bug 689316. On some systems XInitImage() appears to have problems with images that are one pixel in height, so if XInitImage() returns an error call XPutImage() instead.[src/gdevx.c]
2007-11-02T18:16:45.038692Z Ralph Giles
Document the interaction between a the vector device beginpage method and gdev_vector_stream() more clearly.[src/gdevvec.h]
2007-11-01T20:49:28.224038Z Ray Johnston
Make sure that errors are propogated to caller in the WTS device (such as VMerror). Bug 689511 for customer 951. DETAILS: This doesn't really fix the underlying problem seen by the (embedded) customer where the clist rendering uses a large amount of RAM.[src/gdevwts.c]
2007-11-01T17:22:45.182105Z Igor Melichev
PS interpreter : Trace the executed operators' names (continued). DETAILS : Fix an inaccurate coding of the last patch.[src/iinit.c]
2007-11-01T16:20:01.816428Z Igor Melichev
PS interpreter : Trace the executed operators' names. DETAILS : This change is syntactically equivalent for a default build. For obtaining the new functionality Ghostscript must be compiled with a new predefined macro DEBUG_TRACE_PS_OPERATORS. The new debug switch '!' prints names of operators executed while the interpretation. Note : Inline operators (which are expanded inside interp.c) are not printed.[src/iinit.c doc/Use.htm src/int.mak src/iinit.h src/interp.c]
2007-11-01T15:56:22.262417Z Alex Cherepanov
Move a 32K array from the stack to the heap to save stack space. DETAILS: Ghostscript is designed to run with 64K stack space for compatibility with embedded environments. Unlike other MS systems, Windows NT enforces stack space limit claimed by the application. MSVC 6 run-time uses about 8K internally and remaining 56K stack was insufficient.[src/gdevpdfi.c]
2007-10-31T17:01:02.758539Z Ralph Giles
Rewrite gs_getdefaultdevice to avoid allocating memory. The new version also skips tabs as whitespace and is more robust.[src/gsdevice.c]
2007-10-31T17:00:59.582623Z Ralph Giles
Add a new GS_DEV_DEFAULT makefile variable for passing a preferred list of default devices, in order of priority. These are passed through to the C code, and searched for in gs_getdefaultdevice().[src/gs.mak src/Makefile.in src/gscdefs.h src/gsdevice.c src/gscdef.c]
2007-10-31T17:00:55.551499Z Ralph Giles
Add Postcript bindings to gs_getdefaultdevice() and use them to set the default device in the interpreter. Bug 689273.[doc/Language.htm src/zdevice.c lib/gs_init.ps]
2007-10-31T17:00:51.435508Z Ralph Giles
Add a gs_getdefaultdevice() call and use it when printing the help message. It just returns the first device as before. Bug 689273.[src/gsdevice.h src/imainarg.c src/gsdevice.c]
2007-10-30T23:45:46.184301Z Ralph Giles
Add missing dependencies to the contrib device build.[contrib/contrib.mak]
2007-10-30T19:26:01.651347Z Igor Melichev
Fix (banding) : Improving the debug trace about compositors (continued). DETAILS : This change is algorithmically equivalent for release build. In the debug build it only improves debug printing with distinguishing gs_ and gx_ operations.[src/gstrans.c]
2007-10-30T17:47:49.373667Z Igor Melichev
Fix (banding) : Improving the debug trace about compositors. DETAILS : This change is algorithmically equivalent for release build. In the debug build it only adds more debug printing. 1. Added a debug printing for alpha, overprint and rop compositors when writing/reading from/to clist. 2. (gxclrast.c) When printing a matrix with the 'L' switch, use global page coordinates as rectangle operations do. It allows to map reading operatrions to corresponding writeing operations.[src/gsropc.c doc/Use.htm src/gsalphac.c src/gsovrc.c src/gxclrast.c]
2007-10-30T00:58:44.912591Z Ralph Giles
Add a cast to prevent a warning.[src/zfjpx.c]
2007-10-28T23:33:59.326612Z Alex Cherepanov
Move "true .setaccuratecurves" to the PDF graphic state initialization where it belongs. This fix enables accurate curve rendering by GSview doesn't use some parts of Ghostscript startup code. Bug 688434.[lib/pdf_main.ps lib/pdf_ops.ps]
2007-10-28T18:22:29.779063Z Ralph Giles
Correct a typo.[doc/Use.htm]
2007-10-28T17:17:47.899537Z Alex Cherepanov
Change pdf_base.ps::.pdfrun and pdf_sec.ps::.decpdfrun to ensure "PDFScanRules" == "true" while scanning the PDF, and if necessary revert it back to "null" before returning. Thanks to SaGS for the patch. Bug 688598. DETAILS: The bug is triggered by the construct "//DeviceGray" found in the sample PDF. The following command fails with the same error as GSView, and for the same reason: pdfopt.bat media_365163.pdf output.pdf When Ghostscript interprets a PDF directly, most of the job is done by LIB\pdf_main.ps::dopdfpages which sets "PDFScanRules" correctly. However, the initial part of scanning the PDF (trailer dict, ...), and the rebuild logic scan the PDF with wrong "PDFScanRules". Also GS's own various tools and GSView don't set/ reset it as needed. Implementation details: (A) ".pdfrun" and ".decpdfrun" dinamically construct procedures that do the real work and immediately execute them. The patch changes these procedures to include setting/ restoring "PDFScanRules". If "PDFScanRules" == "true" already, then "setuserparams" is not called at all, so normally (when ".[dec]pdfrun" executed during "dopdfpages") there's practically no impact on performance. There are also "token" calls outside these 2 procedures, but these calls are for scanning the xref and "# # obj" lines, which don't contain PDF name objects. (B) ".getuserparam" GS-specific operator changed to recognize scanner options too ("PDFScanRules" and "PDFScanInvNum"). This is needed by ".[dec]pdfrun" for restoring "PDFScanRules"; also used for an optimization (to omit calling "setuserparams" when not actually needed). Note: For "Process[DSC]Comment" it returns "true" if a procedure is set, and not the actual procedure. To retrive the procedures (or null if none set), use "currentuserparams". (C) ".currentuserparams" is NOT modified, so it does not return scanner options. If it did, these ended up being put into "userparams" and be affected by "save"/ "restore" (see the redefinition of "restore" in gs_lev2.ps).[src/itoken.h lib/pdf_base.ps lib/pdf_sec.ps src/zusparam.c src/ztoken.c]
2007-10-28T14:19:46.108672Z Alex Cherepanov
Stop reading the xref+trailer at the closing ">>" because PDF 1.7 Reference made "startxref" optional in some cases. Thanks to SaGS for thr patch. Bug 688283. DETAILS: The PDF 1.7 Reference, section F.2.3 "First-Page Cross-Reference Table and Trailer (Part 3)", 2nd paragraph on page 1031 states: "The first-page trailer may optionally end with startxref, an integer, and %%EOF, just as in an ordinary trailer. This information is ignored." (note the word "optionally"), so in such a case a PDF interpreter cannot rely on anything particular (like "startxref"/ "startref"/ "xref") to follow the trailer dictionary. Now consider a linearized PDF being incrementally updated, and you get that in the general case a "previous trailer" may lack the "startxref". Apparently, Acrobat does a similar thing when creating hybrid-ref PDFs.[lib/pdf_main.ps lib/pdf_rbld.ps]
2007-10-27T19:55:00.858126Z Igor Melichev
Banding : Extend clist language with trapezoids, linear color trapezoids and linear color triangles (continued 9). DETAILS : Bug 689526 "Regression: performance issues with r8118". This patch clips triangles an trapezoids with band bbox during the clist playback. The old code spends much time for rasterizes parts that fall outside the band, espcially if the band height is small. Also fixed an obsolete comment.[src/gxclrast.c]
2007-10-27T18:55:14.195971Z Alex Cherepanov
Extract and process default PDF file from the PDF collection when it is defined. Otherwise process the container PDF file. DETAILS: The procedure pdf_collection_files can be extended to select other PDF files from the collection and extract them for processing.[lib/pdf_main.ps lib/pdf2dsc.ps]
2007-10-26T07:41:30.826491Z Ken Sharp
Fix (pdfwrite): Type 1 CharStrings could be converted to invalid type 2 CharStrings if the glyph program used implicit start points for subpaths. DETAILS: Bug #689055 "pdfwrite creates a bad Type1C font" If a type 1 CharString used an implicit point, either the initial point (0,0) or the point resulting from a closepath, then the type 2 output code duplicated this. Unfortunately this is illegal in type 2 CharStrings where each subpath must begin with one of the 'move' instructions. (gdevpsfx.c) psf_convert_type1_to_type2, create a new boolean variable 'need_moveto' initialised to true. When we encounter a move operation, set it to false. When we encounter a closepath, set it back to true. Thus this variable is always true at the beginning of a subpath, and becomes false as soon as a move instruction is encountered. While converting type 1 CharStrings, whenever the current instruction is a line drawing operation, if 'need_moveto' create a move instruction, taking account of any pending glyph widths. This is only performed on the second (conversion) pass through the type 1 CharSrtring as we don't need to worry about this during the first (hint collection) pass.[src/gdevpsfx.c]
2007-10-26T01:49:56.180182Z Ralph Giles
Merge makeset.tcl into makehist.tcl.[toolbin/makehist.tcl toolbin/makeset.tcl]
2007-10-26T01:49:54.293117Z Ralph Giles
Remove obsolete release and diff scripts.[toolbin/3way.tcl toolbin/makefonts.tcl toolbin/maketars.tcl toolbin/makemaster.tcl toolbin/makeset.tcl toolbin/makewin.tcl]
2007-10-26T01:08:04.549848Z Ralph Giles
Document how to use -dTTYPAUSE with -dSAFER. Bug 687988.[doc/Use.htm]
2007-10-25T22:14:22.288695Z Ralph Giles
Correct some gcc warnings.[jbig2dec/config.h jbig2dec/jbig2_text.c jbig2dec/jbig2_image.h jbig2dec/jbig2_symbol_dict.c jbig2dec/jbig2_generic.c jbig2dec/jbig2_page.c jbig2dec/jbig2_refinement.c]
2007-10-25T00:30:18.383197Z Ralph Giles
Include an example of how to create non-ASCII font names in the cidfmap. Bug 688203.[doc/Use.htm]
2007-10-24T23:32:20.291355Z Ralph Giles
Append the CUPS font directory to the search path. Bug 689334.[src/configure.ac]
2007-10-24T22:46:28.083133Z Ralph Giles
Add an XCFLAGS macro to the MSVC build to match the variable of the same name in the unix builds. This is intended mainly for adding preprocessor defines at make time. Bug 689530.[src/msvc32.mak]
2007-10-24T22:46:25.428278Z Ralph Giles
Only add XLDFLAGS to LDFLAGS temporarily when checking for the additional X libraries. Bug 689411.[src/configure.ac]
2007-10-24T18:39:55.448984Z Ralph Giles
Use the proper build machinery to link to cups. DETAILS: Previously, the configure script just appended the output of cups-config to CFLAGS and LIBS which could confuse other parts of the build. The LIBS setting was actually ignored by cups.mak which hard coded liking to cups and cupsimage through the genconf -lib option, although it depended on it for the search patch if cups was in a non-standard location. Instead, we parse the output of cups-config to separate the dependent libraries and additional search paths if any, and pass those through to genconf in the intended way. This destroys the order of the link line, but GNU ld, at least, applies all -L paths to all -l libraries, so that should not distrurb the build. We pass any extra include paths in a special variable and use it directly when compiling gdevcups.c to avoid confusing the search path for other components. Configure also used to ignore cups-config if it found cups/raster.h in the current search path. We now prefer cups-config.[src/Makefile.in src/configure.ac cups/cups.mak]
2007-10-24T18:39:51.211490Z Ralph Giles
Abstract the autoconf build's link line flattening for generic use. DETAILS: The Ghostscript build system expects a list of bare library names for specifying library dependencies through the .dev files to genconf. The configure script had some code to decompose the usual unix-style "-lX11 -lXt" link flags returned by AC_PATH_XTRA. As we've added more optional external libraries to the autoconf build, this has become a general need, so the code is now abstracted into an autoconf macro for use elsewhere in the configure script.[src/configure.ac]
2007-10-24T07:31:09.815969Z Ken Sharp
Fix (pdfwrite) : An integer arithmetic overflow while converting Type 1 CharStrings into Type 2. DETAILS : Bug #689106 "Wrong charpath direction in PDF" Patch from Rolf Becker with minor improvements. A processing of big integers was implemented in gstype1.c while rendering a glyph, but it was not implemented in pdfwrite while converting a Type 1 font into Type 2. It caused an incorrect glyph outlines embedded into PDF. This patch factors out the old processing as a new function gs_type1_check_float and applies it in gdevpsfx.c . The function prototype is added to gxtype1.h as it needs to be public. The patch also improves comments in code because now we understand better what happens in there. For more details see comments in code. The change to gstype1.c is algorithmically equivalent except inserting a new check for overflow in float2fixed. The new check may fail when the old code renders an incorrect outline. We have no practical cases that demonstrate it.[src/gstype1.c src/gdevpsfx.c src/gxtype1.h]
2007-10-23T03:48:59.052392Z Alex Cherepanov
Handle yet another type of broken PDF generated by Adobe Acrobat 8.1 that lacks startxref operator. Bug 689413, customer 531.[lib/pdf_main.ps]
2007-10-21T20:49:29.646397Z Alex Cherepanov
Process duplicate entries in PDF 1.5 context stream the same way as the entries from regular streams: the first entry found (i.e. the last in the xref chain) takes efferct. Keep rebuilding logic intact, where the last entry wins. Bug 689513, customer 700.[lib/pdf_main.ps lib/pdf_rbld.ps]
2007-10-20T23:14:30.016619Z Alex Cherepanov
Check for unbalanced q operators in the pattern stream and add Q as needed. Bug 689523, customer 870.[lib/pdf_draw.ps]
2007-10-20T19:14:28.348994Z Alex Cherepanov
Make IGC_PTR_STABILITY_CHECK an independent compile-time flag that can be set from the command line without editing gxobj.h .[src/gxobj.h]
2007-10-20T16:34:38.276462Z Alex Cherepanov
Relax ICCBased color space validation. Don't reject correct PDF files that have ICCBased color space as an alternative color space to another ICCBased color space. Bug 689524, customer 870.[lib/gs_icc.ps]
2007-10-20T00:55:55.884848Z Ralph Giles
Pass the CFLAGS obtained for fontconfig from pkg-config separately to avoid contaminating the general build.[src/Makefile.in src/configure.ac src/unix-aux.mak]
2007-10-20T00:37:23.775560Z Ralph Giles
Remove a redundant check for pkg-config.[src/configure.ac]
2007-10-20T00:37:19.682121Z Ralph Giles
Look for fontconfig even if pkg-config doesn't find it. DETAILS: Like the comment says, pkg-config isn't universally installed, so we should not depend on it. If pkg-config isn't available or doesn't find fontconfig, check for the library and headers it in the standard locations.[src/configure.ac]
2007-10-18T18:58:54.836534Z Ralph Giles
Install header files as data, not executables. Bug 689466.[src/unix-dll.mak]
2007-10-18T00:36:37.403207Z Ralph Giles
Remove a spurious CFLAGS instance from the jasper compile line. DETAILS: The definition of CC_ passed from the top level makefile should already include a copy of the CFLAGS for environment overrides, so the duplicate copy here was unnecessary. Furthermore, the second expansion of CFLAGS at the end of the compiler command line could result in picking up a version of the jasper headers installed elsewhere in the system instead of the copy in JASSRC, causing the build to fail on undefined preprocessor symbols, since upstream doesn't have our error reporting callback.[src/jasper.mak]
2007-10-18T00:05:55.933230Z Ralph Giles
Replace our included libpng with the new upstream 1.2.22 release.[libpng]
2007-10-18T00:01:45.449158Z Ralph Giles
Move the current copy of libpng out of the way for a pending update.[libpng]
2007-10-17T23:04:50.954798Z Ralph Giles
Avoid memory corruption with broken files. Patch from the Ubuntu libjasper package.[jasper/src/libjasper/jpc/jpc_cs.c jasper/src/libjasper/jpc/jpc_dec.c jasper/src/libjasper/jp2/jp2_cod.c]
2007-10-16T07:54:08.209510Z Ken Sharp
ps2write: When encountering font names which contain unfortunate characters such as white space, or delimiters, emit the name as an escaped string and 'cvn' instead of a literal name. DETAILS: Bug #689420 "Errors with ps2write and special chars in FontName" Patch from SaGS with some minor improvements. Fonts whose name contains white space, or delimiter characters (eg /,(,[ etc) were being written into the type 1 font stream using the name unchanged. This causes the resulting PostScript to fail on any PostScript interpreter. The exact error varies depending on the placement of the invalid character and the following data. This is now handled by emitting the font name as a string, and using the cvn operator to convert the string to a name, escaping characters if required. Note that both the C portion of the code needs to change, in order to write escaped names, and the PostScript prolog in order to undo any name escapement. 1. (gdevpsf1.c) write_font_name, check to see if the font name contains any characters which we need to escape. If so, then use the existing routine 's_PSSE_template.process' to convert the name to an escaped character sequence. Update the write_font_name routine so that it optionally writes a name to the output. If the name does not need escaping, then simply prepend a '/' to make a literal name, otherwise append a 'cvn' to convert the escaped string to a name. When writing out the font header we just need the font name as a human readable string. When writing the /FontName entry in the font dictionary we need a PostScript name, either a literal or a PostScript escaped string converted to a name. (see below) 2. (gdevpsf1.c) psf_write_type1_font, alter the use of write_font_name in two places. Firstly to emit the name as part of the font comment, secondly to put the name as the value for the /FontName key in the fotn dictionary. In the first case we write it as a simple string, in the second as a name. 3. (opdfread.ps) The TypeDameons procedure extracts the FontName from the Font dictionary in the body of the job. Since the FontName can now be escaped, we need to undo the escapement before defining the font. Firstly we define a new procedure 'UnPDFEscape', secondly we call this when dealing with the FontName and the BaseFont keys, in order to convert the escaped name back to a normal name, so that the font can be found with findfont.[src/gdevpsf1.c lib/opdfread.ps]
2007-10-16T00:36:28.849878Z Ralph Giles
Don't override the memory set by the caller in the JPXDecode stream.[src/sjpx.c]
2007-10-16T00:36:27.806530Z Ralph Giles
It's the client's responsibility to call the set_defaults method on a new stream. Bug 689362. DETAILS: The JPXDecode stream implementation was calling set_defaults from within its own init method, clobbering the colorspace request passed in through the stream's parameter dictionary.[src/zfjpx.c src/sjpx.c]
2007-10-15T22:31:54.394164Z Henry Stiles
Error code from clist_decode_segment did not propagate back because the inner automatic variable code shadowed the outer.[src/gxclrast.c]
2007-10-15T18:09:18.231759Z Ray Johnston
Prevent C-stack overflow caused by infinite recursion. Related to previous fix in same function to access the correct target color procedure. DETAILS: Testing with other problem files detected the recursion. The previous method to access the saved target get_color_comp_index is moved before either use. EXPECTED DIFFRENCES: None.[src/gdevp14.c]
2007-10-15T13:11:16.778228Z Ken Sharp
pdfwrite: When writing the /CreationDate /ModDate keys in the Info dictionary, properly write the system local time instead of UTC. DETAILS: Bug #688783 "commit 6892 mis-uses the TZ environmental" A rather lengthy thread, but in essence quite simple. A change to calculate the system local time as an offset from UTC, and store this information in the form described in the PDF Reference (Section 3.8.3 "Dates" on p133 of the 1.6 PDF Reference). The patch uses code supplied by SaGS. (gdevpdf.c) pdf_initialize_ids, use the C runtime 'time' and 'gmtime' to determine the difference between local system time and GMT. Use this to calculate the difference (positive, negative, or none) from GMT, and the number of hours and minutes comprising the difference. Use 'localtime' to find the local system date and time. Take all of the information from above, and format the result according to the specification in the PDF Reference: (D:YYYYMMDDhhmmssZhh'mm') Where YYYY=4 digit local time year MM=2 digit local time month DD=2 digit local time day hh=2 digit local time hours (24 hour) mm=2 digit local time minutes ss=2 digit local time seconds Z=offset of local time from UTC Z=no difference +=local time later than UTC -=local time earlier than UTC hh'=hours difference between local time and UTC mm'=minutes difference between local time and UTC[src/gdevpdf.c]
2007-10-15T06:43:04.430544Z Marcos H. Woehrmann
Added code to the pxlcolor device (gdevpx.c) to set the color space even if the test for "portrait transformations" fails. DETAILS: The pclxl_begin_image() function performs a rather complicated test to see if the image transformation can be "handled" (line 1434). If this test fails the routine falls through to using gx_default_begin_image(). However, in this case the pcl-xl color space is never set and if the previous color space was eGray the pcl-xl stream will fail with ExtraData (because 3 times as much data as expected will be written). Presumably the inverse is also true, but I don't have a test case for it. The solution is to call pclxl_set_color_space() in the use_default case (a possibly more correct solution would be to call pclxl_set_color_palette()).[src/gdevpx.c]
2007-10-12T20:22:08.884187Z Ray Johnston
Fix SEGV when clist used with pdf14_cmykspot device. Bug 689493 for customer #190. DETAILS: When the clist is used, the pdf14 device sets the clist color procs (including get_color_comp_index) to it's own procedures, saving the actual target procs. When the Separation name is new, we need to use the saved target procs.[src/gdevp14.c]
2007-10-12T16:38:07.833396Z Ray Johnston
Fix divide by zero crash. Bug 689493 reported by customer #190. DETAILS: When new_width is 0, just use 1 in the test (works well enough for checking overflow)[src/gdevprn.c]
2007-10-11T16:36:26.031981Z Ray Johnston
Fix incorrect colors with transparency to cmyk+spot devices (such as tiffsep). Bug 689494 for customer #190. DETAILS: CMYK + Spot colors are subtractive. The blending with the 'bg' color was inverted, causing very strange colors. Note that the pdf14_cmykspot_put_image is VERY inefficient and at the very least should have logic added to write runs of the same color as a wide rectangle (rather than the current 1x1 pixel rectangles).[src/gdevp14.c]
2007-10-10T23:02:18.957895Z Igor Melichev
Fix (stroking) : Prevent installing an extra clipper device, step 2. DETAILS : Bug 689427 "Superposed clippers". The last patch doesn't fix the problem when stroking a path with a shading color. The new code distinguishes 3 cases : 1. When painting happens through low level device methods which don't accept a clipping path. It happens inside stroke_fill, so the new code passes the clipper device to it. 2. When the painting happens through fill_path, which does handle a clipping path. It happens inside FILL_STROKE_PATH, so the new code doesn't pass the clipper to it, but passes the clipping path as it worked before the last patch. 3. When the stroking algorithm is called from 'strokepath', don't need a clipping at all. This case works as before, but the new code doesn't construct a clipping device. Minor change : Added a new argument 'dev' to the macro FILL_STROKE_PATH to simplify the code understanding and debugging.[src/gxstroke.c]
2007-10-10T18:42:35.474048Z Ralph Giles
Pass the results of calling cups-config to cups.mak from configure through the top-level makefile rather than calling cups-config directly, so that passing an alternate cups environment to configure works. Bug 689496. DETAILS: This is more consistent, since configure and cups.mak were previously calling cups independently. However, setting the cups environment at the make level my have accidentally worked before; it won't work now.[src/Makefile.in src/configure.ac cups/cups.mak]
2007-10-10T17:40:38.235834Z Ralph Giles
Turn on keyword substitution on pdf_cslayer.ps. This is the correct fix for the issue mentinoed in r8283. Also set native line endings and remove some spurious executable properties.[lib/EndOfTask.ps lib/PDFX_def.ps lib/PDFA_def.ps lib/dumphint.ps lib/pdf_cslayer.ps]
2007-10-10T16:19:23.023493Z Marcos H. Woehrmann
Fixed Id line to make nightly regression run happy.[lib/pdf_cslayer.ps]
2007-10-10T15:28:26.622499Z Igor Melichev
Fix (stroking) : Prevent installing an extra clipper device. DETAILS : Bug 689427 "Superposed clippers". The old code installs a clipper in gx_stroke_path_only_aux and then (indirectly) calls gx_general_fill_path with passing same clipping path. It caused gx_general_fill_path to install a second clipper with same clipping path. This patch simply passes down a NULL clipping path. Minor change : Added a 'pcpath' argument to the macro FILL_STROKE_PATH for easier understanding and debugging.[src/gxstroke.c]
2007-10-10T10:13:45.175824Z Igor Melichev
Fix (pdf14 device) : Optimize the buffer backdropping, step 2. DETAILS : 1. Intersect the backdrop rectangle with the bbox of a real painting to the transparebcy buffer, which is accummulated from pdf14_fill_rectangle. It reduces the rectangle for a faster blending. 1.1. Removed min_int, max_int from pdf14_buf_new against an integer overflow when computing sizes of rectangles. 1.2. Do intersect rectangles in In pdf14_put_image, pdf14_cmykspot_put_image, pdf14_custom_put_image. 2. dump_planar_rgba still could access outside the buffer due to a recent patch is incomplete.[src/gdevp14.c]
2007-10-10T09:38:32.826812Z Igor Melichev
Fix (pdf14 device) : Optimize the buffer backdropping, step 1. DETAILS : This change is algorithmically equivalent. It only defines some local variables as a preparation to the next change.[src/gdevp14.c]
2007-10-10T08:59:39.164904Z Igor Melichev
Fix (pdf14 device) : Don't allocate transparency buffer for bands that appear outside the transparency bounding box. DETAILS : This is an optimization, which should be algorithmically equivalent. For bands outside the transparency bounding box the old code allocated a zero length buffer and performed fake operations with it. The main change is gdevp14.c ln 550. Others prevent an access to the buffer when it is not allocated. Note that in some cases the new check is excessive because (width <= 0 || height <= 0) normally means no buffer. We check for (buf->data == NULL) anyway to simplify the sefity proof and documentation.[src/gdevp14.c]
2007-10-10T08:12:49.566532Z Igor Melichev
Fix (pdf14 device) : Properly intersect rects when composing transparency buffers (continued 2). DETAILS : Bug 689498 "transparency: The buffer backdroping code can write outside bufers.". Bug 688631 "PDF segfault". This patch ports the revision 7064 changes from pdf14_put_image to pdf14_cmykspot_put_image and pdf14_custom_put_image, which were added after the revision 7064. They need same improvement, which was mised due to a development miscoordination. This change is committed without any testing, because the author has no test cases which involve pdf14_cmykspot_put_image and pdf14_custom_put_image. Possibly they need to build Ghostscript with special options and to run the test case of the bug 688631 with special devices. The bug 689498 is passed to Suport for further processing and testing.[src/gdevp14.c]
2007-10-09T19:33:27.492485Z Till Kamppeter
On "make soinstall" some files did not get installed.[src/unix-dll.mak]
2007-10-09T17:02:49.926924Z Igor Melichev
Fix (FAPI / UFST bridge) : A crash when processing an embedded CIDFontType 11. DETAILS : Debugged with running the test case of the bug 689471 with FAPI. Needs an additional change to lib/FAPIconfig for running the test case with FAPI : - /HookDiskFonts [1 2 9 11 42] % FontType values for disk PS fonts to be redirected to FAPI. - /HookEmbeddedFonts [1 2 9 11 42] % FontType values for embedded PS fonts to be redirected to FAPI. + /HookDiskFonts [2 9 11 42] % FontType values for disk PS fonts to be redirected to FAPI. + /HookEmbeddedFonts [2 9 11 42] % FontType values for embedded PS fonts to be redirected to FAPI. because UFST still can't handle embedded Type 1. This patch passes impl_PCLchId2ptr as p_PCLglyphID2Ptr argument. We believe it is correct for True Type, but we're not sure about Type 1, because Type 1 composite glyphs refer subglyphs in an inobvious way - see Type 1 specification.[src/fapiufst.c]
2007-10-09T08:28:49.108879Z Ken Sharp
pdfwrite: Allow downsampling of images in a /Indexed colour space, provided the downsampling type is 'subsample'. DETAILS: Bug 689265 "PDF created by GS 8.57 is much larger than from competitive creator" The original job contains several images, including one large one, which are in a /Indexed colour space. We can't use average or bicubic downsampling with /Indexed colour space, because the colours in the space may not be linear. It ought to be possible to use subsampling though. Where we previously checked the image colour space and decided to disable downsampling if the colour space was /Indexed, we now additionally check the downsampling type and permit it if the type is 'Subsample'. (gdevpdfi.c) pdf_begin_typed_image, check the downsample type as well as the colour space before deciding not to allow downsampling. (gdevpdsi.c) psdf_setup_image_filters, check if the colour space is /Indexed before deciding which set of image parameters to use (2 places). Also, if we do encounter a /Indexed space, make the compression filter into Flate to ensure we don't try and use any kind of JPEG compression, which may not work properly with Indexed spaces, and in any case is not the most appropriate type of compression in this situation.[src/gdevpsdi.c src/gdevpdfi.c]
2007-10-09T00:06:24.193850Z Igor Melichev
Fix (font emulation) : Could not handle unknown Ordering with FAPI. DETAILS : Debugged with running the test case of the bug 689471 with FAPI.[lib/gs_fntem.ps]
2007-10-08T10:05:33.511010Z Ken Sharp
pdfwrite: Alter the AIIM URL emitted when creating PDF/A files. DETAILS: Bug #689375 "" When writing PDF/A files we need to put a URL for the AIIM group in the metadata. Previously we were writing 'http://www.aiim.org/pdfa/ns/id.html' which is what Acrobat 7 does, now we write 'http://www.aiim.org/pdfa/ns/id/' which is what Acrobat 8 does. (gzpdfe.c) pdf_write_document_metadata change the URL as above.[src/gdevpdfe.c]
2007-10-08T07:13:32.510990Z Ken Sharp
pdfwrite: when encountering a glyph in a type 3 font for which no Charproc is defined emit a simple setcachedevice operation instead of an empty stream. DETAILS: Bug #688834 "Undefined characters in Type 3 fonts cause PDF conversion to fail" The original report, based on an older version of pdfwrite, states that an error occurs with pdfwrite when using glyphs from a type 3 font where there is no charproc defined for the glyphs. In fact, with the current version of pdfwrite, no error occurs, but the resulting file causes Acrobat to give warnings and display the result incorrectly. NB other PDF consumers do not behave this way. This appears to be caused by pdfwrite emitting an empty stream (length 0), because no charproc is captured for the glyph (since it has none). For some reason Acrobat takes exception to this. A simple solution is to write a stream which is not empty. The sequence '0 0 0 0 0 0 d1' , a setcachedevice with arguments all 0, resolves the problem. (gdevpdtt.c) In pdf_text_process, after capturing a Charproc for a type 3 font, check the length of the stream. If it is 0 bytes, then emit '0 0 0 0 0 0 d1' and carry on.[src/gdevpdtt.c]
2007-10-07T18:09:11.121700Z Igor Melichev
Fix (pdfwrite) : Ignore font errors that do not belong to embedded subset. DETAILS : Bug 689068 "ps2pdf13 fails with Error: /invalidfont in --ashow--". The document could successfully rasterize, but failed with invalidfont when converting to PDF. It happened due to a missed glyph, which is not atually used in the doeument. The patch skips font errors that do not belong to the font subset. However if the user requests to embed a complete font, a warning is printed to stderr and the document fails due to the font error as before the patch. Changes : 1. gdevpdtb.c : Process a coplete font copy error as explained above. 2. gsfont.c : Ignore missed glyphs when computing the "fixed width" font feature.[src/gdevpdtb.c src/gsfont.c]
2007-10-04T06:46:54.927607Z Ralph Giles
Revert a change inadvertently included r8257. This broke the MSVC build, which does not define CC_SHARED.[src/lib.mak]
2007-10-03T17:37:35.315273Z Ray Johnston
Revert patch 8268 (restoring the FCOfontmap-* files) and add the Encoding/ directory to the RESOURCE_LIST so that it will be include in the %rom% file system. This is the _real_ fix to bug #689050 and explains why the symptoms appeared to be related to having Wingdings installed on the system. Thanks to Henry and Igor in pointing out the incorrect Encoding used in the previous patch that led me to the actual problem.[lib/FCOfontmap-PCLPS3 lib/FCOfontmap-PS3 src/int.mak lib/FCOfontmap-PCLPS2]
2007-10-03T04:40:18.040901Z Ray Johnston
Fix FCOfontmap-* files so that Wingdings will be found. Bug #689050 for customer #951.[lib/FCOfontmap-PCLPS3 lib/FCOfontmap-PS3 lib/FCOfontmap-PCLPS2]
2007-10-03T00:18:12.256656Z Ralph Giles
Document the .IgnoreNumCopies device parameter. Bug 689491.[doc/Use.htm doc/Language.htm]
2007-10-02T23:55:30.880679Z Alex Cherepanov
Add extraction of layer information from Illustratir CS2/CS3 PDF files to the code base but don't run it in the default configuration.[src/int.mak doc/Develop.htm lib/pdf_cslayer.ps]
2007-10-02T07:31:58.125500Z Ken Sharp
pdfwrite: Convert 'text' followed by 'text charpath stroke' to a single text operation by using text rendering mode 2. DETAILS: Bug #689310 "Offset between text and outline in pdfwrite.dev" Emitting text, followed by the same text as an argument to charpath, and then stroking the resulting path previously resulted in a large path being emitted and stroked in the PDF file. This is inefficient, but worse the path is not grid fitted, whereas the text is. When used to stroke the outline of previously rendered text, either in a different colour or to create a 'bold' effect, the emitted path did not always precisely match the rendered text. This change is to emit this PostScript construct using the closest available match in PDF, which is the text rendering mode. There are two parts to this change, firstly to identify when a path is the result of a charpath, and secondly to merge text followed by charpath/stroke operations into a single operation on output. 1. (gzpath.h) Add a new member 'last_charpath_segment' to the gx_path_s structure. Update the path garbage collection code for relocation of new variable. 2. (gxpath.c) Initialise the new member 'last_charpath_segment' to 0 in gx_path_init_contents, and also in path_alloc_copy to prevent copies being identified as the result of a charpath. 3. (gxchar.c) We need to be able to tell if a path was the result of a charpath. To do this we store the final segment of a path in 'last_charpath_segment' of the path structure during show_finish, if the current operation was a charpath. See also item 11. 4. (gdevpdfx.h) Add a new member 'last_charpath_op' to the gx_device_pdf_s structure, to hold the boolean argument associated with a charpath operation. Also add to the pdf_substream_s structure to allow us to save and restore this value on entry to or exit from a PDF substream. 5. (gdevpdti.c) Save and restore the value of last_charpath_op in pdf_enter_substream and pdf_exit_substream. 6. (gdevpdfx.h) Add a new member variable 'last_charpath_op' to the 'pdf_substream_save_s' structure to allow us to save and restore the last_charpath_op as noted above. 7. (gdevpdtt.c) During gdev_pdf_text_begin, if the operation is a charpath, check the following conditions, if met then store a copy of the charpath boolean variable in a new member of the gx_device_pdf_s structure. 1. Operation must be a charpath 2. Current path must be empty (can't handle charpath concatenated to existing path) 3. The font being used for the current text must be the same as the font used for the previous stored (but not yet emitted) text. 4. The initial point of the text for the charpath must match the initial point of the previous stored text. 5. The text bytes must be the same as the previous stored text. 6. The point size of the text must match the previous stored text. Also, move the calculation of the font point size out of pdf_update_text_state so that we can calculate the size in pdf_compare_text_state_for_charpath' defined in 9 below without duplicating code. 8. (gdevpdtt.h) Prototype 'pdf_calculate_text_size' 9. (gdevpdts.c) Add a new function 'pdf_compare_text_state_for_charpath' to do the checking noted above. The pdf_text_state_s structure is not defined publicly, so we need code to access its members. Also add a function 'pdf_modify_text_render_mode' which will attempt to add a rendering mode (stroke, fill or clip) to existing text by updating the existing text rendering mode. Returns 0 if the existing text cannot be modified, and we fall back to emitting a path and stroke. 10. (gdevpdts.h) Add prototypes for the functions required in 9. 11. (gdevpdfd.c) In pdf_stroke_path, if the 'last_charpath_op' member of the pdf device structure is set, perform some more checks (below) and if passed, set the text render mode of the stored text, set the stroke colour, set the line width, and force the stored text to be emitted. This conveniently results in a gsave/grestore pair round the graphics state changes. 1. The last charpath operation must have been 'false charpath' 2. There must be a non-empty path (result of the charpath operation) 3. The 'last_charpath_segment' stored in the path must match the actual last segment in the path. (can't handle path segments added to the result of a charpath) 12. (gdevpdfg.h) Make the pdf_reset_color routine public, as we need to be able to set the colour from pdf_stroke_path. 13. (gddevpdfg.c) We need to be able to set a stroke colour while in a TEXT context, previously the routine pdf_reset_color, which emits colours and spaces, immediately switched to a STREAM context, which caused pending text to be flushed. pdf_reset_color was only called from two places, pdf_set_drawing_color and pdf_set_pure_color. The switch to a STREAM context has been moved to these routines, leaving pdf_reset_color to actually do the work without worrying about the context. It was found necessary to also reproduce some checks before switching context, to prevent unnecessary context switches. Removed unused local variable 'process_color' from pdf_reset_color. There is scope for additional enhancement with this code. Presently there is no attempt to deal with 'charpath gsave fill grestore stroke' constructs, nor to handle clipping paths resulting from charpath. There may be other possibilities.[src/gdevpdfx.h src/gxchar.c src/gdevpdts.c src/gdevpdtt.c src/gzpath.h src/gdevpdfd.c src/gdevpdts.h src/gdevpdfg.c src/gdevpdti.c src/gdevpdtt.h src/gdevpdfg.h src/gxpath.c]
2007-10-01T23:02:53.086636Z Ralph Giles
Have mkromfs use $(GS_INIT) instead of hard-coding gs_init.ps. It was intended that this be part of r8257.[src/int.mak]
2007-10-01T23:00:35.110412Z Ralph Giles
Update pkg-config support in the ijs tree.[ijs/Makefile.am]
2007-10-01T22:59:59.038063Z Ralph Giles
Improve portability in the autoconf build. Solaris doesn't support 'grep -q'. Bug 689490.[src/configure.ac]
2007-10-01T06:26:21.808008Z Suzuki Toshiya
Fix: (TT font handler) : Use given prebuilt_encoding when Apple Roman TrueType cmap subtable is chosen DETAILS: As current implementation assumes /prebuilt_encoding[] is compatible with WinAnsiEncoding when Microsoft UCS2 TrueType cmap subtable is chosen, current implementation assumes /prebuilt_encoding[] is same with MacRomanEncoding when Apple Roman TrueType cmap subtable is chosen. /prebuilt_encoding[] is completely ignored and the inverse of MacRomanEncoding is used. Therefore, when Apple Roman TrueType cmap subtable is chosen but /Encoding is StandardEncoding or PDFDocEncoding, some characters are shown by wrong glyphs. This patch uses /prebuild_encoding[] if it's given, when Apple Roman TrueType cmap subtable is chosen. According to PDF Ref 1.7 p. 431, MacRomanEncoding does not cover all characters in Apple Roman TrueType cmap subtable, 16 characters are missing. To exploit the glyphs as many as possible via Apple Roman TrueType cmap subtable, this patch introduces "MacRomanEncodingForTrueType" including missing 16 characters. By this change, 16 glyphnames can be exploited via Apple Roman TrueType cmap subtable. There might be broken TrueType fonts that use the names in MacRomanEncoding at incompatible 8bit charcode. The text drawn by such fonts would be broken, the results are unexpected.[lib/gs_ttf.ps]
2007-10-01T06:19:18.139797Z Suzuki Toshiya
Fix: Preprocess the glyphnames in prebuilt_encoding by AdobeGlyphList for Microsft UCS2 cmap subtable DETAILS: According to PDF Ref 1.7 p. 430, Adobe modern products always prioritize Microsoft UCS2 TrueType cmap subtable regardless with /Encoding, as far as the font is declared as Nonsymbolic by /Flags. For example, even if /Encoding is MacRomanEncoding, Microsoft UCS2 TrueType cmap subtable is prioritized than Apple Roman TrueType cmap subtable. The encoding of Microsoft UCS2 TrueType cmap is not a superset of MacRomanEncoding, see PDF Ref 1.7 Appendix D. Current implementation expects the content of /Encoding is always compatible with chosen TrueType cmap subtable, thus unexpected mismatching causes loss of glyph like: bug 689351 "Content Loss for certain Embedded Type42 Glyphs with gs8.57" When Microsoft UCS2 TrueType cmap subtable is chosen, the glyphnames used in /prebuilt_encoding[] should be preprocessed: the glyphnames changed to the charcode compatible with Microsoft UCS2 encoding scheme, before combining with charcode-glyph mapping table in Microsoft UCS2 TrueType cmap subtable. The preprocessing should be done by AdobeGlyphList that maps known glyphnames to UCS2 charcode. The unknown glyphnames are left to second processing in /.pdfmapchars. This preprocess fixes bug 689351. There might be broken TrueType fonts that use the names in AdobeGlyphList at incompatible UCS2 charcode. The text drawn by such fonts would be broken, the results are unexpected.[lib/gs_ttf.ps]
2007-09-30T19:46:25.258028Z Alex Cherepanov
Add an option that controls rendering of PDF annotations. By default annotations are rendered as before.[lib/pdf_main.ps doc/Use.htm]
2007-09-29T05:53:34.943145Z Alex Cherepanov
Following the PDF spec, don't use .notdef glyph in Type 3 font. .notdef may not be present at all. Bug 689475[lib/pdf_font.ps]
2007-09-27T23:06:07.081517Z Ralph Giles
Remove the mkromfs code under 'make clean'. Bug 689474. Also, use the GS_INIT define instead of hard-coding gs_init.ps as the root of the postscript library code.[src/lib.mak src/gs.mak]
2007-09-27T20:30:39.973443Z Ralph Giles
Improve shared build support on MacOS X.[src/configure.ac src/unix-dll.mak]
2007-09-27T20:26:51.405933Z Ralph Giles
Install iapi.h and ierrors.h as part of the soinstall makefile target. Bug 689466.[src/macosx.mak src/Makefile.in src/unix-dll.mak src/unix-gcc.mak]
2007-09-27T20:20:46.283268Z Ray Johnston
Prevent BandWidth from being set smaller than the page width. Fixes crash reported in bug #688734.[src/gxclist.c]
2007-09-26T09:48:55.994917Z Igor Melichev
Fix (Windows installer) : MSVC can't build dwinst.c . DETAILS : A recent patch erroneusly replaced 'private' keyward in a C++ class definition.[src/dwinst.h]
2007-09-26T04:37:20.025441Z Alex Cherepanov
Fix multiple inclusion of page objects in the optimized PDF file. Extend special handling of page objects to Annots and AcroForm object enumeration. Bug 689292, customer 932.[lib/pdfopt.ps]
2007-09-25T13:31:24.199299Z Ralph Giles
Replace the 'private' define with the now standard C keyword 'static'. DETAILS: The compilers we support have supported static for some time now, so idiomatic, and removes one of the obstacles to compiling Ghostscript as C++. The patch also removes support for compilation with -dNOPRIVATE, which is not longer necessary with modern debuggers.[src/gdevm48.c src/idstack.c src/gdevmsxf.c src/gdevrinkj.c src/gdevmem.c src/gdevmem.h src/gdevwdib.c src/gxoprect.c src/gdevsunr.c src/zvmem.c src/gdevpdtc.c src/gstrap.c src/gsfcmap1.c src/gxxfont.h src/gswts.c src/gsstate.c src/gdevlbp8.c src/zcsdevn.c src/gdevdm24.c src/zcontext.c src/gxdhtserial.c src/gdevpdts.c src/gdevcljc.c src/iscanbin.c src/gdevmiff.c contrib/gdevlx7.c src/gxclutil.c src/gp_mshdl.c src/zfont.c contrib/japanese/gdevml6.c src/zarray.c src/gxdevcli.h src/gdevpe.c src/zchar42.c src/gsfont0.c src/gscscie.c contrib/lips4/gdevlips.c src/gdevwts.c src/zdfilter.c src/icfontab.c src/zht1.c src/zdevcal.c src/zpcolor.c src/gdevpdfi.c src/zcssepr.c src/sdcparam.c contrib/gdevcd8.c src/bcwin32.mak src/zdps1.c src/gdevokii.c src/gdevpdtd.c src/zcfont.c src/zhsb.c src/gdevprna.c src/zcolor.c src/gxhtbit.c src/sfxfd.c src/zupath.c contrib/lips4/gdevl4v.c src/gdevpdtt.c src/gpmisc.c src/gdevpbm.c src/ireclaim.c src/gdevmrun.c src/gconf.c contrib/japanese/gdevnpdl.c src/zfbcp.c contrib/japanese/gdevmag.c src/gserver.c src/gp_psync.c src/gdevcmap.c src/zht2.c src/gdevpdfj.c src/zfarc4.c src/gp_os2pr.c src/gdevwprn.c src/gdevpsd.c src/gsiomacres.c src/gxclfile.c src/gxpdash.c src/ztrap.c src/gxfilltr.h src/gdevpdte.c src/gdevdevn.c doc/Drivers.htm contrib/japanese/gdevalps.c src/gsgcache.c src/zfile.c src/gdev4693.c src/gsptype1.c src/gxchar.c src/gxclbits.c src/zfcid0.c src/gsfcid2.c src/zgstate.c contrib/gomni.c src/gsalloc.c src/zfontenum.c src/gdevmeds.c src/gdevmpla.c src/gdev4081.c src/gscicach.c src/watclib.mak src/gxclzlib.c src/istack.c src/zfont0.c src/zmath.c src/gdevpdfk.c src/gdevhit.c src/gxclimag.c src/gxhintn1.c src/gxfillts.h src/gdevpdtf.c src/gdevddrw.c src/gschar.c src/gxht.c src/gdevpsfm.c src/sarc4.c src/gdevpsdp.c src/gxcht.c src/gsptype2.c src/gdevpsu.c src/gdevxalt.c src/gdevclj.c src/zvmem2.c src/zfcid1.c src/gstrans.c contrib/gdevln03.c src/gstype2.c src/icontext.c src/zstring.c src/zfont32.c src/gzspotan.c src/gxclip2.c src/gdevdrop.c src/gp_macio.c src/sbhc.c src/scfd.c src/gsdps.c src/zfont1.c src/spngp.c src/gdevcgml.c src/gdevpx.c src/gsmatrix.c src/gdevl256.c src/igcref.c src/zcharx.c src/gxtype1.c src/zdouble.c src/spdiff.c src/gdevcp50.c src/gsmemret.c src/gdevpdtw.c src/gxclip.c src/sfilter1.c src/iname.c src/zmedia2.c src/gxiscale.c src/gxpcmap.c src/gdevnfwd.c src/zcontrol.c src/gdevxcmp.c src/gsfcmap.c src/scfe.c src/zfont2.c src/gdevlj56.c src/gxp1fill.c src/gsciemap.c src/gdevhl7x.c src/zdscpars.c src/gdevos2p.c src/gsparam.c src/gdevpdfm.c src/gp_unix_cache.c src/imain.c src/gdevwpr2.c src/zfilter2.c src/zfont42.c src/zchar.c src/smd5.c src/gdevsun.c src/ztrans.c src/sjpx.c src/zcsindex.c src/gdevrops.c src/gxipixel.c src/zcidtest.c src/sfilter2.c src/gdevijs.c src/gdevsnfb.c src/gdevifno.c src/gscrd.c src/gxmclip.c src/gdevjpx.c src/gdevcslw.c src/zfdctd.c src/zdps.c contrib/gdevhl12.c src/gdevdsp.c src/zmatrix.c src/gdevescp.c src/gsiodev.c src/igc.c src/gdevpipe.c src/msvc32.mak src/gdevmacxf.c src/gsfunc0.c src/gdevsvga.c src/gdevpdti.c src/zdosio.c src/gdevepsn.c src/gsparam2.c src/gdevpsf1.c src/gdevpsds.c src/zfsample.c src/zfdecode.c src/gsstruct.h src/siscale.c src/gxfill.c src/gsdsrc.c src/gximag3x.c src/gxclread.c src/dwtrace.c src/gdevmswn.c src/gdevjpeg.c src/siinterp.c src/gdevbbox.c src/gsdll.c src/gspath1.c src/gdevtfax.c src/gdevpjet.c src/gdevphex.c src/sjpegc.c src/gshtscr.c src/zfdcte.c src/gsnogc.c src/zfcmap.c src/gdevbit.c src/gdevfax.c src/gdevbmpa.c src/gsequivc.c src/gp_wsync.c src/gsdevice.c src/gxclmem.c src/gscparam.c src/gshtx.c src/gdevsj48.c src/gdevpdfo.c src/sdctd.c src/gsmemory.c contrib/japanese/gdevfmlbp.c src/gdevcdj.c src/scfdgen.c src/ttcalc.c src/gdevtknk.c src/gdevpsf2.c src/gxidata.c src/gsroptab.c src/gdevm1.c src/gsistate.c src/os2.mak src/sstring.c src/gscolor2.c src/gxpath.c src/scfparam.c src/gdevupd.c src/interp.c src/gsmalloc.c src/zcrd.c src/ttfmain.c doc/C-style.htm src/gdevm40.c contrib/japanese/dviprlib.c src/gsiodisk.c src/gdevpsim.c contrib/japanese/dviprlib.h src/gdevpcfb.c src/gdevvec.c src/gp_msprn.c src/gdevmgr.c src/sdeparam.c src/gxacpath.c src/gdevpdfp.c src/ziodev.c src/gslib.c src/gdevimgn.c src/gdevvglb.c src/sdcte.c src/gsovrc.c src/gxshade1.c src/gxccache.c src/gdevm32.c src/gxfdrop.c src/gp_unifs.c src/gsparams.c src/gxhintn.c src/gsiorom.c src/gdevbjcl.c src/dvx-gcc.mak src/gdevpsdu.c src/gp_mswin.c src/gdevm2.c src/gspath.c src/gdevwddb.c src/gp_os2.c src/zcolor1.c src/gxpcopy.c src/gdevdjet.c src/gdevstc.c src/ialloc.c src/gxfapiu.c contrib/japanese/gdevlbp3.c src/zpath1.c src/gdevm24.c contrib/eplaser/gdevescv.c contrib/gdevxes.c src/ilocate.c src/gxdcolor.c src/gdevpm.c src/gdevbmp.c src/gschar0.c src/gdevbmpc.c src/zdevice.c src/gscie.c src/gdevsppr.c src/igcstr.c src/gxi16bit.c src/gdevn533.c src/idebug.c src/gsht.c src/gsncdummy.c src/gsfunc3.c src/gdevm16.c src/gdevperm.c src/genconf.c src/zfilter.c src/gstype42.c src/sa85d.c src/sbcp.c src/zcolor2.c src/gdev3b1.c src/gdevtrac.c src/gp_ntfs.c src/gdevatx.c src/zfproc.c src/genht.c src/zgeneric.c src/gs.c src/gxclrect.c src/zdevice2.c src/gsshade.c src/sjbig2.c src/gdevpdfb.c src/gscrdp.c src/msvclib.mak src/sjbig2.h src/gxclrast.c src/gsicc.c src/zcid.c src/zfile1.c src/gdevp2up.c src/zimage3.c src/gdevo182.c src/zarith.c src/gdevpdfr.c src/zcspixel.c src/gximage1.c src/gdevppla.c src/zmisc1.c contrib/gdevop4w.c src/wccommon.mak src/gsfunc4.c src/gxclpath.c src/gxcmap.c src/gxfcopy.c src/gdevpsft.c src/gdevtfnx.c src/gsmisc.c src/gxicolor.c src/zpath.c src/gdevm4.c contrib/opvp/gdevopvp.c src/gxfillsl.h src/zcolor3.c src/gxpageq.c src/gsdparam.c src/gxcpath.c src/gdevprn.c src/gdevlxm.c contrib/japanese/gdevdmpr.c src/gdevcif.c src/gxdevndi.c src/gdevprn.h src/gdevpdfc.c contrib/gdevgdi.c src/gdevabuf.c src/gdevherc.c src/gdevsgi.c src/zcie.c src/gdevsco.c src/stream.c src/gdevdflt.c src/zcharout.c src/gdevepsc.c src/gdev8510.c src/gximage2.c src/srld.c src/zht.c src/zncdummy.c src/gxstroke.c src/gxshade4.c contrib/gdevlx32.c src/zmisc2.c src/iparam.c src/sjpx_luratech.c src/zrelbit.c src/iinit.c src/gdevxini.c src/gxclist.c contrib/japanese/gdevmjc.c src/watcw32.mak src/gxccman.c src/gsalphac.c src/gdevpsfu.c src/gxshade.c contrib/japanese/gdevmjc.h src/gdevlp8k.c src/zfunc.c src/gsclipsr.c src/idict.c src/ttfmemd.c src/gscoord.c contrib/japanese/gdevrpdl.c src/genarch.c src/ztype.c src/gdevxxf.c src/zshade.c src/gdevpdfd.c src/gdevdgbr.c src/gdevmr2n.c src/gdevxcf.c src/gdevcfax.c src/zicc.c src/zchar1.c src/vdtrace.c src/gscdevn.c src/iscan.c src/gsnotify.c src/gdevpdft.c src/gximage3.c src/gdevpsdi.c src/srle.c src/zfilterx.c contrib/gdevlx50.c src/shcgen.c src/zmisc3.c src/zfapi.c src/zfunc4.c contrib/gdevbjc_.c src/gscpixel.c src/ziodev2.c src/gsiodevs.c src/zmisc.c src/gdevplnx.c src/gxttfb.c src/simscale.c src/zfzlib.c src/Makefile.in src/dscparse.c src/gscsepr.c src/gdev3852.c src/iutil2.c src/dscparse.h src/gsimage.c src/gxwts.c src/gstext.c contrib/japanese/gdevj100.c src/msvccmd.mak src/gdevpdfe.c src/gsflip.c contrib/lips4/gdevlprn.c src/gdevadmp.c src/sidscale.c src/zchar2.c src/zdpnext.c src/geninit.c src/zusparam.c src/gdevjbig2.c src/gdevpdfu.c src/gximage4.c contrib/gdevdj9.c src/gxshade6.c src/gdevp14.c contrib/lips4/gdevl4r.c src/dwinst.h src/gdevpdf.c src/macosx.mak src/zpacked.c src/ifont.h src/zfmd5.c src/gp_dosfe.c src/iutil.c src/gdevpng.c src/zrop.c src/zalg.c src/zfjpx.c src/gzpath.h src/sfxstdio.c src/gspaint.c src/sjbig2_luratech.c contrib/japanese/gdev10v.c contrib/gdevmd2k.c src/sjbig2_luratech.h src/gdevccr.c src/gdevdcrd.c src/zbseq.c src/ziodevsc.c src/imainarg.c src/zfrsd.c src/gdevl31s.c src/gdevdjtc.c src/spprint.c src/gdevpcx.c src/zfileio.c src/zbfont.c src/slzwd.c contrib/japanese/gdevespg.c src/unix-gcc.mak src/gdevpdfv.c src/gxpflat.c src/gxifast.c src/zsysvm.c src/gsimpath.c src/gdevx.c contrib/gdevbjca.c src/gsmemlok.c src/sbwbs.c src/gximage.c src/gdevstc4.c src/ziodevs.c src/unixansi.mak src/gdevpsfx.c src/szlibd.c src/gscspace.c src/gdevimdi.c src/gdevdfax.c src/gdevm8.c src/gdevpnga.c src/gsropc.c src/zstack.c src/gsfcid.c src/gsfont.c src/isave.c src/zimage.c src/gdevm64.c src/gdevcgm.c src/zdict.c src/zfimscale.c src/gdevtsep.c src/gsfont0c.c src/iccfont.c src/gsht1.c src/gdevpdfg.c contrib/japanese/gdevp201.c src/gdevps.c src/gspcolor.c src/gxi12bit.c src/gxcllzw.c src/zfjbig2.c src/gdevpdtb.c src/gsdps1.c src/gdevs3ga.c src/slzwe.c src/gshsb.c src/gscolor.c src/smtf.c src/ztoken.c src/gxpaint.c src/x_.h src/gdevtifs.c src/zchar32.c src/seexec.c src/gdevm56.c src/spsdf.c src/gximono.c src/fapiufst.c src/szlibe.c src/gxctable.c src/gp_vms.c src/gp_iwatc.c src/gp_os9.c src/gdevbj10.c src/gxclipm.c src/zpaint.c src/gdevmac.c src/stdpre.h src/iplugin.c contrib/japanese/gdevfmpr.c src/gsgdata.c src/gdevmac.h]
2007-09-24T03:52:18.847453Z Alex Cherepanov
Ignore color operations in uncolored type 3 font in PDF files for compatibility with Acrobat Reader 6 and higher. Bug 689302, customer 870.[src/int.mak lib/pdf_draw.ps src/zchar.c]
2007-09-20T12:15:52.643667Z Igor Melichev
Fix : A crash in garbager after clist playback fails in image. DETAILS : This problem was occasionally detected when disk overflow happens with the test case of the bug 689440. device_clist_enum_ptrs, device_clist_reloc_ptrs process gx_device_clist::writer.clip_path when image_enum_id is not zero. The clist playback code sets it when processing an image. We guess it was done to avoid redundant clist writing, and we think it's not a best way to do that. If an image processing fails with an error, the old code does not reset image_enum_id. Later (when the interpreter closes) the garbager processes gx_device_clist::writer.clip_path . But in the test case it appears to be a pointer from global memory to local memory, and its relocation appears wrong. A crash happens while validating the heap after the relocation. We're not sure why gx_device_clist::writer.clip_path needs to be set between image plane data portions, and why the garbager methods are coded to process it. We guess all these manipulations are wrong, and a right way should be to call cmd_check_clip_path in clist_image_plane_data. See also comment in cmd_check_clip_path : "The clip path might have moved in memory". We guess it assumes that the pointer is not relocated when image_enum_id is zero and the ppointer is set. We guess it should be regular assumption for all cases, and the clist device garbager methods must never process it. This patch applies a minimal change to prevent the crash, and does not close other suspections. The change simply closes the image enumerator when writing to it ends with an error.[src/gxclrast.c]
2007-09-20T08:49:49.922199Z Igor Melichev
Fix (pdfwrite) : Allow image encoding filter initialization with no parameters passed from the client. DETAILS : Bug 689458 "pdfwrite image crash (pcl and xps)". The change 6122 doesn't account that some client may pass no parameters for filter initialization. Fixing it now and improve the documentation.[src/gdevpsdi.c]
2007-09-18T19:11:21.591397Z Ralph Giles
Update the build instructions to reflect current practice of shipping all the 3rd party libraries we depend on. Bug 689446.[doc/Make.htm]
2007-09-18T19:01:34.199941Z Ralph Giles
Correct some documentation errors. Bug 689433.[doc/Projects.htm lib/ps2pdf.cmd doc/Use.htm lib/ps2pdf.bat doc/Ps2pdf.htm]
2007-09-18T17:32:31.734909Z Ralph Giles
Remove obsolete font encoding and compilation instructions from the documentation. Bug 689432.[doc/Fonts.htm]
2007-09-18T15:41:08.152952Z Igor Melichev
Fix : The interpolation of imagemask must not apply to high resolution images (continued). DETAILS : Fixing an inaccuracy in a comment in the last patch.[lib/gs_img.ps]
2007-09-18T15:33:51.055573Z Igor Melichev
Fix : The interpolation of imagemask must not apply to high resolution images. DETAILS : Bug 689249 "Major performance degradation rendering PDF", The revision 7123 implements a conversion of imagemask into a bigger image with a smoother pixel granularity. Actually the conversion isn't useful for high resolution images which map an image pixel into a small number of device pixels. This patch implements such check and it apparently helps for pdfwrite. Note it includes an arbitrary threshold, which may need further adjustment. See comment in code.[lib/gs_img.ps]
2007-09-14T10:17:07.152885Z Igor Melichev
Banding : Extend clist language with trapezoids, linear color trapezoids and linear color triangles (continued 8). DETAILS : Bug 689436 "pattern rendering regression with revision 8095". Do not write tile phase to clist before trying to write the color. If the latter fails, the phase may become wrong due to overloading cmd_opv_set_tile_phase with tile phase and device halftone phase. With the test case the old code, when writing a trapezoid to clist, first writes halftone phase, then fails to write the pattern color and falls back to gx_default_fill_trapezoid. The latter writes strip_copy_rop with it own phases. But the clist reader expects strip_copy_rop phase to be written *after* the tile header, so the reader misses the phase sychronizm. The fix simply delays writing the phase after the color is written.[src/gxclpath.c]
2007-09-14T05:23:52.359324Z Alex Cherepanov
Add recognition of a CFF file fith the extended header = <01000C02>. Bug 689449, customer 1110.[lib/pdf_font.ps lib/gs_cff.ps]
2007-09-13T08:30:48.823871Z Ken Sharp
Update pdfwrite to handle type 0 fonts with type 1 or type 2 descendant fonts (continued). DETAILS: Bug #689212 "irregular baselines - gs pdfwrite changes CFF to Type 3". There are no functional changes, the new code behaves the same as the old. The temporary buffer allocated in pdf_text_process is used to hold the list of glyph name indices, and the working buffer of indices for pdf_obtain_font_resource_unencoded, rather than allocating new memory. This considerably simplifies the clean-up on error in scan_cmap_text. 1. gdevpdtt.c In pdf_text_process, ensure that enough memory is available in the temporary buffer. We need to promote character codes to glyph name indices, so we need storage for as many glyph name indices as there were input character codes. In addition, we need a temporary buffer of the same size for pdf_obtain_font_resource_unencoded (maximum required) so we need to double this amount. 2. Update process_cmap_text to pass the buffer allocated in pdf_text_process, and passed as an argument to process_cmap_text, to scan_cmap_text. 3. Alter the definition of scan_cmap_text to take the temporary buffer as an argument. Modify the code in scan_cmap_text to use the temporary buffer rather than allocating new space. Remove all the code for allocating and especially freeing the temporary memory. Some corrections to indenting also performed here.[src/gdevpdtc.c src/gdevpdtt.c]
2007-09-11T19:29:17.888456Z Igor Melichev
Fix (filling algorithm) : Split big segments before filling a path. DETAILS : Bug 689397 "Infinite loop is PS ATS file tp pcxcmyk device." The old code didn't split big segments due to an inaccurate coding. It caused a fixed overflow with in a coordinate compitation and a loop of about 2^30 steps.[src/gxpcopy.c]
2007-09-10T08:31:42.651229Z Ken Sharp
Update pdfwrite to handle type 0 fonts with type 1 or type 2 descendant fonts. DETAILS Bug #689212 "irregular baselines - gs pdfwrite changes CFF to Type 3" There was previously no code in pdfwrite to handle type 0 fonts with type 1 descendant fonts. This caused pdfwrite to 'fall back' to the default implementartion which converts glyphs to a type 3 bitmap font. This change is to enable scalable fonts to be embedded in the output. NB it is not possible, in PDF, to construct a type 0 font with anything other than CIDFonts as descendants, and we must therefore output one or more type 1 fonts to do the job. 1. (gdevpdtt.c) in scan_cmap_text add a case to handle a type 1 descendant font. The main work is done in this routine; we create a list of glyph name indices representing each of the input character codes and later we use pdf_obtain_font_resource_unencoded and the TEXT_FROM_GLYPHS operation to mark the font usage, and create an 'encoded' string for output. If font->procs.next_char_glyph returns a glyph name index, then we simply add it to our list, if it returns a character code (a CMap can map a character code in the type 0 font to a character code in a descendant font) then we use the descendant font 'procs.encode_char' to get a glyph. Once we have a complete list of glyphs, we pass it to pdf_obtain_font_resource_unencoded to add the glyphs to the encoding, and return a string where the character codes match the newly created/modified encoding. Finally we pass the encoded string and glyph list to process_text_modify_width, using the descendant font. A couple of minor points; its possible to change descendant fonts in the middle of a string, and we need to cope with that, hence the copying of the last glyph in the list when a font_change occurs. Its possible to return a different pdfont if we run out of encoding positions in the current one, which can result in multiple type 1 fonts in the output. 2. We need to use the function adjust_first_last_char, which was defined private in gdevpdte.c, so this has been made public. 3. A prototype for adjust_first_last_char has been added to gdevpdtt.h 4. The function reserve_char_code_in_pdfont was written to handle single glyphs, it can now be called with multiple glyphs. The loop for re-using positions in the encoding with /.notdef codes didn't use the 'last_reserved_char' argument, which meant that it kept returning the same position. To prevent this it now pays attention to the 'last_reserved_char' argument. 5. Finally, the routine pdf_make_text_glyphs_table_unencoded, which calls reserve_char_code_in_pdfont also did not previously expect to be called with multiple glyphs. The loop below do_unkown has been modified to use a local variable, instead of pdfont->u.simple.last_reserved_char. THis means that, should an error occur, the value of pdfont->u.simple.last_reserved_char will not be modified.[src/gdevpdtc.c src/gdevpdtt.c src/gdevpdte.c src/gdevpdtt.h]
2007-09-09T00:53:12.649192Z Alex Cherepanov
Make pswrite and epswrite devices generate proper line-interleaved image stream even when they receive several scan lines at once. This happens when the source image operator takes large strings as multiple data sources. Bug 688200, customer 632.[src/gdevps.c]
2007-09-08T22:31:20.200765Z Alex Cherepanov
Declare Ghostscript as _LARGEFILE64_SOURCE program, i.e. request transitional interface to large file support. Check for mkstemp64() availability specially.[src/Makefile.in src/configure.ac src/stdpre.h src/gp_unifs.c]
2007-09-08T21:59:54.482448Z Alex Cherepanov
Include our std.h header first to ensure consistent type definitions in contributed files. This is required on HP-UX with aC++ compiler.[contrib/gomni.c contrib/pcl3/eprn/pagecount.c contrib/pcl3/src/pclcap.c contrib/gdevlx50.c contrib/opvp/gdevopvp.c contrib/pcl3/eprn/mediasize.c]
2007-09-08T17:05:59.540260Z Till Kamppeter
Reflect in the PPD files that the CUPS support comes with GPL Ghostscript now and not with ESP Ghostscript.[cups/pxlmono.ppd cups/pxlcolor.ppd]
2007-09-05T19:21:05.959793Z Alex Cherepanov
Replace non-standard function call fdopen64() with fdopen(). The former is not available on most platforms and not needed anyway because O_LARGEFILE flag is set earlier in the code. Bug 689175.[src/gpmisc.c]
2007-09-05T07:54:54.782032Z Suzuki Toshiya
Fix (TT fonts) : Suppress loading trailing data after chosen cmap subtable. DETAILS: The current cmap selector/loader tries to load a subtable for Microsoft platform && UCS2 encoding with anything in trailer, although only MS+UCS2 subtable is used. Thus, if the cmap table has several additional subtables after MS+UCS2 subtable (e.g. multiple 16bit cmap subtable for Shift-JIS/Big5/GB2312/Wansung/Johab, or very long 32bit subtable in format 8/10/12, or simple junk data), cmap subtable loader tries to load MS+UCS2 subtable and trailing garbage, and tries to define /cmaptab for concatenated string of them. So, rangecheck or limitcheck error can occur due to too-long string. Typical example is found in bug 688337 which is caused by TrueType font including cmap subtable in format 12. If we restrict the scope to MS+UCS2 subtable, it must not be greater than 0xFFFF bytes. Because cmap subtable headers in format 0,2,4,6 define these tables length in 16bit. The cmap parser is fixed to check the subtable header content and read exact length of chosen subtable, to exclude trailing garbage. In addition, /getinterval_from_stringarray has a bug that appears when the end of requested string just fits to the gap of member strings. The bug is fixed, too. By this patch, bug 688337 is fixed. DIFFERENCE: None.[lib/gs_ttf.ps]
2007-09-03T13:19:11.511212Z Alex Cherepanov
Fix reference counting logic for clip stack elements. The reference counter now shows the number of gstates that point to a given element directly or indirectly. Bug 689429.[src/gsclipsr.c src/gsstate.c]
2007-08-31T20:53:42.169700Z Igor Melichev
Fix (graphics library) : Always set HWResolution to clipper device. DETAILS : Fixes the bug 689365 "Clipper device may have a wrong HWResolution".[src/gxfill.c src/gxclip.c]
2007-08-31T19:09:47.125231Z Igor Melichev
Fix (graphics library) : Distinguish two methods gx_make_clip_device_on_stack, gx_make_clip_device_in_heap. DETAILS : This is a preparation for fixing the bug 689365 "Clipper device may have a wrong HWResolution", step 2. This change is algorithmically equivalent. 1. Drop tx, ty,arguments, because they always zero. 2. There are 2 different cases in code: allocation on stack or in heap. Now we define them explicitely. 3. Adding the 'target' argument, and adjust reference counters inside the "in heap" method. The call to open_device is moved inside the methods. Note that the old code in some cases calls open_device after doing some settings (2 occurances in gxfill.c). The new code does before that. We belirvr it is algorithmically equivalent, because we checked open_device against using the data being set there.[src/gdevbbox.c src/gxcpath.h src/gximask.c src/gxccache.c src/gxfill.c src/gxclip.c src/gxstroke.c src/gxclrast.c src/gdevdbit.c src/gxipixel.c]
2007-08-31T17:22:21.775099Z Igor Melichev
Fix (graphics library) : Expand gx_make_clip_path_device, gx_make_clip_device. DETAILS : This is a preparation for fixing the bug 689365 "Clipper device may have a wrong HWResolution". This change is algorithmically equivalent. The old code defines a function gx_make_clip_path_device, and a macro gx_make_clip_device similar as a small wrappers for gx_make_clip_translate_device. This patch expands and removes them as FOR a standardization. The 'list' argument of gx_make_clip_translate_device is replaced with 'pcpath' argument, because the old code always extract the list from pcpath. The extraction is now done inside gx_make_clip_translate_device.[src/gdevbbox.c src/gxcpath.h src/gximask.c src/gxccache.c src/gxfill.c src/gxclip.c src/gxstroke.c src/gxclrast.c src/gdevdbit.c src/gxipixel.c]
2007-08-31T15:31:06.557286Z Igor Melichev
Fix : Remove the pdfwrite/NODISPLAY nonsense from the documentation. DETAILS : That statement was always false.[doc/Use.htm]
2007-08-31T08:29:55.996410Z Igor Melichev
Fix (pdfwrite) : A wrong encoding of Metadata (continued). DETAILS : The revision 8181 added a bug which caused an infinite loop with -dPDFA Altona-Testsuite_p2_S_x3.pdf[src/gdevpdfe.c]
2007-08-31T08:27:16.425671Z Igor Melichev
Fix (pdfwrite) : A crash with incorrect shading. DETAILS : Bug 689394 "SEGV with MSVC7 run time checking in Type 7 shading." See comment in code.[src/gdevpdfi.c]
2007-08-31T05:43:44.869532Z Igor Melichev
Fix (Type 1 hinter) : Infinite loop in t1_hinter__fix_subglyph_contour_signs. DETAILS : Bug 689298 "Infinite loop in t1_hinter__fix_subglyph_contour_signs()". Well it's a student level error in the algorithm. Thanks to Alex for the test case with 5 nesting contours.[src/gxhintn1.c]
2007-08-31T04:47:58.034291Z Igor Melichev
Fix (font rendering) : alloc_char_bits could fall into infinite loop. DETAILS : Bug 689036 "infinite loop in char cache logic". The character cache algorithm assumes that a pointer to any allocated cached_char instance appears somewhere in ccache.table . However from the old experience we know that this obvious invariant appears frequently broken due to inaccurate manipulation with cache by clients. For example, a client sometimes reserves and initializes a cached_char instance and then fail due to another error before storing the pointer to ccache.table. In the old code a cycle in alloc_char_bits strongly depends on this invariant, and therefore it is potentially harmful. In the past we have got a lot of bugs about it. Now we restrict the cycle with the cache size. Changed few function prototypes with returning error if the invariant is broken. Note that the graphics library interface changes, so other interpreters must update the calls to alloc_char_bits.[src/gxchar.c src/gxccman.c src/gxchar.h src/gxccache.c]
2007-08-30T05:53:42.339598Z Igor Melichev
Fix (pdfwrite) : Uninitialized data after converting a Type 42 font into CID font. DETAILS : Bug 689399 "PDFA-Option cause gswin32 to crash". This change is important with -dPDFA only, and doesn't change the behavior otherwise. Some font descriptor fields were not initialized.[src/gdevpdtd.c]
2007-08-30T02:36:52.268008Z Igor Melichev
Fix (pdfwrite) : Properly handle FontMatrix of a Type 3 font. DETAILS : Bug 689267 "File converted to PDF displays badly in Acrobat". Patch from SaGS. His explanation is quoted below. Part #1: pdfwrite fixes (gdevpdti.c, gdevpdte.c, gdevpdtt.h, gdevpdtt.c : - Generalize pdfwrite computations for glyph widths and placement, which currently assume an [s 0 0 s tx ty]-type original (= ignoring changes made by makefont & similar) FontMatrix, to work with an arbitrary matrix. - Fix: the "wy" operand of "d0"/"d1" in Type 3 charproc streams must be zero. Note: other parts of the code already consider wy == 0, and don't need to be changed. - Remove font_orig_scale() and pdf_font3_scale(), which are not used anymore. Their simple presence is a sign of the assumption that font matrices are simple scalings. - Minor: remove a dead variable ("int code = 0; ... return code;"). This variable is never changed, because there's another "int code" inside the "for", but it is confusing and takes a lot of research to figure out the behaviour is OK and no usefull error code is lost (it's the 2nd time I stumble against this...) Notes: - All non-Adobe PDF viewers that I tested (Evince/ Fedora 7, Foxit Reader 2.0/ Windows, Jaws PDF Editor 3.5/ Windows, and Ghostscript -r8204) have problems with "weird" font matrices. The bug in ghostscript is addressed below. - I do have an alternate patch, which "normalises" the FontMatrix, for better viewers compatibility . But this method cannot work when fonts are not embedded: cannot "normalize" something stored in an external file. part #2: PDF interpreter fixes (pdf_font.ps, pdf_ops.ps) : - Force the "wy" parameter of "d0", not only of "d1", in Type 3 charproc streams to 0. Comment changed to suggest this is an action is expected to be done as part of enforcing the metrics stored in the PDF (which always imply wy == 0), and not some strange behaviour in Reader. - A detail in PDF1.7 Ref 5.3.3 "Text Space Details" states that "wy" (or "wx" in WMode 1) must be forced to 0 in PDF text space too, not only in PDF glyph space. To implement this with non-[s 0 0 s tx ty] font matrices, a different method is used: decode "show" strings and extract glyph widths with "cshow", put these into an array, then render the text with "x/yshow". - since "wy/x" = 0 in glyph space, the code does not need to use "idtransform", a "div" by "FontMatrix.xx" is sufficient; - use a trick (see comment in code) when "FontMatrix.xx" = 0. CIDFonts are not changed. Those with a "straight" matrix continue to work, but there's no improvement if they have a weird "/FontMatrix". I think this would require a radical change, and the result will be much slower than it is now. part #3: supplemental ps2write fixes (in opdfread.ps). - opdfread.ps assumed the FontMatrix is a simple scaling by 0.001; generalize the computations to work with an arbitrary matrix. - Implement a detail of PDF1.7 Ref 5.3.3 "Text Space Details" (nuking the "wy" in text space) if a non-[s 0 0 s tx ty] "/FontMatrix". Similar to the change in the main PDF interpreter, but shorter because opdfread.ps does not handle vertical writing or CID fonts. Also "wy" in "d0"/"d1" is already 0 (see patch for pdfwrite), so needs no adjustment.[lib/pdf_font.ps src/gdevpdtt.c src/gdevpdte.c lib/opdfread.ps src/gdevpdti.c src/gdevpdtt.h lib/pdf_ops.ps]
2007-08-29T17:36:36.852840Z Igor Melichev
Fix (TT font handling) : pdfwrite recieved meanless font names. DETAILS : Bug 688006 "Font names used with pdfwrite are strange with GS, OK with Adobe Distiller". This is a continuation for the Revision 5862 change made on Wed Apr 20 20:05:41 2005 UTC (2 years, 4 months ago) by ray. Thanks to Edward for a code sample for accounting font style string. 1. (zbfont.c) When a Postscript file is generated with Adobe printer driver for Windows, the old code (sinse Revision 5862) extracts OrigFintName for building a meanful FontName. This patch adds an use of OrigFontStyle as suggested by Edward, so the FontName is created in the form "Arial,Bold". 2. (zfcid1.c) The old code sometimes dropped the good FontName in zbuildfont11 due to an extra call to get_font_name. Few lines above the function build_gs_TrueType_font creates the good font name during an indirect call to sub_font_params, so the call to get_font_name is not necesary when OrigFontName presents. However it is still necessary with regular FontType 11 because they have no FontName and sub_font_params doesn't use CIDFontName. 3. (zfcid0.c) Applying the (2) change to FontType 9 as for symmetry. We're tested it a few, but we have no untrivial examples when a FontType 9 is embedded with OrigFontName. Maybe (just guessing) ones could be obtained with installing Adobe Type Library and printing with Adobe printer driver. 4. After doing all above, we unexpectedly detected a regression with comparefiles/korea.ps : all Korean glyphs were replaced with hollow boxes. Analyzing it we found that the document defines a composite font with to CIDFontType 2 descendent, which both appears to be same font. In same time, the CMap supplies different CIDs for those 2 descendents for a half of code space. While the old code used meanless unique font names, those 2 descendents were converted to 2 PDF fonts. When we switched to the meanful name, which of course is same for both descendents, pdfwrite tries to merge the descendents. However doing so it assumed same character mapping for both descendents. To fix this problem more changes are done to pdfwrite : 4.1. (gdevpdtf.h) The font descriptor of a type 0 font now stores font_index, which is the index of its descendent font in the DescendentFonts array of the source Type 0 font. This happens because in PDF type 0 fonts always have a single descendent. 4.2. (gdevpdtf.c) Added an initialization for the new field. 4.2. (gdevpdtt.c, gdevpdtt.h) pdf_obtain_parent_type0_font_resource creates unique type 0 fonts for each descendent in spite of same font name. 4.3 (gdevpdtc.c) pdf_obtain_parent_type0_font_resource needs font index as a new argument. 4.4. (gdevpdtt.c) pdf_find_type0_font_resource also takes the new parameter. With Korea.ps we create 2 font subsets where a single font would be enough. An optimization may be done with a dynamic check for encoding conflicts rather than creating another font for each font index of the CMap. Delaying it for better times.[src/zfcid0.c src/gdevpdtc.c src/zfcid1.c src/gdevpdtt.c src/zbfont.c src/gdevpdtf.c src/gdevpdtt.h src/gdevpdtf.h]
2007-08-29T09:42:15.384249Z Igor Melichev
Fix (TT font handler) : Place thr True Type interpreter and its data into stable memory (continued 2). DETAILS : Bug 688429 "Crash on vmreclaim". The revision 8209 change is incorrect because it effectively frees a memory allocator instance. Thanks to Henry for pointing this out. This is the second attempt to fix that...[src/gxttfb.c]
2007-08-29T09:36:29.695665Z Igor Melichev
Fix (TT font handler) : Place thr True Type interpreter and its data into stable memory (continued). DETAILS : Bug 688429 "Crash on vmreclaim". The revision 8209 change is incorrect because it effectively frees a memory allocator instance. Thanks to Henry for pointing this out.[src/gxttfb.c]
2007-08-29T07:09:01.667008Z Igor Melichev
Fix (font rendering) : CIDFontType 9 missed PaintType. DETAILS : Bug 687970 "PaintType and StrokeWidth ignored with CIDFonts". To make a decision about filling or stroking, the old code uses PaintType of the current font, However with CIDFont 9 it is a Type 1 subsidiary, which has no PaintType. The patch implements the 'or' logic for the PaintType of the root font and the PaintType of the current font. We believe it should correctly handle cases when PaintType 2 is set to a root font or to its descendent. However we have not enough practical test cases to test all varuiants. Particularly, we would like to test a Type 0 font with 2 descendents, each of which is CIDFontType 9 and they have didfferent PaintType. In such case this patch may need a further improvement. The desision about filling or stroking a character is done in type1exec_bbox and in nobbox_finish. The patch also passes a pointer to gs_text_enum_t instance to type1exec_bbox to provide the data for the decision.[src/zfcid0.c src/zchar1.c]
2007-08-28T16:18:27.199037Z Igor Melichev
Fix (pdfwrite) : Uninitialized defaultWidthXwhile while converting a Type 1 font into Type 2. DETAILS : Bug 689406 "Valgrind: Uninitialised defaultWidthX in psf_convert_type1_to_type2()". The last patch appears incomplete and doesn't compile. Fixing now.[src/gdevpsf2.c src/gdevpsf.h src/gdevpsfx.c]
2007-08-28T16:06:12.766158Z Igor Melichev
Fix (pdfwrite) : Uninitialized defaultWidthXwhile while converting a Type 1 font into Type 2. DETAILS : Bug 689406 "Valgrind: Uninitialised defaultWidthX in psf_convert_type1_to_type2()". Thanks to Alex for the problem localization and for the suggested patch. This change is equivalent to Alex's patch expect the better documentation. See comment in code. The old code accessed pfont->data.defaultWidthX, which is never used or initialized elsewhere with a Type 1 font, because defaultWidthX is a Type 2 feature.[src/gdevpsfx.c]
2007-08-28T06:34:08.453844Z Ray Johnston
Correct obvious typo in default rgb to cmyk color mapping. It makes no sense to use the 'g' component to calculate the 'k' for black generation and undercolorremoval.[src/gxcmap.c]
2007-08-27T20:44:27.984183Z Igor Melichev
Fix (TT font handler) : Place the True Type interpreter and its data into stable memory. DETAILS : Bug 688429 "Crash on vmreclaim". With the old code gx_ttfReader and ttfInterpreter instances were prematurely released by 'restore' while gs_font_dir and cached_fm_pair instances contain references to them. Since TT interpreter is a global singleton, we're safe to store it in stable memory.[src/gxttfb.c src/gxccman.c]
2007-08-27T01:16:47.532710Z Alex Cherepanov
Change the order of include files to define a macro before it's used. The undefined macro in the old code passed as a function declaration.[src/gxshade1.c]
2007-08-27T00:53:59.301536Z Alex Cherepanov
Add HP-UX to the long list of systems that need both time.h and sys/time.h[src/time_.h]
2007-08-26T23:32:21.633797Z Alex Cherepanov
Cast the pointers to the same type because aC++ compiler cannot compare pointers of different types.[contrib/japanese/gdevmjc.c]
2007-08-26T23:24:57.663909Z Alex Cherepanov
Fix a typo in a contributed driver for HP color printers detected by aC++ compiler. Assuming that pointers compare as unsigned values, the fix doesn't have any run-time effects.[contrib/gdevcd8.c]
2007-08-23T18:00:19.425565Z Alex Cherepanov
When the same name maps to more than one glyph change the name. Don't treat /.notdef names specially because glyphs corresponding to /.notdef names can look different. Bug 689408, customer 770. DIFFERENCE: None[lib/gs_ttf.ps]
2007-08-22T06:38:36.487276Z Suzuki Toshiya
Fix (TT fonts) : Ignore invalid entries in loca table. DETAILS : Some problematic TrueType fonts have loca table that the offset to a data in glyf table is larger than the size of glyf table. In previous implementation since trunk revision 5707 (ghostscript-8.57), when such invalid entry is found, the font loading procedure is immediately aborted and invalid font error is returned. To continue the problematic TrueType object, the invalid entries of loca tables now are ignored and the font loading procedure is continued. If all entries are invalid, the invalid font error is returned. After the sorting of loca table entries by their values, the invalid entries with too large offsets are collected in the end of the sorted loca entries (psortary[]). By this patch, the sorted loca entries are scanned from from the end to the beginning, and the number of valid entry is counted (num_valid_loca_elm). By this number, the invalid loca entries are initialized to have null glyph (the data size of glyph is set to 0). By this patch, bug 689347 is fixed.[src/gstype42.c]
2007-08-21T22:26:58.681438Z Ralph Giles
Correct more changelog substitution errors. Bug 689388.[doc/History8.htm doc/Details8.htm]
2007-08-20T17:15:22.306956Z Alex Cherepanov
Fix command list-based devices on 64-bit platforms. Ghostscript always writes int values to the command list but old code interpreted the bit pattern as a long int, causing conversion of the negative values to large positive ones. Bug 689353.[src/gxclrast.c]
2007-08-20T17:10:51.151066Z Ray Johnston
Use the color lookup cache in wtsimdi_contone_get_bits_rectangle. This results in a 6% overall performance improvement on the 12 performance test files, and up to a 38% improvement on WW2KA122.prn Also clean up the MSVC and gcc warnings. Customer #951. DETAILS: There is a note about the allocation of cmyk_buffer relying on the alignment when using gs_malloc. The note also describes the method to remove this reliance on the alignment assumption.[src/gdevwts.c]
2007-08-17T18:50:33.373530Z Ray Johnston
Fix stdint.h related problems with the Cygwin build (gcc 3.4.4) DETAILS: There was a workaround for an obsolete version of Cygwin tools that had u_int32_t (and other types) instead of uint32_t that is standard on linux and Cygwin stdint.h now. These changes were needed for the PCL, XPS and language_switch builds -- the gs build worked thanks to autoconf.[src/unix-gcc.mak src/stdint_.h]
2007-08-17T13:58:12.668319Z Alex Cherepanov
Fully initialize pdf_resource_t object allocated in pdf_alloc_aside() to avoid a Valgrind warning. Bug 688907.[src/gdevpdfu.c]
2007-08-17T13:02:19.679286Z Alex Cherepanov
Add missing initialization of txy_fixed_valid field. Since the fixed coordinates are valid, the patch eliminates possible re-calculation of the fixed coordinates but doesn't affect the end result. Bug 688914.[src/gdevpdfv.c]
2007-08-17T04:49:22.864920Z Ray Johnston
This set of changes is an example for users or Artifex customers that want to intercept the color spaces and perform their own color space conversion for the CIEBased or ICCBased color spaces, converting all of these spaces to the PostScript color management link space "CIE XYZ". There were changes needed to implement this that transcended the original custom color callback scheme, but the approach taken is intended to minimize changes to the color space processing. Artifex customer #330 DETAILS: Rather than rely on the hack in gx_cie_to_xyz_alloc that sets the pis->cie_render to ~0, we establish a separate boolean for this, cie_to_xyz which indicates that we don't need a CRD (gxistate.h, gsistate.c, gsciemap.c, gscie.c). Note that the gx_cie_to_xyz_alloc function is also used in the lab_range function in gdevpdfk.c to construct an L*a*b* ICC conversion space for the pdfwrite device. The 'pclient_color_space_data' is now handled in the ENUM and RELOC procedures for the gs_color_space base structure shared by all color spaces (gscspace.c). A side effect of this is that the pclient_color_space_data structure MUST be allocated with appropriate GC structure calls an with an appropriate GC type of macro to identify the structure for the GC and establish the ENUM and RELOC hooks. This was needed to allow a gs_imager_state structure to be allocated for the CIE color spaces and to have both structures to be 'known' to the GC logic. The CIE_LOAD_CACHE_BODY macro and the gx_install_cie_abc function are now exported in gscie.h rather than local to gscie.c so that gsncdummy.c and other custom callback clients can use them. Finally, the gsncdummy.c module now includes example handling that allow the graphics library to convert colors to XYZ if the original color space was one of the CIEBased or ICCBased spaces. Since CIE XYZ to L*a*b* is a direct conversion, this allows clients to work with device independent color. The conversion from XYZ to ICC L*a*b* code exists in gdevpdfk.c in the function xyz_to_lab() which might be useful enough to export in the future. For the short term clients can 'clone' this small function if needed into their own color callback processing. Note that -dUseCIEColor (or << /UseCIEColor true >> setpagedevice PostScript sequence) will mean that all Device* colorspaces also get mapped through the Default* colorspaces to XYZ (DeviceGray, DeviceRGB and DeviceCMYK).[src/gxistate.h src/gscie.h src/gsistate.c src/gsncdummy.c src/gsciemap.c src/gscspace.c src/gscie.c]
2007-08-14T21:28:55.383671Z Ralph Giles
Revert r8187, which is part of the CJKV patch set reverted in r8190.[src/int.mak]
2007-08-14T20:48:29.233978Z Till Kamppeter
Removed CJK patches.[examples/cjk src/zchar42.c lib/gs_cidtt.ps src/gxfont42.h src/gstype42.c src/unixinst.mak src/zchar1.c lib/cjkv lib/gs_init.ps]
2007-08-14T18:53:48.875152Z Ralph Giles
Throw an diagnostic error if the wts_plane_* halftone files cannot be opened. Propagate the error and clean up properly to avoid a segfault. Also #ifdef DEBUG protects some debug printouts to reduce noise.[src/gdevwts.c src/gdevimdi.c]
2007-08-14T16:18:28.564745Z Ralph Giles
Change the path to the icc link profile to the current working directory, the same path used for the wts_* halftone files and for link.icc in gdevimdi.c. Motivated by simplifying running the device in regression testing.[src/gdevwts.c]
2007-08-13T17:07:58.742285Z Ralph Giles
Add the library files from the cjkv to the romfs file list. This restores executability of the build with COMPILE_INITS=1 which was broken by r8185.[src/int.mak]
2007-08-13T16:00:16.465824Z Till Kamppeter
Fixed DESTDIR support in Koji Otani's CJK patches[src/unixinst.mak]
2007-08-13T10:08:05.772194Z Till Kamppeter
Added CJK patches from Koji Otani[src/zchar42.c examples/cjk lib/gs_cidtt.ps src/gxfont42.h src/gstype42.c lib/cjkv/cjkcidcm.ps lib/cjkv/baseutil.ps src/zchar1.c lib/cjkv/cjkvttcf.ps examples/cjk/all_ac1.ps lib/cjkv lib/cjkv/cjkvinit.ps examples/cjk/all_ag1.ps examples/cjk/iso2022.ps examples/cjk/all_aj1.ps examples/cjk/gscjk_ac.ps examples/cjk/all_ak1.ps examples/cjk/all_aj2.ps lib/cjkv/tt11util.ps lib/cjkv/cjkfnmap.ps examples/cjk/gscjk_ag.ps lib/cjkv/tt42util.ps src/unixinst.mak examples/cjk/gscjk_aj.ps examples/cjk/gscjk_ak.ps examples/cjk/article9.ps lib/gs_init.ps]
2007-08-12T17:29:29.699921Z Alex Cherepanov
Use inline and intristic functions to improve the speed of CIE cache set-up. Bug 689153, customer 850.[src/gscie.h src/gscie.c]
2007-08-11T03:57:31.402230Z Alex Cherepanov
Change stream keyword handling to accommodate yet another kind of a broken PDF. Bug 689400, customer 580. DETAILS: Valid stream keyword can be followed by (\n) or (\r\n). Invalid PDF files accepted by Acrobat Reader can insert blank characters or terminate the stream with (\r). Old code tolerated ( \r) termination, but didn't tolerate ( \r\n). New code assumes blank characters and (\r) termination at the same time are not probable and tolerates ( \r\n) or (\r) but not ( \r).[lib/pdf_base.ps]
2007-08-10T08:15:58.076010Z Henry Stiles
This code change should have been committed in tandem with the change in revision 8055 (see 8055 log for details).[src/gxclpath.c]
2007-08-09T18:12:59.257962Z Ray Johnston
Update the testing.cfg.example to match the current (after rev 7854) of the regression scripts in toolbin/tests. The r7854 had included a testing.cfg file instead of the example file (see comment for rev 7862). DETAILS: I don't really like the difficulty of changing the comparegs directory in the current way gsconf.py processes the testing.cfg. IMHO, it would make sense to allow for some of the higher level directory variables to be used, simplifying changing it for testing from a particular gs checkout that has been modified. Also having some of the other values able to be relative to 'root' (for the comparefiles, database, etc.) would be handy. A task for later along with better documentation.[toolbin/tests/testing.cfg.example]
2007-08-08T00:12:49.260263Z Timothy Osborn
Updating CMAP files as per bug report #689386 DETAILS: See: ftp://ftp.oreilly.com/pub/examples/nutshell/cjkv/adobe/00README for more details.[Resource/CMap/UniJIS2004-UTF16-V Resource/CMap/UniJIS2004-UTF32-H Resource/CMap/UniJIS2004-UTF8-V Resource/CMap/UniJIS2004-UTF16-H Resource/CMap/UniJIS2004-UTF8-H Resource/CMap/ETenms-B5-V Resource/CMap/ETenms-B5-H Resource/CMap/UniCNS-UTF32-H Resource/CMap/UniCNS-UTF16-H Resource/CMap/UniCNS-UTF8-H Resource/CMap/UniJISX02132004-UTF32-V Resource/CMap/UniJIS2004-UTF32-V Resource/CMap/UniJISX02132004-UTF32-H]
2007-08-07T00:40:18.162968Z Alex Cherepanov
Pacify MSVC 7 run time checks. Change the order of condition checking to avoid returning an uninitialized value. The code is algorithmically equivalent, except it doesn't assign anything instead of assigning an uninitialized value. Bug 689387[src/gdevpdfd.c]
2007-08-05T13:55:26.215718Z Igor Melichev
Fix (pdfwrite) : A wrong encoding of Metadata. DETAILS : Bug 689244 "Wrong encoding of title in metadata for PDF/A". Thanks to mpsuzuki for preliminary analyzis. 1. See the documentation change. 2. gs_pdfwr.ps converts the specified name into a translation table. We believe that popolar encodings translate into single Unicode characters, so we don't implement Unicode compositions now. This may be a subject of further improvements. In this case the generated integer array should use a complex format for representing the translation table. 3. The translation table is passed to pdfwrite as a new device parameter DSCEncodingToUnicode. 4. When it is specified, gdevpdfe.c performs the translation first into UTF-8, then into XML. 5. The new modules ConvertUTF.c, ConvertUTF.h are obtained from Unicode Inc.[src/gdevpdfx.h src/ConvertUTF.c src/gdevpdfp.c doc/Ps2pdf.htm src/ConvertUTF.h src/gdevpdfe.c src/gdevpdfb.h src/devs.mak lib/gs_pdfwr.ps lib/gs_agl.ps]
2007-08-04T21:42:53.446406Z Alex Cherepanov
Change the order of tests to identify fonts with FID attribute that have been both scaled and copied. Bug 689390 DETAILS: Prior to this revision Ghostscript mis-recognized such fonts as scaled-only in build_gs_font() and rejected with /invalidfont during font validation.[src/zfont.c src/zbfont.c]
2007-08-04T14:30:04.276917Z Alex Cherepanov
Take rendering intent type from the /Intent key of the CRD created by Adobe ProcSet "Adobe_AGM_Core 2.0 0" and pass it to the graphic state. Bug 689379[lib/gs_lev2.ps lib/pdf_ops.ps lib/gs_init.ps]
2007-08-03T16:29:44.050173Z Timothy Osborn
Fix for seg fault caused by undersized buffer as reported in bug report #687397 DETAILS: Although the patch submitted by the reporter did appear to fix the problem, it was more masking it than fixing it. While the analysis of the problem being that ss->Items was too small was correct, the real cause was a rounding problem in siscale.c/contrib_pixels(). The problem did not happen on my Mac, but was reproduced up on peeves because of differnces in the way the two systems perform rounding.[src/siscale.c]
2007-08-03T15:46:03.840774Z Ralph Giles
Correct a substitution script error in the change logs.[doc/Changes.htm doc/History8.htm doc/Details8.htm doc/Details.htm]
2007-08-02T08:53:09.078741Z Igor Melichev
Fix (transparency in clist) : Write transparent paths and images to clist as high level objcts. DETAILS : Bug 689186 "PDF segfaults or exits with no output". With the test case the old code creates a 2.5Gb clist file, because it transformes transparent paths and images into rectangles. The new code writes them as high level objects, so that the clist file reduces to 477Mb. 1. (gdevp14.c) The old code appears to provide all necessary methods for writing paths and images to clist as high level objects, but doesn't call them. To activate them we simply replace default implementations with forwarding methods in pdf14_clist_*_device. 2. (gdevp14.c) The old code sets the lop_pdf14 flag to the clist reader's imager state. Particularly it may be set when calling p14dev->pdf14_procs->put_image. It causes gx_image_enum_begin to fail, and the image silently dissappers from the output. We fixed it with resetting the flag immediately before calling p14dev->pdf14_procs->put_image. A better way would be to synchronize log_op in clist_create_compositor, but we don't like to write it to all bands as other compoitor commands do. 3. (gdevp14.h, gdevp14.c) New fields inserted into pdf14_device_t to provide a synchronization of encode_color, decode_color, get_color_mapping_procs, get_color_comp_index with changing color_info. Debugged with pkmraw -r300 Bug688631.pdf . Without them the 1bpc color conversions were called from pdf14_cmap_cmyk_direct with an 8bpc color, causing an almost white page instead blue axial and radial shadings. 4. (gdevm4.c) The old code defines a wrong color_info for mem_mapped4_device. It defines 3 components instead the correct value 4 (3 colored and 1 gray). 5. (gdevp14.c) During the clist playback the new code does not change color_info for the clist writer (p14dev->target->color_info). We marked this change with the comment : /* Disabled because *p14dev has no forwarding methods during the clist playback. */ We ise #if 0 because we're not sure why the old code does so. We suspect it was done by a mistake and has no any effect. #if 0 will keep it for a while. More possible optimization : 1. Use pdf14_buf::bbox when back dropping a transparency buffer. 2. Use pdf14_buf::rect to restrict bands which set up the transparency compositor. Now it is written to all bands. 3. Write text to clist as high level object.[src/lib.mak src/gdevp14.h src/gdevm4.c src/gdevp14.c]
2007-08-02T04:08:11.471770Z Alex Cherepanov
Pacify Valgrind - initialise both operands of the product. Valgrind considers a product of 0 and an uninitialized value to be uninitialized. Bug 689384.[src/gximage3.c]
2007-08-02T01:22:14.242094Z Ralph Giles
Update the interpreter library version number to match the one in version.mak. The previous commit just improved the comments.[lib/gs_init.ps]
2007-08-01T23:56:58.305050Z Ralph Giles
Bump the revision number post release.[doc/News.htm lib/gs_init.ps src/gscdef.c src/version.mak]
2007-08-01T22:38:01.441981Z Ralph Giles
Correct some cut-and-paste typos in the change log update.[doc/Changes.htm doc/History8.htm]
2007-08-01T22:10:56.427930Z Ralph Giles
Update change logs and the open bug list or final release.[doc/Changes.htm doc/History8.htm doc/News.htm doc/Details8.htm doc/Details.htm]
This is a new stable release of the Ghostscript codebase. The most significant change is the merge of drivers and other patches from ESP Ghostscript. This version of Ghostscript work with CUPS and is intended to be a replacement for the Easy Software fork going forward. We extend a special thanks to Till Kamppeter and Mike Sweet for making this happen.
In addition to CUPS support, the ESP merge includes a number of other notable changes. The contrib directory of the GPL Ghostscript source tree now includes a much larger complement of drivers. These are not maintained by Artifex Software, Inc. and are not included in the commercially licensed version, but are of great assistance maintaining support for older printers in Linux distribution. The X11 device is now modularized on Linux and Solaris systems when built with GNU ld, meaning this device is compiled as a separate shared object which can be optionally loaded at runtime, allowing the main binary to work on systems without X client support installed.
This release also includes numerous important bug fixes over the previous stable version, as well as improvements to performance, memory footprint, shading and image handling. We recommend upgrading to all users.
The following bugs were open at the time of release:
226943, 430175, 465936, 493348, 535932, 578865, 610478, 614298, 626295, 686747, 686853, 686865, 687011, 687039, 687084, 687095, 687108, 687146, 687193, 687196, 687257, 687271, 687280, 687295, 687297, 687303, 687327, 687342, 687345, 687346, 687375, 687397, 687414, 687475, 687492, 687514, 687520, 687531, 687536, 687559, 687561, 687593, 687595, 687608, 687630, 687650, 687666, 687674, 687677, 687695, 687697, 687702, 687715, 687721, 687728, 687729, 687731, 687775, 687780, 687782, 687793, 687796, 687805, 687814, 687844, 687850, 687887, 687903, 687904, 687907, 687915, 687931, 687950, 687957, 687970, 687974, 687981, 687983, 687988, 688006, 688007, 688022, 688024, 688026, 688032, 688035, 688036, 688042, 688058, 688061, 688064, 688066, 688075, 688081, 688095, 688129, 688130, 688134, 688151, 688152, 688159, 688166, 688184, 688187, 688200, 688203, 688204, 688207, 688210, 688215, 688227, 688239, 688243, 688267, 688269, 688280, 688282, 688283, 688288, 688312, 688317, 688318, 688320, 688333, 688337, 688342, 688358, 688360, 688361, 688363, 688372, 688375, 688378, 688386, 688387, 688389, 688395, 688413, 688427, 688428, 688429, 688434, 688436, 688437, 688440, 688446, 688448, 688468, 688473, 688474, 688475, 688483, 688490, 688495, 688500, 688515, 688517, 688526, 688528, 688533, 688539, 688540, 688542, 688543, 688557, 688565, 688573, 688580, 688581, 688588, 688598, 688601, 688604, 688605, 688610, 688616, 688617, 688619, 688626, 688627, 688633, 688634, 688636, 688637, 688638, 688643, 688646, 688647, 688651, 688653, 688655, 688673, 688674, 688683, 688696, 688697, 688699, 688708, 688709, 688710, 688711, 688714, 688717, 688728, 688731, 688734, 688736, 688739, 688757, 688762, 688770, 688774, 688777, 688778, 688783, 688796, 688797, 688806, 688807, 688811, 688813, 688815, 688818, 688829, 688830, 688834, 688843, 688845, 688846, 688871, 688872, 688876, 688899, 688903, 688904, 688907, 688908, 688909, 688914, 688915, 688916, 688917, 688918, 688919, 688923, 688926, 688928, 688933, 688940, 688942, 688943, 688945, 688949, 688952, 688958, 688969, 688970, 688976, 688978, 688979, 688981, 688983, 688986, 688990, 688992, 688994, 688999, 689003, 689011, 689013, 689014, 689022, 689025, 689028, 689031, 689032, 689036, 689040, 689044, 689046, 689048, 689050, 689053, 689055, 689057, 689058, 689060, 689065, 689068, 689070, 689076, 689077, 689078, 689080, 689081, 689085, 689090, 689092, 689093, 689094, 689098, 689101, 689103, 689104, 689106, 689107, 689111, 689114, 689115, 689116, 689117, 689127, 689128, 689129, 689130, 689132, 689133, 689136, 689137, 689138, 689145, 689146, 689148, 689150, 689153, 689154, 689155, 689159, 689161, 689164, 689167, 689169, 689172, 689174, 689175, 689181, 689182, 689184, 689186, 689188, 689195, 689198, 689199, 689206, 689209, 689210, 689212, 689222, 689224, 689230, 689232, 689236, 689241, 689242, 689244, 689246, 689247, 689248, 689249, 689252, 689253, 689256, 689264, 689265, 689266, 689267, 689273, 689278, 689279, 689280, 689281, 689282, 689283, 689289, 689290, 689291, 689292, 689294, 689295, 689298, 689302, 689304, 689305, 689306, 689308, 689310, 689313, 689316, 689326, 689327, 689331, 689333, 689334, 689335, 689338, 689339, 689340, 689341, 689343, 689347, 689349, 689350, 689351, 689352, 689353, 689354, 689356, 689358, 689359, 689361, 689362, 689363, 689364, 689365, 689367, 689368, 689369, 689370, 689372, 689373, 689374, 689375, 689376, 689378, 689379, 689380, 689381, 689382, 689384, 689385, 689386.
The default device on unix-oriented builds has temporarily switched to the bbox device, and is not the x11 device as in the past. The means that running gs from the commandline with no options will no longer display a file. Specify -sDEVICE=x11alpha instead. The change is a side effect of the X11 modularization patch, and will be remedied in a future release.
2007-08-01T21:20:57.253476Z Ray Johnston
Fix problem seen with stcolor device where the get_color_mapping_procs device proc was NULL, causing SEGV. Bug #689371. DETAILS: The fix was local to gdevstc.c. The other modules were changed to add protection in case other devices (such as all of the new devices in contrib) don't manage to change the get_color_mapping_procs from the usual default of NULL in the device structure. Rather than dprintf or error messages that may be supressed with #if DEBUG. I elected to use eprintf. Note that the get_color_mapping_procs is usually set up by gdevdflt gx_device_fill_in_procs, but there are several cases where we don't know what to do, so we set the gx_error_get_color_mapping_procs. The detection in gs_fillpage will usually result in a single error message then we return gs_error_Fatal (-100).[src/gdevdflt.c src/gdevstc.c src/gxcmap.c src/gspaint.c]
2007-08-01T19:18:12.034589Z Ralph Giles
Update release date and product name for final release.[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 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 man/gs.1 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 man/ps2ps.1 doc/Ps2epsi.htm doc/History4.htm man/ps2pdfwr.1 doc/History5.htm doc/History6.htm]
2007-08-01T17:19:50.181574Z Ray Johnston
Fix for gv hang, where an application sends (less than 1023 bytes) PostScript and expects a response. AppleTalk PAP and some other interactive viewer front ends may run into this. Bug #689237. DETAILS: The autosense is still sort of fragile in that we only process PostScript immediately without waiting for the .peekstring of 1023 bytes to complete if it begins with "%!" or "%%". The check for "%%" is needed for gv, conventionally "%!" is more widely used. Note this really only affects applications using gs as a process getting data from stdin and expecting immediate action (response or other processing). Also note that the %! or %% is only looked for as the first two characters so that the presence of this in garbage before an actual PDF won't cause confusion.[lib/pdf_main.ps]
2007-08-01T04:10:13.989117Z Alex Cherepanov
Fix a misleading typo in an error message: s/UseCUEColor/UseCIEColor/[src/gdevpdfp.c]
2007-08-01T04:01:06.081994Z Alex Cherepanov
Remove inappropriate PNG_CONST qualifier from a few libpng arrays, where it adds 2nd const qualifier, which is rejected by MSVC 6. Bug 689383.[libpng/pngtrans.c libpng/pngerror.c]
2007-07-31T14:19:45.536400Z Alex Cherepanov
Use a correct name for the absolute colorimetric rendering intent. Change the encoding of the rendering intents in the graphic state to use ICC numbers from Table 18 (section 6.1.11) instead of the PDF order to reduce re-coding and confusion. Bug 689377.[src/gxistate.h lib/pdf_ops.ps src/gsstate.c src/zcolor3.c]
2007-07-31T03:31:13.074828Z Ralph Giles
Update changelogs for the release candidate.[doc/Changes.htm doc/History8.htm doc/News.htm doc/Details8.htm doc/Details.htm]
2007-07-30T20:13:56.963379Z Ralph Giles
Update the libpng version in the top level makefiles to match the new 1.2.18 source.[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/unixansi.mak src/macos-mcp.mak src/msvclib.mak src/all-arch.mak src/os2.mak src/watclib.mak]
2007-07-30T20:10:59.397769Z Ralph Giles
Include the libpng 1.2.18 source.[libpng]
2007-07-30T20:09:22.151026Z Ralph Giles
Remove the old included libpng-1.2.16 to make way for the newer release. This revision will not build![libpng]
2007-07-30T20:02:41.610054Z Ralph Giles
Update the release notes for the upcoming release.[doc/News.htm src/version.mak]
2007-07-29T16:11:45.078740Z Alex Cherepanov
Ignore named actions in PDF link annotations that refer to a page outside of the document page range. Bug 689286.[lib/pdf_main.ps]
2007-07-28T16:13:12.033906Z Alex Cherepanov
Fix a bug in the "LastPage" named action handler that pushed an extra operand to the stack causing "/rangecheck in pdfmark". Thanks to Heiko Oberdiek for the patch. Bug 688311.[lib/pdf_main.ps]
2007-07-27T20:14:35.951213Z Ray Johnston
Apply a long pending patch that only affects an ancient 'alphaimage' operator (Next display PostScript extension). Bug #592160. DETAILS: The bug report didn't include a test file, but reading the spec on this operator found at: http://objc.toodarkpark.net/AppKit/Functions/PSOperators.html it seems that the number of components provided does not account for the alpha channel. The relevant excerpt is: Synopsis: pixelswide pixelshigh bits/sample matrix datasrc0 [...datasrcn] multiproc ncolors alphaimage - Renders an image whose samples include an alpha component. This operator is similar to the standard colorimage operator. However, note the following: * When supplying the data components, alpha is always given last-either as the last data source (datasrcn) if the data is given in separate vectors, or as the last element in a set of interleaved data. * The ncolors operand doesn't account for alpha -- the value of ncolors is the number of color components only. This final note is the justification for the patch.[src/gxipixel.c]
2007-07-27T04:27:36.603967Z Alex Cherepanov
Add a missing member to the initialiser macro for the device structure of japanese laser printer vector PDLs. Fix a FPE crash. Bug 689366.[contrib/lips4/gdevlprn.h]
2007-07-25T05:12:45.877915Z Ray Johnston
Revert patch for rev 7904 which caused regressions (bug 689215). The fix for this will be committed in a following patch that fixes 688543 and 689364. Fixes bug 689215. DETAILS: The root of the problem is that the filled/stroked areas are too large (from the fill_adjust value). Unfortunately changing this to fix these problems causes MANY differences that need to be examined. Initial examination shows many PROGRESSIONS, i.e., we are closer to Adobe and from 200 files examined so far, has not caused dropout (which is consistent with the analysis).[src/gdevp14.c]
2007-07-24T22:29:24.445810Z Till Kamppeter
Removed duplicate usage of DESTDIR in cups/cups.mak[cups/cups.mak]
2007-07-24T22:23:34.891503Z Till Kamppeter
Fixed installation of data files from the contrib/ directory[src/Makefile.in src/configure.ac]
2007-07-24T21:18:53.099055Z Ray Johnston
Fix for the clip mask of images being too wide for the fixed size buffer. New size wide enough for 54 inches at 2400 dpi. Problem seen at 600 dpi with AC405122 from the PS ATS for customer #951.[src/gxmclip.h]
2007-07-24T20:02:20.813265Z Igor Melichev
Fix (shadings) : Decomposition limit could be too small. DETAILS : Bug 689225 "Regression: major differences in 470-01.ps in block 470-03". This patch improves the tolerance of the shading code to a wrong device resolution, which can apparently happen when installing a clipper device. Thus is closes a symptom, but the bottom of the problem is left unfixed. We do so due to incoming scheduled release. We opened a separate bug 689365 about a wronmg HWResolution of clipper device.[src/gxshade6.c]
2007-07-17T09:55:56.457439Z Igor Melichev
Banding : Extend clist language with trapezoids, linear color trapezoids and linear color triangles (continued 8). DETAILS : This fixes (some) gcc warnings in the recently added code (part 2).[src/lib.mak src/gxclrast.c src/gdevpdfi.c src/gxshade6.c src/gxclpath.c src/gxclrect.c]
2007-07-16T21:35:48.939836Z Igor Melichev
Banding : Extend clist language with trapezoids, linear color trapezoids and linear color triangles (continued 6). DETAILS : This fixes (some) gcc warnings in the recently added code.[src/gxclrect.c]
2007-07-16T21:24:42.764396Z Igor Melichev
Banding : Extend clist language with trapezoids, linear color trapezoids and linear color triangles (continued 6). DETAILS : This is an initial commit for decomposition of linear color triangles that the target device can't handle while a clist playback. The new code is not called with practical cases because currently we have no devices with an intrivial implementation of fill_linear_color_triangle. We commit this code for future if someone will want to implement that function in hardware with a smaller number of bits. To force an execution of the new code one can change this switch in gxclrast.c : if 1 /* Disable to debug gx_fill_triangle_small. */ We debugged the new code with setting this switch to 0. In this case the decomposition code starts, and calls fill_linear_color_triangle again with same arguments (except converting frac31 colors to 'float', rather it doesn't miss precision with comparefiles). This test works fine with comparefiles. If the device method would request a further decomposition, an earlier debugged code works, so we didn't test it now (Testing it with available implementations would require an additional effort for rejecting regular triangles by the target device). For more details see comments in code. Note the clist playback now calls gxshade6.c .[src/gxshade4.h src/lib.mak src/gxclrast.c src/gxshade6.c src/gxdevcli.h]
2007-07-16T17:39:09.809376Z Ray Johnston
Prevent potential (although unlikely) divide by zero.[src/gximag3x.c]
2007-07-16T17:25:30.726967Z Ray Johnston
Fix a divide by zero that would show up on linux, but not cygwin. Seen with 001-01.ps to the x11 device.[src/gdevmem.c]
2007-07-16T17:06:58.964025Z Igor Melichev
Banding : Extend clist language with trapezoids, linear color trapezoids and linear color triangles (continued 5). DETAILS : This change is algorithmically equivalent. It provides methods for decomposition of triangles written to clist. The purpose is to fix possible gs_error_unregistered in gxclrast.c ln 1498. The fix itself will be done separately.[src/gxshade4.h src/gxshade6.c]
2007-07-16T16:58:11.366089Z Alex Cherepanov
Make failed dictionary look-up return /undefined instead of /dictfull. Bug 689360[src/idict.c src/zfcid1.c]
2007-07-15T17:27:07.515793Z Igor Melichev
Banding : Extend clist language with trapezoids, linear color trapezoids and linear color triangles (continued 4). DETAILS : Provide a better compression when writing frac31 values to clist. The new method is based on fact that fractional color values have many zeros in lower bits.[src/gxcldev.h src/gxclrast.c src/gxclrect.c src/gxclutil.c]
2007-07-14T19:18:42.392348Z Henry Stiles
Changes from Neil Muller to support tumble duplex in several deskjet printers (see 687978). We have done no testing of these changes.[src/gdevdjet.c src/gdevdljm.c src/gdevdljm.h contrib/gdevhl12.c]
2007-07-13T18:48:05.145075Z Igor Melichev
Banding : Extend clist language with trapezoids, linear color trapezoids and linear color triangles (continued 3). DETAILS : 1. Use fa->clip for a better Y-range for computing which bands are covered with fill_linear_color_triangle. 2. Provide a right raster op for linear color methods. Currently this change isn't important because shadings don't use untrivial raster ops.[src/gxclrect.c]
2007-07-13T16:29:03.411589Z Igor Melichev
Banding : Extend clist language with trapezoids, linear color trapezoids and linear color triangles (continued 2). DETAILS : This fixes Comment #4 of Bug 689344 "Regression: cmyk output broken with banding". The revision 8020 of gxfill.h doesn't account a case of pcpath==NULL in gx_default_fill_path. However the clist reader does such calls with halftoned colors.[src/gxfill.c]
2007-07-13T12:07:29.877199Z Igor Melichev
Banding : Extend clist language with trapezoids, linear color trapezoids and linear color triangles (continued). DETAILS : This fixes the clist expansion problem for shadings. The last patch was committed with a wrong revision of gxclrast.c, which disabled some shading components for development purpose.[src/gxclrast.c]
2007-07-13T01:10:56.469571Z Alex Cherepanov
Make PDF post-processing utilities tolerant to missing Length attribute in the strean dictionary. Our PDF parser undefines incorrect Length attributes.[lib/pdfwrite.ps]
2007-07-12T13:34:24.493291Z Alex Cherepanov
Add a few dummy system parameters for compatibility with Adobe products. Bug 689272, customer 411.[lib/gs_lev2.ps]
2007-07-11T21:17:39.855676Z Igor Melichev
Banding : Exten\d clist language with trapezoids, linear color trapezoids and linear color triangles. DETAILS : This fixes the clist expansion problem for shadings. 1. New functions clist_fill_linear_color_trapezoid, clist_fill_linear_color_triangle provide the writing of shading parts into clist without a further decomposition into rectangles. 2. gxclrast.c is enhanced with reading the data from 1. 3. gxfill.c needs a special interaction with the clipper device for passing the clipping path as a high level object. The new request pattern_manage__handles_clip_path checks whether the target device can handle a clipping path. The clist writer can, so the graphics library first sends the clipping path, and then decomposes the shading into trapezoids without installing a clipper device. Doing so because clipper device can't handle trapezoids. See comments in gxclpath.c, gxfill.c . 4. The clist reader installs a clipper device when processes trapezoids and linear color triangles. The new flag clipper_dev_open controls that. 5. A new flag gx_device_clist_writer_s::cropping_by_path controls an additional cropping of shading components, which fall outside the shading path's bands. See comment in gxclpath.c . 6. R_fill_rect_with_const_color is rewritten with linear color functions, because the old implementation creates a rectangle, which is not clipped with 4,5. It gives an invisible slowdown for unbanded rasters. There are few things, which need further improvements : 1. A better compression for frac31 values in clist. Such values usually have many zeros in ending bits. 2. Crop bands with ybot, ytop, fa->ystart, fa->yend in clist_write_fill_trapezoid. 3. The clist reader must handle cases when linear color functions return 0. It must perform a decomposition of areas with calling appropriate parts of gxshade6.c . The current code returns error, which does not happen in practice.[src/gxshade4.h src/lib.mak src/gxclist.c src/gxcldev.h src/gxclist.h src/gdevnfwd.c src/gxshade1.c src/gxfill.c src/gxclrast.c src/gxclread.c src/gxshade6.c src/gxclpath.c src/gxdevcli.h src/gxclrect.c]
2007-07-11T00:26:24.274026Z Ralph Giles
Replace to includes of the system stdlib.h for malloc() with malloc_.h. Bug 689320.[src/gxwts.c src/fapi_ft.c]
2007-07-11T00:19:27.467323Z Ralph Giles
Document that we don't make use of the autoconf function tests, or implement any fallbacks.[src/configure.ac]
2007-07-10T23:30:47.849258Z Ralph Giles
Complete support for DESTDIR in staged installs with the unix makefiles. Bug 689277.[src/unix-dll.mak cups/cups.mak src/unixinst.mak]
2007-07-10T23:00:51.455586Z Ralph Giles
Remove unused and inappropriate ps interpreter includes from the windows polling interface implementation.[src/gp_mspol.c src/winlib.mak]
2007-07-10T17:14:09.247898Z Till Kamppeter
Fixed bug 689323: bjc600's gs_closedevice breaks get_page_device and causes NumCopies to barf[src/gdevcdj.c]
2007-07-07T02:59:08.708092Z Alex Cherepanov
Add a shebang line to afmdiff.awk and use more portable option ( -3 ) to request 3-column listing. Bug 688621.[lib/afmdiff.awk]
2007-07-06T16:42:18.448176Z Alex Cherepanov
Explicitly bind setscreen, setcolorscreen, and sethalftone pseudo-operators. When a pseudo-operator is redefined several times, the last definition is bound in a final sweep over the systemdict but other definitions aren't. Bug 689254, customer 661.[lib/gs_dps2.ps lib/gs_ll3.ps]
2007-07-06T12:18:01.891965Z Igor Melichev
Fix : Restoring high level objects in clist. DETAILS : This patch is a part of the clist expansion problem. With Henry's test foo4.ps it reduces the clist size in 10+ times. The clist expansion problem appears to be caused by an old unintentional change, which was done 3 years ago within the psdcmyk project. The revision 5056 effectively disabled a big part of the clist language: all high level objects (text, images, paths) were written to clist as lots of rectangles. Undoing it now because it is incorrect. Note that this patch doesn't undo other parts of 5056 change. With enabling high level objects the psdcmyk device becomes broken. At least it has problems with text when rendering foo4.ps . We'll open a separate bug about that. Rather this fix is a progression, it causes some regressions with band devices due to other unknown problems. There are single pixel differences with comparefiles, which are not visible to users, but they are important for regression testing. Since the clist size is a highly important problem now, we commit this fix, and open a new bug about raster differences.[src/gdevprn.c]
2007-07-06T06:50:15.857933Z Igor Melichev
Fix : Improving documentation for gxclpath.c . DETAILS : Bug 689317 "A wrong rendering of a path", Comment #3. The revision 2948 change to gxclpath.c is not properly documented. This patch stores assumptions, which are necessary for the change to be correct.[src/gxclpath.c]
2007-07-06T06:00:17.432528Z Igor Melichev
Fix : A wrong path filling. DETAILS : Bug 689317 "A wrong rendering of a path". gx_path_merge_contacting_contours didn't account implicit closepath with non-zero length. Due to that the filling algorithm could recieve a path with a missed segment. It caused some areas are missed while filling. This fix is important for restoring high level clist objects, which were disabled with rev 5056 change to gdevprn.c . This fix inserts a line segments at the place of implicit closepath before merging contours. Minor change : improving documentation about gx_path_merge_contacting_contours.[src/gxpcopy.c]
2007-07-05T19:04:29.604836Z Till Kamppeter
Let scripts search Ghostscript (or subscripts) in the same directory where they reside, bug 689318.[lib/printafm lib/eps2eps lib/pdf2dsc lib/gsbj lib/ps2epsi lib/gsdj lib/dumphint lib/gsnd lib/font2c lib/pdfopt lib/pdf2ps lib/ps2pdf lib/gslj lib/pfbtopfa lib/bdftops lib/ps2pdf12 lib/ps2pdf13 lib/ps2pdf14 lib/gslp lib/wftopfa lib/ps2pdfwr lib/ps2ps lib/pphs lib/pf2afm lib/gsdj500]
2007-07-05T18:12:59.492244Z Timothy Osborn
Fix for bug #689312. DETAILS: Ghostscript would fail with "Unrecoverable error, exit code 255" when PaintType 2 tiling patterns were used in jobs run with GraphicsAlphaBits set to 2 or 4. Fixed by not returning an error from pattern_accum_get_bits_rectangle when called for a PaintType 2 pattern and the gx_device_pattern_accum bits field is NULL as the bits field is only used with PaintType 1 patterns.[src/gxpcmap.c]
2007-07-05T10:57:00.783595Z Till Kamppeter
Let dvipdf support "-R" option, bug 689328.[lib/dvipdf]
2007-07-05T10:41:52.033081Z Till Kamppeter
Allow spaces in the input file names for pv.sh, bug 689329.[lib/pv.sh]
2007-07-05T10:31:06.013010Z Till Kamppeter
Use mktemp in ps2epsi, bug 689324.[lib/ps2epsi]
2007-07-04T22:52:57.119341Z Ralph Giles
Remove an obsolete cvs housekeeping file.[toolbin/tests/.cvsignore]
2007-07-04T19:52:15.096425Z Ray Johnston
Fix for local ExtGState values that would caused invalidaccess on printers or RIPS that have any of blackgeneration, undercolorremoval, colortransfer or halftone in local VM. Customer #534. DETAILS: The 'cp2g' procedures used may be useful elsewhere. The version here uses only "standard" Level 2 PostScript (it cannot use Ghostscript extensions). Performance isn't critical since it is only used at initialization.[lib/opdfread.ps]
2007-07-04T19:09:09.181743Z Alex Cherepanov
Add a newline to a debug printf. Bug 689330.[src/gdevdflt.c]
2007-07-04T17:30:44.235393Z Ray Johnston
Fix a typo in the jpeg config that resulted in MAX_ALLOC_CHUNK being too small (0xfff0). Bug 689321. DETAILS: While ARCH_SIZEOF_INT was set to '4', it is done in std.h, not arch.h. Changing to use ARCH_LOG2_SIZEOF_INT instead since this is defined.[src/gsjconf.h]
2007-07-04T14:11:22.971272Z Alex Cherepanov
Make sed in pstoepsi correctly work independent of the current locale. In LC_COLLATE=en_US{,.UTF-8} and a bunch of other locales '~' comes before '!' when sorting, so you really cannot write !-~ but ~-! in those locales. Bug 689325.[lib/ps2epsi]
2007-07-03T18:21:38.196871Z Alex Cherepanov
Make the top dictionary in the file generated by pswrite device writable. Reportedly, setpagedevice writes to a top directory on an Epson printer. Bug 689315, attachment 3108.[src/gdevpsu.c]
2007-07-03T12:00:18.641724Z Alex Cherepanov
Fix a harmless typo, replace bitwise '&' with logical '&&' in a couple of logical expressions. Bug 689315, attachment 3115.[src/scfd.c src/gdevps.c]
2007-07-02T08:09:03.552980Z Igor Melichev
Extend the clist language with fill_trapezoid. DETAILS : It saves the clist file size with writing a higher level objects. The old code expands trapezoids with lots of rectangles.[src/gxclist.c src/gxclpath.h src/gxcldev.h src/gxclrast.c src/gxclrect.c]
2007-07-01T17:18:18.933670Z Alex Cherepanov
Include the system headers first to avoid name conflict between Cygwin headers and a Ghostscript macro. This works because (1) we don't use the affected structure, (2) system header files are protected from double inclusion. Bug 689276.[src/zimage.c src/zvmem.c src/int.mak src/zfproc.c src/zfile.c src/ztoken.c]
2007-06-30T23:46:18.087581Z Alex Cherepanov
Compare the type of the object cached in the font descriptot with the expected type and ignore the cache when the types mismatch. The same descriptor can refer to Font and CIDFont resources if they happen to have the same name and are not embedded. Bug 689301, customer 870. DETAILS: tx_pdf 12.0.112.500 created quite strange PDF file. The file refers to Palatino font and Palatino CIDFont through the same font descriptor. Both the font and CIDFont versions are not embedded. There's no rule in PDF against merging equal objects from unrelated contexts. Old code cached the font or CIDFont file in the font descriptor. Re-using the font descriptor for a different type of the object caused the wrong object to be retrieved from the cache. In turn, this causes /undefined error later on. The patch compares the type of the cached object with the expected type and ignores the cache when the types mismatch. In our case this results in an attempt to find Palatino CIDFont resource. Since this resource is not available, the CMap name is used as a default CIDFont resource name for the given CMap. In this case, /Adobe-Japan1 /CIDFont resource is searched. When this resource is available, the file finishes normally. Otherwise the file fails with /undefinedresource in findresource.[lib/pdf_font.ps]
2007-06-30T12:25:22.298902Z Alex Cherepanov
Replase setglobal operator with .setglobal in Type 1 font support code to make it bindable during start-up. Bind other standard executable names in the file. Bug 689311, customer 411.[lib/gs_type1.ps]
2007-06-30T06:57:44.535512Z Igor Melichev
Fix : Expanding gxcldev.h macros, part 7. DETAILS : This change is algorithmically equivalent. The purpose is to eliminate gxcldev.h macros to simplify the debugging of the clist writer methods. This 7th step removes obsolete contours.[src/gxclimag.c src/gxclrect.c]
2007-06-30T06:41:55.227485Z Igor Melichev
Fix : Expanding gxcldev.h macros, part 6. DETAILS : This change is algorithmically equivalent. The purpose is to eliminate gxcldev.h macros to simplify the debugging of the clist writer methods. This 6th step simplifies the flow control with removing unuseful goto and labels. Also it updates the documentation in gxcldev.h .[src/gxcldev.h src/gxclpath.c src/gxclimag.c src/gxclrect.c]
2007-06-29T20:44:57.917902Z Henry Stiles
Temporarily disable the band complexity code and use the existing "color used" code to detect non trivial raster operations. DETAILS: The band complexity code is to be removed entirely. It is not correct and (apparently) the person who implemented it did not realize there was code in the system to accomplish the same task. For now we fill in the band complexity array with (correct) values from gdev_prn_colors_used(). We are not removing all of the band complexity now because there are other banding projects in the works.[src/gxclread.c]
2007-06-29T20:21:42.242166Z Ray Johnston
Fix optimization for 0 and 0xff (non-dithered) colors in the wtsimdi_copy_mono routine. Also add a (temporary) change to force color==0 to cmyk=0x000000ff (only 100% black). This would be done differently if the input color were tagged RGB where presumably text objects would map. This is a reasonable temporary approach since copy_mono is used for bitmapped text. Also remove the "SKIP_OUTPUT" compile time #define and add "output_is_nul" detection of the OutputFile name being nul: or /dev/null to make it easier to go back and forth between timing runs (to /dev/null) and runs where we want to look at the output. DETAILS: Both the copy_mono optimizations and the mapping of color 0 can be disabled by removing (or commenting) the #defines above wtsimdi_copy_mono. These are on by default.[src/gdevwts.c]
2007-06-29T15:38:25.753618Z Igor Melichev
Fix : Expanding gxcldev.h macros, part 5. DETAILS : This change is algorithmically equivalent. The purpose is to eliminate gxcldev.h macros to simplify the debugging of the clist writer methods. This 5th step eliminates FOR_RECTS and END_RECTS macros. So now all control flow statements are outside macros.[src/gxcldev.h src/gxclpath.c src/gxclimag.c src/gxclrect.c]
2007-06-29T14:54:20.698917Z Igor Melichev
Fix : Expanding gxcldev.h macros, part 4. DETAILS : This change is algorithmically equivalent. The purpose is to eliminate gxcldev.h macros to simplify the debugging of the clist writer methods. This 4nd step eliminates the general form of END_RECTS_ON_ERROR. Since it is used at once, we simply expand it and perform some syntactic simplifications. Besides that, 2 new macros RECT_ENUM_INIT and RECT_STEP_INIT prepare further simplifications.[src/gxcldev.h src/gxclimag.c]